Home / Companies / ScyllaDB / Blog / Post Details
Content Deep Dive

Async Rust in Practice: Performance, Pitfalls, Profiling

Blog post from ScyllaDB

Post Details
Company
Date Published
Author
Piotr Sarna
Word Count
1,837
Company Posts That Month
3
Language
English
Hacker News Points
248
Post removed?
No
Summary

The ScyllaDB Rust Driver, initially developed during an internal hackathon, has undergone significant advancements since its inception, but encountered unexpected performance issues compared to the cassandra-cpp driver, particularly in local testing environments. These issues were traced back to the lack of buffering in the driver's read and write operations, leading to excessive CPU usage due to frequent syscalls. By implementing buffering with Tokio's BufReader and BufWriter, the driver significantly reduced syscall overhead. A subsequent challenge involved the use of Rust's FuturesUnordered, which caused quadratic execution time due to its interaction with Tokio’s cooperative scheduling. This was resolved by limiting the number of futures iterated in a single poll, balancing cooperative scheduling benefits and maintaining low latencies. The experience underscores the ongoing evolution in Rust’s async programming, highlighting the importance of profiling and community contributions in optimizing performance.

Trends Found in this Post

No tracked trend matches for this post yet.

Use This Data

Use this post, company, and trend context to find content marketing opportunities, perform competitive analysis, or address product feature gaps via the Plushcap MCP server or the Plushcap API.