~/blog --all

All writingTất cả bài viết

2026-09-15

DDIA Chapter 12: The Future of Data SystemsDDIA Chương 12: The Future of Data Systems

The book's last chapter isn't about a new technique — it's about stepping back and asking what all of this replication, partitioning, and stream processing is actually for, and who it's responsible to.Chương cuối cùng của cuốn sách không nói về một kỹ thuật mới — nó là lúc lùi lại để hỏi tất cả replication, partitioning, và stream processing này thực chất để làm gì, và có trách nhiệm với ai.

Book NotesGhi chú sách Designing Data-Intensive ApplicationsChapter 12System Design

10 min readphút đọc

view count

2026-09-15

DDIA Chapter 11: Stream ProcessingDDIA Chương 11: Stream Processing

Batch processing waits for a full day's data before computing anything. This chapter asks: what if you can't wait — what if the answer needs to update the instant a new event happens?Batch processing chờ đủ dữ liệu cả ngày rồi mới tính. Chương này hỏi: nếu không chờ được thì sao — nếu câu trả lời cần cập nhật ngay khi có sự kiện mới xảy ra thì làm thế nào?

Book NotesGhi chú sách Designing Data-Intensive ApplicationsChapter 11Stream Processing

9 min readphút đọc

view count

2026-09-15

DDIA Chapter 10: Batch ProcessingDDIA Chương 10: Batch Processing

A search index, a recommendation list, an analytics dashboard — none of them are typed in by hand, they're all computed from other data. This chapter is about the first of two ways to do that computing: in one big batch.Một search index, một danh sách gợi ý, một dashboard phân tích — không cái nào được gõ tay, tất cả đều được tính ra từ dữ liệu khác. Chương này nói về cách đầu tiên trong hai cách để làm việc tính toán đó: gộp lại xử lý theo từng mẻ lớn.

Book NotesGhi chú sách Designing Data-Intensive ApplicationsChapter 10Batch Processing

10 min readphút đọc

view count

2026-09-15

DDIA Chapter 9: Consistency and ConsensusDDIA Chương 9: Consistency and Consensus

The chapter every earlier chapter kept pointing forward to. It finally answers: how does a group of unreliable machines agree on one thing, when the network lies and the clock can't be trusted?Chương mà mọi chương trước đó cứ liên tục chỉ về phía trước. Cuối cùng nó cũng trả lời: làm sao một nhóm máy không đáng tin cậy đồng thuận về một điều duy nhất, khi mạng nói dối và đồng hồ không thể tin được?

Book NotesGhi chú sách Designing Data-Intensive ApplicationsChapter 9Consensus

11 min readphút đọc

view count

2026-09-15

DDIA Chapter 8: The Trouble with Distributed SystemsDDIA Chương 8: The Trouble with Distributed Systems

The chapter that explains why almost every scary outage story from a big tech company traces back to one of two things not behaving the way engineers assumed: the network, or the clock.Chương giải thích vì sao hầu hết các câu chuyện sự cố đáng sợ từ các công ty công nghệ lớn đều bắt nguồn từ một trong hai thứ không hoạt động như kỹ sư từng giả định: mạng, hoặc đồng hồ.

Book NotesGhi chú sách Designing Data-Intensive ApplicationsChapter 8Distributed Systems

11 min readphút đọc

view count

2026-09-15

DDIA Chapter 7: TransactionsDDIA Chương 7: Transactions

Two shoppers buy the last item in stock at the same instant. Whether your database lets that turn into a real bug depends entirely on the word 'transaction' actually meaning something.Hai người mua cùng lúc chốt đơn món hàng cuối cùng còn trong kho. Việc đó có biến thành bug thật hay không phụ thuộc hoàn toàn vào việc từ 'transaction' có thực sự có ý nghĩa gì không.

Book NotesGhi chú sách Designing Data-Intensive ApplicationsChapter 7Transactions

11 min readphút đọc

view count

2026-09-15

DDIA Chapter 6: PartitioningDDIA Chương 6: Partitioning

Replication (Chapter 5) is about surviving a dead machine. This chapter is about a completely different problem: what happens when your data is just too big for one machine to hold in the first place.Replication (Chương 5) là để sống sót khi một máy chết. Chương này là một vấn đề hoàn toàn khác: chuyện gì xảy ra khi dữ liệu của bạn đơn giản là quá lớn để một máy chứa nổi ngay từ đầu.

Book NotesGhi chú sách Designing Data-Intensive ApplicationsChapter 6Partitioning

19 min readphút đọc

view count

2026-09-15

DDIA Chapter 5: ReplicationDDIA Chương 5: Replication

The chapter that actually explains how a database keeps working when a machine dies — which is what most people really mean by 'high availability.'Chương thực sự giải thích cách một database vẫn hoạt động khi một máy chết — chính là điều hầu hết mọi người muốn nói khi nhắc tới 'high availability.'

Book NotesGhi chú sách Designing Data-Intensive ApplicationsChapter 5Replication

19 min readphút đọc

view count

2026-09-15

DDIA Chapter 4: Encoding and EvolutionDDIA Chương 4: Encoding and Evolution

You can't deploy new code to a thousand servers all at once, and users won't update their app the instant you ship it. So old and new versions of your system are always talking to each other — this chapter is about making sure they can.Bạn không thể deploy code mới lên một ngàn server cùng một lúc, và người dùng cũng không cập nhật app ngay khi bạn vừa ra bản mới. Vậy nên phiên bản cũ và mới luôn phải nói chuyện được với nhau — chương này nói về việc đảm bảo điều đó.

Book NotesGhi chú sách Designing Data-Intensive ApplicationsChapter 4Encoding

13 min readphút đọc

view count

2026-09-15

DDIA Chapter 3: Storage and RetrievalDDIA Chương 3: Storage and Retrieval

Every database eventually has to answer the same boring-sounding question: how do you actually write bytes to a disk so you can find them again fast? The answer splits the entire database world in two.Mọi database rồi cũng phải trả lời một câu hỏi nghe có vẻ nhàm chán: làm sao thực sự ghi byte xuống đĩa để sau này tìm lại được thật nhanh? Câu trả lời chia cả thế giới database ra làm hai phe.

Book NotesGhi chú sách Designing Data-Intensive ApplicationsChapter 3Storage Engines

14 min readphút đọc

view count

2026-09-15

DDIA Chapter 2: Data Models and Query LanguagesDDIA Chương 2: Data Models and Query Languages

The same profile — a person with jobs and schools — looks completely different depending on whether you store it as tables, a document, or a graph. Chapter 2 is about why that choice matters more than it seems.Cùng một profile — một người với công việc và trường học — trông hoàn toàn khác nhau tùy vào việc bạn lưu nó dưới dạng bảng, document, hay graph. Chương 2 nói về việc vì sao lựa chọn đó quan trọng hơn ta tưởng.

Book NotesGhi chú sách Designing Data-Intensive ApplicationsChapter 2Data Models

13 min readphút đọc

view count

2026-09-15

DDIA Chapter 1: Reliable, Scalable, MaintainableDDIA Chương 1: Reliable, Scalable, Maintainable

Before diving into replication and partitioning, it's worth going back to the book's opening chapter — the three words that quietly define whether a system is actually good: reliable, scalable, maintainable.Trước khi đi sâu vào replication và partitioning, tôi thấy nên quay lại chương mở đầu của cuốn sách — ba từ âm thầm định nghĩa một hệ thống có thực sự tốt hay không: reliable, scalable, maintainable.

Book NotesGhi chú sách Designing Data-Intensive ApplicationsChapter 1Reliability

14 min readphút đọc

view count

2026-09-14

Paper Notes: ClickHouse — Lightning Fast Analytics for EveryoneGhi chú Paper: ClickHouse — Lightning Fast Analytics for Everyone

I'd used ClickHouse for dashboards for a while without knowing why it felt so different from a normal database. Turns out almost every part of it is built backwards on purpose.Tôi từng dùng ClickHouse cho dashboard một thời gian mà không hiểu vì sao nó khác hẳn database bình thường. Hóa ra gần như mọi phần của nó đều được xây 'ngược đời' một cách có chủ đích.

PaperBài báo ClickHouseOLAPColumnar Storage

24 min readphút đọc

view count

2026-09-14

Paper Notes: Aurora DSQL — Scalable, Multi-Region OLTPGhi chú Paper: Aurora DSQL — Scalable, Multi-Region OLTP

How do you build a database that's spread across three continents, feels instant to every user, and never shows two people different answers to the same question? This paper's answer surprised me.Làm sao xây một database trải trên ba châu lục, cảm giác tức thời với mọi người dùng, và không bao giờ cho hai người hai câu trả lời khác nhau cho cùng một câu hỏi? Câu trả lời trong paper này khiến tôi bất ngờ.

PaperBài báo Aurora DSQLDistributed SQLOLTP

19 min readphút đọc

view count

2026-09-14

Paper Notes: Amazon Aurora — Design Considerations for High Throughput Cloud-Native Relational DatabasesGhi chú Paper: Amazon Aurora — Design Considerations for High Throughput Cloud-Native Relational Databases

Amazon's cloud database went 35x faster than a normal setup by changing one thing: what gets sent over the network. Here's the whole idea, explained from scratch.Database cloud của Amazon nhanh hơn 35 lần một hệ thống thông thường chỉ nhờ thay đổi một thứ: cái gì được gửi qua mạng. Đây là toàn bộ ý tưởng, giải thích lại từ đầu.

PaperBài báo Amazon AuroraCloud DatabasesReplication

15 min readphút đọc

view count

2026-09-14

Paper Notes: What Goes Around Comes Around... And AroundGhi chú Paper: What Goes Around Comes Around... And Around

Every few years someone says SQL is dead. It never is. Here's why, explained the way I wish someone had explained it to me.Cứ vài năm lại có người nói SQL sắp chết. Nó chưa bao giờ chết cả. Đây là lý do, giải thích theo cách tôi ước có người từng giải thích cho mình.

PaperBài báo Database SystemsNoSQLNewSQL

18 min readphút đọc

view count