2016-07-27 3 views
1

私はタイムスタンプと私が知っているかなり価値のあるMVCCKeyを作成したいと思います。しかし、私はroachpb.keyが非常に簡単ではないことを認識しています。いくつかの接頭辞/接尾辞が関わっていますか?データベース名もroachpb.keyにエンコードされていますか?CockroachDBでMVCCKeyがどのように形成されていますか?

誰でもMVCCKeyの作成方法を教えてください。それにはどのような情報がありますか?ドキュメントでは、/ table/primary/key/columnのように見えます。

答えて

2

engine.MVCCKeyは、通常のキーとタイムスタンプを組み合わせています。 MVCCKeysencodedで、RockDBキーとして使用するためのバイト文字列になります(RocksDBはカスタムコンパレータで設定されるため、タイムスタンプで可変幅エンコーディングを使用してもMVCCKeysは正しくソートされます)。

通常のキーは、タイプroachpb.Keyのバイト文字列です。通常のデータレコードの場合、キーはインデックス付きカラムの値とともにテーブル、カラム、およびインデックスIDからのconstructedです。 (データベースIDがここに含まれていない、テーブルが属するデータベースは、system.descriptors表に見出すことができる)

機能keys.PrettyPrintは、人間が読める形式にroachpb.Keyを変換することができます。

関連する問題