Here I will try to keep track of ideas, development notes and work progress.
First I propose some user stories, in which I dumped first ideas. I borrowed ideas from Andrea's : Datastore caching
I will update these stories as work goes on, and I get a better idea of the needs.
User story #1 : Datastore caching
6. - OPTIONAL - sequential updates
We assume client has some way to identify the version of the copy of the source it currently has.
- using threads
Anchor ideas_threads ideas_threads
The sequence to query the cache I have actually implemented is
- Tracking queries within a quadtree
Anchor ideas_quadtree ideas_quadtree
Most of the cache behavior should be under control of the query tracker, which knows the known parts of the universe and may record how often each part of the universe is accessed.
We can't remember every query, but we can idealize or normalize them by expanding each to a grid. Typically, a tile will be a quadrant of a quadtree, and we approximate a query by the minimum containing quadrant.