Skip to content

Commit 21a8b2e

Browse files
ElenaAfinablinkov
andauthored
Adds info about topics transactions (#9361)
Co-authored-by: Ivan Blinkov <ivan@ydb.tech>
1 parent d317ae4 commit 21a8b2e

File tree

2 files changed

+26
-3
lines changed

2 files changed

+26
-3
lines changed

ydb/docs/ru/core/concepts/_includes/transactions.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,3 +52,9 @@
5252
[Топик](../topic.md) в {{ ydb-short-name }} может быть шардирован на несколько партиций. Различные партиции топика, как и шарды таблицы, могут обслуживаться разными серверами распределенной БД.
5353

5454
В {{ ydb-short-name }} поддерживаются распределенные транзакции. Распределенные транзакции — это транзакции, которые затрагивают более одного шарда одной или нескольких таблиц и топиков. Они требуют больше ресурсов и выполняются дольше. В то время как точечные чтения и записи могут выполняться за время до 10 мс в 99 перцентиле, распределенные транзакции, как правило, занимают от 20 до 500 мс.
55+
56+
## Транзакции с участием топиков и таблиц {#topic-table-transactions}
57+
58+
{{ ydb-short-name }} поддерживает транзакции с участием [построчных таблиц](../glossary.md#row-oriented-table) и/или топиков. Таким образом, можно транзакционно перекладывать данные из таблиц в топики и в обратном направлении, а также между топиками, чтобы данные не терялись и не дублировались даже в случае непредвиденных обстоятельств.
59+
60+
Подробнее о транзакционных операциях при работе с топиками см. в [{#T}](../topic.md#topic-transactions) и [{#T}](../../reference/ydb-sdk/topic.md).

ydb/docs/ru/core/concepts/topic.md

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,9 @@
2727

2828
{% endnote %}
2929

30-
### Офсет {#offset}
30+
### Смещение (offset) {#offset}
3131

32-
Все сообщения внутри партиции имеют уникальный порядковый номер, называемый `офсетом`. Офсет монотонно возрастает при записи новых сообщений.
32+
Все сообщения внутри партиции имеют уникальный порядковый номер, называемый `смещением` (offset). Смещение монотонно возрастает при записи новых сообщений.
3333

3434
## Источники и группы сообщений {#producer-id}
3535

@@ -133,7 +133,7 @@
133133

134134
### Позиция чтения {#consumer-offset}
135135

136-
Позиция чтения — это сохраненный [офсет](#offset) читателя по каждой партиции топика. Позиция чтения сохраняется читателем после отправки подтверждения прочитанных данных. При установке новой сессии чтения сообщения поступают читателю начиная с сохраненной позиции чтения. Это позволяет пользователям не хранить позицию чтения на своей стороне.
136+
Позиция чтения — это сохраненное [смещение](#offset) читателя по каждой партиции топика. Позиция чтения сохраняется читателем после отправки подтверждения прочитанных данных. При установке новой сессии чтения сообщения поступают читателю начиная с сохраненной позиции чтения. Это позволяет пользователям не хранить позицию чтения на своей стороне.
137137

138138
### Важный читатель {#important-consumer}
139139

@@ -151,3 +151,20 @@
151151

152152
Также ограниченно поддержан протокол Kafka API версии 3.4.0. (см. [Работа с Kafka API](../reference/kafka-api/index.md)).
153153

154+
## Транзакции с участием топиков {#topic-transactions}
155+
156+
{{ ydb-short-name }} поддерживает работу с топиками в рамках [транзакций](./transactions.md).
157+
158+
### Транзакционное чтение из топика {#topic-transactions-read}
159+
160+
Данные в топиках не изменяются при чтении из топика. Поэтому при чтении в транзакции из топика непосредственно транзакционной операцией является только изменение смещения (offset). При транзакционном чтении через SDK не происходит коммита смещений. Отложенный коммит смещений происходит автоматически при коммите транзакции, SDK скрывает это от пользователя.
161+
162+
### Транзакционная запись в топик {#topic-transactions-write}
163+
164+
При транзакционной записи в топик данные до коммита сохраняются вне партиции, а затем публикуются (становятся видимыми) в момент коммита транзакции. При этом данные будут добавлены в конец партиции в последовательные смещения (offset). Видимости собственных изменений в топиках в транзакциях с участием топиков не предусмотрено.
165+
166+
### Ограничения при работе с топиками в транзакции {#topic-transactions-constraints}
167+
168+
Транзакции не накладывают дополнительных ограничений на работу с топиками. Внутри транзакции можно записывать большие объёмы данных в топик, писать в несколько партиций и читать несколькими консьюмерами.
169+
170+
Тем не менее рекомендуется выбирать режим работы с транзакциями, учитывая особенности транзакционной работы с топиками: данные публикуются в момент коммита транзакции. То есть если транзакция длительная, данные станут видимыми только спустя значительное время.

0 commit comments

Comments
 (0)