Re: [HACKERS] Logical Replication WIP
| От | Peter Eisentraut |
|---|---|
| Тема | Re: [HACKERS] Logical Replication WIP |
| Дата | |
| Msg-id | 1fa34103-6689-50c0-7b14-0a9e8bdb2dba@2ndquadrant.com обсуждение исходный текст |
| Ответ на | Re: [HACKERS] Logical Replication WIP (Petr Jelinek <petr.jelinek@2ndquadrant.com>) |
| Ответы |
Re: [HACKERS] Logical Replication WIP
Re: [HACKERS] Logical Replication WIP |
| Список | pgsql-hackers |
In 0001-Add-PUBLICATION-catalogs-and-DDL-v16.patch.gz,
+static bool
+is_publishable_class(Oid relid, Form_pg_class reltuple)
+{
+ return reltuple->relkind == RELKIND_RELATION &&
+ !IsCatalogClass(relid, reltuple) &&
+ reltuple->relpersistence == RELPERSISTENCE_PERMANENT &&
+ /* XXX needed to exclude information_schema tables */
+ relid >= FirstNormalObjectId;
+}
I don't think the XXX part is necessary, because IsCatalogClass()
already checks for the same thing. (The whole thing is a bit bogus
anyway, because you can drop and recreate the information schema at run
time without restriction.)
+#define MAX_RELCACHE_INVAL_MSGS 100
+ List *relids = GetPublicationRelations(HeapTupleGetOid(tup));
+
+ /*
+ * We don't want to send too many individual messages, at some point
+ * it's cheaper to just reset whole relcache.
+ *
+ * XXX: the MAX_RELCACHE_INVAL_MSGS was picked arbitrarily, maybe
+ * there is better limit.
+ */
+ if (list_length(relids) < MAX_RELCACHE_INVAL_MSGS)
Do we have more data on this? There are people running with 100000
tables, and changing a publication with a 1000 tables would blow all
that away?
Maybe at least it should be set relative to INITRELCACHESIZE (400) to
tie things together a bit?
Update the documentation of SharedInvalCatalogMsg in sinval.h for the
"all relations" case. (Maybe look around the whole file to make sure
comments are still valid.)
--
Peter Eisentraut http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
В списке pgsql-hackers по дате отправления: