Orleans v3.1.0 Release Notes

Release Date: 2020-02-23 // about 4 years ago
  • Known issue:
    🚀 We discovered a partial backward compatibility regression in this release. If your application targets .NET Core 3.1, a rolling upgrade from previous versions to 3.1.0 will fail. See #6392 for more details. The regression is fixed in 3.1.3.

    👌 Improvements and bug fixes since 3.0.0.

    🚀 In this release we enabled multi-targeting, nestandard2.0 and netcoreapp3.1, for Microsoft.Orleans.Core, Microsoft.Orleans.OrleansRuntime, and Microsoft.Orleans.Connections.Security packages to leverage some performance features available in netcoreapp3.1.

    🚀 Microsoft.Orleans.OrleansCodeGenerator.Build package has been marked as deprecated in favor of Microsoft.Orleans.CodeGenerator.MSBuild. We don't plan future releases of Microsoft.Orleans.OrleansCodeGenerator.Build.

    Non-breaking improvements

    • Azure table grain storage inconsistent state on not found (#6071)
    • Removed silo status check before cleaing up system targets from… (#6072)
    • Do not include grain identifier in the ILogger category name (#6122)
    • Specify endpoint AddressFamily in Socket constructor (#6168)
    • Make IFatalErrorHandler public so that it can be replaced by users (#6170)
    • Initial cross-platform build unification (#6183)
    • Fix 'dotnet pack --no-build' (#6184)
    • Migrate 'src' subdirectory to new code generator (#6188)
    • Allow MayInterleaveAttribute on base grains. Fix for issue #6189 (#6192)
    • Multi-target Orleans sln and tests (#6190)
    • Serialization optimizations for .NET Core 3.1 (#6207)
    • Shorten ConcurrentPing_SiloToSilo (#6211)
    • Add OrleansDebuggerHelper.GetGrainInstance to aid in local debugging (#6221)
    • Improve logging and tracing, part 1 (#6226)
    • Mark IGatewayListProvider.IsUpdatable obsolete and avoid blocking refresh calls when possible (#6236)
    • Expose IClusterMembershipService publicly (#6243)
    • Minor perf tweak for RequestContext when removing last item (#6216)
    • Change duplicate activation to a debug-level message (#6246)
    • Add support Microsoft.Data.SqlClient provider, fix #6229 (#6238)
    • TestCluster: support configurators for IHostBuilder & ISiloBuilder (#6250)
    • Adds MySqlConnector library using invariant MySql.Data.MySqlConnector (#6251)
    • Expose exception when initializing PerfCounterEnvironmentStatistics (#6260)
    • Minor serialization perf improvements for .NET Core (#6212)
    • Multi-target TLS connection middleware to netcoreapp3.1 and netstandard2.0 (#6154)
    • Fix codegen incremental rebuild (#6258)
    • CodeGen: combine cache file with args file and fix incremental rebuild (#6266)
    • Avoid performing a lookup when getting WorkItemGroup for SchedulingContext (#6265)
    • Membership: require a minimum grace period during ungraceful shutdown (#6267)
    • Provide exception to FailFast in FatalErrorHandler (#6272)
    • Added support for PAY_PER_REQUEST BillingMode (#6268)
    • Use RegionEndpoint.GetBySystemName() to resolve AWS region (#6269)
    • Support Grain Persistency TTL On dynamo DB (#6275, #6287)
    • Replaced throwing Exception to Logger.LogWarning (#6286)
    • Added ability to skip client TLS authentication. (#6302)
    • Use current element for SimpleQueueCacheCursor.Element (#6299)
    • Manual stats dump #6310 (#6311)
    • Fix SQL Server connection string (#6320)
    • Don't set ServiceUrl when region is provided. (#6327)
    • Explicit setting for UseProvisionedThroughput (#6328)
    • Add explicit references to System.Diagnostics.EventLog and System.Security.Cryptography.Cng to fix build warnings. (#6329)
    • Change NETSTANDARD2_1 preprocessor directives to NETCOREAPP (#6332)

    - Implement CleanupDefunctSiloEntries for DynamoDB membership provider (#6333)

    🛠 Non-breaking bug fixes

    • Consul: support extended membership protocol (#6095)
    • Fix routing of gateway count changed events to registered servi… (#6102)
    • Allow negative values in TypeCodeAttribute. Fixes #6114 (#6127)
    • DynamoDB: support extended membership protocol (#6126)
    • Redact logged connection string in ADO storage provider during init (#6139)
    • Fixed CodeGenerator.MSBuild cannot ResolveAssembly in .NetCore 3.0 (#6143)
    • CodeGen: fix ambiguous reference to Orleans namespace (#6171)
    • Avoid potential NullReferenceException when re-initializing statistics (#6179)
    • Close ConnectionManager later in shutdown stage (#6217)
    • Avoid capturing ExecutionContext in GrainTimer and other timers (#6234)
    • Fix code gen for ValueTask (#6285)
    • Add missing dependency to Orleans.CodeGenerator (#6297)
    • Add System.Threading.Tasks.Extensions dependency to Abstractions (#6301)
    • Propagate TestClusterOptions.GatewayPerSilo value in TestClusterOptions.ToDictionary() (#6326)
    • Avoid registering Gateway in DI since it can be null (#6312)