-
Notifications
You must be signed in to change notification settings - Fork 98
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
test(default): set tablets_initial_scale_factor
scylla config option
#10188
base: master
Are you sure you want to change the base?
test(default): set tablets_initial_scale_factor
scylla config option
#10188
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.
unit tests fail
@@ -1,3 +1,6 @@ | |||
append_scylla_yaml: |
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.
add link to issue why we need that
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.
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.
btw. I think this means initial tablets will be 2*2^10 isn't it? (see configurations/tablets-initial-32.yaml
where 4 means 32 tablets).
This approach also is not taking into account number of shards, but for the sake of quick workaround might be good.
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 just realized, this param changed its purpose... scylladb/scylladb@f043c83
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.
and this change didn't yet reached 2025.1 branch.
@bhalevy - is that a reasonable default? |
This is the value which we're about to use in scylla by default, so yes. |
Make it be bigger than the current scylla default '1' to avoid load balance issues. Ref: scylladb/scylladb#22522
7abaf37
to
3058daf
Compare
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 incorrect way of achieving this, tablets_initial_scale_factor
should not be used by users, it will also undergo a change with scylladb/scylladb#22522. Initial option on keyspace should be used instead:
CREATE KEYSPACE excalibur
WITH replication = {
'class': 'NetworkTopologyStrategy',
'replication_factor': 3,
} AND tablets = {
'initial': 2048
};
Users? It is used for setting up DB clusters. Then, updating any table definition we create in tests is not applicable, So, the solution must be only DB cluster config update, not per-ks/table. |
ScyllaDB users should not use this option (according to developers), so we should not use it as well.
Other than SCT nothing is performance bound, missing this setting causes performance problems only. It is true that updating this properly in SCT would be a big change as we cannot do it as a default though.
It is per-ks/table now and it will be in the future (Although the initial will get replaced by other options and hopefully will work reasonably well out of the box). If this is meant as a hotfix sure, we can do this like it temporarily, but this cannot stay as a permanent solution for this problem. |
Also good to mention, the new solution is targeted pretty soon, for 2025.1.1. So it might make more sense to do this hotfix only for 2025.1.0 |
I think we understand different things under the "users" word.
The https://github.com/scylladb/scylla-qa-internal is
This is not hotfix, it is workaround for the Scylla bug. |
I agree to update scylla config temporarily but I do not think it is right solution permanently. SCT is the closest thing we have to a real production clusters, we should use options that we recommend customers to use. Recommended way is NOT to set this config but use initial tablets option, thus we should use that. I understand it is not currently feasible, so we can use this method for now, but we need to change it, once the per-table hints + tablet scale factor patches drop and do this properly.
This is required for 2025.1-rc as workaround, but it cannot be used for any tablets testing. If we find any performance issues with this option enabled they will be throwned out, due to invalid configuration. Only results with initial tablets are valid. TLDR: This is a bad way of configuring this, but we dont have a choice with current SCT setup. We need to treat it like a temporary workaround that will be removed as soon as we can and we definitely cannot use this for any performance measurements. |
@@ -1,3 +1,9 @@ | |||
# NOTE: set the 'tablets_initial_scale_factor' explicitly while the following | |||
# Scylla change is not merged and backported to older scylla branches. | |||
# https://github.com/scylladb/scylladb/pull/22522 |
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.
Note: This will never not get backported to older branches, but once this drops, we should remove this either way
That is true, this is meant as workaround for failing tests (scylladb/scylladb#22522), since we cannot do globally CQL option, this is another thing. I would still prefer if we did CQL change only for tests that fail and not do this globally, but if this can unblock 2025.1 testing, I can accept it temporarily, but like I said in the previous comment, this global change has consequences on validity of our performance tests |
we can't easily do like that in configuration, that would need to be in code. I would suggest doing this one only to 2025.1 branch (not master), and revert it once we start 2025.1.1 testing. |
Make it be bigger than the current scylla default '1' to avoid load balance issues.
Ref: scylladb/scylladb#22522
Testing
PR pre-checks (self review)
backport
labelsReminders
sdcm/sct_config.py
)unit-test/
folder)