Thêm các dự án khác
Pattern từ database, hệ sinh thái JVM, trình duyệt và các dự án mã nguồn mở đáng chú ý khác.
Database & lưu trữ
| Pattern | Dự án | Ở đâu | Tác dụng |
|---|---|---|---|
| MVCC | PostgreSQL | heapam_visibility.c | HeapTupleSatisfiesMVCC — kiểm tra hiển thị cô lập snapshot |
| Write-Ahead Log | PostgreSQL | xlog.c | WAL transaction cho khôi phục crash, replication, PITR |
| MVCC | etcd | kvstore.go | KV store đa phiên bản chạy config Kubernetes |
| Write-Ahead Log | etcd | wal.go | WAL đồng thuận Raft cho state phân tán |
| LRU Cache | Redis | evict.c | LRU xấp xỉ với pool loại bỏ dựa trên lấy mẫu |
| Trie | Redis | rax.c / rax.h | Radix tree RAX cho Stream và khoảng key đã sắp xếp |
| Skip List | Redis | t_zset.c | Triển khai sorted set với cân bằng theo xác suất |
| Bloom Filter | LevelDB | bloom.cc | Bloom filter cấp block để bỏ qua đọc đĩa không cần |
| Skip List | LevelDB | skiplist.h | Memtable lock-free với con trỏ next nguyên tử |
| Arena Allocator | LevelDB | arena.cc | Arena dựa trên block cho cấp phát memtable |
| Merge Iterator | LevelDB | merger.cc | MergingIterator gộp các iterator đã sắp xếp (memtable + tầng SSTable) thành một view sắp xếp duy nhất |
| LSM Tree | LevelDB | db_impl.cc | DBImpl::Write — ghi batch vào WAL, chèn vào memtable, flush sang SST khi đạt ngưỡng |
| Merge Iterator | RocksDB | merge_helper.cc | TimedFullMerge kết hợp nhiều phiên bản của cùng key khi compaction |
| LSM Tree | RocksDB | memtable.cc | MemTable::Add — memtable nền skip-list, flush sang L0 SST khi đầy |
| B+ Tree | PostgreSQL | nbtinsert.c | B-link tree (biến thể Lehman-Yao) — mọi bảng và index đều nền B+ tree trên các page đĩa |
| B+ Tree | SQLite | btreeInt.h | Cell nội chứa con trỏ page con + key; cell lá chứa payload. Tách page qua balance_nonroot() |
| Merkle Tree | ZFS (OpenZFS) | blkptr.c | Checksum block pointer tạo thành Merkle tree từ block dữ liệu tới uberblock để phát hiện hư hỏng âm thầm |
| Checkpointing | PostgreSQL | checkpointer.c | CheckpointerMain — flush buffer dirty, ghi bản ghi checkpoint WAL, cập nhật pg_control |
| Checkpointing | Redis | rdb.c | rdbSaveRio — fork process con để ghi snapshot RDB tại thời điểm mà không chặn main thread |
Hệ sinh thái JVM
| Pattern | Dự án | Ở đâu | Tác dụng |
|---|---|---|---|
| Actor Model | Akka | Actor.scala | trait Actor — concurrency hướng thông điệp cho JVM |
| Circuit Breaker | Netflix Hystrix | HystrixCircuitBreaker.java | Circuit breaker 3 trạng thái cho phục hồi microservice |
| Batch Processing | Apache Kafka | RecordAccumulator.java | Gom record thành lô theo partition |
| Work Stealing | OpenJDK | ForkJoinPool.java | Method scan với work stealing ngẫu nhiên |
| LRU Cache | Guava | CacheBuilder | maximumSize() với loại bỏ LRU |
| Rate Limiter | Guava | RateLimiter | Token bucket smooth bursty / warm-up |
| Consistent Hashing | groupcache | consistenthash.go | Vòng hash với virtual replica (do Brad Fitzpatrick viết) |
Erlang / BEAM VM
| Pattern | Dự án | Ở đâu | Tác dụng |
|---|---|---|---|
| Actor Model | Erlang/OTP | erl_process.h | Struct process BEAM VM — actor nhẹ với mailbox |
| Cooperative Scheduling | Erlang/OTP | BEAM scheduler | Preemption dựa trên reduction cho hàng triệu process |
| Semaphore | Erlang/OTP | erl_process_lock.c | Khoá process cho truy cập đồng thời an toàn |
Trình duyệt & web
| Pattern | Dự án | Ở đâu | Tác dụng |
|---|---|---|---|
| Bloom Filter | Chromium | selector_filter.h | Bloom filter selector CSS — bỏ qua 60-70% rule |
| Bitmask | React | ReactFiberFlags.js | Flag tác dụng Fiber — Placement, Update, Deletion |
| Double Buffering | React | Kiến trúc Fiber | Hoán đổi cây current vs work-in-progress khi commit |
| Diff / Patch | React | ReactChildFiber.js | Reconciliation danh sách với match theo key |
Hạ tầng & cloud
| Pattern | Dự án | Ở đâu | Tác dụng |
|---|---|---|---|
| Retry Backoff | Kubernetes | backoff.go | Backoff khởi động lại pod, retry API server |
| Retry Backoff | gRPC-Go | internal/backoff/backoff.go | Backoff kết nối cấp số nhân với jitter |
| Dependency Graph | Terraform | Resource graph | Apply resource song song theo thứ tự DAG |
| Dependency Graph | Bazel | Action graph | Thực thi topo các target build |
| Registry | gRPC-Go | server.go | RegisterService thêm mô tả service vào map service của server để dispatch method RPC |
| Registry | TensorFlow | op.h | Macro REGISTER_OP đăng ký operation vào OpRegistry toàn cục để xây computation graph |
| Consistent Hashing | Nginx | ngx_http_upstream_hash | Cân bằng tải upstream với hashing ketama |
Compiler & runtime ngôn ngữ
| Pattern | Dự án | Ở đâu | Tác dụng |
|---|---|---|---|
| Visitor | LLVM | InstVisitor.h | Visitor CRTP dispatch theo opcode lệnh IR cho các pass tối ưu |
| Visitor | Vue.js | transforms/vIf.ts | transformIf là một visitor NodeTransform đi qua AST template |
| Vtable | CPython | object.h | Vtable PyTypeObject — tp_repr, tp_hash, tp_call, bộ protocol |
| Interning | CPython | unicodeobject.c | PyUnicode_InternInPlace — intern chuỗi identifier cho tra cứu dict O(1) |
| Interning | Rust (rustc) | symbol.rs | Symbol là index u32 vào interner toàn cục — mọi identifier đều intern |
| Tagged Union | Godot Engine | variant.h | Enum Variant::Type + union — mọi giá trị GDScript đều là một Variant |
| Tagged Union | PyTorch | ivalue.h | IValue chứa enum Tag + union Payload cho interpreter TorchScript |