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
I believe there are a number of issues related to the DASHBOARD_CACHE feature which is currently defined as being in development. These issues are evident when editing dashboard metadata, i.e., adding an owner, and the upon re-editing the previous edits are not shown given that the cached response is leveraged.
The clear_cache method (or similar) does not clear the etag caches associated with the DashboardRestApi responses defined here.
The etag_cache logic may not be correct regarding exposing how the cache key is made and thus when one tries to delete the memoized object, i.e., cache_manager.cache.delete_memoized(DashboardRestApi.get, self.id) (or similar) the cache key is different. Note Flask-Caching memoization is complex and I think we should try to lean heavily on their own memoize function and merely wrap it in a similar vein to Memoization with Locking #15396.
Note I'm not sure whether the upside of caching metastore queries (which needs a very robust cache eviction policy as one needs to read their own writes) is warranted. It's also unclear whether the ETag cache logic can/should be decoupled from the DASHBOARD_CACHE feature.
Environment
(please complete the following information):
superset version: superset version
python version: python --version
node.js version: node -v
Checklist
Make sure to follow these steps before submitting your issue - thank you!
I have checked the superset logs for python stacktraces and included it here as text if there are any.
I have reproduced the issue with at least the latest released version of superset.
I have checked the issue tracker for the same issue and I haven't found one similar.
Additional context
Add any other context about the problem here.
The text was updated successfully, but these errors were encountered:
To keep things simple, I think we should get rid of etag_cache and utilize only internal authentication-free cache at the Dashboard resource level. The API can have special logics to read from a cached dict instead of Dashboard entity.
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. For admin, please label this issue .pinned to prevent stale bot from closing the issue.
I believe there are a number of issues related to the
DASHBOARD_CACHE
feature which is currently defined as being in development. These issues are evident when editing dashboard metadata, i.e., adding an owner, and the upon re-editing the previous edits are not shown given that the cached response is leveraged.Specifically:
check_modified and not object_session(obj).is_modified(obj)
check evaluates toTrue
when updating the dashboard meaning the cache is not cleared.clear_cache
method (or similar) does not clear the etag caches associated with the DashboardRestApi responses defined here.etag_cache
logic may not be correct regarding exposing how the cache key is made and thus when one tries to delete the memoized object, i.e.,cache_manager.cache.delete_memoized(DashboardRestApi.get, self.id)
(or similar) the cache key is different. Note Flask-Caching memoization is complex and I think we should try to lean heavily on their own memoize function and merely wrap it in a similar vein to Memoization with Locking #15396.Note I'm not sure whether the upside of caching metastore queries (which needs a very robust cache eviction policy as one needs to read their own writes) is warranted. It's also unclear whether the ETag cache logic can/should be decoupled from the
DASHBOARD_CACHE
feature.Environment
(please complete the following information):
superset version
python --version
node -v
Checklist
Make sure to follow these steps before submitting your issue - thank you!
Additional context
Add any other context about the problem here.
The text was updated successfully, but these errors were encountered: