Home / Companies / TigerBeetle / Blog / November 2022

November 2022 Summaries

1 posts from TigerBeetle

Filter
Month: Year:
Post Summaries Back to Blog
The text explores approaches to handling I/O operations in computing, focusing on the evolution from traditional blocking I/O to more efficient methods like io_uring on Linux and kqueue on FreeBSD/macOS. It discusses the inefficiencies of traditional system calls, which incur context switches and cache misses, and introduces batching and readiness techniques as solutions. The concept of a central I/O dispatch is presented, allowing business logic to be separated from I/O operations, with the flexibility to use either io_uring or kqueue based on the operating system. This abstraction is compared to existing libraries like libuv, used in Node.js, and TigerBeetle's I/O library, highlighting how they manage I/O operations efficiently by using a central dispatcher and avoiding direct system calls in userland. The text also touches on cross-platform support, noting the use of IOCP on Windows, and considers the benefits of a single-threaded event loop for deterministic simulation testing, while acknowledging alternative architectures for parallel workloads. Finally, it hints at the potential of creating a standalone, cross-platform evented I/O library in Zig, promising compatibility with any language supporting a C foreign function interface.
Nov 23, 2022 2,446 words in the original blog post.