Class ClientIndexGetBatchRequest

java.lang.Object
org.apache.ignite.client.handler.requests.table.ClientIndexGetBatchRequest

public class ClientIndexGetBatchRequest extends Object
Client request: look up rows by multiple index keys, returning one cursor per key.

Fans out NxM partition scans on the server (N keys x M partitions). Each key's partition results are merged into their own cursor via anyOrderMerge, and the response carries the cursors positionally: cursor i holds the rows for key i, so no value comparison is needed to attribute rows to keys. A key that matches nothing yields an empty cursor at its slot.

TODO GG-49218: there should be not NxM network request, but K requests (one to a node), each of them resulting in querying local partition.

Request wire layout (in order):

  • int index id;
  • tx meta (nil - server starts an explicit RO tx);
  • BitSet column bitmap for projection (null or empty = all columns);
  • partition list (nil = scan every partition; otherwise an int count followed by that many int partition ids, scoping the scan to those partitions - read-only tx only);
  • int key count N (must be positive);
  • N x binary index-key bytes, each encoded as a BinaryTuple over the index columns;
  • int page size (must be positive);
  • long client observable timestamp.

The response carries one self-delimiting block per cursor in key order; see ClientIndexCommon for the exact framing.

  • Constructor Details

    • ClientIndexGetBatchRequest

      public ClientIndexGetBatchRequest()
  • Method Details

    • process

      public static CompletableFuture<ResponseWriter> process(org.apache.ignite.internal.client.proto.ClientMessageUnpacker in, org.apache.ignite.internal.table.IgniteTablesInternal tables, org.apache.ignite.internal.catalog.CatalogService catalogService, org.apache.ignite.internal.schema.SchemaSyncService schemaSyncService, org.apache.ignite.internal.network.ClusterService clusterService, ClientResourceRegistry resources, ClientHandlerMetricSource metrics, org.apache.ignite.internal.tx.TxManager txManager, ClientPrimaryReplicaTracker primaryReplicaTracker, org.apache.ignite.internal.hlc.ClockService clockService, org.gridgain.internal.license.LicenseFeatureChecker licenseFeatureChecker, org.apache.ignite.internal.hlc.HybridTimestampTracker tsTracker, @Nullable @Nullable NotificationSender notificationSender, long requestId, Map<Long,Long> reqToTxMap)
      Processes the request.