Home
Blogs
About Me
My projects
tech-lessons.in
learnings by a developer
Photo by lil artsy on Pexels
May 22, 24
Many flavors of Networking IO
The foundation of any networked application hinges on its ability to efficiently handle data exchange. But beneath the surface, there's a hidden world of techniques for managing this communication. This article dives into various "flavors" of networking IO, exploring the trade-offs associated with each approach. We'll delve into techniques like Single-Threaded Blocking IO, Multi-Threaded Blocking IO, Non-blocking with Busy Wait, and Single-Threaded Event loop.
Apr 19, 24
Cache-Line Hash Table
In the world of multi-core processors, managing concurrent access to data structures is crucial for efficient performance. But frequent updates can trigger a hidden bottleneck: cache coherence traffic. This traffic arises when one core modifies the data another core has cached, forcing updates and invalidation across the system. This article dives into a clever solution: the Cache-Line Hash Table (CLHT). CLHTs are specifically designed to minimize this cache coherence traffic, boosting the speed of concurrent data access.
Mar 22, 24
A guide to Serializable Snapshot Isolation in Key/Value storage engine
Ensuring data consistency in the face of concurrent transactions is a critical challenge in database management. This article explores Serializable Snapshot Isolation (SSI) that promises the best of both worlds: strong data consistency without sacrificing performance. The article delves into the inner workings of SSI and explore its implementation for a Key/Value storage engine.
Jan 24, 24
Diving into Rust by building an assertions crate
As Rust projects grow in size and complexity, the need for sophisticated error handling tools becomes ever more pressing. Traditional methods like panics and asserts, while useful, can be limited and cumbersome. Let's build an assertions crate that offers elegant and powerful assertions, while simultaneously diving into the diverse landscape of Rust features.
May 26, 23
Designing an in-memory LFU cache
I had been working on building an in-memory LFU cache (least frequently used cache), and now that it is done, I thought of writing about the building blocks of an LFU cache. This article shares the building blocks of an LFU cache along with the ideas from two research papers: BP-Wrapper and TinyLFU.
May 4, 23
Bitcask - A Log-Structured Hash Table
Bitcask is an embeddable key/value storage engine that is defined as a "Log-Structured Hash Table" in the paper that introduced it. The model of Bitcask is simple: all the key/value pairs are written to append-only files and an in-memory data structure contains a mapping between each key and the position of the value in the data file.
More Posts
Search
Results
No results found
Try adjusting your search query