Build:
make
benchtop load test.data embeddings test.ndjson
test.data
: name of archiveembeddings
: name of tabletest.ndjson
: file to be loaded
benchtop tables test.data
benchtop keys test.data embeddings
benchtop get test.data embeddings <key1> <key2> ...
Data is stored in a large binary files and index using Pebble Key Value storage.
Written using Pebble
Key
bytes | 0 | 5:... |
---|---|---|
type | t | <[]byte> |
Desc | prefix | user ID |
The user ID is provided by the user, but should be checked to ensure it is unique.
Value
bytes | 0:4 | 4:... |
---|---|---|
type | []byte | |
Desc | BSON formatted Column definitions |
First is the Table system ID, which is used as a prefix during key lookup. Then rest of the bytes describe a list of columns and their data types.
Key
bytes | 0 | 5:... |
---|---|---|
type | T | uint32 |
Desc | prefix | system table ID |
The generated ID for a table.
Value
bytes | 0:4 | 4:... |
---|---|---|
type | []byte | |
Desc | User ID of table |
These map the user specified ID to a data block specified with offset and size.
Key
bytes | 0 | 1:5 | 1:... |
---|---|---|---|
type | k | uint32 | <[]byte> |
Desc | prefix | system table ID | user row ID |
Value
bytes | 0:8 | 8:16 |
---|---|---|
type | uint64 | uint64 |
Desc | offset | size |
Sequentially written BSON entries.