Con đường hướng tới tính đàn hồi của Luft - Phần 1: Từ Shared Nothing đến Shared Storage
(engineering.ab180.co)> Chia sẻ kinh nghiệm chuyển đổi từ kiến trúc Shared Nothing sang kiến trúc Shared Storage nhằm cải thiện tính đàn hồi (elasticity) của Luft, cơ sở dữ liệu do chúng tôi tự phát triển.
- Trước đây, mỗi node xử lý dữ liệu bằng cách sử dụng storage độc lập, nhưng khi xử lý dữ liệu dung lượng lớn thì thiếu tính đàn hồi, nên gặp khó khăn trong việc ứng phó với workload tăng đột biến.
- Áp dụng khái niệm Compute-Storage Separation để tách biệt tài nguyên tính toán và storage, từ đó quyết định chuyển sang kiến trúc Shared Storage dùng chung storage.
- Đã thử nghiệm phương án sử dụng FUSE để truy cập S3, nhưng do đặc tính của Go runtime, việc dùng FUSE gây ra vấn đề hiệu năng, nên đã tự triển khai Buffer Pool Manager ở cấp độ ứng dụng.
- Nhờ những cải tiến này, giờ đây có thể truy vấn trực tiếp tới S3, và hiệu năng truy vấn trong các trường hợp dữ liệu chưa được phân phối trước đã được cải thiện tới hơn 70%, qua đó tính đàn hồi của Luft được cải thiện đáng kể.
1 bình luận
Cái này thật sự rất thú vị, làm tôi cũng muốn thử.