Details
-
Type:
Task
-
Status: Open
-
Priority:
Minor
-
Resolution: Unresolved
-
Fix Version/s: None
-
Component/s: None
-
Labels:
Description
Created a thread that monitors and cleans up the Query Cache. When an update/insert is made to a table, all queries from that table could be simply marked as invalid and later, the reaper thread could come in to actually return the invalid blocks to the memory system. Same thing with inserting into a full query cache, instead of immediately removing the oldest row, track the N number of oldest rows, just mark the rows as invalid, and have the query not be cached at that point At some point in the future, the oldest ones will be removed by the reaper along with any additional invalid queries and caching will work as normal from there.
Gliffy Diagrams
Attachments
Issue Links
Activity
- All
- Comments
- Work Log
- History
- Activity
- Transitions
i think it's something that could be better implemented with table counters
if a table change increase the table counter, and if the query have a counter different from the table counter it's invalid, ok a background process to clean (garbage collect) is wellcome but must check how to allow a good lock (mdev-4454)
other think is table 'partition' using query cache, if some part of table is changed only that part is invalidate not full table (MDEV-4676)
check if this mdev isn't duplicated, if it is please request to close as duplicate