#! python import os import shutil import rocksdb import tempfile import logging log = logging.getLogger() log.addHandler(logging.StreamHandler()) log.setLevel(logging.INFO) def _main(db_loc): opts = rocksdb.Options(create_if_missing=True) db = rocksdb.DB(os.path.join(db_loc, "test"), opts) secondary_location = os.path.join(db_loc, "secondary") secondary = rocksdb.DB( os.path.join(db_loc, "test"), rocksdb.Options(create_if_missing=True, max_open_files=-1), secondary_name=secondary_location ) try: assert secondary.get(b"a") is None db.put(b"a", b"b") assert db.get(b"a") == b"b" assert secondary.get(b"a") is None secondary.try_catch_up_with_primary() assert secondary.get(b"a") == b"b" finally: secondary.close() db.close() def main(): db_dir = tempfile.mkdtemp() try: _main(db_dir) log.info("rocksdb %s (%s) works!", rocksdb.__version__, rocksdb.ROCKSDB_VERSION) except: log.exception("boom") finally: shutil.rmtree(db_dir) if __name__ == "__main__": main()