Commit graph

65 commits

Author SHA1 Message Date
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
Björn Antonsson
28b5f1039d =all #3448 Newer Scalariform running on more files 2013-11-04 11:05:07 +01:00
Martin Krasser
1da3369643 !per #3681 Performance and consistency improvements
- batch-write of persistent messages (user API)
- batch-write of events (in EventsourcedProcessor)
- command processing in EventsourcedProcessor by unstashing messages one-by-one from the internal stash
   * fixes performance issues that come up with unstashAll
- commands are not looped through journal actor but processed directly
- initial performance tests
  * command sourcing
  * event sourcing
  * event sourcing with user stash operations
- suppress stack traces in tests
2013-10-30 15:08:15 +01:00
Martin Krasser
0a2cfdc4d1 +per #3661 Event sourcing support 2013-10-16 13:38:11 +02:00
Martin Krasser
2a30399a29 !per #3652 Custom snapshot and persistent message serialization
- Protobuf serializer for Persistent message
- Configurable serializer for Persistent message's payload
- Configurable serializer for snapshots
2013-10-14 17:35:04 +02:00
Martin Krasser
da7490bbc9 +per #3641 Storage plugin API
- Journal plugin API for storage backends with asynchronous client API (default impl: in-memory journal)
- Journal plugin API for storage backends with synchronous client API (default impl: LevelDB journal)
- Snapshot store plugin API (default impl: local filesystem snapshot store)
2013-10-08 11:46:32 +02:00
Martin Krasser
842ac672f7 !per #3631 Snapshotting
- capture and save snapshots of processor state
- start processor recovery from saved snapshots
- snapshot storage on local filesystem
- snapshot store completely isolated from journal
- LevelDB journal modularized (and completely re-rwritten)
- In-memory journal removed
2013-09-30 17:31:08 +02:00
Martin Krasser
6c78629cdb !per #3618 Cleanup duplication of life cycle hooks in Processor
- introduce around life cycle hooks for symmetry with aroundReceive
 - no custom processor-specific life cycle hooks needed any more
 - preStart and preRestart can be overridden with empty implementation
    (interceptors ensure that super.preXxx calls are still executed)
 - all around life cycle hooks can be final
 - standard life cycle hooks are non-final to preserve composability with existing traits (FSM, ...)
2013-09-18 14:41:38 +02:00
Martin Krasser
5da888548b =per #3615 Fix InvalidActorNameException in persistence tests
- use overridden processor and channel ids
- no need anymore to wait for processor instances to stop
- unrelated: fix wrong artifact names in documentation
2013-09-18 11:56:14 +02:00
Martin Krasser
cdeea924ff akka-persistence prototype
The most prominent changes compared to eventsourced are:

- No central processor and channel registry any more
- Auto-recovery of processors on start and restart (can be disabled)
- Recovery of processor networks doesn't require coordination
- Explicit channel activation not needed any more
- Message sequence numbers generated per processor (no gaps)
- Sender references are journaled along with messages
- Processors can determine their recovery status
- No custom API on extension object, only messages
- Journal created by extension from config, not by application
- Applications only interact with processors and channels via messages
- Internal design prepared for having processor-specific journal actors (for later optimization possibilities)

Further additions and changes during review:

- Allow processor implementation classes to use inherited stash
- Channel support to resolve (potentially invalid) sender references
- Logical intead of physical deletion of messages
- Pinned dispatcher for LevelDB journal
- Processor can handle failures during recovery
- Message renamed to Persistent

This prototype has the following limitations:

- Serialization of persistent messages and their payload via JavaSerializer only (will be configurable later)
- The LevelDB journal implementation based on a LevelDB Java port, not the native LevelDB (will be configurable later)

The following features will be added later using separate tickets:

- Snapshot-based recovery
- Reliable channels
- Journal plugin API
- Optimizations
- ...
2013-09-14 14:19:38 +02:00
Jon-Anders Teigen
70c7b295ac #82 - Split up persistence module into a module per backend storage 2009-12-17 21:53:49 +01:00
debasishg
84373454a0 Upgraded MongoDB Java driver to 1.0 and fixed API incompatibilities 2009-12-09 00:09:38 +05:30
Jonas Bonér
5edc93315d refactoring of persistence implementation and its api 2009-12-07 06:51:49 +01:00
jboner
ce171e0011 added PersistentMap.newMap(id) and PersistinteMap.getMap(id) for Map, Vector and Ref 2009-11-30 10:11:52 +01:00
debasishg
9216161f49 fixed MongoDB tests and fixed bug in transaction handling with PersistentMap 2009-11-25 23:39:06 +05:30
jboner
bd2942094e reverted back to original mongodb test, still failing though 2009-11-23 20:25:13 +01:00
jboner
2fcf0279d6 Fixed problem with implicit sender + updated changes.xml 2009-11-23 15:19:53 +01:00
jboner
f98184ff34 cleaned up logging and error reporting 2009-11-22 15:25:16 +01:00
jboner
a1adfd42e8 cleaned up supervisor and actor api, breaking changes 2009-11-20 08:29:31 +01:00
jboner
ff83935041 refactored and cleaned up 2009-10-30 22:39:26 +01:00
jboner
eee7e09730 Changed the Cassandra consistency level semantics to fit with new 0.4 nomenclature 2009-10-30 21:45:39 +01:00
jboner
00472476af commented out the persistence tests 2009-10-20 16:12:33 +02:00
jboner
84a19bc88a fixed SJSON bug in Mongo 2009-10-20 10:06:50 +02:00
jboner
ae4a02c95e merged with master head 2009-10-19 21:17:04 +02:00
jboner
5695b7268a upgraded to cassandra 0.4.1 2009-10-19 20:47:54 +02:00
jboner
900a7eda0a finalized new STM with Multiverse backend + cleaned up Active Object config and factory classes 2009-10-17 00:37:56 +02:00
jboner
230c9adcaf added NOOP serializer + fixed wrong servlet name in web.xml 2009-10-14 22:18:41 +02:00