Class ClientIndexGetBatchRequest
java.lang.Object
org.apache.ignite.client.handler.requests.table.ClientIndexGetBatchRequest
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):
intindex id;- tx meta (
nil- server starts an explicit RO tx); BitSetcolumn bitmap for projection (nullor empty = all columns);- partition list (
nil= scan every partition; otherwise anintcount followed by that manyintpartition ids, scoping the scan to those partitions - read-only tx only); intkey count N (must be positive);- N x
binaryindex-key bytes, each encoded as aBinaryTupleover the index columns; intpage size (must be positive);longclient observable timestamp.
The response carries one self-delimiting block per cursor in key order; see ClientIndexCommon
for the exact framing.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic 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 NotificationSender notificationSender, long requestId, Map<Long, Long> reqToTxMap) Processes the request.
-
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.
-