Từ documentation:Làm rõ về sửa chữa nodetool -pr
Sử dụng -pr sửa chữa nodetool (-partitioner-range) tùy chọn sửa chữa chỉ khoảng chính cho nút đó, các bản sao khác cho phạm vi đó vẫn phải thực hiện tính toán cây Merkle, gây ra sự nén chặt hợp lệ. Bởi vì tất cả các bản sao được nén cùng một lúc, tất cả các nút có thể chậm phản hồi cho phần dữ liệu đó.
Có lẽ không bao giờ có thời gian để tôi có thể chấp nhận tất cả các nút bị chậm cho một phần dữ liệu nhất định. Nhưng tôi tự hỏi: Tại sao nó làm điều đó (hoặc là có lẽ chỉ là một mixup với tùy chọn "-par" trong tài liệu ?!), khi nodetool repair
có vẻ là smarter:
Theo mặc định, lệnh sửa chữa có một ảnh chụp nhanh của mỗi bản sao ngay lập tức và sau đó sửa chữa tuần tự mỗi bản sao từ các ảnh chụp nhanh. Ví dụ, nếu bạn có RF = 3 và A, B và C đại diện cho ba bản sao, lệnh này sẽ chụp nhanh mỗi bản sao ngay lập tức và sau đó sửa chữa liên tiếp mỗi bản sao từ ảnh chụp nhanh (A < -> B, A < -> C, B < -> C) thay vì sửa chữa A, B và C cùng một lúc. Điều này cho phép snitch động duy trì hiệu suất cho ứng dụng của bạn thông qua các bản sao khác, bởi vì ít nhất một bản sao trong ảnh chụp không được sửa chữa.
Tuy nhiên, datastax blog của addresses this issue:
giai đoạn đầu tiên này có thể chuyên sâu về io đĩa, tuy nhiên. Bạn có thể giảm thiểu điều này ở mức độ nào đó với điều chỉnh nén chặt (vì giai đoạn này là cái mà chúng ta gọi là nén chặt hợp lệ.) Đôi khi điều đó không đủ, và một số người cố gắng giảm thiểu điều này bằng cách sử dụng -pr (-partitioner-range) tùy chọn để sửa chữa nodetool, mà chỉ sửa chữa phạm vi chính cho nút đó. Thật không may, các bản sao khác cho phạm vi đó sẽ vẫn phải thực hiện tính toán cây Merkle, gây ra một sự nén chặt hợp lệ. Điều này có thể là một vấn đề, vì tất cả các bản sao sẽ làm cùng một lúc, có thể làm cho tất cả chúng chậm để phản hồi phần dữ liệu của bạn. May mắn thay, có cách xung quanh điều này bằng cách sử dụng tùy chọn -snapshot.
Đó có thể là tốt đẹp, nhưng trên thực tế, không có -snapshot
lựa chọn cho nodetool repair
(xem manpage, hoặc documentation) (đã tùy chọn này được gỡ bỏ ?!)
Vì vậy, tổng thể,
- Tôi không thể sử dụng
nodetool repair -pr
, có vẻ như, bởi vì tôi luôn luôn cần ít nhất để giữ cho hệ thống đủ đáp ứng để đọc/ghi với tính nhất quán ONE, mà không có sự chậm trễ đáng kể. (Lưu ý: Chúng tôi chỉ có một trung tâm dữ liệu.) Hoặc tôi thiếu/hiểu nhầm điều gì đó? - Tại sao là
nodetool repair
thông minh, giữ một nút đáp ứng, trong khinodetool repair -pr
khiến tất cả các nút làm chậm một phần dữ liệu? - Tùy chọn
-snapshot
: Địa chỉ này đã bị xóa, không bao giờ được triển khai hoặc hiện tại có thể tự động hoạt động như thế, cũng như khi sử dụngnodetool repair -pr
?
Dường như an toàn để giả sử có một tùy chọn chụp nhanh tại thời điểm blog được viết (tháng 7 năm 2013) vì tài liệu Cassandra 1.2 nói về tùy chọn sửa chữa nodetool -snapshot: http://www.datastax.com/documentation/cassandra/ 1.2/cassandra/operation/ops_repair_nodes_c.html. – catpaws
Tài liệu này có một số thông tin sử dụng nodetool (tùy chọn -pr không được khuyến nghị) và bao gồm các ví dụ về cách sử dụng tùy chọn song song (par). http://www.datastax.com/documentation/cassandra/2.1/cassandra/tools/toolsRepair.html?scroll=toolsRepair__toolsRepairTypes – catpaws
@catpaws: Cảm ơn, cả nhận xét của bạn đều chứa một số thông tin rất có giá trị (thực tế là không có trong 2.0 tài liệu)! –