On Thu, Aug 25, 2011 at 12:18 PM, Caleb James DeLisle
<[email protected]> wrote:
>
>
> On 08/25/2011 05:56 AM, Thomas Mortagne wrote:
>> On Thu, Aug 25, 2011 at 12:00 PM, Caleb James DeLisle
>> <[email protected]> wrote:
>>> In order to fix a problem with the cache, I would like to add a pointer 
>>> type to the storage api.
>>> The problem with the cache is there are multiple names which, when asked of 
>>> the persistent store,
>>> return the same document. There is no effective way to know what all names 
>>> which will return that
>>> document. When a document is modified, it is removed from the cache but the 
>>> only version removed is it's
>>> "real" name. All of the other names for it linger in the cache eating up 
>>> memory and threatening to
>>> provide someone stale data.
>>> Instead of caching the document, we could cache a pointer to the document 
>>> and when it became stale,
>>> the pointer could be set to null and then any other name under which that 
>>> document was cached would look
>>> up a null pointer and the cache logic could remove it.
>>>
>>> I would like to add it to xwiki-platform-store-api module and it will look 
>>> roughly like this:
>>>
>>> package org.xwiki.store;
>>>
>>> public final class Pointer<T>
>>> {
>>>    /** The thing which this pointer points to. */
>>>    public T target;
>>> }
>>>
>>>
>>> WDYT?
>>
>> Why is there several cache keys for the same document ? Can't we make
>> sure a same document always use the same key ?
>
> When you get a document and put it in the cache, you can put it under it's 
> canonical key which might,
> for instance, be xwiki:Main.WebHome:en but most of the requests for that 
> document will go to
> xwiki:Main.WebHome (which returns the same document from the store). If you 
> refuse to cache under
> any key but the canonical key, you will defeat most of the cache's usefulness.

Why don't you just remove other possible entry from the cache in
XWikiCacheStore#deleteXWikiDoc and XWikiCacheStore#saveXWikiDoc ?

>
> BTW: This is the issue: http://jira.xwiki.org/jira/browse/XWIKI-6170
>
> Caleb
>
>>
>>>
>>> Caleb
>>>
>>> _______________________________________________
>>> devs mailing list
>>> [email protected]
>>> http://lists.xwiki.org/mailman/listinfo/devs
>>>
>>
>>
>>
>
> _______________________________________________
> devs mailing list
> [email protected]
> http://lists.xwiki.org/mailman/listinfo/devs
>



-- 
Thomas Mortagne
_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to