@@ -27,6 +27,13 @@ msgstr ""
27
27
"проходит коммит лишь после репликации на некотором количестве экземпляров, и"
28
28
" только тогда клиенту приходит ответ о завершении транзакции."
29
29
30
+ msgid ""
31
+ "To learn how to enable and use synchronous replication, "
32
+ "check the :ref:`guide <how-to-repl_sync>`."
33
+ msgstr ""
34
+ "Подробная информация о включении и настройке синхронной репликации "
35
+ "приведена в :ref:`соответствующем руководстве <how-to-repl_sync>`."
36
+
30
37
msgid "Synchronous and asynchronous transactions"
31
38
msgstr "Синхронные и асинхронные транзакции"
32
39
@@ -46,14 +53,14 @@ msgid ""
46
53
"be blocked by the existing synchronous transactions. This behavior is very "
47
54
"similar to a regular queue of asynchronous transactions because all the "
48
55
"transactions are committed in the same order as they make the "
49
- "`` box.commit()` ` call. So, here comes **the commit rule**: transactions are "
56
+ ":ref:` box.commit() <box-commit> ` call. So, here comes **the commit rule**: transactions are "
50
57
"committed in the same order as they make the ``box.commit()`` "
51
- "call— regardless of being synchronous or asynchronous."
58
+ "call -- regardless of being synchronous or asynchronous."
52
59
msgstr ""
53
60
"Если наряду с несколькими синхронными транзакциями, ожидающими репликации, "
54
61
"совершается асинхронная транзакция, она блокируется синхронными. Коммиты при"
55
62
" этом выполняются в той последовательности, в которой для каждой из "
56
- "транзакций вызывается метод `` box.commit()` `. Похожим образом работает "
63
+ "транзакций вызывается метод :ref:` box.commit() <box-commit> `. Похожим образом работает "
57
64
"обычная очередь асинхронных транзакций. Можно сформулировать **правило "
58
65
"коммитов**: порядок коммитов соответствует порядку вызова ``box.commit()`` "
59
66
"для каждой из транзакций, независимо от того, синхронные транзакции или "
@@ -65,7 +72,7 @@ msgid ""
65
72
"like how asynchronous transactions are rolled back when WAL write fails. So,"
66
73
" here comes **the rollback rule:** transactions are always rolled back in "
67
74
"the order reversed from the one they make the ``box.commit()`` "
68
- "call— regardless of being synchronous or asynchronous."
75
+ "call -- regardless of being synchronous or asynchronous."
69
76
msgstr ""
70
77
"Если для одной из синхронных транзакций истечет время ожидания, эта "
71
78
"транзакция будет отменена, а вместе с ней и все последующие транзакции в "
@@ -79,13 +86,43 @@ msgid ""
79
86
"by a synchronous transaction, it does not become synchronous as well. This "
80
87
"just means it will wait for the synchronous transaction to be committed. But"
81
88
" once it is done, the asynchronous transaction will be committed "
82
- "immediately— it won't wait for being replicated itself."
89
+ "immediately -- it won't wait for being replicated itself."
83
90
msgstr ""
84
91
"Асинхронная транзакция, заблокированная синхронной, не становится сама "
85
92
"синхронной, а просто ожидает коммита синхронной транзакции. Как только это "
86
93
"произойдет, асинхронная транзакция сразу сможет пройти коммит, не ожидая "
87
94
"репликации."
88
95
96
+ msgid ""
97
+ "Be careful when using synchronous and asynchronous transactions together. "
98
+ "Asynchronous transactions are considered committed even if there is no "
99
+ "connection to other nodes. Therefore, an old leader node "
100
+ "(:ref:`synchronous transaction queue owner <box_info_synchro>`) might have "
101
+ "some committed asynchronous transactions that no other replica set member has."
102
+ msgstr ""
103
+ "Будьте осторожны при одновременном использовании синхронных и асинхронных транзакций. "
104
+ "Для асинхронных транзакций коммит засчитывается успешным даже в том случае, если нет "
105
+ "соединения с другими узлами. Поэтому на старом ``leader``-узле "
106
+ "(:ref:`владельце очереди синхронных транзакций <box_info_synchro>`) могут быть "
107
+ "асинхронные транзакции, которые прошли коммит, но отсутствуют на других узлах набора реплик."
108
+
109
+ msgid ""
110
+ "When the connection to such an old (previous) leader node is restored, "
111
+ "it starts receiving data from the new leader. At the same time, "
112
+ "other replica set members receive the data from the previous leader that they don't have yet. "
113
+ "The data from the previous leader contains some committed asynchronous transactions. "
114
+ "At this time, the integrity protection "
115
+ "will throw the :ref:`ER_SPLIT_BRAIN <repl_leader_elect_splitbrain>` error, "
116
+ "which will force the user to rebootstrap the previous leader."
117
+ msgstr ""
118
+ "Когда предыдущий лидер снова становится доступен в наборе реплик, "
119
+ "он начинает получать данные с нового лидера. В это же время "
120
+ "остальные узлы в наборе реплик начинают получать данные со старого лидера, которых у них еще нет. "
121
+ "Эти данные содержат и асинхронные транзакции, прошедшие коммит. "
122
+ "В этот момент система выдаст ошибку "
123
+ ":ref:`ER_SPLIT_BRAIN <repl_leader_elect_splitbrain>`, заставляя "
124
+ "пользователя провести повторную настройку (rebootstrap) предыдущего лидера."
125
+
89
126
msgid "Limitations and known problems"
90
127
msgstr "Ограничения и известные проблемы"
91
128
0 commit comments