the solution seems to be trivial: implement caching on a client
side. simple
solution is to cache data within single transaction. complex
solution is to
cache data accross transaction, tracking changes and invalidating
stale
cache entries automatically.
we've implemented both options. so now it's possible to have all slots
cached on a Lisp side. as long as there are much more reads than
writes
(which is common for web applications, for example), strain on a
database is
significantly decreased. all index queries (select object by value
or by
range) still work via database, but typically there's much more slot
queries
than index queries.
Is this caching something that we could import into BDB? There are
certainly occasions for caching slot values as well as object
references. Robert and I once talked about adding a slot policy for
write-through caching but never got around to it...
Ian
_______________________________________________
elephant-devel site list
elephant-devel@common-lisp.net
http://common-lisp.net/mailman/listinfo/elephant-devel