Slot Mahjong
Slot Mahjong
Thiết Kế Distributed File System Với GFS Phần 1
Thiet ke Distributed File System 2

Thiết kế Distributed File System với GFS Phần 1

Tiếp theo chuỗi bài viết về Toàn tập về thiết kế Scalable Web Application II và Distributed cache là gì? – điều gì khiến nó trở nên mạnh mẽ?, hôm nay Kieblog hân hạnh giới thiệu chuỗi bài về Distributed File System Design (Thiết kế hệ thống phân tán lữu trữ file).

Bài viết tập trung vào thiết kế hệ thống (Design System) cho việc lưu trữ file. Đảm bảo tính scalable cho system và sử dụng Distributed Concepts (Hệ thống phân tán).

1. Tiếp cận với Distributed File System

Hiện nay, hẳn không lập trình viên nào còn lạ lẫm với Google Drive, Dropbox. Đây là những hệ thống quản lý file ở quy mô lớn, scalable cho hàng tỷ người dùng, hàng triệu triệu request mỗi giây.

Việc một lượng lớn người sử dụng đặt yếu tố mở rộng (Scalable) lên hàng đầu. À nhân tiện thì bài viết này cũng có sử dụng một số phần nội dung về Google File System (GFS). Anh em có thể tham khảo thêm về GFS ở phần tham khảo của bài viết.

Để đảm bảo tính ổn định của hệ thống, như dữ liệu đã public về design thông qua GFS, ta có thể biết các hệ thống này đang thiết kế theo hướng phân tán (Distributed File System).

Nói sơ về Google File System thì nó là design cách quản lý cơ sở dữ liệu của Google. Trong GFS:

  • Customized for Google
  • Hỗ trợ lưu Large File
  • Eventual Consistency (đảm bảo tính nhất quán)

Distributed File System Kiến trúc Google File System. Nguồn ảnh/ Source: The Google File System – Google Research

2. Chunk và Replica trong Google File System

Khi thiết kế về Google File System được chia sẻ, ta biết rõ rằng Google hỗ trợ lưu file với kích thước vô cùng lớn. Các file có thể có kích thước vào khoảng TeraByte, MegaByte.

Tất nhiên nội dung các file sẽ được chia sẻ ra thành nhiều phần và lưu trữ ở nhiều Chunk khác nhau. Không bao giờ một file có kích thước quá lớn được lưu trữ vào duy nhất một machine.

Distributed File System Mỗi file sẽ được phân tách thành các phần có kích thước 64MB. (Số lượng chunk có kích thước 64MB tùy thuộc vào kích thước file)

Tuy nhiên nếu một phần file chỉ ở một chunk vẫn xảy ra rủi ro về file. Nếu một chunk gặp vấn đề và down, các phần để tập hợp một file có thể không đủ. Dẫn tới file bị broken.

Để giải quyết vấn đề này, mỗi part of file sẽ lưu trữ ở 3 chunk khác nhau. Nếu một chunk down, vẫn có cách để lấy file đó ở các chunk khác. Việc lưu trữ ở nhiều chunk nhỏ đảm bảo cho sự phân tán (Distributed) trong Distributed File System.

Dễ dàng scaling khi có nhiều file hoặc nội dung file lớn.

Distributed File System Phần nội dung số 1 sẽ lưu ở 3 chunk khách nhau là Server 1, Server 2 và Server 3.

3. Chunk Location Table System

Trường hợp file được chia thành các phần nhỏ. Mỗi lúc cần truy xuất file ở một node, ta sẽ sử dụng Location Table System.

Bảng này cho biết part đó đang nằm ở đâu?. Chunk nào?

Distributed File System

Trường hợp ở trên File được chia thành 8 phần. Các chunk id đại diện cho từng phần (tất nhiên là duy nhất Unique). Vị trí của các chunk nằm trên replica nào sẽ được ghi vào table này. Table này có thể lưu trữ vào RAM ở Master.

Trên đây là cái nhìn tổng quan nhất về Distributed File System và Google File System. Cách thức lưu trữ file lớn và những gì lưu trữ ở chunk. Tiếp theo, ở phần hai sẽ bàn về How System Work?, bổ sung một số thiết kế detail.

0935 45 3888

grandpashabet
grandpashabet
Meritking
Deneme Bonusu Veren Siteler
marsbahis giriş
zbahis
Hair Transplant istanbul
da pa kontrolü
casibom giriş
marsbahis
replika saat
eskişehir temizlik
sms onay
ankara nakliyat
ordu nakliyat
Vozol Puff
iqos terea
NORA
creative
Marketing
deneme bonusu veren siteler
deneme bonusu veren siteler
deneme bonusu veren siteler
deneme bonusu veren siteler
deneme bonusu veren siteler
deneme bonusu veren siteler
kralbet giriş
bahçelievler nakliyat
istanbul evden eve nakliyat
istanbul bahçelievler evden eve nakliyat
esenyurt escort
casibom giriş
matadorbet