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

Reply via email to