секционировать табличку ~700Гб. При запуске create_range_partitions с ключом блокирующего переливания, случилось следующее: в течении 12 часов шёл процесс, под конец когда диск уже увеличился на ~700Гб, пришел ООМ и отстрелил процесс запроса на переливание. По мониторингу видно, что в течении всего процесса ОЗУ линейно аллоцировалась и обратно не возвращалась, пока процесс не упал.
Через partition_table_concurrently все получилось за 48 часов, но это очень долго при условии что есть возможность дать заблокироваться таблице. Postgresql 9.6, pg_pathman latest, ubuntu 20, 64ГБ озу, 48 ядер, ssd.
Кто подскажет, таблицы такого размера лучше пускать через partition_table_concurrently и ждать дольше или я что-то сделал не так? Есть вообще проблема утечки памяти с этим расширением?
Для начала я бы посоветовал обновиться до последнего релиза postgres, который поддержывает pg_pathman. А лушчэ -- прямо сразу перейти на pg_partman или встроенное партицыонирование версий 11-14.
А так -- ну, понятно, что если у вас не работает create_range_partitions, зато работает create_range_partitions_concurrently -- то можно радоваться, что хоть как работает. Или, если хотите -- идите и чините баги в create_range_partitions заброшэнного инструмента на неподдержываемой версии postgres.
Но, кстати, дажэ 12 часов на 700 гигабайт перелива -- довольно много. Хотя... Если там 200 гигабайт heap, а остальное индэксы -- то можэт и нормально. Но я бы начал с плана миграцыи на что-то поддержываемое.
> В тестах он сильно выигрывает у partman. Как бы какая разница, если он помер? Да и... Оно выигрывало разве что когда нативное партицыонировани было в зачаточном состоянии. >пишут, что будут поддерживать его, исправлять ошибки. Только исправлять критические ошыбки -- и по остаточному принцыпу. При этом поддержка 9.6, думаю, если что то скоро будет совсем заброшэна (по причине прекращения поддержки 9.6 сообществом).
Понял, спасибо. Подумаю как лучше поступить..
Астра что ли со встроенным и сертифицырованным pg?
Да, и есть доп. требования
Это получается, даже если удалять батчами получится около 3Гб в день надо удалять для равновесия. Прилично так..
Ну, сколько там в гигабайтах -- это как повезёт, но да, дажэ полное удаление всего -- это несколько часов.
Обсуждают сегодня