github dotnet/orleans v1.5.0

latest releases: v8.1.0-preview3, v7.2.6, v8.1.0-preview2...
6 years ago

Major new features

  • Non-static grain client via ClientBuilder enables connecting to multiple Orleans cluster from the same app domain and connecting to other clusters from within a silo.
  • Support for versioning of grain interfaces for non-downtime upgrades.
  • Support for custom grain placement strategies and directors.
  • Support for hash-based grain placement.

Changelog (1.5.0, 1.5.0-beta, and 1.5.0-rc)

  • Breaking changes

    • Bug fix: Azure storage providers now throw InconsistenStateException instead of StorageException when eTags do not match #2971
    • Automatically deactivate a grain if it bubbles up InconsistentStateException (thrown when there is an optimistic concurrency conflict when writing to storage) #2959
    • Upgraded minimum framework dependency to .NET 4.6.1 #2945
    • Support for non-static client via ClientBuilder (although static GrainClient still works but will be removed in a future version). You can now start many clients in the same process, even if you are inside a Silo #2822.
      There are a few differences though:
      • Several changes to SerializationManager, mainly to make it non-static #2592
    • Better serialization of Type values (but can cause compatibility issues if these were persisted by using the Serialziation Manager) #2952
    • Providers are now constructed using Dependency Injection. The result is that custom providers must have a single public constructor with either no arguments or arguments which can all be injected, or they need to be explicitly registered in the ServiceCollection. #2721 #2980
    • Replaced CacheSizeInMb setting with DataMaxAgeInCache and DataMinTimeInCache in stream providers #3126
    • Renamed the Catalog.Activation.DuplicateActivations counter to Catalog.Activation.ConcurrentRegistrationAttempts to more accurately reflect what it tracks and its benign nature #3130
    • Change default stream subscription faulting to false in EventHub and Memory stream providers, as is in other providers #2974
    • Allow IGrainWithGuidCompoundKey as implicit subscription grain, and sets the stream namespace as the grain key extension (subtle breaking change: previous to 1.5 IGrainWithGuidCompoundKey wasn't technically supported, but if you did use it, the grain key extension would have had a null string) #3011
    • The static GrainReference.FromKeyString method is no longer accessible, it has been replaced with IGrainReferenceConverter.GetGrainFromKeyString, which is accessible from the IServiceProvider.
  • Non-breaking improvements

    • Support for custom placement strategies and directors #2932
    • Grain interface versioning to enable no-downtime upgrades #2837 2837 #3055
    • Expose available versions information in placement context #3136
    • Add support for hash-based grain placement #2944
    • Support fire and forget one-way grain calls using [OneWay] method attribute #2993
    • Replace CallContext.LogicalSetData with AsyncLocal #2200 #2961
    • Support multiple silo request interceptors #3083
    • Ability to configure FabricClient when deploying to Service Fabric #2954
    • Added extension points to EventHubAdapterFactory #2930
    • Added SlowConsumingPressureMonitor for EventHub streams #2873
    • Dispose all registered services in the container when shutting down #2876
    • Try to prevent port collisions when starting in-memory TestCluster #2779
    • Deprecated TestingSiloHost in favor of TestCluster (although the former is still available for this version) #2919
    • Support exceptions with reference cycles in ILBasedExceptionSerializer #2999
    • Add extensibility point to replace the grain activator and finalizer #3002
    • Add statistics to EventHub stream provider ecosystem
    • Add flag to disable FastKill on CTRL-C #3109
    • Avoid benign DuplicateActivationException from showing up in the logs #3130
    • Programmable stream subscribe API #2741 #2796 #2909
    • Allow complex streaming filters in ImplicitStreamSubscriptionAttribute #2988
    • Make StreamQueueBalancer pluggable #3152
    • ServiceFabric: Register ISiloStatusOracle implementation in ServiceCollection #3160
  • Non-breaking bug fixes

    • Improve resiliency in stream PubSub when facing ungraceful shutdown of producers and silos #3003 #3128
    • Fixes to local IP address resolution #3069
    • Fixed a few issues with the Service Fabric membership provider #3059 #3061 #3128
    • Use PostgreSQL synchronous API to avoid locking in DB thread with newer versions of Npgsql #3164
    • Fix race condition on cancelling of GrainCancellationTokenSource #3168
    • Fixes and improvements for the Event Hub stream provider #3014 #3096 #3041 #3052 #2989
    • Fix NullReferenceException when no LogConsistencyProvider attribute is provided #3158
    • Several minor bug fixes and perf improvements, as well as reliability in our test code

Don't miss a new orleans release

NewReleases is sending notifications on new releases.