From ad7f6573513d0dc06b18274f429263ba7ea9d86d Mon Sep 17 00:00:00 2001 From: Rich Loveland Date: Wed, 1 Apr 2026 14:49:08 -0400 Subject: [PATCH 1/2] Update 'Life of a Distributed Transaction' supersedes https://github.com/cockroachdb/docs/pull/18968, ports that change to all supported versions h/t @mgoddard --- .../v23.2/architecture/life-of-a-distributed-transaction.md | 2 +- .../v24.1/architecture/life-of-a-distributed-transaction.md | 2 +- .../v24.3/architecture/life-of-a-distributed-transaction.md | 2 +- .../v25.2/architecture/life-of-a-distributed-transaction.md | 2 +- .../v25.4/architecture/life-of-a-distributed-transaction.md | 2 +- .../v26.1/architecture/life-of-a-distributed-transaction.md | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/current/v23.2/architecture/life-of-a-distributed-transaction.md b/src/current/v23.2/architecture/life-of-a-distributed-transaction.md index 3f222614646..6b97edd8439 100644 --- a/src/current/v23.2/architecture/life-of-a-distributed-transaction.md +++ b/src/current/v23.2/architecture/life-of-a-distributed-transaction.md @@ -112,7 +112,7 @@ This works by giving each write operation a latch on a row. Any reads or writes ### Batch Evaluation -The batch evaluator ensures that write operations are valid. Our architecture makes this fairly trivial. First, the evaluator can simply check the leaseholder's data to ensure the write is valid; because it has coordinated all writes to the range, it must have the most up-to-date versions of the range's data. Secondly, because of the latch manager, each write operation is guaranteed to uncontested access to the range (i.e., there is no contention with other write operations). +The batch evaluator ensures that write operations are valid. Our architecture makes this fairly trivial. First, the evaluator can simply check the leaseholder's data to ensure the write is valid; because it has coordinated all writes to the range, it must have the most up-to-date versions of the range's data. Secondly, because of the latch manager, each write operation is guaranteed uncontested access to the range (i.e., there is no contention with other write operations). If the write operation is valid according to the evaluator, the leaseholder sends a provisional acknowledgment to the gateway node's `DistSender`; this lets the `DistSender` begin to send its subsequent `BatchRequests` for this range. diff --git a/src/current/v24.1/architecture/life-of-a-distributed-transaction.md b/src/current/v24.1/architecture/life-of-a-distributed-transaction.md index 3c9abb8fc60..79dbca0f629 100644 --- a/src/current/v24.1/architecture/life-of-a-distributed-transaction.md +++ b/src/current/v24.1/architecture/life-of-a-distributed-transaction.md @@ -112,7 +112,7 @@ This works by giving each write operation a latch on a row. Any reads or writes ### Batch Evaluation -The batch evaluator ensures that write operations are valid. Our architecture makes this fairly trivial. First, the evaluator can simply check the leaseholder's data to ensure the write is valid; because it has coordinated all writes to the range, it must have the most up-to-date versions of the range's data. Secondly, because of the latch manager, each write operation is guaranteed to uncontested access to the range (i.e., there is no contention with other write operations). +The batch evaluator ensures that write operations are valid. Our architecture makes this fairly trivial. First, the evaluator can simply check the leaseholder's data to ensure the write is valid; because it has coordinated all writes to the range, it must have the most up-to-date versions of the range's data. Secondly, because of the latch manager, each write operation is guaranteed uncontested access to the range (i.e., there is no contention with other write operations). If the write operation is valid according to the evaluator, the leaseholder sends a provisional acknowledgment to the gateway node's `DistSender`; this lets the `DistSender` begin to send its subsequent `BatchRequests` for this range. diff --git a/src/current/v24.3/architecture/life-of-a-distributed-transaction.md b/src/current/v24.3/architecture/life-of-a-distributed-transaction.md index 3c9abb8fc60..79dbca0f629 100644 --- a/src/current/v24.3/architecture/life-of-a-distributed-transaction.md +++ b/src/current/v24.3/architecture/life-of-a-distributed-transaction.md @@ -112,7 +112,7 @@ This works by giving each write operation a latch on a row. Any reads or writes ### Batch Evaluation -The batch evaluator ensures that write operations are valid. Our architecture makes this fairly trivial. First, the evaluator can simply check the leaseholder's data to ensure the write is valid; because it has coordinated all writes to the range, it must have the most up-to-date versions of the range's data. Secondly, because of the latch manager, each write operation is guaranteed to uncontested access to the range (i.e., there is no contention with other write operations). +The batch evaluator ensures that write operations are valid. Our architecture makes this fairly trivial. First, the evaluator can simply check the leaseholder's data to ensure the write is valid; because it has coordinated all writes to the range, it must have the most up-to-date versions of the range's data. Secondly, because of the latch manager, each write operation is guaranteed uncontested access to the range (i.e., there is no contention with other write operations). If the write operation is valid according to the evaluator, the leaseholder sends a provisional acknowledgment to the gateway node's `DistSender`; this lets the `DistSender` begin to send its subsequent `BatchRequests` for this range. diff --git a/src/current/v25.2/architecture/life-of-a-distributed-transaction.md b/src/current/v25.2/architecture/life-of-a-distributed-transaction.md index 993de4125a7..a6cfcf9913c 100644 --- a/src/current/v25.2/architecture/life-of-a-distributed-transaction.md +++ b/src/current/v25.2/architecture/life-of-a-distributed-transaction.md @@ -112,7 +112,7 @@ This works by giving each write operation a latch on a row. Any reads or writes ### Batch Evaluation -The batch evaluator ensures that write operations are valid. Our architecture makes this fairly trivial. First, the evaluator can simply check the leaseholder's data to ensure the write is valid; because it has coordinated all writes to the range, it must have the most up-to-date versions of the range's data. Secondly, because of the latch manager, each write operation is guaranteed to uncontested access to the range (i.e., there is no contention with other write operations). +The batch evaluator ensures that write operations are valid. Our architecture makes this fairly trivial. First, the evaluator can simply check the leaseholder's data to ensure the write is valid; because it has coordinated all writes to the range, it must have the most up-to-date versions of the range's data. Secondly, because of the latch manager, each write operation is guaranteed uncontested access to the range (i.e., there is no contention with other write operations). If the write operation is valid according to the evaluator, the leaseholder sends a provisional acknowledgment to the gateway node's `DistSender`; this lets the `DistSender` begin to send its subsequent `BatchRequests` for this range. diff --git a/src/current/v25.4/architecture/life-of-a-distributed-transaction.md b/src/current/v25.4/architecture/life-of-a-distributed-transaction.md index 88e388f8ff2..2219a27bec2 100644 --- a/src/current/v25.4/architecture/life-of-a-distributed-transaction.md +++ b/src/current/v25.4/architecture/life-of-a-distributed-transaction.md @@ -112,7 +112,7 @@ This works by giving each write operation a latch on a row. Any reads or writes ### Batch Evaluation -The batch evaluator ensures that write operations are valid. Our architecture makes this fairly trivial. First, the evaluator can simply check the leaseholder's data to ensure the write is valid; because it has coordinated all writes to the range, it must have the most up-to-date versions of the range's data. Secondly, because of the latch manager, each write operation is guaranteed to uncontested access to the range (i.e., there is no contention with other write operations). +The batch evaluator ensures that write operations are valid. Our architecture makes this fairly trivial. First, the evaluator can simply check the leaseholder's data to ensure the write is valid; because it has coordinated all writes to the range, it must have the most up-to-date versions of the range's data. Secondly, because of the latch manager, each write operation is guaranteed uncontested access to the range (i.e., there is no contention with other write operations). If the write operation is valid according to the evaluator, the leaseholder sends a provisional acknowledgment to the gateway node's `DistSender`; this lets the `DistSender` begin to send its subsequent `BatchRequests` for this range. diff --git a/src/current/v26.1/architecture/life-of-a-distributed-transaction.md b/src/current/v26.1/architecture/life-of-a-distributed-transaction.md index 88e388f8ff2..2219a27bec2 100644 --- a/src/current/v26.1/architecture/life-of-a-distributed-transaction.md +++ b/src/current/v26.1/architecture/life-of-a-distributed-transaction.md @@ -112,7 +112,7 @@ This works by giving each write operation a latch on a row. Any reads or writes ### Batch Evaluation -The batch evaluator ensures that write operations are valid. Our architecture makes this fairly trivial. First, the evaluator can simply check the leaseholder's data to ensure the write is valid; because it has coordinated all writes to the range, it must have the most up-to-date versions of the range's data. Secondly, because of the latch manager, each write operation is guaranteed to uncontested access to the range (i.e., there is no contention with other write operations). +The batch evaluator ensures that write operations are valid. Our architecture makes this fairly trivial. First, the evaluator can simply check the leaseholder's data to ensure the write is valid; because it has coordinated all writes to the range, it must have the most up-to-date versions of the range's data. Secondly, because of the latch manager, each write operation is guaranteed uncontested access to the range (i.e., there is no contention with other write operations). If the write operation is valid according to the evaluator, the leaseholder sends a provisional acknowledgment to the gateway node's `DistSender`; this lets the `DistSender` begin to send its subsequent `BatchRequests` for this range. From a76d1b42f789ccf4d524ecda73bf01f43a9a9d16 Mon Sep 17 00:00:00 2001 From: Rich Loveland Date: Wed, 1 Apr 2026 14:53:51 -0400 Subject: [PATCH 2/2] Update 'Life of a Distributed Transaction' for v26.2 Adds the same copy edit to the v26.2 page. --- .../v26.2/architecture/life-of-a-distributed-transaction.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/current/v26.2/architecture/life-of-a-distributed-transaction.md b/src/current/v26.2/architecture/life-of-a-distributed-transaction.md index 88e388f8ff2..2219a27bec2 100644 --- a/src/current/v26.2/architecture/life-of-a-distributed-transaction.md +++ b/src/current/v26.2/architecture/life-of-a-distributed-transaction.md @@ -112,7 +112,7 @@ This works by giving each write operation a latch on a row. Any reads or writes ### Batch Evaluation -The batch evaluator ensures that write operations are valid. Our architecture makes this fairly trivial. First, the evaluator can simply check the leaseholder's data to ensure the write is valid; because it has coordinated all writes to the range, it must have the most up-to-date versions of the range's data. Secondly, because of the latch manager, each write operation is guaranteed to uncontested access to the range (i.e., there is no contention with other write operations). +The batch evaluator ensures that write operations are valid. Our architecture makes this fairly trivial. First, the evaluator can simply check the leaseholder's data to ensure the write is valid; because it has coordinated all writes to the range, it must have the most up-to-date versions of the range's data. Secondly, because of the latch manager, each write operation is guaranteed uncontested access to the range (i.e., there is no contention with other write operations). If the write operation is valid according to the evaluator, the leaseholder sends a provisional acknowledgment to the gateway node's `DistSender`; this lets the `DistSender` begin to send its subsequent `BatchRequests` for this range.