- 2.2.0 (latest)
- 2.1.0
- 2.0.1-RC1
- 1.106.0
- 1.105.1
- 1.104.1
- 1.103.0
- 1.102.0
- 1.101.0
- 1.100.0
- 1.98.0
- 1.97.0
- 1.96.0
- 1.95.0
- 1.94.0
- 1.93.1
- 1.92.1
- 1.91.0
- 1.90.0
- 1.89.0
- 1.88.0
- 1.87.0
- 1.86.0
- 1.85.0
- 1.84.0
- 1.83.0
- 1.82.0
- 1.81.0
- 1.80.0
- 1.79.0
- 1.78.0
- 1.77.0
- 1.76.1
- 1.68.0
- 1.67.0
- 1.66.0
- 1.65.0
- 1.64.0
- 1.63.2
- 1.62.1
- 1.61.0
- 1.60.0
- 1.59.0
- 1.58.4
- 1.57.0
- 1.56.0
- 1.55.0
- 1.54.2
Reference documentation and code samples for the Cloud Spanner V1 Client class RoutingHint.
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.
Generated from protobuf message google.spanner.v1.RoutingHint
Namespace
Google \ Cloud \ Spanner \ V1Methods
__construct
Constructor.
data
array
Optional. Data for populating the Message object.
↳ operation_uid
int|string
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.
↳ database_id
int|string
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
.
↳ schema_generation
string
The schema generation of the recipe that was used to generate key
and limit_key
. See also RecipeList.schema_generation
.
↳ key
string
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.
↳ limit_key
string
If this request targets a key range, this is the exclusive end of the range. See key
for more details.
↳ group_uid
int|string
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.
↳ split_id
int|string
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.
↳ tablet_uid
int|string
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
.
↳ skipped_tablet_uid
array< RoutingHint\SkippedTablet
>
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.
↳ client_location
string
If present, the client's current location. In the Spanner managed service, this should be the name of a Google Cloud zone or region, such as "us-central1". In Spanner Omni, this should correspond to a previously created location. 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.
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.
int|string
setOperationUid
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.
var
int|string
$this
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
.
int|string
setDatabaseId
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
.
var
int|string
$this
getSchemaGeneration
The schema generation of the recipe that was used to generate key
and limit_key
. See also RecipeList.schema_generation
.
string
setSchemaGeneration
The schema generation of the recipe that was used to generate key
and limit_key
. See also RecipeList.schema_generation
.
var
string
$this
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.
string
setKey
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.
var
string
$this
getLimitKey
If this request targets a key range, this is the exclusive end of the
range. See key
for more details.
string
setLimitKey
If this request targets a key range, this is the exclusive end of the
range. See key
for more details.
var
string
$this
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.
int|string
setGroupUid
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.
var
int|string
$this
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.
int|string
setSplitId
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.
var
int|string
$this
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
.
int|string
setTabletUid
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
.
var
int|string
$this
getSkippedTabletUid
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.
setSkippedTabletUid
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.
$this
getClientLocation
If present, the client's current location. In the Spanner managed service, this should be the name of a Google Cloud zone or region, such as "us-central1". In Spanner Omni, this should correspond to a previously created location.
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
setClientLocation
If present, the client's current location. In the Spanner managed service, this should be the name of a Google Cloud zone or region, such as "us-central1". In Spanner Omni, this should correspond to a previously created location.
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.
var
string
$this

