[Zope-dev] Re: AdaptableStorage
Chris Withers
chrisw@nipltd.com
Mon, 20 Jan 2003 14:23:50 +0000
Shane Hathaway wrote:
> I'm thinking about "real-time" updates. When the underlying data
> changes, you'd like Zope to see the change immediately. If indefinite
> delays are OK, then AdaptableStorage already does enough: it raises a
> ConflictError if you try to write changes based on old data.
I think it depends on how you're using it, so I guess thsi wants to be
configurable. Is that possible?
> The idea I like the most for relational databases is to ask the RDBMS
> what the ID of the last transaction was. If Zope missed a transaction,
> it should flush all caches. This will work if the database is
> infrequently changed by external applications, or if Zope is accessed
> infrequently.
Indeed.
> If external applications make a lot of changes, however, and Zope needs
> good performance at the same time, then both Zope and the external
> applications need to update a per-object transaction ID. Then, at the
> beginning of transactions, Zope would invalidate only the recently
> updated objects. Hmm, perhaps smarter RDBMSs could make it easy to keep
> transaction IDs updated using triggers. (This solution could also
> replace both ZEO and ZRS, BTW. ;-) )
This sounds cool, and the best option, when it's possible...
> On the filesystem, the problem seems much more difficult, since there
> are no transactions. You'd like the kernel to send Zope a message
> anytime someone modifies a file in a certain hierarchy, but that would
> require kernel hacking.
How about having a seperate process which just watched the files and notifed
Zope when they changed?
> For that case, I'm thinking that requiring external apps to touch a
> special file somewhere might be the right thing. At the beginning of
> each transaction, if Zope sees a change to the file, it flushes its cache.
I don't think you can rely on this :-(
> I'm hoping to present a complete tutorial on AdaptableStorage at PyCon
> DC 2003.
I hope you'll make this availabel for those of us who can't make it...
cheers,
Chris