Comments (5)
I have an implementation. Didn't write it down yet, but I recorded a song which explains it all. Please review. https://suno.com/song/b06c2a5b-3760-4916-9f56-eb3fe66f24e2
from valkey.
@madolson and I discussed another option (in the context of atomic slot migration) which essentially implements slot-level replication. Here is the high level flow
- source (parent) forks a child with a set of slots to migrate
- child streams slots to be migrated in the RDB format (same as replication)
- target needs to support no-blocking load of the RDB stream (think of co-routines)
- source (parent) starts capturing updates in the migrating slots right after forks
- child completes streaming
- source (parent) pauses clients writing to these slots
- source replicates captured updates to target
- source starts the slot ownership transfer process (depending on cluster v1 vs v2, we could take different paths)
- source unblocks paused clients with
-MOVED <target>
any failure on the target before completing step 8 would abort the migrating process on the source.
from valkey.
I have an implementation. Didn't write it down yet, but I recorded a song which explains it all. Please review. https://suno.com/song/b06c2a5b-3760-4916-9f56-eb3fe66f24e2
Are you referring to #298? I will take a look next but I don't see it solving this issue?
from valkey.
@PingXie The song is about atomic slot migration. #298 is about subscribing to slot migrations. Not the same.
from valkey.
@PingXie The song is about atomic slot migration.
Ship-it
from valkey.
Related Issues (20)
- [NEW] Light-weight cluster bus pubsub message HOT 2
- [NEW] Improve Valkey client output buffer limits handling
- [BUG] PUBSUB SHARDNUMSUB doesn't return -CROSSSLOT for cross slot shard-channels HOT 5
- Integrate the bugfixes of Redis 7.2.5 HOT 16
- [CRASH] Command duration is not reset when client is blocked on XGROUPREAD and the stream's slot is migrated, failing an assertion HOT 1
- [NEW] Update CONTRIBUTING.md and improve developer experience around clang-format
- [NEW] Activate `debugServerAssertWithInfo` using a server config HOT 2
- [BUG] Duplicated arguments are accepted in ZINTER, ZUNION, and ZDIFF command HOT 3
- Valkey blog RSS HOT 1
- [BUG] server accessing uninitialized memory when SCRIPT, INTERSTORE and UNIONSTORE commands are processed HOT 3
- [Feature] Add option to prevent replica from replicating a empty DB if the primary comes back empty HOT 2
- [NEW] Server driven slot migration HOT 12
- Moving client->authenticated to a flag instead of an int HOT 1
- Investigate removing boolean values throughout the global structure HOT 5
- [Test Failure] Error in slot-migration.tcl which could be a race condition
- script add dump sub command HOT 1
- [BUG] Flaky cluster tests `11-manual-takeover.tcl` in 7.2 HOT 2
- Deduplicate nextPingExt() and getNextPingExt() HOT 1
- Valkey daily run performance benchmark scenarios
- [BUG] A client blocked on authentication through a module can't log into a cluster when it is down HOT 1
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 valkey.