RocksDB 获取列族键值

RocksDB get column family key num

我使用 rocksdb C++ API 并创建了一些 column_families。现在,我想创建一个自增列,所以我想获取列中的键总数,然后+1。有什么方法可以直接获取列的大小吗?

我不认为这是开箱即用的,因为有多种解决方案有不同的权衡,而 rocksdb 更像是一个构建数据库的库,而不是传统 SQL 感觉,所以他们让你做出选择。开箱即用还需要提交一个解决方案来同时维护它,而许多人不需要这个。

两个简单的选项:

  1. 事务性地维护每个列族的大小的特殊记录
  2. 将大小保存在内存中并在启动时扫描表来计算它(或者记住最后一个键),然后用锁保护它并在修改时更新。

我不会讨论更复杂的选项,因为我认为使用例如CRDT 使确保您不会创建重复键变得非常重要。对于基本上任何不暗示维护自动增量的操作的总顺序的任何事情都将非常棘手。