Commit graph

42 commits

Author SHA1 Message Date
Roland Kuhn
9125ca2663 Merge pull request #20016 from akka/wip-fix-matVal-graph-RK
simplify materialized value computation tree, fixes #20015
2016-03-17 10:49:18 +01:00
Konrad Malawski
c69efe4dd8 !htc WIP #19956 removing case classes from HttpMessages 2016-03-17 09:29:59 +01:00
Roland Kuhn
b255a19374 simplify materialized value computation tree, fixes #20015
- also fixes materialized value sources for graphs that import zero or
  one graphs, with and without Fusing
2016-03-16 17:05:46 +01:00
Johan Andrén
8a9b3a48d9 =str #20009 State shared over multiple materializations eliminated 2016-03-15 15:05:01 +01:00
Konrad Malawski
a253014ef4 =htp #19397,#19842 fix content negotiation for non 2xx and Accept handling 2016-03-15 09:40:58 +01:00
Alexander Golubev
b2b2ce44b5 =str #19299 Performance Flow.flatMapMerge 2016-03-14 14:14:39 -04:00
Johan Andrén
78e47de6a3 =htt #20013 Provide a description as stream size exception message 2016-03-14 14:16:17 +01:00
Martynas Mickevičius
50f99328fe #18765 Update to latest MiMa which is now an AutoPlugin.
* check for binary inc. issues by default
* if check is not needed, disable MimaPlugin
* determine old artifact id from the current one
2016-03-10 10:45:35 +02:00
Johan Andrén
62e30b3c08 Update copyrights and links to the new company name #19851 2016-02-23 12:58:39 +01:00
Roland Kuhn
bf17de3128 #19637 fix BC issue in AsyncWriteJournal 2016-01-29 12:38:32 +01:00
Prayag Verma
b7783968a0 =pro #19068 All copyrights ranges and single years updated to a range ending in 2016 2016-01-25 10:20:30 +01:00
Roland Kuhn
4c72495581 #19440 replace Scala Future usage with CompletionStage in javadsl
This entails:

  * adding akka.pattern.PatternCS.* to enable ask etc. with
    CompletionStage
  * changing RequestContext to offer an ExecutionContextExecutor for the
    CompletionStage.*Async combinators
  * splitting up akka.stream.Queue for JavaDSL consistency
2016-01-23 18:00:11 +01:00
Martynas Mickevičius
fcb2160578 #19432 enable MiMa check for osgi and cluster-metrics projects
Also start checking against 2.4.1 and move appropriate filters for 2.4.1.
2016-01-21 17:19:39 +02:00
Roland Kuhn
ea34103f98 #19014 add FunctionRef and use in GraphStage.StageActor
This new light-weight ActorRef supports running a non-blocking
side-effect upon message send, which is used to dispatch an async
callback to a GraphStageLogic, or it can be used to make the Akka Typed
adapters more efficient. The FunctionRef is registered with its parent,
and it is not user-level API (hence only accessible by downcasting the
ActorContext).
2016-01-19 08:32:38 +01:00
Raymond Roestenburg
2404a9da01 #19246 Auto and manual reset and BackoffOptions.
Also moved `TransparantExponentialBackoffSupervisor` to `akka.pattern` (renamed to `BackoffOnRestartSupervisor`)
2015-12-29 21:23:16 +02:00
Eugene Dzhurinsky
fb763040f2 Add named exception to detect when a cluster node has been quarantined by others #18758
Publish appropriate events to the current ActorSystem event stream upon remote ActorSystem shutdown or when current ActorSystem is quarantined by the remote ActorSystem.
2015-12-20 13:02:19 -05:00
Patrik Nordwall
0af98e7bee =per add detailed debug logging in ReplayFilter 2015-12-16 14:43:39 +01:00
Patrik Nordwall
b6b498bd2c =rem #19133 avoid DeathPactException race condition
* DeathPactException could occur if the ReliableDeliverySupervisor
  was gated but not yet received Terminated and got an Ungate message
  from the EndpointManager and thereby entered idle state, followed by
  receiving the Terminated message, which is not handled in idle
2015-12-16 14:20:30 +01:00
Tal Pressman
f610952ae7 PersistencePluginProxy
* Rename to PersistencePluginProxy.
* Watch target journal.
* Create PersistencePluginProxyExtension to enable eager initialization of
  the persistence plugin.
* Add initialization via configuration.
* Add tests and documentation.
* Clearer log messages.
2015-12-01 17:12:33 +02:00
Patrik Nordwall
c11b600cc1 !cdd #18328 optimize VersionVector for size 1 (typical dots)
AFTER:

[info] Benchmark                                  (set1Size)   Mode  Cnt     Score     Error   Units
[info] ORSetMergeBenchmark.mergeAddFromBothNodes           1  thrpt   10  2007.939 ±  74.673  ops/ms
[info] ORSetMergeBenchmark.mergeAddFromBothNodes          10  thrpt   10   337.110 ±  15.055  ops/ms
[info] ORSetMergeBenchmark.mergeAddFromBothNodes          20  thrpt   10   223.600 ±   8.403  ops/ms
[info] ORSetMergeBenchmark.mergeAddFromBothNodes         100  thrpt   10    46.697 ±   2.136  ops/ms
[info] ORSetMergeBenchmark.mergeAddFromOtherNode           1  thrpt   10  2542.537 ± 120.697  ops/ms
[info] ORSetMergeBenchmark.mergeAddFromOtherNode          10  thrpt   10   365.694 ±  17.571  ops/ms
[info] ORSetMergeBenchmark.mergeAddFromOtherNode          20  thrpt   10   216.323 ±   9.446  ops/ms
[info] ORSetMergeBenchmark.mergeAddFromOtherNode         100  thrpt   10    49.563 ±   2.725  ops/ms
[info] ORSetMergeBenchmark.mergeAddFromSameNode            1  thrpt   10  9883.186 ± 725.672  ops/ms
[info] ORSetMergeBenchmark.mergeAddFromSameNode           10  thrpt   10  3266.528 ± 189.993  ops/ms
[info] ORSetMergeBenchmark.mergeAddFromSameNode           20  thrpt   10  3206.017 ± 124.623  ops/ms
[info] ORSetMergeBenchmark.mergeAddFromSameNode          100  thrpt   10  2709.031 ± 162.182  ops/ms
[info] ORSetMergeBenchmark.mergeComplex                    1  thrpt   10   572.704 ±  21.504  ops/ms
[info] ORSetMergeBenchmark.mergeComplex                   10  thrpt   10   249.226 ±  12.324  ops/ms
[info] ORSetMergeBenchmark.mergeComplex                   20  thrpt   10   170.560 ±  10.320  ops/ms
[info] ORSetMergeBenchmark.mergeComplex                  100  thrpt   10    46.373 ±   1.800  ops/ms

BEFORE:

[info] Benchmark                                  (set1Size)   Mode  Cnt     Score     Error   Units
[info] ORSetMergeBenchmark.mergeAddFromBothNodes           1  thrpt   10   885.664 ±  99.718  ops/ms
[info] ORSetMergeBenchmark.mergeAddFromBothNodes          10  thrpt   10   304.617 ±   4.755  ops/ms
[info] ORSetMergeBenchmark.mergeAddFromBothNodes          20  thrpt   10   200.977 ±   3.708  ops/ms
[info] ORSetMergeBenchmark.mergeAddFromBothNodes         100  thrpt   10    47.879 ±   4.352  ops/ms
[info] ORSetMergeBenchmark.mergeAddFromOtherNode           1  thrpt   10  1586.848 ±  27.476  ops/ms
[info] ORSetMergeBenchmark.mergeAddFromOtherNode          10  thrpt   10   354.408 ±   4.772  ops/ms
[info] ORSetMergeBenchmark.mergeAddFromOtherNode          20  thrpt   10   210.563 ±  32.914  ops/ms
[info] ORSetMergeBenchmark.mergeAddFromOtherNode         100  thrpt   10    52.750 ±   0.698  ops/ms
[info] ORSetMergeBenchmark.mergeAddFromSameNode            1  thrpt   10  3915.817 ± 420.643  ops/ms
[info] ORSetMergeBenchmark.mergeAddFromSameNode           10  thrpt   10  2369.476 ± 250.336  ops/ms
[info] ORSetMergeBenchmark.mergeAddFromSameNode           20  thrpt   10  2378.924 ±  47.160  ops/ms
[info] ORSetMergeBenchmark.mergeAddFromSameNode          100  thrpt   10  2167.841 ±  20.339  ops/ms
[info] ORSetMergeBenchmark.mergeComplex                    1  thrpt   10   387.261 ±   8.820  ops/ms
[info] ORSetMergeBenchmark.mergeComplex                   10  thrpt   10   212.661 ±   4.802  ops/ms
[info] ORSetMergeBenchmark.mergeComplex                   20  thrpt   10   151.512 ±   2.627  ops/ms
[info] ORSetMergeBenchmark.mergeComplex                  100  thrpt   10    40.976 ±   2.014  ops/ms

* use subtype polymorphism for VersionVector

tmp
2015-11-25 09:17:12 +01:00
Patrik Nordwall
27995af79f =cls #18722 fix DDataShardCoordinator init
* the become logic was wrong when watchStateActors triggers an immediate
  state update
2015-11-18 16:13:58 +01:00
Endre Sándor Varga
c4e326c9dd +rem #18353: Prune reliable deliver actors
(cherry picked from commit 6643f56)
2015-11-13 10:15:31 +01:00
Martynas Mickevičius
4ffe267835 =pro verify BC against all binary compatible versions 2015-10-23 09:10:25 +03:00
Patrik Nordwall
94896e8e75 =rem #18339 Use explicit handshake timeout
* instead of using transport failure detector
* add a new config property akka.remote.handshake-timeout, but
  for netty.tcp and netty.ssl the existing netty.tcp.connection-timeout
  setting will be used
* add test of the timeouts
* mima filter for internal ProtocolStateActor
2015-10-19 14:34:52 +02:00
Patrik Nordwall
48754bb33f =pro #18447 Check binary compatibility with 2.4.0 2015-09-30 11:31:11 +02:00
Veiga Ortiz, Héctor
c08bc317e2 +clu #13584 Accept joining to be WeaklyUp during network split
* experimental feature, disabled by default
* Adding documentation to mention weakly up members.
  plus adding new diagram.
2015-09-04 12:44:47 +02:00
Patrik Nordwall
f8c1671903 =rem #13783 Make ProtobufSerializer independent of protobuf version
* well, as long as they provide the parseFrom and toByteArray
* it is using reflection to find the `parseFrom` and `toByteArray` methods to avoid
  dependency to `com.google.protobuf`.
* also special case com.google.protobuf when loading serialization binding
* migration guide
* mima filters for the serializers (all types changed)
* add real test for ProtobufSerializer
2015-09-04 09:12:34 +02:00
Patrik Nordwall
737a50ebf3 =clu #17253 Improve cluster startup thread usage
When using a dispatcher (default or separate cluster dispatcher)
with less than 5 threads the Cluster extension initialization
could deadlock.

It was reproducable by adding a sleep before the Await of GetClusterCoreRef
in the Cluster extension constructor. The reason was that other cluster actors were
started too early and they also tried to get the Cluster extension and thereby blocking
dispatcher threads.

Note that the Cluster extension is started via ClusterActorRefProvider before
ActorSystem.apply returns.

The improvement is to start the cluster child actors lazily when the
GetClusterCoreRef is received.
2015-09-03 18:09:31 +02:00
Patrik Nordwall
a94f7cdc98 =clu #15412 Add paths(system) method to Group router
to be able to use the role correctly in cluster aware routers

This solution is very similar to what we did for nrOfInstances
in Pool routers.
2015-08-21 14:40:56 +02:00
Patrik Nordwall
2694e13b32 !per #17862 Remove experimental from persistence 2015-08-12 13:52:19 +02:00
Patrik Nordwall
37321ee63f =act #17805 Don't change self on restart"
* we hold on to the same ActorRef instance anyway in the new
  Actor instance
2015-07-01 17:46:59 +02:00
Konrad Malawski
9e3a9983a7 +act #17719 introduce Tuple3-22 classes for java api 2015-06-23 15:01:35 +02:00
Patrik Nordwall
dec53381b6 =rem #17554 Improve flow control of system message delivery
When watching many (5000) actors at the same time the
following problems were found:

* first send of a sys msg is sent without any flow control
  => limit the number of outstanding sys msg by using
     the buffer to send them later (ordinary resend)
* when msg cannot be written sys msg is dropped (relying on resend),
  but that cause message re-ordering and negative acknowledgment,
  which is very costly
  => buffer the sys msg on write failure
  => minor optimization of AckedReceiveBuffer

I also made the resend-limit configurable.

(cherry picked from commit ecfc271e9a9d7efcf76945632d89c78740291cc6)
2015-06-16 06:55:24 +02:00
Patrik Nordwall
cef397d149 =act #17606 Revert abstract class change of ActorPath
It was not binary compatible. Placed static forwarders for Java API
in ActorPaths instead.
2015-05-29 11:11:09 +02:00
Martynas Mickevičius
7fc2790458 =pro run multi-jvm tests when validating pr
* addunidoc task via an AutoPlugin that depends on PrValidation and Unidoc autoplugins
* separate cli option logic to a case class
* remove autoplugin for root project
2015-05-28 13:57:50 +03:00
Thibaut Robert
12cbf83927 =rem improve remote watching mechanism
This improves the remote watching mechanism as follows: Watch requests
are intercepted by the RemoteWatcher and not sent on the wire,
excepted watches from the remoteWatcher itself.

RemoteWatcher is then in charge of forwarding DeathWatchNotification
messages to the watchers.

This reduces the number of watch message to one per watchee, even if
there are several watcher on the same watchee (instead of n+1 before).

Reversed watch messages, and watch on ref with undefinedUid are excluded from
interception by the RemoteWatcher and so are handled as before this commit.

In addition, the following changes are made:
- Keep watchers in a map watchee -> watchers for more efficient retrieval
(in a scala Multimap)
- Keep watchees in a map address -> watchee for more efficient retrieval
(in a scala Multimap)
- Use of InternalActorRef more thoroughly to avoid casts
- Rewatch use a standard watch message, as the distinction is longer needed
2015-05-13 14:10:35 +02:00
Patrik Nordwall
9b80733dde =pro #16736 Add bin compat problem filter for internal change 2015-05-13 12:52:50 +02:00
Roland Kuhn
25ddd1b253 =act #16327 fix BatchingExecutor.blockOn
It contained a difficult to hit race condition that was exploited with
the help of a custom same-thread execution context by Play (its Iteratee
trampoline). In short: don’t resubmit the current Batch if it contains
an unsynchronized variable.

(cherry picked from commit 6d6b9048ddaa72e7b7f1183dabf550b78de6d4e4)
2015-05-12 12:40:44 +02:00
Patrik Nordwall
b30e460be7 = #17342 Make 2.4 binary compatible with 2.3
(cherry picked from commit 89af8bdb90)

* remove final identifier in serializers

i* revert/deprecate ProtobufSerializer.ARRAY_OF_BYTE_ARRAY

* adding back compatible empty constructor in serializers

* make FSM.State compatible

* add back ActorPath.ElementRegex

* revert SocketOption changes and add SocketOptionV2
  see a6d3704ef6

* problem filter for ActorSystem and ActorPath

* problem filter for ByteString

* problem filter for deprecated Timeout methods

* BalancingPool companion

* ask

* problem filter for ActorDSL

* event bus

* exclude hasSubscriptions

* exclude some problems in testkit

* boundAddress and addressFromSocketAddress

* Pool nrOfInstances

* PromiseActorRef

* check with 2.3.9

* migration guide note

* explicit exclude of final class problems
2015-05-11 21:11:52 +02:00
Konrad Malawski
6f9b36e3a0 Revert "= #17342 Make 2.4 binary compatible with 2.3" 2015-04-30 13:09:27 +02:00
Patrik Nordwall
89af8bdb90 = #17342 Make 2.4 binary compatible with 2.3 2015-04-30 09:27:55 +02:00
Martynas Mickevičius
d29c978871 =pro #16704 add validatePullRequest task to samples
* move validatePullRequest to separate autoplugin
* move MiMa settings to separate autoplugin
2015-01-22 20:26:34 +02:00