You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
perf(common): improve equality caching by explicitly invalidating the entry on __del__ (ibis-project#8708)
Previously we used a rather complicated mechanism to implement global
equality cache for operation nodes involving tricky weak reference
tracking registering callbacks to invalidate cache entries.
While this has greatly improved the overall performance of ibis
internals we can have a simpler and more lightweight implementation by
storing the equality comparison results in a `dict[dict[object_id,
bool]]` data structure which allows us quick lookups and quick
deletions. The caching is also specialized to a pair of objects in
contrary to the previous `WeakCache` implementation which supported
arbitrary number of key elements requiring multiple iterations over the
key tuple.
0 commit comments