Implement actor migration between cluster nodes #146
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem
When nodes join or leave the cluster, actors need to be migrated to maintain even distribution. Currently:
handleRebalanceRequestincluster/manager.go:150is emptyhandleMigrationRequestincluster/manager.go:167is emptyRebalanceShardsincluster/shard.go:211returns unchanged mapSendMessageincluster/distributed.go:139ignores shardingRequired Implementation
1. Rebalance Algorithm (cluster/shard.go)
Implement
ConsistentHashPlacement.RebalanceShardsto:2. Migration Coordinator (cluster/manager.go)
Implement
handleRebalanceRequestto:ActorMigration.Status3. Cross-Node Message Routing (cluster/distributed.go)
Implement proper routing in
SendMessage:GetActorNode(actorID)to determine target nodeSuggested Approach
cluster/types.goRelated Files
cluster/manager.go:150- handleRebalanceRequest (empty)cluster/manager.go:167- handleMigrationRequest (empty)cluster/shard.go:211- RebalanceShards (stub)cluster/distributed.go:139- SendMessage (simplified)cluster/types.go:108- ActorMigration structAcceptance Criteria
RebalanceShardsreturns new shard map with actor assignmentshandleRebalanceRequestprocesses migration planhandleMigrationRequestaccepts actor migrationsSendMessageroutes to correct node