Hãy xem xét các tình huống sau: trường hợpSao chép CouchDB hoạt động như thế nào với các máy chủ Không/Phục hồi?
3 EC2 nằm ở:
- Mỹ-WEST
- Ireland
- Tokyo
Mỗi trường hợp là một máy chủ CouchDB chuyên dụng. Mỗi máy chủ CouchDB được thiết lập để chạy sao chép liên tục với mọi máy chủ khác (hai hướng).
Bây giờ giả sử rằng máy chủ Ireland sẽ ngoại tuyến do thiếu AWS. Các máy chủ US-WEST và Tokyo CouchDB sẽ thử lại X số lần và sau đó cuối cùng không sao chép được với máy chủ đó (điều này có đúng không?)
Cho phép nói 6 giờ trôi qua và AWS lấy lại trực tuyến và máy chủ quay trở lại lên - tôi giả sử Mỹ-WEST và Tokyo sẽ bỏ qua các máy chủ ở Ireland cho đến khi Ailen CouchDB máy chủ tái khởi đồng bộ hai chiều với cả hai trong số họ, a la:
Ailen CouchDB _replicator Pseudo-Cài đặt
- sao chép [source = local sở tại, mục tiêu = vn tây]
- lặp [nguồn = vn-tây, target = localhost]
- lặp [source = localhost, target = tokyo]
- lặp [source = tokyo, target = localhost]
Q1: Sự hiểu biết của tôi về sự thất bại sao chép/phục hồi của Couch có đúng không?
Q2: Điều gì xảy ra nếu có lỗi mạng tự khắc phục sau một giờ (cụ thể: không có khởi động lại máy chủ nào buộc DB tự khởi động lại khi khởi động), các trường hợp CouchDB tương ứng phản ứng như thế nào? Tôi tưởng tượng rằng chúng ta về phía tây và tokyo sẽ quên Ireland, nhưng liệu Ireland có đột nhiên bắt đầu nói chuyện với hai máy chủ đó một lần nữa, tái khởi tạo lại bản sao hai chiều liên tục?
Tôi đặc biệt quan tâm đến việc khôi phục lỗi trong môi trường EC2, vì vậy nếu có chi tiết cụ thể về môi trường mà tôi đã bỏ lỡ, vui lòng cho tôi biết.
Cảm ơn!
Robert, điều đó thật tuyệt vời. Sau khi sử dụng SimpleDB, Redis và Mongo tôi đột nhiên trở nên nhận thức được nỗi ám ảnh của Couch với sự sao chép và nó giống như một ánh sáng đi vào đầu tôi ... đột nhiên TẤT CẢ nỗi đau của tôi chỉ với các kho dữ liệu NoSQL/persistence/safety bị mất và tôi bị bỏ lại với hệ thống đơn giản và mạnh mẽ này, * chỉ hoạt động *. Cảm ơn rất nhiều vì đã làm rõ! –