Prepare for parallelizable
[secondary index queries][../secondary-indexes/] by requesting a
coverage plan. The response will be multiple slices of the cluster, as
identified by a TCP endpoint and an opaque binary to be included with
each 2i query.
Request
message RpbCoverageReq {
optional bytes type = 1;
required bytes bucket = 2;
optional uint32 min_partitions = 3;
optional bytes replace_cover = 4;
repeated bytes unavailable_cover = 5;
}
Required Parameters
Parameter |
Description |
bucket |
The name of the bucket in which the data is stored |
Optional Parameters
Parameter |
Description |
type |
The name of the bucket type, if this bucket is not in the default (pre-2.0) bucket type. |
min_partitions |
The minimum number of cluster slices. undefined results in a direct map of the internal coverage plan, which targets the minimum number of nodes necessary to retrieve all data. An integer will be rounded up to the nearest power of 2 greater than or equal to the ring size. |
replace_cover |
If a client cannot reach the server designated by a previous coverage response, the opaque binary can be sent with a new coverage request via this parameter and a new plan component will be calculated and returned. |
unavailable_cover |
List of opaque binaries representing other unreachable endpoints to help Riak determine what servers the client cannot currently use. |
Response
The results of a coverage query are returned as a list of endpoints
with opaque binaries to be included with secondary index queries.
message RpbCoverageResp {
repeated RpbCoverageEntry entries = 1;
}
message RpbCoverageEntry {
required bytes ip = 1;
required uint32 port = 2;
optional bytes keyspace_desc = 3;
required bytes cover_context = 4;
}
Values
Parameter |
Description |
ip |
The IP address of the server containing a subset of the data. Depending on the environment, this address may require local translation to deal with routing or firewall constraints. |
port |
The port to contact on the server. |
keyspace_desc |
A human-readable description of the keyspace. Not intended to be used programmatically except potentially for logging. |
cover_context |
The opaque binary to be used in secondary index queries (and possibly future coverage queries to indicate that this server appears offline or otherwise non-functional to the client). |