DurableTask.AzureStorage v.2.0.0
davidmrdavid
released this
24 Jul 17:46
·
8 commits
to main
since this release
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 ofnet462
(#1125)- Dependency on
Windows.AzureStorage
is dropped in favor ofAzure.Core
1.41.0
,Azure.Data.Tables
12.8.3
,Azure.Storage.Blobs
12.20.0
, andAzure.Storage.Queues
12.18.0
(#1132) - Dependency on
System.Linq.Async
is6.0.1
(#1132) - Dependency on
Microsoft.Bcl.AsyncInterfaces
is version6.0.1
(#1132) - Reduce telemetry scope in Durable Functions usage (#1100)
- Config
UseTablePartitionManagement
set totrue
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
inAzureStorageOrchestrationServiceSettings
.
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 withDurableTask.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 tofalse
inAzureStorageOrchestrationServiceSettings
to avoid split brain problems while deployment is ongoing. - Messages generated by
DurableTask.AzureStorage v2.0.0
have a different encoding thanDurableTask.AzureStorage v1.x
. OnlyDurableTask.AzureStorage v1.17.4
is forwards-compatible with theDurableTask.AzureStorage v2.x
encoding, so please make sure to first upgrade toDurableTask.AzureStorage v1.17.4
before migrating toDurableTask.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.
- The new partition manager v3 does not interoperate with the default partition manager in