1.5.0-alpha2 October 17th 2022
Akka.NET v1.5.0-alpha2 is a maintenance release for Akka.NET v1.5 that contains numerous performance improvements in critical areas, including core actor message processing and Akka.Remote.
Performance Fixes
- remove delegate allocation from
ForkJoinDispatcher
andDedicatedThreadPool
- eliminate
Mailbox
delegate allocations - Reduce
FSM<TState, TData>
allocations - removed boxing allocations inside
FSM.State.Equals
- Eliminate
DefaultLogMessageFormatter
allocations
In sum you should expect to see total memory consumption, garbage collection, and throughput improve when you upgrade to Akka.NET v1.5.0-alpha2.
Other Features and Improvements
- DData: Suppress gossip message from showing up in debug log unless verbose debug logging is turned on
- TestKit: TestKit automatically injects the default TestKit default configuration if an ActorSystem is passed into its constructor
- Sharding: Added a new
GetEntityLocation
query message to retrieve an entity address location in the shard region - Sharding: Fixed
GetEntityLocation
uses wrong actor path - Akka.Cluster and Akka.Cluster.Sharding: should throw human-friendly exception when accessing cluster / sharding plugins when clustering is not running
- Akka.Cluster.Sharding: Add
HashCodeMessageExtractor
factory - Akka.Persistence.Sql.Common: Fix
DbCommand.CommandTimeout
inBatchingSqlJournal
Changes:
- a69d778 Update RELEASE_NOTES.md for 1.5.0-alpha2 release (#6198)
- c78cec6 removed boxing allocations inside
FSM
(#6183) (#6196) - 65f392a Bump Microsoft.Extensions.ObjectPool from 5.0.5 to 6.0.10 (#6170)
- e26b196 Bump Microsoft.Data.SQLite from 6.0.9 to 6.0.10 (#6179)
- ee3a26b Bump Microsoft.Extensions.Hosting.WindowsServices from 6.0.0 to 6.0.1 (#6172)
- 0675bd9 Fix OldCoordinatorStateMigrationEventAdapter.Manifest (#6176)
- f5d5838 add HashCodeMEssageExtractor Factory method (#6173)
- 0b944de Bump Microsoft.Extensions.DependencyInjection from 6.0.0 to 6.0.1 (#6171)
- 695fada Fix DbCommand.CommandTimeout (#6175)
- eba7bf5 [PORT #6167] Improve error/exception message for misconfigured cluster provider (#6169)
See More
- d82cdc2 Eliminate
DefaultLogMessageFormatter
allocations (#6166) - c508e3e Update version numbers in spellcheck pipeline (#6165)
- b6c5e93 Logging Benchmarks (#6164)
- 04a24be Merge pull request #6162 from Aaronontheweb/backport-v1.4.44
- 43ba211 fixed API port issues and API approvals
- 2131146 make
DedicatedThreadPool.QueueUserWorkItem<T>
generic (#6156) - 18aae3b Reduce
FSM<TState, TData>
allocations (#6145) [ #2560 ] - e308e28 Make
Envelope
a reference type again (#6137) - ef186a4 added actor messaging pressure benchmark (#6147)
- 2032ff9 remove delegate allocation from
ForkJoinDispatcher
andDedicatedThreadPool
(#6143) - 7855518 close #2560 - added performance benchmarks for FSM (#6144)
- dbdc4e1 Added Dispatcher Benchmarks (#6140)
- 352d9a1 eliminate mailbox delegate allocations (#6134)
- 70c57df WIP queue benchmarks (#6127)
- bf543ff Fix unhandled RememberShards by DDataShardCoordinator (#6160)
- 6259295 Bump Microsoft.NET.Test.Sdk from 17.2.0 to 17.3.2 (#6155)
- dc616b9 Bump Tmds.ExecFunction from 0.5.0 to 0.6.0 (#6154)
- d683312 Block Xunit2 TestKit until unit test logger is ready (#6152)
- 6655d63 Bump Google.Protobuf from 3.21.1 to 3.21.7 (#6141)
- 21d8b3a Bump Microsoft.Data.SQLite from 6.0.4 to 6.0.9 (#6150)
- 9575f22 Bump FluentDateTime from 2.0.0 to 2.1.0 (#6151)
- 7780131 Bump Verify.Xunit from 17.1.4 to 17.10.2 (#6149)
- e5c7c16 Bump Swashbuckle.AspNetCore from 6.3.0 to 6.4.0 (#6148)
- 24d1d7f fix
Shard.LoadingEntityIdsFailed
log message (#6146) - 213ebb6 Bump XunitVersion from 2.4.1 to 2.4.2 (#6138)
- 425aef0 Bump Microsoft.Extensions.Hosting from 5.0.0 to 6.0.1 (#5605)
- dbfc802 Bump NUnit3TestAdapter from 4.1.0 to 4.2.1 (#6139)
- 5c224c4 Bump BenchmarkDotNet from 0.13.1 to 0.13.2 (#6130)
- c813d9e Bump Verify.DiffPlex from 1.2.0 to 1.3.0 (#6129)
- 5d6ae6a Bump LightningDB from 0.14.0 to 0.14.1 (#6128)
- a4bbd85 Bump Fsharp.Core from 6.0.1 to 6.0.6 (#6096)
- 507d3c8 1.5 Akka.Cluster.Sharding migration documentation (#6124) [ #6123 ]
- 8daa482 Allow
LogLevel
template to display milliseconds (#6126) - a04daec [Port #6120] Fix GetEntityLocation use wrong actor path (#6121)
- cc84ca5 [PORT #6111] cleaned up NuGet package descriptions (#6114)
- 6f298a6 made README.md NuGet-friendly (#6113)
- 8fcaaa4 cherry-picked from 231c8c9 (#6107)
- b0529e9 Update Linux AzDo to use
ubuntu-latest
(#6104) - daa2b9b Add graceful stop specs (#6103)
- 4c2f30e Remove the PatternMatch class (#6099)
- 46d02f9 Change TestKitBase.InitializeTest to virtual so it can be deferred (#6093) (#6095)
- 015de37 [Akka.TestKit] TestKitBase should take arbitrary ActorSystem without throwing (#6092)
- 3b4ed91 Require verbose logging for more gossip send/receive log statements. (#6089)
- a55cb9e regenerate all protobuf messages (#6082)
- e3511dc Extend DistributedData Replicator settings with VerboseDebugLogging switch (#6080)
- 79c7afc delete
AzCopy
from tools directory` (#6081) - eee47ac
AkkaPduCodec
serializer benchmark (#6078) - 3a90fe2 add BenchmarkDotNet results to
.gitignore
(#6079) - 1b96294 updated all copyright headers to 2022 (#6076)
- 95b3c31 added missing redirect for build documentation (#6075)
- 0228d5d [Remoting] Add spec for
Status.Failure
onAsk
operation (#6072) - b956e4b enabled
Directive.Resume
to log the fullException
(#6071) - c948581 Update RELEASE_NOTES.md for 1.5.0-alpha1 release (#6069)
- 9acaf00 Cluster singleton should consider Member AppVersion during hand over. (#6065)
- d55f67f [Cluster] Enable HeartbeatResponse message type (#6063)
- 899c3a2 Singleton class and settings based on current Akka Typed implementation (#6050)
- 207e7b8 [SBR] Ignore reachability records for invalid nodes (#6064)
- 9410a4c Tutorial improvements (#6057)
- 03de287 Fixes log and uses cluster sharding
LeaseSettings
, if configured, in ShardedDaemonProcess (#6058) - f571e26 Fix Streams.Tests.Dsl.MergeHub_must_work_with_long_streams_when_buffer_size_is_1 (#6054)
- 411c800 Fix faulty AddLogger in LoggingBus (#6028) (#6053)
- 6f28f17 migrate project chat from Gitter to Discord (#6052)
- b1eb688 Make JoinAsync and JoinSeedNodesAsync more robust by checking cluster UP status (#6033)
- 59cda86 Fix attempt, AsyncEnumerableSpec was hung (#6049)
- e9b643f Improve Akka.Actor.Cancelable (#6032)
- 0c92aac cleaned up
IAsyncEnumerable
Source to use local functions (#6045) - af513b0 Add IAsyncEnumerable Akka.Streams Source (#6044)
- 32040a3 Fix ClusterLogSpec, EventFilter does not play nice with Within (#6041)
- b21f5fa SSL Configuration Fails even EnbleSsl property is set to false (#6038)
- 4b667c6 harden
ClusterLogSpec
(#6031) - 0efdc18 Fix ClusterSpec CoordinatedShutdown (#6034)
- a626bd9 harden HubSpec duration (#6030)
- 0c9677f Add ValueTask support to PipeTo (#6025)
- 6839192 [Async TestKit] Convert Akka.Streams.Tests to async - Dsl.UnfoldResourceAsyncSourceSpec (#6023)
- 566a46c [Async TestKit] Fix racy specs (#6027)
- 6acea81 [Async TestKit] Convert Akka.Streams.Tests Dsl.TickSourceSpec (#6024)
- 7da2aa7 Added TimeBasedUuid offset (#5995)
- d16b934 Convert Akka.Streams.Tests to async - Extra.FlowTimedSpec (#5993)
- f3469d7 [Async TestKit] Fix WithinAsync and Remaining logic (#6010)
- b56ea0b Disabling GH NuGet nightly flow (#6021)
- 65edb0c Apply LocalFact and LocalTheory attributes to racy tests (#6012)
- 0a2162a Bump FsCheckVersion from 2.16.4 to 2.16.5 (#6008)
- 125a2a3 Add environment variable controlled skipable LocalFactAttribute (#6009)
- f46d845 Added GroupedWeightedWithin operator (#6000)
- 6c07c56 [Async TestKit] Convert Akka.Streams.Tests to async - FlowFlattenMergeSpec FlowGroupBySpec TimeoutsSpec (#5963)
- 5ca2166 Convert Akka.Streams.Tests to async - Actor.ActorSubscriberSpec (#5992)
- 64b8daa Bump Verify.Xunit from 16.5.4 to 17.1.4 (#6007)
- 6991066 Bump Microsoft.NET.Test.Sdk from 17.0.0 to 17.2.0 (#6005)
- 138d576 Bump Google.Protobuf from 3.19.4 to 3.21.1 (#6004)
- 9e64ca3 Remove MultiNodeTestRunner projects (#6002)
- 6e5dc1e Remove old Akka.DI dependency injection projects (#6003)
- e3be344 Port of #5999: Add Cluster.Sharding ActorInitializationException spec (#6001)
- 52dfcc1 Reset non-stream specs back on (#5994)
- 8f960ff [Async TestKit] Modernize TcpStage and TcpListener (#5989)
- f595f63 Convert Akka.Streams.Tests to async - Actor.ActorPublisherSpec (#5991)
- d8e62f6 Convert Akka.Streams.Tests to async - Dsl.LastSinkSpec (#5990)
- daa2491 Added missing
SourceWithContext.FromTuples
operator (#5987) - 6cd1b3a Started Akka.Cluster troubleshooting guide (#5983)
- e4af8f0 Update integration.md (#5985)
- 9c3aa67 [Async TestKit] Convert Akka.Cluster.Tests to async - ClusterSpec (#5984)
- 1032308 TcpTransport classs instead of DotNettyTransport class in hocon configuration (#5982)
- 420fd61 Removed generic constraint on type parameter in WatchTermination (#5981)
- 3413ef6 Fixes Sink.Ignore signature from Task to Task (#5973)
- a7c17e2 Backport #5976 - Fix sharding tolerant reader (#5978)
- 9063439 Convert Akka.Streams.Tests to async - Dsl.RestartSpec (#5955)
- 34c830a Trap all exception thrown while trying to dispatch messages in Akka.Remote.EndpointReader (#5972)
- 1f489fc Backport of #5965 - pass Akka.Cluster.Cluster into IDowningProvider directly (#5968)
- cfbdd5b Update logging.md (#5928)
- ce1b8ef feat: info about serilog context properties (#5964)
- a4a6fdd [Async TestKit] Convert Akka.Streams.Tests to async - Dsl.FlowCollectSpec (#5960)
- a3030ff Convert Akka.Streams.Tests to async - Dsl.FlowSpec (#5957)
- e9acd1f Fix broken images in NuGet.org readme (#5958)
- 3603cff Convert Akka.Streams.Tests to async - Dsl.FlowDelaySpec (#5956)
- 62adbcb update Incrementalist to 0.7.0 (#5959)
- 587354d Fix broken incrementalist, build script was targetting the wrong GitHub branch (#5961)
- ed62940 [PORT] akka/akka#24722: Bugfix in VirtualProcessor (#5950)
- 188984a Add
IThreadPoolWorkItem
support toThreadPoolDispatcher
(#5943) - f4aadaf [Async TestKit] Merge
feature/async_testkit
branch intodev
branch (#5953) [ #5660, #5662, #5665, #5672, #5664, #5666, #5668, #5669, #5542, #5676, #5678, #5683, #5685, #5682, #5698, #5701, #5704, #5703, #5716, #5721, #5718, #5745, #5755, #5754, #5753, #5752, #5756, #5757, #5758, #5759, #5761, #5762, #5760, #5764, #5770, #5765, #5767, #5763, #5768, #5766, #5771, #5772, #5769, #5773, #5774, #5775, #5776, #5777, #5778, #5780, #5781, #5782, #5793, #5783, #5784, #5785, #5786, #5787, #5788, #5789, #5791, #5795, #5790, #5794, #5797, #5796, #5798, #5799, #5800, #5801, #5803, #5804, #5807, #5806, #5809, #5810, #5811, #5812, #5813, #5814, #5815, #5825, #5826, #5827, #5828, #5829, #5830, #5831, #5832, #5833, #5713, #5851, #5853, #5852, #5858, #5864, #5865, #5868, #5869, #5870, #5871, #5872, #5876, #5877, #5879, #5880, #5884, #5885, #5892, #5891, #5900, #5886, #5887, #5888, #5893, #5889, #5905, #5890, #5904, #5898, #5899, #5894, #5896, #5901, #5906, #5907, #5909, #5911, #5910, #5912, #5913, #5915, #5914, #5919, #5918, #5923, #5924, #5925, #5916, #5937, #5933, #5938, #5939, #5936, #5940, #5934, #5917, #5932, #5935, #5954 ] - 0e948db [PORT] akka/akka#27266 - Propagate stream cancellation causes (#5949)
- 1893800 Rewrite actor ref sink as a graph stage (#5930)
- 3c7a8e4 Renamed method
SetHandler
accepting both callbacks toSetHandlers
(#5931) - e89287f added .NET 6 dual targeting to all assemblies (#5926)
- 6963557 enable
ChannelTaskScheduler
to work inside Akka.Cluster without causing errors inside/system
actors (#5861) (#5920) [ #5498 ] - c2460eb Fix typo in
akka.remote.dot-netty.ssl.certificate
(#5895) - 8b19302 Fix Source.ActorRef not completing (#5875)
- 924bb15 GroupBy fixes (#5874) [ #5867 ]
- c80c11c Update MNTR to 1.1.1 and update build script to suit (#5866)
- 9bbb68f fix sharding recovery (#5863)
- 8e7f021 cleaned up some allocations and styling (#5855)
- 9194549 Bump Swashbuckle.AspNetCore from 6.2.3 to 6.3.0 (#5848)
- 2cbdbcb Zbynek001 sharding update2 (#5857)
- 7b7e0ec change
dev
version number to 1.5-x (#5856)
This list of changes was auto generated.