I want to create a MVCCKey with a timestamp and pretty value I know. But I realize a roachpb.key
is not very straightforward; is there some prefix/suffix involved? Is the database name is also encoded in roachpb.key
?
Can anyone please tell me how a MVCCKey is formed? What information does it have? In the documentation, it just says that it looks like /table/primary/key/column.
An engine.MVCCKey
combines a regular key with a timestamp. MVCCKeys
are encoded into byte strings for use as RockDB keys (RocksDB is configured with a custom comparator so MVCCKeys
are sorted correctly even though the timestamp uses a variable-width encoding).
Regular keys are byte strings of type roachpb.Key
. For ordinary data records, the keys are constructed from table, column, and index IDs, along with the values of indexed columns. (The database ID is not included here; the database to which a table belongs can be found in the system.descriptors
table)
The function keys.PrettyPrint
can convert a roachpb.Key
to a human-readable form.