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.27 Release #5305

Merged
merged 7 commits into from
Oct 11, 2021
Merged

v1.4.27 Release #5305

merged 7 commits into from
Oct 11, 2021

Conversation

Aaronontheweb
Copy link
Member

1.4.27 October 11 2021

Maintenance Release for Akka.NET 1.4
Akka.NET v1.4.27 is a small release that contains some major performance improvements for Akka.Remote.

Performance Fixes
In RemoteActorRefProvider address paring, caching and resolving improvements Akka.NET contributor @Zetanova introduced some major changes that make the entire ActorPath class much more reusable and more parse-efficient.

Our last major round of Akka.NET performance improvements in Akka.NET v1.4.25 produced the following:

OSVersion:                         Microsoft Windows NT 6.2.9200.0
ProcessorCount:                    16
ClockSpeed:                        0 MHZ
Actor Count:                       32
Messages sent/received per client: 200000  (2e5)
Is Server GC:                      True
Thread count:                      111

Num clients, Total [msg], Msgs/sec, Total [ms]
         1,  200000,    130634,    1531.54
         5, 1000000,    246975,    4049.20
        10, 2000000,    244499,    8180.16
        15, 3000000,    244978,   12246.39
        20, 4000000,    245159,   16316.37
        25, 5000000,    243333,   20548.09
        30, 6000000,    241644,   24830.55

In Akka.NET v1.4.27 those numbers now look like:

OSVersion:                         Microsoft Windows NT 6.2.9200.
ProcessorCount:                    16                            
ClockSpeed:                        0 MHZ                         
Actor Count:                       32                            
Messages sent/received per client: 200000  (2e5)                 
Is Server GC:                      True                          
Thread count:                      111                           
                                                                 
Num clients, Total [msg], Msgs/sec, Total [ms]                   
         1,  200000,    105043,    1904.29                       
         5, 1000000,    255494,    3914.73                       
        10, 2000000,    291843,    6853.30                       
        15, 3000000,    291291,   10299.75                       
        20, 4000000,    286513,   13961.68                       
        25, 5000000,    292569,   17090.64                       
        30, 6000000,    281492,   21315.35

To put these numbers in comparison, here's what Akka.NET's performance looked like as of v1.4.0:

Num clients (actors)    Total [msg] Msgs/sec    Total [ms]
1   200000  69736   2868.60
5   1000000 141243  7080.98
10  2000000 136771  14623.27
15  3000000 38190   78556.49
20  4000000 32401   123454.60
25  5000000 33341   149967.08
30  6000000 126093  47584.92

We've made Akka.Remote consistently faster, more predictable, and reduced total memory consumption significantly in the process.

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

COMMITS LOC+ LOC- AUTHOR
3 89 8 Aaron Stannard
1 856 519 Andreas Dirnberger
1 3 4 Vadym Artemchuk
1 261 233 Gregorius Soedharmo
1 1 1 dependabot[bot]

Aaronontheweb and others added 7 commits September 29, 2021 10:00
about routee selection algorithm

Co-authored-by: Aaron Stannard <aaron@petabridge.com>
…nts (#5273)

* refactor remote-actorref-provider and add tests for cache entries

* replace address-cache with actorpath-cache

* refactor resolve with local address

* refactor and cleanup

* remove volatile from fields

* remove double equals

* optimize elements list

* improve actor path join

* improve actor path equals and compare

Co-authored-by: Aaron Stannard <aaron@petabridge.com>
Looking for a way to help trace timeouts inside `Ask<T>` operations - needed some way to tap into the `TaskCompletionSource` and to create an active `ISpan` before the operation begins.
Bumps [Hyperion](https://github.com/akkadotnet/Hyperion) from 0.11.1 to 0.11.2.
- [Release notes](https://github.com/akkadotnet/Hyperion/releases)
- [Changelog](https://github.com/akkadotnet/Hyperion/blob/dev/RELEASE_NOTES.md)
- [Commits](akkadotnet/Hyperion@0.11.1...0.11.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>
* added Akka.NET 1.4.27 release notes
@Aaronontheweb Aaronontheweb merged commit 193c74e into master Oct 11, 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.

4 participants