Class: Google::Cloud::Spanner::V1::ChangeStreamRecord::PartitionEventRecord

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

Overview

A partition event record describes key range changes for a change stream partition. The changes to a row defined by its primary key can be captured in one change stream partition for a specific time range, and then be captured in a different change stream partition for a different time range. This movement of key ranges across change stream partitions is a reflection of activities, such as Spanner's dynamic splitting and load balancing, etc. Processing this event is needed if users want to guarantee processing of the changes for any key in timestamp order. If time ordered processing of changes for a primary key is not needed, this event can be ignored. To guarantee time ordered processing for each primary key, if the event describes move-ins, the reader of this partition needs to wait until the readers of the source partitions have processed all records with timestamps <= this PartitionEventRecord.commit_timestamp, before advancing beyond this PartitionEventRecord. If the event describes move-outs, the reader can notify the readers of the destination partitions that they can continue processing.

Defined Under Namespace

Classes: MoveInEvent, MoveOutEvent

Instance Attribute Summary collapse

Instance Attribute Details

#commit_timestamp::Google::Protobuf::Timestamp

Returns Indicates the commit timestamp at which the key range change occurred. DataChangeRecord.commit_timestamps, PartitionStartRecord.start_timestamps, PartitionEventRecord.commit_timestamps, and PartitionEndRecord.end_timestamps can have the same value in the same partition.

Returns:

  • (::Google::Protobuf::Timestamp)

    Indicates the commit timestamp at which the key range change occurred. DataChangeRecord.commit_timestamps, PartitionStartRecord.start_timestamps, PartitionEventRecord.commit_timestamps, and PartitionEndRecord.end_timestamps can have the same value in the same partition.



437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
# File 'proto_docs/google/spanner/v1/change_stream.rb', line 437

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

  # Describes move-in of the key ranges into the change stream partition
  # identified by
  # {::Google::Cloud::Spanner::V1::ChangeStreamRecord::PartitionEventRecord#partition_token partition_token}.
  #
  # To maintain processing the changes for a particular key in timestamp
  # order, the query processing the change stream partition identified by
  # {::Google::Cloud::Spanner::V1::ChangeStreamRecord::PartitionEventRecord#partition_token partition_token}
  # should not advance beyond the partition event record commit timestamp
  # until the queries processing the source change stream partitions have
  # processed all change stream records with timestamps <= the partition
  # event record commit timestamp.
  # @!attribute [rw] source_partition_token
  #   @return [::String]
  #     An unique partition identifier describing the source change stream
  #     partition that recorded changes for the key range that is moving
  #     into this partition.
  class MoveInEvent
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Describes move-out of the key ranges out of the change stream partition
  # identified by
  # {::Google::Cloud::Spanner::V1::ChangeStreamRecord::PartitionEventRecord#partition_token partition_token}.
  #
  # To maintain processing the changes for a particular key in timestamp
  # order, the query processing the
  # {::Google::Cloud::Spanner::V1::ChangeStreamRecord::PartitionEventRecord::MoveOutEvent MoveOutEvent}
  # in the partition identified by
  # {::Google::Cloud::Spanner::V1::ChangeStreamRecord::PartitionEventRecord#partition_token partition_token}
  # should inform the queries processing the destination partitions that
  # they can unblock and proceed processing records past the
  # {::Google::Cloud::Spanner::V1::ChangeStreamRecord::PartitionEventRecord#commit_timestamp commit_timestamp}.
  # @!attribute [rw] destination_partition_token
  #   @return [::String]
  #     An unique partition identifier describing the destination change
  #     stream partition that will record changes for the key range that is
  #     moving out of this partition.
  class MoveOutEvent
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end
end

#move_in_events::Array<::Google::Cloud::Spanner::V1::ChangeStreamRecord::PartitionEventRecord::MoveInEvent>

Returns Set when one or more key ranges are moved into the change stream partition identified by partition_token.

Example: Two key ranges are moved into partition (P1) from partition (P2) and partition (P3) in a single transaction at timestamp T.

The PartitionEventRecord returned in P1 will reflect the move as:

PartitionEventRecord { commit_timestamp: T partition_token: "P1" move_in_events { source_partition_token: "P2" } move_in_events { source_partition_token: "P3" } }

The PartitionEventRecord returned in P2 will reflect the move as:

PartitionEventRecord { commit_timestamp: T partition_token: "P2" move_out_events { destination_partition_token: "P1" } }

The PartitionEventRecord returned in P3 will reflect the move as:

PartitionEventRecord { commit_timestamp: T partition_token: "P3" move_out_events { destination_partition_token: "P1" } }.

Returns:

  • (::Array<::Google::Cloud::Spanner::V1::ChangeStreamRecord::PartitionEventRecord::MoveInEvent>)

    Set when one or more key ranges are moved into the change stream partition identified by partition_token.

    Example: Two key ranges are moved into partition (P1) from partition (P2) and partition (P3) in a single transaction at timestamp T.

    The PartitionEventRecord returned in P1 will reflect the move as:

    PartitionEventRecord { commit_timestamp: T partition_token: "P1" move_in_events { source_partition_token: "P2" } move_in_events { source_partition_token: "P3" } }

    The PartitionEventRecord returned in P2 will reflect the move as:

    PartitionEventRecord { commit_timestamp: T partition_token: "P2" move_out_events { destination_partition_token: "P1" } }

    The PartitionEventRecord returned in P3 will reflect the move as:

    PartitionEventRecord { commit_timestamp: T partition_token: "P3" move_out_events { destination_partition_token: "P1" } }



437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
# File 'proto_docs/google/spanner/v1/change_stream.rb', line 437

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

  # Describes move-in of the key ranges into the change stream partition
  # identified by
  # {::Google::Cloud::Spanner::V1::ChangeStreamRecord::PartitionEventRecord#partition_token partition_token}.
  #
  # To maintain processing the changes for a particular key in timestamp
  # order, the query processing the change stream partition identified by
  # {::Google::Cloud::Spanner::V1::ChangeStreamRecord::PartitionEventRecord#partition_token partition_token}
  # should not advance beyond the partition event record commit timestamp
  # until the queries processing the source change stream partitions have
  # processed all change stream records with timestamps <= the partition
  # event record commit timestamp.
  # @!attribute [rw] source_partition_token
  #   @return [::String]
  #     An unique partition identifier describing the source change stream
  #     partition that recorded changes for the key range that is moving
  #     into this partition.
  class MoveInEvent
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Describes move-out of the key ranges out of the change stream partition
  # identified by
  # {::Google::Cloud::Spanner::V1::ChangeStreamRecord::PartitionEventRecord#partition_token partition_token}.
  #
  # To maintain processing the changes for a particular key in timestamp
  # order, the query processing the
  # {::Google::Cloud::Spanner::V1::ChangeStreamRecord::PartitionEventRecord::MoveOutEvent MoveOutEvent}
  # in the partition identified by
  # {::Google::Cloud::Spanner::V1::ChangeStreamRecord::PartitionEventRecord#partition_token partition_token}
  # should inform the queries processing the destination partitions that
  # they can unblock and proceed processing records past the
  # {::Google::Cloud::Spanner::V1::ChangeStreamRecord::PartitionEventRecord#commit_timestamp commit_timestamp}.
  # @!attribute [rw] destination_partition_token
  #   @return [::String]
  #     An unique partition identifier describing the destination change
  #     stream partition that will record changes for the key range that is
  #     moving out of this partition.
  class MoveOutEvent
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end
end

#move_out_events::Array<::Google::Cloud::Spanner::V1::ChangeStreamRecord::PartitionEventRecord::MoveOutEvent>

Returns Set when one or more key ranges are moved out of the change stream partition identified by partition_token.

Example: Two key ranges are moved out of partition (P1) to partition (P2) and partition (P3) in a single transaction at timestamp T.

The PartitionEventRecord returned in P1 will reflect the move as:

PartitionEventRecord { commit_timestamp: T partition_token: "P1" move_out_events { destination_partition_token: "P2" } move_out_events { destination_partition_token: "P3" } }

The PartitionEventRecord returned in P2 will reflect the move as:

PartitionEventRecord { commit_timestamp: T partition_token: "P2" move_in_events { source_partition_token: "P1" } }

The PartitionEventRecord returned in P3 will reflect the move as:

PartitionEventRecord { commit_timestamp: T partition_token: "P3" move_in_events { source_partition_token: "P1" } }.

Returns:

  • (::Array<::Google::Cloud::Spanner::V1::ChangeStreamRecord::PartitionEventRecord::MoveOutEvent>)

    Set when one or more key ranges are moved out of the change stream partition identified by partition_token.

    Example: Two key ranges are moved out of partition (P1) to partition (P2) and partition (P3) in a single transaction at timestamp T.

    The PartitionEventRecord returned in P1 will reflect the move as:

    PartitionEventRecord { commit_timestamp: T partition_token: "P1" move_out_events { destination_partition_token: "P2" } move_out_events { destination_partition_token: "P3" } }

    The PartitionEventRecord returned in P2 will reflect the move as:

    PartitionEventRecord { commit_timestamp: T partition_token: "P2" move_in_events { source_partition_token: "P1" } }

    The PartitionEventRecord returned in P3 will reflect the move as:

    PartitionEventRecord { commit_timestamp: T partition_token: "P3" move_in_events { source_partition_token: "P1" } }



437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
# File 'proto_docs/google/spanner/v1/change_stream.rb', line 437

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

  # Describes move-in of the key ranges into the change stream partition
  # identified by
  # {::Google::Cloud::Spanner::V1::ChangeStreamRecord::PartitionEventRecord#partition_token partition_token}.
  #
  # To maintain processing the changes for a particular key in timestamp
  # order, the query processing the change stream partition identified by
  # {::Google::Cloud::Spanner::V1::ChangeStreamRecord::PartitionEventRecord#partition_token partition_token}
  # should not advance beyond the partition event record commit timestamp
  # until the queries processing the source change stream partitions have
  # processed all change stream records with timestamps <= the partition
  # event record commit timestamp.
  # @!attribute [rw] source_partition_token
  #   @return [::String]
  #     An unique partition identifier describing the source change stream
  #     partition that recorded changes for the key range that is moving
  #     into this partition.
  class MoveInEvent
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Describes move-out of the key ranges out of the change stream partition
  # identified by
  # {::Google::Cloud::Spanner::V1::ChangeStreamRecord::PartitionEventRecord#partition_token partition_token}.
  #
  # To maintain processing the changes for a particular key in timestamp
  # order, the query processing the
  # {::Google::Cloud::Spanner::V1::ChangeStreamRecord::PartitionEventRecord::MoveOutEvent MoveOutEvent}
  # in the partition identified by
  # {::Google::Cloud::Spanner::V1::ChangeStreamRecord::PartitionEventRecord#partition_token partition_token}
  # should inform the queries processing the destination partitions that
  # they can unblock and proceed processing records past the
  # {::Google::Cloud::Spanner::V1::ChangeStreamRecord::PartitionEventRecord#commit_timestamp commit_timestamp}.
  # @!attribute [rw] destination_partition_token
  #   @return [::String]
  #     An unique partition identifier describing the destination change
  #     stream partition that will record changes for the key range that is
  #     moving out of this partition.
  class MoveOutEvent
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end
end

#partition_token::String

Returns Unique partition identifier describing the partition this event occurred on. partition_token is equal to the partition token of the change stream partition currently queried to return this PartitionEventRecord.

Returns:

  • (::String)

    Unique partition identifier describing the partition this event occurred on. partition_token is equal to the partition token of the change stream partition currently queried to return this PartitionEventRecord.



437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
# File 'proto_docs/google/spanner/v1/change_stream.rb', line 437

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

  # Describes move-in of the key ranges into the change stream partition
  # identified by
  # {::Google::Cloud::Spanner::V1::ChangeStreamRecord::PartitionEventRecord#partition_token partition_token}.
  #
  # To maintain processing the changes for a particular key in timestamp
  # order, the query processing the change stream partition identified by
  # {::Google::Cloud::Spanner::V1::ChangeStreamRecord::PartitionEventRecord#partition_token partition_token}
  # should not advance beyond the partition event record commit timestamp
  # until the queries processing the source change stream partitions have
  # processed all change stream records with timestamps <= the partition
  # event record commit timestamp.
  # @!attribute [rw] source_partition_token
  #   @return [::String]
  #     An unique partition identifier describing the source change stream
  #     partition that recorded changes for the key range that is moving
  #     into this partition.
  class MoveInEvent
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Describes move-out of the key ranges out of the change stream partition
  # identified by
  # {::Google::Cloud::Spanner::V1::ChangeStreamRecord::PartitionEventRecord#partition_token partition_token}.
  #
  # To maintain processing the changes for a particular key in timestamp
  # order, the query processing the
  # {::Google::Cloud::Spanner::V1::ChangeStreamRecord::PartitionEventRecord::MoveOutEvent MoveOutEvent}
  # in the partition identified by
  # {::Google::Cloud::Spanner::V1::ChangeStreamRecord::PartitionEventRecord#partition_token partition_token}
  # should inform the queries processing the destination partitions that
  # they can unblock and proceed processing records past the
  # {::Google::Cloud::Spanner::V1::ChangeStreamRecord::PartitionEventRecord#commit_timestamp commit_timestamp}.
  # @!attribute [rw] destination_partition_token
  #   @return [::String]
  #     An unique partition identifier describing the destination change
  #     stream partition that will record changes for the key range that is
  #     moving out of this partition.
  class MoveOutEvent
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end
end

#record_sequence::String

Returns Record sequence numbers are unique and monotonically increasing (but not necessarily contiguous) for a specific timestamp across record types in the same partition. To guarantee ordered processing, the reader should process records (of potentially different types) in record_sequence order for a specific timestamp in the same partition.

Returns:

  • (::String)

    Record sequence numbers are unique and monotonically increasing (but not necessarily contiguous) for a specific timestamp across record types in the same partition. To guarantee ordered processing, the reader should process records (of potentially different types) in record_sequence order for a specific timestamp in the same partition.



437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
# File 'proto_docs/google/spanner/v1/change_stream.rb', line 437

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

  # Describes move-in of the key ranges into the change stream partition
  # identified by
  # {::Google::Cloud::Spanner::V1::ChangeStreamRecord::PartitionEventRecord#partition_token partition_token}.
  #
  # To maintain processing the changes for a particular key in timestamp
  # order, the query processing the change stream partition identified by
  # {::Google::Cloud::Spanner::V1::ChangeStreamRecord::PartitionEventRecord#partition_token partition_token}
  # should not advance beyond the partition event record commit timestamp
  # until the queries processing the source change stream partitions have
  # processed all change stream records with timestamps <= the partition
  # event record commit timestamp.
  # @!attribute [rw] source_partition_token
  #   @return [::String]
  #     An unique partition identifier describing the source change stream
  #     partition that recorded changes for the key range that is moving
  #     into this partition.
  class MoveInEvent
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Describes move-out of the key ranges out of the change stream partition
  # identified by
  # {::Google::Cloud::Spanner::V1::ChangeStreamRecord::PartitionEventRecord#partition_token partition_token}.
  #
  # To maintain processing the changes for a particular key in timestamp
  # order, the query processing the
  # {::Google::Cloud::Spanner::V1::ChangeStreamRecord::PartitionEventRecord::MoveOutEvent MoveOutEvent}
  # in the partition identified by
  # {::Google::Cloud::Spanner::V1::ChangeStreamRecord::PartitionEventRecord#partition_token partition_token}
  # should inform the queries processing the destination partitions that
  # they can unblock and proceed processing records past the
  # {::Google::Cloud::Spanner::V1::ChangeStreamRecord::PartitionEventRecord#commit_timestamp commit_timestamp}.
  # @!attribute [rw] destination_partition_token
  #   @return [::String]
  #     An unique partition identifier describing the destination change
  #     stream partition that will record changes for the key range that is
  #     moving out of this partition.
  class MoveOutEvent
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end
end