Commit graph

13962 commits

Author SHA1 Message Date
Martynas Mickevicius
07ca8d5a8d =pro #15166 do not redefine executeTests 2014-05-12 15:36:49 +02:00
Roland Kuhn
e43e48329c Merge pull request #2127 from dormidon/3964-unable-to-configure-mailbox-for-routees-under-balancingpool-in-akka-2-3-1
Mailbox configuration for routees under BalancingPool - Issue 3964 fix
2014-05-12 10:08:59 +02:00
Konrad Malawski
1a3a5b57a0 Merge pull request #15160 from ectsue/patch-1
=doc #15160 Minor spelling, wording and grammar fixes.
2014-05-11 16:17:50 +02:00
Evan Tsue
561e852868 =doc #15160 Minor spelling, wording and grammar fixes. 2014-05-11 10:14:50 -04:00
dormidon
1ea7653a79 =act #13964 make BalancingPool mailbox configurable 2014-05-10 16:58:00 +04:00
Konrad Malawski
b17464a5ba Merge pull request #15122 from ktoso/wip-metrics-kit
=act #15064 Initial draft of internal MetricsKit
2014-05-09 13:38:55 +02:00
Patrik Nordwall
7202769f6e Merge pull request #15115 from akka/wip-15102-all-systems-noise-patriknw
=act #15102 No serialization needed for EventStreamUnsubscriber
2014-05-09 09:58:17 +02:00
Patrik Nordwall
234238c727 =act #15102 No serialization needed for EventStreamUnsubscriber
* The problem was that akka://all-systems/StandardOutLogger ref was
  passed during system shutdown
* Add special serialization of StandardOutLogger, and Nobody
2014-05-08 19:37:14 +02:00
Konrad 'ktoso' Malawski
684c0279ec =act,tes Initial draft of internal MetricsKit
Note: This is NOT aimed to provide an micro-benchmarking solution.
The goal is to provide data for broad trend analysis. For techniques
that fight the inliner and other specialised techniques, refer to JMH.

+ custom console and graphite reporters
  - had to be custom because it's not possible to add custom metric
    types to the existing reporters
+ initial hdr.Histogram histogram() provider, see
  http://latencyutils.github.io/LatencyUtils/
+ Not using timers provided by Metrics, instead use the above histogram
+ Added average Actor size measurement
+ Measuring the "blocking time" when an actor is created, before we fire
  of the async part of this process; Measures in loop and will fluctuate
  a lot. Times are in `us` -- System.nanoTime should provide good enough
  resolution.
+ Measuring total actor creation time by using
  `KnownOpsInTimespanTimer`, which given a known number of ops, in a
  large amount of time, roughtly estimates time per one operation.
  // Yes, we are aware of the possibility of GC pauses and other horrors
+ All classes are `private[akka]`, we should not encourage people to use
  this yet
+ Counters use Java 8's `LongAdder`, which is metric's private;
  The new trend in Java land will be copy paste-ing this class ;)
+ Metrics are logged to Graphite, so we can long-term analyse these
+ Reporters are configurable using typesafe-config

! I'm not very happy about how I work around Metrics not being too open
  for adding additional custom metrics. Seems like a hack at places.
  I will consider removing the Metrics dependency all together.
  numbers

Example output:

```
-- KnownOpsInTimespanTimer-------------------------------------------
  actor-creation.total.creating-100000-actors.Props|new-EmptyArgsActor|…||-same
               ops = 100000
              time = 1.969 s
             ops/s = 50782.22
               avg = 19.69 μs

-- AveragingGauge---------------------------------------------------
  actor-creation.Props|new-EmptyArgsActor|…||-same.avg-mem-per-actor
                avg = 439.67
```
2014-05-08 14:52:39 +02:00
Martynas
3cc84f11fc Merge pull request #15113 from 2m/sbt-separate-files
=pro #15031 move build logic into separate files
2014-05-07 16:48:19 +02:00
Martynas Mickevicius
ee5ea5e13f =pro #15031 move build logic into separate files 2014-05-07 15:07:05 +02:00
Konrad Malawski
26a7b029da Merge pull request #15127 from ktoso/build-graphite-events
=build #15103 Add Build start/finish events
2014-05-07 10:25:33 +02:00
Konrad 'ktoso' Malawski
293ecb09f9 =build #15103 Add Build start/finish events
These are visible on the grafana dashboard,
in order to be able to see on which commit
stats have been recorded.

It's enabled via: `-Dakka.sbt.graphite=true`

Resolves #15103
2014-05-07 10:23:21 +02:00
Martynas
14e8249deb Merge pull request #15018 from 2m/stamp-version-fix
FAILED: akka-publish-nightly job
2014-05-05 11:51:18 +02:00
Martynas Mickevicius
78187064cf =pro #15018 update to sbt 0.13.5-RC1 which has publish fix 2014-05-02 11:04:06 +02:00
Patrik Nordwall
c5803a315c Merge pull request #15096 from akka/wip-13966-become-discardOld-master-patriknw
=act #13966 Change wrong default discardOld in UntypedActor become (for validation)
2014-04-30 13:23:14 +02:00
Patrik Nordwall
2bf81a0e15 =act #13966 Change wrong default discardOld in UntypedActor become
(cherry picked from commit 2aada3b5a857552f9d7854a19cd72d77e6a52b9b)
2014-04-30 08:30:34 +02:00
Konrad Malawski
164050ad4c Merge pull request #15069 from ktoso/wip-better-stats-keys
=pro all non-words must be replaced with _ for statsd keys
2014-04-29 11:01:02 +02:00
Konrad 'ktoso' Malawski
69ffd006cf =pro all non-words must be replaced with _, for statsd keys 2014-04-29 11:00:11 +02:00
Konrad Malawski
269328b103 Merge pull request #15059 from 2m/sbt-unidoc-plugin
=pro #15031 use sbt-unidoc plugin
2014-04-28 11:02:04 +02:00
Martynas Mickevicius
7b35ded34e =pro #15031 use sbt-unidoc plugin 2014-04-28 10:12:46 +02:00
Konrad Malawski
d84d583585 Merge pull request #15060 from ktoso/wip-15021-measure-each-test-perf-ktoso
build #15021,#13755 Emit statsd events during build
2014-04-26 01:14:01 +02:00
Konrad Malawski
2d56fbe91c build #15021,#13755 Emit statsd events during build 2014-04-25 17:12:59 +02:00
Björn Antonsson
ef26c3d830 Merge pull request #15058 from akka/wip-update-scala-dependencies-for-samples-master-ban
=sam Update Scala dependencies to 2.10.4
2014-04-25 16:01:25 +02:00
Patrik Nordwall
74034e8180 Merge pull request #2116 from akka/wip-3960-EndpointWriter-stashing-master-patriknw
=rem #13960 #13989 #13742 #13985  Optimize EndpointWriter
2014-04-25 15:04:24 +02:00
Björn Antonsson
c8b3ec0f0e =sam Update Scala dependencies to 2.10.4 2014-04-25 13:23:56 +02:00
Konrad Malawski
403afada41 Merge pull request #15024 from ktoso/wip-removing-isTerminated-from-buses-ktoso
!act,doc Removing isTerminated from EventStream and ActorClassification
2014-04-25 10:16:53 +02:00
Björn Antonsson
4612d6d3f6 Merge pull request #15054 from akka/wip-13890-akka-java8-template-master-ban
(Forward Port) +sam #13890 Add Akka Main Activator template for Java 8
2014-04-25 08:58:50 +02:00
Konrad Malawski
c046cdff0a !act,doc #3893 Removed isTerminated checks from ActorClassification
Instead of isTerminated we now use death watch on subscribers.

! Breaking change - ActorClassification based event buses now require
  and actor system. Previously no actors were involved, but now someone
  has to `watch` the subscribers. The unsubscriber is an system actor,
  and won't be stopped automagically if a bus stops to be used (hard to
  determine what "stops being used" is)
* Replaced isTerminated checks with watching actors
* backing structure for ActorClassification swaped from
  ConcurrentHashMap to immutable.Map with CAS operations on it. This is
  required to avoid races and guarantee register/unregister ordering
  (messages sent with proper sequence numbers) to the unsubscriber.
  Performance tested it and still above 1.3million subscribe+unsubscribe
  ops per second (mac i7, retina), where as the CHM version was
  4 million - but that one could only work in the presence of
  itTerminated - so we pay the price here for removing it.
* `ActorClassification` starts the unsubscriber instance by itself,
  the unsubscriber is an system actor, and can be stopped via
  `ActorClassification#shutdown`
* Will unregister from unsubscriber, when no more subscriptions for
  given subscriber are left in this bus.
* Added missing "Java API: " for some types
* Updated docs to point out the automatic subscriber purging (on terminated)
2014-04-24 14:08:07 +02:00
Björn Antonsson
8b4b28c6f5 +sam #13890 Add Akka Main Activator template for Java 8 2014-04-24 14:04:43 +02:00
Patrik Nordwall
b48a97f9b4 Merge pull request #15049 from akka/wip-2.11-build-adjustments-master-patriknw
=pro #15045 Adjust build for Scala 2.11.0 (for validation)
2014-04-24 13:58:35 +02:00
Patrik Nordwall
a97de7db90 =rem #13960 #13989 #13742 #13985 Optimize EndpointWriter
* Replace stash with internal bufferi, j.u.LinkedList
* Replace FSM with become
* Adaptive backoff, important to backoff, but not for too long,
  depends on environment and use case
* Prioritize heartbeat messages from remote watcher and cluster
  failure detector
* Use payload messages as heartbeats for transport failure detector,
  change transport failure detector to be based on absolute timeout,
  see ticket #13989 and #13742
* Log remote disassociate from transport failure detector,
  see ticket #13985
* Add benchmark sample in akka-sample-remote-scala
2014-04-24 13:39:58 +02:00
Björn Antonsson
9857c0e74e Merge pull request #15051 from akka/wip-remove-unused-dependency-version-ban
=pro Remove unused dependency version
2014-04-24 13:16:29 +02:00
Björn Antonsson
29c2bfaf97 =pro Remove unused dependency version 2014-04-24 11:13:58 +02:00
Patrik Nordwall
09cdfde569 Merge pull request #15011 from csomogyi/master
Fixing minor issues I found while building Akka on Windows
2014-04-24 10:49:28 +02:00
Björn Antonsson
17ecaaa28c Merge pull request #15047 from akka/wip-update-test-dependencies-master-ban
=pro Update test dependencies to Scala 2.11 cross published versions
2014-04-24 09:55:20 +02:00
Patrik Nordwall
b267e8d882 =pro #15045 Adjust build for Scala 2.11.0
* Forward port of 2b891e7
2014-04-24 09:44:15 +02:00
Björn Antonsson
8de3faaa90 Merge pull request #15019 from akka/wip-update-sample-version-numbers-ban
=sam Update version numbers to 2.4-SNAPSHOT
2014-04-23 14:32:19 +02:00
Björn Antonsson
c8ea061472 =pro Update test dependencies to Scala 2.11 cross published versions 2014-04-23 13:58:38 +02:00
Konrad Malawski
44f499f434 Merge pull request #15008 from ktoso/3986-cluster-singleton-may-become-doubleton-during-splits-ktoso
=doc #3986 Slight updates in wording on cluster singleton docs
2014-04-22 17:14:25 +02:00
Konrad Malawski
549f1f9300 Merge pull request #15029 from kpfell/15028-akka-sample-cluster-scala-tutorial-fix
=sam #15028 Change reference from java file to scala file
2014-04-22 17:13:24 +02:00
Katherine Fellows
8ff317a79e =sam #15028 Change reference from java file to scala file 2014-04-19 17:42:08 -07:00
Konrad Malawski
83ae7c0e79 Merge pull request #15020 from sslavic/patch-1
=doc fixed a typo in remoting docs
2014-04-16 16:40:53 +02:00
Stevo Slavić
8736fb16f9 Fixed a typo 2014-04-16 16:15:15 +02:00
Björn Antonsson
613eec743e =sam Update version numbers to 2.4-SNAPSHOT 2014-04-16 15:00:10 +02:00
Konrad Malawski
f57470926e =act #3623 unsubscribe when actors terminate, instead of isTerminated
* Moved to removing actors proactively when they are terminated instead of
  checking `isTerminated` during publish.
* Subscribers which have registered before initializing the unsubscriber
  will be aggregated in a Seq until one is registered and then it will
  take responsibility of unregistering them on termination.
* Initialization of the unsubscriber can only be run once - attempting
  to initialize the event stream with another unsubscriber will fail,
  and init will return false.
* Assumed having an init (mutable) method on the `EventBus` is fine, as
  it has such methods already and @patriknw's comment in the task for
  this.
* since we must check if the subscriber has any subscribed channels left
  we had to expose this detail from SubchannelClassification via
  `hasSubscriptions`. Increases cost of ubsubscribe(actor, channel) a bit.
* Evacuated the expensive `hasSubscription` call out of eventstream's `unsubscribe` call, and instead making the Unsubscriber check this before it stops watching an actor. If in the mean time the same actor got subscribed, there will be a new Subscribe message emited - so we're good on that side. Also, if it would terminate before the unsubscriber gets the Register message it will call `watch(actor)` on a dead actor, which results in getting Terminated for it, thus we'll stop watching it from the Unsubscriber as expected.

Final squash and small cleanup. Please review again;
2014-04-16 12:13:21 +02:00
Patrik Nordwall
2ff0f1d004 Merge pull request #2115 from cowboy129/master
+con #3972 Make Distributedpubsubmediator support consumer group
2014-04-16 11:00:30 +02:00
Patrik Nordwall
90388e01e3 Merge pull request #15013 from akka/wip-remove-atmos-in-build-patriknw
=pro Remove unused atmos project in build
2014-04-15 21:50:46 +02:00
Patrik Nordwall
ac76045a70 Merge pull request #15010 from akka/wip-old-cleanup-patriknw
=tes Remove some old (dead) test/sample code
2014-04-15 21:50:29 +02:00
Björn Antonsson
68c8df7ead Merge pull request #15012 from akka/wip-3969-update-gen-javadoc-master-ban
=pro Update genjavadoc version to 0.7
2014-04-15 17:54:24 +02:00