Commit graph

225 commits

Author SHA1 Message Date
Viktor Klang
2e50bb8f52 Removing the redundant field that is RemoteActorRefProvider from RARP as it is transitively availabe through the transport 2013-03-06 15:10:59 +01:00
Patrik Nordwall
0f01ffe3a0 Add fail fast checks to prevent null message, see #2800
(cherry picked from commit 5526f9d2a8b01f944ff078ce57f2a03c21649d05)

* Added null check in Envelope.apply
2013-02-20 13:36:42 +01:00
Patrik Nordwall
323e5c80b5 Polish the API/SPI of remoting, see #2827
* Changed TransportAdapterProvider to support java impl
* Verified java impl of AbstractTransportAdapter and
  ActorTransportAdapter
* Privatized things that should not be public api
* Consistent usage of INTERNAL API marker in scaladoc
* Added some missing doc in conf
* Added missing SerialVersionUID
2013-02-10 17:47:43 +01:00
Viktor Klang (√)
5164e2e08e Merge pull request #1096 from akka/wip-2986-ActorContext-executor-√
#2986 - Changing ActorContext and ActorRefFactory's dispatcher to retur...
2013-01-31 06:42:12 -08:00
Viktor Klang
e519e3dc3b #2986 - Changing ActorContext and ActorRefFactory's dispatcher to return ExecutionContext 2013-01-31 15:41:31 +01:00
Patrik Nordwall
f89dd49954 Share same instance of deadLetters between LARP and RARP, see #2983 2013-01-31 11:28:08 +01:00
Roland
b881963907 make sure that InterruptExceptions are not swallowed, see #2963
also remove an old work-around in CallingThreadDispatcherModelSpec and
describe the rules for interrupting in the testing docs
2013-01-29 17:26:15 +01:00
Endre Sándor Varga
e0a9dd70ba Dead letters containing remote envelopes handled correctly #2959
- New DeadLetter class for handling remoting specific envelopes
 - Fixed error handling of name lookups
 - Name lookup is now handled via futures (future refactor opportunity)
2013-01-29 11:31:53 +01:00
Endre Sándor Varga
99adbdfab4 Changed and documented new remoting configuration #2593 2013-01-24 12:35:05 +01:00
Endre Sándor Varga
b08c331577 Fixed problems handling passive connections in Remoting #2878
- Fixed potential race in EndpointWrite when TakeOff is processed
- Reenabled accidentally disabled gremlin due to changed defaults
- Fixed EndpointRegistry incorrectly handling passive connections
2013-01-17 14:37:29 +01:00
Viktor Klang
adfeb2c1f0 #2879 - updating copyright info 2013-01-09 11:38:00 +01:00
Endre Sándor Varga
748d10f1b3 Merged with master 2012-12-18 16:08:06 +01:00
Endre Sándor Varga
55be17419e Merge branch 'master' into wip-2053d-actorbased-remote-drewhk
Conflicts:
	akka-docs/rst/java/code/docs/serialization/SerializationDocTestBase.java
	akka-docs/rst/scala/code/docs/serialization/SerializationDocSpec.scala
	akka-remote-tests/src/main/scala/akka/remote/testconductor/NetworkFailureInjector.scala
	akka-remote/src/main/scala/akka/remote/RemoteActorRefProvider.scala
2012-12-18 15:15:01 +01:00
Endre Sándor Varga
4c7691fe40 Removed implicit conversions from ActorRef to AssociationEventListener and HandleEventListener 2012-12-18 14:30:04 +01:00
Endre Sándor Varga
752e43a0e7 Implemented strictly ordered shutdown between remoteDaemon and transport in RARP. 2012-12-18 14:30:03 +01:00
Endre Sándor Varga
b886fcd54c Added clarifications to driver-adapter stack building method 2012-12-18 14:29:25 +01:00
Endre Sándor Varga
6bd64d55bd - Fixes in contrib and docs
- Fixed getExternalAddressFor
2012-12-18 14:26:55 +01:00
Endre Sándor Varga
d46a4b6916 - Removed usage of null from Endpoint
- Fixed race resolution logic in FailureDetectorRegistry to not create unnecessary instances
2012-12-18 14:24:37 +01:00
Endre Sándor Varga
9f006789fc Made RemotingEvents sealed and final 2012-12-18 14:23:38 +01:00
Endre Sándor Varga
0705d47a88 Streamlined configuration, transport adapters and FailureInjector
- Transports no longer uses raw ActorRefs as listeners but proper interfaces.
 - Added managementCommand support to Transports
 - Added support for dynamically loadable transport adapters
 - Added throttler/failure injector transport adapter
 - added actor based adapter support
 - Changed configuration method of multiple transports - Fixed tests to work with the new remoting
2012-12-03 10:06:38 +01:00
Patrik Nordwall
4761feb071 Merge pull request #858 from akka/wip-2547-metrics-router-patriknw
AdaptiveLoadBalancingRouter and refactoring of metrics, see #2547
2012-11-30 23:37:30 -08:00
Viktor Klang
e8610e1ddd Scalariforming 2012-11-26 17:42:25 +01:00
Roland
5e2127a6c7 clarify internal nature of ActorRefProvider impls 2012-11-22 15:14:24 +01:00
Roland
fbd96162a0 add ActorRefProvider.getDefaultAddress, see #2732
- use it in ConsistentHashingRouter instead of relying on
  provider.rootPath.address
- remove transport.address from RemoteActorRefProvider.rootPath
2012-11-22 14:40:54 +01:00
Endre Sándor Varga
5b96c28acd Fixed according to review comments. 2012-11-22 13:33:48 +01:00
Endre Sándor Varga
d03d98b6ab Removed cross layer dependencies
- akka protocol treats upper layer messages as raw bytes now
 - deserialization for received messages no longer use localAddressForRemote
2012-11-21 15:58:01 +01:00
Endre Sándor Varga
682abccf7e Added defaultAddress() to RemoteTransport API 2012-11-21 14:18:24 +01:00
Endre Sándor Varga
0f0c5cb17a Merge branch 'master' into wip-2053d-actorbased-remote-drewhk 2012-11-21 12:04:14 +01:00
Patrik Nordwall
5eec693fd0 Incorparate review feedback, see #2547
* case object and case class for MixMetricsSelector
* Rename decay-half-life-duration to moving-average-half-life
* Clarification of decay-half-life-duration and collect-interval
* Removed Fields, Java compatibility issue
* Adapt for-yield variables
* Comment metrics collector constructor that takes system param
* Don't copy EWMA if not needed
* LogOf2 constant 0.69315
* Don't use mapValues
* Remove RichInt conversion
* sigar version replace tag in docs
* createDeployer factory method to make it possible to override
  deployer in subclass
* Improve readability of MetricsListener (in sample)
* Better startup of factorial sample (no sleep)
* Many minor enhancements and cleanups
2012-11-16 11:03:20 +01:00
Patrik Nordwall
1914be7069 Merge branch 'master' into wip-2547-metrics-router-patriknw
Conflicts:
	akka-actor/src/main/scala/akka/actor/Deployer.scala
	akka-cluster/src/main/scala/akka/cluster/ClusterMetricsCollector.scala
	akka-cluster/src/test/scala/akka/cluster/MetricsCollectorSpec.scala
2012-11-15 12:33:11 +01:00
Patrik Nordwall
dcde7d3594 AdaptiveLoadBalancingRouter and more refactoring of metrics, see #2547
* Refactoring of standard metrics extractors and data structures
* Removed optional value in Metric, simplified a lot
* Configuration of EWMA by using half-life duration
* Renamed DataStream to EWMA
* Incorporate review feedback
* Use binarySearch for selecting weighted routees
* More metrics selectors for the router
* Removed network metrics, since not supported on linux
* Configuration of router
* Rename to AdaptiveLoadBalancingRouter
* Remove total cores metrics, since it's the same as jmx getAvailableProcessors,
  tested on intel 24 core server and amd 48 core server, and MBP
* API cleanup
* Java API additions
* Documentation of metrics and AdaptiveLoadBalancingRouter
* New cluster sample to illustrate metrics in the documentation,
  and play around with (factorial)
2012-11-14 15:08:30 +01:00
Viktor Klang
8f131c680f Switching to immutable.Seq instead of Seq 2012-11-12 14:17:47 +01:00
Patrik Nordwall
49500ab248 Use full address when hashing routees, see #2657
* Problem: ConsistentHashingRouter used on different nodes with remote
  and local routees doesn't route to same targets.
* Reason: Full address, with host and port was not used in the
  representation of the routees, which produced different  hash rings
  on different nodes.
* Solution: Fill in full address in the toString representation for
  LocalActorRef
* IMPORTANT: Discovered that rootPath of the provider didn't include the
  full address. It is documented that it should and I needed that to
  be able to grab the address without depending on remoting. This caused
  changes in RemoteActorRefProvider. Initialization order is a bit scary
  there.
2012-10-30 08:18:41 +01:00
Endre Sándor Varga
5f9253b79e New Remoting implementation (iteration 3) #2053
- Asynchronous lockless remoting
 - Pluggable transport drivers
 - Multiple transport support
 - Simplified lifecycle events
 - Support for netty based TCP, SSL+TCP and UDP support
 - Updated Akka protocol with soft-state connections and failure detection
 - Refactored failure detectors (currently duplicated from cluster)
2012-10-29 16:32:15 +01:00
Björn Antonsson
1d578a9aa2 Change RemoteActorRef to not start before it's been published. #2575 2012-10-15 13:33:39 +02:00
Björn Antonsson
4d003c50e7 Changes according to review. #2575 2012-10-11 10:29:54 +02:00
Björn Antonsson
6b6eeb22ba Start actor after it can be resolved with actorFor. #2575 2012-10-10 22:22:41 +02:00
Viktor Klang
397083a218 Changing the default sender of ! to be Actor.noSender to keep null in one place and have a logical alternative when deadLetters isn't present in scope. 2012-10-06 00:13:42 +02:00
Roland
64c2383596 Merge branch 'wip-2573-untrusted-∂π' 2012-10-04 17:58:15 -07:00
Roland
3efa0c96e9 implement untrusted mode, see #2573 2012-10-04 16:50:49 -07:00
Viktor Klang
65d8316a67 #2581 - removing 'running' from RemoteActorRef as discovered unused by Endre. 2012-10-02 20:20:34 +02:00
Patrik Nordwall
911ef6b97e Merge pull request #668 from akka/wip-1588-cluster-death-watch-patriknw
Death watch hooked up with cluster failure detector, see #1588
2012-09-11 06:13:44 -07:00
Viktor Klang
4eee04cb60 #2469 - Switching to scala.util.Try instead of Either[Throwable, T] in the codebase 2012-09-06 03:17:51 +02:00
Patrik Nordwall
ea59b952ce Direct failed remote sends to deadLetters, see #1588
* When Watch is sent to deadLetters it will generate Terminated
* Test: receive Terminated when watched node is unknown host
* Test: receive Terminated when watched path doesn't exist
2012-09-04 09:55:08 +02:00
Roland
48b68c650d Merge branch 'wip-2376-guardianStrategy-∂π' 2012-08-17 14:35:39 +02:00
Roland
85dcfd87d1 inline manually CatchingSend() 2012-08-16 11:31:53 +02:00
Roland
c1c05ef95e fix CTD vs. RepointableRef by swallowing exceptions during send
- it was always intended that tell() (and sendSystemMessage()) shall not
  throw any exceptions
- this is implemented by swallowing in ActorCell
  (suspend/resume/restart/stop/!/sendSystemMessage) and in
  RemoteActorRef (!/sendSystemMessage)
- current implementation uses a normal method, which adds overhead but
  keeps the code in one place (ActorCell.catchingSend); this is a great
  opportunity for making use of macros
2012-08-15 21:46:05 +02:00
Roland
f05447408c make guardian supervisorStrategy configurable, see #2376 2012-08-14 08:07:49 +02:00
Viktor Klang
17f21480b6 #2372 - Making RemoteActorRefProvider public since it is in the signature of RemoteTransport, which is public 2012-08-12 11:16:43 +02:00
Roland
6145d4313b some cleanup after Viktor’s comments
- remove useless `cause` argument from some akka exceptions
- improve names of some method arguments
- eliminate some closure allocation
2012-08-08 14:13:52 +02:00