2. Completed replay of of transaction log on all replicated actors on migration after node crash.
3. Added end to end tests for write behind and write through replication and replay on fail-over.
Signed-off-by: Jonas Bonér <jonas@jonasboner.com>
2. Added first replication test (out of many)
3. Improved ScalaDoc
4. Enhanced the remote protocol with replication info
Signed-off-by: Jonas Bonér <jonas@jonasboner.com>
2. Fixed bug with duplicate entries in replica set for an actor address
3. Turned on clustering for all Multi JVM tests
Signed-off-by: Jonas Bonér <jonas@jonasboner.com>
2. Added test for it.
3. Fixed wrong Java fault-tolerance docs
4. Fixed race condition in maintenance of connections to new nodes
Signed-off-by: Jonas Bonér <jonas@jonasboner.com>
2. Fixed many issues and both known and hidden bugs in the migration code as well as other parts of the cluster functionality.
3. Made the node holding the ClusterActorRef being potentially part of the replica set for the actor it is representing.
4. Changed and cleaned up ClusterNode API, especially the ClusterNode.store methods.
5. Commented out ClusterNode.remove methods until we have a full story how to do removal
6. Renamed Peter's PeterExample test to a more descriptive name
7. Added round robin router test with 3 replicas
8. Rewrote migration tests to actually test correctly
9. Rewrote existing round robin router tests, now more solid
10. Misc improved logging and documentation and ScalaDoc
Signed-off-by: Jonas Bonér <jonas@jonasboner.com>
Updated to modified version of ZkClient (0.3, forked and fixed to allow interrupting connection retry).
Signed-off-by: Jonas Bonér <jonas@jonasboner.com>
Reason: 'pingPongActor.?(Ping)(timeout = TimeoutMillis)' breaks old user code and is so ugly. It is not worth it. Now user write (as he used to): 'pingPongActor ? (Ping, TimeoutMillis)'
2. Fixed broken Cluster communication
3. Added constructor with only String arg for UnhandledMessageException to allow client instantiation of remote exception
Signed-off-by: Jonas Bonér <jonas@jonasboner.com>
- Changed semantics of replica config. Default replicas is now 0. Replica 1 means one copy of the actor is instantiated on another node.
- Actor.remote.actorFor/Actor.remote.register is now separated and orthogonal from cluster implementation.
- cluster.ref now creates and instantiates its replicas automatically, e.g. it can be created first and will then set up what it needs.
- Added logging everywhere, better warning messages etc.
- Each node now fetches the whole deployment configuration from the cluster on boot.
- Added some config options to cluster
Signed-off-by: Jonas Bonér <jonasremove@jonasboner.com>
Added test for cluster communication.
Refactored deployment parsing.
Added InetSocketAddress to remote protocol.
Signed-off-by: Jonas Bonér <jonasremove@jonasboner.com>
Refactored boot dependency in Cluster/Actor/Deployer.
Added multi-jvm test for testing clustered actor deployment, check out as LocalActorRef and ClusterActorRef.
Signed-off-by: Jonas Bonér <jonasremove@jonasboner.com>
Fixed problems with ClusterDeployerSpec and ClusterMultiJvmSpec.
Removed all akka-remote tests and samples (needs to be rewritten later).
Added Actor.cluster member field.
Removed Actor.remote member field.
Signed-off-by: Jonas Bonér <jonasremove@jonasboner.com>
Removed possibility to create multiple ClusterNode, now just one in Cluster.node.
Changed timestamp format for default EventHandler listener to display NANOS.
Cleaned up ClusterModule in ReflectiveAccess.
Signed-off-by: Jonas Bonér <jonasremove@jonasboner.com>