Commit graph

26145 commits

Author SHA1 Message Date
Johan Andrén
35c128b7d8
A bit less noise from updates going to shards that has already shut down when stopping (#30969) 2021-12-09 12:47:23 +13:00
Peter Vlugter
3ddd58ca42
Add variations to entity passivation strategies (#30951)
* Simplify the variations for passivation strategy settings
* Abstract out double-linked list operations for recency and frequency
* Add optional dynamic aging to least frequently used passivation strategy
* Add segmented least recently used passivation strategy
* Split entity passivation specs into multiple files
2021-12-08 13:31:01 +13:00
Scala Steward
a9b620c184
Update aeron-client, aeron-driver to 1.37.0 (#30966)
* Update aeron-client, aeron-driver to 1.37.0

* Update agrona as well

Co-authored-by: Arnout Engelen <arnout@bzzt.net>
2021-12-07 14:23:52 +01:00
Peter Vlugter
250474f026
Simplify entity activity tracking for passivation strategies (#30960) 2021-12-07 14:20:17 +01:00
Scala Steward
259095467d
Update sbt-java-formatter to 0.7.0 (#30965) 2021-12-07 11:21:02 +01:00
Scala Steward
41891297fa
Update paradox-theme-akka, ... to 0.40 (#30964) 2021-12-07 11:20:39 +01:00
Scala Steward
fc2b7428f1
Update sbt-scalafix to 0.9.33 (#30962) 2021-12-07 11:20:19 +01:00
Scala Steward
70ebdf2f2a
Update logback-classic to 1.2.7 (#30963) 2021-12-07 11:17:52 +01:00
Andrei Arlou
0f70838f88
Use apidoc directive in scheduler.md (#22904) (#30947)
* Use apidoc directive in scheduler.md (#22904)

* add parentheses for java methods
2021-12-06 17:50:57 +01:00
Andrei Arlou
68a8ae7966
Use apidoc directive in mailboxes.md (#22904) (#30959)
* Use apidoc directive in mailboxes.md (#22904)

* fix typo
2021-12-06 17:45:20 +01:00
Andrei Arlou
910836e7f2
Use apidoc directive in typed/mailboxes.md (#22904) (#30913) 2021-12-06 16:59:13 +01:00
Andrei Arlou
f3afc9ae9c
Use apidoc directive in event-bus.md (#22904) (#30958) 2021-12-06 16:21:09 +01:00
Patrik Nordwall
06e69e66ff
Hardening of JoinConfigCompatCheckerSpec, #30843 (#30955)
* status is not always updated for a shutdown cluster node, see issue #17479
* look from the other members instead
2021-12-06 09:20:37 +01:00
Arnout Engelen
31c020a8c1
fix doc release instructions (#30956)
Leftover comment that's now done by GHA
2021-12-03 11:49:39 +01:00
Johan Andrén
9c0e62464d
Quick-push all allocated shards to region/proxy when registering #27168
This should shorten latencies per new shard that is addressed from
a newly joined region/proxy
2021-12-03 11:22:30 +01:00
Patrik Nordwall
da564dc7ce
Remove optional traits in EventsBySliceQuery (#30953)
* EventTimestampQuery and LoadEventQuery are optional, and it was an
  oversight to add them to EventsBySliceQuery
* javadsl is ok
2021-12-01 14:34:30 +01:00
Patrik Nordwall
b336371013
Retry ActorSelection resolve in LargeMessagesStreamSpec, #24143 (#30954)
* failed with ActorNotFound in aeron-udp multi-node tests
2021-12-01 10:39:33 +01:00
Johan Andrén
37057f430e
A few tutorial improvements from (#30949) 2021-11-30 14:25:27 +01:00
Johan Andrén
e5f05e1d28
info instead of debug log when JVM triggers coordinated shutdown (#30944) 2021-11-30 14:24:54 +01:00
Andrei Arlou
9ea4b9b0fa
Use apidoc directive in typed/actor-lifecycle.md (#22904) (#30945) 2021-11-30 14:08:46 +01:00
Johan Andrén
90003a6239
warnings instead of errors for artery failures during shutdown (#30943)
Log warnings instead of errors for artery failures during shutdown or that will be retried
2021-11-30 09:55:42 +13:00
Nicolas Vollmar
8db5daa064
Waits with sending complete message until last message has been acknowledged #21015 (#30938) 2021-11-29 09:00:54 +01:00
Patrik Nordwall
2909d4cce5
Use GhExcludeTest in CI again (#30941)
* -XX:+AlwaysActAsServerClassMachine in CI
* Remove GHExcludeTest from all tests, since we have included those in CI workflows
* Exclude a few failing tests from CI
* run CI with -Dakka.test.tags.exclude=gh-exclude again
2021-11-28 19:52:16 +01:00
Patrik Nordwall
cef765a298
Hardening of JoinConfigCompatCheckerRollingUpdateSpec, #30769 (#30936)
* fails frequently in the aeron-udp multi-node tests
* could be that it requires more resources since it's starting
  many actor systems in same jvm
* noticed heartbeat send delay in logs, but not unreachable
* adjusting config to what we have in some other tests
2021-11-25 11:21:43 +01:00
mbairagi85
1e5a9da39c
Update ambiguous comment with maximum-large-frame-size (#30907) 2021-11-25 11:21:11 +01:00
Paweł Kaczor
16943a12c6
Improve unstash / unstashAll scaladoc (#30815) 2021-11-24 17:02:02 +01:00
Patrik Nordwall
3a2c1a688d
Hardening of ReplicatedEventSourcingSpec, #30842 (#30937)
* from logs it looks like the replicated event from the first
  incarnation of the actor isn't stored before the second
  incarnation is replayed
* stop and wait for termination before starting second incarnation
2021-11-24 13:53:29 +01:00
Peter Vlugter
5e523053e3
Support idle entity timeouts in limit-based passivation strategies (#30933) 2021-11-23 13:45:41 +01:00
Arnout Engelen
789a01c53e
scala3/docs: remove umbrella ticket reference (#30912)
I think we're now at a point where we can work with
separate issues for particular problems.
2021-11-19 18:00:08 +01:00
Johan Andrén
efda4a57df
Update incorrect reactive streams spec rule number #30908 (#30909) 2021-11-19 14:39:02 +01:00
Arnout Engelen
02f0679e84
scala3: build/test akka-persistence-tck and akka-persistence-typed-tests (#30911) 2021-11-19 13:48:25 +01:00
Arnout Engelen
65df618bd2
scala3: test akka-stream-typed (#30910)
Refs #30243
2021-11-19 11:39:53 +01:00
Arnout Engelen
9b174a31a6
scala3: remove runtime trait ordering check (#30904) 2021-11-18 14:44:43 +01:00
Andrei Arlou
a8c67fc2e6
Use apidoc directive in common/binary-compatibility-rules.md (#22904) (#30899) 2021-11-18 12:15:08 +01:00
Arnout Engelen
bcc9c66237
Remove ls.implicit.ly metadata (#30902) 2021-11-18 12:14:27 +01:00
Peter Vlugter
a2b7527c64
Add least frequently used entity passivation strategy (#30898) 2021-11-18 12:09:05 +01:00
Francisco Lopez-Sancho
3db7cf9ba5
fix: JavaSerializationException on akka.persistence.journal.Tagged with inmem (#30900)
JavaSerializationException on akka.persistence.journal.Tagged
for test with `akka.persistence.journal.inmem` plugin
2021-11-18 09:23:23 +01:00
Arnout Engelen
7e059fadb9
Scala 3: enable akka-cluster tests (#30890)
Closes #30689

Looks like it has been fixed with https://github.com/akka/akka/pull/30886
2021-11-17 12:13:58 +01:00
Peter Vlugter
c173f8ded9
Add most recently used entity passivation strategy (#30897) 2021-11-17 21:54:02 +13:00
Andrei Arlou
3ffcdcc28c
Use apidoc directive in extending-akka.md (#22904) (#30796) 2021-11-16 17:45:01 +01:00
Patrik Nordwall
03b1584477
NoSuchElementException in LoadEventQuery (#30895)
* better than IllegalArgumentException
2021-11-16 15:40:34 +01:00
Johan Andrén
0e724379aa
Make node app version field public API (#30876) 2021-11-16 15:34:23 +01:00
Patrik Nordwall
5d381cdc74
Propagate aeron system properties to forked jvm, #30601 (#30894) 2021-11-16 15:33:13 +01:00
Andrei Arlou
0c67b741c7
Use apidoc directive in common/may-change.md (#22904) (#30775) 2021-11-16 15:25:43 +01:00
Patrik Nordwall
9b591a0476
Fix mima excludes for wildcardindex (#30896) 2021-11-16 13:26:54 +01:00
Peter Vlugter
a601f36b20
Add access pattern simulator for testing entity passivation strategies (#30884)
* with licence comment for ycsb
2021-11-16 13:00:05 +01:00
Andreas Gabor
058bf1029a
Add support for wildcard suffix in WildcardIndex #30413 (#30750)
* check for invalid usage of a double wildcard as a suffix
* added mima exclusions
* wildcard suffix example
2021-11-16 12:13:37 +01:00
Arnout Engelen
bdb46d16fd
Scala3: enable akka-cluster-sharding-typed tests (#30892)
* Scala3: enable akka-cluster-sharding-typed tests

* typo
2021-11-15 17:57:57 +01:00
Patrik Nordwall
596a2a463f
Add extract utilities to PersistenceId (#30881)
* extract entityTypeHint and entityId from persistence id String
2021-11-15 17:32:34 +01:00
Patrik Nordwall
20b684f04f
New Persistence Query interfaces for bySlices queries (#30882)
* and addition of TimestampOffset
* ApiMayChange
* small mention in docs

eventsBySlices is intended to be a better way to retrieve all events for an entity type
than eventsByTag.

The usage of `eventsByTag` for Projections has the major drawback that the number of tags
must be decided up-front and can't easily be changed afterwards. Starting with too many
tags means much overhead since many projection instances would be running on each node
in a small Akka Cluster. Each projection instance polling the database periodically.
Starting with too few tags means that it can't be scaled later to more Akka nodes.

Instead of tags we can store a slice number by hashing the persistence id.
Like `math.abs(persistenceId.hashCode % numberOfSlices)`.

Then the Projection query can be a range query of the slices. For example if using 128
slices and running 4 Projection instances the slice ranges would be 0-31, 32-63, 64-95,
96-128. That can easily be split to more Projection instances when needed and still
reuse the offsets for the previous range distributions.
2021-11-15 17:31:23 +01:00