Releases: dotnet/orleans
v2.0.5
v2.1.0-beta1
-
Major changes
-
Breaking changes
- None
-
Non-breaking improvements
- Test clustering: minor fixups (#4342)
- TestCluster: wait for cluster stabilization before starting tests (#4343)
- Avoid continuation in synchronous case (#4422)
- Improve Dictionary allocation in RequestContext (#4435)
- Copy elements in-place in InvokeMethodAsync (#4463)
- Azure blob storage provider: respect UseJson setting (#4455)
- Fix orleans integration with third party DI solution which requires public constructor (#4453)
- Remove unused Stopwatch in Grain.OnSetupState (#4403) (#4472)
- Add validator for ClusterOptions (#4450)
- Non-static statistics: Round 1 (#4515)
- Remove saving of minidumps because that functionality is platform specific. (#4558)
- Fix Dependency Injection without changing Abstractions project (#4573)
- Sanitize "." from azure queue name (#4582)
- Add Client/SiloHost builder delegate to legacy GrainClient and Silo/AzureSilo (#4552)
- Support of ValueTask as a grain method return type (#4562)
- Convert IMembershipTableGrain into a SystemTarget (#4479)
- Convert counter values before calling ITelemetryProducer.TrackMetric (#4623)
- Optimize removing consumed buffers from read buffer (#4629)
- Remove unused settings MaxPendingWorkItemsHardLimit in SchedulingOptions (#4672)
- Udpate reference links in sql files (#4684)
- Use netcoreapp2.0 for msbuild target dll if using dotnet core msbuild but targeting full .net (#4689)
- Make AzureBasedReminderTable public to allow reuse in extensions (#4699)
- Remove per-call timer (#4399)
- Make LifecycleSubject logging less verbose (#4660)
- Do not use ip address from interface not operational (#4713)
- Updated Ignore(this Task) method (#4729)
- Make azure queue name configurable (#4762)
- Auto-installing grain extensions (#4815)
- Allow implicit subscription attribute to be inheritable (#4824)
- Do not place stateless worker locally if the silo is stopping (#4853)
- When deactivating a grain, do not stop timers if there are running requests (#4830)
- No default grains storage added to container if one is not configured. (#4861)
- Revisit silo stop/shutdown timeout (#4875)
- Add timeout mechanism for grain deactivation (#4883)
-
Non-breaking bug fixes
- Fix telemetry consumer construction (#4392)
- Fix client connection retry (#4429)
- Fix routing in Silo Gateway (#4483)
- Don't generate serializers for foreign types in Orleans.Streaming.EventHubs (#4487)
- Fix NRE on AWS DynamoDB storage provider. #4482 (#4513)
- Fix Exception thrown in MembershipOracle.TryToSuspectOrKill (#4508)
- Fix logging level check on Grain exception (#451
- Assign Issue property in RecordedConnectionIssue.Record(...) (#4598)
- Fix (or workaround?) for codegen using netcore/netstandard 2.1 (#4673)
- Don't enforce reentrancy for one way requests (#4382)
- Cleanup Reminders PartitionKey (#4749)
- Fix NullReferenceException in ExecutingWorkItemsTracker (#4850)
- Fix NullReferenceException in LocalGrainDirectory when trace logging is enabled (#4854)
- Fix dependency injection cycle when OrleansJsonSerializer is used as a serialization provider (#4876)
v2.0.4
Improvements and bug fixes since 2.0.3.
- Non-breaking bug fixes
- Workaround for CoreFx/#30781 when running on .NET Core (#4736)
- Fix for .NET Core 2.1 build-time code generation (#4673)
v1.5.4
Improvements and bug fixes since 1.5.3.
- Non-breaking bug fixes
- Non-breaking improvements
v2.0.3
This is a first patch release with a partial build -- only 9 NuGet packages got updated:
- Microsoft.Orleans.OrleansRuntime
- Microsoft.Orleans.OrleansServiceBus
- Microsoft.Orleans.Runtime.Legacy
- Microsoft.Orleans.OrleansCodeGenerator.Build
- Microsoft.Orleans.Core.Legacy
- Microsoft.Orleans.Transactions
- Microsoft.Orleans.OrleansCodeGenerator
- Microsoft.Orleans.Core
- Microsoft.Orleans.TestingHost
The rest of the packages stayed unchanged at 2.0.0, except for the
Microsoft.Orleans.ServiceFabric meta-package which is at 2.0.2.
-
Non-breaking improvements
- Test clustering: minor fixups (#4342)
- TestCluster: wait for cluster stabilization before starting tests (#4343)
- Avoid continuation in synchronous case (#4422)
- Improve Dictionary allocation in RequestContext (#4435)
- Copy elements in-place in InvokeMethodAsync (#4463)
- Fix orleans integration with third party DI solution which requires public constructor (#4453, #4573)
- Remove unused Stopwatch in Grain.OnSetupState (#4472)
- Increase diagnostic logging in code generator (#4481)
- Clarify UseDevelopmentClustering and UseLocalhostClustering (#4438)
-
Non-breaking bug fixes
- fix telemetry consumer construction (#4392)
- Fix client connection retry (#4429)
- Azure blob storage provider: respect UseJson setting (#4455)
- Fix routing in Silo Gateway (#4483)
- Don't generate serializers for foreign types in Orleans.Streaming.EventHubs (#4487)
- Fix NRE on AWS DynamoDB storage provider. (#4513)
- Fix Exception thrown in MembershipOracle.TryToSuspectOrKill (#4508)
- Fix logging level check on Grain exception (#4511)
- Add validator for ClusterOptions (#4450)
- Remove saving of minidumps because that functionality is platform specific. (#4558)
v2.0.0
v2.0.0 is the first major release of Orleans since it went open source. There is a number of major changes and improvements in it. Please refer to the documentation for more details.
Changes since 2.0.0-rc2
-
Major changes
- All included providers obtain ServiceId and ClusterId from the global ClusterOptions and do not have those properties on their own options classes (#4235, #4277, 4290). More details in the migration guide.
- Use string for ServiceId instead of Guid (#4262)
-
Breaking changes
-
Non-breaking improvements
- Add serialization methods to RulesViolationException (#4215)
- CodeGen: only filter out generated types where the generator is Orleans (#4249)
- Add simple retry functionality to IClusterClient.Connect(...) (#4161)
- Grain call filters: add distinction between InterfaceMethod and ImplementationMethod (#4216)
- Improves ADO.NET script finding by moving them to project directory (#4243)
- protobuf-net serializer (#4170)
- Improve startup time for localhost cluster. (#4245)
- Client typemap refresh (#4257)
- Conditionally include @(Compile) cache file (#4258)
- Enable SystemTarget routing in the Gateway (#4254)
- Add config option to override MessagingOptions.ResponseTimeout when the debugger is attached (#4193, #4307)
- Remove [Obsolete] attributes from most legacy types (#4255)
- Orleans.TestingHost: support for .NET Standard (#4223)
- Add validation for pubsubstore when using persistent streams (#4273)
- Clean up EH checkpointing (#4271)
- Improve error message when attempting to use reminders without configuring a reminder table (#4287)
- Ported log consistency providers from IProvider. (#4292)
- Remove inconsistent sub builder pattern in streaming (#4289)
- DynamoDB transaction log (#4056)
-
Non-breaking bug fixes
- PerfCounterEnvironmentStatistics never reports CpuUsage (#4219)
- Fix ADO.NET Reminder configuration & re-enable tests (#4214)
- Register SiloClusteringValidator later so other validator will be called before (#4211)
- Fixes for Multi-Cluster Support (#3974)
- Change SQL parameter casing for Turkish parameter binding support on ODP .Net Managed (#4246)
- Fix race condition (#4269)
- Lease based queue balancer fixes (#4267)
- Fixed bug in custom storage log consistency provider factory. (#4323)
v2.0.0-rc2
- Know Issue
If you are using the ADO.NET provider for reminders, there is a bug in the configuration extension methodUseAdoNetReminderService
that prevents it from working properly. The workaround is to explicitly configure the settings as in the following example:
.UseAdoNetReminderService((AdoNetReminderTableOptions options) => { })
.Configure<AdoNetReminderTableOptions>(options =>
{
options.ConnectionString = ConnectionString;
options.Invariant = "System.Data.SqlClient";
})
-
Major changes (since 2.0.0-rc1)
- A new "facade" API for easier configuration of various aspects of stream providers: Persistent stream configurators (#4164)
-
Breaking changes
-
Non-breaking improvements
- Improve usability of dev cluster (#4090)
- Extensions should add their own application parts (#4091)
- Moved IStartupTask to Runtime.Abstractions package. Address #4106 (#4108)
- Improve configuration validators for ADO.NET configuration (#4097)
- In ActivationCountPlacementDirector, place locally if the cache is not populated yet (#4130)
- Improve usability of custom grain placement configuration (#4102)
- Remove legacy configuration requirement from Service Fabric hosting (#4138)
- Fix #4123: use List instead of IList in StaticGatewayListProviderOptions (#4147)
- Support treating all descendants of a base class as [Serializable] (#4133)
- Improve how grain services are registered (#4155)
- Do not call ResolveIPAddress in EndpointOptions constructor (#4171)
- When the silo shutdown, deactivate grain activations at an earlier stage (#4177)
- Improved transparancy and timing of silo lifecycle. (#4175)
- Set GrainService.Status to Started in the base implementation of StartInBackground(). (#4180)
- Validate that a ClusterId has been specified (#4160)
-
Non-breaking bug fixes
v2.0.0-rc1
-
Major changes (since 2.0.0-beta3)
- New provider lifecycle model to replace the old one (#3738, #3887, #3946, #3927, #4000, #4026, #4022, #4045, #4031, #4047, #4063, #4042, #4064, #4066, #4067, )
- Builder pattern and options-based configuration of components and extensions (#3897, #3900, #3878, #3901, #3947, #3972, #3977, #3948, #3963, #3981, #4020, #4025, #4024, #4030, #4035, #4029, #4022, #4031, #4049, #4064, #4066, #4070, #4067, #4074)
-
Known issues
- AddMemoryGrainStorage() and AddMemoryGrainStorageAsDefault() do not ensure that
OrleansProviders.dll
is added and inspected for grain types. In a non-default case, when silo configuration code explicitly adds application assemblies (viaConfigureApplicationParts
) but doesn't includeOrleansProviders.dll
in the list, the memory grain storage provider will not function. The workaround is to addOrleansProviders.dll
to the list viaConfigureApplicationParts
. The default case, whenConfigureApplicationParts
isn't explicitly called and all assemblies in the silo folder are scanned, works as expeted.
- AddMemoryGrainStorage() and AddMemoryGrainStorageAsDefault() do not ensure that
-
Breaking changes
- Allow reentrancy within a grain call chain (#3185, #3958). Enabled by default.
- Move legacy logging methods to legacy package (#3808)
- Rename "SQL" to "AdoNet" everywhere (#3990)
- Move ObserverSubscriptionManager to legacy (#3999)
- Remove metrics publishers (#3988)
- Make most methods of Grain class non-virtual. (#4004)
- Refactor EndpointOptions to allow listening on an address that is different from the externally reachable address (#4005)
- Remove statistics table publishers (#4023)
- Add startup tasks to replace deprecated bootstrap providers (#4026)
- Remove FastKillOnCancel setting, add ProcessExitHandlingOptions (#4036)
- Configure default application parts if no assemblies have been added (#4058)
-
Non-breaking improvements
- Add processing time measure on silo start up sequence and code gen (#3788)
- Make buffer size bounded when reading connection preamble (#3818)
- Make UnObservedExceptionHandler optional (#3829)
- Display GrainId/type of SystemGrain and SystemTarget in GrainId.ToStringImpl (#3849)
- Disable debug context usage (#3861)
- Allow for null access/secret for EC2 provisioned credentials. (#3870)
- Bring back PerfCounterEnvironmentStatistics (#3891)
- Expose RequestContextData in PlacementTarget (#3899)
- Mark all created threads as background & name all threads (#3902)
- Remove Newtonsoft.JSON dependency from core abstractions (#3926)
- Update Service Fabric to support .NET Standard (#3931)
- Dispose InboundMessageQueue during MessageCenter disposal (#3938)
- Removed uncessesary lock in LocalGrainDirectory (#3961)
- Add exception msg to WithTimeout method. Refactor MembershipTableFactory (#3962)
- Allow OrleansJsonSerializer to be used as an external serialization provider (#3960)
- Sanitize azure queue name (#4001)
- Outgoing grain call filters (#3842)
-
Non-breaking bug fixes
- Fix read lock on FileLogger & FileLogConsumer. and switch to UTF8 (#3856)
- Return the Cluster GrainInterfaceMap instead of the local one in InsideRuntimeClient (#3875)
- Remove locks in LoadedProviderTypeLoaders and ProviderTypeLoader that appear unnecessary and caused occasional deadlocks in tests. (#3914)
- TestCluster: set instance number for new Silo handles (#3939)
- Use UriBuilder in ToGatewayUri() (#3937)
- Fix deadlocks in AdoNet provider and tests caused by AdoNet driver implementations (#3163)
- Fix FastKillOnCancelKeyPress not stopping the process. (#3935)
- Fix logger exceptions (#3916)
- Sort list of silos in HashBasedPlacementDirector (#3964)
- Fix leasebasedbalancer bug (#4072)
v2.0.0-beta3
-
Breaking changes
- Remove legacy initialization from Silo class (#3795)
-
Non-breaking improvements
- Move ServiceId to SiloOptions (#3779)
- Do not generate serializers for classes which require the use of serialization hooks. (#3790)
- CodeGen: reduce aggressiveness of serializer generation (#3789)
- CodeGen: avoid potential confusion between overridden properties in a type hierarchy (#3791)
- Fix Exception serialization on .NET Core (#3794)
- Fix shutdown sequence in linuxcontainer (#3796)
- Fix potential dependency cycles with user-supplied IGrainCallFilter implementations (#3798)
- Include required provider name in GetStorageProvider exception message. (#3797)
- Strongly typed endpoint options (#3799)
- Fix wrong config usages (#3800)
- Split AWSUtils into separate packages, keep original as meta package (#3720)
- Add ClusterClientOptions to configure ClusterId (#3801)
- Refactor transaction abstractions to enable injection of alternate protocols (#3785)
- Wrap the connection preamble read check in a task (#3729)
- Split OrleansSQLUtils into separate packages (#3793)
v2.0.0-beta2
-
Known issues
- Code generation is too aggressive in generating serializers for most available types instead of just those that are directly used in grain methods (#3771). This causes excessive code being generated and compiled.
-
Breaking changes
-
Non-breaking improvements
- Better align silo hosting APIs with the future generic Microsoft.Extensions.Hosting.HostBuilder (#3631, #3634, #3696, #3697)
- Multiple improvements to code generation (#3639, #3643, #3649, #3645, #3666, #3682, #3717)
- Throw an exception when trying to build a silo with no application assemblies specified (#3644)
- Multiple improvements to transactions (#3672, #3677, #3730, #3731)
- Integrate Service Fabric clustering provider with
SiloHostBuilder
(#3638) - Split Service Fabric support assembly and NuGet package into two: for silo hosting and clustering (#3638, #3766)
- Split
OrleansAzureUtils
assembly and NuGet package into more granular assemblies and packages (#3668, #3719) - Support for non-static serializers (#3595)
- Add a timeout for synchronous socket read operations (#3716)
- Support for multiple fallback serializers (#3688)
- Enable TCP FastPath support (#3710)
- Re-introduce run time code generation that can be enabled at silo host build time (#3669)
- Support for Oracle in AdoNet (SQL) clustering provider (#3576)
- Disallow creating an observer reference via
CreateObjectReference
from within a grain (#3757) - Expedite gateway retries when gateway list is exhausted (#3758)
- Support for serialization life cycle methods that re-enables serialization of F# types and other such types (#3749)