On 08/25/2011 06:00 AM, Caleb James DeLisle 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;
> }
In the issue you mention two fields, did you find a way to do it with
only one?
Personally, I would prefer to fix the way we request things from the
cache, so that there aren't different requests for the same thing, but I
know that is hard to fix and much harder to impose on API users.
+1.
>
> WDYT?
--
Sergiu Dumitriu
http://purl.org/net/sergiu/
_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs