Class DatanodeSchemaThreeDBDefinition
java.lang.Object
org.apache.hadoop.ozone.container.metadata.AbstractDatanodeDBDefinition
org.apache.hadoop.ozone.container.metadata.DatanodeSchemaThreeDBDefinition
- All Implemented Interfaces:
org.apache.hadoop.hdds.utils.db.DBDefinition,org.apache.hadoop.hdds.utils.db.DBDefinition.WithMapInterface
public class DatanodeSchemaThreeDBDefinition
extends AbstractDatanodeDBDefinition
implements org.apache.hadoop.hdds.utils.db.DBDefinition.WithMapInterface
This class defines the RocksDB structure for datanode following schema
version 3, where the block data, metadata, and transactions which are to be
deleted are put in their own separate column families and with containerID
as key prefix.
Some key format illustrations for the column families: - block_data: containerID | blockID - metadata: containerID | #BLOCKCOUNT containerID | #BYTESUSED ... - deleted_blocks: containerID | blockID - delete_txns: containerID | TransactionID
The keys would be encoded in a fix-length encoding style in order to utilize the "Prefix Seek" feature from Rocksdb to optimize seek.
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.apache.hadoop.hdds.utils.db.DBDefinition
org.apache.hadoop.hdds.utils.db.DBDefinition.WithMap, org.apache.hadoop.hdds.utils.db.DBDefinition.WithMapInterface -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final org.apache.hadoop.hdds.utils.db.DBColumnFamilyDefinition<String, org.apache.hadoop.ozone.container.common.helpers.BlockData> static final org.apache.hadoop.hdds.utils.db.DBColumnFamilyDefinition<String, org.apache.hadoop.hdds.protocol.proto.StorageContainerDatanodeProtocolProtos.DeletedBlocksTransaction> static final org.apache.hadoop.hdds.utils.db.DBColumnFamilyDefinition<String, org.apache.hadoop.ozone.container.common.helpers.BlockData> Fields inherited from interface org.apache.hadoop.hdds.utils.db.DBDefinition
LOG -
Constructor Summary
ConstructorsConstructorDescriptionDatanodeSchemaThreeDBDefinition(String dbPath, org.apache.hadoop.hdds.conf.ConfigurationSource config) -
Method Summary
Modifier and TypeMethodDescriptionorg.apache.hadoop.hdds.utils.db.DBColumnFamilyDefinition<String, org.apache.hadoop.ozone.container.common.helpers.BlockData> static longgetContainerId(String key) static StringgetContainerKeyPrefix(long containerID) static byte[]getContainerKeyPrefixBytes(long containerID) static intorg.apache.hadoop.hdds.utils.db.DBColumnFamilyDefinition<String, org.apache.hadoop.hdds.protocol.proto.StorageContainerDatanodeProtocolProtos.DeletedBlocksTransaction> static StringgetKeyWithoutPrefix(String keyWithPrefix) org.apache.hadoop.hdds.utils.db.DBColumnFamilyDefinition<String, org.apache.hadoop.ozone.container.common.helpers.BlockData> getMap()Methods inherited from class org.apache.hadoop.ozone.container.metadata.AbstractDatanodeDBDefinition
getConfig, getDBLocation, getLocationConfigKey, getNameMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.apache.hadoop.hdds.utils.db.DBDefinition
getColumnFamily, getColumnFamilyNames, getDBLocation, getLocationConfigKey, getName, getOptionsPathMethods inherited from interface org.apache.hadoop.hdds.utils.db.DBDefinition.WithMapInterface
getColumnFamilies, getColumnFamilies
-
Field Details
-
BLOCK_DATA
public static final org.apache.hadoop.hdds.utils.db.DBColumnFamilyDefinition<String,org.apache.hadoop.ozone.container.common.helpers.BlockData> BLOCK_DATA -
METADATA
-
DELETE_TRANSACTION
public static final org.apache.hadoop.hdds.utils.db.DBColumnFamilyDefinition<String,org.apache.hadoop.hdds.protocol.proto.StorageContainerDatanodeProtocolProtos.DeletedBlocksTransaction> DELETE_TRANSACTION -
FINALIZE_BLOCKS
-
LAST_CHUNK_INFO
public static final org.apache.hadoop.hdds.utils.db.DBColumnFamilyDefinition<String,org.apache.hadoop.ozone.container.common.helpers.BlockData> LAST_CHUNK_INFO
-
-
Constructor Details
-
DatanodeSchemaThreeDBDefinition
public DatanodeSchemaThreeDBDefinition(String dbPath, org.apache.hadoop.hdds.conf.ConfigurationSource config)
-
-
Method Details
-
getMap
- Specified by:
getMapin interfaceorg.apache.hadoop.hdds.utils.db.DBDefinition.WithMapInterface
-
getBlockDataColumnFamily
public org.apache.hadoop.hdds.utils.db.DBColumnFamilyDefinition<String,org.apache.hadoop.ozone.container.common.helpers.BlockData> getBlockDataColumnFamily()- Specified by:
getBlockDataColumnFamilyin classAbstractDatanodeDBDefinition
-
getMetadataColumnFamily
public org.apache.hadoop.hdds.utils.db.DBColumnFamilyDefinition<String,Long> getMetadataColumnFamily()- Specified by:
getMetadataColumnFamilyin classAbstractDatanodeDBDefinition
-
getLastChunkInfoColumnFamily
public org.apache.hadoop.hdds.utils.db.DBColumnFamilyDefinition<String,org.apache.hadoop.ozone.container.common.helpers.BlockData> getLastChunkInfoColumnFamily()- Specified by:
getLastChunkInfoColumnFamilyin classAbstractDatanodeDBDefinition
-
getDeleteTransactionsColumnFamily
public org.apache.hadoop.hdds.utils.db.DBColumnFamilyDefinition<String,org.apache.hadoop.hdds.protocol.proto.StorageContainerDatanodeProtocolProtos.DeletedBlocksTransaction> getDeleteTransactionsColumnFamily() -
getFinalizeBlocksColumnFamily
public org.apache.hadoop.hdds.utils.db.DBColumnFamilyDefinition<String,Long> getFinalizeBlocksColumnFamily()- Overrides:
getFinalizeBlocksColumnFamilyin classAbstractDatanodeDBDefinition
-
getContainerKeyPrefixLength
public static int getContainerKeyPrefixLength() -
getContainerKeyPrefix
-
getContainerKeyPrefixBytes
public static byte[] getContainerKeyPrefixBytes(long containerID) -
getKeyWithoutPrefix
-
getContainerId
- Parameters:
key- rocksDB original key- Returns:
- containerID
-