1
私はマルチスレッド環境でrocksdbを使用しています。マルチスレッド環境でのrocksdb
私のすべてのスレッドは、get()
、put()
およびmerge()
の操作を行っていますが、潜在的に同じキーを使用しています。
私には同期が組み込まれていますか?それは設定可能ですか?私はドキュメントとソースコードを見てきましたが、確かにそれを理解することはできませんでした。
私はマルチスレッド環境でrocksdbを使用しています。マルチスレッド環境でのrocksdb
私のすべてのスレッドは、get()
、put()
およびmerge()
の操作を行っていますが、潜在的に同じキーを使用しています。
私には同期が組み込まれていますか?それは設定可能ですか?私はドキュメントとソースコードを見てきましたが、確かにそれを理解することはできませんでした。
このような同期はありません。
get
,put
およびmerge
の操作はアトミックであることが保証されています。ただし、マルチスレッド環境で同じキーと値のペアを読み書きしようとすると、操作の順序は決定されません。あなた自身で同期を行う必要があります。
マージ演算子のコールバックはどうですか? – Mugen
@Mugen 'merge'は、リード・モディファイ・ライト・パターンのカプセル化です。マージ操作、つまりマージコールバックはアトミックであることが保証されています。しかし、いくつかの 'merge'、' put'、 'get'オペレーションの間で、あなた自身で同期を行う必要があります。 –