The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Обновление PostgreSQL 14.4 с исправлением повреждения индексов

17.06.2022 07:35

Сформирован корректирующий выпуск СУБД PostgreSQL 14.4, в котором устранена серьёзная проблема, при определённых обстоятельствах приводящая к незаметному повреждению данных в индексах при выполнении команд "CREATE INDEX CONCURRENTLY" и "REINDEX CONCURRENTLY". В созданных при помощи указанных команд индексах могут быть не учтены некоторые записи, что приведёт к пропуску отдельных строк при выполнении SELECT-запросов с привлечением проблемных индексов.

Для определения факта повреждения индексов B-tree можно использовать команду "pg_amcheck --heapallindexed имя_БД". В случае выявления ошибок или применения в прошлых выпусках команд "CREATE INDEX CONCURRENTLY" и "REINDEX CONCURRENTLY" с другими типами индексов (GiST, GIN и т.п.) после обновления до версии 14.4 рекомендуется выполнить переиндексацию утилитой "reindexdb --all" или командой "REINDEX CONCURRENTLY имя_индекса".

Проблеме подвержена только ветка 14.x, в которую были включены оптимизации, исключающие при выполнении операции VACUUM некоторые транзакции, связанные с выполнением "CREATE INDEX CONCURRENTLY" и "REINDEX CONCURRENTLY". В результате применения этих оптимизаций в созданные в режиме "CONCURRENTLY" индексы не попадали некоторые находящиеся в heap-памяти кортежи, которые были обновлены или урезаны во время создания индекса.

  1. Главная ссылка к новости (https://www.postgresql.org/abo...)
  2. OpenNews: Обновление PostgreSQL с устранением уязвимости. Выпуск pg_ivm 1.0
  3. OpenNews: Конфликт, связанный с торговыми марками PostgreSQL, остаётся не урегулирован
  4. OpenNews: Выпуск FerretDB 0.3, реализации MongoDB на базе СУБД PostgreSQL
  5. OpenNews: Обновление PostgreSQL с устранением уязвимостей. Выпуск балансировщика соединений Odyssey 1.2
  6. OpenNews: Обновление PostgreSQL. Выпуск reshape, утилиты для миграции на новую схему без остановки работы
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/57367-postgresql
Ключевые слова: postgresql, database
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (48) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Шарп (ok), 09:02, 17/06/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    >оптимизации

    Мощщщно

     
     
  • 2.6, пох. (?), 10:04, 17/06/2022 [^] [^^] [^^^] [ответить]  
  • –4 +/
    > оптимизации

    regression tests? Нееее, не слышали!

     
     
  • 3.7, Аноним (7), 11:26, 17/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Очевидно ты не видел исходный код postgres.
     
     
  • 4.21, пох. (?), 14:24, 17/06/2022 [^] [^^] [^^^] [ответить]  
  • –2 +/
    для regression test нах не нужен исходный код.
    Для него нужны мозги. А этого вам не дано.

     
     
  • 5.26, Alex (??), 15:07, 17/06/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Приятно осознавать, что ты не одинок.
     
  • 5.52, Аноним (52), 22:12, 18/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    В очередной раз поражаюсь: комменты читаешь — ну такая звезда Computer Science с нами на опеннете ошивается, прям слушал бы и в рот смотрел. А по факту, ни научных статей, ни софта, ни какого-то коммерческого успеха этот персонаж так и не произвёл, хотя вроде в летах уже вроде, не мальчик. И вот как это понимать? Пох, ты не баклан ли часом?
     

  • 1.3, YetAnotherOnanym (ok), 09:27, 17/06/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    > ветка 14.x, в которую были включены оптимизации
    > не попадали некоторые находящиеся в heap-памяти кортежи

    Розгами пороть. Надёжность>скорость и точка.

     
     
  • 2.4, Самый Лучший Гусь (?), 09:34, 17/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Какой-то школьный подход. Иногда надёжностью вполне себе можно пожертвовать ради скорости. В частности, когда данные в БД взяты из возобновляемых источников.
     
     
  • 3.11, Аноним (11), 11:58, 17/06/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    что даст возобновляемость данных, если они фактически отсутствуют в выборке? Тебе, как пользователю они недоступны, независимо от того, как быстро ты получил все остальное
     
     
  • 4.12, Самый Лучший Гусь (?), 12:24, 17/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    В некоторых юзкейсах нужны не все данные, можно подождать пока скрипт по крону зальёт пропавшие
     
     
  • 5.13, Аноним (13), 12:50, 17/06/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Откуда скрипт узнает, пропали они, или нет? Если все данные и не нужны, то нужны как минимум все актуальные.
     
     
  • 6.18, Самый Лучший Гусь (?), 14:13, 17/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Скрипт просто грузит всё, что есть, если его нет в базе.
     
     
  • 7.19, Аноним (13), 14:17, 17/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    А если оно уже есть, но не отображается, когда запрашивают? Добавляешь, а там и прошлые данные появляются. Теперь представь, что это высоконагруженная БД, и данные появляются/удаляются постоянно.
     
  • 5.20, Аноним (11), 14:19, 17/06/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    в некоторых юзкейсах и БД не нужна. И данные не пропали, они на месте, просто тебе их не показывают из-за битого индекса. Вариант загрузить все заново не очень рабочий — индекс снова может быть испорчен, просто в другом месте
     
  • 5.24, YetAnotherOnanym (ok), 14:41, 17/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Решения для таких "юзкейсов" документируются и в них явно указывается возможность нарушения целостности данных.
     
  • 3.42, Аристарх (??), 17:06, 18/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    У тебя вообще подход уличного 6олвана, который пришёл, ляпнул, ушёл!
    НАДЁЖНОСТЬ - это вообще непререкаемая вещь в СУБД. Если ты этого не знал - вон из профессии!
     
     
  • 4.50, Аноним (52), 22:00, 18/06/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Давай, расскажи мне про необходимость надёжности кэша хранимого в БД и как она важнее скорости. Ох уж эти мыслящием догматами вахтёры от айти. Услышать догму смог, понять контекст — не смог, но мнение кого из профессии выгнать имеет.
     
  • 2.5, keydon (ok), 09:45, 17/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Иногда это одно и то же
     

  • 1.8, Rev (?), 11:34, 17/06/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • –5 +/
    Опять разрабы не осилили многопоточность. Ничего необычного.
     
     
  • 2.9, Аноним (9), 11:40, 17/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    <troll_mode_on>
    правильно в чистый си могут не только лишь все!
    <troll_mode_off>
     
     
  • 3.10, Массоны Рептилоиды (?), 11:48, 17/06/2022 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Если человек пишет на си, то есть он окрасил себя в те цвета, в которые он окрасил себя
     
     
  • 4.33, Alladin (?), 19:32, 17/06/2022 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Вам плохо? А по русски можно?
     
     
  • 5.47, Аноним (47), 19:56, 18/06/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Это сын Кличко. Что ты от него хотел?)
     
  • 2.43, Аристарх (??), 17:07, 18/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Вообще не удивлён. В FOSS кто только не тусуется! Из проф. программистов выбрать сложно, а уж из этой толпы - и подавно.
     
     
  • 3.48, Аноним (47), 20:01, 18/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Особенно если критерием выбора является принадлежность к лгбтешникам. В Debian один из этих стартовую страницу debian.org испоганил. Даже начинающий веб-дизайнер лучше сделает.
     

  • 1.14, Аноним (-), 12:50, 17/06/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > могут быть не учтены некоторые записи, что приведёт к пропуску отдельных строк при выполнении SELECT-запросов

    Крякеры балуются

     
  • 1.15, Аноним (15), 12:52, 17/06/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    Ничего, Олег Бартунов уже анонсировал начало постепенного переезда PG на Rust. Лет через 5-10 такие ошибки будут исключены
     
     
  • 2.16, Аноним (16), 13:56, 17/06/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Rust. Лет через 5-10 такие ошибки будут исключены

    Весьма вероятно. Мозила показала, что переход на раст - это ошибка, и выгнала растаманов.

     
  • 2.17, Ан (??), 13:58, 17/06/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Мечтать не вредно. Через 5-10 лет все уже забудут о том, что такая несуразица как раст, продвигаемая LGBTQ+++++ сообществом, вообще когда-то существовала.
     
     
  • 3.22, пох. (?), 14:27, 17/06/2022 [^] [^^] [^^^] [ответить]  
  • –6 +/
    Скорее все забудут про такую несуразицу как postgres - неудачный побочный продукт написания диссертации, выросший внезапно размером со слона и сдохший под собственным весом.

    А на хрусте будут и дальше пытаться переписать все подряд, но половина проектов почему-то не сумеет продвинуться дальше списка кто из разработчиков "ОНО" и CoC для поддержки ущемляемых.

    P.S. на самом деле нет - они все сдохнут, а мы попадем в "рай" гораздо раньше.

     
     
  • 4.23, Аноним (13), 14:29, 17/06/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А ты не в теме наверно, нет альтернатив для неё. Только Оракл может, но там свои особенности.
     
     
  • 5.30, пох. (?), 18:20, 17/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Какой еще вам орацл для одичалых? Нет альтернатив.

    (там где орацл не альтернатива - там скорее всего и postgres лишний)

     
  • 5.36, Онаним (?), 20:37, 17/06/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Что значит нет?
    А dBase?
    Очень похожа, тоже надо сжимать периодически.
     
     
  • 6.39, пох. (?), 16:21, 18/06/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну что за уг - где timetravel в качестве краеугольного камня в дизайне?! Который не работает но при этом - "периодически".

    А так да - не могу простить 1С что они бросили эту технологию в пользу какой-то фигни. (кто не в теме - ранние поделки этой кичи были на собственной реализации dbf. Аналогов в мире не имеющей, это уж точно. Я ту мебель без первой буквы всю жизнь помню.)

     
  • 4.37, Аноним (37), 07:03, 18/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Размером со слона?
    Батенька, это вы Oracle ещё не видели :)
     
     
  • 5.40, пох. (?), 16:25, 18/06/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Тот таким и родился, у приличных родителей. А не выкидыш аспирантской любви в подворотне.

    Поэтому когда натыкаешься на постгрезовое творение - "мляяаааа, вот это костылинг на подпоркинге, как оно еще у них тут не рухнуло нахре....аааааа....уф, мимо пролетело", а на оракловое - "мляааа....слабоумие и отвага - они вообще не понимают благодаря какому чуду живут...сколько сколько - ПЯТЬ лет как уволился последний dba? А разработчик - семь?! И вы жалуетесь что раз в МЕСЯЦ ora-006?!"

     
     
  • 6.46, Аноним (46), 18:41, 18/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Звучит так, будто единственная нормальная БД - это Firebird
     
     
  • 7.49, Аноним (47), 20:05, 18/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Огненная птица ещё жива!? Я думал, что она в десятых годах померла.
     
  • 6.54, Аноним (54), 21:22, 21/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > раз в МЕСЯЦ ora-006

    ora-600. Вернее ORA-00600.

     
     
  • 7.55, пох. (?), 10:07, 23/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Угу. В переводе означает обычно, что инстансу прилетел sig11.
    Правда, оно после этого чаще всего работает, а не идешь как с постгрей за бэкапом, молясь чтоб в нем того же самого не оказалось.

     
  • 2.34, Аноним (34), 19:40, 17/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    А есть ссылка? Ничего похожего найти не смог
     
  • 2.44, Аристарх (??), 17:19, 18/06/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Увы, но можно уже смело констатировать, что Раст "не взлетел". Проблема - в ключевой концепции языка: "мы будет ТАК контролировать каждый чих с памятью, что ты, погромизд, взвоешь!".

    Практически вся ИТ история идёт по пути УПРОЩЕНИЯ жизни программиста, много языков сдохло, так и не дав этой простоты. И вот на фоне таких "конфеток" как Жаба и C#, появляется Ржа: "ребятки, кто хотел лихие 90-ые - вот они! Теперь вы всё будете перемалывать вручную, да не просто malloc/fee, а такую концепцию вам навертим, что Сишные указатели вам игрушкой покажутся!".
    Увы, такой подход был обречён ещё на бумаге. Равно как и Пестон, где полоумный диктатор внезапно решил, что теперь вы ОБЯЗАНЫ форматировать код так, как ему хочется. Десятки лет идут холивары, где ставить скобочки и пробелы и тут вылезает один кpетuн и объявляет "стандарт имени себя" - ну не клоун?? :)) Очевидно, что это фуфло только и взлетело, что за счёт сторонней помощи и библиотек, но как язык пестон - полное г****.

    Так что судьба Раста чуть более, чем предсказуема - без "проталкивателей в задницу" этого языка (да ещё и коммерческих!) он просто сдохнет.

     
     
  • 3.51, Аноним (52), 22:07, 18/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > без "проталкивателей в задницу" этого языка (да ещё и коммерческих!) он просто сдохнет.

    Как и всё в этом обществе. Понимаешь, нет коммерции — нет кушать. Не пропихнёшь свой товар или услугу — окажешься на обочине. Случайности случаются, конечно, но недолго. Даже такой антикоммерческий продукт как «оупен соурс софтвэр» выживает только там, где оказывается коммерчески успешен. Так что, детки, радупляйте как поднимать бабки смолоду. Остальное второстепенные скиллы.

     
     
  • 4.53, пох. (?), 20:09, 20/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > Как и всё в этом обществе. Понимаешь, нет коммерции — нет кушать. Не

    в принципе, это необязательно должна быть твоя коммерция и необязательно тратить на нее именно всю жизнь.

    > выживает только там, где оказывается коммерчески успешен. Так что, детки, радупляйте
    > как поднимать бабки смолоду.

    К старости положите их себе в гроб. А если они тебе там без надобности - то зачем же ты потратил свою жизнь?


     

  • 1.25, valery_kolganov (ok), 14:57, 17/06/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Ой. Только вот перевели 1С на 14.2-6.1C.
    Теперь жди, пока 1С выпустит 14.4.
    Хорошо если не будет в недрах 1С таких команд "CREATE INDEX CONCURRENTLY" и "REINDEX CONCURRENTLY".
     
     
  • 2.29, 1 (??), 17:45, 17/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Возьми слоника с PostgresPro и будет тебе щастье
     
     
  • 3.41, пох. (?), 16:27, 18/06/2022 [^] [^^] [^^^] [ответить]  
  • +/
    "впусти в дом козу"
     
  • 2.45, Аристарх (??), 17:21, 18/06/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ну 1Ска же работала до этого? Не падала? Значит и дальше падать не будет :)

    К слову, а в чём проблема "поддержки 14.4"? Сам же постгрес не менялся - только улучшался! Поставил новую СУБД - работай!

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру