Add Rebalance-In, Rebalance-Out, Swap Rebalance#17
Conversation
67ae180 to
b9f7359
Compare
b9f7359 to
37362df
Compare
d2b7ead to
4532ac4
Compare
There was a problem hiding this comment.
Pull request overview
This PR extends the Couchbase KV workload set with rebalance-in, rebalance-out, swap rebalance, and multi-node (sequential/bulk) rebalance scenarios, and updates the docker-compose generation to provision a 4th “additional” node intended for rebalance-in / swap-rebalance cases.
Changes:
- Add new KV nemesis generators for rebalance-in/out/swap and additional sequential/bulk rebalance scenarios.
- Introduce
Options.AdditionalNodeand adjustruncommand behavior to treat the last provided node as the additional node. - Switch docker
compose.yamlto a generated artifact and increase generated node count to 4.
Reviewed changes
Copilot reviewed 8 out of 8 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| src/gorgon_couchbase/kv/rebalance_scenarios.go | New generator implementing rebalance-in/out/swap plus optional crash/partition follow-ups. |
| src/gorgon_couchbase/kv/additional_rebalance_scenarios.go | New generator implementing sequential and bulk multi-node rebalance flows. |
| src/gorgon_couchbase/kv/db.go | Adds new rebalance workloads and helper REST calls (addNode, findOrchestrator). |
| src/gorgon/interface.go | Adds AdditionalNode to runtime options. |
| src/gorgon/cmd/main.go | Splits last node into AdditionalNode for run. |
| docker/gorgon_couchbase/compose.yaml | Removes committed compose file (now generated). |
| docker/gorgon_couchbase/Makefile | Generates compose with 4 nodes. |
| docker/gorgon_couchbase/.gitignore | Ignores generated compose.yaml. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
4532ac4 to
dbd7b8c
Compare
dbd7b8c to
a7dc48b
Compare
|
I think it would be good to allow single-node tests but skip tests that require additional... Right now you have one extra... could we consider a more flexible setup where we can add more than one node at once? |
fb152d3 to
ea6093f
Compare
|
provision for multiple additional nodes done in the commit - "Add Rebalance-In, Rebalance-Out, Swap Rebalance"
|
Allowed specifying which process to crash, and which node to crash in case of a swap rebalance
Added a function wrapper for rest api call to get orchestrator node, followed by a workload for crashing the orchestrator mid rebalance
refactored to use 1 variadic argument in generator constructor for rebalance + network partition and 2 for rebalance + process crash
Also add config validation in rebalance_scenarios.go
ea6093f to
e4df317
Compare
Increased the number of usable nodes to 4 in the makefile, 3 are part of the cluster and 1 is additional, to be used for rebalance-in and swap rebalance cases