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.21 final release notes #5095

Merged
merged 2 commits into from
Jun 16, 2021

Conversation

Aaronontheweb
Copy link
Member

1.4.21 June 16 2021

Maintenance Release for Akka.NET 1.4

Akka.NET v1.4.21 is a significant release that includes major performance improvements, bug fixes, and a major update to the Akka.DependencyInjection NuGet package.

Performance Improvements
Akka.NET v1.4.21 includes some major performance fixes and improvements:

Our observed performance numbers for Akka.Remote show a significant increase in performance for v1.4.21 over v1.4.20:

Before

PS> dotnet run -c Release --framework netcoreapp3.1      
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:                      109

Num clients, Total [msg], Msgs/sec, Total [ms]
         1,  200000,    113379,    1764.56
         5, 1000000,    186429,    5364.05
        10, 2000000,    185340,   10791.11
        15, 3000000,    183218,   16374.06
        20, 4000000,    179824,   22244.63
        25, 5000000,    182716,   27365.89
        30, 6000000,    182039,   32960.61

After

PS> dotnet run -c Release --framework netcoreapp3.1                
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,    109770,    1822.14                         
         5, 1000000,    192902,    5184.79                         
        10, 2000000,    191663,   10435.53                         
        15, 3000000,    191339,   15679.11                         
        20, 4000000,    192725,   20755.78                         
        25, 5000000,    189754,   26350.14                         
        30, 6000000,    189772,   31617.20                         

N.B. these after numbers don't benefit from the performance benefits we observed in v1.4.20 when we invoked ThreadPool.SetMinThreads(0,0), which makes them even more impressive.

Akka.DependencyInjection Updates
We had one major issue we implemented in v1.4.21 for Akka.DependencyInjection: Abstraction of ServiceProvider, Improving Akka.DependencyInjection

What this change did was:

  • Deprecate the Akka.DependencyInjection.ServiceProvider class in favor of the Akka.DependencyInjection.DependencyResolver class - to avoid namespace collision with Microsoft.Extensions.DependencyInjection.ServiceProvider;
  • Deprecates the Akka.DependencyInjection.ServiceProviderSetup class in favor of the Akka.DependencyInjection.DependencyResolverSetup class for consistency reasons;
  • Akka.DependencyInjection.DependencyResolver now takes an input of type IDependencyResolver, which allows users to abstract away the IServiceProvider and mock / replace it during unit testing; and
  • Added some non-generic Props methods for dynamically spawning actors via DI.

All of these changes are backwards-compatible with v1.4.20 and earlier - and the deprecation warnings will appear in your code when you upgrade. If you run into any issues upgrading to Akka.DependencyInjection v1.4.21 please reply on this thread!

Other Changes and Fixes

To see the full set of fixes in Akka.NET v1.4.21, please see the milestone on Github.

COMMITS LOC+ LOC- AUTHOR
5 34 24 Aaron Stannard
4 196 77 Gregorius Soedharmo
3 3 3 dependabot[bot]
1 2 2 Wessel Kranenborg
1 1 1 Martijn Schoemaker

@Aaronontheweb Aaronontheweb enabled auto-merge (squash) June 16, 2021 13:12
@Aaronontheweb Aaronontheweb merged commit 5c9f8a7 into akkadotnet:dev Jun 16, 2021
@Aaronontheweb Aaronontheweb deleted the releasenotes/v1.4.21 branch June 16, 2021 13:19
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.

1 participant