マイイテレータコード並列化:がrocksdbイテレータに
Iterator* iterator = _db->NewIterator(ReadOptions());
for (iterator->SeekToFirst(); iterator->Valid(); iterator->Next()) {
Slice const& key = iterator->key();
Slice const& value = iterator->value();
bool continue = callback(key, value);
if (!continue) {
break;
}
}
を反復処理の順序は重要ではありませんが、ループを破壊することが重要なので、我々は不要な要素を反復処理しません。私は要素がいつ壊れるかを知るために意味のある順序でソートされているという事実を利用しています。 callback
には長い時間がかかる可能性があります。
だから私がやりたいものの擬似コードは
parallel-iterate(iterator)
if(!callback(key,value)
stop-parallel
である私は、並行:: parallel_for_eachを適用しようとしましたが、それはrocksdb APIを適合しませんように思えます。
並行反復の実装方法を教えてください。