Class SchemaOneDeletedBlocksTable

java.lang.Object
org.apache.hadoop.ozone.container.metadata.DatanodeTable<String,org.apache.hadoop.ozone.container.common.helpers.ChunkInfoList>
org.apache.hadoop.ozone.container.metadata.SchemaOneDeletedBlocksTable
All Implemented Interfaces:
org.apache.hadoop.hdds.utils.db.Table<String,org.apache.hadoop.ozone.container.common.helpers.ChunkInfoList>

public class SchemaOneDeletedBlocksTable extends DatanodeTable<String,org.apache.hadoop.ozone.container.common.helpers.ChunkInfoList>
For RocksDB instances written using DB schema version 1, all data is stored in the default column family. This differs from later schema versions, which put deleted blocks in a different column family. As a result, the block IDs used as keys for deleted blocks must be prefixed in schema version 1 so that they can be differentiated from regular blocks. However, these prefixes are not necessary in later schema versions, because the deleted blocks and regular blocks are in different column families.

Since clients must operate independently of the underlying schema version, This class is returned to clients using DatanodeStoreSchemaOneImpl instances, allowing them to access keys as if no prefix is required, while it adds or removes the prefix when necessary. This means the client should omit the deleted prefix when putting and getting keys, regardless of the schema version.

  • Nested Class Summary

    Nested classes/interfaces inherited from interface org.apache.hadoop.hdds.utils.db.Table

    org.apache.hadoop.hdds.utils.db.Table.KeyValue<K,V>, org.apache.hadoop.hdds.utils.db.Table.KeyValueIterator<KEY,VALUE>
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final String
     
  • Constructor Summary

    Constructors
    Constructor
    Description
    SchemaOneDeletedBlocksTable(org.apache.hadoop.hdds.utils.db.Table<String,org.apache.hadoop.ozone.container.common.helpers.ChunkInfoList> table)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    void
     
    void
    deleteRange(String beginKey, String endKey)
     
    void
    deleteWithBatch(org.apache.hadoop.hdds.utils.db.BatchOperation batch, String key)
     
    org.apache.hadoop.ozone.container.common.helpers.ChunkInfoList
    get(String key)
     
    org.apache.hadoop.ozone.container.common.helpers.ChunkInfoList
     
    List<org.apache.hadoop.hdds.utils.db.Table.KeyValue<String,org.apache.hadoop.ozone.container.common.helpers.ChunkInfoList>>
    getRangeKVs(String startKey, int count, String prefix, org.apache.hadoop.hdds.utils.MetadataKeyFilters.KeyPrefixFilter filter, boolean isSequential)
     
    org.apache.hadoop.ozone.container.common.helpers.ChunkInfoList
     
    boolean
     
    void
    put(String key, org.apache.hadoop.ozone.container.common.helpers.ChunkInfoList value)
     
    void
    putWithBatch(org.apache.hadoop.hdds.utils.db.BatchOperation batch, String key, org.apache.hadoop.ozone.container.common.helpers.ChunkInfoList value)
     

    Methods inherited from class org.apache.hadoop.ozone.container.metadata.DatanodeTable

    deleteBatchWithPrefix, deleteRangeWithBatch, dumpToFileWithPrefix, getEstimatedKeyCount, getName, isEmpty, iterator, loadFromFile

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface org.apache.hadoop.hdds.utils.db.Table

    addCacheEntry, addCacheEntry, addCacheEntry, cacheIterator, cleanupCache, createCacheMetrics, getCacheValue, getRangeKVs, getRangeKVs, getSkipCache, iterator, iterator, keyIterator, keyIterator, valueIterator, valueIterator
  • Field Details

  • Constructor Details

    • SchemaOneDeletedBlocksTable

      public SchemaOneDeletedBlocksTable(org.apache.hadoop.hdds.utils.db.Table<String,org.apache.hadoop.ozone.container.common.helpers.ChunkInfoList> table)
  • Method Details

    • put

      public void put(String key, org.apache.hadoop.ozone.container.common.helpers.ChunkInfoList value) throws org.apache.hadoop.hdds.utils.db.RocksDatabaseException, org.apache.hadoop.hdds.utils.db.CodecException
      Specified by:
      put in interface org.apache.hadoop.hdds.utils.db.Table<String,org.apache.hadoop.ozone.container.common.helpers.ChunkInfoList>
      Overrides:
      put in class DatanodeTable<String,org.apache.hadoop.ozone.container.common.helpers.ChunkInfoList>
      Throws:
      org.apache.hadoop.hdds.utils.db.RocksDatabaseException
      org.apache.hadoop.hdds.utils.db.CodecException
    • putWithBatch

      public void putWithBatch(org.apache.hadoop.hdds.utils.db.BatchOperation batch, String key, org.apache.hadoop.ozone.container.common.helpers.ChunkInfoList value) throws org.apache.hadoop.hdds.utils.db.RocksDatabaseException, org.apache.hadoop.hdds.utils.db.CodecException
      Specified by:
      putWithBatch in interface org.apache.hadoop.hdds.utils.db.Table<String,org.apache.hadoop.ozone.container.common.helpers.ChunkInfoList>
      Overrides:
      putWithBatch in class DatanodeTable<String,org.apache.hadoop.ozone.container.common.helpers.ChunkInfoList>
      Throws:
      org.apache.hadoop.hdds.utils.db.RocksDatabaseException
      org.apache.hadoop.hdds.utils.db.CodecException
    • delete

      public void delete(String key) throws org.apache.hadoop.hdds.utils.db.RocksDatabaseException, org.apache.hadoop.hdds.utils.db.CodecException
      Specified by:
      delete in interface org.apache.hadoop.hdds.utils.db.Table<String,org.apache.hadoop.ozone.container.common.helpers.ChunkInfoList>
      Overrides:
      delete in class DatanodeTable<String,org.apache.hadoop.ozone.container.common.helpers.ChunkInfoList>
      Throws:
      org.apache.hadoop.hdds.utils.db.RocksDatabaseException
      org.apache.hadoop.hdds.utils.db.CodecException
    • deleteWithBatch

      public void deleteWithBatch(org.apache.hadoop.hdds.utils.db.BatchOperation batch, String key) throws org.apache.hadoop.hdds.utils.db.CodecException
      Specified by:
      deleteWithBatch in interface org.apache.hadoop.hdds.utils.db.Table<String,org.apache.hadoop.ozone.container.common.helpers.ChunkInfoList>
      Overrides:
      deleteWithBatch in class DatanodeTable<String,org.apache.hadoop.ozone.container.common.helpers.ChunkInfoList>
      Throws:
      org.apache.hadoop.hdds.utils.db.CodecException
    • deleteRange

      public void deleteRange(String beginKey, String endKey) throws org.apache.hadoop.hdds.utils.db.RocksDatabaseException, org.apache.hadoop.hdds.utils.db.CodecException
      Specified by:
      deleteRange in interface org.apache.hadoop.hdds.utils.db.Table<String,org.apache.hadoop.ozone.container.common.helpers.ChunkInfoList>
      Overrides:
      deleteRange in class DatanodeTable<String,org.apache.hadoop.ozone.container.common.helpers.ChunkInfoList>
      Throws:
      org.apache.hadoop.hdds.utils.db.RocksDatabaseException
      org.apache.hadoop.hdds.utils.db.CodecException
    • isExist

      public boolean isExist(String key) throws org.apache.hadoop.hdds.utils.db.RocksDatabaseException, org.apache.hadoop.hdds.utils.db.CodecException
      Specified by:
      isExist in interface org.apache.hadoop.hdds.utils.db.Table<String,org.apache.hadoop.ozone.container.common.helpers.ChunkInfoList>
      Overrides:
      isExist in class DatanodeTable<String,org.apache.hadoop.ozone.container.common.helpers.ChunkInfoList>
      Throws:
      org.apache.hadoop.hdds.utils.db.RocksDatabaseException
      org.apache.hadoop.hdds.utils.db.CodecException
    • get

      public org.apache.hadoop.ozone.container.common.helpers.ChunkInfoList get(String key) throws org.apache.hadoop.hdds.utils.db.RocksDatabaseException, org.apache.hadoop.hdds.utils.db.CodecException
      Specified by:
      get in interface org.apache.hadoop.hdds.utils.db.Table<String,org.apache.hadoop.ozone.container.common.helpers.ChunkInfoList>
      Overrides:
      get in class DatanodeTable<String,org.apache.hadoop.ozone.container.common.helpers.ChunkInfoList>
      Throws:
      org.apache.hadoop.hdds.utils.db.RocksDatabaseException
      org.apache.hadoop.hdds.utils.db.CodecException
    • getIfExist

      public org.apache.hadoop.ozone.container.common.helpers.ChunkInfoList getIfExist(String key) throws org.apache.hadoop.hdds.utils.db.RocksDatabaseException, org.apache.hadoop.hdds.utils.db.CodecException
      Specified by:
      getIfExist in interface org.apache.hadoop.hdds.utils.db.Table<String,org.apache.hadoop.ozone.container.common.helpers.ChunkInfoList>
      Overrides:
      getIfExist in class DatanodeTable<String,org.apache.hadoop.ozone.container.common.helpers.ChunkInfoList>
      Throws:
      org.apache.hadoop.hdds.utils.db.RocksDatabaseException
      org.apache.hadoop.hdds.utils.db.CodecException
    • getReadCopy

      public org.apache.hadoop.ozone.container.common.helpers.ChunkInfoList getReadCopy(String key) throws org.apache.hadoop.hdds.utils.db.RocksDatabaseException, org.apache.hadoop.hdds.utils.db.CodecException
      Specified by:
      getReadCopy in interface org.apache.hadoop.hdds.utils.db.Table<String,org.apache.hadoop.ozone.container.common.helpers.ChunkInfoList>
      Overrides:
      getReadCopy in class DatanodeTable<String,org.apache.hadoop.ozone.container.common.helpers.ChunkInfoList>
      Throws:
      org.apache.hadoop.hdds.utils.db.RocksDatabaseException
      org.apache.hadoop.hdds.utils.db.CodecException
    • getRangeKVs

      public List<org.apache.hadoop.hdds.utils.db.Table.KeyValue<String,org.apache.hadoop.ozone.container.common.helpers.ChunkInfoList>> getRangeKVs(String startKey, int count, String prefix, org.apache.hadoop.hdds.utils.MetadataKeyFilters.KeyPrefixFilter filter, boolean isSequential) throws org.apache.hadoop.hdds.utils.db.RocksDatabaseException, org.apache.hadoop.hdds.utils.db.CodecException
      Specified by:
      getRangeKVs in interface org.apache.hadoop.hdds.utils.db.Table<String,org.apache.hadoop.ozone.container.common.helpers.ChunkInfoList>
      Overrides:
      getRangeKVs in class DatanodeTable<String,org.apache.hadoop.ozone.container.common.helpers.ChunkInfoList>
      Throws:
      org.apache.hadoop.hdds.utils.db.RocksDatabaseException
      org.apache.hadoop.hdds.utils.db.CodecException