@@ -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