You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ozone.apache.org by "Bharat Viswanadham (Jira)" <ji...@apache.org> on 2020/12/12 01:39:00 UTC
[jira] [Created] (HDDS-4583) TableCache Refactor to fix issues in
cleanup never policy
Bharat Viswanadham created HDDS-4583:
----------------------------------------
Summary: TableCache Refactor to fix issues in cleanup never policy
Key: HDDS-4583
URL: https://issues.apache.org/jira/browse/HDDS-4583
Project: Hadoop Distributed Data Store
Issue Type: Bug
Reporter: Bharat Viswanadham
Assignee: Bharat Viswanadham
Right now we have 2 clean up policies.
1. Never
2. Manual
Never = Full Table Cache
Manual = Partial Table Cache
In OM, the main purpose of Table cache is for correctness. (Because OM return response after adding to cache, does not wait for double buffer flush to complete)
The current implementation has few problems.
1. Cleanup Policy Never uses ConcurrentSkipListMap, and its computeIfPresent is not atomic, so there can be a race condition between cleanup and requests adding to cache. (This might cause cleaning up entries which are not flushed to DB, and this can cause correctness issue)
2. Cleanup for override entries for full cache, never removes epoch entries.
*Proposal:*
1. Make TableCache based on cache type and have separate implementation for full cache and partial cache.
2. Fix FullCache issue, using the lock.
3. Fix evict cache logic for full cache to cleanup epoch entries for override entries.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@ozone.apache.org
For additional commands, e-mail: issues-help@ozone.apache.org