Class RoutingHint (6.107.0)

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

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()
Returns
Type Description
RoutingHint

getDescriptor()

public static final Descriptors.Descriptor getDescriptor()
Returns
Type Description
Descriptor

newBuilder()

public static RoutingHint.Builder newBuilder()
Returns
Type Description
RoutingHint.Builder

newBuilder(RoutingHint prototype)

public static RoutingHint.Builder newBuilder(RoutingHint prototype)
Parameter
Name Description
prototype RoutingHint
Returns
Type Description
RoutingHint.Builder

parseDelimitedFrom(InputStream input)

public static RoutingHint parseDelimitedFrom(InputStream input)
Parameter
Name Description
input InputStream
Returns
Type Description
RoutingHint
Exceptions
Type Description
IOException

parseDelimitedFrom(InputStream input, ExtensionRegistryLite extensionRegistry)

public static RoutingHint parseDelimitedFrom(InputStream input, ExtensionRegistryLite extensionRegistry)
Parameters
Name Description
input InputStream
extensionRegistry ExtensionRegistryLite
Returns
Type Description
RoutingHint
Exceptions
Type Description
IOException

parseFrom(byte[] data)

public static RoutingHint parseFrom(byte[] data)
Parameter
Name Description
data byte[]
Returns
Type Description
RoutingHint
Exceptions
Type Description
InvalidProtocolBufferException

parseFrom(byte[] data, ExtensionRegistryLite extensionRegistry)

public static RoutingHint parseFrom(byte[] data, ExtensionRegistryLite extensionRegistry)
Parameters
Name Description
data byte[]
extensionRegistry ExtensionRegistryLite
Returns
Type Description
RoutingHint
Exceptions
Type Description
InvalidProtocolBufferException

parseFrom(ByteString data)

public static RoutingHint parseFrom(ByteString data)
Parameter
Name Description
data ByteString
Returns
Type Description
RoutingHint
Exceptions
Type Description
InvalidProtocolBufferException

parseFrom(ByteString data, ExtensionRegistryLite extensionRegistry)

public static RoutingHint parseFrom(ByteString data, ExtensionRegistryLite extensionRegistry)
Parameters
Name Description
data ByteString
extensionRegistry ExtensionRegistryLite
Returns
Type Description
RoutingHint
Exceptions
Type Description
InvalidProtocolBufferException

parseFrom(CodedInputStream input)

public static RoutingHint parseFrom(CodedInputStream input)
Parameter
Name Description
input CodedInputStream
Returns
Type Description
RoutingHint
Exceptions
Type Description
IOException

parseFrom(CodedInputStream input, ExtensionRegistryLite extensionRegistry)

public static RoutingHint parseFrom(CodedInputStream input, ExtensionRegistryLite extensionRegistry)
Parameters
Name Description
input CodedInputStream
extensionRegistry ExtensionRegistryLite
Returns
Type Description
RoutingHint
Exceptions
Type Description
IOException

parseFrom(InputStream input)

public static RoutingHint parseFrom(InputStream input)
Parameter
Name Description
input InputStream
Returns
Type Description
RoutingHint
Exceptions
Type Description
IOException

parseFrom(InputStream input, ExtensionRegistryLite extensionRegistry)

public static RoutingHint parseFrom(InputStream input, ExtensionRegistryLite extensionRegistry)
Parameters
Name Description
input InputStream
extensionRegistry ExtensionRegistryLite
Returns
Type Description
RoutingHint
Exceptions
Type Description
IOException

parseFrom(ByteBuffer data)

public static RoutingHint parseFrom(ByteBuffer data)
Parameter
Name Description
data ByteBuffer
Returns
Type Description
RoutingHint
Exceptions
Type Description
InvalidProtocolBufferException

parseFrom(ByteBuffer data, ExtensionRegistryLite extensionRegistry)

public static RoutingHint parseFrom(ByteBuffer data, ExtensionRegistryLite extensionRegistry)
Parameters
Name Description
data ByteBuffer
extensionRegistry ExtensionRegistryLite
Returns
Type Description
RoutingHint
Exceptions
Type Description
InvalidProtocolBufferException

parser()

public static Parser<RoutingHint> parser()
Returns
Type Description
Parser<RoutingHint>

Methods

equals(Object obj)

public boolean equals(Object obj)
Parameter
Name Description
obj Object
Returns
Type Description
boolean
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()
Returns
Type Description
RoutingHint

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;

Returns
Type Description
ByteString

The key.

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;

Returns
Type Description
ByteString

The limitKey.

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()
Returns
Type Description
Parser<RoutingHint>
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
Returns
Type Description
RoutingHint.SkippedTablet

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;

Returns
Type Description
List<SkippedTablet>

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
Returns
Type Description
RoutingHint.SkippedTabletOrBuilder

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()

public long 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()

public int hashCode()
Returns
Type Description
int
Overrides

internalGetFieldAccessorTable()

protected GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
Returns
Type Description
FieldAccessorTable
Overrides

isInitialized()

public final boolean isInitialized()
Returns
Type Description
boolean
Overrides

newBuilderForType()

public RoutingHint.Builder newBuilderForType()
Returns
Type Description
RoutingHint.Builder

newBuilderForType(GeneratedMessageV3.BuilderParent parent)

protected RoutingHint.Builder newBuilderForType(GeneratedMessageV3.BuilderParent parent)
Parameter
Name Description
parent BuilderParent
Returns
Type Description
RoutingHint.Builder
Overrides

newInstance(GeneratedMessageV3.UnusedPrivateParameter unused)

protected Object newInstance(GeneratedMessageV3.UnusedPrivateParameter unused)
Parameter
Name Description
unused UnusedPrivateParameter
Returns
Type Description
Object
Overrides

toBuilder()

public RoutingHint.Builder toBuilder()
Returns
Type Description
RoutingHint.Builder

writeTo(CodedOutputStream output)

public void writeTo(CodedOutputStream output)
Parameter
Name Description
output CodedOutputStream
Overrides
Exceptions
Type Description
IOException