Giter Club home page Giter Club logo

Comments (3)

MikaelCall avatar MikaelCall commented on May 23, 2024 1

Like all interesting questions the answer is "it depends" ...

  • Yes. The implementation pointed to is convenient and kind of solves the problem in practice. I think there is a theoretical risk of an infinite recursion for unlikely failure scenarios that have to be considered (cf metasrv in the databend repo).
  • My main purpose with suggesting a client implementation was clarity and being explicit.
  • In practice, handling this on the client side can be more efficient since if the client contacts a node that is not the leader and that node forwards to the leader we have to pay for the node to leader request each time. If the client gets an error and updates its belief of who's the leader that extra cost goes away for all future requests which IMHO is much better.

I think that our outlined solutions are not mutually exclusive. I just wanted to bring your attention to more "interesting aspects" of the original question.

from openraft.

github-actions avatar github-actions commented on May 23, 2024

👋 Thanks for opening this issue!

Get help or engage by:

  • /help : to print help messages.
  • /assignme : to assign this issue to you.

from openraft.

ppamorim avatar ppamorim commented on May 23, 2024

@drmingdrmer @MikaelCall I successfully sorted that by doing this: https://github.com/ppamorim/openraft/blob/example/example-raft-kv/src/network/api.rs#L39-L72

from openraft.

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.