kv_parallel_store_iterator_keys()

#include <kvstore.h>

kv_error_t kv_parallel_store_iterator_keys(kv_store_t *store,
          const kv_key_t *parent_key,
          kv_parallel_scan_iterator_t **return_parallel_scan_iterator,
          const kv_key_range_t *sub_range,kv_depth_enum depth,kv_direction_enum direction,
          int batch_size,
          kv_consistency_t *consistency,
          kv_timeout_t timeout_ms,
          kv_store_iterator_config_t *store_iterator_config) 

ストア内のすべてのキーを未ソートの順序で反復処理するパラレル・スキャン・イテレータを作成します。結果は非トランザクションであり、操作は読取りがコミットされた分離性を効果的に実現します。この実装は、イテレータ内のキーのフェッチをバッチ処理し、使用可能な帯域幅を独占することなく、ネットワーク往復を最小限にします。

パラメータ

  • store

    storeパラメータは、イテレータが必要なストアへのハンドルです。

  • parent_key

    parent_keyパラメータは、子キーを取得する親キーです。NULLの場合もあれば、部分的なメジャー・キー・パスのみの場合もあります。

  • return_iterator

    return_parallel_scan_iteratorパラメータは、結果セットのコピー先となるメモリーを参照します。kv_release_parallel_scan_iterator()を使用して、このイテレータによって使用されるリソースを解放します。

  • sub_range

    sub_rangeパラメータは、parent_keyの下位の範囲を、このキー範囲のマイナー・パス・コンポーネントにまで、さらに制限します。NULLである可能性があります。

    キー範囲は、kv_init_key_range()を使用して構築します。

  • depth

    depthパラメータは、取得が可能な深さを指定します。子のみ、親とすべての子、すべての子孫などの取得を許可できます。すべての深さオプションについては、kv_depth_enumを参照してください。

  • direction

    directionパラメータは、イテレータによってレコードが返される順序を指定します。この関数では、kv_direction_enum.KV_DIRECTION_UNORDEREDのみがサポートされています。

  • batch_size

    batch_sizeパラメータは、各ネットワーク・ラウンド・トリップ中にフェッチするキーの推奨数を提供します。最初または最後のキーのみが必要な場合は、値1を渡すことをお薦めします。ゼロの場合は、内部で決定されたデフォルトが使用されます。

  • consistency

    consistencyパラメータは、この読取り操作で使用する一貫性ポリシーを識別します。一貫性ポリシーは、kv_create_simple_consistency()kv_create_time_consistency()またはkv_create_version_consistency()を使用して作成されます。

  • timeout_ms

    timeout_msパラメータは、操作を処理するための時間間隔の上限を指定します。指定された限度を超えないよう最善が尽くされます。ゼロの場合は、デフォルトの要求タイムアウトが使用されます。デフォルトの要求タイムアウトは、kv_config_set_timeouts()を使用して設定されます。

  • store_iterator_config

    store_iterator_configパラメータは、パラレル・スキャン操作を構成します。要求の最大数と結果バッチの最大数は両方とも、kv_store_iterator_config_t構造を使用して指定できます。