Comments (8)
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.
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.
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.
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.
Okay, so this is just a dupe of #6 then, or what?
from dcell.
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.
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.
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)
- Cannot follow the configuration example, please help HOT 3
- 0.16.2 HOT 16
- unexpected zookeeper error when using DCell HOT 4
- Using it in forked / multithreaded env HOT 8
- `require 'dcell'` already throws `DCell::NotConfiguredError` at the end HOT 2
- Clear stale nodes HOT 10
- Make compatible with newest Celluloid version HOT 11
- Please note recommended version of zeromq library in your wiki HOT 5
- Setting the path for logging HOT 1
- Http gem needs to be updated for security reasons HOT 1
- registry: on node exit all nodes are cleared
- Remove redis from mandatory rspec requirements
- dcell node id is not unique
- dcell should not require precise port for incoming connection
- dcell 0.15 dependencies are not correct
- dcell needs a new maintainer HOT 11
- Thoughts about the future of dcell and celluloid-zmq HOT 37
- Implement Celluloid::Sync
- How to use DCell to connect the remote node and use the actor? HOT 4
- Unable to run spec on OSX with various MRI Rubies HOT 10
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 dcell.