Class DatanodeTable<KEY,VALUE>

java.lang.Object
org.apache.hadoop.ozone.container.metadata.DatanodeTable<KEY,VALUE>
All Implemented Interfaces:
org.apache.hadoop.hdds.utils.db.Table<KEY,VALUE>
Direct Known Subclasses:
SchemaOneDeletedBlocksTable

public class DatanodeTable<KEY,VALUE> extends Object implements org.apache.hadoop.hdds.utils.db.Table<KEY,VALUE>
Wrapper class to represent a table in a datanode RocksDB instance. This class can wrap any existing Table instance, but will throw UnsupportedOperationException for Table.iterator(). This is because differing schema versions used in datanode DB layouts may have differing underlying table structures, so iterating a table instance directly, without taking into account key prefixes, may yield unexpected results.
  • 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>
  • Constructor Summary

    Constructors
    Constructor
    Description
    DatanodeTable(org.apache.hadoop.hdds.utils.db.Table<KEY,VALUE> table)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    delete(KEY key)
     
    void
    deleteBatchWithPrefix(org.apache.hadoop.hdds.utils.db.BatchOperation batch, KEY prefix)
     
    void
    deleteRange(KEY beginKey, KEY endKey)
     
    void
    deleteRangeWithBatch(org.apache.hadoop.hdds.utils.db.BatchOperation batch, KEY beginKey, KEY endKey)
     
    void
    deleteWithBatch(org.apache.hadoop.hdds.utils.db.BatchOperation batch, KEY key)
     
    void
    dumpToFileWithPrefix(File externalFile, KEY prefix)
     
    get(KEY key)
     
    long
     
     
     
    List<org.apache.hadoop.hdds.utils.db.Table.KeyValue<KEY,VALUE>>
    getRangeKVs(KEY startKey, int count, KEY prefix, org.apache.hadoop.hdds.utils.MetadataKeyFilters.KeyPrefixFilter filter, boolean isSequential)
     
     
    boolean
     
    boolean
    isExist(KEY key)
     
    final org.apache.hadoop.hdds.utils.db.Table.KeyValueIterator<KEY,VALUE>
    iterator(KEY prefix, org.apache.hadoop.hdds.utils.db.Table.KeyValueIterator.Type type)
     
    void
    loadFromFile(File externalFile)
     
    void
    put(KEY key, VALUE value)
     
    void
    putWithBatch(org.apache.hadoop.hdds.utils.db.BatchOperation batch, KEY key, VALUE value)
     

    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
  • Constructor Details

    • DatanodeTable

      public DatanodeTable(org.apache.hadoop.hdds.utils.db.Table<KEY,VALUE> table)
  • Method Details

    • put

      public void put(KEY key, VALUE 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<KEY,VALUE>
      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, KEY key, VALUE 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<KEY,VALUE>
      Throws:
      org.apache.hadoop.hdds.utils.db.RocksDatabaseException
      org.apache.hadoop.hdds.utils.db.CodecException
    • isEmpty

      public boolean isEmpty() throws org.apache.hadoop.hdds.utils.db.RocksDatabaseException
      Specified by:
      isEmpty in interface org.apache.hadoop.hdds.utils.db.Table<KEY,VALUE>
      Throws:
      org.apache.hadoop.hdds.utils.db.RocksDatabaseException
    • delete

      public void delete(KEY 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<KEY,VALUE>
      Throws:
      org.apache.hadoop.hdds.utils.db.RocksDatabaseException
      org.apache.hadoop.hdds.utils.db.CodecException
    • deleteRange

      public void deleteRange(KEY beginKey, KEY 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<KEY,VALUE>
      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, KEY key) throws org.apache.hadoop.hdds.utils.db.CodecException
      Specified by:
      deleteWithBatch in interface org.apache.hadoop.hdds.utils.db.Table<KEY,VALUE>
      Throws:
      org.apache.hadoop.hdds.utils.db.CodecException
    • deleteRangeWithBatch

      public void deleteRangeWithBatch(org.apache.hadoop.hdds.utils.db.BatchOperation batch, KEY beginKey, KEY endKey) throws org.apache.hadoop.hdds.utils.db.CodecException
      Specified by:
      deleteRangeWithBatch in interface org.apache.hadoop.hdds.utils.db.Table<KEY,VALUE>
      Throws:
      org.apache.hadoop.hdds.utils.db.CodecException
    • iterator

      public final org.apache.hadoop.hdds.utils.db.Table.KeyValueIterator<KEY,VALUE> iterator(KEY prefix, org.apache.hadoop.hdds.utils.db.Table.KeyValueIterator.Type type)
      Specified by:
      iterator in interface org.apache.hadoop.hdds.utils.db.Table<KEY,VALUE>
    • getName

      public String getName()
      Specified by:
      getName in interface org.apache.hadoop.hdds.utils.db.Table<KEY,VALUE>
    • getEstimatedKeyCount

      public long getEstimatedKeyCount() throws org.apache.hadoop.hdds.utils.db.RocksDatabaseException
      Specified by:
      getEstimatedKeyCount in interface org.apache.hadoop.hdds.utils.db.Table<KEY,VALUE>
      Throws:
      org.apache.hadoop.hdds.utils.db.RocksDatabaseException
    • isExist

      public boolean isExist(KEY 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<KEY,VALUE>
      Throws:
      org.apache.hadoop.hdds.utils.db.RocksDatabaseException
      org.apache.hadoop.hdds.utils.db.CodecException
    • get

      public VALUE get(KEY 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<KEY,VALUE>
      Throws:
      org.apache.hadoop.hdds.utils.db.RocksDatabaseException
      org.apache.hadoop.hdds.utils.db.CodecException
    • getIfExist

      public VALUE getIfExist(KEY 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<KEY,VALUE>
      Throws:
      org.apache.hadoop.hdds.utils.db.RocksDatabaseException
      org.apache.hadoop.hdds.utils.db.CodecException
    • getReadCopy

      public VALUE getReadCopy(KEY 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<KEY,VALUE>
      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<KEY,VALUE>> getRangeKVs(KEY startKey, int count, KEY 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<KEY,VALUE>
      Throws:
      org.apache.hadoop.hdds.utils.db.RocksDatabaseException
      org.apache.hadoop.hdds.utils.db.CodecException
    • deleteBatchWithPrefix

      public void deleteBatchWithPrefix(org.apache.hadoop.hdds.utils.db.BatchOperation batch, KEY prefix) throws org.apache.hadoop.hdds.utils.db.RocksDatabaseException, org.apache.hadoop.hdds.utils.db.CodecException
      Specified by:
      deleteBatchWithPrefix in interface org.apache.hadoop.hdds.utils.db.Table<KEY,VALUE>
      Throws:
      org.apache.hadoop.hdds.utils.db.RocksDatabaseException
      org.apache.hadoop.hdds.utils.db.CodecException
    • dumpToFileWithPrefix

      public void dumpToFileWithPrefix(File externalFile, KEY prefix) throws org.apache.hadoop.hdds.utils.db.RocksDatabaseException, org.apache.hadoop.hdds.utils.db.CodecException
      Specified by:
      dumpToFileWithPrefix in interface org.apache.hadoop.hdds.utils.db.Table<KEY,VALUE>
      Throws:
      org.apache.hadoop.hdds.utils.db.RocksDatabaseException
      org.apache.hadoop.hdds.utils.db.CodecException
    • loadFromFile

      public void loadFromFile(File externalFile) throws org.apache.hadoop.hdds.utils.db.RocksDatabaseException
      Specified by:
      loadFromFile in interface org.apache.hadoop.hdds.utils.db.Table<KEY,VALUE>
      Throws:
      org.apache.hadoop.hdds.utils.db.RocksDatabaseException