Comments (3)
The limit of 16 nodes is not a 'hard' limit, in fact you can increase it (see here for the code: https://github.com/minio/dsync/blob/master/dsync.go#L50). However due to the fact that all servers are connected to each other, the number of connections scales up significantly and also a larger number of messages is sent out for each lock request (albeit going up just linearly).
We chose 16 for minio object storage out of operational experience and thus this is a fine and natural limit for dsync in our case.
Eg for minio we would rather have users use two clusters with 16 servers each instead of one cluster with 32 servers, all the more if you scale up further to for instance 10 clusters -- in this case it is much easier to replace a (single) badly performing cluster of 16 servers instead of having to figure out why your 160 server cluster is sometimes behaving poorly. And in many cases you can argue that there is little benefit to having for instance a larger 32 system cluster with a single bucket compared to two smaller 16 system clusters with two buckets in total. So we try to preach "simple and small systems scale" and solve scalability this way.
Having said all this, you are free to experiment with a higher limit and you will probably get away with doubling or quadrupling the limit (depending on overall system performance in terms of CPU & networking speed). However if you want to scale it up to 512 or 1024 then it will crawl to an (in practice) unusable speed, if fact then you may want to experiment with the following idea: https://github.com/minio/dsync#scale-beyond-16-nodes (we have not tested this in practice, but it may work in certain use cases).
Hope this answers the question, otherwise if not please let us know.
from dsync.
@fwessels thank you for detailed explanation. I think it will be useful to add a notice about this to readme too.
from dsync.
@fwessels thank you for detailed explanation. I think it will be useful to add a notice about this to readme too.
Thanks will do @nvartolomei
from dsync.
Related Issues (11)
- tests: go test -race reports races. HOT 1
- Add profiling support for dsync HOT 1
- README: Don't recommend redis distlock HOT 4
- Typo in Motivation section for minio server command line HOT 1
- Fix all golint issues on dsync HOT 7
- dsync: chaos test fails with "Timed out" HOT 1
- Is there any support for Async / callback instead of blocking to acquire lock ? HOT 2
- Go module: github.com/minio/dsync/[email protected]: go.mod has non-.../v2 module path "github.com/minio/dsync" (and .../v2/go.mod does not exist) at revision v2.0.0 HOT 1
- Update documentation HOT 2
- Sending unlock messages in a go-routine makes ``DRWMutex.[R]Lock()`` racy HOT 4
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 dsync.