• Cách cache hoạt động
Nếu cả cache dòng và khóa đều được cấu hình, row cache sẽ trả về kết quả bất cứ khi nào có thể. Trong trường hợp row cache ko tìm thấy, key cache vẫn còn hit. Giả sử nó nắm một lượng lớn key hơn là row cache
Nếu một tác vụ đọc hit row cache toàn bộ row được request được trả về mà hok cần phải seek đĩa. Nếu row không nằm trong row cache nhưng nằm trong key cache, key cache sẽ tìm chính xác vùng của row trên đĩa trong SSTable. Nếu row ko nằm trong key cache, tác vụ đọc sẽ populate key cache sau khi truy cập row trên đĩa vì vậy. Mỗi hit trên key cache sẽ tiết kiệm một lần seek đĩa trên SSTable • Cấu hình key cache cho Column Family
Key cache nắm dữ vị trí của row key trong bộ nhớ. Tuning ở level này có thể tối ưu tác vụ đọc khi có một lượng lớn row được truy cấp thường xuyên
Cache của 200000 row key được enable mặc định. Bạn có thể setting bang keys_cached lên column family
[default@demo] UPDATE COLUMN FAMILY users WITH keys_cached=205000; • Cấu hình row cache cho Column Family
Row cache nắm dữ hoàn toàn nội dung của row trong bộ nhớ. Trong trường hợp row có kích thước lớn hoặc thay đổi thường xuyên thì row cache ko hiệu quả. Vì lý do này, row cache bị disable mặc định
Row cache vẫn còn disable cho column family với nhiều row hoặc tỉ lệ đọc ghi cao. Trong ngữ cảnh này, row cache có thể tiêu tốn một lượng lớn bộ nhớ. Chú ý rằng khi một row cache thực hiện hiệu quả,nó dữ cho process compaction java gabarge rất chủ động
Row cache tốt cho workload cái mà truy cập một tập nhỏ trong tổng số các row trong những row đó hầu hết các cột được trả về.
Để enable row cache trong Cassandra set rows_cached với số row mong muốn.