ClickHouse - High Availability
Bật High Availability trên database ClickHouse không tự làm dữ liệu của bạn replicate. Việc replicate phụ thuộc vào table engine bạn chọn, và đây là điều làm hầu hết mọi người bất ngờ ở lần đầu.
Bật High Availability trên database ClickHouse thì chuyện gì xảy ra?
Dịch vụ tự động tạo thêm replica cho từng shard. Nhưng bản thân việc replicate chỉ có hiệu lực trên những bảng bạn tạo bằng table engine replicated.
Replication chỉ hỗ trợ họ MergeTree:
- ReplicatedMergeTree
- ReplicatedSummingMergeTree
- ReplicatedReplacingMergeTree
- ReplicatedAggregatingMergeTree
- ReplicatedCollapsingMergeTree
- ReplicatedVersionedCollapsingMergeTree
- ReplicatedGraphiteMergeTree
Xem Replicated table engines trong tài liệu ClickHouse.
Replication hoạt động ở mức server hay mức bảng?
Ở mức bảng. Bảng replicated và bảng không replicated nằm chung một server được, nên một bảng không replicate không ảnh hưởng tới phần còn lại.
Replication có phụ thuộc sharding không?
Không. Replication độc lập với sharding, và mỗi shard replicate riêng.
Đây là chỗ database hay mất dữ liệu ngoài dự tính nhất. Một bảng tạo bằng MergeTree thay vì ReplicatedMergeTree sẽ không bao giờ được replicate, kể cả khi database đã bật HA. Dữ liệu của nó chỉ nằm trên node đã nhận ghi.
Bật HA không bảo vệ bảng MergeTree. Hãy kiểm tra engine của từng bảng bạn phụ thuộc, chứ không chỉ kiểm tra thiết lập của database.