Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v1.4.22 Release #5170

Merged
merged 40 commits into from
Aug 5, 2021
Merged

v1.4.22 Release #5170

merged 40 commits into from
Aug 5, 2021

Conversation

Aaronontheweb
Copy link
Member

1.4.22 August 05 2021

Maintenance Release for Akka.NET 1.4

Akka.NET v1.4.22 is a fairly large release that includes an assortment of performance and bug fixes.

Performance Fixes
Akka.NET v1.4.22 includes a significant performance improvement for Ask<T>, which now requires 1 internal await operation instead of 3:

Before

Method Iterations Mean Error StdDev Gen 0 Gen 1 Gen 2 Allocated
RequestResponseActorSelection 10000 83.313 ms 0.7553 ms 0.7065 ms 4666.6667 - - 19 MB
CreateActorSelection 10000 5.572 ms 0.1066 ms 0.1140 ms 953.1250 - - 4 MB

After

Method Iterations Mean Error StdDev Gen 0 Gen 1 Gen 2 Allocated
RequestResponseActorSelection 10000 71.216 ms 0.9885 ms 0.9246 ms 4285.7143 - - 17 MB
CreateActorSelection 10000 5.462 ms 0.0495 ms 0.0439 ms 953.1250 - - 4 MB

Bug Fixes and Improvements

You can see the full set of changes introduced in Akka.NET v1.4.22 here

Akka.Cluster.Sharding.RepairTool
In addition to the work done on Akka.NET itself, we've also created a separate tool for cleaning up any left-over data in the event of an Akka.Cluster.Sharding cluster running with akka.cluster.sharding.state-store-mode=persistence was terminated abruptly before it had a chance to cleanup.

We've added documentation to the Akka.NET website that explains how to use this tool here: https://getakka.net/articles/clustering/cluster-sharding.html#cleaning-up-akkapersistence-shard-state

And the tool itself has documentation here: https://github.com/petabridge/Akka.Cluster.Sharding.RepairTool

COMMITS LOC+ LOC- AUTHOR
16 1254 160 Gregorius Soedharmo
7 104 83 Aaron Stannard
5 8 8 dependabot[bot]
4 876 302 Ismael Hamed
2 3942 716 zbynek001
2 17 3 Andreas Dirnberger
1 187 2 andyfurnival
1 110 5 Igor Fedchenko

Aaronontheweb and others added 30 commits June 16, 2021 16:46
* Use ranged nuget versioning for Newtonsoft.Json

* Raise minimum version to 12.0.3

Co-authored-by: Aaron Stannard <aaron@petabridge.com>
* Update and clean up DilatedTests

* Account for weird case where a 4000 ms timeout emitted at 3999 ms

Co-authored-by: Aaron Stannard <aaron@petabridge.com>
)

Co-authored-by: Aaron Stannard <aaron@petabridge.com>
* Update and clean up DilatedTests

* Account for weird case where a 4000 ms timeout emitted at 3999 ms

* Make ReceiveWhile and ReceiveWithin more generic

* Fix FlowThrottleSpec

Co-authored-by: Aaron Stannard <aaron@petabridge.com>
* Mark OutputStreamSource as racy

* Fix AllTestForEventFilterBase

* Fix BackoffSupervisorSpec
Co-authored-by: Aaron Stannard <aaron@petabridge.com>
…e budgets (#5108)

Co-authored-by: Aaron Stannard <aaron@petabridge.com>
Remote Messages with a sender set to ActorRefs.NoSender should return true for IsNobody()

Co-authored-by: Aaron Stannard <aaron@petabridge.com>
Bumps [Hyperion](https://github.com/akkadotnet/Hyperion) from 0.10.1 to 0.10.2.
- [Release notes](https://github.com/akkadotnet/Hyperion/releases)
- [Changelog](https://github.com/akkadotnet/Hyperion/blob/dev/RELEASE_NOTES.md)
- [Commits](akkadotnet/Hyperion@0.10.1...0.10.2)

---
updated-dependencies:
- dependency-name: Hyperion
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [Google.Protobuf](https://github.com/protocolbuffers/protobuf) from 3.17.2 to 3.17.3.
- [Release notes](https://github.com/protocolbuffers/protobuf/releases)
- [Changelog](https://github.com/protocolbuffers/protobuf/blob/master/generate_changelog.py)
- [Commits](protocolbuffers/protobuf@v3.17.2...v3.17.3)

---
updated-dependencies:
- dependency-name: Google.Protobuf
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…failed payload (#5120)

* `MessageContainerSerializer` reports on serializerId and manifest of failed payload

* updated BugFix5062Spec
* Add serialization spec

* Fix missing serialization mapping
…#5133)

* Change references to MyGet in the documentation

* Update getting-access-to-nightly-builds.md

Co-authored-by: Aaron Stannard <aaron@petabridge.com>
…5132)

* close #5130 - include attempted bind address in binding failure messages

* forgot to add semicolon

* added inner exception back

* added note about InnerException containing descriptive socket error
* Added failing reproduction spec

* Simplified the spec

* Minor spec refactoring

* First and not clean fix implementation

* Need to not touch public API

* Fix cleanup

* Keep changes located in TestSuite, do not touch ActorTaskScheduler implementation

* Fixed API approvals

* Update CoreAPISpec.ApproveCore.approved.txt

Co-authored-by: Aaron Stannard <aaron@petabridge.com>
Canceled Task will have null as tresult.Exception.
The error handler need have a TaskCanceledException instance to indicate the cancellation.

Co-authored-by: Aaron Stannard <aaron@petabridge.com>
* Akka.Cluster.Sharding should not use Hyperion serializer

* Add GetCurrentRegions and CurrentRegions serialization code

* Add serializer for GetShardRegionState and CurrentShardRegionState

* Update API approover list

* Add marker interface

* Update API approover list
* Configurable stream restart deadline

* Update documentation and code snippets
#5129 (#5143)

* Wrapped DistributedData in a Backoff supervisor, so temporary durable store failures don't require a full system restart to recover.
Fixed a slightly annoying missing end bracket in ddata logs for GSet

* Removed address from ActorSelection in test

Co-authored-by: Andy Furnival <andy.furnival@sharpgaming.com>
Co-authored-by: Aaron Stannard <aaron@petabridge.com>
…5145)

* Add hocon setting flag for DData replicator restart

* Fix spec to apply new HOCON setting

* Update API approover list

* Add replicator settings spec

* Add default setting spec

* Make sure that exceptions are found, even when it is buried inside AggregateException or in InnerException

* Revert exception check, was not the original problem

* Use AwaitAssert to make sure that durable store actor is created

* Replicator and storage terminated message can arrive out of order.
* Reworked `Ask<T>` to allocate fewer objects, `await` less

* fixed other compilation errors

* cleaned up AskSpec

* inlined `SynchronizationContextManager`

does the same thing we did before, minus one `await` operation and a delegate allocation

* remove final `await` and delegate allocations

* approved new public API

* cleaned up

Co-authored-by: Gregorius Soedharmo <arkatufus@yahoo.com>
…5158)

* Add surrogate support to HOCON parser and HyperionSerializerSetup

* Add spec

* Add documentation

* Add documentation comment in the reference HOCON file

* Fix spec to make sure that surrogate classes were being used

* Remove obsolete attributes
zbynek001 and others added 10 commits August 2, 2021 18:54
* New ReadMajorityPlus and WriteMajorityPlus, Possibility to prefer oldest in ddata writes and reads (partially migrated from akka/akka#28895)

* racy test fix

* cleanup

Co-authored-by: Aaron Stannard <aaron@petabridge.com>
* configuration for SBR lease release (migrated from akka/akka#30092)

* Simplified reverse in lease majority (migrated from akka/akka#30155)

* shared TestLease objects moved to Akka.Coordination.Tests

* Gossip verbose log fix

* SBR fix

* SBR missing multinode tests added

* lease test fix
Bumps [Microsoft.Data.SQLite](https://github.com/dotnet/efcore) from 5.0.7 to 5.0.8.
- [Release notes](https://github.com/dotnet/efcore/releases)
- [Commits](dotnet/efcore@v5.0.7...v5.0.8)

---
updated-dependencies:
- dependency-name: Microsoft.Data.SQLite
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
)

Bumps [Microsoft.Extensions.DependencyInjection](https://github.com/dotnet/runtime) from 5.0.1 to 5.0.2.
- [Release notes](https://github.com/dotnet/runtime/releases)
- [Commits](dotnet/runtime@v5.0.1...v5.0.2)

---
updated-dependencies:
- dependency-name: Microsoft.Extensions.DependencyInjection
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [Fsharp.Core](https://github.com/dotnet/fsharp) from 5.0.1 to 5.0.2.
- [Release notes](https://github.com/dotnet/fsharp/releases)
- [Changelog](https://github.com/dotnet/fsharp/blob/main/release-notes.md)
- [Commits](https://github.com/dotnet/fsharp/commits)

---
updated-dependencies:
- dependency-name: Fsharp.Core
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…epairTool (#5168)

* Link to https://github.com/petabridge/Akka.Cluster.Sharding.RepairTool
* Add section on what happens if your Akka.Cluster.Sharding persistence data gets corrupted
* Update outdated documentation on creating proper PersistentIds while using Cluster.Sharding
@Aaronontheweb Aaronontheweb merged commit b1e85d7 into master Aug 5, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

7 participants