-
Notifications
You must be signed in to change notification settings - Fork 738
Add paragraph about Implicit Transaction Control (NoTx mode) #21324
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
deb377c
143f883
d8cd52d
f815014
ae21d7c
9bf2063
c6d1d80
973b2bb
834ecce
a50e6bb
6d93238
9056217
f319621
69d4bbd
ad3cd1c
3b9f42d
a77131f
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -18,6 +18,31 @@ | |
| * *Stale Read-Only* — чтения данных в транзакции возвращают результаты с возможным отставанием от актуальных (доли секунды). Данные в каждом отдельно взятом чтении консистентны, между разными чтениями консистентность данных не гарантируется. | ||
| * *Snapshot Read-Only* — все чтения транзакции производятся из снапшота базы данных, при этом все чтения данных консистентны. Взятие снапшота происходит в момент старта транзакции, т.е. транзакция видит все изменения, закоммиченные до момента своего начала. | ||
|
|
||
| ### Неявные транзакции {#implicit} | ||
|
|
||
| Если для запроса не задан [режим транзакции](../transactions.md#modes), {{ ydb-short-name }} автоматически управляет его поведением. Такой режим называется неявной транзакцией. | ||
|
|
||
| В этом режиме {{ ydb-short-name }} на основе запроса определяет, выполнить его вне транзакции или обернуть в транзакцию с режимом *Serializable*. Режим неявной транзакции является универсальным для выполнения запроса, так как поддерживает инструкции любого вида с определённым поведением, описанным ниже. | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Я бы добавил объяснение. Грубо говоря, YDB не поддерживает транзакционный DDL, поэтому появляется описание работы неявных транзакций. |
||
|
|
||
| #### Поведение для разных видов инструкций | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Я бы убрал заголовок. Вот просто совсем без него. |
||
|
|
||
| - **Инструкции [Data Definition Language](https://en.wikipedia.org/wiki/Data_definition_language) (DDL)** | ||
| DDL-инструкции (такие как [CREATE TABLE](../../yql/reference/syntax/create_table/index.md), [DROP TABLE](../../yql/reference/syntax/drop_table.md) и т.д.) выполняются вне транзакции. Запрос может состоять только из DDL-инструкций. При возникновении ошибки изменения, внесённые предыдущими инструкциями запроса, не откатываются. | ||
|
|
||
| - **Инструкции [Data Manipulation Language](https://en.wikipedia.org/wiki/Data_manipulation_language) (DML)** | ||
| DML-инструкции (такие как [UPSERT](../../yql/reference/syntax/upsert_into.md), [SELECT](../../yql/reference/syntax/select/index.md), [UPDATE](../../yql/reference/syntax/update.md) и т.д.) оборачиваются в транзакцию с режимом *Serializable*. Запрос может состоять только из DML-инструкций. При успешном выполнении изменения коммитятся (фиксируются), а при возникновении ошибки — откатываются. | ||
|
|
||
| - **Инструкции пакетного изменения** | ||
| Инструкции пакетного изменения (такие как [BATCH UPDATE](../../yql/reference/syntax/batch-update.md) и [BATCH DELETE FROM](../../yql/reference/syntax/batch-delete.md)) выполняются вне транзакции. Запрос может состоять только из одной инструкции пакетного изменения. При возникновении ошибки изменения инструкции не откатываются. | ||
|
|
||
| #### Сводная таблица | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. И этот заголовок бы убрал. |
||
|
|
||
| | Тип инструкции | Обработка неявной транзакции | Поддержка нескольких инструкций | Откат при ошибке | | ||
| |----------------|---------------------------------------------------|---------------------------------|-----------------------| | ||
| | DDL | Вне транзакции | Да (только DDL) | Нет | | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Мне не нравится фраза "Вне транзакции". Больше нравится "Каждый DDL statement в своей транзакции" |
||
| | DML | Автоматическая транзакция (Serializable) | Да (только DML) | Да | | ||
| | Инструкции пакетного изменения | Вне транзакции | Нет | Нет | | ||
|
|
||
| Режим выполнения транзакции задается в настройках транзакции при ее создании. Примеры для {{ ydb-short-name }} SDK смотрите в статье [{#T}](../../recipes/ydb-sdk/tx-control.md). | ||
|
|
||
| ## Язык YQL {#language-yql} | ||
|
|
||
Uh oh!
There was an error while loading. Please reload this page.