Skip to content
This repository has been archived by the owner on May 18, 2023. It is now read-only.

Commit

Permalink
Merge pull request #17 from azuqua/develop
Browse files Browse the repository at this point in the history
Develop
  • Loading branch information
kevinwilson541 committed Apr 14, 2017
2 parents 67e8f54 + 5c1dec6 commit 97c6aec
Showing 1 changed file with 10 additions and 8 deletions.
18 changes: 10 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -300,11 +300,11 @@ This command will attempt to join a cluster if it doesn't already belong to a cl

This command will tell the targeted node by this session to meet another node in the cluster. Currently, this is the only way to make ring insertions transitive.
Subsequently, if as a result two nodes are meeting for the first time, a ring merge will occur.
The resulting state will be gossiped around the cluster, eventually resulting in every node thinking the input node no longer belongs in the cluster.
The resulting state will be gossiped around the cluster, eventually resulting in every node thinking the input node belongs in the cluster.
For example, given the previous setup:

```
> meet bar
> meet bar localhost 7023
{ ok: true }
// wait some time...
Expand Down Expand Up @@ -334,7 +334,7 @@ For documentation on how the `--force` option works for this command, just run `
##### insert

This command will tell the targeted node by this session to insert a node into its cluster (as it currently views it).
Subsequently, this information will be gossiped around the cluster, eventually resulting in every node thinking the input node no longer belongs in the cluster.
Subsequently, this information will be gossiped around the cluster, eventually resulting in every node thinking the input node belongs in the cluster.
This differs from `meet` in that insertions are not transitive between nodes; it's a new event on the ring state, and therefore overriding when state conflicts occur between nodes sharing ring history.
For example:

Expand Down Expand Up @@ -458,21 +458,23 @@ From here, you can reference the documentation found on the github pages for the

### <a name="ChangeLog"></a>ChangeLog

- 1.1.3:
- README fixes for command descriptions.
- 1.1.2:
- Remove TODOs from bin/cli
- Remove TODOs from bin/cli.
- 1.1.1:
- Grammatical fixes to README
- Grammatical fixes to README.
- 1.1.0:
- Add timeouts on GenServer request streams.
- Emit stream error on closed socket connection.
- Additional documentation.
- Dawn of time (unversioned up to 1.0.0):
- Check the commit history for details (about code changes, dawn of time undocumented)
- Check the commit history for details (about code changes, dawn of time undocumented).

### <a name="TODO"></a>TODO

In addition to what currently exists in this library, here's a list of features to possibly add:
- Provide listener for permanent close on connection between two nodes (`maxRetries` option on kernel creation).
- Add a GenStream class similar to GenServer, but strictly uses streams for communication instead of JS natives (will also require a protocol definition for indicating stream start, etc)
- Discuss making disconnects between nodes on a node departure forceful or not (it's forceful right now)
- Add a GenStream class similar to GenServer, but strictly uses streams for communication instead of JS natives (will also require a protocol definition for indicating stream start, etc).
- Discuss making disconnects between nodes on a node departure forceful or not (it's forceful right now).
- A distributed lock manager, most likely using the [Redlock algorithm](https://redis.io/topics/distlock), given how well it fits into the current architecture of clusterluck.

0 comments on commit 97c6aec

Please sign in to comment.