2015-03-06 32 views
11

Về mặt lý thuyết, Cassandra cho phép lên đến 2 tỷ cột trong một hàng rộng.Tối đa. kích thước của hàng rộng?

Tôi đã nghe nói rằng trong thực tế lên đến 50.000 cols/50 MB là tốt; 50.000-100.000 cols/100 MB là OK nhưng yêu cầu một số điều chỉnh; và không được vượt quá 100.000/100 MB cột mỗi hàng. Lý do là điều này sẽ gây áp lực lên heap.

Có sự thật nào về điều này không?

+0

You "đã nghe nói" ở đâu? –

+1

Điều đó có liên quan không? – tbsalling

Trả lời

17

Trong Cassandra, the maximum number of cells (rows x columns) in a single partition is 2 billion. Ngoài ra, một giá trị cột đơn có thể không lớn hơn 2GB, nhưng trên thực tế, "các chữ số đơn của MB" là một giới hạn hợp lý hơn vì không có truy cập trực tiếp hoặc ngẫu nhiên các giá trị blob.

Phân vùng lớn hơn 100Mb có thể gây ra áp lực đáng kể cho vùng heap.

2

Một trong các bảng của chúng tôi với cassandra 1.2 đã vượt qua 100 MB cột mỗi giới hạn hàng do các mẫu viết mới mà chúng tôi đã gặp phải. Chúng tôi đã trải qua những áp lực đáng kể đối với cả hai phân tích và bộ nhớ cache của chúng tôi. Btw, chúng tôi có hàng với hàng trăm MB.

Một cách tiếp cận là chỉ cần thiết kế lại và di chuyển bảng sang một bảng được thiết kế tốt hơn để giữ cho các hàng rộng của bạn dưới giới hạn đó. Nếu đó không phải là một lựa chọn, sau đó tôi đề nghị điều chỉnh cassandra của bạn để cả hai compactions và cache configs có thể đối phó với hàng rộng của bạn một cách hiệu quả.

Một số liên kết thú vị để mọi thứ để điều chỉnh:

Cassandra Performance Tuning

in_memory_compaction_limit_in_mb

Các vấn đề liên quan