• Master chọn một trong các replica và replica được chọn trở thành primary replica.. • Primary replica sẽ thay thế master để tương tácvới client khi client yêu cầu một thao tác mutation.
Trang 1THE GOOGLE FILE SYSTEM
Trang 3GOOGLE FILE SYSTEM
Trang 5Giới thiệu về GFS (cont.)
• Chỉ được sử dụng bởi Google
• Không phải là một sản phẩm open source
• Được xem như là một mô hình về DFS
Trang 6KIẾN TRÚC TỔNG QUAN
Trang 7Các giả định (assumptions)
• Tỷ lệ lỗi (failure rate) của các thành phần cao
• Số lượng và kích thước file lớn:
▫ Vài triệu file.
Trang 9▫ Quản lý tập trung để đơn giản việc quản lý.
• Không caching data
Trang 10Kiến trúc
Trang 11Single master server
• Đơn giản việc quản lý
▫ Tối thiểu hóa vai trò của master
Chỉ được dùng cho metadata.
Tăng kích thước chunk size.
Lease mechanism.
Trang 13• Tên file và chunk
▫ Lưu ở cả master và chunk server
• Mapping giữ file và chunk
▫ Lưu ở cả master và chunk server
Trang 14Metadata (cont.)
• Operation log để log lại các thao thác chỉnh sửametadata
▫ Là metadata bền vững duy nhất được lưu ở master
▫ Lưu trữ trên local disk.
▫ Được sao lưu tại các shadow master.
Trang 15SỰ TƯƠNG TÁC TRONG HỆ THỐNG
Trang 16Thao tác thay đổi nội dung file (mutation)
• Mutation = write hoặc là record append
▫ Phải được thực hiện trên mọi replica.
Trang 17• Được thiết kế để giảm sự tham gia của master vàocác thao tác trên file
• Master chọn một trong các replica và replica
được chọn trở thành primary replica
• Primary replica sẽ thay thế master để tương tácvới client khi client yêu cầu một thao tác
mutation
Trang 181 Application phát sinh ra read request
2 GFS client phiên dịch request đó và gửi cho
master
3 Master trả về chunk handle và vị trí của một
trong các replica cho GFS client
Trang 19Read (cont.)
4 Client sử dụng chunk handle và location để gửi
request đến chunk server
5 Chunk server gửi data về cho client
6 Client chuyển data cho application
Trang 201 Application phát sinh ra write request
2 GFS client dịch phiên dịch request đó và gửi
cho master
3 Master trả về chunk handle và vị trí của tất cả
replica cho GFS client
Trang 21Write (cont.)
4 Client chuyển data cần được write đến tất cả các
chunk server chứa replica Data được lưu tronginternal buffer của chunk server
Trang 22Write (cont.)
5 Client gửi yêu cầu write data đến primary
replica
6 Primary replica chọn ra thứ tự tuần tự (serial
order) các khối data trong buffer của nó và ghivào chunk theo thứ tự đó
7 Primary replica gửi thứ tự mà nó định ra trong
bước 6 cho các secondary replica và yêu cầu
chúng thực hiện thao tác write theo thự tự nhậnđược
Trang 23Write (cont.)
Trang 248 Secondary replica phản hồi lại cho primary.
9 Primary replica phản hồi lại cho client
Trang 25Atomic Record Append
• Append record một cách đồng thời có thể đượctuần tự hóa
• Giải pháp:
▫ Multi producer – single consumer
Trang 26Atomic Record Append (cont.)
Tương tự như write nhưng có một ít sự khác biệt
1 Client chuyển data cần append đến tất cả các
replica thuộc về chunk cuối cùng của file
2 Primary xác định xem data cần append làm cho
kích thước của chunk vượt quá giới hạn cho
phép
Trang 27Atomic Record Append (cont.)
3 Nếu chunk vượt quá giới hạn kích thước,
Primary replica sẽ:
- Chèn padding vào chunk.
- Yêu cầu tất cả các secondary chèn padding vào
- Yêu các secondary append data.
- Hồi đáp lại cho client.
Trang 29TRÁCH NHIỆM CỦA GFS MASTER
Trang 30TRÁCH NHIỆM CỦA GFS MASTER
• Lưu giữ metadata
• Định kỳ liên lạc với chunk server
• Chunk creation, re-replication, rebalancing
• Thu dọn rác
Trang 31Tài liệu tham khảo
Howard Gobioff, and Shun-Tak Leung
Trang 32Q&A