2016-07-27 47 views
1

我想用我知道的时间戳和漂亮的值创建一个MVCCKey。但我意识到roachpb.key不是非常简单;有一些前缀/后缀涉及?数据库名称是否也编码在roachpb.keyCockroachDB中的MVCCKey是如何形成的?

任何人都可以告诉我一个MVCCKey是如何形成的?它有什么信息?在文档中,它只是说它看起来像/ table/primary/key/column。

回答

2

engine.MVCCKey将常规密钥与时间戳结合在一起。 MVCCKeysencoded为字节字符串用作RockDB键(RocksDB配置了一个自定义比较器,所以MVCCKeys排序正确,即使时间戳使用可变宽度编码)。

常规密钥是roachpb.Key类型的字节串。对于普通的数据记录,表,列和索引ID中的键为constructed,以及索引列的值。 (此处不包括数据库ID;表格所属的数据库可以在system.descriptors表中找到)

函数keys.PrettyPrint可以将roachpb.Key转换为人类可读形式。