Re: type cache cleanup improvements
Artur Zakirov <zaartur@gmail.com>
Commits
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Maintain RelIdToTypeIdCacheHash in TypeCacheOpcCallback()
- bb78e4267817 18.0 landed
-
Fix concurrrently in typcache_rel_type_cache.sql
- aa1e898dea66 18.0 landed
-
Avoid looping over all type cache entries in TypeCacheRelCallback()
- b85a9d046efd 18.0 landed
- c14d4acb8134 18.0 landed
-
Update header comment for lookup_type_cache()
- c1500a1ba7e1 18.0 landed
-
Revert: Avoid looping over all type cache entries in TypeCacheRelCallback()
- 8daa62a10c91 18.0 landed
-
Introduce hash_search_with_hash_value() function
- d0f020037e19 18.0 landed
-
Optimize InvalidateAttoptCacheCallback() and TypeCacheTypCallback()
- 40064a8ee1b3 18.0 landed
-
Refactor initial hash lookup in dynahash.c
- cc5ef90edd80 17.0 landed
-
Rationalize and improve error messages for some jsonpath items
- 92d2ab7554f9 17.0 cited
-
Avoid race in RelationBuildDesc() affecting CREATE INDEX CONCURRENTLY.
- fdd965d074d4 15.0 cited
-
Represent Lists as expansible arrays, not chains of cons-cells.
- 1cff1b95ab6d 13.0 cited
On Tue, 15 Oct 2024 at 10:09, Alexander Korotkov <aekorotkov@gmail.com> wrote: > > /* Call check_delete_rel_type_cache() if we actually cleared something */ > > if (hadTupDescOrOpclass) > > delete_rel_type_cache_if_needed(typentry); > > > > /* > > * Call check_delete_rel_type_cache() if we cleaned > > * TCFLAGS_HAVE_PG_TYPE_DATA flag previously. > > */ > > if (hadPgTypeData) > > delete_rel_type_cache_if_needed(typentry); > > > > check_delete_rel_type_cache don't exist, so these comments are wrong? > > Yep, they didn't get updated. Fixed in the attached patchset. Thank you Alexander for the fixes. The last version of the patch looks good to me. > I'm not sure I get the point. This check ensures that type entry has > something to be cleared. In this case we need to keep > RelIdToTypeIdCacheHash entry to find this item on invalidation > message. I'm not sure how TCFLAGS_DOMAIN_BASE_IS_COMPOSITE is > relevant here, because it's valid only for TYPTYPE_DOMAIN while this > patch deals with TYPTYPE_COMPOSITE. Regarding this discussion earlier, I assumed that TYPTYPE_DOMAIN also needs to be handled by `insert_rel_type_cache_if_needed()`. And it seems that handling of TYPTYPE_DOMAIN will remain the same as before. -- Kind regards, Artur