Tùy chỉnh cache

Một phần của tài liệu tìm hiểu hệ quản trị cơ sở dữ liệu phân tán cassandra (Trang 33 - 34)

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.

Một phần của tài liệu tìm hiểu hệ quản trị cơ sở dữ liệu phân tán cassandra (Trang 33 - 34)