Code Monkey home page Code Monkey logo

Comments (8)

freeekanayaka avatar freeekanayaka commented on July 22, 2024

The snapshot should contain the full state of your state machine, which in turn should be normally kept in-memory, so generally the constraint of having the snapshot fit in memory should be acceptable my most applications. What use case do you have?

This raft library could be changed to perform multiple RPC requests for sending a snapshot, but that's a bit out of scope right now, since we didn't have that need yet for our application. Patches would be welcome tho.

from raft.

zhangzhiming865 avatar zhangzhiming865 commented on July 22, 2024

if i use this raft lib to replicate my RocksDB database, and snapshot of RocksDB may bigger than memory size of machine. So the database snapshot can't be send by one request.

from raft.

freeekanayaka avatar freeekanayaka commented on July 22, 2024

I see. As I said, sending snapshots in multiple chunks is currently not supported nor planned. I would have no objection if you wanted to do that work as contribution, but at the moment I don't have time to work on this myself.

from raft.

zhangzhiming865 avatar zhangzhiming865 commented on July 22, 2024

have some detail design? and i can contribute some patch.

from raft.

freeekanayaka avatar freeekanayaka commented on July 22, 2024

have some detail design? and i can contribute some patch.

I don't, as it's not going to be trivial. The main issue is that if your snapshot doesn't fit in memory, then your finite state machine will also presumably not fit in memory, correct? That means several changes in various parts of the library. In general Raft seems to be a better fit for state machines that fit in memory, and that's why many libraries what there make that assumption. It's possible to have your state machine partly persisted on disk, but that complicates the design and the library. One cheap option would be to rely on OS caching/swapping, but not sure if that would be acceptable for your use case.

from raft.

zhangzhiming865 avatar zhangzhiming865 commented on July 22, 2024

have some detail design? and i can contribute some patch.

I don't, as it's not going to be trivial. The main issue is that if your snapshot doesn't fit in memory, then your finite state machine will also presumably not fit in memory, correct? That means several changes in various parts of the library. In general Raft seems to be a better fit for state machines that fit in memory, and that's why many libraries what there make that assumption. It's possible to have your state machine partly persisted on disk, but that complicates the design and the library. One cheap option would be to rely on OS caching/swapping, but not sure if that would be acceptable for your use case.

ok, thanks.

from raft.

MathieuBordere avatar MathieuBordere commented on July 22, 2024

Can I close this?

from raft.

zhangzhiming865 avatar zhangzhiming865 commented on July 22, 2024

Can I close this?

yes

from raft.

Related Issues (20)

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.