question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Eternal orchestrations with large messages have unbounded blob counts

See original GitHub issue

Eternal 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:open
  • Created 5 years ago
  • Comments:6

github_iconTop GitHub Comments

1reaction
dsm0880commented, Dec 8, 2018

@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.

0reactions
dsm0880commented, Aug 4, 2019

@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!

Read more comments on GitHub >

github_iconTop 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 >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found