Skip to content
  • Yueh-Hsuan Chiang's avatar
    CompactFiles, EventListener and GetDatabaseMetaData · 28c82ff1
    Yueh-Hsuan Chiang authored
    Summary:
    This diff adds three sets of APIs to RocksDB.
    
    = GetColumnFamilyMetaData =
    * This APIs allow users to obtain the current state of a RocksDB instance on one column family.
    * See GetColumnFamilyMetaData in include/rocksdb/db.h
    
    = EventListener =
    * A virtual class that allows users to implement a set of
      call-back functions which will be called when specific
      events of a RocksDB instance happens.
    * To register EventListener, simply insert an EventListener to ColumnFamilyOptions::listeners
    
    = CompactFiles =
    * CompactFiles API inputs a set of file numbers and an output level, and RocksDB
      will try to compact those files into the specified level.
    
    = Example =
    * Example code can be found in example/compact_files_example.cc, which implements
      a simple external compactor using EventListener, GetColumnFamilyMetaData, and
      CompactFiles API.
    
    Test Plan:
    listener_test
    compactor_test
    example/compact_files_example
    export ROCKSDB_TESTS=CompactFiles
    db_test
    export ROCKSDB_TESTS=MetaData
    db_test
    
    Reviewers: ljin, igor, rven, sdong
    
    Reviewed By: sdong
    
    Subscribers: MarkCallaghan, dhruba, leveldb
    
    Differential Revision: https://reviews.facebook.net/D24705
    28c82ff1