Thực tế là một số địa chỉ IP nóng hơn - nhận được nhiều lượt đọc hoặc ghi hơn so với các địa chỉ khác - thường không phải là vấn đề lớn và là điều khá bình thường. Scylla sẽ phân chia chúng ngẫu nhiên giữa các nút khác nhau (và lõi trên mỗi nút) và miễn là bạn có nhiều phân vùng nóng hơn đáng kể so với các lõi trong cụm của bạn, tải - và mức sử dụng đĩa - sẽ khá cân bằng.
Mọi thứ có thể trở nên khác nhau trong các trường hợp cực đoan, chẳng hạn như khi mỗi bản cập nhật phát triển một phân vùng (nghĩa là thêm một hàng vào đó) và chỉ một vài phân vùng cực kỳ nóng. Ví dụ: bạn có thể tưởng tượng một cơ sở dữ liệu được sử dụng để ghi nhật ký yêu cầu và ngoài một triệu khách hàng bình thường với 10 yêu cầu mỗi ngày, nó cũng có 10 "kẻ tấn công" thực hiện một triệu yêu cầu mỗi ngày. Trong những trường hợp cực đoan như vậy, bạn có thể thấy mình có một số nút mang tải không gian và / hoặc không gian đĩa nhiều hơn đáng kể so với các nút khác. Các trường hợp cực đoan như vậy cũng có thể gây ra các vấn đề khác: Mặc dù sự hỗ trợ của Scylla cho các phân vùng lớn đã được cải thiện gần đây, nhưng nó vẫn không hoàn hảo, và nếu bạn có thể tránh các trường hợp cực đoan như vậy, thì tốt hơn.
Cuối cùng, nếu tôi quay lại câu hỏi ban đầu của bạn, "Việc sử dụng địa chỉ IP làm khóa chính có phải là một cách thực hành tốt trong scylla db không?", Câu trả lời là "có, nhưng":
Đó là "có" vì Scylla không có vấn đề cụ thể với địa chỉ IP làm khóa - nó phân phối địa chỉ IP khác nhau cho các nút khác nhau một cách ngẫu nhiên (sử dụng hàm băm "murmur3") nên không có vấn đề cụ thể nào về việc địa chỉ IP bị vón cục cùng nhau (ví dụ: nhiều máy khách từ cùng một mạng con không được gửi đến cùng một nút cụm).
Đó là "nhưng" bởi vì vấn đề không phải là địa chỉ IP dưới dạng khóa, mà là nội dung của phân vùng bạn dự định lưu trữ và tần suất cập nhật - và kích thước - cho các phân vùng khác nhau.
Ồ, và một lưu ý cuối cùng:
Nếu bạn đang sử dụng Chiến lược nén cấp bậc (STCS), mức sử dụng không gian đĩa tối đa tại bất kỳ thời điểm cụ thể nào có thể khá cao hơn lượng dữ liệu thực tế được lưu trữ. Nếu khối lượng công việc của bạn quá nhiều ghi đè (dữ liệu không được thêm vào, nhưng thay vào đó, bị xóa, v.v.), trước khi quá trình nén hoàn thành công việc, dữ liệu trên đĩa rất có thể gấp đôi lượng dữ liệu thực. Nếu đây là trường hợp, nếu bạn kiểm tra hệ thống tại một thời điểm ngẫu nhiên, bạn sẽlưu ý rằng một số nút có nhiều dữ liệu trên đĩa hơn các nút khác, tùy thuộc vào vị trí ngẫu nhiên của chúng trong công việc nén khi bạn thực hiện phép đo này. Một cái gì đó bạn có thể làm để xác minh xem đây có phải là thứ bạn đang thấy là để gọi "nén chính" trên tất cả các nút và đo mức sử dụng đĩa sau đó - hy vọng sẽ thấy mức sử dụng không gian đĩa đồng đều hơn nhiều trên các nút.