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]

Reply via email to