You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -3618,6 +3620,13 @@ The ``replication`` section defines configuration parameters related to :ref:`re
3618
3620
3619
3621
The expulsion process follows the standard procedure, involving the removal of the instance from the ``_cluster`` system space.
3620
3622
3623
+
The ``autoexpel`` logic is activated during specific events:
3624
+
3625
+
- **Startup**. When the cluster starts, ``autoexpel`` checks and removes instances not matching the updated configuration.
3626
+
- **Reconfiguration**. When the YAML configuration is reloaded, ``autoexpel`` compares the current state to the updated configuration and performs necessary expulsions.
3627
+
- ``box.status`` **watcher event**. Changes detected by the ``box.status`` watcher also trigger the ``autoexpel`` mechanism.
3628
+
3629
+
3621
3630
``autoexpel`` does not take any actions on newly joined instances unless one of the triggering events occurs.
3622
3631
This means that an instance meeting the ``autoexpel`` criterion can still join the cluster, but it may be removed
3623
3632
later during reconfiguration or on subsequent triggering events.
@@ -3627,8 +3636,7 @@ The ``replication`` section defines configuration parameters related to :ref:`re
3627
3636
global levels. It is not applicable at the instance level.
3628
3637
3629
3638
3630
-
**Configuration fields**
3631
-
3639
+
Configuration fields
3632
3640
3633
3641
- ``by`` (string, default: ``nil``): specifies the ``autoexpel`` criterion. Currently, only ``prefix`` is supported and must be explicitly set.
3634
3642
@@ -3638,7 +3646,7 @@ The ``replication`` section defines configuration parameters related to :ref:`re
3638
3646
3639
3647
3640
3648
3641
-
replication.autoexpel.by
3649
+
replication.autoexpel_by.*
3642
3650
~~~~~~~~~~~~~
3643
3651
3644
3652
``replication.autoexpel_by`` purpose is to define the criterion used for determining which instances in a cluster are
@@ -3648,15 +3656,15 @@ replication.autoexpel.by
3648
3656
3649
3657
- Instances that are part of the cluster and should adhere to the YAML configuration.
3650
3658
3651
-
- Instances or tools (e.g., CDC tools) that use the replication channel but are not part of the cluster configuration.
3659
+
- Instances or tools (e.g., CDC tools) that use the replication channel but are not part of the cluster configuration.
3652
3660
3653
3661
3654
-
The default value of ``by`` is ``nil``, meaning no ``autoexpel`` criterion is applied unless explicitly set.
3662
+
The default value of by is ``nil``, meaning no ``autoexpel`` criterion is applied unless explicitly set.
3655
3663
3656
3664
Currently, the only supported value for by is ``prefix``. The ``prefix`` value instructs the system to identify instances
3657
3665
based on their names, matching them against a prefix pattern defined in the configuration.
3658
3666
3659
-
If the ``autoexpel`` feature is enabled, the ``by`` field must be explicitly set to ``prefix``.
3667
+
If the ``autoexpel`` feature is enabled (``enabled: true``), the ``by`` field must be explicitly set to ``prefix``.
3660
3668
3661
3669
The absence of this field or an unsupported value will result in configuration errors.
3662
3670
@@ -3675,7 +3683,7 @@ replication.autoexpel.by
3675
3683
3676
3684
3677
3685
3678
-
replication.autoexpel.enabled
3686
+
replication.autoexpel_enabled.*
3679
3687
~~~~~~~~~~~~~
3680
3688
3681
3689
The ``replication.autoexpel_enabled`` field is a boolean configuration option that determines whether the autoexpel logic is active for the cluster.
By default, the ``enabled`` field is set to ``false``, meaning the ``autoexpel`` logic is turned off. This ensures that no instances are automatically removed unless explicitly configured.
3687
3695
3688
-
**Enabling ``autoexpel`` logic**
3696
+
Enabling ``autoexpel`` logic
3689
3697
3690
3698
To enable ``autoexpel``, you should set enabled to true in the ``replication.autoexpel`` section of your YAML configuration:
The ``prefix`` field filters instances for expulsion by differentiating cluster instances (from the YAML configuration) from external services (e.g., CDC tools). Only instances matching the prefix are considered.
The maximum size of the synchronous transaction queue on a master node, in bytes. The size limit isn't strict, i.e. if there's at least one free byte, the whole write request fits and no blocking is involved.
4157
+
This parameter ensures that the queue does not grow indefinitely, potentially impacting performance and resource usage, and applies only to the master node.
4158
+
4159
+
The ``0`` value disables the limit.
4160
+
4161
+
4162
+
If the synchronous queue reaches the configured size limit, new transactions attempting to enter the queue are discarded.
4163
+
In such cases, the system returns an error to the user:
4164
+
``The synchronous transaction queue is full.``
4165
+
4166
+
This size limitation does not apply during the recovery process. Transactions processed during recovery are unaffected by the queue size limit.
4167
+
4168
+
Use the following command to view the current size of the synchronous queue:
4169
+
4170
+
.. code-block:: lua
4171
+
4172
+
box.info.synchro.queue.size
4173
+
4174
+
4175
+
.. code-block:: command line
4176
+
4177
+
tarantool> box.info.synchro
4178
+
---
4179
+
- queue:
4180
+
owner: 1
4181
+
size: 60
4182
+
busy: false
4183
+
len: 1
4184
+
term: 2
4185
+
quorum: 2
4186
+
...
4187
+
4188
+
Set the synchronous queue size limit in the configuration file:
4189
+
4190
+
.. code-block:: yaml
4191
+
4192
+
replication:
4193
+
synchro_queue_max_size: 33554432# Limit set to 32 MB
0 commit comments