【问题标题】:RocksDB iterator seek until last matching prefixRocksDB 迭代器寻找直到最后一个匹配的前缀
【发布时间】:2020-03-07 10:48:14
【问题描述】:

我如何告诉 RocksDB 迭代器寻找直到最后一个匹配的前缀?

在 Clojure 中使用 RocksDB Java API:

(import '(org.rocksdb RocksDB Options ReadOptions RocksIterator Slice))
(let [opts (-> (ReadOptions.)
               (.setPrefixSameAsStart true)
               (.setTotalOrderSeek true))
      iter (.newIterator db)]
  (.seek iter (.getBytes ("some-prefix:"))
  (.key iter))
=> "not-matching-prefix"

我是否必须手动检查下一个键是否与前缀匹配?这似乎不是最理想的,因为我必须输入整个密钥来检查它,而 RocksDB 可能会提前退出。

【问题讨论】:

    标签: clojure prefix seek rocksdb rocksdb-java


    【解决方案1】:

    是的,您可以为 RocksDB 提供上限以优化它 - 通过在 ReadOptions 中使用 setIterateUpperBound

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-11
      • 2013-06-03
      • 2011-07-23
      • 1970-01-01
      • 2011-03-01
      • 1970-01-01
      相关资源
      最近更新 更多