Rust-rocksdb: 列ファミリーは、マージ演算子と組み合わせて機能しません

作成日 2015年10月09日  ·  3コメント  ·  ソース: rust-rocksdb/rust-rocksdb

これは、CAPIの問題でもある可能性があるようです。

bug

最も参考になるコメント

このバグを見ている人のために:_データベースをどのように開いていますか?_

問題が発生し、 DB::open_cf()代わりにDB::open_cf_descriptors()を使用すると、問題が解決することを確認しました。 根本的な問題は、 DB::open_cf()が作成するすべての列ファミリーにデフォルトのオプションを適用することだと思います。 デフォルトオプションには、マージ演算子は含まれません。

私が間違っていない限り:

  • RocksDBは、データベース全体ではなく、マージ演算子を各列ファミリーに個別に関連付けることを望んでいます。
  • 列ファミリーとマージ演算子を使用する場合の修正(または回避策)は、DBのオプションではなく、列ファミリーのオプションでset_merge_operator()を使用することです。 これを行うには、 open_cf_descriptors()代わりにopen_cf() open_cf_descriptors()呼び出す必要があります。 お役に立てれば。

全てのコメント3件

このバグの状況はどうなっていますか? 私のプロジェクトにはこれが必要です。 何かお手伝いできますか?

@tokahuke提出されてから変更されてい

このバグを見ている人のために:_データベースをどのように開いていますか?_

問題が発生し、 DB::open_cf()代わりにDB::open_cf_descriptors()を使用すると、問題が解決することを確認しました。 根本的な問題は、 DB::open_cf()が作成するすべての列ファミリーにデフォルトのオプションを適用することだと思います。 デフォルトオプションには、マージ演算子は含まれません。

私が間違っていない限り:

  • RocksDBは、データベース全体ではなく、マージ演算子を各列ファミリーに個別に関連付けることを望んでいます。
  • 列ファミリーとマージ演算子を使用する場合の修正(または回避策)は、DBのオプションではなく、列ファミリーのオプションでset_merge_operator()を使用することです。 これを行うには、 open_cf_descriptors()代わりにopen_cf() open_cf_descriptors()呼び出す必要があります。 お役に立てれば。
このページは役に立ちましたか?
0 / 5 - 0 評価

関連する問題

rrichardson picture rrichardson  ·  7コメント

yiyanwannian picture yiyanwannian  ·  6コメント

mvines picture mvines  ·  10コメント

jonhoo picture jonhoo  ·  22コメント

eupn picture eupn  ·  3コメント