docs: public RocksDbQueue<ID, DATA> init() throws Exception {
          File STORAGE_DIR = new File(storageDir);
          LOGGER.info("Storage Directory: " + STORAGE_DIR.getAbsolutePath());
          try {
              FileUtils.forceMkdir(STORAGE_DIR);
          } catch (IOException e) {
              throw new RuntimeException(e);
          }
  
          try {
              batchPutToQueue = new WriteBatch();
              batchTake = new WriteBatch();
  
              dbOptions = RocksDbUtils.buildDbOptions();
              rocksDbWrapper = RocksDbWrapper.openReadWrite(STORAGE_DIR, dbOptions, null, null,
                      new String[] { cfNameEphemeral, cfNameMetadata, cfNameQueue });
              readOptions = rocksDbWrapper.getReadOptions();
              writeOptions = rocksDbWrapper.getWriteOptions();
  
              cfEphemeral = rocksDbWrapper.getColumnFamilyHandle(cfNameEphemeral);
              cfMetadata = rocksDbWrapper.getColumnFamilyHandle(cfNameMetadata);
              cfQueue = rocksDbWrapper.getColumnFamilyHandle(cfNameQueue);
  
              itQueue = rocksDbWrapper.getIterator(cfNameQueue);
              itEphemeral = rocksDbWrapper.getIterator(cfNameEphemeral);
              lastFetchedId = loadLastFetchedId();
          } catch (Exception e) {
              destroy();
              throw e instanceof RuntimeException ? (RuntimeException) e : new RuntimeException(e);
          }
  
          super.init();
  
          return this;
      }