Commit graph

1811 commits

Author SHA1 Message Date
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
Patrik Nordwall
899900528e Merge pull request #19008 from talp-traiana/wip-18839-journal-proxy-patriknw
per #18839 Add better journal proxy
2015-12-07 11:08:29 +01:00
Johannes Rudolph
55ff8e4af2 =pro put some global keys in Global scope to prevent per project reexecution 2015-12-01 16:57:35 +01:00
Johannes Rudolph
5a93d3c018 =pro #19054 use sbt-dependency-graph directly 2015-12-01 16:50:40 +01:00
Johannes Rudolph
017b061737 =pro #19054 update to sbt-dependency-graph 0.8.0 2015-12-01 16:15:23 +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
a4b5de535f =cdd #18328 add JMH benchmark, baseline
[info] Benchmark                                  (set1Size)   Mode  Cnt    Score    Error   Units
[info] ORSetMergeBenchmark.mergeAddFromBothNodes           1  thrpt   10  492.291 ± 55.903  ops/ms
[info] ORSetMergeBenchmark.mergeAddFromBothNodes          10  thrpt   10   79.890 ±  4.977  ops/ms
[info] ORSetMergeBenchmark.mergeAddFromBothNodes          20  thrpt   10   44.560 ±  9.081  ops/ms
[info] ORSetMergeBenchmark.mergeAddFromBothNodes         100  thrpt   10    9.405 ±  0.323  ops/ms
[info] ORSetMergeBenchmark.mergeAddFromOtherNode           1  thrpt   10  714.043 ± 14.694  ops/ms
[info] ORSetMergeBenchmark.mergeAddFromOtherNode          10  thrpt   10   88.281 ± 13.858  ops/ms
[info] ORSetMergeBenchmark.mergeAddFromOtherNode          20  thrpt   10   49.001 ±  0.940  ops/ms
[info] ORSetMergeBenchmark.mergeAddFromOtherNode         100  thrpt   10    9.379 ±  0.300  ops/ms
[info] ORSetMergeBenchmark.mergeAddFromSameNode            1  thrpt   10  487.261 ±  7.457  ops/ms
[info] ORSetMergeBenchmark.mergeAddFromSameNode           10  thrpt   10   80.073 ±  9.736  ops/ms
[info] ORSetMergeBenchmark.mergeAddFromSameNode           20  thrpt   10   46.385 ±  1.225  ops/ms
[info] ORSetMergeBenchmark.mergeAddFromSameNode          100  thrpt   10    9.583 ±  0.234  ops/ms
[info] ORSetMergeBenchmark.mergeComplex                    1  thrpt   10  313.959 ± 31.419  ops/ms
[info] ORSetMergeBenchmark.mergeComplex                   10  thrpt   10   79.265 ±  1.126  ops/ms
[info] ORSetMergeBenchmark.mergeComplex                   20  thrpt   10   44.478 ±  2.077  ops/ms
[info] ORSetMergeBenchmark.mergeComplex                  100  thrpt   10    9.202 ±  0.564  ops/ms

[info] Benchmark                                   (size)   Mode  Cnt      Score      Error   Units
[info] VersionVectorBenchmark.compareGreaterThan1       1  thrpt   10  15628.820 ±  913.690  ops/ms
[info] VersionVectorBenchmark.compareGreaterThan1       2  thrpt   10  15471.453 ±  216.868  ops/ms
[info] VersionVectorBenchmark.compareGreaterThan1       5  thrpt   10  12518.032 ± 1599.615  ops/ms
[info] VersionVectorBenchmark.compareGreaterThan2       1  thrpt   10  15320.311 ±  279.346  ops/ms
[info] VersionVectorBenchmark.compareGreaterThan2       2  thrpt   10  13667.638 ±  414.068  ops/ms
[info] VersionVectorBenchmark.compareGreaterThan2       5  thrpt   10  12708.479 ±  287.942  ops/ms
[info] VersionVectorBenchmark.compareSame1              1  thrpt   10  16096.976 ±  495.227  ops/ms
[info] VersionVectorBenchmark.compareSame1              2  thrpt   10  15399.394 ±  305.350  ops/ms
[info] VersionVectorBenchmark.compareSame1              5  thrpt   10  12754.067 ± 1466.724  ops/ms
[info] VersionVectorBenchmark.compareSame2              1  thrpt   10  15282.217 ±  318.708  ops/ms
[info] VersionVectorBenchmark.compareSame2              2  thrpt   10  13777.859 ±  328.712  ops/ms
[info] VersionVectorBenchmark.compareSame2              5  thrpt   10  12711.851 ± 1159.166  ops/ms
[info] VersionVectorBenchmark.increment                 1  thrpt   10  33512.998 ±  610.102  ops/ms
[info] VersionVectorBenchmark.increment                 2  thrpt   10  32245.963 ±  317.847  ops/ms
[info] VersionVectorBenchmark.increment                 5  thrpt   10  20970.493 ±  346.039  ops/ms
[info] VersionVectorBenchmark.merge                     1  thrpt   10  31914.961 ± 1000.649  ops/ms
[info] VersionVectorBenchmark.merge                     2  thrpt   10  14560.442 ±  732.734  ops/ms
[info] VersionVectorBenchmark.merge                     5  thrpt   10   3673.067 ±  148.871  ops/ms
[info] VersionVectorBenchmark.mergeConflicting          1  thrpt   10   5436.032 ±  531.450  ops/ms
[info] VersionVectorBenchmark.mergeConflicting          2  thrpt   10   4641.969 ±   59.338  ops/ms
[info] VersionVectorBenchmark.mergeConflicting          5  thrpt   10   3489.843 ±  127.217  ops/ms
2015-11-25 09:14:24 +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
Konrad Malawski
18a24c0e50 Merge pull request #18295 from ktoso/wip-docs-warn-about-updated-docs-ktoso
+doc show warning if browsing outdated docs
2015-11-05 15:21:46 +01:00
Konrad Malawski
c527987cc3 +doc #18295 show warning if browsing outdated docs
+doc #18295 include versions.json updation during release
2015-11-05 13:21:24 +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
Patrik Nordwall
0cdd9af3c4 +per #18485 Add cluster sharding data removal utility 2015-09-17 14:07:08 +02:00
Patrik Nordwall
cce3690c72 =pro #18408 Update to Scala 2.11.7 2015-09-08 14:38:09 +02:00
Patrik Nordwall
e5644d406e =pro workaround for scalaunidoc:doc issues 2015-09-04 16:01:01 +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
Roland Kuhn
c3ecb87a65 =all #13783 replace protobuf dependency by embedded version
- created new subproject akka-protobuf (and added COPYING and LICENSE)
- renamed com.google.protobuf -> akka.protobuf everywhere
- also added such renaming step to the results of protoc compilation in
  project/Protobuf.scala
- had to include transcriptions of Netty’s ProtobufEncoder/Decoder to
  make multi-node-testkit compile again
2015-09-04 09:06:50 +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
50d7b1553a =cls #17846 Use provided scope for the distributed-data dependency 2015-08-21 14:36:52 +02:00
Ostapenko Evgeniy
6814d08ef1 =cls #17846 Use CRDTs instead of PersistentActor to remember the state of the ShardCoordinator #17871 2015-08-20 13:36:37 +03:00
Patrik Nordwall
009d80dd35 +per #18190 leveldb impl of EventsByPersistenceId query
* also changed EventsByPersistenceId query type to return
Source[EventEnvelope]
2015-08-19 18:58:58 +02:00
Patrik Nordwall
9a90f36d98 =clm #17768 Silence stacktrace in cluster sample
It works, but the stack trace is very annoying since it will always be printed by Sigar itself
(so stupid of such a library to use stderr and stdout).

    [error] org.hyperic.sigar.SigarException: no libsigar-universal64-macosx.dylib in java.library.path
    [error]     at org.hyperic.sigar.Sigar.loadLibrary(Sigar.java:174)
    [error]     at org.hyperic.sigar.Sigar.<clinit>(Sigar.java:102)

A workaround is to run with `-Djava.library.path=./target/native`, then it will only print
the stack trace when it is not provisioned and next time it's silent.

Also updated to latest sigar-loader, but that did not make
any difference for this issue
2015-08-18 14:55:10 +02:00
Konrad Malawski
6b857912b5 =pro bump sbt-jmh dependency to 0.2.3 (cached source gen) 2015-08-14 17:29:16 +02:00
Patrik Nordwall
2bde9a6820 =pro Remove 2.12.0-M2 from cross 2015-08-14 15:21:34 +02:00
Patrik Nordwall
720dd56270 =pro Scala 2.12.0-M2 2015-08-14 14:31:56 +02:00
Konrad Malawski
5a6ee8bd49 Merge pull request #18051 from akka/wip-16541-persistence-query
+per #16541 initial version of the Persistence Query module
2015-08-12 22:14:44 +02:00
Patrik Nordwall
63ba2ae8e7 +per #17894 Support Future(Nil) in asyncWriteMessages
Future.successful(Nil) is an alternative way to signal all good
in the happy case, for reduced allocations.

fix test failure

benchJmh leveldb dependency

revert leveldb change
2015-08-12 13:54:29 +02:00
Patrik Nordwall
2694e13b32 !per #17862 Remove experimental from persistence 2015-08-12 13:52:19 +02:00
Patrik Nordwall & Konrad Malawski
f849793f36 +per #16541 initial version of the Persistence Query module 2015-08-11 16:35:28 +02:00
Konrad Malawski
0598f974fa =pro Fix accessing None in ValidatePullRequest 2015-07-08 15:13:54 +02:00
Patrik Nordwall
1c3746d11d Merge pull request #17901 from akka/wip-17778-ddata-java-samples-patriknw
=cdd #17778 Convert samples to java
2015-07-03 16:20:47 +02:00
Patrik Nordwall
94a61c7eb2 =cdd #17778 Convert samples to java 2015-07-03 16:19:57 +02:00
Konrad Malawski
98187ca306 Merge pull request #17886 from ktoso/wip-improve-diffing-prvalidation-ktoso
=pro #17841 improve PR validator to diff the merge commit for change …
2015-07-03 15:33:31 +02:00
Konrad Malawski
f8887938ee =pro #17841 improve PR validator to diff the merge commit for change detection 2015-07-03 15:32:40 +02:00
Patrik Nordwall
7bfc56f3f0 Merge pull request #17888 from akka/wip-17805-clearActorFields-patriknw
=act #17805 Don't change self on restart"
2015-07-03 13:54:12 +02:00
Patrik Nordwall
49264c0f83 Merge pull request #17864 from akka/wip-17779-ddata-activator-patriknw
=cdd #17779 Create activator template for Distributed Data
2015-07-02 17:49:50 +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
140c4dcdce =pro #17855 dont publish benchmarks or tests, fix license in bench 2015-07-01 17:05:12 +02:00
Patrik Nordwall
252e88c082 =cdd #17779 Create activator template for Distributed Data
* includes the samples, with tutorial text description
2015-06-30 08:08:43 +02:00
Patrik Nordwall
e13a2d9560 Revert "=pro remove cross scala 2.12.0-M1"
This reverts commit bf485353f0.
2015-06-26 17:21:35 +02:00
Patrik Nordwall
bf485353f0 =pro remove cross scala 2.12.0-M1 2015-06-26 16:49:50 +02:00
Patrik Nordwall
ee9137db4d =cdd #17851 Mark distributed data as experimental 2015-06-26 15:31:49 +02:00
Konrad Malawski
7e86dac542 +per #17579 #17617 Introduces EventAdapter
+ per plugin scoped adapters
+ could be swapped during runtime
+per EventAdapter now has manifest and is configurable ai la serializers
+ json examples in docs
+ including "completely manual" example in case one wants to add
  metadata TO the persisted event
+ better error reporting when misconfigured bindings
+ manifest is handled by in memory plugin
- did not check if it works with LevelDB plugin yet
> TODO: json example uses Gson, as that's simplest to do, can we use
+per allows 1:n adapters, multiple adapters can be bound to 1 class
2015-06-23 16:57:43 +02:00
Konrad Malawski
9e3a9983a7 +act #17719 introduce Tuple3-22 classes for java api 2015-06-23 15:01:35 +02:00