Class: Google::Cloud::Spanner::V1::RoutingHint

Inherits:
Object
  • Object
show all
Extended by:
Protobuf::MessageExts::ClassMethods
Includes:
Protobuf::MessageExts
Defined in:
proto_docs/google/spanner/v1/location.rb

Overview

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.

Defined Under Namespace

Classes: SkippedTablet

Instance Attribute Summary collapse

Instance Attribute Details

#client_location::String

Returns 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.

Returns:

  • (::String)

    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.



397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
# File 'proto_docs/google/spanner/v1/location.rb', line 397

class RoutingHint
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # A tablet that was skipped by the client. See `Tablet.tablet_uid` and
  # `Tablet.incarnation`.
  # @!attribute [rw] tablet_uid
  #   @return [::Integer]
  #     The tablet UID of the tablet that was skipped. See `Tablet.tablet_uid`.
  # @!attribute [rw] incarnation
  #   @return [::String]
  #     The incarnation of the tablet that was skipped. See `Tablet.incarnation`.
  class SkippedTablet
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end
end

#database_id::Integer

Returns 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.

Returns:

  • (::Integer)

    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.



397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
# File 'proto_docs/google/spanner/v1/location.rb', line 397

class RoutingHint
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # A tablet that was skipped by the client. See `Tablet.tablet_uid` and
  # `Tablet.incarnation`.
  # @!attribute [rw] tablet_uid
  #   @return [::Integer]
  #     The tablet UID of the tablet that was skipped. See `Tablet.tablet_uid`.
  # @!attribute [rw] incarnation
  #   @return [::String]
  #     The incarnation of the tablet that was skipped. See `Tablet.incarnation`.
  class SkippedTablet
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end
end

#group_uid::Integer

Returns 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.

Returns:

  • (::Integer)

    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.



397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
# File 'proto_docs/google/spanner/v1/location.rb', line 397

class RoutingHint
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # A tablet that was skipped by the client. See `Tablet.tablet_uid` and
  # `Tablet.incarnation`.
  # @!attribute [rw] tablet_uid
  #   @return [::Integer]
  #     The tablet UID of the tablet that was skipped. See `Tablet.tablet_uid`.
  # @!attribute [rw] incarnation
  #   @return [::String]
  #     The incarnation of the tablet that was skipped. See `Tablet.incarnation`.
  class SkippedTablet
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end
end

#key::String

Returns 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.

Returns:

  • (::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.



397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
# File 'proto_docs/google/spanner/v1/location.rb', line 397

class RoutingHint
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # A tablet that was skipped by the client. See `Tablet.tablet_uid` and
  # `Tablet.incarnation`.
  # @!attribute [rw] tablet_uid
  #   @return [::Integer]
  #     The tablet UID of the tablet that was skipped. See `Tablet.tablet_uid`.
  # @!attribute [rw] incarnation
  #   @return [::String]
  #     The incarnation of the tablet that was skipped. See `Tablet.incarnation`.
  class SkippedTablet
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end
end

#limit_key::String

Returns If this request targets a key range, this is the exclusive end of the range. See key for more details.

Returns:

  • (::String)

    If this request targets a key range, this is the exclusive end of the range. See key for more details.



397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
# File 'proto_docs/google/spanner/v1/location.rb', line 397

class RoutingHint
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # A tablet that was skipped by the client. See `Tablet.tablet_uid` and
  # `Tablet.incarnation`.
  # @!attribute [rw] tablet_uid
  #   @return [::Integer]
  #     The tablet UID of the tablet that was skipped. See `Tablet.tablet_uid`.
  # @!attribute [rw] incarnation
  #   @return [::String]
  #     The incarnation of the tablet that was skipped. See `Tablet.incarnation`.
  class SkippedTablet
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end
end

#operation_uid::Integer

Returns 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.

Returns:

  • (::Integer)

    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.



397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
# File 'proto_docs/google/spanner/v1/location.rb', line 397

class RoutingHint
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # A tablet that was skipped by the client. See `Tablet.tablet_uid` and
  # `Tablet.incarnation`.
  # @!attribute [rw] tablet_uid
  #   @return [::Integer]
  #     The tablet UID of the tablet that was skipped. See `Tablet.tablet_uid`.
  # @!attribute [rw] incarnation
  #   @return [::String]
  #     The incarnation of the tablet that was skipped. See `Tablet.incarnation`.
  class SkippedTablet
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end
end

#schema_generation::String

Returns The schema generation of the recipe that was used to generate key and limit_key. See also RecipeList.schema_generation.

Returns:

  • (::String)

    The schema generation of the recipe that was used to generate key and limit_key. See also RecipeList.schema_generation.



397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
# File 'proto_docs/google/spanner/v1/location.rb', line 397

class RoutingHint
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # A tablet that was skipped by the client. See `Tablet.tablet_uid` and
  # `Tablet.incarnation`.
  # @!attribute [rw] tablet_uid
  #   @return [::Integer]
  #     The tablet UID of the tablet that was skipped. See `Tablet.tablet_uid`.
  # @!attribute [rw] incarnation
  #   @return [::String]
  #     The incarnation of the tablet that was skipped. See `Tablet.incarnation`.
  class SkippedTablet
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end
end

#skipped_tablet_uid::Array<::Google::Cloud::Spanner::V1::RoutingHint::SkippedTablet>

Returns 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.

Returns:

  • (::Array<::Google::Cloud::Spanner::V1::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.



397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
# File 'proto_docs/google/spanner/v1/location.rb', line 397

class RoutingHint
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # A tablet that was skipped by the client. See `Tablet.tablet_uid` and
  # `Tablet.incarnation`.
  # @!attribute [rw] tablet_uid
  #   @return [::Integer]
  #     The tablet UID of the tablet that was skipped. See `Tablet.tablet_uid`.
  # @!attribute [rw] incarnation
  #   @return [::String]
  #     The incarnation of the tablet that was skipped. See `Tablet.incarnation`.
  class SkippedTablet
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end
end

#split_id::Integer

Returns 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.

Returns:

  • (::Integer)

    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.



397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
# File 'proto_docs/google/spanner/v1/location.rb', line 397

class RoutingHint
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # A tablet that was skipped by the client. See `Tablet.tablet_uid` and
  # `Tablet.incarnation`.
  # @!attribute [rw] tablet_uid
  #   @return [::Integer]
  #     The tablet UID of the tablet that was skipped. See `Tablet.tablet_uid`.
  # @!attribute [rw] incarnation
  #   @return [::String]
  #     The incarnation of the tablet that was skipped. See `Tablet.incarnation`.
  class SkippedTablet
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end
end

#tablet_uid::Integer

Returns 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.

Returns:

  • (::Integer)

    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.



397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
# File 'proto_docs/google/spanner/v1/location.rb', line 397

class RoutingHint
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # A tablet that was skipped by the client. See `Tablet.tablet_uid` and
  # `Tablet.incarnation`.
  # @!attribute [rw] tablet_uid
  #   @return [::Integer]
  #     The tablet UID of the tablet that was skipped. See `Tablet.tablet_uid`.
  # @!attribute [rw] incarnation
  #   @return [::String]
  #     The incarnation of the tablet that was skipped. See `Tablet.incarnation`.
  class SkippedTablet
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end
end