-
Notifications
You must be signed in to change notification settings - Fork 474
Update Zone Config docs #4446
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update Zone Config docs #4446
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The explanatory phrasing is good, but can you verify this is also applicable to 2.1? I have a vague recollection this was specific to 19.1.
Reviewed 15 of 16 files at r1, 2 of 2 files at r2.
Reviewable status:complete! 0 of 0 LGTMs obtained (waiting on @Amruta-Ranade)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
TFTR! Confirmed- COPY FROM PARENT isn't in v2.1, but zone configs cascade.
Reviewable status:
complete! 0 of 0 LGTMs obtained (waiting on @Amruta-Ranade)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As discussed in person, I'm still pretty confused about the behavior of zone configs after this change. The new note about COPY FROM PARENT
is clear, but in conjunction with the note about the .default
replication zone, it's not clear how this all interacts.
My sense (and I could be wrong) is that now, when you create a replication zone, it inherits the values from the .default
replication zone by default. If you want it to inherit a value from its direct parent instead, you can use COPY FROM PARENT
. However, in that case, if the value is changed in the parent replication zone after the child is created, the child doesn't inherit that change.
@knz or @bdarnell, can you help validate the overall logic here?
Reviewable status:
complete! 0 of 0 LGTMs obtained (waiting on @jseldess)
Yes I think your explanation is valid. Just be minfdul that There are two possible "values" stored in a zone cfg:
To achieve these two cases you can use the following methods:
Maybe this presentation (with a table) could be a good complement to the notes already added in the PR. |
@@ -1 +1 @@ | |||
Changes to the [`.default` cluster-wide replication zone](configure-replication-zones.html#edit-the-default-replication-zone) are not automatically applied to existing replication zones, including pre-configured zones for important system ranges that must remain available for the cluster as a whole to remain available. The zones for these system ranges have an initial replication factor of 5 to make them more resilient to node failure. However, if you increase the `.default` zone's replication factor above 5, consider [increasing the replication factor for important system ranges](configure-replication-zones.html#create-a-replication-zone-for-a-system-range) as well. | |||
Changes to the [`.default` cluster-wide replication zone](configure-replication-zones.html#edit-the-default-replication-zone) are automatically applied to existing replication zones, including pre-configured zones for important system ranges that must remain available for the cluster as a whole to remain available. The zones for these system ranges have an initial replication factor of 5 to make them more resilient to node failure. However, if you increase the `.default` zone's replication factor above 5, consider [increasing the replication factor for important system ranges](configure-replication-zones.html#create-a-replication-zone-for-a-system-range) as well. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is unclear - the second sentence is an exception to the first (and it's not the only one - if you change range_{min,max}_bytes
or gc.ttl
, those also won't be applied to the system zones because they have default values for those fields).
Do we really need this callout any more? It was important when even system zones defaulted to 3 replicas. Now that they default to 5, it's saying that if you set your default replication factor to 7 or more you may need to do the same to the system zones, but we don't really recommend running with more than 5 replicas.
I think there should be a mention on the main page for zone config docs that says that the system zones have their own zone configs that may override settings from .default
, but we don't need to copy this warning everywhere zone configs are mentioned.
@@ -1 +1 @@ | |||
Changes to the [`.default` cluster-wide replication zone](configure-replication-zones.html#edit-the-default-replication-zone) are not automatically applied to existing replication zones, including pre-configured zones for important system ranges that must remain available for the cluster as a whole to remain available. The zones for these system ranges have an initial replication factor of 5 to make them more resilient to node failure. However, if you increase the `.default` zone's replication factor above 5, consider [increasing the replication factor for important system ranges](configure-replication-zones.html#create-a-replication-zone-for-a-system-range) as well. | |||
<span class="version-tag">New in v2.1:</span> Changes to the [`.default` cluster-wide replication zone](configure-replication-zones.html#edit-the-default-replication-zone) are automatically applied to existing replication zones, including pre-configured zones for important system ranges that must remain available for the cluster as a whole to remain available. The zones for these system ranges have an initial replication factor of 5 to make them more resilient to node failure. However, if you increase the `.default` zone's replication factor above 5, consider [increasing the replication factor for important system ranges](configure-replication-zones.html#create-a-replication-zone-for-a-system-range) as well. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think this is true - as far as I can see cascading zone configs are new in 19.1.
…es inherit their values
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Added a table to further explain this. @knz, when you say "value becomes absent when DROP is used", do you mean RESET?
Reviewable status:
complete! 0 of 0 LGTMs obtained (waiting on @bdarnell)
_includes/v19.1/known-limitations/system-range-replication.md, line 1 at r3 (raw file):
Previously, bdarnell (Ben Darnell) wrote…
This is unclear - the second sentence is an exception to the first (and it's not the only one - if you change
range_{min,max}_bytes
orgc.ttl
, those also won't be applied to the system zones because they have default values for those fields).Do we really need this callout any more? It was important when even system zones defaulted to 3 replicas. Now that they default to 5, it's saying that if you set your default replication factor to 7 or more you may need to do the same to the system zones, but we don't really recommend running with more than 5 replicas.
I think there should be a mention on the main page for zone config docs that says that the system zones have their own zone configs that may override settings from
.default
, but we don't need to copy this warning everywhere zone configs are mentioned.
Added to configure-replication-zones.md
and removed this callout elsewhere
_includes/v2.1/known-limitations/system-range-replication.md, line 1 at r3 (raw file):
Previously, bdarnell (Ben Darnell) wrote…
I don't think this is true - as far as I can see cascading zone configs are new in 19.1.
Done.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Reviewable status:
complete! 0 of 0 LGTMs obtained (waiting on @bdarnell, @knz, and @lhirata)
_includes/v19.1/zone-configs/variables.md, line 12 at r4 (raw file):
Unless a value is set, new zone configurations will inherit their values from their parent zone (e.g., a partition zone inherits from the table zone), which is not necessarily `.default`. If a variable is set to `COPY FROM PARENT` (e.g., `range_max_bytes = COPY FROM PARENT`), the variable will copy its value from its parent [replication zone](configure-replication-zones.html). However, if the variable in the parent replication zone is changed after the child replication zone is copied, the change will not be reflected in the child zone.
When discussing COPY FROM PARENT, we should probably talk about why it's sometimes required: it's an error to set range_max_bytes to a lower value than range_min_bytes, so to avoid confusion we require that when one is set, the other must be set too. COPY FROM PARENT is a convenience so the user doesn't have to look up the parent's current value.
_includes/v19.1/zone-configs/variables.md, line 14 at r4 (raw file):
If a variable is set to `COPY FROM PARENT` (e.g., `range_max_bytes = COPY FROM PARENT`), the variable will copy its value from its parent [replication zone](configure-replication-zones.html). However, if the variable in the parent replication zone is changed after the child replication zone is copied, the change will not be reflected in the child zone. There are two "value settings" per variable in a zone configuration:
"Value settings" sounds strange to me. This seems like a lot of words (and visual weight due to the table) to describe the idea that values that are not set at a particular level will be inherited from the parent.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Reviewable status:
complete! 0 of 0 LGTMs obtained (waiting on @bdarnell and @knz)
_includes/v19.1/zone-configs/variables.md, line 12 at r4 (raw file):
Previously, bdarnell (Ben Darnell) wrote…
When discussing COPY FROM PARENT, we should probably talk about why it's sometimes required: it's an error to set range_max_bytes to a lower value than range_min_bytes, so to avoid confusion we require that when one is set, the other must be set too. COPY FROM PARENT is a convenience so the user doesn't have to look up the parent's current value.
Done.
_includes/v19.1/zone-configs/variables.md, line 14 at r4 (raw file):
Previously, bdarnell (Ben Darnell) wrote…
"Value settings" sounds strange to me. This seems like a lot of words (and visual weight due to the table) to describe the idea that values that are not set at a particular level will be inherited from the parent.
Done.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Reviewable status:
complete! 1 of 0 LGTMs obtained (waiting on @bdarnell and @knz)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks, @lhirata!
Reviewable status:
complete! 2 of 0 LGTMs obtained (waiting on @bdarnell and @knz)
TFTRs! |
from a parent zone. When this is used, changes will no longer cascade
Closes #4062, #4255.