View profile

#169 - Tectonic: Hệ thống tập tin phân tán của Facebook

Revue
 
 

Grokking Newsletter

May 3 · Issue #170 · 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ằm tìm hiểu tâm tư, mong đợi của các bạn đang làm về phần mềm nói riêng và IT nói chung về công ty hiện tại / tương lai, một đối tác của Grokking muốn mời các bạn trong cộng đồng thực hiện khảo sát nhỏ này. Mong các bạn có thể dành vài phút để chia sẻ vài suy nghĩ. 40 bạn may mắn sẽ được chọn ngẫu nhiên và nhận được voucher GOT IT 200.000đ từ nhà tài trợ.

Những bài viết hay
22 Best Practices to Take Your API Design Skills to the Next Level 22 Best Practices to Take Your API Design Skills to the Next Level
Design Mistakes You’re Making with Your Mobile Forms (and How to Fix Them) Design Mistakes You’re Making with Your Mobile Forms (and How to Fix Them)
[Design Pattern] Liệu bạn có thực sự hiểu về Singleton pattern? [Design Pattern] Liệu bạn có thực sự hiểu về Singleton pattern?
Góc Data Warehouse
Trong những năm gần qua, lượng dữ liệu ở Facebook ngày càng gia tăng từ vài trăm petabyte lên tới vài exabyte. Đa phần các lượng dữ liệu này tập trung 2 mảng chính là: BLOB cho hình ảnh hay video, và dữ liệu phân tích cho data warehouse.
Bên mảng BLOB thì Facebook có 2 hệ thống storage chính là Haystack và f4 để lưu trữ dữ liệu. Haystack được dùng để chứa hot BLOB và f4 được dùng để chứa warm BLOB. Còn bên mảng data warehouse thì Facebook tận dụng HDFS để chứa các ORC file của họ cho Hive. Tuy nhiên, với mỗi hệ thống storage đặc biệt cho mỗi use case và mỗi hệ thống có một hạn chế về lưu lượng khác nhau (như là Haystack sẽ có hạn chế về disk I/O per second do được truy vấn nhiều hơn so với f4 warm storage), các đội ngũ kỹ sư ở nhóm storage bên Facebook đã quyết định thành lập hệ thống Tectonic.
Tectonic là một hệ thống tập tin phân tán (distributed filesystem) có thể scale dữ liệu tới hàng exabyte. Mục tiêu chính của Tectonic là thay thế HDFS để scale tốt hơn và gộp Haystack, f4, và HDFS lại với nhau thay vì có 3 hệ thống storage riêng biệt.
Tectonic có 4 bộ phận chính là:
  1. Client library: Là thư viện chính để các clients tiếp cận với Tectonic. Client sẽ có thể tạo, truy vấn, và xóa một file bằng cách giao tiếp với metadata store và chunk store
  2. Metadata store: Là nơi chứa dữ siêu dữ liệu về các files và cung cấp client library nơi mà clients có thể viết dữ liệu trên chunk store
  3. Chunk store: Là nơi chứa dữ liệu tập tin chính cho toàn bộ hệ thống Tectonic
  4. Background services: Là một bộ phận bao gồm nhiều dịch vụ để quản lý Tecttonic như là: garbarge collector, rebalancer, block repair, …
Nhìn chung thì mô hình thiết kế của Tectonic khá là giống với cách hệ thống storage phân tán khác (như là HDFS, Google Filesystem, …). Tuy nhiên, Tectonic có vài điểm đặc trưng lên được nêu lên trong bài báo để giúp hệ thống hoạt động hiệu quả hơn. Một vài điển hình như là:
  • Metadata store được partitioned thành 3 mảng chính là: Name layer, File layer, và Block layer. Mỗi mảng này sẽ được chứa trong ZippyDB, một key-value store được thành lập bởi Facebook. Do việc partition metadata như thế này và tận dụng một remote key-value store riêng biệt, Tectonic có thể scale tốt hơn HDFS NameNode khi mà HDFS chứa tất cả metadata cho cluster lên chỉ một NameNode. Tuy nhiên, cách thiết kế như thế này sẽ làm tăng độ trễ của hệ thống Tectonic khi truy vấn metadata so với HDFS NameNode khi tất cả metadata được chứa trên memory ở máy NameNode
  • Tectonic chia các tenants thành nhiều nhóm và bậc khác nhau để giúp cải thiện việc chia sẻ tài nguyên hệ thống một cách hiệu quả hơn giữa các tenants, đặc biệt khi Haystack dùng lượng chứa đĩa ít nhưng cần disk I/O per second nhiều, trong khi f4 warm storage thì ngược lại.
Tectonic được các đội ngũ kỹ sư ở Facebook công bố trên hội nghị File and Storage Technologies (FAST) vào đầu năm nay. Đây là bài báo về Tectonic nếu các bạn muốn tìm hiểu thêm về hệ thống này.
Code & Tools
This Week Sponsors
LINE đang tích cực tìm kiếm nhiều nhân tố ở các vị trí chủ chốt để đáp ứng nhu cầu phát triển mạnh mẽ của hệ sinh thái LINE. Đặc biệt, trong vai trò Engineering ManagerProject Leader, các bạn sẽ có cơ hội tác động tích cực đến sự phát triển của con người, tổ chức, sản phẩm và hàng trăm triệu người dùng.
Góc Tuyển Dụng
Quotes
What one programmer can do in one month, two programmers can do in two months.
- Fred Brooks
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