Làm thế nào để giải quyết một nén chặt bị mắc kẹt trong Apache Cassandra?


14

Tôi đã có một cụm Cassandra một nút hiện đang bị kẹt trong một quá trình nén chính. Sau khi thực hiện, nodetool compactnó bắt đầu nén và tôi thấy các tệp ổn định tmp với kích thước 0 byte. Nhưng đó là tất cả. Không có tiến bộ trong nhiều giờ.

Tôi đã dừng dịch vụ Cassandra, nhưng sau khi khởi động lại, nó tiếp tục nén lại mà không tiến triển. A nodetool compactionstatscho thấy tiến độ 0,00% và thời gian còn lại là sáu phút. Nhưng tôi đã đợi 24 giờ rồi. Trong khi đó, tôi đã dừng tất cả các độc giả và nhà văn mà không thấy bất kỳ sự khác biệt.

Phiên bản tôi sử dụng là 2.1.2. Tôi đã thử với OpenJDK 7 và với Java 7 của Oracle, nhưng không có gì khác biệt.

Các nhật ký cho thấy không có dấu hiệu của OOM hoặc bất kỳ ngoại lệ hoặc cảnh báo nào khác.

Tôi không chắc nó có giúp được gì không, nhưng hiện tại tôi đang di chuyển khỏi Cassandra vì nó không phù hợp với nhu cầu của tôi. Vì vậy, tôi xóa rất nhiều dữ liệu đã được di chuyển. Có nhiều hàng với vài trăm đến vài nghìn cột. Nhưng có một số hàng với hàng triệu cột. Bây giờ họ có rất nhiều bia mộ trong đó do quá trình di chuyển (xóa).

Bất kỳ trợ giúp trong cách gỡ lỗi vấn đề đều được chào đón.


chỉ là một ý tưởng, bạn đã xem / var / log / syslog hay nơi nào sẽ được ghi lại một cái gì đó giống như nhiều tệp mở / VM maxmem?
Antony Gibbs

@AntonyGibbs Không có gì như vậy. Nó là một máy chủ vật lý áp đảo. Các dịch vụ khác chạy trơn tru bên cạnh Cassandra.
mailq

1
Bạn đã kiểm tra xem quy trình có bị ràng buộc CPU, bị ràng buộc I / O hoặc bị chặn chờ đợi điều gì khác không?
kasperd

1
các thiết lập của máy ảo java đã khởi chạy là gì? có thể là một máy chủ mạnh mẽ, nếu phiên bản java bị giới hạn ở 128M, nó sẽ không nhận được nhiều hơn. Âm thanh không có gì trong các bản ghi khiến tôi nghĩ rằng giới hạn bộ nhớ ...
Antony Gibbs

1
đầu ra ulimit -atừ bảng điều khiển người dùng Cassandra có thể tiện dụng.
Antony Gibbs

Câu trả lời:


1

Tôi không phải là chuyên gia về cassandra, nhưng bạn đã thử gật đầu dừng nén và để đặt ngưỡng cho quá trình nén (setcompactionthrưỡng thành 0), vì vậy hệ thống sẽ không thử lại


gật đầu dừng lại - TÍNH TOÁN Nó không giúp được gì. Công việc vẫn đang diễn ra.
Jigar Shah

@JigarShah Câu hỏi tương tự như OP? bạn có thể nên hỏi một câu hỏi mới để thu hút câu trả lời mới. Vì có thể giải pháp của tôi không giúp được bạn, nhưng đã giúp OP
yagmoth555
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.