+453 votes
,post bởi

Điều đầu tiên mà bạn muốn tìm kiếm là liệu các bảng của bạn có các phân vùng quá lớn hay nói cách khác là quá rộng. Kích thước phân vùng được đo bằng số lượng ô (giá trị) được lưu trữ trong phân vùng. Giới hạn cứng của Cassandra là 2 tỷ ô trên mỗi phân vùng, nhưng bạn có thể gặp phải các vấn đề về hiệu suất trước khi đạt đến giới hạn đó.

Để tính kích thước của các phân vùng, hãy sử dụng công thức sau:

\[N_v = N_r (N_c - N_{pk} - N_s) + N_s\]

Số lượng giá trị (hoặc ô) trong phân vùng (N v ) bằng số cột tĩnh (N s ) cộng với tích của số hàng (N r ) và số lượng giá trị trên mỗi hàng. Số giá trị trên mỗi hàng được định nghĩa là số cột (N c ) trừ đi số cột khóa chính (N pk ) và cột tĩnh (N s ).

Số cột có xu hướng tương đối tĩnh, mặc dù có thể thay đổi bảng trong thời gian chạy. Vì lý do này, trình điều khiển chính của kích thước phân vùng là số hàng trong phân vùng. Đây là một yếu tố quan trọng mà bạn phải xem xét trong việc xác định liệu một phân vùng có khả năng trở nên quá lớn hay không. Hai tỷ giá trị nghe có vẻ nhiều, nhưng trong một hệ thống cảm biến nơi hàng chục hoặc hàng trăm giá trị được đo mỗi mili giây, số lượng giá trị bắt đầu tăng lên khá nhanh.

Chúng ta hãy xem một trong các bảng để phân tích kích thước phân vùng. Vì nó có thiết kế vách ngăn rộng mỗi khách sạn 1 vách ngăn nên nhìn vào available_rooms_by_hotel_datebảng. Bảng có tổng cộng bốn cột (N c = 4), bao gồm ba cột khóa chính (N pk = 3) và không có cột tĩnh (N s = 0). Cắm các giá trị này vào công thức, kết quả là:

\[N_v = N_r (4 - 3 - 0) + 0 = 1N_r\]

Do đó, số lượng giá trị cho bảng này bằng với số lượng hàng. Bạn vẫn cần xác định một số hàng. Để làm điều này, hãy ước tính dựa trên thiết kế ứng dụng. Bảng đang lưu trữ một bản ghi cho mỗi phòng, trong mỗi khách sạn, cho mỗi đêm. Giả sử hệ thống sẽ được sử dụng để lưu trữ hàng tồn kho trong hai năm cùng một lúc và có 5.000 khách sạn trong hệ thống, với trung bình 100 phòng trong mỗi khách sạn.

Vì có một phân vùng cho mỗi khách sạn nên số hàng ước tính cho mỗi phân vùng như sau:

\[N_r = 100 phòng/khách sạn \lần 730 ngày = 73.000 hàng\]

Số lượng hàng tương đối nhỏ trên mỗi phân vùng này sẽ không khiến bạn gặp quá nhiều rắc rối, nhưng nếu bạn bắt đầu lưu trữ nhiều ngày kiểm kê hơn hoặc không quản lý tốt kích thước của khoảng không quảng cáo bằng TTL, thì bạn có thể bắt đầu gặp sự cố. Bạn vẫn có thể muốn xem xét việc chia nhỏ phân vùng lớn này, bạn sẽ thấy cách thực hiện ngay sau đây.

Khi thực hiện tính toán kích thước, bạn nên giả sử trường hợp danh nghĩa hoặc trường hợp trung bình cho các biến chẳng hạn như số lượng hàng. Cân nhắc cả việc tính toán trường hợp xấu nhất, vì những loại dự đoán này có cách trở thành hiện thực trong các hệ thống thành công.

Your answer

Your name to display (optional):
Privacy: Your email address will only be used for sending these notifications.
Anti-spam verification:
To avoid this verification in future, please log in or register.
...