Re: [BUGS] Problem with declarative partitioning and COPY FROM

Поиск
Список
Период
Сортировка
От Ragnar Ouchterlony
Тема Re: [BUGS] Problem with declarative partitioning and COPY FROM
Дата
Msg-id 17d89e08-874b-c1b1-aa46-12d5afb26235@agama.tv
обсуждение исходный текст
Ответ на Re: [BUGS] Problem with declarative partitioning and COPY FROM  (Amit Langote <amitlangote09@gmail.com>)
Список pgsql-bugs
Hi again,

I am testing how declarative partitioning behaves with lots of
partitions.

But when dropping the tables postgresql quickly used up all my memory.

So my test is setting up a table with 10000 partitions. Similar to the
following:

   BEGIN;
   CREATE TABLE myschema.test_table
   (
       time    bigint,
       value   bigint
   )
   PARTITION BY RANGE (time);

   CREATE TABLE myschema.test_table_0
     PARTITION OF test_table
   (
       PRIMARY KEY (time)
   )
   FOR VALUES FROM (0) TO (1000);

   CREATE TABLE myschema.test_table_1000
     PARTITION OF test_table
   (
       PRIMARY KEY (time)
   )
   FOR VALUES FROM (1000) TO (2000);

   -- [...]

   CREATE TABLE myschema.test_table_9999000
     PARTITION OF test_table
   (
       PRIMARY KEY (time)
   )
   FOR VALUES FROM (9999000) TO (10000000);
   COMMIT;

When I later try to drop the schema ("DROP SCHEMA myschema CASCADE") and
thus that table, the postgres backend use up one CPU core and quickly
allocates a lot of memory (I only have 32GB on my test machine, so I
don't know if it finally stops allocating more memory or not).

It behaves the same if I only try to drop the parent table ("DROP TABLE
test_table CASCADE").

Dropping individual partitions work fine.

I did a "perf record" during this and I have attached what looks like
the most relevant part.

As a side note, I noticed that it is a lot slower to add partitions using
declarative method compared to the inheritance based method. Adding
the 10000 partitions using the sql from above takes about 250 seconds
compared to about 13s for the similar setup but with normal inheritance.

I am not sure how many partitions are supposed to be handled and 10000
partitions may be out of scope, but I report this because it is
unexpected that postgres use that much memory when deleting tables it
was able to add in the first place.

/Ragnar Ouchterlony, Agama Technologies


-- 
Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-bugs

Вложения

В списке pgsql-bugs по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: [BUGS] BUG #14493: psql command : Unable to use set with \copy
Следующее
От: Moshe Jacobson
Дата:
Сообщение: Re: [BUGS] BUG #14456: pg_dump doesn't restore permissions on tablesbelonging to an extension