View profile

#159 - Scaling Email Infrastructure for Medium Digest

Revue
 
 

Grokking Newsletter

February 8 · Issue #160 · View online

Tuyển tập những bài viết hay cùng sự kiện bổ ích dành cho kĩ sư phần mềm tại Việt Nam.


Nhân dịp chào đón năm mới 2021, Tết cổ truyền dân tộc, BBT Grokking Newsletter xin gửi tới quý bạn đọc lời chúc sức khỏe, thành đạt, hạnh phúc, An - Khang - Thịnh - Vượng.
Trong năm mới, Grokking Newsletter sẽ tiếp tục cập nhật, đổi mới và nâng cao chất lượng để phục vụ bạn đọc tốt hơn.
Grokking Newsletter sẽ tạm dừng trong hai tuần và quay trở lại vào ngày 28/2/2021.
Thân ái
BBT Grokking Newsletter

Những bài viết hay
10 Design Patterns every Software Architect and Software Engineer must know 10 Design Patterns every Software Architect and Software Engineer must know
React as a UI Runtime React as a UI Runtime
Rust: A unique perspective Rust: A unique perspective
Scaling Email Infrastructure for Medium Digest Scaling Email Infrastructure for Medium Digest
Góc Database
Trong các hệ thống cơ sở dữ liệu phân tán thì vấn đề tính nhất quán (consistency) của dữ liệu rất quan trọng. Dù cho cơ chế bạn đang sử dụng là strong consistency hay eventual consistency thì vẫn sẽ phát sinh tình huống như lỗi mạng, lỗi kết nối, lỗi ghi xuống đĩa, … dẫn đến sự sai khác giữa các phiên bản của cùng một dữ liệu trên các node khác nhau.
Ở newsletter kỳ 157, chúng ta đã được giới thiệu về một trong các kỹ thuật để đảm bảo tính nhất quán đó là Merkle Tree, một kỹ thuật sử dụng cây nhị phân dạng hash-tree để phát hiện sự sai khác dữ liệu giữa các node và tìm cách chỉnh sửa.
Bên cạnh Merkle tree, một kỹ thuật khác cũng được sử dụng đó là Conflict-free Replicated Data Types (CRDT). CRDT là thuật ngữ chỉ một tập các cấu trúc dữ liệu được thiết kế hướng đến việc lưu trữ được trên nhiều node với các đặc tính như:
  • Dữ liệu trên một replica có thể được chỉnh sửa mà không cần phải coordinate với các replica khác.\
  • Khi hai replica bất kỳ nhận được cùng một tập các lệnh updates giống nhau (nhưng khác thứ tự), dữ liệu được lưu trữ trên chúng sẽ dần trở thành giống nhau.
Mời các bạn cùng đọc paper kỳ này để tìm hiểu thêm về cách thiết kế chi tiết của CRDT nhé. Link.
Góc Data Warehouse
Hadoop Distributed File System (HDFS) là một trong những distributed file system được sử dụng rộng rãi ở các data warehouse lớn. HDFS được xây dựng bởi các đội ngũ kỹ sư ở Yahoo và được cho ra đời vào năm 2006 dựa trên khá là nhiều ý tưởng giống với những distributed file system nổi tiếng lúc bấy giờ (như là Google File System - GFS).
Kiến trúc của HDFS đa số tập trung vào 3 thành phần chính là:
  1. NameNode: Là thành phần chính để chứa các siêu dữ liệu (metadata) về các thông tin quan trọng trong hệ thống (như là data files, namespace, permission, etc). Đồng thời, NameNode có nhiệm vụ tính toán và tối ưu hóa vị trí các block dữ liệu trên DataNodes để dữ liệu được rải rác một cách hiệu quả trên nhiều cụm máy chủ.
  2. DataNode: Là thành phần chính để chứa dữ liệu trong hệ thống. Mỗi block dữ liệu trên DataNode được thành lập bởi 2 tập tin trên máy chủ đó. Tập tin đầu được dùng để chứa dữ liệu chính. Còn tập tin thứ hai được dùng để chứa siêu dữ liệu cho block đó (như là checksums và thời điểm block được tạo ra). Trong lúc khởi động hệ thống thì các DataNodes sẽ kết nối với NameNode để thực hiện việc bắt tay kiểm chứng các DataNodes này
  3. HDFS Client: Người dùng sẽ sử dụng thành phần này để đọc và viết dữ liệu trên HDFS. Để đọc dữ liệu, HDFS client đầu tiên sẽ hỏi NameNode về các DataNodes chứa dữ liệu này. Sau đó, HDFS client sẽ kết nối với các DataNodes này để truy vấn dữ liệu. Còn về phần viết dữ liệu lên HDFS thì HDFS client đầu tiên sẽ hỏi NameNode về các DataNodes để chứa dữ liệu cần được truyền tải. Sau đó, HDFS client sẽ tự động kết nối với các DataNodes này để viết dữ liệu
Bài báo sau đây được xuất bản trên hội nghị MSST vào năm 2010 bởi các kỹ sư chính ở Yahoo lập nên hệ thống HDFS này. Bài báo nói cụ thể cách HDFS hoạt động như thế nào và đồng thời đề cập tới các benchmarks họ gom góp được bằng cách vận hành HDFS cho data warehouse ở Yahoo lúc bấy giờ
Code & Tools
This Week Sponsors
POPS is a creative, innovative & hyper-growth working environment where storytelling meets technology.
POPS is the leading digital entertainment company in Southeast Asia. With over 12 years in entertainment, we provide thousands of exclusive, high-quality, carefully curated local and international contents and bring a unique entertainment experience through POPS Original series, concerts, movies, comics, esports and more.
We are on a journey to find talents who are passionate about technology and love to develop POPS APP the digital entertainment product with the latest technologies such as: OTT, Video On Demand, Microservices, etc. to give end users in the region great experiences with an all-inclusive digital entertainment platform. 
Góc Tuyển Dụng
Quotes
It is not the language that makes programs appear simple. It is the programmer that make the language appear simple!
- Robert C. Martin
Did you enjoy this issue?
If you don't want these updates anymore, please unsubscribe here.
If you were forwarded this newsletter and you like it, you can subscribe here.
Powered by Revue
Charmington La Pointe, 181 Cao Thang, Dist 10, Ho Chi Minh city, Viet Nam