Comments (14)
This has potential to cause regressions compared to vnodes, so I don't think it should be enterprise-only.
from scylladb.
If we've agreed it should go to 6.0, please set the milestone as such. Otherwise, I reckon 6.1.
from scylladb.
@bhalevy - who can work on this for 6.0?
from scylladb.
IMO important, very easy to regress in performance due to this. Also relatively easy to fix (adjust load balancer tablet selection algorithm).
from scylladb.
@tgrabiec the solution you propose does not solve the general problem of hot tablets, but rather the more specific problem of hot tables, but I agree that the problem of hot tables is the more important case, so we should indeed do the fix you propose.
By the way, DynamoDB solved the problem of hot tablets (which they call "partitions") by:
- Detecting them and splitting them to smaller tablets.
- At some point this no longer helps (e.g., imagine that someone sends a huge number of requests to the same row), so they have a limit of 3000 RCUs and 1000 WCUs that a single partition will accept. So it cannot dominate the node it runs on.
from scylladb.
@bhalevy - who can work on this for 6.0?
@tgrabiec, and he first needs to finish #16594
On top of that, we can statically balance tablets across shards in thee 6.0 scope (and it's a close call).
Post 6.0, I can see dynamic, heat-based balancing of tablets to disperse the load across nodes and across shards
from scylladb.
Assigning Tomek
@bhalevy , is there someone else who can do it? I think Tomek's plate is pretty full
from scylladb.
@mykaul / @dani-tweig IMO we should postpone this issue to 6.1. Please ack.
from scylladb.
@bhalevy - we'd still like to see it in 6.0 (after syncing with @dorlaor , @avikivity , @tzach ) - who can be assigned to this (other than Tomek) ?
from scylladb.
@bhalevy , @tgrabiec :
Can we use the shuffle API as a valid workaround here, and push this from the 6.0 release blocker list?
from scylladb.
@bhalevy , @tgrabiec : Can we use the shuffle API as a valid workaround here, and push this from the 6.0 release blocker list?
I don't think we can rely on shuffle, it's unpredictable, may be completely ineffective or even make the situation worse.
from scylladb.
I don't think we can rely on shuffle, it's unpredictable, may be completely ineffective or even make the situation worse.
It might, but what is the chance(percent)?
If it is low enough, we can live with it till we have a proper solution.
from scylladb.
I don't think we can rely on shuffle, it's unpredictable, may be completely ineffective or even make the situation worse.
It might, but what is the chance(percent)? If it is low enough, we can live with it till we have a proper solution.
For 6.0 we plan to have a simple mitigation which is to randomize tablet selection in tablet load balancing using a uniform distribution. This should result in a similar distribution of tablets per table on the destination node on average, with large enough number of tablets.
from scylladb.
@tgrabiec is going to submit a PR destined for 6.0 with randomized picking of source tablets by the load balancer.
Then, we can continue to improve the selection algorithm for 6.1 and later.
from scylladb.
Related Issues (20)
- node-node-encryption documentation should be extended to include listen ports configuration HOT 2
- Strongly consistent tables based on tablets
- docs: in case of majority loss, restore-from-backup is the only remaining option. HOT 3
- topology_experimental_raft/test_tablets is flaky HOT 1
- Docs: Document hard and soft ScyllaDB limits HOT 2
- `raft::request_aborted` gives no information what exactly was aborted HOT 1
- Seamless transition to inter-node encryption HOT 8
- heap-use-after-free in stream_session vs. cleanup_tablet HOT 3
- the baseline of text in monospace is lower than that of text in regular font HOT 1
- table::calculate_tablet_count() can potentially stall with large tablet count HOT 1
- docs: Issue on page ScyllaDB Fails to Start - SSTable Corruption Problem
- docs: Issue on page Replace a Dead Node in a Scylla Cluster HOT 1
- Scylla 5.4 nodetool status inaccurate statistics issue
- Scylla 5.4 nodetool status inaccurate statistics issue
- raft.replication_test.backpressure_drops fail on timeout
- cql: a crash lurking in ks_prop_defs::get_initial_tablets
- [tablets, MV]: `test_changes_while_node_down`: write failures to view metadata tables during node shutdown HOT 3
- docs: Issue on page Backup your Data - need to use Describe Schema with Internals HOT 1
- test_auth_v2_migration flaky due to auth-v1 known inconsistency problem
- Nodetool rebuild failed with 'rebuild failed: streaming failed' with large partitions and partition scans in parallel HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from scylladb.