public final class RoutingHint extends GeneratedMessageV3 implements RoutingHintOrBuilder
RoutingHint can be optionally added to location-aware Spanner
requests. It gives the server hints that can be used to route the request to
an appropriate server, potentially significantly decreasing latency and
improving throughput. To achieve improved performance, most fields must be
filled in with accurate values.
The presence of a valid RoutingHint tells the server that the client
is location-aware.
RoutingHint does not change the semantics of the request; it is
purely a performance hint; the request will perform the same actions on the
database's data as if RoutingHint were not present. However, if
the RoutingHint is incomplete or incorrect, the response may include
a CacheUpdate the client can use to correct its location cache.
Protobuf type google.spanner.v1.RoutingHint
Inherited Members
com.google.protobuf.GeneratedMessageV3.<ListT>makeMutableCopy(ListT)
com.google.protobuf.GeneratedMessageV3.<ListT>makeMutableCopy(ListT,int)
com.google.protobuf.GeneratedMessageV3.<T>emptyList(java.lang.Class<T>)
com.google.protobuf.GeneratedMessageV3.internalGetMapFieldReflection(int)
Static Fields
CLIENT_LOCATION_FIELD_NUMBER
public static final int CLIENT_LOCATION_FIELD_NUMBER
| Field Value |
| Type |
Description |
int |
|
DATABASE_ID_FIELD_NUMBER
public static final int DATABASE_ID_FIELD_NUMBER
| Field Value |
| Type |
Description |
int |
|
GROUP_UID_FIELD_NUMBER
public static final int GROUP_UID_FIELD_NUMBER
| Field Value |
| Type |
Description |
int |
|
KEY_FIELD_NUMBER
public static final int KEY_FIELD_NUMBER
| Field Value |
| Type |
Description |
int |
|
LIMIT_KEY_FIELD_NUMBER
public static final int LIMIT_KEY_FIELD_NUMBER
| Field Value |
| Type |
Description |
int |
|
OPERATION_UID_FIELD_NUMBER
public static final int OPERATION_UID_FIELD_NUMBER
| Field Value |
| Type |
Description |
int |
|
SCHEMA_GENERATION_FIELD_NUMBER
public static final int SCHEMA_GENERATION_FIELD_NUMBER
| Field Value |
| Type |
Description |
int |
|
SKIPPED_TABLET_UID_FIELD_NUMBER
public static final int SKIPPED_TABLET_UID_FIELD_NUMBER
| Field Value |
| Type |
Description |
int |
|
SPLIT_ID_FIELD_NUMBER
public static final int SPLIT_ID_FIELD_NUMBER
| Field Value |
| Type |
Description |
int |
|
TABLET_UID_FIELD_NUMBER
public static final int TABLET_UID_FIELD_NUMBER
| Field Value |
| Type |
Description |
int |
|
Static Methods
getDefaultInstance()
public static RoutingHint getDefaultInstance()
getDescriptor()
public static final Descriptors.Descriptor getDescriptor()
newBuilder()
public static RoutingHint.Builder newBuilder()
newBuilder(RoutingHint prototype)
public static RoutingHint.Builder newBuilder(RoutingHint prototype)
public static RoutingHint parseDelimitedFrom(InputStream input)
public static RoutingHint parseDelimitedFrom(InputStream input, ExtensionRegistryLite extensionRegistry)
parseFrom(byte[] data)
public static RoutingHint parseFrom(byte[] data)
| Parameter |
| Name |
Description |
data |
byte[]
|
parseFrom(byte[] data, ExtensionRegistryLite extensionRegistry)
public static RoutingHint parseFrom(byte[] data, ExtensionRegistryLite extensionRegistry)
parseFrom(ByteString data)
public static RoutingHint parseFrom(ByteString data)
parseFrom(ByteString data, ExtensionRegistryLite extensionRegistry)
public static RoutingHint parseFrom(ByteString data, ExtensionRegistryLite extensionRegistry)
public static RoutingHint parseFrom(CodedInputStream input)
public static RoutingHint parseFrom(CodedInputStream input, ExtensionRegistryLite extensionRegistry)
public static RoutingHint parseFrom(InputStream input)
public static RoutingHint parseFrom(InputStream input, ExtensionRegistryLite extensionRegistry)
parseFrom(ByteBuffer data)
public static RoutingHint parseFrom(ByteBuffer data)
parseFrom(ByteBuffer data, ExtensionRegistryLite extensionRegistry)
public static RoutingHint parseFrom(ByteBuffer data, ExtensionRegistryLite extensionRegistry)
parser()
public static Parser<RoutingHint> parser()
Methods
equals(Object obj)
public boolean equals(Object obj)
| Parameter |
| Name |
Description |
obj |
Object
|
Overrides
getClientLocation()
public String getClientLocation()
If present, the client's current location. This should be the name of a
Google Cloud zone or region, such as "us-central1".
If absent, the client's location will be assumed to be the same as the
location of the server the client ends up connected to.
Locations are primarily valuable for clients that connect from regions
other than the ones that contain the Spanner database.
string client_location = 10;
| Returns |
| Type |
Description |
String |
The clientLocation.
|
getClientLocationBytes()
public ByteString getClientLocationBytes()
If present, the client's current location. This should be the name of a
Google Cloud zone or region, such as "us-central1".
If absent, the client's location will be assumed to be the same as the
location of the server the client ends up connected to.
Locations are primarily valuable for clients that connect from regions
other than the ones that contain the Spanner database.
string client_location = 10;
| Returns |
| Type |
Description |
ByteString |
The bytes for clientLocation.
|
getDatabaseId()
public long getDatabaseId()
The database ID of the database being accessed, see
CacheUpdate.database_id. Should match the cache entries that were used
to generate the rest of the fields in this RoutingHint.
uint64 database_id = 2;
| Returns |
| Type |
Description |
long |
The databaseId.
|
getDefaultInstanceForType()
public RoutingHint getDefaultInstanceForType()
getGroupUid()
public long getGroupUid()
The group UID of the group that the client believes serves the range
defined by key and limit_key. See Range.group_uid for more details.
uint64 group_uid = 6;
| Returns |
| Type |
Description |
long |
The groupUid.
|
getKey()
public ByteString getKey()
The key / key range that this request accesses. For operations that
access a single key, key should be set and limit_key should be empty.
For operations that access a key range, key and limit_key should both
be set, to the inclusive start and exclusive end of the range respectively.
The keys are encoded in "sortable string format" (ssformat), using a
KeyRecipe that is appropriate for the request. See KeyRecipe for more
details.
bytes key = 4;
getLimitKey()
public ByteString getLimitKey()
If this request targets a key range, this is the exclusive end of the
range. See key for more details.
bytes limit_key = 5;
getOperationUid()
public long getOperationUid()
A session-scoped unique ID for the operation, computed client-side.
Requests with the same operation_uid should have a shared 'shape',
meaning that some fields are expected to be the same, such as the SQL
query, the target table/columns (for reads) etc. Requests with the same
operation_uid are meant to differ only in fields like keys/key
ranges/query parameters, transaction IDs, etc.
operation_uid must be non-zero for RoutingHint to be valid.
uint64 operation_uid = 1;
| Returns |
| Type |
Description |
long |
The operationUid.
|
getParserForType()
public Parser<RoutingHint> getParserForType()
Overrides
getSchemaGeneration()
public ByteString getSchemaGeneration()
The schema generation of the recipe that was used to generate key and
limit_key. See also RecipeList.schema_generation.
bytes schema_generation = 3;
| Returns |
| Type |
Description |
ByteString |
The schemaGeneration.
|
getSerializedSize()
public int getSerializedSize()
| Returns |
| Type |
Description |
int |
|
Overrides
getSkippedTabletUid(int index)
public RoutingHint.SkippedTablet getSkippedTabletUid(int index)
If the client had multiple options for tablet selection, and some of its
first choices were unhealthy (e.g., the server is unreachable, or
Tablet.skip is true), this field will contain the tablet UIDs of those
tablets, with their incarnations. The server may include a CacheUpdate
with new locations for those tablets.
repeated .google.spanner.v1.RoutingHint.SkippedTablet skipped_tablet_uid = 9;
| Parameter |
| Name |
Description |
index |
int
|
getSkippedTabletUidCount()
public int getSkippedTabletUidCount()
If the client had multiple options for tablet selection, and some of its
first choices were unhealthy (e.g., the server is unreachable, or
Tablet.skip is true), this field will contain the tablet UIDs of those
tablets, with their incarnations. The server may include a CacheUpdate
with new locations for those tablets.
repeated .google.spanner.v1.RoutingHint.SkippedTablet skipped_tablet_uid = 9;
| Returns |
| Type |
Description |
int |
|
getSkippedTabletUidList()
public List<RoutingHint.SkippedTablet> getSkippedTabletUidList()
If the client had multiple options for tablet selection, and some of its
first choices were unhealthy (e.g., the server is unreachable, or
Tablet.skip is true), this field will contain the tablet UIDs of those
tablets, with their incarnations. The server may include a CacheUpdate
with new locations for those tablets.
repeated .google.spanner.v1.RoutingHint.SkippedTablet skipped_tablet_uid = 9;
getSkippedTabletUidOrBuilder(int index)
public RoutingHint.SkippedTabletOrBuilder getSkippedTabletUidOrBuilder(int index)
If the client had multiple options for tablet selection, and some of its
first choices were unhealthy (e.g., the server is unreachable, or
Tablet.skip is true), this field will contain the tablet UIDs of those
tablets, with their incarnations. The server may include a CacheUpdate
with new locations for those tablets.
repeated .google.spanner.v1.RoutingHint.SkippedTablet skipped_tablet_uid = 9;
| Parameter |
| Name |
Description |
index |
int
|
getSkippedTabletUidOrBuilderList()
public List<? extends RoutingHint.SkippedTabletOrBuilder> getSkippedTabletUidOrBuilderList()
If the client had multiple options for tablet selection, and some of its
first choices were unhealthy (e.g., the server is unreachable, or
Tablet.skip is true), this field will contain the tablet UIDs of those
tablets, with their incarnations. The server may include a CacheUpdate
with new locations for those tablets.
repeated .google.spanner.v1.RoutingHint.SkippedTablet skipped_tablet_uid = 9;
| Returns |
| Type |
Description |
List<? extends com.google.spanner.v1.RoutingHint.SkippedTabletOrBuilder> |
|
getSplitId()
The split ID of the split that the client believes contains the range
defined by key and limit_key. See Range.split_id for more details.
uint64 split_id = 7;
| Returns |
| Type |
Description |
long |
The splitId.
|
getTabletUid()
public long getTabletUid()
The tablet UID of the tablet from group group_uid that the client
believes is best to serve this request. See Group.local_tablet_uids and
Group.leader_tablet_uid.
uint64 tablet_uid = 8;
| Returns |
| Type |
Description |
long |
The tabletUid.
|
hashCode()
| Returns |
| Type |
Description |
int |
|
Overrides
internalGetFieldAccessorTable()
protected GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
Overrides
isInitialized()
public final boolean isInitialized()
Overrides
newBuilderForType()
public RoutingHint.Builder newBuilderForType()
newBuilderForType(GeneratedMessageV3.BuilderParent parent)
protected RoutingHint.Builder newBuilderForType(GeneratedMessageV3.BuilderParent parent)
Overrides
newInstance(GeneratedMessageV3.UnusedPrivateParameter unused)
protected Object newInstance(GeneratedMessageV3.UnusedPrivateParameter unused)
| Returns |
| Type |
Description |
Object |
|
Overrides
toBuilder()
public RoutingHint.Builder toBuilder()
writeTo(CodedOutputStream output)
public void writeTo(CodedOutputStream output)
Overrides