Solving Major Database Contention Problems with Throttling and Akka.NET Streams
Alleviate strain on production systems with in-process Akka.NET streams.
When troubleshooting performance problems in distributed systems or locally-run, high-throughput-required software I tell our users “your most severe performance problems are almost always going to be caused by flow control issues.”
My preferred batting order for troubleshooting performance issues is:
- Improve or resolve flow control issues;
- Eliminate wasteful I/O and round-trips; and
- Technical improvements - improve how efficiently work is performed leveraging mechanical sympathy.
This list is ranked in the order of “most likely to have largest real-world performance impact.”
In this post we’re going to address how you can use Akka.NET actors and Akka.Streams to easily resolve some one of the most painful flow control issues: database contention and bottlenecking.