-
- Downloads
Speed up calculation of effective_ancestors (#47324)
Previously, `visible-collection-ids` was effectively "free" in that we'd cached `collection-id->collection` for *all* collections, within a single request, and then locally filtered it for permissions without needing to hit the database again. To be honest, there is probably a better fix for this - we're repeatedly calling `visible-collection-ids` when we probably could just save a single copy of it and use it when calculating the effective location of every collection. However, this is a very quick and low-risk fix, and I want to prioritize getting this done, and then we can improve it later. Locally, I copied down the database from stats and timed the `/api/search?model_ancestors=true` endpoint. Before my "speedup" PR (https://github.com/metabase/metabase/pull/46942) it took ~7 seconds to return results. After my "speedup" PR, it took ~15s to return results. :grimace: With this change, it takes 818ms to return results.
Please register or sign in to comment