Microsoft has released the latest version of Orleans, with several significant improvements related to performance, support, and more.
Orleans is a framework used to build distributed and high-scale applications in .NET, without having to learn and apply difficult scaling patterns and concurrency.
Orleans 2.1, the latest release, features a new code generator, scheduler, support for distributed transaction, functionality to co-host scenarios, and minute bug fixes and improvements.
New scheduler is said to be the most significant improvements in the Orleans 2.1.
Using work stealing queues with local queue affinity, the new scheduler will decrease the contention and enhance throughput and latency. Microsoft claimed that it experienced up to 30% higher throughput during testing.
It will also benefit co-hosting scenarios, and enhance CPU profiling experience by exhibiting lower CPU usage during low-load periods.
When Orleans 2.0 was released, it featured support for distributed transactions. Now it is becoming a release candidate quality in v2.1. It will be declared production ready in a subsequent release, following another round of testing and improvements.
“Orleans originated from Microsoft Research and we continue to partner with MSR and product teams to bring features such as scalable distributed transactions into production,” wrote Microsoft in a blog post.
The new code generator uses Roslyn to analyze code, so that the loading of application binaries can be avoided. This will also help in removing the issues which are caused by clashing dependency versions and multiple versions of .NET Core SDK.
Developers can use the new code generation package (Microsoft.Orleans.CodeGenerator.MSBuild) as an alternative to existing one (Microsoft.Orleans.OrleansCodeGenerator.Build).
Aim of the new code generator is to shorten the build times, by improving support for incremental builds.
Another new feature coming with Orleans 2.1 is direct client, that will allow co-hosting a client. It will let the clients communicate more efficiently, not only with the silo it is attached to but also with the entire cluster.
Orleans 2.1 is backward compatible with 2.0 release, allowing in-place upgrade of a running cluster.