#ddia
21 bài viết về chủ đề này
Xử lý dữ liệu theo lô — Unix Philosophy & MapReduce (Designing Data-Intensive Applications)
Unix pipes và MapReduce — từ sort/grep/awk trên một máy đến MapReduce chạy trên cả cluster. Tìm hiểu triết lý xử lý dữ liệu theo lô trong DDIA.
Beyond MapReduce — Spark, Flink và thế hệ data processing mới (DDIA)
MapReduce ghi intermediate state ra disk giữa mỗi phase — đây là điểm yếu chí tử. Spark, Flink, Tez thay thế bằng DAG pipeline, xử lý trong memory, hỗ trợ cả batch lẫn streaming.
Unix Philosophy & MapReduce — Xử Lý Batch Trong Hệ Phân Tán (DDIA)
Unix pipes là nguồn cảm hứng cho MapReduce — cách các hệ thống batch processing xử lý dữ liệu quy mô lớn với triết lý đơn giản
Ordering Guarantees & Consensus — Total Order, 2PC, Raft và ZooKeeper (DDIA)
Khám phá các cơ chế ordering guarantees và consensus trong distributed systems: total order broadcast, 2PC, Raft consensus algorithm, và ZooKeeper.
Linearizability — Mô hình đồng nhất dữ liệu mạnh nhất (DDIA)
Linearizability là mô hình consistency mạnh nhất trong distributed systems. Tìm hiểu cách nó hoạt động, khi nào cần, và cái giá phải trả.
Unreliable Clocks & Byzantine Faults — Khi thời gian trong máy tính không còn đáng tin (DDIA)
Khám phá vấn đề đồng hồ không đáng tin và Byzantine faults trong distributed systems — hai thử thách lớn khi xây dựng hệ thống phân tán
Partial Failures & Unreliable Networks — Khi hệ thống phân tán gặp sự cố (DDIA)
Chương 8 DDIA phân tích bản chất của partial failure trong distributed systems — từ network faults, timeouts đến cách thiết kế hệ thống chịu lỗi.
Serializable Isolation — 2PL và SSI cho Distributed Systems (DDIA)
So sánh Two-Phase Locking (pessimistic) và Serializable Snapshot Isolation (optimistic) — hai cơ chế đạt Serializable isolation trong cơ sở dữ liệu phân tán.
ACID & Weak Isolation Levels — Transactions trong hệ thống (DDIA)
Tìm hiểu ACID và weak isolation levels — Read Committed, Snapshot Isolation — trong cơ sở dữ liệu quan hệ.
Rebalancing Partitions & Request Routing — Hệ thống phân tán (DDIA)
Rebalance partition khi thêm/bớt node: consistent hashing, dynamic partitioning, fixed partitions và request routing trong distributed systems.
Partitioning Strategies — Hash & Key-Range Partitioning, Secondary Indexes (DDIA)
Phân tích hai chiến lược partitioning chính: key-range và hash partitioning, kèm cách xử lý secondary indexes, skewed workloads trong hệ thống phân tán.
Multi-Leader & Leaderless Replication — Hai mô hình replication mở rộng (DDIA)
Multi-leader và leaderless replication là hai mô hình replication cho hệ thống phân tán. Tìm hiểu về quorum, CRDT, conflict resolution, read repair, sloppy quorum và khi nào dùng chúng.
Leaders, Followers & Replication Lag — Cơ chế replication (DDIA)
Single-leader replication trong distributed systems — cách leader ghi dữ liệu, follower đồng bộ, và những vấn đề replication lag gây ra.
Dataflow — DB, REST/RPC, Message-Passing: Ba cách dữ liệu di chuyển giữa các hệ thống (DDIA)
Khám phá ba mode dataflow trong distributed system — qua database, qua REST/RPC, và qua message-passing — và cách schema evolution ảnh hưởng đến từng mode (Designing Data-Intensive Applications Chương 4)
Encoding & Schema Evolution — Thrift, Protobuf, Avro và bài toán tương thích dữ liệu (DDIA)
Binary encoding formats — Thrift, Protocol Buffers, Avro — giúp giải quyết vấn đề gì so với JSON/XML? Làm sao để schema evolution an toàn khi deploy microservices?
OLAP & Column-Oriented Storage — Khi phân tích dữ liệu cần tốc độ (DDIA)
Tìm hiểu sự khác biệt giữa OLTP và OLAP, kiến trúc data warehouse, và cách column-oriented storage tối ưu hoá truy vấn phân tích hàng terabyte dữ liệu (Designing Data-Intensive Applications Chương 3)
Hash Indexes, SSTables, LSM-Trees & B-Trees — Cấu trúc dữ liệu đằng sau storage engine (DDIA)
Khám phá các cấu trúc dữ liệu nền tảng của database: hash indexes, SSTables, LSM-Trees và B-Trees qua lăng kính DDIA
Graph Data Models — Cypher, SPARQL, Datalog: Ba cách tiếp cận dữ liệu đồ thị (DDIA)
Khám phá ba ngôn ngữ truy vấn đồ thị phổ biến — Cypher của Neo4j, SPARQL của RDF và Datalog — qua lăng kính của cuốn Designing Data-Intensive Applications
Data Models & Query Languages — Cách dữ liệu được tổ chức và truy vấn (DDIA)
Relational vs Document models, schema-on-read/write, declarative vs imperative query languages — tóm tắt Chương 2 DDIA của Martin Kleppmann
Maintainability & Summary — Ba nguyên tắc để hệ thống dễ bảo trì (DDIA)
Maintainability là trụ cột thứ ba trong Chapter 1 của DDIA — gồm Operability, Simplicity, và Evolvability. Hệ thống không chỉ cần chạy tốt, mà còn phải dễ bảo trì và phát triển lâu dài.
Reliability & Scalability — Hai trụ cột đầu tiên của Data System (DDIA)
Bài đầu series DDIA: Reliability và Scalability - hai yếu tố nền tảng khi xây dựng hệ thống dữ liệu lớn. Tóm lược chương 1 cuốn Designing Data-Intensive Applications.