public String toStringEntries() {
    StringBuilder sb = new StringBuilder();
    try (RocksSharedLockHandle lock = mRocksStore.checkAndAcquireSharedLock();
         ReadOptions readOptions = new ReadOptions().setTotalOrderSeek(true);
         RocksIterator inodeIter = db().newIterator(mInodesColumn.get(), readOptions)) {
      inodeIter.seekToFirst();
      while (inodeIter.isValid()) {
        mRocksStore.shouldAbort(lock.getLockVersion());
        MutableInode<?> inode;
        try {
          inode = MutableInode.fromProto(InodeMeta.Inode.parseFrom(inodeIter.value()));
        } catch (Exception e) {
          throw new RuntimeException(e);
        }
        sb.append("Inode ").append(Longs.fromByteArray(inodeIter.key())).append(": ").append(inode)
            .append("\n");
        inodeIter.next();
      }
    }
    try (RocksSharedLockHandle lock = mRocksStore.checkAndAcquireSharedLock();
         RocksIterator edgeIter = db().newIterator(mEdgesColumn.get())) {
      edgeIter.seekToFirst();
      while (edgeIter.isValid()) {
        mRocksStore.shouldAbort(lock.getLockVersion());
        byte[] key = edgeIter.key();
        byte[] id = new byte[Longs.BYTES];
        byte[] name = new byte[key.length - Longs.BYTES];
        System.arraycopy(key, 0, id, 0, Longs.BYTES);
        System.arraycopy(key, Longs.BYTES, name, 0, key.length - Longs.BYTES);
        sb.append(String.format("<%s,%s>->%s%n", Longs.fromByteArray(id), new String(name),
            Longs.fromByteArray(edgeIter.value())));
        edgeIter.next();
      }
    }
    return sb.toString();
  }
@Test
  public void toStringEntries() throws IOException {
    assertEquals("", mStore.toStringEntries());

    mStore.writeInode(MutableInodeDirectory.create(
        1, 0, "dir", CreateDirectoryContext.defaults()));
    assertEquals("dir", mStore.get(1).get().getName());
    assertThat(mStore.toStringEntries(), containsString("name=dir"));
  }