Changes to cluster specification.

- Added section on single-node cluster.
- Changed seed nodes to deputy nodes.
- Seed nodes are no longer used as contact points only to break logical partitions.

Signed-off-by: Jonas Bonér <jonas@jonasboner.com>
Removed cluster seed nodes, added 'join.contact-point', changed joining phase, added singleton cluster mode plus misc other changes.

Signed-off-by: Jonas Bonér <jonas@jonasboner.com>
Completed singleton and N-node cluster boot up and joining phase.

* Simplified node join phase.
* Added tests for cluster node startup and joining, both for singleton cluster and 2-node cluster.
* Fixed bug in cluster node address and cluster daemon lookup.
* Changed some APIs.
* Renamed 'contact-point' to 'node-to-join'.
* Minor refactorings.

Signed-off-by: Jonas Bonér <jonas@jonasboner.com>
Changes to cluster specification.

- Added section on single-node cluster.
- Changed seed nodes to deputy nodes.
- Seed nodes are no longer used as contact points only to break logical partitions.

Signed-off-by: Jonas Bonér <jonas@jonasboner.com>
Removed cluster seed nodes, added 'join.contact-point', changed joining phase, added singleton cluster mode plus misc other changes.

Signed-off-by: Jonas Bonér <jonas@jonasboner.com>
Completed singleton and N-node cluster boot up and joining phase.

* Simplified node join phase.
* Added tests for cluster node startup and joining, both for singleton cluster and 2-node cluster.
* Fixed bug in cluster node address and cluster daemon lookup.
* Changed some APIs.
* Renamed 'contact-point' to 'node-to-join'.
* Minor refactorings.

Signed-off-by: Jonas Bonér <jonas@jonasboner.com>
Switching node status to Up if singleton cluster. Added 'switchStatusTo' method. Updated the test. Profit.

Signed-off-by: Jonas Bonér <jonas@jonasboner.com>
Skips gossipping and cluster scrutinization if singleton cluster.

Signed-off-by: Jonas Bonér <jonas@jonasboner.com>
Refactored Gossip state and management. Introduced GossipOverview with convergence info, renamed some fields, added some new cluster commands.

Signed-off-by: Jonas Bonér <jonas@jonasboner.com>
Added 'or' method to Versioned.

Signed-off-by: Jonas Bonér <jonas@jonasboner.com>
Implemented 'receive(newGossip)' plus misc other changes and fixes.

* Implemented 'receive(newGossip)'
* Added GossipEnvelope
* Added MetaDataChangeListener
* Changed MembershipChangeListener API
* Changed most internal API to work with Address rather than Member
* Added builder style API to Gossip for changing it in an immutable way
* Moved 'self: Member' from Gossip to State

Signed-off-by: Jonas Bonér <jonas@jonasboner.com>
Added NodeGossipingSpec for testing gossiping and cluster membership.

Signed-off-by: Jonas Bonér <jonas@jonasboner.com>
Rewrite of the VectorClock impl. Now with 'merge' support and slicker API. Also added more tests.

Signed-off-by: Jonas Bonér <jonas@jonasboner.com>
Finalized initial cluster membership and merging of vector clocks and gossips in case of concurrent cluster updates. Plus misc other fixes.

* Finalized initial cluster membership.
* Added merging of vector clocks and gossips in case of concurrent cluster updates.
* Added toString methods to all cluster protocol classes
* Fixed bugs in incrementation of vector clocks
* Added updates of 'seen' table for cluster convergence
* Revamped to use new VectorClock impl
* Refactored Gossip.State

Signed-off-by: Jonas Bonér <jonas@jonasboner.com>
Renamed NodeGossipingSpec to NodeMembershipSpec since it is testing consistency of the cluster node membership table

Signed-off-by: Jonas Bonér <jonas@jonasboner.com>
Disabling out erroneous cluster 'scrutinize' service until fixed and proper tests are written.

Signed-off-by: Jonas Bonér <jonas@jonasboner.com>
Fixed bug in failure detector which also fixes bug in cluster scrutinize service. Also added test case for the bug.

Signed-off-by: Jonas Bonér <jonas@jonasboner.com>
Merged with master
Fixed error in merge.

Signed-off-by: Jonas Bonér <jonas@jonasboner.com>
Removed printed stack trace from remote client/server errors. Just annoying when client hangs retrying and does not provide any real value since they are the same every time.

Signed-off-by: Jonas Bonér <jonas@jonasboner.com>