Skip to content

Commit 69a5833

Browse files
committed
First draft written
1 parent 37f4f21 commit 69a5833

File tree

1 file changed

+73
-0
lines changed

1 file changed

+73
-0
lines changed

doc/reference/configuration/configuration_reference.rst

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3554,6 +3554,7 @@ The ``replication`` section defines configuration parameters related to :ref:`re
35543554
- :ref:`replication.skip_conflict <configuration_reference_replication_skip_conflict>`
35553555
- :ref:`replication.sync_lag <configuration_reference_replication_sync_lag>`
35563556
- :ref:`replication.sync_timeout <configuration_reference_replication_sync_timeout>`
3557+
- :ref:`replication.synchro_quorum <configuration_reference_replication_synchro_queue_max_size`
35573558
- :ref:`replication.synchro_quorum <configuration_reference_replication_synchro_quorum>`
35583559
- :ref:`replication.synchro_timeout <configuration_reference_replication_synchro_timeout>`
35593560
- :ref:`replication.threads <configuration_reference_replication_threads>`
@@ -4144,6 +4145,78 @@ autoexpel full example
41444145
| Default: 0
41454146
| Environment variable: TT_REPLICATION_SYNC_TIMEOUT
41464147
4148+
4149+
.. _configuration_reference_replication_synchro_queue_max_size:
4150+
4151+
.. confval:: replication.synchro_queue_max_size
4152+
4153+
**Since:** :doc:`3.3.0 </release/3.3.0>`
4154+
4155+
The ``replication.synchro_queue_max_size`` option controls the maximum size of the synchronous transaction queue on a master node.
4156+
This parameter ensures that the queue does not grow indefinitely, potentially impacting performance and resource usage.
4157+
4158+
The size is measured in bytes, with a value of 0 disabling the limit (unlimited queue, as in earlier versions).
4159+
4160+
.. NOTE::
4161+
4162+
Applies only to the master node.
4163+
4164+
4165+
If the synchronous queue reaches the configured size limit, new transactions attempting to enter the queue are discarded.
4166+
In such cases, the system returns an error to the user:
4167+
“The synchronous transaction queue is full.”
4168+
4169+
This size limitation does not apply during the recovery process. Transactions processed during recovery are unaffected by the queue size limit.
4170+
4171+
Use the following command to view the current size of the synchronous queue:
4172+
4173+
.. code-block:: lua
4174+
4175+
box.info.synchro.queue.size
4176+
4177+
4178+
.. code-block:: command line
4179+
4180+
tarantool> box.info.synchro
4181+
---
4182+
- queue:
4183+
owner: 1
4184+
size: 60
4185+
busy: false
4186+
len: 1
4187+
term: 2
4188+
quorum: 2
4189+
...
4190+
4191+
Set the synchronous queue size limit in the configuration file:
4192+
4193+
.. code-block:: yaml
4194+
4195+
replication:
4196+
synchro_queue_max_size: 33554432 # Limit set to 32 MB
4197+
4198+
4199+
.. code-block:: lua
4200+
4201+
box.cfg{
4202+
replication_synchro_queue_max_size = 33554432 -- Limit set to 32 MB
4203+
}
4204+
4205+
4206+
.. hint::
4207+
4208+
- Ensure the ``synchro_queue_max_size`` value is sufficient for the expected transaction workload to avoid unnecessary rejections.
4209+
- Setting the limit to 0 removes any restrictions but may result in unbounded queue growth.
4210+
- Monitor the queue size using ``box.info.synchro.queue.size`` to adjust the limit if needed.
4211+
4212+
4213+
|
4214+
| Type: integer
4215+
| Default: 16777216 (16 MB)
4216+
| Environment variable: TT_REPLICATION_SYNCHRO_QUEUE_MAX_SIZE
4217+
4218+
4219+
41474220
.. _configuration_reference_replication_synchro_quorum:
41484221

41494222
.. confval:: replication.synchro_quorum

0 commit comments

Comments
 (0)