Giter Site home page Giter Site logo

Architecture issues about dcell HOT 8 CLOSED

celluloid avatar celluloid commented on August 15, 2024
Architecture issues

from dcell.

Comments (8)

spangenberg avatar spangenberg commented on August 15, 2024

I had the same question two weeks ago when I dived into the project.

I think there was this directory functionality in the gossip adapter, correct me when I'm wrong.

But currently there is only a stuped single point of failure registry as a key value store.

I'm digging into it and try to create a new registry which lives on every node and tries to set up a routing table, checks health of node and so on ...

Maybe we should talk together, sounds like you have similar needs.

Best
Daniel

from dcell.

vgololobov avatar vgololobov commented on August 15, 2024

IMHO - routing table (more likely DHT) is overcomplicated for this task and makes it hard to have a clusters of nodes

Currently each node sends a heartbeat message every 10 seconds and to have a Directory node which will coordinate all connected nodes is a good idea

In case if it fall off, the only thing you will lose - is ability to find out connected to cluster nodes, all existing communications will remain functional

Couple thing I think will be great to add:

  • connection timeout
  • connection state tracking (using heartbeats)
  • ability to create different types of connections, like pub/sub (like claimed in wiki)
  • load balanced cluster of nodes

from dcell.

tarcieri avatar tarcieri commented on August 15, 2024

The issue tracker is for bugs, not open-ended discussion. I guess I'm going to call this a dupe of #6?

Can you broach these issues on the mailing list? You seem to be missing quite a bit from the codebase as well: DCell most certainly has a heartbeat system for detecting downed nodes.

https://github.com/celluloid/dcell/blob/master/lib/dcell/node.rb#L108

from dcell.

vgololobov avatar vgololobov commented on August 15, 2024

This was not a discussion.
Issues are:

  • Directory is not functional at all (duplicates registry calls )
  • Detecting down nodes not functional , the only thing it does is just
        Celluloid::Logger.warn "Communication with #{id} interrupted" 

I just said that DCell has a heartbeat system but not use it

from dcell.

tarcieri avatar tarcieri commented on August 15, 2024

Okay, so this is just a dupe of #6 then, or what?

from dcell.

vgololobov avatar vgololobov commented on August 15, 2024

No, issue addressed to this ticket is not down nodes
Is about what to do with Directory service and node clustering ?

Add functionality according to wiki or remove it as a dup of Registry

from dcell.

tarcieri avatar tarcieri commented on August 15, 2024

Okay, I'm a bit confused because you're telling me a lot of different things in this ticket so I'm having trouble nailing down anything specific...

The issue is: the code in Directory merely delegates to the active Registry and is therefore unnecessary? Probably.

DCell uses heartbeats to determine the liveliness of nodes. Every node is a Celluloid::FSM, and the heartbeat system triggers state transitions which mark the node as down.

When nodes are marked as down, existing DCell RPC calls are cancelled, and new ones will fail until the nodes are marked back up. If you are having trouble with this behavior, I suggest you open another issue.

from dcell.

vgololobov avatar vgololobov commented on August 15, 2024
The issue is: the code in Directory merely delegates to the active Registry and is therefore unnecessary? 

This is the point of this ticket

Remove or rewrite it to handle clustering as it described in wiki

from dcell.

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.