A write up about TiDB’s Raft-based HTAP architecture: exploring multi-Raft storage, learner replicas, DeltaTree columnar engine, MVCC transactions, read optimizations, and how TiKV and TiFlash deliver scalable, consistent, and isolated OLTP + real-time OLAP in one system.
Welcome to the blog
Hieu's Blog
Hi, I'm Trung Hieu (Elliot) Nguyen, a software engineer passionate about building scalable backend systems and exploring innovative tech solutions. On this blog, I share insights, experiences, and lessons learned from my journey in software development. Thanks for stopping by!

All Articles(49)
An engineer’s walkthrough of Google Percolator: from MapReduce to incremental processing, exploring transactions, lazy lock cleanup, observers, and performance optimizations on Bigtable.
A practical deep dive into MVCC: concurrency protocols, version storage, garbage collection, and index design.
Explore how Google Spanner combines SQL, global distribution, TrueTime, and Paxos to deliver externally consistent transactions at planet scale.
SegCache is an in-memory key–value cache built for small objects, improving memory efficiency, throughput, and multi-core scalability with TTL-bucketed segments, compact hash metadata (bulk chaining), and segment-level proactive expiration plus merge-based eviction.
A clear, concise walkthrough of Google’s MapReduce, explaining how it simplified large-scale data processing while revealing its key design insights and limitations.
How DynamoDB delivers ACID at scale: timestamp ordering instead of locks, a distributed 2PC, writeless reads, buffered writes, and recovery that keeps latency predictable.
A practical tour of DynamoDB’s architecture: how it partitions data, controls throughput with GAC, balances hot spots, and keeps availability and durability high.
Understand Bigtable end-to-end: sparse data model, tablet assignment and lookup (root→metadata→user), Chubby coordination, GFS/SSTables, compactions, caching, Bloom filters, commit logs, and recovery.
Explore how Facebook’s Wormhole powers real-time data propagation at massive scale. This post breaks down its core design - flows, caravans, data-markers, and multi-datacenter failover, and explains how it achieves trillions of reliable, in-order updates daily with millisecond latency.
A practical tour of ZooKeeper’s data model, common recipes (locks, barriers, group membership), and the internals (ZAB, snapshots) that make it reliable.
Chubby explained: why a lock service (not a library), how caching/invalidations work, master failover and sessions, plus partitioning, proxies, and name-service use
A deep dive into how Meta migrated UDB from InnoDB to MyRocks, cutting storage in half while tackling isolation differences, tombstones, and large-scale correctness checks.
Unveiling the Efficiency and Simplicity of SIEVE: A Game-Changing Cache Eviction Algorithm
Discover how TinyLFU improves cache efficiency by filtering out low-value items using approximate frequency tracking, optimizing both hit ratio and memory usage.
A deep dive into TAO, Facebook’s distributed data store for the social graph. Learn how it overcomes MySQL and memcache limitations with a graph-aware cache, eventual consistency, and a scalable, fault-tolerant architecture.
Discover how Cuckoo Hashing efficiently resolves hash collisions using multiple hash functions and an eviction strategy. Learn how it ensures O(1) worst-case lookups, supports deletions, and outperforms traditional collision resolution techniques in high-performance applications.
Dive into the fundamentals of Paxos, one of the most influential distributed consensus algorithms. Learn how Paxos ensures fault-tolerant decision-making in distributed systems, its key phases, challenges, and why it's the foundation for modern consensus protocols like Raft and Multi-Paxos
Discover the powerful internal data structures that make Redis a blazing-fast in-memory data store. This comprehensive guide explores how Redis uses SDS for strings, quicklists for lists, and skiplists for sorted sets, ensuring optimal performance, memory efficiency, and scalability. Perfect for developers and enthusiasts looking to deepen their understanding of Redis’s inner workings. Learn why Redis is the go-to choice for caching, real-time analytics, and more!
Roaring Bitmaps offer a dynamic and efficient way to manage large sets of integers, balancing compression, speed, and versatility. This blog delves into their unique structure, dynamic adaptation, and applications in database indexing, real-time analytics, and more.
Explore the essentials and advanced nuances of JSON Web Tokens (JWT) in our blog series "You Don't Know JWT." Learn about JWT security, implementation, and common challenges.
LMAX Disruptor: High performance alternative to bounded queues for exchanging data between concurrent threads
Some concepts that I don’t deeply understand that harm my React App performance
How does NodeJS handle thousands of requests while it’s single-thread?
Backend Engineering 4: Symmetric & Asymmetric Encryption
Confident with your front-end knowledge? Try answer these questions!
Build a Facebook story creator using ReactJS and FabricJS
Shorten your imports in Visual Studio Code in React App with this trick
A very powerful built in data structure that I think you should know.
An overview for responsive image which is used to improve performance across different devices
Frequently Asked JavaScript Interview Questions and Answers for Freshers and Experienced