Commit cab4dd52 authored by Kirill Smelkov's avatar Kirill Smelkov

go/zodb: Allow to set live cache control policy

This allows for applications to tune eviction strategy for their needs.
The interface to do so (LiveCacheControl) was defined previously in
c67ff9ea (go/zodb: Connection: Allow applications to tune live-cache
eviction policy), but so far there was no way to install cache
controller. Fix it.
parent e2d902b0
...@@ -180,6 +180,16 @@ func (cache *LiveCache) Get(oid Oid) IPersistent { ...@@ -180,6 +180,16 @@ func (cache *LiveCache) Get(oid Oid) IPersistent {
return obj return obj
} }
// SetControl installs c to handle cache decisions.
//
// Any previously installed cache control is uninstalled.
// Passing nil sets the cache to have no control installed at all.
//
// It is not safe to call SetControl simultaneously to other cache operations.
func (cache *LiveCache) SetControl(c LiveCacheControl) {
cache.control = c
}
// get is like Get, but used when we already know object class. // get is like Get, but used when we already know object class.
// //
// Use-case: in ZODB references are (pyclass, oid), so new ghost is created // Use-case: in ZODB references are (pyclass, oid), so new ghost is created
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment