1

ここにRocksDBの初心者がいます。

実行時には、RocksDB のみを使用してデータを読み取ります。場合によっては、他のソースからのセッション固有のレコードをマージする必要があります。

それらをメインデータベースにマージしたくありません。その特定のセッションのセッションの有効期間中にのみ存在するようにします。

もちろん、通常の std::vector などを使用して RocksDB と他のソースをマージすることもできますが、それではデータが複製されます。

memtable や merge など、使用または悪用される可能性のある概念がたくさんあります。たとえば、memtable にコミットせずに変更を放棄するように指示できれば、それは機能するはずです。それは実行可能ですか?

4

1 に答える 1

0

最も簡単な方法は、おそらくアプリケーションをシャットダウンするときに、それらを異なる列ファミリーに分けて、保持したくないものを削除することです。エントリごとの有効期間が必要な場合、c++ を使用している場合は、構築時に挿入し、破棄時に削除する RAII ホルダー クラスのようなカスタムを検討する必要があります。クラッシュ障害が発生した場合に備えて、データを明確に分離するために、別の列ファミリーを使用します。

于 2018-01-23T13:44:58.520 に答える