summaryrefslogtreecommitdiffstats
path: root/contrib/python/python-dateutil/py3/dateutil/parser/_parser.py
diff options
context:
space:
mode:
authorDaniil Demin <[email protected]>2024-02-18 13:43:26 +0300
committerGitHub <[email protected]>2024-02-18 13:43:26 +0300
commitb92e8dcc59dcdb26b8bcfcf08954c3efb4366a13 (patch)
tree24e8efc1d0649dc1d110a4008c2488e15ec327aa /contrib/python/python-dateutil/py3/dateutil/parser/_parser.py
parent212a0c0abbbdf2ddf5abde5d97aa1e3c700ffcdc (diff)
Invalidate query compilation cache entries with outdated VIEWs (#1960)
In this PR we add the following algorithm for invalidating cache entries for outdated VIEWs: 1. Store path ids and schema versions of the views that were used in the query in the cache entries, so they can be accessed later. 2. Whenever we retrieve a compilation result from cache, send a request for SchemeCache to check if the schema version of the views used in this query (if any) has not changed since we compiled this query. 3. Send a recompilation request if any view is outdated. There are two important things to note about this solution: - We make a SchemeCache request for each repeated query and there is a lot of these in an OLTP-focused database like YDB. However, we have already been sending these request for preliminary (this is not the last check of schema version mismatch (at least for tables)) cache invalidation for tables, so views should not incur an additional performance impact here. - This solution does not guarantee strong consistency for queries using views, because query cache invalidation will not happen instantly after the view definition is updated. The node should get an update from the SchemeCache, which takes some time.
Diffstat (limited to 'contrib/python/python-dateutil/py3/dateutil/parser/_parser.py')
0 files changed, 0 insertions, 0 deletions