概要描述
MetricsTable是CompactService在Shiva中创建的一张KV表。用于存储Holodesk表的一些元信息,用于触发CompactService。
具体来说,Argodbcomputing和SlipStream在insert/update/delete数据时,会向MetricsTable中插入一些元信息。CompactService会定期读取MetricsTable,触发Compact。
MetricsTable存储的元信息仅用于触发compact,没有关键信息,可以删除和重建。
为什么需要记录rowkey列名?
由于历史实现原因,rowkey列名被记录在metastore的元信息中,而非shiva中。因此shiva table并不包含rowkey列信息。而Compact Service的设计原则是完全和metastore解耦,因此不能访问metastore。因此将rowkey列信息记录在kv表中,并传递给CompactService。
详细介绍
MetricsTable存储内容
MetricsTable下定义了多个ColumnFamily, 一个ColumnFamily代表一组KV的数据格式。
| ColumnFamily | key | value | 描述 |
|---|---|---|---|
| HOLODESK | db+table+section | lastUpdateTime,LastComapctTime,smallBlockNum | 记录上次update和compact时间,用于触发compact,其中smallBlockNum暂时未使用 |
| HOLODESK_ROWKEY | db+table | rowkey | 录rowkey列名,用于传递rowkey信息给CompactService |
| HOLODESK_COMPACT_BLACKLIST | db+table+[section] | 无 | 黑名单,section为可选项,加到黑名单中的表不会在CompactService上触发Compact(注意,可以在ArgodbComputing上触发) |
数据查看方式
1. DBAService页面查看
从 9.4.5-final 版本开始,支持通过DBAService进入compact组件页面查看 MetricsTable 表信息,
MetricTable只有一个,且只有compactservice有。当服务不是compactservice时,不会在shiva表中显示MetricTable表
内容主题也是按照3个ColumnFamily进行展示:
2. curl接口查看
首先需要登录到guardian页面获取AccessToken,放到下面的guardian_access_token后面:
curl -u shiva:shiva -XGET "172.18.131.171:4050/api/metrics?cf=HOLODESK&guardian_access_token=YOnrCZqReKkXEJvW4DQw-KTDH"
curl -u shiva:shiva -XGET "172.18.131.171:4050/api/metrics?cf=HOLODESK_ROWKEY&guardian_access_token=YOnrCZqReKkXEJvW4DQw-KTDH"
curl -u shiva:shiva -XGET "172.18.131.171:4050/api/metrics?cf=HOLODESK_COMPACT_BLACKLIST&guardian_access_token=YOnrCZqReKkXEJvW4DQw-KTDH"
3. 浏览器查看
在成功登录DBAService页面获取认证鉴权的情况下,访问如下链接地址
http://172.18.131.171:4050/api/metrics?cf=HOLODESK
http://172.18.131.171:4050/api/metrics?cf=HOLODESK_ROWKEY
http://172.18.131.171:4050/api/metrics?cf=HOLODESK_COMPACT_BLACKLIST