Skip to content

Commit 7981a71

Browse files
authored
[DOC-1080][2025.2] Updated defaults for EPCM flags (#29478)
* Updated defaults for EPCM flags * Update EPCM page
1 parent 12196d8 commit 7981a71

File tree

24 files changed

+149
-85
lines changed

24 files changed

+149
-85
lines changed

docs/content/stable/additional-features/parallel-query.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,10 @@ To enable and configure parallel queries, set the following configuration parame
2626
| yb_parallel_range_rows | The number of rows to plan per parallel worker. To enable parallel query, set this to a value other than 0. (Recommended: 10000) | 0 |
2727
| yb_parallel_range_size | Approximate size of parallel range for DocDB relation scans. | 1MB |
2828

29+
For new universes running v2025.2 or later, parallel append is enabled by default when you deploy using yugabyted, YugabyteDB Anywhere, or YugabyteDB Aeon.
30+
31+
In addition, when upgrading a deployment to v2025.2 or later, if the universe has the cost-based optimizer enabled (`on`), YugabyteDB will enable parallel append.
32+
2933
In addition, you can use the following PostgreSQL configuration parameters to configure parallel queries:
3034

3135
- Optimize the number of workers used by the parallel query.

docs/content/stable/architecture/design-goals.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ YugabyteDB supports single-row linearizable writes. Linearizability is one of th
5656

5757
YugabyteDB supports multi-row transactions with three isolation levels: Serializable, Snapshot (also known as repeatable read), and Read Committed isolation.
5858

59-
- The [YSQL API](../../api/ysql/) supports Serializable, Snapshot (default), and Read Committed isolation using the PostgreSQL isolation level syntax of `SERIALIZABLE`, `REPEATABLE READ`, and `READ COMMITTED` respectively. For more details, see [Isolation levels](#transaction-isolation-levels).
59+
- The [YSQL API](../../api/ysql/) supports Serializable, Snapshot, and Read Committed isolation using the PostgreSQL isolation level syntax of `SERIALIZABLE`, `REPEATABLE READ`, and `READ COMMITTED` respectively. For more details, see [Isolation levels](#transaction-isolation-levels).
6060
- The [YCQL API](../../api/ycql/) supports only Snapshot isolation (default) using the [BEGIN TRANSACTION](../../api/ycql/dml_transaction/) syntax.
6161

6262
## Partition Tolerance - CAP

docs/content/stable/architecture/transactions/_index.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82,10 +82,10 @@ To learn how YugabyteDB decides which transactions should be aborted in case of
8282

8383
## Read committed
8484

85-
Read Committed is the isolation level in which, clients do not need to retry or handle serialization errors (40001) in application logic.
85+
Read Committed is the isolation level in which clients do not need to retry or handle serialization errors (40001) in application logic.
8686

8787
{{<lead link="read-committed/">}}
88-
To understand how Read committed is implement and how to use it, see [Read committed](read-committed/).
88+
To understand how Read committed is implemented and how to use it, see [Read committed](read-committed/).
8989
{{</lead>}}
9090

9191
## Read restart error

docs/content/stable/architecture/transactions/isolation-levels.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,11 @@ Transaction isolation level support differs between the YSQL and YCQL APIs:
2626

2727
Similarly to PostgreSQL, you can specify Read Uncommitted for YSQL, but it behaves the same as Read Committed.
2828

29-
Read Committed is supported only if the YB-TServer flag `yb_enable_read_committed_isolation` is set to `true`. By default, this flag is `false`, in which case the Read Committed isolation level of YugabyteDB's transactional layer falls back to the stricter Snapshot isolation. The default isolation level for the YSQL API is essentially Snapshot because Read Committed, which is the YSQL API and PostgreSQL syntactic default, maps to Snapshot isolation.
29+
Read Committed is supported only if the YB-TServer flag `yb_enable_read_committed_isolation` is set to `true`.
30+
31+
For new universes running v2025.2 or later, Read Committed is enabled by default when you deploy using yugabyted, YugabyteDB Anywhere, or YugabyteDB Aeon.
32+
33+
In versions of YugabyteDB prior to v2025.2, or for manually deployed universes, `yb_enable_read_committed_isolation` is `false` (the default), and the Read Committed isolation level of YugabyteDB's transactional layer falls back to the stricter Snapshot isolation. This makes the default isolation level for the YSQL API effectively Snapshot because Read Committed, which is the YSQL API and PostgreSQL syntactic default, maps to Snapshot isolation.
3034

3135
## Internal locking in DocDB
3236

docs/content/stable/architecture/transactions/read-committed.md

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,11 @@ Note that retries for the statement in YugabyteDB's Read Committed isolation are
2323

2424
{{< tip title="Enable Read Committed" >}}
2525

26-
To enable Read Committed isolation, set the YB-TServer flag [yb_enable_read_committed_isolation](../../../reference/configuration/yb-tserver/#yb-enable-read-committed-isolation) to `true`. By default this flag is `false` and in this case the Read Committed isolation level of the YugabyteDB transactional layer falls back to the stricter Snapshot isolation (in which case `READ COMMITTED` and `READ UNCOMMITTED` of YSQL also in turn use Snapshot isolation).
26+
Read Committed is supported only if the YB-TServer flag `yb_enable_read_committed_isolation` is set to `true`.
27+
28+
For new universes running v2025.2 or later, Read Committed is enabled by default when you deploy using yugabyted, YugabyteDB Anywhere, or YugabyteDB Aeon.
29+
30+
In versions of YugabyteDB prior to v2025.2, or for manually deployed universes, `yb_enable_read_committed_isolation` is `false` (the default), and the Read Committed isolation level of YugabyteDB's transactional layer falls back to the stricter Snapshot isolation. This makes the default isolation level for the YSQL API effectively Snapshot because Read Committed, which is the YSQL API and PostgreSQL syntactic default, maps to Snapshot isolation.
2731

2832
Refer to [Usage](#usage) to start a Read Committed transaction after enabling the flag.
2933
{{< /tip >}}
@@ -342,7 +346,7 @@ The retries for serialization errors are done at the statement level. Each retry
342346

343347
## Usage
344348

345-
To use Read Committed isolation, first set the YB-TServer flag `yb_enable_read_committed_isolation=true`; this maps the syntactic Read Committed isolation in YSQL to the Read Committed implementation in DocDB. (When set to `false`, syntactic Read Committed in YSQL is mapped to Snapshot isolation in DocDB, meaning it behaves as Repeatable Read.)
349+
To use Read Committed isolation, ensure the YB-TServer flag `yb_enable_read_committed_isolation=true`; this maps the syntactic Read Committed isolation in YSQL to the Read Committed implementation in DocDB. (When set to `false`, syntactic Read Committed in YSQL is mapped to Snapshot isolation in DocDB, meaning it behaves as Repeatable Read.)
346350

347351
Assuming the flag has been set, you can start a Read Committed transaction in the following ways:
348352

@@ -1409,7 +1413,7 @@ Read Committed interacts with the following feature:
14091413

14101414
## Limitations
14111415

1412-
* A `SET TRANSACTION ISOLATION LEVEL ...` statement immediately issued after `BEGIN;` or `BEGIN TRANSACTION ISOLATION LEVEL READ COMMITTED;` will fail if the YB-TServer GFlag `yb_enable_read_committed_isolation=true`, and the following error will be issued:
1416+
* A `SET TRANSACTION ISOLATION LEVEL ...` statement immediately issued after `BEGIN;` or `BEGIN TRANSACTION ISOLATION LEVEL READ COMMITTED;` will fail if the YB-TServer flag `yb_enable_read_committed_isolation=true`, and the following error will be issued:
14131417

14141418
```output
14151419
ERROR: SET TRANSACTION ISOLATION LEVEL must not be called in a subtransaction

docs/content/stable/best-practices-operations/ysql-yb-enable-cbo.md

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,9 @@ You configure CBO using the [yb_enable_cbo](../../reference/configuration/yb-tse
2626

2727
## New deployments
2828

29-
For new YSQL deployments, or when migrating from another system, to enable CBO, add the parameter to [ysql_pg_conf_csv](../../reference/configuration/yb-tserver/#ysql-pg-conf-csv) as follows:
29+
For new universes running v2025.2 or later, CBO is enabled by default when you deploy using yugabyted, YugabyteDB Anywhere, or YugabyteDB Aeon.
30+
31+
For older YSQL deployments, or when deploying manually, to enable CBO, add the parameter to [ysql_pg_conf_csv](../../reference/configuration/yb-tserver/#ysql-pg-conf-csv) as follows:
3032

3133
```sh
3234
--ysql_pg_conf_csv=yb_enable_cbo=on
@@ -53,6 +55,12 @@ When upgrading a deployment to a version of YugabyteDB that supports the `yb_ena
5355

5456
You should migrate existing deployments from using `legacy_mode` or `legacy_stats_mode` to either `on` (recommended) or, if you do not want to use CBO, `off`.
5557

58+
Note that when upgrading a deployment to v2025.2 or later, if the universe has the cost-based optimizer enabled (`on`), YugabyteDB will enable the following features:
59+
60+
- [Auto Analyze](../../additional-features/auto-analyze/): ysql_enable_auto_analyze is set to true.
61+
- [YugabyteDB bitmap scan](../../reference/configuration/postgresql-compatibility/#yugabytedb-bitmap-scan): yb_enable_bitmapscan is set to true.
62+
- [Parallel append](../../additional-features/parallel-query/): yb_enable_parallel_append is set to true.
63+
5664
<!--## Recommended settings
5765
5866
| Scenario | Tables analyzed | Setting |

docs/content/stable/deploy/manual-deployment/start-masters.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,8 @@ The number of comma-separated addresses in `--master_addresses` should equal the
7575

7676
You can specify multiple directories using the [`--fs_data_dirs`](../../../reference/configuration/yb-master/#fs-data-dirs) flag. Replace the [`--rpc_bind_addresses`](../../../reference/configuration/yb-master/#rpc-bind-addresses) value with the private IP address of the host, and set the `placement_cloud`, `placement_region`, and `placement_zone` values appropriately. For single zone deployment, use the same value for the `placement_zone` flag.
7777

78+
If you are running YSQL, for enhanced PostgreSQL compatibility, you can enable [Enhanced PostgreSQL Compatibility Mode](../../../reference/configuration/postgresql-compatibility/) (recommended).
79+
7880
{{<tags/feature/tp idea="1807">}} Highly accurate clocks can be configured by specifying `--time_source=clockbound`. Requires [system configuration](../system-config#set-up-time-synchronization).
7981

8082
For the full list of configuration flags, see the [YB-Master reference](../../../reference/configuration/yb-master/).

docs/content/stable/deploy/manual-deployment/start-yugabyted.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,16 @@ cd yugabyte-{{< yb-version version="stable" >}}
6363
mkdir ybc | tar -xvf share/ybc-2.0.0.0-b19-linux-x86_64.tar.gz -C ybc --strip-components=1
6464
```
6565

66+
## PostgreSQL compatibility
67+
68+
For _new universes_ running v2025.2 or later, the following features are enabled by default when you deploy using yugabyted, YugabyteDB Anywhere, or YugabyteDB Aeon:
69+
70+
- [Read committed](../../../architecture/transactions/read-committed/) (yb_enable_read_committed_isolation=true)
71+
- [Cost based optimizer](../../../best-practices-operations/ysql-yb-enable-cbo/) (yb_enable_cbo=on)
72+
- [Auto Analyze](../../../additional-features/auto-analyze/) (ysql_enable_auto_analyze=true)
73+
- [YugabyteDB bitmap scan](../../../reference/configuration/postgresql-compatibility/#yugabytedb-bitmap-scan) (yb_enable_bitmapscan=true)
74+
- [Parallel query](../../../additional-features/parallel-query/) (yb_enable_parallel_append=true)
75+
6676
## Deploy a multi-zone cluster
6777

6878
Note that single zone configuration is a special case of multi-zone where all placement-related flags are set to the same value across every node.

docs/content/stable/explore/transactions/isolation-levels.md

Lines changed: 11 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -39,11 +39,13 @@ YugabyteDB supports three isolation levels in the transactional layer:
3939

4040
The default isolation level for the YSQL API is effectively Snapshot (that is, the same as PostgreSQL's `REPEATABLE READ`) because, by default, Read committed, which is the YSQL API and PostgreSQL _syntactic_ default, maps to Snapshot isolation.
4141

42-
To enable Read committed, you must set the YB-TServer flag `yb_enable_read_committed_isolation` to `true`. By default this flag is `false` and the Read committed isolation level of the YugabyteDB transactional layer falls back to the stricter Snapshot isolation (in which case `READ COMMITTED` and `READ UNCOMMITTED` of YSQL also in turn use Snapshot isolation).
42+
However, for new universes running v2025.2 or later, Read Committed is enabled by default when you deploy using yugabyted, YugabyteDB Anywhere, or YugabyteDB Aeon.
43+
44+
In versions of YugabyteDB prior to v2025.2, or for manually deployed universes, to enable Read committed, you must set the YB-TServer flag `yb_enable_read_committed_isolation` to `true`. By default this flag is `false` , and the Read Committed isolation level of YugabyteDB's transactional layer falls back to the stricter Snapshot isolation. This makes the default isolation level for the YSQL API effectively Snapshot because Read Committed, which is the YSQL API and PostgreSQL syntactic default, maps to Snapshot isolation.
4345

4446
{{< tip title="Tip" >}}
4547

46-
To avoid serializable errors, that is, to run applications with no retry logic, keep the default `READ COMMITTED` isolation (`--ysql_default_transaction_isolation`), and set the YB-TServer `--yb_enable_read_committed_isolation` flag to true. This enables read committed isolation.
48+
To avoid serializable errors (that is, to run applications with no retry logic), keep the default `READ COMMITTED` isolation (`--ysql_default_transaction_isolation`), and set the YB-TServer `--yb_enable_read_committed_isolation` flag to true. This enables read committed isolation.
4749

4850
{{< /tip >}}
4951

@@ -229,7 +231,7 @@ Snapshot isolation detects only write-write conflicts; it does not detect read-w
229231

230232
Applications using this level must be prepared to retry transactions due to serialization failures.
231233

232-
Consider an example of transactions' behavior under the Snapshot isolation level (mapped to PostgreSQL's Repeatable Read level).
234+
Consider an example of transactions' behavior under the Snapshot isolation level.
233235

234236
Create a table with sample data, as follows:
235237

@@ -249,10 +251,10 @@ Next, connect to the universe using two independent ysqlsh instances, referred t
249251
<tr>
250252
<td>
251253

252-
Begin a transaction in session #1. This is Snapshot isolation by default, meaning it will work against a snapshot of the database as of this point:
254+
Begin a transaction in session #1 with the Snapshot isolation level, meaning it will work against a snapshot of the database as of this point:
253255

254256
```sql
255-
BEGIN TRANSACTION;
257+
BEGIN TRANSACTION ISOLATION LEVEL SNAPSHOT;
256258
```
257259

258260
</td>
@@ -290,6 +292,7 @@ SELECT * FROM example;
290292
Insert a different row. Verify that the row inserted in the transaction in session #1 is not visible in this session, as follows:
291293

292294
```sql
295+
BEGIN TRANSACTION ISOLATION LEVEL SNAPSHOT;
293296
INSERT INTO example VALUES (2);
294297
SELECT * FROM example;
295298
```
@@ -374,10 +377,10 @@ Connect to the universe using two independent ysqlsh instances, referred to as s
374377
<tr>
375378
<td>
376379

377-
By default, the YB-TServer flag `yb_enable_read_committed_isolation` is false. In this case, Read committed maps to Snapshot isolation at the transactional layer. So, `READ COMMITTED` of YSQL API in turn maps to Snapshot Isolation:
380+
Begin a transaction in session #1. (Note that because the universe was deployed using yugabyted, YugabyteDB Anywhere, or YugabyteDB Aeon, Read Committed is the default isolation level.)
378381

379382
```sql
380-
BEGIN TRANSACTION ISOLATION LEVEL READ COMMITTED;
383+
BEGIN TRANSACTION;
381384
SELECT * FROM test;
382385
```
383386

@@ -417,22 +420,6 @@ SELECT * FROM test;
417420
COMMIT;
418421
```
419422

420-
```output
421-
k | v
422-
---+---
423-
1 | 2
424-
(1 row)
425-
```
426-
427-
The inserted row (2, 3) is not visible because Read committed is disabled at the transactional layer and maps to Snapshot in which the whole transaction sees a consistent snapshot of the database.
428-
429-
Set the YB-TServer flag `yb_enable_read_committed_isolation` to `true`:
430-
431-
```sql
432-
BEGIN TRANSACTION ISOLATION LEVEL READ COMMITTED;
433-
SELECT * FROM test;
434-
```
435-
436423
```output
437424
k | v
438425
---+---
@@ -441,44 +428,7 @@ SELECT * FROM test;
441428
(2 rows)
442429
```
443430

444-
</td>
445-
<td>
446-
</td>
447-
</tr>
448-
449-
<tr>
450-
<td>
451-
</td>
452-
<td>
453-
454-
Insert a new row, as follows:
455-
456-
```sql
457-
INSERT INTO test VALUES (3, 4);
458-
```
459-
460-
</td>
461-
</tr>
462-
463-
<tr>
464-
<td>
465-
466-
Perform the read again in the same transaction, as follows:
467-
468-
```sql
469-
SELECT * FROM test;
470-
```
471-
472-
```output
473-
k | v
474-
---+---
475-
1 | 2
476-
2 | 3
477-
3 | 4
478-
(3 rows)
479-
```
480-
481-
This time, the statement can see the row (3, 4) that was committed after this transaction had been started but before the statement has been issued.
431+
Unlike snapshot isolation, the statement can see the row (2, 3) that was committed after this transaction had been started but before the statement has been issued.
482432

483433
</td>
484434
<td>

docs/content/stable/faq/general.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ headerTitle: FAQ
44
linkTitle: FAQ
55
description: YugabyteDB FAQ — How does YugabyteDB work? When is YugabyteDB database a good fit? What APIs does YugabyteDB support? And other frequently asked questions.
66
aliases:
7+
- /stable/faq/
78
- /stable/faq/product/
89
- /stable/introduction/overview/
910
- /stable/introduction/benefits/

0 commit comments

Comments
 (0)