Для PostgreSQL предложено новое хранилище zheap
6 марта 2018 года
Разработчики из компании EnterpriseDB представили новое хранилище zheap, которое предложено для включения в состав СУБД PostgreSQL 12. Хранилище zheap разработано для решения проблемы с разрастанием файлов с содержимым БД в результате фрагментации при обновлении содержимого записей и отличается от традиционного хранилища тем, что минимизирует необходимость выполнения операции VACUUM.
Суть предложенного в zheap формата хранения данных на диске в сохранении в основном хранилище только актуальных данных и выноса старых версий записей в отдельный лог отката изменений. При выполнении операций обновления записей данные в основном хранилище заменяются по месту, без применения схемы copy-on-write. Блоки, освобождающиеся в результате операций удаления или выполнения транзакции, для которых невозможна замена данных по месту, могут оперативно повторно использоваться сразу после высвобождения. Подобные особенности позволяют улучшить контроль за разрастанием хранилища и сделать его более предсказуемым.
Новое хранилище также позволяет добиться увеличения производительности и сократить размер служебных данных. Увеличение производительности достигается благодаря сокращению операций записи, путём исключения перезаписи страниц и выборочного обновления только индексированных столбцов без обновления каждого индекса. Оптимизация размера обеспечивается благодаря сокращению размера блоков (сокращён заголовок и исключено добавочное заполнение для выравнивания блока).
Тестирование производительности показало общее увеличение производительности, сокращение размера хранилища и более эффективное выполнение операций отката изменений. Наибольший выигрыш в производительности (до 45%) достигается в условиях большого числа операций перезаписи, а также когда операция UPDATE приводит к обновлению небольшого числа проиндексированных столбцов. Применение zheap также позволяет избавиться от проседания производительности во время активации процесса autovacuum и сократить число операций записи в WAL-лог. Из недостатков zheap упоминается более ресурсоёмкое выполнение операций удаления и сброса транзакций, а также снижение производительности при выполнении обновлений, затрагивающих большую часть проиндексированных столбцов.
Источники
править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.