summaryrefslogtreecommitdiff
path: root/etc
diff options
context:
space:
mode:
authorMatthew Oliver <matt@oliver.net.au>2022-02-10 13:42:48 +1100
committerMatthew Oliver <matt@oliver.net.au>2022-07-21 13:35:24 +1000
commitbf4edefce4990a9c8c3f6a92696af37d840d2008 (patch)
treef9ebacd4cfb350dab7836a3c7a76bb6e0906ac85 /etc
parent57f17ace7c911b80587a03634346478b6ca432e8 (diff)
downloadswift-bf4edefce4990a9c8c3f6a92696af37d840d2008.tar.gz
DB Replicator: Add handoff_delete option
Currently the object-replicator has an option called `handoff_delete` which allows us to define the the number of replicas which are ensured in swift. Once a handoff node ensures that many successful responses it can go ahead and delete the handoff partition. By default it's 'auto' or rather the number of primary nodes. But this can be reduced. It's useful in draining full disks, but has to be used carefully. This patch adds the same option to the DB replicator and works the same way. But instead of deleting a partition it's done at the per DB level. Because it's done in the DB Replicator level it means the option is now available to both the Account and Container replicators. Change-Id: Ide739a6d805bda20071c7977f5083574a5345a33
Diffstat (limited to 'etc')
-rw-r--r--etc/account-server.conf-sample13
-rw-r--r--etc/container-server.conf-sample13
2 files changed, 22 insertions, 4 deletions
diff --git a/etc/account-server.conf-sample b/etc/account-server.conf-sample
index 89c1ea350..ef274cbfd 100644
--- a/etc/account-server.conf-sample
+++ b/etc/account-server.conf-sample
@@ -187,8 +187,8 @@ use = egg:swift#recon
# ionice_class =
# ionice_priority =
#
-# The handoffs_only mode option is for special-case emergency
-# situations such as full disks in the cluster. This option SHOULD NOT
+# The handoffs_only and handoff_delete options are for special-case emergency
+# situations such as full disks in the cluster. These options SHOULD NOT
# BE ENABLED except in emergencies. When handoffs_only mode is enabled
# the replicator will *only* replicate from handoff nodes to primary
# nodes and will not sync primary nodes with other primary nodes.
@@ -205,6 +205,15 @@ use = egg:swift#recon
# long-term use.
#
# handoffs_only = no
+#
+# handoff_delete is the number of replicas which are ensured in swift.
+# If the number less than the number of replicas is set, account-replicator
+# could delete local handoffs even if all replicas are not ensured in the
+# cluster. The replicator would remove local handoff account database after
+# syncing when the number of successful responses is greater than or equal to
+# this number. By default(auto), handoff partitions will be
+# removed when it has successfully replicated to all the canonical nodes.
+# handoff_delete = auto
[account-auditor]
# You can override the default log routing for this app here (don't use set!):
diff --git a/etc/container-server.conf-sample b/etc/container-server.conf-sample
index e1f8482c6..93887f60a 100644
--- a/etc/container-server.conf-sample
+++ b/etc/container-server.conf-sample
@@ -197,8 +197,8 @@ use = egg:swift#recon
# ionice_class =
# ionice_priority =
#
-# The handoffs_only mode option is for special-case emergency
-# situations such as full disks in the cluster. This option SHOULD NOT
+# The handoffs_only and handoff_delete options are for special-case emergency
+# situations such as full disks in the cluster. These options SHOULD NOT
# BE ENABLED except in emergencies. When handoffs_only mode is enabled
# the replicator will *only* replicate from handoff nodes to primary
# nodes and will not sync primary nodes with other primary nodes.
@@ -215,6 +215,15 @@ use = egg:swift#recon
# long-term use.
#
# handoffs_only = no
+#
+# handoff_delete is the number of replicas which are ensured in swift.
+# If the number less than the number of replicas is set, container-replicator
+# could delete local handoffs even if all replicas are not ensured in the
+# cluster. The replicator would remove local handoff container database after
+# syncing when the number of successful responses is greater than or equal to
+# this number. By default(auto), handoff partitions will be
+# removed when it has successfully replicated to all the canonical nodes.
+# handoff_delete = auto
[container-updater]
# You can override the default log routing for this app here (don't use set!):