On .NET Live - DuckDB & Orleans: When Fake Asynchrony Starves Your App!
Ledjon Behluli examines what happens when DuckDB is used inside Microsoft Orleans grains with synchronous calls, showing how “fake” asynchrony can starve the Orleans scheduler and hurt throughput. He shares benchmark results and practical ways to mitigate the issue in real .NET apps.
Overview
DuckDB inside Orleans grains
- The episode focuses on using DuckDB from within Microsoft Orleans grains.
- The core problem discussed is that synchronous calls made from grain code can behave like “fake async” and lead to scheduler starvation, which reduces overall throughput.
Why “fake asynchrony” can starve the app
- The discussion highlights how mixing synchronous work into an async/concurrent Orleans workload can block execution in ways that prevent the scheduler from making progress.
- The practical impact is reduced throughput under load.
Benchmarks and mitigation strategies
- Ledjon presents benchmark results demonstrating the throughput impact.
- The episode also covers practical mitigation strategies to avoid or reduce starvation when integrating DuckDB with Orleans.
Presenters
- Ledjon Behluli
- Frank Boucher
- Cam Soper