Skip to content

DurableTask.AzureStorage v.2.0.0

Compare
Choose a tag to compare
@davidmrdavid davidmrdavid released this 24 Jul 17:46
· 6 commits to main since this release
b01ef27

https://www.nuget.org/packages/Microsoft.Azure.DurableTask.AzureStorage/2.0.0

This is a major release of DurableTask.AzureStorage, with some breaking changes, mostly around transitive dependencies. Please read these release notes carefully and note that there may be other unintended side-effects from these updates; report any such cases on our GitHub board for review.

Updates

  • DurableTask.Core dependency is now 3.0.0.
  • netstandard2.0 is now the only TFM, dropping explicit targeting of net462 (#1125)
  • Dependency on Windows.AzureStorage is dropped in favor of Azure.Core 1.41.0, Azure.Data.Tables 12.8.3, Azure.Storage.Blobs 12.20.0, and Azure.Storage.Queues 12.18.0 (#1132)
  • Dependency on System.Linq.Async is 6.0.1 (#1132)
  • Dependency on Microsoft.Bcl.AsyncInterfaces is version 6.0.1 (#1132)
  • Reduce telemetry scope in Durable Functions usage (#1100)
  • Config UseTablePartitionManagement set to true by default (#1133). This enables the new table-based partition manager algorithm. Users can expect a new <taskHub>partitions table in their storage account, which will be used for partition load balancing.
  • Convert timer target to UTC (#1138)

Note:

  • Although we have scoped these changes for maximum backwards behavioral compatibility with existing TaskHub data, there may be some unintended issues during live migrations by the nature of the major dependency upgrades. Please test in your test/canary environments before deploying broadly and report any issues in our GitHub board for review.
  • To ensure the functions work correctly, if you are using this v2.0.0 version and need to revert to DurableTask.AzureStorage v1.x, please downgrade to v1.17.4, as it maintains backward compatibility with DurableTask.AzureStorage v2.x.
  • Partition Manager v3 will be the default partition management starting with this version. This is the algorithm that load balances queues to VMs. You may revert to the old partition manager strategy by setting UseTablePartitionManagement to false in AzureStorageOrchestrationServiceSettings.

Guidance for phased deployments:

  • If you're doing a phased deployment of DurableTask.AzureStorage v2.0.0, meaning that some VMs in your Task Hub / app will operate with this new package (v2.x) while others will operate with DurableTask.AzureStorage v1.x, please read the following guidance:
    • The new partition manager v3 does not interoperate with the default partition manager in DurableTask.AzureStorage v1.x. Therefore, set UseTablePartitionManagement to false in AzureStorageOrchestrationServiceSettings to avoid split brain problems while deployment is ongoing.
    • Messages generated by DurableTask.AzureStorage v2.0.0 have a different encoding than DurableTask.AzureStorage v1.x. Only DurableTask.AzureStorage v1.17.4 is forwards-compatible with the DurableTask.AzureStorage v2.x encoding, so please make sure to first upgrade to DurableTask.AzureStorage v1.17.4 before migrating to DurableTask.AzureStorage v2.0.0.
    • If you're not doing a phased deployment, and instead all the nodes operating on your Task Hub will upgrade to the same package at once, then this guidance does not apply to your system.
    • We are looking to invest in features to make migration easier, you may expect them in future iterations of this package.