google-apis-spanner_v1 0.25.0 → 0.26.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -0
- data/lib/google/apis/spanner_v1/classes.rb +261 -247
- data/lib/google/apis/spanner_v1/gem_version.rb +2 -2
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: eec80b1ffbe8702f803572d10fbe6cd14e056cf35fa6c7a4cd12ba3ba1df8b11
|
4
|
+
data.tar.gz: ea92fce3176c283dbd99e663a9e7ca913e9a2d1a74f2cdc9ccee830f49bf4aa6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 03ba93f0e90b0928df96d00329fd83e79689d6eb096d0bb07b43ea3c0fea079c04be2800beebdfccc1b01a927d7bac048994563135ff86f9e2a6b51dc8ee9833
|
7
|
+
data.tar.gz: 402417d83a693a56b0db7ea651feb91254ec2e3de67d46136a077f1f76e452d9efae75bd6fd4b1d5eb1103df7f5c2567137892c2003b1110cd433552e6a7b398
|
data/CHANGELOG.md
CHANGED
@@ -233,7 +233,7 @@ module Google
|
|
233
233
|
# count towards the one transaction limit). After the active transaction is
|
234
234
|
# completed, the session can immediately be re-used for the next transaction. It
|
235
235
|
# is not necessary to create a new session for each transaction. Transaction
|
236
|
-
#
|
236
|
+
# modes: Cloud Spanner supports three transaction modes: 1. Locking read-write.
|
237
237
|
# This type of transaction is the only way to write data into Cloud Spanner.
|
238
238
|
# These transactions rely on pessimistic locking and, if necessary, two-phase
|
239
239
|
# commit. Locking read-write transactions may abort, requiring the application
|
@@ -249,9 +249,9 @@ module Google
|
|
249
249
|
# simpler semantics and are almost always faster. In particular, read-only
|
250
250
|
# transactions do not take locks, so they do not conflict with read-write
|
251
251
|
# transactions. As a consequence of not taking locks, they also do not abort, so
|
252
|
-
# retry loops are not needed. Transactions may only read
|
253
|
-
# database. They may, however, read
|
254
|
-
# database. Locking
|
252
|
+
# retry loops are not needed. Transactions may only read-write data in a single
|
253
|
+
# database. They may, however, read-write data in different tables within that
|
254
|
+
# database. Locking read-write transactions: Locking transactions may be used to
|
255
255
|
# atomically read-modify-write data anywhere in a database. This type of
|
256
256
|
# transaction is externally consistent. Clients should attempt to minimize the
|
257
257
|
# amount of time a transaction is active. Faster transactions commit with higher
|
@@ -270,7 +270,7 @@ module Google
|
|
270
270
|
# Cloud Spanner makes no guarantees about how long the transaction's locks were
|
271
271
|
# held for. It is an error to use Cloud Spanner locks for any sort of mutual
|
272
272
|
# exclusion other than between Cloud Spanner transactions themselves. Retrying
|
273
|
-
#
|
273
|
+
# aborted transactions: When a transaction aborts, the application can choose to
|
274
274
|
# retry the whole transaction again. To maximize the chances of successfully
|
275
275
|
# committing the retry, the client should execute the retry in the same session
|
276
276
|
# as the original attempt. The original session's lock priority increases with
|
@@ -279,14 +279,14 @@ module Google
|
|
279
279
|
# transactions attempting to modify the same row(s)), a transaction can abort
|
280
280
|
# many times in a short period before successfully committing. Thus, it is not a
|
281
281
|
# good idea to cap the number of retries a transaction can attempt; instead, it
|
282
|
-
# is better to limit the total amount of time spent retrying. Idle
|
282
|
+
# is better to limit the total amount of time spent retrying. Idle transactions:
|
283
283
|
# A transaction is considered idle if it has no outstanding reads or SQL queries
|
284
284
|
# and has not started a read or SQL query within the last 10 seconds. Idle
|
285
285
|
# transactions can be aborted by Cloud Spanner so that they don't hold on to
|
286
286
|
# locks indefinitely. If an idle transaction is aborted, the commit will fail
|
287
287
|
# with error `ABORTED`. If this behavior is undesirable, periodically executing
|
288
288
|
# a simple SQL query in the transaction (for example, `SELECT 1`) prevents the
|
289
|
-
# transaction from becoming idle. Snapshot
|
289
|
+
# transaction from becoming idle. Snapshot read-only transactions: Snapshot read-
|
290
290
|
# only transactions provides a simpler method than locking read-write
|
291
291
|
# transactions for doing several consistent reads. However, this type of
|
292
292
|
# transaction does not support writes. Snapshot transactions do not take locks.
|
@@ -302,7 +302,7 @@ module Google
|
|
302
302
|
# how to choose a read timestamp. The types of timestamp bound are: - Strong (
|
303
303
|
# the default). - Bounded staleness. - Exact staleness. If the Cloud Spanner
|
304
304
|
# database to be read is geographically distributed, stale read-only
|
305
|
-
# transactions can execute more quickly than strong or read-write
|
305
|
+
# transactions can execute more quickly than strong or read-write transactions,
|
306
306
|
# because they are able to execute far from the leader replica. Each type of
|
307
307
|
# timestamp bound is discussed in detail below. Strong: Strong reads are
|
308
308
|
# guaranteed to see the effects of all transactions that have committed before
|
@@ -312,7 +312,7 @@ module Google
|
|
312
312
|
# two consecutive strong read-only transactions might return inconsistent
|
313
313
|
# results if there are concurrent writes. If consistency across reads is
|
314
314
|
# required, the reads should be executed within a transaction or at an exact
|
315
|
-
# read timestamp. See TransactionOptions.ReadOnly.strong. Exact
|
315
|
+
# read timestamp. See TransactionOptions.ReadOnly.strong. Exact staleness: These
|
316
316
|
# timestamp bounds execute reads at a user-specified timestamp. Reads at a
|
317
317
|
# timestamp are guaranteed to see a consistent prefix of the global transaction
|
318
318
|
# history: they observe modifications done by all transactions with a commit
|
@@ -326,7 +326,7 @@ module Google
|
|
326
326
|
# equivalent boundedly stale concurrency modes. On the other hand, boundedly
|
327
327
|
# stale reads usually return fresher results. See TransactionOptions.ReadOnly.
|
328
328
|
# read_timestamp and TransactionOptions.ReadOnly.exact_staleness. Bounded
|
329
|
-
#
|
329
|
+
# staleness: Bounded staleness modes allow Cloud Spanner to pick the read
|
330
330
|
# timestamp, subject to a user-provided staleness bound. Cloud Spanner chooses
|
331
331
|
# the newest timestamp within the staleness bound that allows execution of the
|
332
332
|
# reads at the closest available replica without blocking. All rows yielded are
|
@@ -343,51 +343,54 @@ module Google
|
|
343
343
|
# timestamp negotiation requires up-front knowledge of which rows will be read,
|
344
344
|
# it can only be used with single-use read-only transactions. See
|
345
345
|
# TransactionOptions.ReadOnly.max_staleness and TransactionOptions.ReadOnly.
|
346
|
-
# min_read_timestamp. Old
|
346
|
+
# min_read_timestamp. Old read timestamps and garbage collection: Cloud Spanner
|
347
347
|
# continuously garbage collects deleted and overwritten data in the background
|
348
348
|
# to reclaim storage space. This process is known as "version GC". By default,
|
349
349
|
# version GC reclaims versions after they are one hour old. Because of this,
|
350
350
|
# Cloud Spanner cannot perform reads at read timestamps more than one hour in
|
351
351
|
# the past. This restriction also applies to in-progress reads and/or SQL
|
352
352
|
# queries whose timestamp become too old while executing. Reads and SQL queries
|
353
|
-
# with too-old read timestamps fail with the error `FAILED_PRECONDITION`.
|
354
|
-
#
|
355
|
-
#
|
356
|
-
#
|
357
|
-
#
|
358
|
-
#
|
359
|
-
#
|
360
|
-
#
|
361
|
-
#
|
362
|
-
#
|
363
|
-
#
|
364
|
-
#
|
365
|
-
#
|
366
|
-
#
|
367
|
-
#
|
368
|
-
#
|
369
|
-
#
|
370
|
-
#
|
371
|
-
#
|
372
|
-
#
|
373
|
-
#
|
374
|
-
#
|
375
|
-
#
|
376
|
-
#
|
377
|
-
#
|
378
|
-
#
|
379
|
-
#
|
380
|
-
#
|
381
|
-
#
|
382
|
-
#
|
383
|
-
#
|
384
|
-
#
|
385
|
-
#
|
386
|
-
#
|
387
|
-
#
|
388
|
-
#
|
389
|
-
#
|
390
|
-
#
|
353
|
+
# with too-old read timestamps fail with the error `FAILED_PRECONDITION`. You
|
354
|
+
# can configure and extend the `VERSION_RETENTION_PERIOD` of a database up to a
|
355
|
+
# period as long as one week, which allows Cloud Spanner to perform reads up to
|
356
|
+
# one week in the past. Partitioned DML transactions: Partitioned DML
|
357
|
+
# transactions are used to execute DML statements with a different execution
|
358
|
+
# strategy that provides different, and often better, scalability properties for
|
359
|
+
# large, table-wide operations than DML in a ReadWrite transaction. Smaller
|
360
|
+
# scoped statements, such as an OLTP workload, should prefer using ReadWrite
|
361
|
+
# transactions. Partitioned DML partitions the keyspace and runs the DML
|
362
|
+
# statement on each partition in separate, internal transactions. These
|
363
|
+
# transactions commit automatically when complete, and run independently from
|
364
|
+
# one another. To reduce lock contention, this execution strategy only acquires
|
365
|
+
# read locks on rows that match the WHERE clause of the statement. Additionally,
|
366
|
+
# the smaller per-partition transactions hold locks for less time. That said,
|
367
|
+
# Partitioned DML is not a drop-in replacement for standard DML used in
|
368
|
+
# ReadWrite transactions. - The DML statement must be fully-partitionable.
|
369
|
+
# Specifically, the statement must be expressible as the union of many
|
370
|
+
# statements which each access only a single row of the table. - The statement
|
371
|
+
# is not applied atomically to all rows of the table. Rather, the statement is
|
372
|
+
# applied atomically to partitions of the table, in independent transactions.
|
373
|
+
# Secondary index rows are updated atomically with the base table rows. -
|
374
|
+
# Partitioned DML does not guarantee exactly-once execution semantics against a
|
375
|
+
# partition. The statement will be applied at least once to each partition. It
|
376
|
+
# is strongly recommended that the DML statement should be idempotent to avoid
|
377
|
+
# unexpected results. For instance, it is potentially dangerous to run a
|
378
|
+
# statement such as `UPDATE table SET column = column + 1` as it could be run
|
379
|
+
# multiple times against some rows. - The partitions are committed automatically
|
380
|
+
# - there is no support for Commit or Rollback. If the call returns an error, or
|
381
|
+
# if the client issuing the ExecuteSql call dies, it is possible that some rows
|
382
|
+
# had the statement executed on them successfully. It is also possible that
|
383
|
+
# statement was never executed against other rows. - Partitioned DML
|
384
|
+
# transactions may only contain the execution of a single DML statement via
|
385
|
+
# ExecuteSql or ExecuteStreamingSql. - If any error is encountered during the
|
386
|
+
# execution of the partitioned DML operation (for instance, a UNIQUE INDEX
|
387
|
+
# violation, division by zero, or a value that cannot be stored due to schema
|
388
|
+
# constraints), then the operation is stopped at that point and an error is
|
389
|
+
# returned. It is possible that at this point, some partitions have been
|
390
|
+
# committed (or even committed multiple times), and other partitions have not
|
391
|
+
# been run at all. Given the above, Partitioned DML is good fit for large,
|
392
|
+
# database-wide, operations that are idempotent, such as deleting old rows from
|
393
|
+
# a very large table.
|
391
394
|
# Corresponds to the JSON property `options`
|
392
395
|
# @return [Google::Apis::SpannerV1::TransactionOptions]
|
393
396
|
attr_accessor :options
|
@@ -545,7 +548,7 @@ module Google
|
|
545
548
|
# count towards the one transaction limit). After the active transaction is
|
546
549
|
# completed, the session can immediately be re-used for the next transaction. It
|
547
550
|
# is not necessary to create a new session for each transaction. Transaction
|
548
|
-
#
|
551
|
+
# modes: Cloud Spanner supports three transaction modes: 1. Locking read-write.
|
549
552
|
# This type of transaction is the only way to write data into Cloud Spanner.
|
550
553
|
# These transactions rely on pessimistic locking and, if necessary, two-phase
|
551
554
|
# commit. Locking read-write transactions may abort, requiring the application
|
@@ -561,9 +564,9 @@ module Google
|
|
561
564
|
# simpler semantics and are almost always faster. In particular, read-only
|
562
565
|
# transactions do not take locks, so they do not conflict with read-write
|
563
566
|
# transactions. As a consequence of not taking locks, they also do not abort, so
|
564
|
-
# retry loops are not needed. Transactions may only read
|
565
|
-
# database. They may, however, read
|
566
|
-
# database. Locking
|
567
|
+
# retry loops are not needed. Transactions may only read-write data in a single
|
568
|
+
# database. They may, however, read-write data in different tables within that
|
569
|
+
# database. Locking read-write transactions: Locking transactions may be used to
|
567
570
|
# atomically read-modify-write data anywhere in a database. This type of
|
568
571
|
# transaction is externally consistent. Clients should attempt to minimize the
|
569
572
|
# amount of time a transaction is active. Faster transactions commit with higher
|
@@ -582,7 +585,7 @@ module Google
|
|
582
585
|
# Cloud Spanner makes no guarantees about how long the transaction's locks were
|
583
586
|
# held for. It is an error to use Cloud Spanner locks for any sort of mutual
|
584
587
|
# exclusion other than between Cloud Spanner transactions themselves. Retrying
|
585
|
-
#
|
588
|
+
# aborted transactions: When a transaction aborts, the application can choose to
|
586
589
|
# retry the whole transaction again. To maximize the chances of successfully
|
587
590
|
# committing the retry, the client should execute the retry in the same session
|
588
591
|
# as the original attempt. The original session's lock priority increases with
|
@@ -591,14 +594,14 @@ module Google
|
|
591
594
|
# transactions attempting to modify the same row(s)), a transaction can abort
|
592
595
|
# many times in a short period before successfully committing. Thus, it is not a
|
593
596
|
# good idea to cap the number of retries a transaction can attempt; instead, it
|
594
|
-
# is better to limit the total amount of time spent retrying. Idle
|
597
|
+
# is better to limit the total amount of time spent retrying. Idle transactions:
|
595
598
|
# A transaction is considered idle if it has no outstanding reads or SQL queries
|
596
599
|
# and has not started a read or SQL query within the last 10 seconds. Idle
|
597
600
|
# transactions can be aborted by Cloud Spanner so that they don't hold on to
|
598
601
|
# locks indefinitely. If an idle transaction is aborted, the commit will fail
|
599
602
|
# with error `ABORTED`. If this behavior is undesirable, periodically executing
|
600
603
|
# a simple SQL query in the transaction (for example, `SELECT 1`) prevents the
|
601
|
-
# transaction from becoming idle. Snapshot
|
604
|
+
# transaction from becoming idle. Snapshot read-only transactions: Snapshot read-
|
602
605
|
# only transactions provides a simpler method than locking read-write
|
603
606
|
# transactions for doing several consistent reads. However, this type of
|
604
607
|
# transaction does not support writes. Snapshot transactions do not take locks.
|
@@ -614,7 +617,7 @@ module Google
|
|
614
617
|
# how to choose a read timestamp. The types of timestamp bound are: - Strong (
|
615
618
|
# the default). - Bounded staleness. - Exact staleness. If the Cloud Spanner
|
616
619
|
# database to be read is geographically distributed, stale read-only
|
617
|
-
# transactions can execute more quickly than strong or read-write
|
620
|
+
# transactions can execute more quickly than strong or read-write transactions,
|
618
621
|
# because they are able to execute far from the leader replica. Each type of
|
619
622
|
# timestamp bound is discussed in detail below. Strong: Strong reads are
|
620
623
|
# guaranteed to see the effects of all transactions that have committed before
|
@@ -624,7 +627,7 @@ module Google
|
|
624
627
|
# two consecutive strong read-only transactions might return inconsistent
|
625
628
|
# results if there are concurrent writes. If consistency across reads is
|
626
629
|
# required, the reads should be executed within a transaction or at an exact
|
627
|
-
# read timestamp. See TransactionOptions.ReadOnly.strong. Exact
|
630
|
+
# read timestamp. See TransactionOptions.ReadOnly.strong. Exact staleness: These
|
628
631
|
# timestamp bounds execute reads at a user-specified timestamp. Reads at a
|
629
632
|
# timestamp are guaranteed to see a consistent prefix of the global transaction
|
630
633
|
# history: they observe modifications done by all transactions with a commit
|
@@ -638,7 +641,7 @@ module Google
|
|
638
641
|
# equivalent boundedly stale concurrency modes. On the other hand, boundedly
|
639
642
|
# stale reads usually return fresher results. See TransactionOptions.ReadOnly.
|
640
643
|
# read_timestamp and TransactionOptions.ReadOnly.exact_staleness. Bounded
|
641
|
-
#
|
644
|
+
# staleness: Bounded staleness modes allow Cloud Spanner to pick the read
|
642
645
|
# timestamp, subject to a user-provided staleness bound. Cloud Spanner chooses
|
643
646
|
# the newest timestamp within the staleness bound that allows execution of the
|
644
647
|
# reads at the closest available replica without blocking. All rows yielded are
|
@@ -655,51 +658,54 @@ module Google
|
|
655
658
|
# timestamp negotiation requires up-front knowledge of which rows will be read,
|
656
659
|
# it can only be used with single-use read-only transactions. See
|
657
660
|
# TransactionOptions.ReadOnly.max_staleness and TransactionOptions.ReadOnly.
|
658
|
-
# min_read_timestamp. Old
|
661
|
+
# min_read_timestamp. Old read timestamps and garbage collection: Cloud Spanner
|
659
662
|
# continuously garbage collects deleted and overwritten data in the background
|
660
663
|
# to reclaim storage space. This process is known as "version GC". By default,
|
661
664
|
# version GC reclaims versions after they are one hour old. Because of this,
|
662
665
|
# Cloud Spanner cannot perform reads at read timestamps more than one hour in
|
663
666
|
# the past. This restriction also applies to in-progress reads and/or SQL
|
664
667
|
# queries whose timestamp become too old while executing. Reads and SQL queries
|
665
|
-
# with too-old read timestamps fail with the error `FAILED_PRECONDITION`.
|
666
|
-
#
|
667
|
-
#
|
668
|
-
#
|
669
|
-
#
|
670
|
-
#
|
671
|
-
#
|
672
|
-
#
|
673
|
-
#
|
674
|
-
#
|
675
|
-
#
|
676
|
-
#
|
677
|
-
#
|
678
|
-
#
|
679
|
-
#
|
680
|
-
#
|
681
|
-
#
|
682
|
-
#
|
683
|
-
#
|
684
|
-
#
|
685
|
-
#
|
686
|
-
#
|
687
|
-
#
|
688
|
-
#
|
689
|
-
#
|
690
|
-
#
|
691
|
-
#
|
692
|
-
#
|
693
|
-
#
|
694
|
-
#
|
695
|
-
#
|
696
|
-
#
|
697
|
-
#
|
698
|
-
#
|
699
|
-
#
|
700
|
-
#
|
701
|
-
#
|
702
|
-
#
|
668
|
+
# with too-old read timestamps fail with the error `FAILED_PRECONDITION`. You
|
669
|
+
# can configure and extend the `VERSION_RETENTION_PERIOD` of a database up to a
|
670
|
+
# period as long as one week, which allows Cloud Spanner to perform reads up to
|
671
|
+
# one week in the past. Partitioned DML transactions: Partitioned DML
|
672
|
+
# transactions are used to execute DML statements with a different execution
|
673
|
+
# strategy that provides different, and often better, scalability properties for
|
674
|
+
# large, table-wide operations than DML in a ReadWrite transaction. Smaller
|
675
|
+
# scoped statements, such as an OLTP workload, should prefer using ReadWrite
|
676
|
+
# transactions. Partitioned DML partitions the keyspace and runs the DML
|
677
|
+
# statement on each partition in separate, internal transactions. These
|
678
|
+
# transactions commit automatically when complete, and run independently from
|
679
|
+
# one another. To reduce lock contention, this execution strategy only acquires
|
680
|
+
# read locks on rows that match the WHERE clause of the statement. Additionally,
|
681
|
+
# the smaller per-partition transactions hold locks for less time. That said,
|
682
|
+
# Partitioned DML is not a drop-in replacement for standard DML used in
|
683
|
+
# ReadWrite transactions. - The DML statement must be fully-partitionable.
|
684
|
+
# Specifically, the statement must be expressible as the union of many
|
685
|
+
# statements which each access only a single row of the table. - The statement
|
686
|
+
# is not applied atomically to all rows of the table. Rather, the statement is
|
687
|
+
# applied atomically to partitions of the table, in independent transactions.
|
688
|
+
# Secondary index rows are updated atomically with the base table rows. -
|
689
|
+
# Partitioned DML does not guarantee exactly-once execution semantics against a
|
690
|
+
# partition. The statement will be applied at least once to each partition. It
|
691
|
+
# is strongly recommended that the DML statement should be idempotent to avoid
|
692
|
+
# unexpected results. For instance, it is potentially dangerous to run a
|
693
|
+
# statement such as `UPDATE table SET column = column + 1` as it could be run
|
694
|
+
# multiple times against some rows. - The partitions are committed automatically
|
695
|
+
# - there is no support for Commit or Rollback. If the call returns an error, or
|
696
|
+
# if the client issuing the ExecuteSql call dies, it is possible that some rows
|
697
|
+
# had the statement executed on them successfully. It is also possible that
|
698
|
+
# statement was never executed against other rows. - Partitioned DML
|
699
|
+
# transactions may only contain the execution of a single DML statement via
|
700
|
+
# ExecuteSql or ExecuteStreamingSql. - If any error is encountered during the
|
701
|
+
# execution of the partitioned DML operation (for instance, a UNIQUE INDEX
|
702
|
+
# violation, division by zero, or a value that cannot be stored due to schema
|
703
|
+
# constraints), then the operation is stopped at that point and an error is
|
704
|
+
# returned. It is possible that at this point, some partitions have been
|
705
|
+
# committed (or even committed multiple times), and other partitions have not
|
706
|
+
# been run at all. Given the above, Partitioned DML is good fit for large,
|
707
|
+
# database-wide, operations that are idempotent, such as deleting old rows from
|
708
|
+
# a very large table.
|
703
709
|
# Corresponds to the JSON property `singleUseTransaction`
|
704
710
|
# @return [Google::Apis::SpannerV1::TransactionOptions]
|
705
711
|
attr_accessor :single_use_transaction
|
@@ -1326,8 +1332,7 @@ module Google
|
|
1326
1332
|
# A generic empty message that you can re-use to avoid defining duplicated empty
|
1327
1333
|
# messages in your APIs. A typical example is to use it as the request or the
|
1328
1334
|
# response type of an API method. For instance: service Foo ` rpc Bar(google.
|
1329
|
-
# protobuf.Empty) returns (google.protobuf.Empty); `
|
1330
|
-
# `Empty` is empty JSON object ````.
|
1335
|
+
# protobuf.Empty) returns (google.protobuf.Empty); `
|
1331
1336
|
class Empty
|
1332
1337
|
include Google::Apis::Core::Hashable
|
1333
1338
|
|
@@ -4196,7 +4201,7 @@ module Google
|
|
4196
4201
|
# count towards the one transaction limit). After the active transaction is
|
4197
4202
|
# completed, the session can immediately be re-used for the next transaction. It
|
4198
4203
|
# is not necessary to create a new session for each transaction. Transaction
|
4199
|
-
#
|
4204
|
+
# modes: Cloud Spanner supports three transaction modes: 1. Locking read-write.
|
4200
4205
|
# This type of transaction is the only way to write data into Cloud Spanner.
|
4201
4206
|
# These transactions rely on pessimistic locking and, if necessary, two-phase
|
4202
4207
|
# commit. Locking read-write transactions may abort, requiring the application
|
@@ -4212,9 +4217,9 @@ module Google
|
|
4212
4217
|
# simpler semantics and are almost always faster. In particular, read-only
|
4213
4218
|
# transactions do not take locks, so they do not conflict with read-write
|
4214
4219
|
# transactions. As a consequence of not taking locks, they also do not abort, so
|
4215
|
-
# retry loops are not needed. Transactions may only read
|
4216
|
-
# database. They may, however, read
|
4217
|
-
# database. Locking
|
4220
|
+
# retry loops are not needed. Transactions may only read-write data in a single
|
4221
|
+
# database. They may, however, read-write data in different tables within that
|
4222
|
+
# database. Locking read-write transactions: Locking transactions may be used to
|
4218
4223
|
# atomically read-modify-write data anywhere in a database. This type of
|
4219
4224
|
# transaction is externally consistent. Clients should attempt to minimize the
|
4220
4225
|
# amount of time a transaction is active. Faster transactions commit with higher
|
@@ -4233,7 +4238,7 @@ module Google
|
|
4233
4238
|
# Cloud Spanner makes no guarantees about how long the transaction's locks were
|
4234
4239
|
# held for. It is an error to use Cloud Spanner locks for any sort of mutual
|
4235
4240
|
# exclusion other than between Cloud Spanner transactions themselves. Retrying
|
4236
|
-
#
|
4241
|
+
# aborted transactions: When a transaction aborts, the application can choose to
|
4237
4242
|
# retry the whole transaction again. To maximize the chances of successfully
|
4238
4243
|
# committing the retry, the client should execute the retry in the same session
|
4239
4244
|
# as the original attempt. The original session's lock priority increases with
|
@@ -4242,14 +4247,14 @@ module Google
|
|
4242
4247
|
# transactions attempting to modify the same row(s)), a transaction can abort
|
4243
4248
|
# many times in a short period before successfully committing. Thus, it is not a
|
4244
4249
|
# good idea to cap the number of retries a transaction can attempt; instead, it
|
4245
|
-
# is better to limit the total amount of time spent retrying. Idle
|
4250
|
+
# is better to limit the total amount of time spent retrying. Idle transactions:
|
4246
4251
|
# A transaction is considered idle if it has no outstanding reads or SQL queries
|
4247
4252
|
# and has not started a read or SQL query within the last 10 seconds. Idle
|
4248
4253
|
# transactions can be aborted by Cloud Spanner so that they don't hold on to
|
4249
4254
|
# locks indefinitely. If an idle transaction is aborted, the commit will fail
|
4250
4255
|
# with error `ABORTED`. If this behavior is undesirable, periodically executing
|
4251
4256
|
# a simple SQL query in the transaction (for example, `SELECT 1`) prevents the
|
4252
|
-
# transaction from becoming idle. Snapshot
|
4257
|
+
# transaction from becoming idle. Snapshot read-only transactions: Snapshot read-
|
4253
4258
|
# only transactions provides a simpler method than locking read-write
|
4254
4259
|
# transactions for doing several consistent reads. However, this type of
|
4255
4260
|
# transaction does not support writes. Snapshot transactions do not take locks.
|
@@ -4265,7 +4270,7 @@ module Google
|
|
4265
4270
|
# how to choose a read timestamp. The types of timestamp bound are: - Strong (
|
4266
4271
|
# the default). - Bounded staleness. - Exact staleness. If the Cloud Spanner
|
4267
4272
|
# database to be read is geographically distributed, stale read-only
|
4268
|
-
# transactions can execute more quickly than strong or read-write
|
4273
|
+
# transactions can execute more quickly than strong or read-write transactions,
|
4269
4274
|
# because they are able to execute far from the leader replica. Each type of
|
4270
4275
|
# timestamp bound is discussed in detail below. Strong: Strong reads are
|
4271
4276
|
# guaranteed to see the effects of all transactions that have committed before
|
@@ -4275,7 +4280,7 @@ module Google
|
|
4275
4280
|
# two consecutive strong read-only transactions might return inconsistent
|
4276
4281
|
# results if there are concurrent writes. If consistency across reads is
|
4277
4282
|
# required, the reads should be executed within a transaction or at an exact
|
4278
|
-
# read timestamp. See TransactionOptions.ReadOnly.strong. Exact
|
4283
|
+
# read timestamp. See TransactionOptions.ReadOnly.strong. Exact staleness: These
|
4279
4284
|
# timestamp bounds execute reads at a user-specified timestamp. Reads at a
|
4280
4285
|
# timestamp are guaranteed to see a consistent prefix of the global transaction
|
4281
4286
|
# history: they observe modifications done by all transactions with a commit
|
@@ -4289,7 +4294,7 @@ module Google
|
|
4289
4294
|
# equivalent boundedly stale concurrency modes. On the other hand, boundedly
|
4290
4295
|
# stale reads usually return fresher results. See TransactionOptions.ReadOnly.
|
4291
4296
|
# read_timestamp and TransactionOptions.ReadOnly.exact_staleness. Bounded
|
4292
|
-
#
|
4297
|
+
# staleness: Bounded staleness modes allow Cloud Spanner to pick the read
|
4293
4298
|
# timestamp, subject to a user-provided staleness bound. Cloud Spanner chooses
|
4294
4299
|
# the newest timestamp within the staleness bound that allows execution of the
|
4295
4300
|
# reads at the closest available replica without blocking. All rows yielded are
|
@@ -4306,51 +4311,54 @@ module Google
|
|
4306
4311
|
# timestamp negotiation requires up-front knowledge of which rows will be read,
|
4307
4312
|
# it can only be used with single-use read-only transactions. See
|
4308
4313
|
# TransactionOptions.ReadOnly.max_staleness and TransactionOptions.ReadOnly.
|
4309
|
-
# min_read_timestamp. Old
|
4314
|
+
# min_read_timestamp. Old read timestamps and garbage collection: Cloud Spanner
|
4310
4315
|
# continuously garbage collects deleted and overwritten data in the background
|
4311
4316
|
# to reclaim storage space. This process is known as "version GC". By default,
|
4312
4317
|
# version GC reclaims versions after they are one hour old. Because of this,
|
4313
4318
|
# Cloud Spanner cannot perform reads at read timestamps more than one hour in
|
4314
4319
|
# the past. This restriction also applies to in-progress reads and/or SQL
|
4315
4320
|
# queries whose timestamp become too old while executing. Reads and SQL queries
|
4316
|
-
# with too-old read timestamps fail with the error `FAILED_PRECONDITION`.
|
4317
|
-
#
|
4318
|
-
#
|
4319
|
-
#
|
4320
|
-
#
|
4321
|
-
#
|
4322
|
-
#
|
4323
|
-
#
|
4324
|
-
#
|
4325
|
-
#
|
4326
|
-
#
|
4327
|
-
#
|
4328
|
-
#
|
4329
|
-
#
|
4330
|
-
#
|
4331
|
-
#
|
4332
|
-
#
|
4333
|
-
#
|
4334
|
-
#
|
4335
|
-
#
|
4336
|
-
#
|
4337
|
-
#
|
4338
|
-
#
|
4339
|
-
#
|
4340
|
-
#
|
4341
|
-
#
|
4342
|
-
#
|
4343
|
-
#
|
4344
|
-
#
|
4345
|
-
#
|
4346
|
-
#
|
4347
|
-
#
|
4348
|
-
#
|
4349
|
-
#
|
4350
|
-
#
|
4351
|
-
#
|
4352
|
-
#
|
4353
|
-
#
|
4321
|
+
# with too-old read timestamps fail with the error `FAILED_PRECONDITION`. You
|
4322
|
+
# can configure and extend the `VERSION_RETENTION_PERIOD` of a database up to a
|
4323
|
+
# period as long as one week, which allows Cloud Spanner to perform reads up to
|
4324
|
+
# one week in the past. Partitioned DML transactions: Partitioned DML
|
4325
|
+
# transactions are used to execute DML statements with a different execution
|
4326
|
+
# strategy that provides different, and often better, scalability properties for
|
4327
|
+
# large, table-wide operations than DML in a ReadWrite transaction. Smaller
|
4328
|
+
# scoped statements, such as an OLTP workload, should prefer using ReadWrite
|
4329
|
+
# transactions. Partitioned DML partitions the keyspace and runs the DML
|
4330
|
+
# statement on each partition in separate, internal transactions. These
|
4331
|
+
# transactions commit automatically when complete, and run independently from
|
4332
|
+
# one another. To reduce lock contention, this execution strategy only acquires
|
4333
|
+
# read locks on rows that match the WHERE clause of the statement. Additionally,
|
4334
|
+
# the smaller per-partition transactions hold locks for less time. That said,
|
4335
|
+
# Partitioned DML is not a drop-in replacement for standard DML used in
|
4336
|
+
# ReadWrite transactions. - The DML statement must be fully-partitionable.
|
4337
|
+
# Specifically, the statement must be expressible as the union of many
|
4338
|
+
# statements which each access only a single row of the table. - The statement
|
4339
|
+
# is not applied atomically to all rows of the table. Rather, the statement is
|
4340
|
+
# applied atomically to partitions of the table, in independent transactions.
|
4341
|
+
# Secondary index rows are updated atomically with the base table rows. -
|
4342
|
+
# Partitioned DML does not guarantee exactly-once execution semantics against a
|
4343
|
+
# partition. The statement will be applied at least once to each partition. It
|
4344
|
+
# is strongly recommended that the DML statement should be idempotent to avoid
|
4345
|
+
# unexpected results. For instance, it is potentially dangerous to run a
|
4346
|
+
# statement such as `UPDATE table SET column = column + 1` as it could be run
|
4347
|
+
# multiple times against some rows. - The partitions are committed automatically
|
4348
|
+
# - there is no support for Commit or Rollback. If the call returns an error, or
|
4349
|
+
# if the client issuing the ExecuteSql call dies, it is possible that some rows
|
4350
|
+
# had the statement executed on them successfully. It is also possible that
|
4351
|
+
# statement was never executed against other rows. - Partitioned DML
|
4352
|
+
# transactions may only contain the execution of a single DML statement via
|
4353
|
+
# ExecuteSql or ExecuteStreamingSql. - If any error is encountered during the
|
4354
|
+
# execution of the partitioned DML operation (for instance, a UNIQUE INDEX
|
4355
|
+
# violation, division by zero, or a value that cannot be stored due to schema
|
4356
|
+
# constraints), then the operation is stopped at that point and an error is
|
4357
|
+
# returned. It is possible that at this point, some partitions have been
|
4358
|
+
# committed (or even committed multiple times), and other partitions have not
|
4359
|
+
# been run at all. Given the above, Partitioned DML is good fit for large,
|
4360
|
+
# database-wide, operations that are idempotent, such as deleting old rows from
|
4361
|
+
# a very large table.
|
4354
4362
|
class TransactionOptions
|
4355
4363
|
include Google::Apis::Core::Hashable
|
4356
4364
|
|
@@ -4392,7 +4400,7 @@ module Google
|
|
4392
4400
|
# count towards the one transaction limit). After the active transaction is
|
4393
4401
|
# completed, the session can immediately be re-used for the next transaction. It
|
4394
4402
|
# is not necessary to create a new session for each transaction. Transaction
|
4395
|
-
#
|
4403
|
+
# modes: Cloud Spanner supports three transaction modes: 1. Locking read-write.
|
4396
4404
|
# This type of transaction is the only way to write data into Cloud Spanner.
|
4397
4405
|
# These transactions rely on pessimistic locking and, if necessary, two-phase
|
4398
4406
|
# commit. Locking read-write transactions may abort, requiring the application
|
@@ -4408,9 +4416,9 @@ module Google
|
|
4408
4416
|
# simpler semantics and are almost always faster. In particular, read-only
|
4409
4417
|
# transactions do not take locks, so they do not conflict with read-write
|
4410
4418
|
# transactions. As a consequence of not taking locks, they also do not abort, so
|
4411
|
-
# retry loops are not needed. Transactions may only read
|
4412
|
-
# database. They may, however, read
|
4413
|
-
# database. Locking
|
4419
|
+
# retry loops are not needed. Transactions may only read-write data in a single
|
4420
|
+
# database. They may, however, read-write data in different tables within that
|
4421
|
+
# database. Locking read-write transactions: Locking transactions may be used to
|
4414
4422
|
# atomically read-modify-write data anywhere in a database. This type of
|
4415
4423
|
# transaction is externally consistent. Clients should attempt to minimize the
|
4416
4424
|
# amount of time a transaction is active. Faster transactions commit with higher
|
@@ -4429,7 +4437,7 @@ module Google
|
|
4429
4437
|
# Cloud Spanner makes no guarantees about how long the transaction's locks were
|
4430
4438
|
# held for. It is an error to use Cloud Spanner locks for any sort of mutual
|
4431
4439
|
# exclusion other than between Cloud Spanner transactions themselves. Retrying
|
4432
|
-
#
|
4440
|
+
# aborted transactions: When a transaction aborts, the application can choose to
|
4433
4441
|
# retry the whole transaction again. To maximize the chances of successfully
|
4434
4442
|
# committing the retry, the client should execute the retry in the same session
|
4435
4443
|
# as the original attempt. The original session's lock priority increases with
|
@@ -4438,14 +4446,14 @@ module Google
|
|
4438
4446
|
# transactions attempting to modify the same row(s)), a transaction can abort
|
4439
4447
|
# many times in a short period before successfully committing. Thus, it is not a
|
4440
4448
|
# good idea to cap the number of retries a transaction can attempt; instead, it
|
4441
|
-
# is better to limit the total amount of time spent retrying. Idle
|
4449
|
+
# is better to limit the total amount of time spent retrying. Idle transactions:
|
4442
4450
|
# A transaction is considered idle if it has no outstanding reads or SQL queries
|
4443
4451
|
# and has not started a read or SQL query within the last 10 seconds. Idle
|
4444
4452
|
# transactions can be aborted by Cloud Spanner so that they don't hold on to
|
4445
4453
|
# locks indefinitely. If an idle transaction is aborted, the commit will fail
|
4446
4454
|
# with error `ABORTED`. If this behavior is undesirable, periodically executing
|
4447
4455
|
# a simple SQL query in the transaction (for example, `SELECT 1`) prevents the
|
4448
|
-
# transaction from becoming idle. Snapshot
|
4456
|
+
# transaction from becoming idle. Snapshot read-only transactions: Snapshot read-
|
4449
4457
|
# only transactions provides a simpler method than locking read-write
|
4450
4458
|
# transactions for doing several consistent reads. However, this type of
|
4451
4459
|
# transaction does not support writes. Snapshot transactions do not take locks.
|
@@ -4461,7 +4469,7 @@ module Google
|
|
4461
4469
|
# how to choose a read timestamp. The types of timestamp bound are: - Strong (
|
4462
4470
|
# the default). - Bounded staleness. - Exact staleness. If the Cloud Spanner
|
4463
4471
|
# database to be read is geographically distributed, stale read-only
|
4464
|
-
# transactions can execute more quickly than strong or read-write
|
4472
|
+
# transactions can execute more quickly than strong or read-write transactions,
|
4465
4473
|
# because they are able to execute far from the leader replica. Each type of
|
4466
4474
|
# timestamp bound is discussed in detail below. Strong: Strong reads are
|
4467
4475
|
# guaranteed to see the effects of all transactions that have committed before
|
@@ -4471,7 +4479,7 @@ module Google
|
|
4471
4479
|
# two consecutive strong read-only transactions might return inconsistent
|
4472
4480
|
# results if there are concurrent writes. If consistency across reads is
|
4473
4481
|
# required, the reads should be executed within a transaction or at an exact
|
4474
|
-
# read timestamp. See TransactionOptions.ReadOnly.strong. Exact
|
4482
|
+
# read timestamp. See TransactionOptions.ReadOnly.strong. Exact staleness: These
|
4475
4483
|
# timestamp bounds execute reads at a user-specified timestamp. Reads at a
|
4476
4484
|
# timestamp are guaranteed to see a consistent prefix of the global transaction
|
4477
4485
|
# history: they observe modifications done by all transactions with a commit
|
@@ -4485,7 +4493,7 @@ module Google
|
|
4485
4493
|
# equivalent boundedly stale concurrency modes. On the other hand, boundedly
|
4486
4494
|
# stale reads usually return fresher results. See TransactionOptions.ReadOnly.
|
4487
4495
|
# read_timestamp and TransactionOptions.ReadOnly.exact_staleness. Bounded
|
4488
|
-
#
|
4496
|
+
# staleness: Bounded staleness modes allow Cloud Spanner to pick the read
|
4489
4497
|
# timestamp, subject to a user-provided staleness bound. Cloud Spanner chooses
|
4490
4498
|
# the newest timestamp within the staleness bound that allows execution of the
|
4491
4499
|
# reads at the closest available replica without blocking. All rows yielded are
|
@@ -4502,51 +4510,54 @@ module Google
|
|
4502
4510
|
# timestamp negotiation requires up-front knowledge of which rows will be read,
|
4503
4511
|
# it can only be used with single-use read-only transactions. See
|
4504
4512
|
# TransactionOptions.ReadOnly.max_staleness and TransactionOptions.ReadOnly.
|
4505
|
-
# min_read_timestamp. Old
|
4513
|
+
# min_read_timestamp. Old read timestamps and garbage collection: Cloud Spanner
|
4506
4514
|
# continuously garbage collects deleted and overwritten data in the background
|
4507
4515
|
# to reclaim storage space. This process is known as "version GC". By default,
|
4508
4516
|
# version GC reclaims versions after they are one hour old. Because of this,
|
4509
4517
|
# Cloud Spanner cannot perform reads at read timestamps more than one hour in
|
4510
4518
|
# the past. This restriction also applies to in-progress reads and/or SQL
|
4511
4519
|
# queries whose timestamp become too old while executing. Reads and SQL queries
|
4512
|
-
# with too-old read timestamps fail with the error `FAILED_PRECONDITION`.
|
4513
|
-
#
|
4514
|
-
#
|
4515
|
-
#
|
4516
|
-
#
|
4517
|
-
#
|
4518
|
-
#
|
4519
|
-
#
|
4520
|
-
#
|
4521
|
-
#
|
4522
|
-
#
|
4523
|
-
#
|
4524
|
-
#
|
4525
|
-
#
|
4526
|
-
#
|
4527
|
-
#
|
4528
|
-
#
|
4529
|
-
#
|
4530
|
-
#
|
4531
|
-
#
|
4532
|
-
#
|
4533
|
-
#
|
4534
|
-
#
|
4535
|
-
#
|
4536
|
-
#
|
4537
|
-
#
|
4538
|
-
#
|
4539
|
-
#
|
4540
|
-
#
|
4541
|
-
#
|
4542
|
-
#
|
4543
|
-
#
|
4544
|
-
#
|
4545
|
-
#
|
4546
|
-
#
|
4547
|
-
#
|
4548
|
-
#
|
4549
|
-
#
|
4520
|
+
# with too-old read timestamps fail with the error `FAILED_PRECONDITION`. You
|
4521
|
+
# can configure and extend the `VERSION_RETENTION_PERIOD` of a database up to a
|
4522
|
+
# period as long as one week, which allows Cloud Spanner to perform reads up to
|
4523
|
+
# one week in the past. Partitioned DML transactions: Partitioned DML
|
4524
|
+
# transactions are used to execute DML statements with a different execution
|
4525
|
+
# strategy that provides different, and often better, scalability properties for
|
4526
|
+
# large, table-wide operations than DML in a ReadWrite transaction. Smaller
|
4527
|
+
# scoped statements, such as an OLTP workload, should prefer using ReadWrite
|
4528
|
+
# transactions. Partitioned DML partitions the keyspace and runs the DML
|
4529
|
+
# statement on each partition in separate, internal transactions. These
|
4530
|
+
# transactions commit automatically when complete, and run independently from
|
4531
|
+
# one another. To reduce lock contention, this execution strategy only acquires
|
4532
|
+
# read locks on rows that match the WHERE clause of the statement. Additionally,
|
4533
|
+
# the smaller per-partition transactions hold locks for less time. That said,
|
4534
|
+
# Partitioned DML is not a drop-in replacement for standard DML used in
|
4535
|
+
# ReadWrite transactions. - The DML statement must be fully-partitionable.
|
4536
|
+
# Specifically, the statement must be expressible as the union of many
|
4537
|
+
# statements which each access only a single row of the table. - The statement
|
4538
|
+
# is not applied atomically to all rows of the table. Rather, the statement is
|
4539
|
+
# applied atomically to partitions of the table, in independent transactions.
|
4540
|
+
# Secondary index rows are updated atomically with the base table rows. -
|
4541
|
+
# Partitioned DML does not guarantee exactly-once execution semantics against a
|
4542
|
+
# partition. The statement will be applied at least once to each partition. It
|
4543
|
+
# is strongly recommended that the DML statement should be idempotent to avoid
|
4544
|
+
# unexpected results. For instance, it is potentially dangerous to run a
|
4545
|
+
# statement such as `UPDATE table SET column = column + 1` as it could be run
|
4546
|
+
# multiple times against some rows. - The partitions are committed automatically
|
4547
|
+
# - there is no support for Commit or Rollback. If the call returns an error, or
|
4548
|
+
# if the client issuing the ExecuteSql call dies, it is possible that some rows
|
4549
|
+
# had the statement executed on them successfully. It is also possible that
|
4550
|
+
# statement was never executed against other rows. - Partitioned DML
|
4551
|
+
# transactions may only contain the execution of a single DML statement via
|
4552
|
+
# ExecuteSql or ExecuteStreamingSql. - If any error is encountered during the
|
4553
|
+
# execution of the partitioned DML operation (for instance, a UNIQUE INDEX
|
4554
|
+
# violation, division by zero, or a value that cannot be stored due to schema
|
4555
|
+
# constraints), then the operation is stopped at that point and an error is
|
4556
|
+
# returned. It is possible that at this point, some partitions have been
|
4557
|
+
# committed (or even committed multiple times), and other partitions have not
|
4558
|
+
# been run at all. Given the above, Partitioned DML is good fit for large,
|
4559
|
+
# database-wide, operations that are idempotent, such as deleting old rows from
|
4560
|
+
# a very large table.
|
4550
4561
|
# Corresponds to the JSON property `begin`
|
4551
4562
|
# @return [Google::Apis::SpannerV1::TransactionOptions]
|
4552
4563
|
attr_accessor :begin
|
@@ -4562,7 +4573,7 @@ module Google
|
|
4562
4573
|
# count towards the one transaction limit). After the active transaction is
|
4563
4574
|
# completed, the session can immediately be re-used for the next transaction. It
|
4564
4575
|
# is not necessary to create a new session for each transaction. Transaction
|
4565
|
-
#
|
4576
|
+
# modes: Cloud Spanner supports three transaction modes: 1. Locking read-write.
|
4566
4577
|
# This type of transaction is the only way to write data into Cloud Spanner.
|
4567
4578
|
# These transactions rely on pessimistic locking and, if necessary, two-phase
|
4568
4579
|
# commit. Locking read-write transactions may abort, requiring the application
|
@@ -4578,9 +4589,9 @@ module Google
|
|
4578
4589
|
# simpler semantics and are almost always faster. In particular, read-only
|
4579
4590
|
# transactions do not take locks, so they do not conflict with read-write
|
4580
4591
|
# transactions. As a consequence of not taking locks, they also do not abort, so
|
4581
|
-
# retry loops are not needed. Transactions may only read
|
4582
|
-
# database. They may, however, read
|
4583
|
-
# database. Locking
|
4592
|
+
# retry loops are not needed. Transactions may only read-write data in a single
|
4593
|
+
# database. They may, however, read-write data in different tables within that
|
4594
|
+
# database. Locking read-write transactions: Locking transactions may be used to
|
4584
4595
|
# atomically read-modify-write data anywhere in a database. This type of
|
4585
4596
|
# transaction is externally consistent. Clients should attempt to minimize the
|
4586
4597
|
# amount of time a transaction is active. Faster transactions commit with higher
|
@@ -4599,7 +4610,7 @@ module Google
|
|
4599
4610
|
# Cloud Spanner makes no guarantees about how long the transaction's locks were
|
4600
4611
|
# held for. It is an error to use Cloud Spanner locks for any sort of mutual
|
4601
4612
|
# exclusion other than between Cloud Spanner transactions themselves. Retrying
|
4602
|
-
#
|
4613
|
+
# aborted transactions: When a transaction aborts, the application can choose to
|
4603
4614
|
# retry the whole transaction again. To maximize the chances of successfully
|
4604
4615
|
# committing the retry, the client should execute the retry in the same session
|
4605
4616
|
# as the original attempt. The original session's lock priority increases with
|
@@ -4608,14 +4619,14 @@ module Google
|
|
4608
4619
|
# transactions attempting to modify the same row(s)), a transaction can abort
|
4609
4620
|
# many times in a short period before successfully committing. Thus, it is not a
|
4610
4621
|
# good idea to cap the number of retries a transaction can attempt; instead, it
|
4611
|
-
# is better to limit the total amount of time spent retrying. Idle
|
4622
|
+
# is better to limit the total amount of time spent retrying. Idle transactions:
|
4612
4623
|
# A transaction is considered idle if it has no outstanding reads or SQL queries
|
4613
4624
|
# and has not started a read or SQL query within the last 10 seconds. Idle
|
4614
4625
|
# transactions can be aborted by Cloud Spanner so that they don't hold on to
|
4615
4626
|
# locks indefinitely. If an idle transaction is aborted, the commit will fail
|
4616
4627
|
# with error `ABORTED`. If this behavior is undesirable, periodically executing
|
4617
4628
|
# a simple SQL query in the transaction (for example, `SELECT 1`) prevents the
|
4618
|
-
# transaction from becoming idle. Snapshot
|
4629
|
+
# transaction from becoming idle. Snapshot read-only transactions: Snapshot read-
|
4619
4630
|
# only transactions provides a simpler method than locking read-write
|
4620
4631
|
# transactions for doing several consistent reads. However, this type of
|
4621
4632
|
# transaction does not support writes. Snapshot transactions do not take locks.
|
@@ -4631,7 +4642,7 @@ module Google
|
|
4631
4642
|
# how to choose a read timestamp. The types of timestamp bound are: - Strong (
|
4632
4643
|
# the default). - Bounded staleness. - Exact staleness. If the Cloud Spanner
|
4633
4644
|
# database to be read is geographically distributed, stale read-only
|
4634
|
-
# transactions can execute more quickly than strong or read-write
|
4645
|
+
# transactions can execute more quickly than strong or read-write transactions,
|
4635
4646
|
# because they are able to execute far from the leader replica. Each type of
|
4636
4647
|
# timestamp bound is discussed in detail below. Strong: Strong reads are
|
4637
4648
|
# guaranteed to see the effects of all transactions that have committed before
|
@@ -4641,7 +4652,7 @@ module Google
|
|
4641
4652
|
# two consecutive strong read-only transactions might return inconsistent
|
4642
4653
|
# results if there are concurrent writes. If consistency across reads is
|
4643
4654
|
# required, the reads should be executed within a transaction or at an exact
|
4644
|
-
# read timestamp. See TransactionOptions.ReadOnly.strong. Exact
|
4655
|
+
# read timestamp. See TransactionOptions.ReadOnly.strong. Exact staleness: These
|
4645
4656
|
# timestamp bounds execute reads at a user-specified timestamp. Reads at a
|
4646
4657
|
# timestamp are guaranteed to see a consistent prefix of the global transaction
|
4647
4658
|
# history: they observe modifications done by all transactions with a commit
|
@@ -4655,7 +4666,7 @@ module Google
|
|
4655
4666
|
# equivalent boundedly stale concurrency modes. On the other hand, boundedly
|
4656
4667
|
# stale reads usually return fresher results. See TransactionOptions.ReadOnly.
|
4657
4668
|
# read_timestamp and TransactionOptions.ReadOnly.exact_staleness. Bounded
|
4658
|
-
#
|
4669
|
+
# staleness: Bounded staleness modes allow Cloud Spanner to pick the read
|
4659
4670
|
# timestamp, subject to a user-provided staleness bound. Cloud Spanner chooses
|
4660
4671
|
# the newest timestamp within the staleness bound that allows execution of the
|
4661
4672
|
# reads at the closest available replica without blocking. All rows yielded are
|
@@ -4672,51 +4683,54 @@ module Google
|
|
4672
4683
|
# timestamp negotiation requires up-front knowledge of which rows will be read,
|
4673
4684
|
# it can only be used with single-use read-only transactions. See
|
4674
4685
|
# TransactionOptions.ReadOnly.max_staleness and TransactionOptions.ReadOnly.
|
4675
|
-
# min_read_timestamp. Old
|
4686
|
+
# min_read_timestamp. Old read timestamps and garbage collection: Cloud Spanner
|
4676
4687
|
# continuously garbage collects deleted and overwritten data in the background
|
4677
4688
|
# to reclaim storage space. This process is known as "version GC". By default,
|
4678
4689
|
# version GC reclaims versions after they are one hour old. Because of this,
|
4679
4690
|
# Cloud Spanner cannot perform reads at read timestamps more than one hour in
|
4680
4691
|
# the past. This restriction also applies to in-progress reads and/or SQL
|
4681
4692
|
# queries whose timestamp become too old while executing. Reads and SQL queries
|
4682
|
-
# with too-old read timestamps fail with the error `FAILED_PRECONDITION`.
|
4683
|
-
#
|
4684
|
-
#
|
4685
|
-
#
|
4686
|
-
#
|
4687
|
-
#
|
4688
|
-
#
|
4689
|
-
#
|
4690
|
-
#
|
4691
|
-
#
|
4692
|
-
#
|
4693
|
-
#
|
4694
|
-
#
|
4695
|
-
#
|
4696
|
-
#
|
4697
|
-
#
|
4698
|
-
#
|
4699
|
-
#
|
4700
|
-
#
|
4701
|
-
#
|
4702
|
-
#
|
4703
|
-
#
|
4704
|
-
#
|
4705
|
-
#
|
4706
|
-
#
|
4707
|
-
#
|
4708
|
-
#
|
4709
|
-
#
|
4710
|
-
#
|
4711
|
-
#
|
4712
|
-
#
|
4713
|
-
#
|
4714
|
-
#
|
4715
|
-
#
|
4716
|
-
#
|
4717
|
-
#
|
4718
|
-
#
|
4719
|
-
#
|
4693
|
+
# with too-old read timestamps fail with the error `FAILED_PRECONDITION`. You
|
4694
|
+
# can configure and extend the `VERSION_RETENTION_PERIOD` of a database up to a
|
4695
|
+
# period as long as one week, which allows Cloud Spanner to perform reads up to
|
4696
|
+
# one week in the past. Partitioned DML transactions: Partitioned DML
|
4697
|
+
# transactions are used to execute DML statements with a different execution
|
4698
|
+
# strategy that provides different, and often better, scalability properties for
|
4699
|
+
# large, table-wide operations than DML in a ReadWrite transaction. Smaller
|
4700
|
+
# scoped statements, such as an OLTP workload, should prefer using ReadWrite
|
4701
|
+
# transactions. Partitioned DML partitions the keyspace and runs the DML
|
4702
|
+
# statement on each partition in separate, internal transactions. These
|
4703
|
+
# transactions commit automatically when complete, and run independently from
|
4704
|
+
# one another. To reduce lock contention, this execution strategy only acquires
|
4705
|
+
# read locks on rows that match the WHERE clause of the statement. Additionally,
|
4706
|
+
# the smaller per-partition transactions hold locks for less time. That said,
|
4707
|
+
# Partitioned DML is not a drop-in replacement for standard DML used in
|
4708
|
+
# ReadWrite transactions. - The DML statement must be fully-partitionable.
|
4709
|
+
# Specifically, the statement must be expressible as the union of many
|
4710
|
+
# statements which each access only a single row of the table. - The statement
|
4711
|
+
# is not applied atomically to all rows of the table. Rather, the statement is
|
4712
|
+
# applied atomically to partitions of the table, in independent transactions.
|
4713
|
+
# Secondary index rows are updated atomically with the base table rows. -
|
4714
|
+
# Partitioned DML does not guarantee exactly-once execution semantics against a
|
4715
|
+
# partition. The statement will be applied at least once to each partition. It
|
4716
|
+
# is strongly recommended that the DML statement should be idempotent to avoid
|
4717
|
+
# unexpected results. For instance, it is potentially dangerous to run a
|
4718
|
+
# statement such as `UPDATE table SET column = column + 1` as it could be run
|
4719
|
+
# multiple times against some rows. - The partitions are committed automatically
|
4720
|
+
# - there is no support for Commit or Rollback. If the call returns an error, or
|
4721
|
+
# if the client issuing the ExecuteSql call dies, it is possible that some rows
|
4722
|
+
# had the statement executed on them successfully. It is also possible that
|
4723
|
+
# statement was never executed against other rows. - Partitioned DML
|
4724
|
+
# transactions may only contain the execution of a single DML statement via
|
4725
|
+
# ExecuteSql or ExecuteStreamingSql. - If any error is encountered during the
|
4726
|
+
# execution of the partitioned DML operation (for instance, a UNIQUE INDEX
|
4727
|
+
# violation, division by zero, or a value that cannot be stored due to schema
|
4728
|
+
# constraints), then the operation is stopped at that point and an error is
|
4729
|
+
# returned. It is possible that at this point, some partitions have been
|
4730
|
+
# committed (or even committed multiple times), and other partitions have not
|
4731
|
+
# been run at all. Given the above, Partitioned DML is good fit for large,
|
4732
|
+
# database-wide, operations that are idempotent, such as deleting old rows from
|
4733
|
+
# a very large table.
|
4720
4734
|
# Corresponds to the JSON property `singleUse`
|
4721
4735
|
# @return [Google::Apis::SpannerV1::TransactionOptions]
|
4722
4736
|
attr_accessor :single_use
|
@@ -16,13 +16,13 @@ module Google
|
|
16
16
|
module Apis
|
17
17
|
module SpannerV1
|
18
18
|
# Version of the google-apis-spanner_v1 gem
|
19
|
-
GEM_VERSION = "0.
|
19
|
+
GEM_VERSION = "0.26.0"
|
20
20
|
|
21
21
|
# Version of the code generator used to generate this client
|
22
22
|
GENERATOR_VERSION = "0.4.1"
|
23
23
|
|
24
24
|
# Revision of the discovery document this client was generated from
|
25
|
-
REVISION = "
|
25
|
+
REVISION = "20220326"
|
26
26
|
end
|
27
27
|
end
|
28
28
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: google-apis-spanner_v1
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.26.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Google LLC
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-04-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: google-apis-core
|
@@ -58,7 +58,7 @@ licenses:
|
|
58
58
|
metadata:
|
59
59
|
bug_tracker_uri: https://github.com/googleapis/google-api-ruby-client/issues
|
60
60
|
changelog_uri: https://github.com/googleapis/google-api-ruby-client/tree/main/generated/google-apis-spanner_v1/CHANGELOG.md
|
61
|
-
documentation_uri: https://googleapis.dev/ruby/google-apis-spanner_v1/v0.
|
61
|
+
documentation_uri: https://googleapis.dev/ruby/google-apis-spanner_v1/v0.26.0
|
62
62
|
source_code_uri: https://github.com/googleapis/google-api-ruby-client/tree/main/generated/google-apis-spanner_v1
|
63
63
|
post_install_message:
|
64
64
|
rdoc_options: []
|