如何查看Cosmos DB Gremlin API底层调用及查询atom-record-sequence?
Cosmos DB Gremlin API技术问题解答
1. 是否有方法可以查看Cosmos DB Gremlin API调用的底层具体形式?
有两种通用的可落地的查看方式:
- 本地调试时可以开启对应语言Gremlin客户端的Debug日志,比如Gremlin.Net、Java TinkerPop客户端都支持配置日志等级为Debug,开启后会输出完整的请求序列化结果、底层传输报文结构,包含请求的完整底层形式。
- 线上运行的请求可以在Azure门户的Cosmos DB账户后台开启诊断日志,选择记录Gremlin API的全量请求日志,日志中会存储每个请求的底层请求体、执行参数、RU消耗、响应结构等完整信息。
2. 若我编写Gremlin查询语句g.V().has("person","name","Diego");,运行该查询时会调用哪些atom-record-sequence?
atom-record-sequence(原子记录序列)是Cosmos DB存储层的最小执行操作单元序列,上述查询默认会调用的序列如下:
- 索引定位原子操作:首先检索标签索引,定位所有
label为person的顶点所在的存储分片 - 属性匹配原子操作:在定位到的存储分片中,扫描
name属性的二级索引,匹配值为Diego的顶点条目 - 结果返回原子操作:将匹配到的顶点元数据按照Gremlin标准格式拼装后返回
如果已经为name属性设置分区键,会跳过跨分片扫描的调度操作,原子记录序列会减少跨分片协调的相关步骤。
3. 是否支持在Cosmos DB中直接查询atom-record-sequence?
目前不支持直接查询。atom-record-sequence属于Cosmos DB Gremlin API的内部存储层实现细节,没有对外暴露对应的查询入口或语法,仅可以通过诊断日志、客户端Debug日志间接观测到对应请求的原子操作执行统计信息,无法直接编写语句查询或修改原子记录序列。
内容的提问来源于stack exchange,提问作者Diego
相关产品推荐
相关产品推荐

