Details
-
Sub-task
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
None
-
None
Description
Add definition classes for rocksdb-merge, thus we have a new container schema – schemaV3.
After rocksdb-merge, we have the metadata of multiple containers into a central per-disk rocksdb instances, so we should add prefix to their metadata KVs, here is a comparison of the old schemaV2 v.s. schemaV3:
SchemaV2
Table Name/ColumnFamily | KeyValue |
block_data | <LocalID, BlockData> |
metadata | <MetadataPrefix, MetadataValue> |
delete_txns | <TxnID, DeletedBlocksTransaction> |
SchemaV3
Table Name/ColumnFamily | KeyValue |
block_data | <ContainerID#LocalID, BlockData> |
metadata | <ContainerID#MetadataPrefix, MetadataValue> |
delete_txns | <ContainerID#TxnID, DeletedBlocksTransaction> |
The containerID should be of fixed-length, then the iteration of a specific container metadata will be optimized using rocksdb "Prefix-Seek" feature: https://github.com/facebook/rocksdb/wiki/Prefix-Seek.
We need to define new classes such as:
- DatanodeSchemaThreeDBDefinition
- DatanodeStoreSchemaThreeImpl
Attachments
Issue Links
- relates to
-
HDDS-10762 Review/discuss SchemaV3's prefix_seek optimization
- Open
- links to