-
Notifications
You must be signed in to change notification settings - Fork 4
Multi tier shm attach #99
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
@byrnedj Is the problem with LRU estimation caused by the fact that we allocate items with different sizes? Could we just use single allocation size for this test? Also, I think you should split the testMultiTierSerialization into 2 tests. |
No, the problem is that in multi-tier the entire LRU (compared to single tier) is split between tier 0 and tier 1, and if we fail to move an item from tier 0 to tier 1, it gets evicted, so the estimation technique will think LRU size is however many items it took for that item to get evicted. And because it was evicted out of tier 0 - then the estimation will too small. Because actual LRU size (tier 0 + tier 1) would be when the item gets evicted out of tier 1.
|
But why does moving the items fail? Can't we perform item insertion deterministically? |
0f92147
to
1e8481b
Compare
Using only 1 class removes the tests LRU estimation failure. I updated the test accordingly. I don't think it makes sense to split into two cases since testMultiTierSerialization should create a cache and then try to reattach to it (verifying the expected state). |
1e8481b
to
7adad89
Compare
09d7bab
to
ebfca17
Compare
7adad89
to
23f1100
Compare
I disabled slab release in test due to some error with
pruneFreeAllocations
- we can discuss if there is a simple solution to storing multi-tier/single tier compressed pointer in the FreeLists (see AllocationClass.cpp andpruneFreeAllocations
method.The test also sporadically fails due to difficulties in estimating multi-tier LRU size. The current estimation method inserts an new item to the cache and waits for it to be evicted after a number of successive allocations of new arbitrary objects. The problems are the following:
I'm open to suggestions on how to improve the LRU estimation or test.
This change is