2016-09-22 16 views
1

私はマルチスレッド環境でrocksdbを使用しています。マルチスレッド環境でのrocksdb

私のすべてのスレッドは、get()put()およびmerge()の操作を行っていますが、潜在的に同じキーを使用しています。

私には同期が組み込まれていますか?それは設定可能ですか?私はドキュメントとソースコードを見てきましたが、確かにそれを理解することはできませんでした。

答えて

1

このような同期はありません。

get,putおよびmergeの操作はアトミックであることが保証されています。ただし、マルチスレッド環境で同じキーと値のペアを読み書きしようとすると、操作の順序は決定されません。あなた自身で同期を行う必要があります。

+0

マージ演算子のコールバックはどうですか? – Mugen

+0

@Mugen 'merge'は、リード・モディファイ・ライト・パターンのカプセル化です。マージ操作、つまりマージコールバックはアトミックであることが保証されています。しかし、いくつかの 'merge'、' put'、 'get'オペレーションの間で、あなた自身で同期を行う必要があります。 –

関連する問題