Commit graph

62 commits

Author SHA1 Message Date
Peter Veentjer
4017a86b4c 1025: some cleanup 2011-07-15 10:59:29 +03:00
Peter Veentjer
966f7d9297 ticket 1025 2011-07-15 09:55:45 +03:00
Viktor Klang
9d71be7778 Updating copyright section to Typesafe Inc. etc 2011-07-14 16:03:08 +02:00
Peter Veentjer
8472df3a47 Fixes some MBean compliance issues 2011-07-13 19:22:49 +03:00
Peter Veentjer
d14f2f6e50 Issue 990: MBean for Cluster improvement 2011-07-13 11:27:16 +03:00
Jonas Bonér
34c838d0f4 1. Completed replication over BookKeeper based transaction log with configurable actor snapshotting every X message.
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>
2011-07-08 19:35:27 +02:00
Jonas Bonér
0b1ee758f5 1. Implemented replication through transaction log, e.g. logging all messages and replaying them after actor migration
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>
2011-07-08 08:28:13 +02:00
Jonas Bonér
9af5df4b02 Minor refactoring and restructuring
Signed-off-by: Jonas Bonér <jonas@jonasboner.com>
2011-07-05 15:58:19 +02:00
Jonas Bonér
4a179d14bb 1. Makes sure to check if 'akka.enabled-modules=["cluster"]' is set before checking if the akka-cluster.jar is on the classpath, allowing non-cluster deployment even with the JAR on the classpath
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>
2011-07-05 14:46:05 +02:00
Jonas Bonér
f2dd6bddb3 1. Added configuration option for 'preferred-nodes' for a clustered actor. The replica set is now tried to be satisfied by the nodes in the list of preferred nodes, if that is not possible, it is randomly selected among the rest.
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>
2011-07-05 13:28:02 +02:00
Jonas Bonér
e28db64def Disabled the migration test until race condition solved 2011-07-02 22:03:13 +02:00
Jonas Bonér
828f0355e1 1. Changed the internal structure of cluster meta-data and how it is stored in ZooKeeper. Affected most of the cluster internals which have been rewritten to a large extent. Lots of code removed.
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>
2011-07-02 18:18:48 +02:00
Peter Veentjer
9ee978f0f6 - moving the storage related file to the storage package
- added some return types to the Cluster.scala
2011-06-27 22:27:40 +03:00
Jonas Bonér
82391e728c Fixed broken support for automatic migration of actors residing on crashed node.
Also hardened the test for automatic migration of actors.

Signed-off-by: Jonas Bonér <jonas@jonasboner.com>
2011-06-27 18:57:48 +02:00
Jonas Bonér
fefb902350 Added 'private[cluster]' to all methods in ClusterNode API that deals with UUID.
Signed-off-by: Jonas Bonér <jonas@jonasboner.com>
2011-06-27 11:53:24 +02:00
Jonas Bonér
5a04095c6b Added multi-jvm test for ClusterDeployer 2011-06-27 08:51:54 +02:00
Jonas Bonér
7a5c95e44d Added tests for automatic actor migration when node is shut down.
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>
2011-06-26 15:04:11 +02:00
Jonas Bonér
15addf2b87 Reorganized tests into matching subfolders.
Signed-off-by: Jonas Bonér <jonas@jonasboner.com>
2011-06-26 13:41:41 +02:00
Jonas Bonér
a0abd5ef57 Fixed problems with actor migration in cluster and added tests for explicit actor migration through API 2011-06-26 09:49:03 +02:00
Jonas Bonér
833238cd44 Added tests for storing, retrieving and removing custom configuration data in cluster storage.
Signed-off-by: Jonas Bonér <jonasremove@jonasboner.com>
2011-06-22 12:03:58 +02:00
Jonas Bonér
df8c4dac89 Added methods for Cluster.remove and Cluster.release that accepts ActorRef 2011-06-22 11:31:01 +02:00
Jonas Bonér
5d4f8b4bcb Added test scenarios to cluster registry test suite.
Signed-off-by: Jonas Bonér <jonasremove@jonasboner.com>
2011-06-22 11:04:32 +02:00
Jonas Bonér
4d31751793 Fixed clustered management of actor serializer.
Various renames and refactorings.
Changed all internal usages of 'actorOf' to 'localActorOf'.

Signed-off-by: Jonas Bonér <jonasremove@jonasboner.com>
2011-06-22 09:59:00 +02:00
Jonas Bonér
b93755080d Added test for Cluster ChangeListener: NodeConnected, more to come. Also fixed bug in Cluster 2011-06-17 16:07:41 +02:00
Jonas Bonér
241831c5ee Added some more localActorOf methods and use them internally in cluster 2011-06-17 12:07:45 +02:00
Jonas Bonér
1997d971a0 Added 'localActorOf' method to get an actor that by-passes the deployment. Made use of it in EventHandler 2011-06-17 11:56:08 +02:00
Jonas Bonér
549f33a3ff Improved error handling in Cluster.scala 2011-06-17 10:25:02 +02:00
Jonas Bonér
bf0515b8e5 Fixed remaining issues in pluggable serializers (cluster impl) 2011-06-14 19:35:18 +02:00
Jonas Bonér
04bf416ead Merge branch 'master' into pluggable-serializer 2011-06-14 14:41:24 +02:00
Jonas Bonér
26500bed09 1. Removed implicit scoped timeout in ? method.
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>
2011-06-14 14:26:13 +02:00
Viktor Klang
9c1a50ba2c Refactoring the use of !! to ?+.get for Akka internal code 2011-06-13 15:29:35 +02:00
Viktor Klang
fa0478bc32 Replacing !!! with ? 2011-06-13 13:43:21 +02:00
Debasish Ghosh
f27e23bf1d Merged with master 2011-06-13 13:35:39 +05:30
Jonas Bonér
8098a8d9be Added storage models to remote protocol and refactored all clustering to use it.
Signed-off-by: Jonas Bonér <jonas@jonasboner.com>
2011-06-10 16:31:24 +01:00
Jonas Bonér
85e742373a - Made ClusterActorRef not extends RemoteActorRef anymore
- Refactored and cleaned up Transaction Log initialization

Signed-off-by: Jonas Bonér <jonas@jonasboner.com>
2011-06-07 20:10:08 -07:00
Jonas Bonér
04efc440d6 1. Made LocalActorRef aware of replication
2. Added configuration for transaction log replication
3. Added replication schemes WriteThrough and WriteBehind
4. Refactored serializer creation and lookup in Actor.scala
5. Extended network protocol with replication strategy
6. Added BookKeeper management to tests
7. Improved logging and error messages
8. Removed ReplicatedActorRef
9. Added snapshot management to TransactionLog

Signed-off-by: Jonas Bonér <jonas@jonasboner.com>
2011-06-07 11:10:29 -07:00
Debasish Ghosh
40d1ca6da2 Issue #595: Pluggable serializers - basic implementation 2011-06-07 06:36:21 +05:30
Jonas Bonér
112ddefd7d refactoring and minor edits 2011-05-30 10:53:25 +02:00
Jonas Bonér
abe6047284 Minor changes and some added FIXMEs 2011-05-25 17:41:53 +02:00
Jonas Bonér
e6fa55b3a8 - Changed implementation of Actor.actorOf to work in the the new world of cluster.ref, cluster.use and cluster.store.
- 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>
2011-05-25 16:18:35 +02:00
Jonas Bonér
f75dcdbd15 Full clustering circle now works, remote communication.
Added test for cluster communication.
Refactored deployment parsing.
Added InetSocketAddress to remote protocol.

Signed-off-by: Jonas Bonér <jonasremove@jonasboner.com>
2011-05-24 19:04:25 +02:00
Jonas Bonér
7f455fd92e removed duplicated NodeAddress 2011-05-23 23:48:25 +02:00
Jonas Bonér
ddb2a69c19 Moved ClusterNode interface, NodeAddress and ChangeListener into akka-actor as real Trait instead of using structural typing.
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>
2011-05-23 22:35:01 +02:00
Viktor Klang
d84a169747 Removing excessive allocations and traversal 2011-05-21 17:30:16 +02:00
Viktor Klang
00f837418f Reformatting and some cleanup of the Cluster.scala code 2011-05-21 16:55:32 +02:00
Viktor Klang
3181905fed Renaming EBEDD to Dispatcher, EBEDWSD to BalancingDispatcher, ThreadBasedDispatcher to PinnedDispatcher and PEBEDD to PriorityDispatcher, closing ticket #784 2011-05-20 22:56:30 +02:00
Jonas Bonér
cd18e72342 Fixed issues with 'ClusterNode.use(address): ActorRef'.
Various other fixes and minor additions.

Signed-off-by: Jonas Bonér <jonasremove@jonasboner.com>
2011-05-20 17:13:39 +02:00
Jonas Bonér
f0be165a07 Refactored and changed boot of Cluster and ClusterDeployer.
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>
2011-05-20 14:36:26 +02:00
Jonas Bonér
b95382c3e2 Merge branch 'wip-new-serialization' 2011-05-20 09:31:57 +02:00
Jonas Bonér
b63709d82c Removed typeclass serialization in favor of reflection-based.
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>
2011-05-20 09:08:11 +02:00