Hey Ori!
Am 02.10.2014 06:45, schrieb Ori Livneh:
I'm embarrassed to say that I don't know
nearly enough about Wikidata to be able
to make a recommendation. Where would you recommend I look if I wanted to
understand the caching architecture?
And I'm embarressed to say that we have very little high level documentation.
There is no document on the overall caching architecture.
The use case in question is accessing data Items (and other Entities, like
Properties) from client wikis like Wikipedia. Entities are accessed through an
EntityRevisionLookup service; CachingEntityRevisionLookup is an implementation
of EntityRevisionLookup that takes an "actual" EntityRevisionLookup (e.g. a
WikiPageEntityRevisionLookup) and a BagOStuff, and implements a caching layer.
We use two CachingEntityRevisionLookup nested into each other: the outer-most
uses a HashBagOStuff to implement in-process caching, the second level uses
memcached. The objects that are cached there are instances of EntityRevision,
which is a thin wrapper around an Entity (usually, an Item) plus a revision ID.
Please let me know if you have further questions!
-- daniel
PS: what do you think, where should this info go? Wikibase/docs/caching.md or
some such?
--
Daniel Kinzler
Senior Software Developer
Wikimedia Deutschland
Gesellschaft zur Förderung Freien Wissens e.V.