Commit graph

340 commits

Author SHA1 Message Date
Björn Antonsson
2c3c13eddd =per #15212 Avoid half written snapshots in LocalSnapshotStore
Conflicts:
	project/AkkaBuild.scala
2014-05-30 18:20:33 +02:00
Björn Antonsson
80c68af14c =per #15280 Make snapshot header length field deserialize correctly 2014-05-27 16:17:11 +02:00
Martynas Mickevicius
fdcd964165 =pro #15031 separate sbt build file for every module 2014-05-14 10:05:09 +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
Patrik Nordwall
e860a94e33 Merge pull request #2119 from akka/wip-3974-sharding-NoSuchElementException-master-patriknw
=3974 per Persist (serialize) actor refs  with transport info (forward port)
2014-04-09 14:04:01 +02:00
Patrik Nordwall
4114947a73 =per #3957 Always reject external Persistent in EventsourcedProcessor
(cherry picked from commit 229578b559b302f0873e16385ba28ab3dabd9035)
2014-04-08 11:46:09 +02:00
Björn Antonsson
6dfe51d71a +per #3927 Enable EventsourcedProcessor to handle ConfirmablePersistent
(cherry picked from commit 6db2a2838a142798a97889486712bfd0f9f5052e)
2014-04-08 11:45:46 +02:00
Patrik Nordwall
e4b2af3783 =3974 per Persist (serialize) actor refs with transport info
* The reason for the problem with NoSuchElementException in ClusterSharding was
  that actor references were not serialized with full address information. In
  certain fail over scenarios the references could not be resolved and therefore
  the ShardRegionTerminated did not match corresponding ShardRegionRegistered.
* Wrap serialization with transport information from defaultAddress

(cherry picked from commit 3e73ae5925cf1293a9a5d61e48919b1708e84df2)
2014-04-07 14:08:04 +02:00
Patrik Nordwall
d7757b90f6 Merge pull request #2099 from akka/wip-3933-persistent-channel-patriknw
=per #3933 Correction of seq number logic for persistent channel
2014-03-25 13:40:37 +01:00
Patrik Nordwall
c7e157121a =per #3933 Correction of seq number logic for persistent channel
* Problem when using PersistentChannel from Processor
* When the seq numbers of the sending processor and the seq numbers
  of the PersistentChannel was out of sync the PersistentChannel
  did not de-duplicate confirmed deliveres that were resent by
  the processor.
* There is a hand-off in the RequestWriter that confirms the
  Processor seq number, and therefore the seq number of the
  RequestWriter must be used in the ConfirmablePersistent from
  the RequestReader
* More tests, covering this scenario
2014-03-24 13:10:35 +01:00
Patrik Nordwall
8ebc413643 +con #3937 Start ShardCoordinator again after PersistenceFailure
* Add supervisor level that will start the ShardCoordinator again after
  a configurable backoff duration
* Make the timeout of SharedLeveldbJournal configurable
* Include cause of PersistenceFailure in message of ActorKilledException
2014-03-23 20:14:19 +01:00
Björn Antonsson
723c931d16 +act,sam,doc #3940 Added receive setter for Java Lambda actors
* Added a setter for Java lambda actors to "hide" the not so nice looking type signature of the "receive" method.
* Updated docs to reflect the changes.
* Converted samples to use the new setter.
2014-03-22 10:53:54 +01:00
Björn Antonsson
26c493ea4a =per #3915 Make become work during recovery for EventsourcedProcessor et.c. 2014-03-22 00:47:03 +01:00
dario.rexin
2cbad298d6 =all #3858 Make case classes final 2014-03-07 13:20:01 +01:00
Roland Kuhn
8a0a6d9e13 +per #3906 use AbstractActor for Java8 Persistence
- also rename and link doc chapter
2014-03-04 16:15:13 +01:00
Nabeel Ali Memon
a0a541eda7 +per #3906 add Java8 support for Persistence
- Provided new interfaces for akka-persistence to be usable directly
  through ReceiveBuilder/PartialFunction. Added a sample java project to
  showcase the usage of these API's with akka-persistence.
- Fixed a minor comment block in javadoc code snippet.
- Renamed java event persistor and fixed a documentation typo.
- Put back java event persistence methods in
  UntypedEventsourcedProcessor and copied them into
  AbstractEventsourcedProcessor for the sake of clarity in javadocs.
  Also corrected some doc punctuations.
- Documentation for akka-persistence java 8 lambda expressions support.
- Moved code examples referred from within lambda-persistence.rst to
  java8 compatible sample project.
- Removed remaining unwanted java8 compatible source files.
2014-03-04 16:14:57 +01:00
Björn Antonsson
24a5f64fcd Merge pull request #2044 from krasserm/wip-3898-increase-expect-timeout-krasserm
=per #3898 Increase expect timeout for SharedLeveldbJournalSpec
2014-03-04 13:36:34 +01:00
Roland Kuhn
b5eeb08fde +act #3900 make systemActorOf available to Extensions 2014-03-03 12:00:25 +01:00
Martin Krasser
5b87222cea =per #3898 Increase expect timeout for SharedLeveldbJournalSpec 2014-02-28 08:05:03 +01:00
Patrik Nordwall
40f161994b Merge pull request #1991 from krasserm/wip-3862-no-generated-sequence-number-expectation-krasserm
=per #3862 Fix concurrency bug in LevelDB journal
2014-02-13 11:38:21 +01:00
Martin Krasser
5bd7191ef4 =per #3862 Fix concurrency bug in LevelDB journal
- which may generate same numeric ids for different processor/channel ids.
2014-02-10 10:16:54 +01:00
Adam Voss
cce29dfa51 Changes all occurances of Typesafe copyright to extend to 2014. 2014-02-04 21:20:09 -06:00
Patrik Nordwall
615c6b572c =* #2966 Reduce warnings from compile, test, scaladoc 2014-01-24 11:47:57 +01:00
Patrik Nordwall
787c7ca439 Merge pull request #1959 from krasserm/wip-3844-enforce-replay-max-krasserm
=per #3844 Views now enforce autoUpdateReplayMax
2014-01-24 02:45:19 -08:00
Martin Krasser
b667e8ff3a =per #3844 Views now enforce autoUpdateReplayMax 2014-01-23 10:43:02 +01:00
Martin Krasser
1d65a4a4f8 =per #3836 Set lower idleTimeout for persistent channels
- idleTimeout lower than expectation timeout
- removed remaining shared testActor usage
2014-01-23 08:30:08 +01:00
Patrik Nordwall
45124274b4 Merge pull request #1945 from krasserm/wip-3824-do-not-share-test-actor-krasserm
=per #3824 Do not share testActor across tests
2014-01-20 05:13:14 -08:00
Martin Krasser
aa67472f45 =per #3824 Do not share testActor across tests 2014-01-20 12:41:35 +01:00
Patrik Nordwall
301b735516 Merge pull request #1941 from krasserm/wip-3829-increase-default-timeout-krasserm
=per #3829 Set default expectation timeout to 10s
2014-01-20 02:54:16 -08:00
Martin Krasser
b4c57fc899 =per #3829 Set default expectation timeout to 10s 2014-01-20 09:32:53 +01:00
Martin Krasser
e0f5cf5f2c !per #3828 Rename receiveReplay to receiveRecover
- because it handles messages related to recovery (snapshots and replayed messages)
2014-01-19 17:46:32 +01:00
Patrik Nordwall
53ad96ed92 =per #3820 Increase some test timeouts in persistence
* reproduced the problem with sleep in LeveldbStore
2014-01-17 20:40:10 +01:00
Martin Krasser
f327e1e357 !per #3704 Persistence improvements
- Channel enhancements (#3773):
- Live read models (#3776):
- Batch-oriented journal plugin API (#3804):
- Batching of confirmations and deletions
- Message deletion enhancements (more efficient range deletions)
2014-01-17 13:36:55 +01:00
Patrik Nordwall
7648a50d53 +act #3769 Add toStringWithoutAddress to ActorPath 2014-01-15 15:05:52 +01:00
Patrik Nordwall
9d0bee1281 =per #3797 Additional hardening of persistence tests
* Pass system properties to forked tests
* revert Cleanup.afterTermination
* increase timeout for first assert in failing tests
2013-12-30 19:29:38 +01:00
Patrik Nordwall
e41ee67dc1 Merge pull request #1901 from akka/wip-3797-leveldb-test-cleanup-patriknw
=per #3797 Harden file deletions in persistence tests
2013-12-20 07:10:12 -08:00
Patrik Nordwall
e94fc68f2f =per #3797 Harden file deletions in persistence tests 2013-12-20 12:40:54 +01:00
Björn Antonsson
003609c9c5 =pro #3759 Changed to using non-deprecated ScalaTest Matchers 2013-12-18 11:32:51 +01:00
Patrik Nordwall
b74103a013 Merge pull request #1890 from krasserm/wip-3771-sync-snapshot-filenames-krasserm
=per #3771 Snapshot file names are only read on system startup
2013-12-16 01:28:01 -08:00
Martin Krasser
17632d83ce =per #3771 Snapshot file names are only read on system startup
- snapshot file names are no longer cached
- they are read on every load attempt on a per-processor basis
2013-12-16 09:09:06 +01:00
Patrik Nordwall
b3b66db643 +con #3758 Provide sharding of actors in a cluster
* Delete files only from controller
* Change default retry settings of singleton to speedup startup
* Persistent snapshots
2013-12-13 16:19:35 +01:00
Martin Krasser
f55c711601 !per #3785 Change default implementation of processorId
- also affects channel ids.
2013-12-12 16:06:36 +01:00
Martin Krasser
4e5ce5529c !per #3761 Reliable channels
- Built-in redelivery mechanism for Channel and PersistentChannel
- redelivery counter on ConfirmablePersistent
- redeliveries out of initial message delivery order
- relative order of redelivered messages is preserved
- configurable redelivery policy (ChannelSettings)
- Major refactorings of channels (and channel tests)
- Throughput load test for PersistentChannel

Todo:

- Paged/throtlled replay (another pull request)
- Resequencer (another pull request)
2013-12-12 12:22:46 +01:00
Martin Krasser
d0bc8a6400 +per #3746 Remote sharing of LevelDB for testing purposes
Further changes

- remove obsolete identity checks in Eventsourced
- fix wrong serialize-messages config in tests
2013-12-03 08:51:25 +01:00
Martin Krasser
6e2f80bab0 !per #3729 Journaling protocol optimization
- internal batching of individually received Persistent messages
- testing fault tolerance of Processor in presence of random
  * journaling failures
  * processing failures
2013-11-27 13:51:27 +01:00
Martin Krasser
5f9355a778 =per #3739 Fix broken Javadoc generation
- caused by field named 'native' in LevelDBJournal
2013-11-21 12:58:14 +01:00
Patrik Nordwall
524addd404 Merge pull request #1838 from krasserm/wip-3717-deletion-api-krasserm
!per #3717 Deletion API for snapshots and persistent messages
2013-11-21 00:54:44 -08:00
Martin Krasser
4489a72bea !per #3717 Deletion API for snapshots and persistent messages
- single and bulk deletion of messages
- single and bulk deletion of snapshots
- run journal and snapshot store as system actors
- rename physical parameter in delete methods to permanent
- StashSupport.prepend docs and implementation enhancements
2013-11-20 14:45:29 +01:00
Martin Krasser
9fce211f3b =per #3718 Support for native LevelDB 2013-11-14 12:18:34 +01:00
Martin Krasser
ba9fc4da46 !per #3707 Channel enhancements
- Persistent channel
- ConfirmablePersistent message type delivered by channel
- Sender resolution performance improvements
   * unstash() instead of unstashAll()

These enhancements required the following changes

- Unified implementation of processor stash and user stash
- Persistence message plugin API separated from implementation
- Physical deletion of messages
2013-11-14 12:05:37 +01:00