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: [email protected]
For additional commands, e-mail: [email protected]