Class ClientIndexMultiRangeScanRequest
Each range's partition results are merged in index-key order via indexKeyOrderedMerge into
their own cursor, and the response carries the cursors positionally: cursor i holds the rows for
range i, so no value comparison is needed to attribute rows to ranges.
The prefetch-mode byte selects the cursor mode. ClientIndexCommon.CursorMode.PER_KEY_LAZY (lazy): only the first
range's first page is delivered in the response; the rest arrive empty with hasMore=true and start
their scans on the first INDEX_CURSOR_NEXT_PAGE request. ClientIndexCommon.CursorMode.PER_KEY_EAGER (eager):
every range's first page is prefetched before the response is written.
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); intrange count N (must be positive);- N ranges, each a lower then an upper bound:
boolpresent, and when presentboolinclusive followed bybinaryprefix bytes (BinaryTuplePrefix-encoded); bytedirection (0 = forward, 1 = reverse) applied to every range;byteprefetch mode (0 = lazy, 1 = eager);intpage size (must be positive);longclient observable timestamp.
The response carries one self-delimiting block per cursor in range 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
-
ClientIndexMultiRangeScanRequest
public ClientIndexMultiRangeScanRequest()
-
-
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.
-