Skip to content
This repository has been archived by the owner on Dec 7, 2018. It is now read-only.

WIP: Add support for etcd registry. #53

Open
wants to merge 6 commits into
base: master
Choose a base branch
from

Conversation

johnbellone
Copy link

Work in progress. Please do not merge!

This is initial support for the etcd service to be used as a registry.

This is initial support for the etcd service to be used as a registry.
@tarcieri
Copy link
Member

Nice! This sounds very interesting

Hendrik Beskow and others added 3 commits March 1, 2014 16:03
uses uris to configure etcd servers
This is initial support for the etcd service to be used as a registry.
@coveralls
Copy link

Coverage Status

Coverage decreased (-37.82%) when pulling 1b01458 on johnbellone:master into 21f384e on celluloid:master.

Conflicts:
	Gemfile
	lib/dcell/registries/etcd_adapter.rb
	spec/dcell/registries/etcd_adapter_spec.rb
@coveralls
Copy link

Coverage Status

Coverage decreased (-46.0%) when pulling 2359096 on johnbellone:master into 21f384e on celluloid:master.

@coveralls
Copy link

Coverage Status

Coverage decreased (-45.95%) when pulling a0abff0 on johnbellone:master into 21f384e on celluloid:master.

@gregory
Copy link

gregory commented Apr 14, 2015

looks pretty cool!

@niamster
Copy link
Contributor

I don't know if this is still an important dev here as one of the idea is to implement own, DCell-based KVS. This won't only allow to get rid of the dependency, but the whole system will gain a control and synchronization framework(to support self healing or automatic cluster growth or shrinking). The key-value storage will be just a "side effect".

@tarcieri
Copy link
Member

@niamster perhaps you're thinking of something like this?

https://github.com/uwiger/gproc

@Asmod4n
Copy link
Contributor

Asmod4n commented Apr 16, 2015

https://github.com/zeromq/zyre now has official ruby bindings, but current master doesn't compile. I will try to get a PR ready for it so it compiles again and come up with some examples.

What it basically does is to manage a group of peers as they join and leave a group and/or a network, it can also handle timeouts.

@niamster
Copy link
Contributor

@tarcieri I was in fact thinking about introducing Raft as part of DCell to control the nodes(monitoring, spawning/shutting down containers that host nodes, the node may itself go offline if it doesn't receive enough attention and there's enough nodes to serve).
As a side effect it may be used as a KVS to store DCell configuration.
gproc is smth very close to my idea and in fact DCell has already support of process alias to some extent. You don't really care about the name of the cell, you only care about the type of the actor you want to talk to.
Currently there's only one constraint: the client has to care about the context. If the node disappears the client must handle this appropriately.

@niamster
Copy link
Contributor

@Asmod4n zyre is interesting only for a cluster within a single network but it's useless with containers that are located in different clusters. Please correct me if I'm wrong

@Asmod4n
Copy link
Contributor

Asmod4n commented Apr 17, 2015

@niamster zyre by default uses udp beaconing, but you can configure it to use a gossip protocol over tcp.

Have written a little bit about how it works here: #89 (comment)

@niamster
Copy link
Contributor

@Asmod4n I'm not sure that malamute can fit here as author's targeting it as streaming engine.
Regarding zyre - not sure DCell needs network discovery. At least I don't see how it may useful here(except for the server nodes maybe).

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants