Eternal orchestrations with large messages have unbounded blob counts
See original GitHub issueEternal orchestrations that use ContinueAsNew and have state stored in large messages will see their blob storage usage grow unbounded over time.
As of this PR, we no longer have random blob names, which means we can overwrite blobs from previous generations, reducing the impact of the problem. However, it does not handle message blobs, which will still continue to grow in an unbounded way since the blob names contain the sequence number, which does not reset. Fixing the message blob problem may be as simple as deleting message blobs at the same time we delete their corresponding queue messages (which we might want to do anyways).
Issue Analytics
- State:
- Created 5 years ago
- Comments:6
Top Results From Across the Web
Azure Storage provider for Durable Functions
Orchestration and entity status and history are stored in Azure Tables. Azure Blobs and blob leases are used to distribute orchestration ...
Read more >Durable Functions: Semantics for Stateful Serverless
This has motivated a new generation of serverless frameworks that provide stateful abstractions. For instance, Azure's Durable Functions (DF) programming.
Read more >Apache Beam Programming Guide
An unbounded PCollection must be processed using a streaming job that runs continuously, as the entire collection can never be available for processing...
Read more >Getting blob count in an Azure Storage container
The top-rated answer on this thread is pretty much unusable with large blob storages. The azure storage explorer application simply calls list ......
Read more >
Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free
Top Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found

@cgillum That makes sense, thank you for the quick response. I ask because we are experiencing a sudden increase in blob requests which is correlating to memory issues. The largemessages blob has ~63,000 messages in there as we do have a number of eternal orchestrations. I’ve seen the other ticket #340 which speaks of a memory leak which may very well be the case, but I think what I’m seeing is increased requests to blob because of the need to page the blob storage. We must have passed a threshold that caused the issue.
Regardless, as this ticket mentions the fix is to purge the largemessages. In the meantime, do you see anything wrong with simply deleting old large-messages for eternal orchestrations as a workaround?
Last, awesome 1.7 release. You guys rocked and totally fix issue #462.
@cgillum Thanks for the quick response. Let me revisit point 1 with my team and confirm. I’ll discuss point 2 with my team as well and see if we have any ideas that would be worth sharing here. Have a great weekend!