The constraint solver works through iterative local search:
- Perturb current arrangement by shifting shards around (prioritizing moving unassigned shards to containers).
- Check if new arrangement is better according to constraints.
- Repeat a few thousand times.
This project is missing the orchestrator logic to move the shards around!
https://research.facebook.com/publications/shard-manager-a-generic-shard-management-framework-for-geo-distributed-applications/ https://research.google/pubs/slicer-auto-sharding-for-datacenter-applications/ https://engineering.linkedin.com/apache-helix/apache-helix-framework-distributed-system-development https://www.uber.com/blog/ringpop-open-source-nodejs-library/
bash setup.sh