@@ -39,8 +39,8 @@ To control the behavior of synchronous transactions, there exist global
3939 box.cfg{replication_synchro_quorum = <number of instances>}
4040
4141 This option tells how many replicas should confirm the receipt of a synchronous
42- transaction before it can finish its commit . So far this option accounts all
43- replicas, including anonymous. As a usage example, consider this:
42+ transaction before it is committed . So far, this option accounts for all
43+ replicas including anonymous ones . As a usage example, consider this:
4444
4545.. code-block :: lua
4646
@@ -71,7 +71,7 @@ instance confirms its receipt and successful appliance. Note that the quorum is
7171set to 2, but the transaction was still committed even though there is only one
7272replica. This is because the master instance itself also participates in the quorum.
7373
74- Now if the second instance is down, the first one won't be able to commit any
74+ Now, if the second instance is down, the first one won't be able to commit any
7575synchronous change.
7676
7777.. code-block :: lua
@@ -116,23 +116,23 @@ When there is more than one synchronous transaction, they all wait for being
116116replicated. Moreover, if an asynchronous transaction appears, it will
117117also be blocked by the existing synchronous transactions. This behavior is very
118118similar to a regular queue of asynchronous transactions because all the transactions
119- finish their commits in the same order as they start them .
119+ are committed in the same order as they make the `` box.commit() `` call .
120120So, here comes **the commit rule **:
121- transactions always finish their commits in the same order as they start
122- them -- regardless of being synchronous or asynchronous.
121+ transactions are committed in the same order as they make
122+ the `` box.commit() `` call— regardless of being synchronous or asynchronous.
123123
124124If one of the waiting synchronous transactions times out and is rolled back, it
125125will first roll back all the newer pending transactions. Again, just like how
126126asynchronous transactions are rolled back when WAL write fails.
127127So, here comes **the rollback rule: **
128- transactions are always rolled back in the order reversed from the commit start
129- order -- regardless of being synchronous or asynchronous.
128+ transactions are always rolled back in the order reversed from the one they
129+ make the `` box.commit() `` call— regardless of being synchronous or asynchronous.
130130
131- One more important thing is that if an asynchronous transaction is blocked on
131+ One more important thing is that if an asynchronous transaction is blocked by
132132a synchronous transaction, it does not become synchronous as well.
133133This just means it will wait for the synchronous transaction to be committed.
134- But once it is done, the asynchronous transaction will finish its commit
135- immediately -- it won't wait for being replicated itself.
134+ But once it is done, the asynchronous transaction will be committed
135+ immediately— it won't wait for being replicated itself.
136136
137137--------------------------------------------------------------------------------
138138Limitations and known problems
@@ -146,14 +146,15 @@ existing spaces, but since 2.5.2 it can be enabled by
146146Synchronous transactions work only for master-slave topology. You can have multiple
147147replicas, anonymous replicas, but only one node can make synchronous transactions.
148148
149- Anonymous replicas participate in the quorum. This will change: it won't be possible
150- for a synchronous transaction to gather quorum using anonymous replicas in future.
149+ Anonymous replicas participate in the quorum.
150+ However, this will change: it won't be possible
151+ for a synchronous transaction to gather quorum using anonymous replicas in the future.
151152
152153--------------------------------------------------------------------------------
153154Leader election
154155--------------------------------------------------------------------------------
155156
156- Starting from the version :doc: `2.6.1 </release/2.6.1 >`,
157+ Starting from version :doc: `2.6.1 </release/2.6.1 >`,
157158Tarantool has the built-in functionality
158159managing automated leader election in a replica set. For more information,
159160refer to the :ref: `corresponding chapter <repl_leader_elect >`.
@@ -168,5 +169,5 @@ transaction will be committed by the new master. Your application logic should b
168169ready for that.
169170
170171Synchronous transactions are better to use with full mesh. Then the replicas can
171- talk to each other in case of the master node's death, and still confirm some
172+ talk to each other in case of the master node's death and still confirm some
172173pending transactions.
0 commit comments