Tôi đang xem xét việc triển khai CF trong Cassandra có hàng rất dài (hàng trăm nghìn đến hàng triệu cột mỗi hàng).Hiệu suất Cassandra cho các hàng dài
Sử dụng dữ liệu giả hoàn toàn, tôi đã chèn 2 triệu cột vào một hàng duy nhất (khoảng cách đều nhau). Nếu tôi thực hiện một thao tác cắt lát để có được 20 cột, sau đó tôi nhận thấy một sự suy giảm hiệu suất lớn khi bạn thực hiện thao tác cắt lát của bạn xuống dưới hàng. Với hầu hết các cột, tôi dường như có thể phục vụ kết quả lát trong 10-40ms, nhưng khi bạn nhận được vào cuối hàng, hiệu suất chạm vào tường, với thời gian đáp ứng dần dần tăng từ 43ms tại 1.800.000 đánh dấu đến 214ms tại 1.900.000 và 435ms tại 1.999.900! (Tất cả các lát có chiều rộng bằng nhau).
Tôi đang mất một giải thích tại sao có sự suy giảm nghiêm trọng này về hiệu suất khi bạn đến cuối hàng. Ai đó có thể vui lòng cung cấp một số hướng dẫn về những gì Cassandra đang làm trong nội bộ để thực hiện một sự chậm trễ như vậy? Row caching bị tắt và khá nhiều thứ là cài đặt Cassandra 1.0 mặc định.
Giả sử có thể hỗ trợ tối đa 2 tỷ cột mỗi hàng, nhưng với tốc độ tăng hiệu suất này có nghĩa là nó không thể được sử dụng cho các hàng rất dài trong tình huống thực tế.
Rất cám ơn. Hãy nhớ rằng, tôi sẽ nhấn 10 yêu cầu song song tại một thời điểm, đó là lý do tại sao chúng chậm hơn một chút so với mong đợi của tôi, nhưng đó là một thử nghiệm công bằng trên tất cả các yêu cầu và thậm chí chỉ cần thực hiện tất cả các yêu cầu trong sê-ri có sự xuống cấp kỳ lạ này giữa kỷ lục 1.800.000 và 1.900.000.
Tôi cũng nhận thấy hiệu suất cực thấp khi thực hiện đảo ngược lát chỉ cho một mục khi chỉ có 200.000 cột mỗi hàng: query.setRange (kết thúc, bắt đầu, sai, 1);
Cảm ơn câu trả lời psanford! Nó dẫn tôi đi đúng hướng và bây giờ tôi đã tìm ra vấn đề là gì (xem bên dưới) – agentgonzo
Bạn có biết điều này có đúng với bản phát hành hiện tại 1.1.7 không? – Sisso