GithubHelp home page GithubHelp logo

Scalability (curiosity) about dsync HOT 3 CLOSED

minio avatar minio commented on July 17, 2024
Scalability (curiosity)

from dsync.

Comments (3)

fwessels avatar fwessels commented on July 17, 2024

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.

nvartolomei avatar nvartolomei commented on July 17, 2024

@fwessels thank you for detailed explanation. I think it will be useful to add a notice about this to readme too.

from dsync.

harshavardhana avatar harshavardhana commented on July 17, 2024

@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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.