Tôi đã lấy một lớp cơ sở dữ liệu trong học kỳ này và chúng tôi đang nghiên cứu về việc duy trì tính nhất quán của bộ đệm giữa RDBMS và một máy chủ cache như memcached. Các vấn đề nhất quán phát sinh khi có điều kiện chủng tộc. Ví dụ:Tính nhất quán của Cache khi sử dụng memcached và rdbms như MySQL
- Giả sử tôi làm
get(key)
từ bộ nhớ cache và thiếu bộ nhớ cache. Bởi vì tôi nhận được một bộ nhớ cache bỏ lỡ, tôi lấy dữ liệu từ cơ sở dữ liệu, và sau đó làm mộtput(key,value)
vào bộ nhớ cache. - Tuy nhiên, điều kiện chủng tộc có thể xảy ra, trong đó một số người dùng khác có thể xóa dữ liệu tôi đã tìm nạp từ cơ sở dữ liệu. Việc xóa này có thể xảy ra trước khi tôi thực hiện
put
vào bộ nhớ cache.
Do đó, lý tưởng là put
vào bộ nhớ cache sẽ không xảy ra vì dữ liệu còn tồn tại trong cơ sở dữ liệu.
Nếu mục nhập bộ nhớ cache có TTL, mục nhập trong bộ nhớ cache có thể hết hạn. Nhưng vẫn còn, có một cửa sổ nơi dữ liệu trong bộ nhớ cache không phù hợp với cơ sở dữ liệu.
Tôi đã tìm kiếm các bài báo/tài liệu nghiên cứu nói về loại vấn đề này. Nhưng, tôi không thể tìm thấy bất kỳ tài nguyên hữu ích nào.
hãy giải thích cách điều kiện chủng tộc được đề cập trong câu hỏi được khắc phục. câu trả lời của bạn dường như không giải quyết được vấn đề. – Alexey