На днях Амит Капила закоммитил патч Масахико Савады, который позволяет выполнять очистку в параллельном режиме. Сама таблица по-прежнему очищается одним (ведущим) процессом, но для очистки индексов он теперь может запускать фоновые рабочие процессы, по одному на каждый индекс. В ручном режиме это позволяет ускорить очистку больших таблиц с несколькими индексами; автоматическая очистка пока не использует эту возможность.
Читать полностью »
Рубрика «vacuum»
PostgreSQL 13: параллельный VACUUM
2020-01-30 в 13:28, admin, рубрики: parallelism, postgresql, sql, vacuum, Блог компании Postgres ProfessionalКогда пасует VACUUM — чистим таблицу вручную
2019-12-25 в 17:15, admin, рубрики: dba, explain, postgresql, sql, sql tips and tricks, truncate, vacuum, Администрирование баз данных, Алгоритмы, базы данных, высокая производительностьVACUUM может «зачистить» из таблицы в PostgreSQL только то, что никто не может увидеть — то есть нет ни одного активного запроса, стартовавшего раньше, чем эти записи были изменены.
А если такой неприятный тип (продолжительная OLAP-нагрузка на OLTP-базе) все же есть? Как почистить активно меняющуюся таблицу в окружении длинных запросов и не наступить на грабли?
MVCC в PostgreSQL-8. Заморозка
2019-06-17 в 15:56, admin, рубрики: autovacuum, freeze, postgresql, sql, tuples, vacuum, Блог компании Postgres ProfessionalМы начали с вопросов, связанных с изоляцией, сделали отступление про организацию данных на низком уровне, подробно поговорили о версиях строк и о том, как из версий получаются снимки данных.
Затем мы рассмотрели разные виды очистки: внутристраничную (вместе с HOT-обновлениями), обычную и автоматическую.
И добрались до последней темы этого цикла. Сегодня мы поговорим о проблеме переполнения счетчика транзакций (transaction id wraparound) и заморозке.
Читать полностью »
MVCC-6. Очистка
2019-05-27 в 7:38, admin, рубрики: postgresql, sql, tuples, vacuum, Блог компании Postgres ProfessionalМы начали с вопросов, связанных с изоляцией, сделали отступление про организацию данных на низком уровне, затем подробно поговорили о версиях строк и о том, как из версий получаются снимки данных.
В прошлый раз мы поговорили о HOT-обновлениях и внутристраничной очистке, а сегодня займемся всем известной обычной очисткой, vacuum vulgaris. Да, про нее написано уже столько всего, что вряд ли я скажу что-то новое, но полнота картины требует жертв. Терпите.
Обычная очистка (vacuum)
Что делает очистка
Внутристраничная очистка выполняется быстро, но освобождает только часть места. Она работает в пределах одной табличной страницы и не затрагивает индексы.
Основная, «обычная» очистка выполняется командой VACUUM и ее мы будем называть просто очисткой (а про автоочистку мы будем говорить отдельно).
Итак, очистка обрабатывает таблицу полностью. Она вычищает не только ненужные версии строк, но и ссылки на них из всех индексов.
Обработка происходит параллельно с другой активностью в системе. Таблица и индексы при этом могут использоваться обычным образом и для чтения, и для изменения (однако одновременное выполнение таких команд, как CREATE INDEX, ALTER TABLE и некоторых других будет невозможно).
В таблице просматриваются только те страницы, в которых происходила какая-то активность. Для этого используется карта видимости (напомню, что в ней отмечены страницы, содержащие только достаточно старые версии строк, которые гарантированно видимы во всех снимках данных). Обрабатываются только страницы, не отмеченные в карте, а сама карта при этом обновляется.
В процессе работы обновляется и карта свободного пространства, чтобы отразить появившееся свободное места в страницах.
Читать полностью »
Ручные монстры в борьбе за чистоту: выбор ручного пылесоса Xiaomi
2019-01-09 в 10:01, admin, рубрики: alfawise, Gearbest, mihome, ROIDMI, vacuum, xiaomi, Блог компании Gearbest.com, будущее здесь, Интернет вещей, пылесос, умный домСовсем недавно известная краудфандинговая площадка Xiaomi вышла на рынок ручных пылесосов с новой интересной моделью. В статье речь пойдет о пылесосе Roidmi F8, который спроектирован в фирменном стиле Xiaomi — строгий белый минималистичный дизайн и максимум функционала. И сравнивать буду с популярной моделью V8 от Dyson.
PostgreSQL: Случай в вакууме
2016-05-20 в 7:09, admin, рубрики: postgresql, vacuum, Блог компании Postgres ProfessionalОдин из наших клиентов, эксплуатирующий PostgreSQL под большой нагрузкой, столкнулся с проблемой, связанной с переполнением счетчика транзакций (xid wraparound), причем выхода из нее штатными средствами не существовало. Мы решили проблему с помощью хирургического вмешательства и выпустили патч, предотвращающий возникновение таких ситуаций в будущем.
В этой заметке мы расскажем, как и почему может произойти проблема и как ее не допустить.