Releases: akkadotnet/akka.net
Akka.NET v1.4.19
1.4.19 April 28 2021
Maintenance Release for Akka.NET 1.4
Akka.NET v1.4.19 is a substantial release that includes a number of critical Akka.Cluster fixes, baseline Akka.NET performance improvements, and entirely new dispatcher that has shown to improve performance when used across all of the major actor groups that run both inside the /user
hierarchy and the /system
actor hierarchy as well.
Akka.Cluster Improvements
One of the most demanding issues of the v1.4.19 release was "Akka.Cluster: quarantining / reachability changes appear to be extremely sensitive" - and this is because debugging this issue touched so many different parts of Akka.Cluster.
We ultimately solved the problem - it is now quite feasible to rapidly scale an Akka.NET cluster from ~10 nodes to 50+ nodes without having a huge number of quarantines, accidentally downed nodes, and so on.
Here's the full set of fixes that went into resolving this issue:
- Added
PhiAccrualFailureDetector
warning logging for slow heartbeats - measure Akka.Cluster heartbeat timings, hardened Akka.Cluster serialization
ClusterStressSpec
and Cluster Failure Detector Cleanup- Akka.Cluster: improve
HeartbeatNodeRing
performance - Akka.Cluster: Turned
HeatbeatNodeRing
intostruct
- Akka.Cluster: Configure duration for applying
MemberStatus.WeaklyUp
to joining nodes - Akka.Cluster: Performance optimize
VectorClock
- Akka.Cluster: Refactored
Gossip
intoMembershipState
- Akka.Remote: Clean up bad outbound ACKs in Akka.Remote
Akka.Cluster is now much more robust, faster, and capable of scaling up and down much more efficiently than in previous releases.
ChannelExecutor
and Akka Performance Improvements
In addition to improving Akka.Cluster, we also made substantial improvements to constructs found inside Akka.NET core itself:
- Perf optimize
ActorSelection
- 20% throughput improvement, 25% memory consumption improvement - fixed N-1 error inside
Mailbox
- Introduce
ChannelExecutor
In Akka.NET v1.4.19 we introduce an opt-in feature, the ChannelExecutor
- a new dispatcher type that re-uses the same configuration as a ForkJoinDispatcher
but runs entirely on top of the .NET ThreadPool
and is able to take advantage of dynamic thread pool scaling to size / resize workloads on the fly.
In order to get the most use out of the ChannelExecutor
, the default actor dispatcher, the internal dispatcher, and the Akka.Remote dispatchers all need to run on it - and you can see the latest configuration settings and guidance for that here in our documentation: https://getakka.net/articles/actors/dispatchers.html#channelexecutor
But a copy of today's configuration is included below - you can enable this feature inside your Akka.NET applications via the following HOCON:
akka.actor.default-dispatcher = {
executor = channel-executor
fork-join-executor { #channelexecutor will re-use these settings
parallelism-min = 2
parallelism-factor = 1
parallelism-max = 64
}
}
akka.actor.internal-dispatcher = {
executor = channel-executor
throughput = 5
fork-join-executor {
parallelism-min = 4
parallelism-factor = 1.0
parallelism-max = 64
}
}
akka.remote.default-remote-dispatcher {
type = Dispatcher
executor = channel-executor
fork-join-executor {
parallelism-min = 2
parallelism-factor = 0.5
parallelism-max = 16
}
}
akka.remote.backoff-remote-dispatcher {
executor = channel-executor
fork-join-executor {
parallelism-min = 2
parallelism-max = 2
}
}
We are looking for feedback on how well the ChannelExecutor
works in real world applications here: #4983
Hyperion v0.10 and Improvements
We also released Hyperion v0.10.0 and v0.10.1 as part of the Akka.NET v1.4.19 sprint, and this includes some useful changes for Akka.NET users who are trying to build cross-platform (.NET Framework + .NET Core / .NET 5) applications and need to handle all of the idiosyncrasies those platforms introduced by changing the default namespaces on primitive types such as string
and int
.
We have also introduced a new Setup
type designed to make it easy to resolve some of these "cross platform" serialization concerns programmatically when configuring Hyperion for use inside Akka.NET:
#if NETFRAMEWORK
var hyperionSetup = HyperionSerializerSetup.Empty
.WithPackageNameOverrides(new Func<string, string>[]
{
str => str.Contains("System.Private.CoreLib,%core%")
? str.Replace("System.Private.CoreLib,%core%", "mscorlib,%core%") : str
}
#elif NETCOREAPP
var hyperionSetup = HyperionSerializerSetup.Empty
.WithPackageNameOverrides(new Func<string, string>[]
{
str => str.Contains("mscorlib,%core%")
? str.Replace("mscorlib,%core%", "System.Private.CoreLib,%core%") : str
}
#endif
var bootstrap = BootstrapSetup.Create().And(hyperionSetup);
var system = ActorSystem.Create("actorSystem", bootstrap);
See the full documentation for this feature here: https://getakka.net/articles/networking/serialization.html#cross-platform-serialization-compatibility-in-hyperion
To see the full set of fixes in Akka.NET v1.4.19, please see the milestone on Github.
COMMITS | LOC+ | LOC- | AUTHOR |
---|---|---|---|
38 | 6092 | 4422 | Aaron Stannard |
13 | 2231 | 596 | Gregorius Soedharmo |
10 | 15 | 14 | dependabot-preview[bot] |
3 | 512 | 306 | zbynek001 |
3 | 417 | 1 | Ismael Hamed |
1 | 5 | 5 | Erik Følstad |
1 | 5 | 19 | Arjen Smits |
1 | 27 | 1 | Anton V. Ilyin |
1 | 21 | 33 | Igor |
1 | 1 | 1 | Cagatay YILDIZOGLU |
Changes:
- 7a34a14 v1.4.19 Akka.NET Release (#4987) [ #4860, #4862, #4875, #4866, #4874, #4889, #4880, #4891, #4893, #4892, #4896, #4894, #4890, #4898, #4900, #4897, #4902, #4901, #4909, #4911, #4912, #4913, #4914, #4916, #4917, #4918, #4920, #4923, #4927, #4096, #4928, #4925, #4930, #4933, #4924, #4934, #4935, #4922, #4939, #4940, #4938, #4942, #4945, #4943, #4947, #4946, #4949, #4950, #4952, #4954, #4944, #4878, #4958, #4959, #4960, #4957, #4961, #4962, #4955, #4966, #4964, #4963, #4969, #4895, #4972, #4968, #4974, #4910, #4975, #4976, #4978, #4980, #4882, #4984, #4985 ]
- a3feeef added v1.4.19 release notes (#4985)
- 82d7909 Upgrade to GitHub-native Dependabot (#4984)
- bdfc893 Introduce
ChannelExecutor
(#4882) - e58d36a Removed inaccurate warning from Cluster Singleton docs (#4980)
- a1fa221 Update PluginSpec so that it can accept ActorSystem and ActorSystemSetup in its constructor (#4978)
- 101f5a2 fixed racy ActorModelSpec (#4976)
- d178b63 clean up seed node process (#4975)
- 321d0e4 ORDictionary with POCO value missing items, add MultiNode spec (#4910)
- 442f8eb Fix serialization verification problem with Akka.IO messages (#4974)
See More
- 5251f36 Refactored
Gossip
intoMembershipState
(#4968) - 953fc0f simplified the environment variable name for StressSpec (#4972)
- 8c8c009 Add retry pattern with delay calculation support (#4895)
- 676f566 UnfoldResourceSource closing twice on failure (#4969)
- c4c6443 Clean up bad outbound ACKs in Akka.Remote (#4963)
- d06eb36 fixed N-1 error inside
Mailbox
(#4964) - 71a2a29 Fix
SpawnActor
benchmark (#4966) - a0da8cd
Reachability
performance optimziation (#4955) - 3f232d8 Perf optimize
ActorSelection
(#4962) - 8d03165 Bump Hyperion from 0.10.0 to 0.10.1 (#4957) [ #4961 ]
- 36585d8 added indicator for
ClusterResultsAggregator
inStressSpec
logs (#4960) - 696710e updated website footer to read 2021 (#4959)
- 31522d0 cleaned up
ReceiveActor
documentation (#4958) - 3c2f098 Add generalized crossplatform support for Hyperion serializer. (#4878)
- aed2cbc Turned
HeatbeatNodeRing
intostruct
(#4944) - 2de428b...
Akka.NET v1.4.18
1.4.18 March 23 2021
Maintenance Release for Akka.NET 1.4
This is a minor release of Akka.NET that redesigns how the Props
class and Akka.DependencyInjection uses it. These changes are non-breaking, but please let us know if you run into any trouble at all.
- Akka:
Props
methods for propagating and settingIActorProducer
are pretty weird - Akka: made
Deploy
methods virtual - Akka.DependencyInjection:
ServiceProviderProps
is broken - needs to be rewritten - Akka.Streams: FileIO sinks don't flush until completed
To see the full set of fixes in Akka.NET v1.4.18, please see the milestone on Github.
COMMITS | LOC+ | LOC- | AUTHOR |
---|---|---|---|
3 | 431 | 451 | Aaron Stannard |
3 | 229 | 4980 | Gregorius Soedharmo |
2 | 2 | 2 | dependabot-preview[bot] |
Changes:
- 4cbf1e2 Merge pull request #4870 from akkadotnet/dev
- 6d8819e added v1.4.18 release notes (#4869)
- 37f5575 made Deploy methods virtual (#4868)
- b3f9f4c Add flush feature into Akka.Streams.Implementation.IO.FileSubscriber (#4859)
- d2b8875 ServiceProviderProps and Props Changes (#4858) [ #3599, #4854 ]
- 5d51759 Merge pull request #4845 from akkadotnet/dependabot/nuget/Google.Protobuf-3.15.6
- c73a81a Bump Google.Protobuf from 3.15.5 to 3.15.6
- 444432a Merge pull request #4848 from Arkatufus/Fix_APIApprover_NRE_bug
- 5948163 Add DiffReporter hack
- 7fb3a5e Merge pull request #4844 from Arkatufus/Update_ApiApprover
Akka.NET v1.4.17
1.4.17 March 09 2021
Maintenance Release for Akka.NET 1.4
This is a more significant release of Akka.NET that solves a number of bugs, introduces new features, and more.
Introduction of Akka.Cluster.SBR - Lightbend's Split Brain Resolvers
In Akka.NET v1.4.17 we introduce a new set of Akka.Cluster split brain resolvers for Akka.NET, which are based on the recently open sourced Lightbend implementations of the same. We've documented how to work with each of the new SBR types here, but here's the complete list:
static-quorum
keep-majority
keep-oldest
down-all
lease-majority
keep-referee
- only available with the legacy split brain resolver (still ships with Akka.NET.)
Other bug fixes:
- Akka: Parse expressions where possible to avoid penalties for
.Compile()
- Akka: Ask can't find temporary actor inside async context
- Akka: Add Serialization.WithTransport overload that takes TState
- Akka.DependencyInjection: Allow different versions of MS Abstractions nuget package
- Akka.DependencyInjection:
ServiceProviderProps
did not copy overDeploy
andSupervisorStrategy
properties properly - Akka.Cluster.Tools: on singleton-proxy setting buffer-size to 0 via Hocon fail on exception
- Akka.Streams: InputStreamPublisher cannot be cancelled and StreamRef will be blocked
- Akka.DistributedData: ORDictionary.DeltaGroup.Merge InvalidCastException
- Akka.TestKit:
Expect(0)
withEventFilter
does not work
To see the full set of fixes in Akka.NET v1.4.17, please see the milestone on Github.
COMMITS | LOC+ | LOC- | AUTHOR |
---|---|---|---|
20 | 282 | 237 | IgorFedchenko |
14 | 76 | 25 | Aaron Stannard |
13 | 17 | 17 | dependabot-preview[bot] |
8 | 1031 | 749 | Igor Fedchenko |
6 | 225 | 53 | Gregorius Soedharmo |
3 | 3 | 3 | Brah McDude |
2 | 328 | 21 | Drew |
1 | 4053 | 59 | zbynek001 |
1 | 2 | 1 | Vagif Abilov |
Changes:
- bbe7cd6 Merge pull request #4820 from akkadotnet/dev
- e1683f4 Akka.NET v1.4.17 release (#4818)
- 62a71b1 Split Brain Resolver update (#4819)
- ff202f6 Cleanup Akka.Cluster.SBR for release (#4755)
- 684dec8 Add check for null message in LogDeadLetter. (#4816)
- 6071216 Bump Google.Protobuf from 3.15.3 to 3.15.5 (#4812)
- 114d165 Fix potential NoDelta leak into IReplicatedData.Merge() (#4811)
- 978797a Bump Microsoft.NET.Test.Sdk from 16.8.3 to 16.9.1 (#4796)
- 9125993 clarified Akka.Remote.EndpointWriter ArgumentException error message (#4804)
- 627cc57 Fix broken SerializationSetup, bindings insertion was reversed between HOCON and SerializationSetup. (#4807)
See More
- b1b4625 Fix finding of temprorary actor for Ask pattern when having multiple ActorSystems (#4789)
- d8ad3c7 Add Serialization.WithTransport overload that takes TState (#4764)
- e3016ce Bump Google.Protobuf from 3.15.2 to 3.15.3 (#4800)
- 8907ef9 Bump FsCheck.Xunit from 2.14.6 to 2.15.1 (#4801)
- c58a95e Bump FsCheck from 2.15.0 to 2.15.1 (#4802)
- 60712eb Bump FsCheck from 2.14.6 to 2.15.0 (#4799)
- 660b9fc Bump Google.Protobuf from 3.14.0 to 3.15.2 (#4798)
- 9f2314e Bump FsCheck.Xunit from 2.14.4 to 2.14.6 (#4793)
- 4379e6c Bump FsCheck from 2.14.4 to 2.14.6 (#4795)
- 17b9dee Parse expressions where possible to avoid penalties for .Compile() (#4712)
- 95f9e3f Fixed actor cancellation namespace (#4788)
- f8a3ed5 Bump FsCheck.Xunit from 2.14.3 to 2.14.4 (#4748)
- fc61bd4 Merge pull request #4787 from Arkatufus/#4399_Add_default_constructor_to_Akka.Remote.Ack
- 7b53e41 Merge branch 'dev' into #4399_Add_default_constructor_to_Akka.Remote.Ack
- b14fcab Add default constructor to Akka.Remote.Ack to fix JSON serializer
- d0ba1e1 Upgraded to FluentAssertions 4.14.0 -> v5.10.3 (#4783) [ #4615 ]
- 179b916 Fix ExpectAsync(0) implementation (#4782)
- a6ea829 Merge pull request #4785 from IgorFedchenko/fix-racy-spec
- 9cdefc7 Increased persistence spec timeout
- 48b8477 Refactored racy persistent spec to make failure more clear (no fix provided)
- 3c194d7 Refactored DotNetty spec with timeout increase
- ffe2eb4 Increased default expect timeouts where this is safe
- d50e4a2 Fix few racy specs (#4784)
- 1899eb3 harden Akka.Remote.Tests.Transport.DotNettySslSupportSpec.Secure_transport_should_be_possible_between_systems_using_thumbprint (#4756)
- d73bc52 Merge pull request #4779 from IgorFedchenko/fix-documentation
- 14bf600 Updated specs that might be used in documentation to not use internal properties
- cfdac12 Bump FSharp.Core from 5.0.0 to 5.0.1 (#4778)
- d21e4f7 Allow cluster singleton zero buffer size to disable buffering (#4769)
- 4be1a2f Bump Microsoft.Data.SQLite from 5.0.2 to 5.0.3 (#4776)
- b51c4ba Merge pull request #4774 from IgorFedchenko/set-persistenceId-param-size
- f505f6d Restart CI
- 5ee17c1 Fixed approvals
- 010e6d2 Renamed virtual method to be more in "hook" stype
- e3e3864 Updated approvals
- ffe2fa1 Updated approvals
- d0bf185 Updated to move all logic to plugin implementation
- fa287ff API Approvals fix
- 6df501b Add async support for loading column sizes
- e2507c8 Refactored to make new method more intuitive for plugin creators
- dd7d276 Add virtual method comment
- 4c8c528 Merge remote-tracking branch 'origin/set-persistenceId-param-size' into set-persistenceId-param-size
- 4019601 Use virtual method for loading column sizes
- b94a45f Merge branch 'dev' into set-persistenceId-param-size
- 076d8de Make Expect(0) to throw when any event received (#4771)
- 9f6f943 Handle case when loading db schema is not supported
- fefdaa9 Merge branch 'dev' into set-persistenceId-param-size
- 6ecf4da Merge pull request #4775 from IgorFedchenko/fix-racy-specs
- 6ce0d74 Fix ReceiveTimeoutSpecs
- 2e6ad55 Load text column sizes to use them in queries
- 1397850 Fix parameter name
- e5ad251 Fix TestJournal exception aggregation (#4768)
- e32ca92 Merge pull request #4767 from Arkatufus/#4733_Use_IHostedService_in_DI_tests
- d996435 Update Akka.DependencyInjection.Tests to use IHostedService
- 1502dbc Fix approval specs to use Xunit2Reporter when v2 runner is used (#4766)
- 8d48ef9 Update getting-access-to-nightly-builds.md (#4760)
- 9b94182 Update RELEASE_NOTES.md (#4759)
- c506a2e fix FAKE command
- 726f8ac have FAKE push nightlies from Github Actions
- 836cbc2 quoted NuGet package paths for globbing
- 9118958 passing arguments explicitly into
dotnet push
- 496b442 fix paths for output NuGet binaries
- 12115da fix nightly-nuget.yml FAKE invocation
- 70db64c added Github action support for "workflow_dispatch"
- ea9cc53 adding nightly build support for Github packages (#4758)
- 3f3ce52 harden Akka.Remote.Tests.DotNettySslSupport.Secure_transport_should_be_possible...
Akka.NET v1.4.16
1.4.16 January 22 2021
Maintenance Release for Akka.NET 1.4
This is a tiny release of Akka.NET, aimed at solving a transient dependency issue with Akka.DependencyInjection:
- Akka.DependencyInjection: Allow different versions of MS Abstractions nuget package for Akka.DependencyInjection - rolls back to Microsoft.Extensions.DependencyInjection.Abstractions 3.1 instead of 5.0
Changes:
- 1d570af Merge pull request #4741 from akkadotnet/dev
- 58bfc06 Added v1.4.16 release notes (#4740)
- b9d1375 Allow different versions of MS Abstractions nuget package for Akka.DependencyInjection (#4739)
- d8bc05e typo (#4734)
- 8ef6982 Added v1.4.16 placeholder for nightly builds
This list of changes was auto generated.
Akka.NET v1.4.15
1.4.15 January 19 2021
Maintenance Release for Akka.NET 1.4
Akka.NET v1.4.15 introduces a new module, Akka.DependencyInjection, which will replace Akka.DI.Core and all of the libraries which depend on it. This seemed like the easiest way to preserve backwards compatibility - simple deprecate the old package and replace it with a new one.
So what does Akka.DependencyInjection do differently than Akka.DI.Core?
- Allows users to pass in an
IServiceProvider
into theActorSystem
before the latter is created, via a new kind of programmatic configurationSetup
that was introduced in Akka.NET v1.4. This ensures that theIServiceProvider
is immutable within anActorSystem
, a problem that we have currently with Akka.DI.Core. - Makes it easy to access the
IServiceProvider
via theAkka.DependencyInjection.ServiceProvider.For(ActorSystem)
method, which is what we can use to get access to the service provider in order to consume required services inside our actors. - Makes it possible to dependency inject some parameters will dynamically specifying some others, something that users have been asking for since 2015.
To see a full example of how to use Akka.DependencyInjection in concert with Microsoft.Extensions.DependencyInjection, please see https://getakka.net/articles/actors/dependency-injection.html
Other changes:
- Akka: Add
WithConfigFallback
quality of life helper method toBootstrapSetup
- Akka.MultiNodeTestRunner: Provide .NET 5.0 support for MultiNode TestKit
To see the full set of fixes in Akka.NET v1.4.15, please see the milestone on Github.
COMMITS | LOC+ | LOC- | AUTHOR |
---|---|---|---|
8 | 5351 | 4004 | Aaron Stannard |
3 | 5 | 5 | dependabot-preview[bot] |
2 | 369 | 170 | Ebere Abanonu |
1 | 7 | 0 | Gregorius Soedharmo |
Changes:
- 7c9b58f Merge pull request #4732 from akkadotnet/dev
- e513a8e set the metadata for the Akka.DependencyInjection package to point at https://getakka.net/articles/actors/dependency-injection.html (#4731)
- cb54b55 Updated Akka.DependencyInjection documentation (#4730)
- f219828 added Akka.NET v1.4.15 release notes (#4729)
- b76b98a added 2021 copyright headers (#4728)
- 466d7fc close #4454 - added full ASP.NET Core + DI sample (#4727)
- b11c095 Bump Microsoft.Data.SQLite from 5.0.1 to 5.0.2 (#4719)
- 3d8f843 harden Bugfix4360Spec.Should_recover_persistentactor_sqlite (#4726)
- ba6619a updated Akka.Cluster samples (#4725)
- 7f045af [Akka.DependencyInjection] Microsoft.Extensions.DependencyInjection support (#4708)
See More
- 232aac6 Add WithConfigFallback quality of life helper method to BootstrapSetup (#4714)
- 5c49980 upgraded test target for .NET framework to .NET 4.7.2 (#4715)
- 8da890e remove .NET install scripts from build.sh (#4716)
- 9465934 Bump System.Collections.Immutable from 1.7.1 to 5.0.0 (#4615)
- 880ffa9 Bump Microsoft.Extensions.DependencyModel from 3.1.6 to 5.0.0 (#4613)
- abe36b9 FSharp Quotations Evaluator to 2.1.0 (#4696)
- 365989b Add Support for NET 5 to Build (#4683)
- b7e80a6 Update RELEASE_NOTES.md (#4706)
This list of changes was auto generated.
Akka.NET v1.4.14
1.4.14 December 30 2020
Maintenance Release for Akka.NET 1.4
Akka.NET v1.4.14 contains some significant bug fixes and improvements. It is a highly recommended upgrade for all Akka.NET users.
Major Reduction in Idle CPU Usage and Latency for Akka.Remote
One of the most important fixes introduced in Akka.NET v1.4.14 is the new self-tuning batching system for Akka.Remote's DotNetty transport, which simulatneously reduces idle CPU consumption on low-traffic systems by as much as 55% while improving latency by a factor of 10 for low-traffic systems.
The batching system no longer needs to be configured - it can scale up and down with workload automatically in order to both maximize throughput with a minimal amount of latency. You can read more about it here: https://getakka.net/articles/remoting/performance.html
Other bug fixes and improvements:
- Akka: Move RouterActor routing logic controller actor instantiation from OnReceive to constructor
- Akka.Streams: Serializing a
SinkRef
wrapped inside a POCO failed - Akka.Persistence: Akka.NET Should Allow Separate Read and Write Event Adapter Bindings
- Akka.Persistence.Query: Added Timestamp to
EventEnvelope
- breaking API change; will require all Akka.Persistence plugins to be recompiled and updated. - Akka.Remote: fix NRE inside
RemotingTerminator
To see the full set of fixes in Akka.NET v1.4.14, please see the milestone on Github.
COMMITS | LOC+ | LOC- | AUTHOR |
---|---|---|---|
9 | 533 | 370 | Aaron Stannard |
4 | 5617 | 44 | Gregorius Soedharmo |
1 | 61 | 1 | Brian Sain |
1 | 207 | 54 | Ismael Hamed |
Changes:
- d635f7d Merge pull request #4705 from akkadotnet/dev
- 78483c5 added v1.4.14 release notes (#4704)
- 5e744ff Update Akka.Remote performance guidance for Akka.NET v1.4.14 (#4703) [ #4685 ]
- 58294a4 Create ReadWriteEventAdapter and set if event is bound to separate re… (#4568)
- 7aee504 SinkRef declared inside a POCO should serialize properly (#4425) [ #4421 ]
- 77cb49f cleaned up duplicate TargetFramework tag in Samples.Cluster.Metrics.Common (#4701)
- fe8a5be Move RouterActor routing logic controller actor instantiation from OnReceive to constructor (#4700)
- bfc2f32 Create sample projects for AdaptiveLoadBalancingGroup (#4691)
- 3f0d654 fix NRE inside RemotingTerminator (#4686) [ #4677, #7 ]
- b7630e5 Update ActorTaskSchedulerMessage with defensive coding to prevent possible NRE problems in the future. (#4693)
See More
- b8e74e0 Auto-tuning DotNetty batching + removing scheduler from batching system (#4685)
- 67c6b32 fixed bug with IPersistentRepresentation.Update and timestamp propagation (#4684)
- be43227 upgraded to Incrementalist v0.4.0 (#4690)
- 6e1afac Added Timestamp to EventEnvelope (#4680)
- 55fa656 API - added overload for IScheduler that accepts IRunnable (#4675)
- 91e9c50 Move DotNetty batching scheduling off of DotNetty STEE and onto HashedWheelTimer (#4678)
- d14bb5b Update RELEASE_NOTES.md
This list of changes was auto generated.
Akka.NET v1.4.13
1.4.13 December 16 2020
Maintenance Release for Akka.NET 1.4
Akka.NET v1.4.13 includes a number of bug fixes and enhancements:
AppVersion
now uses Assembly Version by Default
The new AppVersion
setting, which is used to communicate application version numbers throughout Akka.Cluster and is used in scenarios such as Akka.Cluster.Sharding to help determine which nodes receive new shard allocations and which ones do not, now uses the following default HOCON setting:
akka.cluster.app-version = assembly-version
By default now the AppVersion
communicated inside Akka.Cluster Member
events uses the Major.Minor.BuildNumber
from the Assembly.GetEntryssembly()
or Assembly.GetExecutingAssembly()
(in case the EntryAssembly
is null
). That way any updates made to your executable's (i.e. the .dll that hosts Program.cs
) version number will be automatically reflected in the cluster now without Akka.NET developers having to set an additional configuration value during deployments.
Other bug fixes and improvements:
- Akka.IO: UdpExt.Manager: OverflowException when sending UDP packets to terminated clients
- Akka.Configuration / Akka.Streams: Memory Leak when using many short lived instances of ActorMaterializer
- Akka: Deprecate
PatternMatch
- Akka: FSM: exception in LogTermination changes stopEvent.Reason to Shutdown
- Akka.Cluster.Tools: ClusterSingleton - Ignore possible state change in start
- Akka.Cluster.Tools: DistributedPubSub - new setting and small fixes
- Akka.DistributedData:
KeyNotFoundException
thrown periodically
To see the full set of fixes in Akka.NET v1.4.13, please see the milestone on Github.
COMMITS | LOC+ | LOC- | AUTHOR |
---|---|---|---|
5 | 316 | 29 | Aaron Stannard |
2 | 53 | 8 | Gregorius Soedharmo |
2 | 223 | 197 | zbynek001 |
2 | 2 | 2 | dependabot-preview[bot] |
2 | 11 | 3 | Ebere Abanonu |
1 | 37 | 27 | Razvan Goga |
1 | 217 | 11 | motmot80 |
1 | 2 | 0 | Ismael Hamed |
Changes:
- d704d77 Merge pull request #4674 from akkadotnet/dev
- c37e7b3 added v1.4.13 release notes (#4673)
- 9c4ed59 Fix leaking hocon objects due to multiple fallback injection in ActorMaterializer (#4672)
- 1c50e4a if not specified in HOCON, set AppVersion to executing assembly version (#4618)
- 89ad948 Provide sensible default values for Akka.Persistence circuit breaker configuration values (#4666)
- f81f3ea Handling UDP socket errors (#4641) (#4643)
- 77babf0 Deprecate PatternMatch (#4661)
- 9a96446 Fix #4639 (#4662)
- 35484c4 Bump Microsoft.NET.Test.Sdk from 16.8.0 to 16.8.3 (#4650)
- 7a2ca0e MultiNodeSpecs: turn off debug logging for all of them #4215 (#4652)
See More
- 198b377 Bump Microsoft.Data.SQLite from 3.1.9 to 5.0.1 (#4655)
- 10382bf Added backwards-compatibilty to DistributedPubSubSettings constructor (#4656)
- c8add77 akka.PublishSubscribe - new setting and small fixes (#4649)
- a474a88 Fixes #3723 (#4648)
- fe467ec akka.singleton - Ignore possible state change in start (#4646)
- ec01db1 Docs: Programmatic Akka.NET Configuration (#4616) [ #4433 ]
- 0876fba added .YML and .YAML mime types to IIS (#4638)
- 62b141c added v1.4.13 placeholder
This list of changes was auto generated.
Akka.NET v1.4.12
1.4.12 November 16 2020
Maintenance Release for Akka.NET 1.4
Akka.NET v1.4.12 is a relatively minor release, but it includes some breaking changes:
- BREAKING CHANGE: Akka.Cluster.Sharding: batch update - includes some important updates for rebalancing shards more quickly, handling rolling updates, and using the new
AppVersion
type introduced in Akka.NET v1.4.11 to avoid allocating shards onto nodes that are being replaced during an upgrade. The breaking change: renamed theAkka.Cluster.Sharding.TunningParameters
toAkka.Cluster.Sharding.TuningParameters
in order to fix a misspelling. This changes the public API of all of the Akka.Cluster.Sharding settings classes - it shouldn't affect your Akka.NET application directly, but it will affect any plugins built on top of Akka.Cluster.Sharding. - Akka.Streams: Make DistinctRetainingFanOutPublisher a public member - needed to update Akka.Persistence plugins to implement Akka.Persistence.Query "CurrentPersistenceIds` queries correctly.
- Introduce Akka.Discovery Module - introduces the brand new Akka.Discovery module, which allows Akka.NET services to discover Akka.Cluster seed endpoints, Kafka nodes, and more via a variety of methods. This module is still in beta as of 1.4.12 but it will be developed, documented, and incorporated into more tutorials + modules as it matures. You can read more about Akka.Discovery here: https://getakka.net/articles/discovery/index.html
To see the full set of fixes in Akka.NET v1.4.12, please see the milestone on Github.
COMMITS | LOC+ | LOC- | AUTHOR |
---|---|---|---|
6 | 333 | 34 | Aaron Stannard |
2 | 2 | 2 | dependabot-preview[bot] |
1 | 5 | 25 | Ebere Abanonu |
1 | 2823 | 384 | zbynek001 |
1 | 1449 | 0 | Ismael Hamed |
Changes:
- 7b631d8 Merge pull request #4635 from akkadotnet/dev
- 3614954 Akka.NET v1.4.12 Release Notes (#4634)
- 35f6b55 Akka.Discovery Release Cleanup (#4632)
- 5d2841a fixed documentation errors with Akka.Docts.Tests ReceiveTimeoutSpecs (#4633)
- e645a43 Introduce brand new module for service discovery (#4599)
- f9447bd Bump Google.Protobuf from 3.13.0 to 3.14.0 (#4631)
- e9704b0 Make DistinctRetainingFanOutPublisher a "public servant". (#4630)
- cb27803 removed InternalApi attribute from ActorSystemSetup (#4617)
- 7bcf01b akka.cluster.sharding - batch update (#4600)
- 4724ca9 Bump Microsoft.NET.Test.Sdk from 16.7.1 to 16.8.0 (#4611)
See More
- 6a491ea Document new timers and scheduling APIs (#4608) [ #4357 ]
- 25009c0 bumped version number to 1.4.12 for nightlies
This list of changes was auto generated.
Akka.NET v1.4.11
1.4.11 November 5 2020
Maintenance Release for Akka.NET 1.4
Akka.NET v1.4.11 includes some significant additions to Akka.NET:
- Akka: How prevent "Scheduled sending of heartbeat was delayed" and occasionally network partitions - all
/system
actors now run on a dedicated dispatcher. This should significantly improve reliablity for Akka.Cluster, Akka.Persistence, and other built-in Akka.NET systems inside heavily utilized environments. - Akka: Double wildcard implementation for ActorSelection
- Akka.Remote: Null reference exception due to RemoteActorRefProvider.RemoteInternals
- Akka.Persistence: Fix premature reset of the 'writeInProgress' flag in case of persistence failure
- Akka.Cluster: disseminate downing decisions faste
- Cluster - Add app-version to the Member information - you can now specify which version of your software is running on each node.
- Akka.Cluster.Sharding: Bring ShardedDaemonProcess up to date
To see the full set of fixes in Akka.NET v1.4.11, please see the milestone on Github.
COMMITS | LOC+ | LOC- | AUTHOR |
---|---|---|---|
8 | 1020 | 164 | Gregorius Soedharmo |
7 | 399 | 178 | Ismael Hamed |
4 | 5 | 5 | dependabot-preview[bot] |
4 | 108 | 104 | Aaron Stannard |
2 | 232 | 26 | to11mtm |
2 | 2 | 2 | Pierre Irrmann |
2 | 1969 | 269 | zbynek001 |
2 | 155 | 445 | huysentruitw |
1 | 1 | 1 | Guillaume Caya-Letourneau |
Changes:
- 3475b54 Merge pull request #4607 from akkadotnet/dev
- b1481bc added Akka.NET v1.4.11 release notes (#4606)
- ad8c0d1 Fix TestKitBase and Option (#4603)
- f628ba9 disseminate downing decisions faster (Migrated from akka/akka#29640) (#4598)
- 59e149d Double wildcard implementation for ActorSelection (#4375)
- 3705c8c Api/rename app version (#4595)
- d3f457d Fix ByteString.Empty throws when ToArray was called (#4593)
- b9ce185 * Add app-version to the Member information, (Migrated from akka/akka#29546) (#4577)
- 22d313b Bump FSharp.Core from 4.7.2 to 5.0.0 (#4586)
- 7fd6695 Bump Microsoft.Data.SQLite from 3.1.8 to 3.1.9 (#4578)
See More
- 88f3568 NuGet: serve Akka.NET logo over HTTPS (#4582)
- a9c60f3 Fix typo in cluster.conf (#4576)
- 80b9cac Fix time in AtLeastOnceDeliverySemantic.SetDeliverySnapshot to be consistent with Deliver when RecoveryRunning (#4574)
- a706ee6 Fix ToString for KeepOldest strategy (#4572)
- a80ddd7 Port scala akka PR #26816 to Akka.NET (#4511)
- 8b1d54b Bring ShardedDaemonProcess up to date (#4571)
- 8c5d6cc Bump Microsoft.Data.SQLite from 3.1.7 to 3.1.8 (#4564)
- 8c3e49d Avoid stuck rebalances during coordinator leaving (#4566)
- a9f8db7 Added Virtual property
AllocatesAllPersistenceIDsPublisher
and makeReadJournal_should_deallocate_AllPersistenceIds_publisher_when_the_last_subscriber_left
contingent on it being true. (#4565) - 362a446 Log TypeName in ShardRegion logs (#4562)
- f52eff4 Remove UNSAFE_THREADING blocks (#4561)
- ea881a7 Add additional tests in
JournalPerfSpec
to help measure scaling capabilities. (#4560) - 9dfbb54 Remove NetFrameworkLibVersion support (#4559)
- ea979ad Marked SelectAllEventsAsync as virtual for plugins to override (#4557)
- 367f5c5 Fix premature reset of the 'writeInProgress' flag in case of persistence failure (#4556)
- 2064fbd Fix race condition in GroupedWithin. (#4555)
- a4c0fd9 Fix bug in BatchingSqlJournal CurrentAllEvents and AllEventsPublisher. (#4552)
- 813c24f Update index.md (#4554)
- 65f3044 Add circuit breaker exponential backoff support (#4350)
- 920497e Update PersistenceIds query documentation to reflect the current fix (#4551)
- ebe5fd9 Re-enable Akka.Streams.Tests.TCK NUnit tests (#4548)
- e55c42a Bump Microsoft.NET.Test.Sdk from 16.7.0 to 16.7.1 (#4550)
- 5014dc3 updated common.props (#4549)
- 8d5291d Added v1.4.11 placeholder for nightly releases
This list of changes was auto generated.
Akka.NET v1.4.10
1.4.10 August 20th 2020
Maintenance Release for Akka.NET 1.4
Akka.NET v1.4.10 includes some minor bug fixes and some major feature additions to Akka.Persistence.Query:
- Fixed: Akka.Persistence.Sql SqlJournal caching all Persistence Ids in memory does not scale
- Fixed Akka.Persistence.Query PersistenceIds queries now work across all nodes, rather than local node
- Akka.Actor: Akka.Pattern: Pass in clearer error message into OpenCircuitException
- Akka.Persistence: Allow persistence plugins to customize JournalPerfSpec's default values
- Akka.Remote: Racy RemotingTerminator actor crash in Akka.Remote initialization
To see the full set of fixes in Akka.NET v1.4.10, please see the milestone on Github.
Changes:
- ad8ab55 Merge pull request #4547 from akkadotnet/dev
- b7e9b6e added v1.4.10 release notes (#4546)
- d612c89 Re-implement PersistenceIds persitence query to match scala implementation behavior (#4531)
- 6ebceff Bump Google.Protobuf from 3.12.4 to 3.13.0 (#4543)
- 9be939e Add docs about routing management messages (#4545)
- ebdd637 Marked some JournalPerfSpec's fields as protected in order to make then customizable for plugins. (#4544)
- 2b3e2d3 Bump LightningDB from 0.12.0 to 0.13.0 (#4535)
- 4eb845c Bump Microsoft.Data.SQLite from 3.1.6 to 3.1.7 (#4542)
- cc07969 Clear language on clustering conditions (#4541)
- e5c328a Remove hanging "and" in doc benefit overview (#4540)
See More
- a578074 Bump Microsoft.NET.Test.Sdk from 16.6.1 to 16.7.0 (#4538)
- 9dfdfa0 Enhance OpenCircuitException error reporting (#4534)
- 1bdd3f9 Minor fix to the automatic passivation documentation (#4536)
- 796b74c close #4530 - skip call to LogSource.FromActorRef to prevent NRE during RemotingTerminator startup (#4532)
- 163d5b8 Bump Google.Protobuf from 3.12.3 to 3.12.4 (#4529)
- 8fd4af4 Add live and current variant to AllEvents query and their documentation (#4523)
- 861d4f8 Add v1.4.10 placeholder
This list of changes was auto generated.