go/zodb: DB: handle invalidations
Implement invalidation handling to teach DB to reuse Connections from connection pool: after connection is returned to the pool on transaction completion, we can use this connection for next DB.Open(at) request, by seeing which objects we changed in conn.at..at range and invalidating those objects in connection live cache. To know which objects were changed, DB adds watch on its storage and maintains some history tail (using ΔTail - see previous commit). Finally add test for both DB and Connection, and also for Persistent, LiveCache, ... - as all those application-level components are tightly inter-related.
1 parent d8e9d7a9