URL: https://www.opennet.dev/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 125038
[ Назад ]

Исходное сообщение
"Обновление PostgreSQL с устранением уязвимости"

Отправлено opennews , 12-Авг-21 20:28 
Сформированы корректирующие обновления для всех поддерживаемых веток PostgreSQL:  13.4, 12.8, 11.13, 10.18 и 9.6.23. Обновления для ветки 9.6 будут формироваться до ноября 2021 года, 10 - до ноября 2022 года, 11 - до ноября 2023 года, 12  - до ноября 2024 года, 13 до ноября 2025 года...

Подробнее: https://www.opennet.dev/opennews/art.shtml?num=55629


Содержание

Сообщения в этом обсуждении
"Обновление PostgreSQL с устранением уязвимости"
Отправлено Postgres всё , 12-Авг-21 20:28 
>специально оформленного запроса прочитать содержимое памяти

ага!

не буду оригинальным: следует переписать на Dlang!


"Обновление PostgreSQL с устранением уязвимости"
Отправлено Истина в последней инстанции , 12-Авг-21 20:32 
Не будешь. Переписывальщик.

Сейчас ещё укуренные подоспеют со своим растом, когда у самих дыра на дыре и дырой прикрывая.


"Обновление PostgreSQL с устранением уязвимости"
Отправлено Укуренные прикрываясь дырой , 12-Авг-21 21:04 
- Переписать на раст! Переписать на раст! Легализовать раст во всех штатах!

"Обновление PostgreSQL с устранением уязвимости"
Отправлено Аноним , 12-Авг-21 21:06 
На пэхэпэ переписать

"Обновление PostgreSQL с устранением уязвимости"
Отправлено Аноним , 12-Авг-21 21:09 
Это просто показывает что даже такие боги программирования которые пишут PostgreSQL раз в год, но все равно не могут в память. Щито поделаешь...

"Обновление PostgreSQL с устранением уязвимости"
Отправлено Аноним , 13-Авг-21 00:38 
Со скулите, где тестов больше кода, вышло забавнее.

"Обновление PostgreSQL с устранением уязвимости"
Отправлено Аноньимъ , 13-Авг-21 00:59 
Что такое скулите?

"Обновление PostgreSQL с устранением уязвимости"
Отправлено Аноним , 13-Авг-21 01:04 
> Что такое скулите?

я имел в виду скулите3


"Обновление PostgreSQL с устранением уязвимости"
Отправлено supp , 13-Авг-21 01:05 
sqlite3

"Обновление PostgreSQL с устранением уязвимости"
Отправлено Прохожий , 13-Авг-21 01:18 
А точно боги его пишут? А то архитектурных дыр там пока хватает. Начиная от способа удаления записей с последующей очисткой, и заканчивая отсутствием direct io.

"Обновление PostgreSQL с устранением уязвимости"
Отправлено edo , 13-Авг-21 08:00 
А как должен удалять записи версионник?

"Обновление PostgreSQL с устранением уязвимости"
Отправлено ДБА , 16-Авг-21 09:51 
Не хранить версии прямо в таблице, например?

"Обновление PostgreSQL с устранением уязвимости"
Отправлено edo , 16-Авг-21 10:03 
> Не хранить версии прямо в таблице, например?

поясните свою мысль


"Обновление PostgreSQL с устранением уязвимости"
Отправлено ДБА , 16-Авг-21 12:45 
>> Не хранить версии прямо в таблице, например?
> поясните свою мысль

Если хранить старые версии строк (или то, что нужно для их восстановления) не вперемешку с таблицей, а, например, в отдельном тейблспейсе, принципиально отпадает необходимость в вакууме.


"Обновление PostgreSQL с устранением уязвимости"
Отправлено edo , 17-Авг-21 03:07 
>>> Не хранить версии прямо в таблице, например?
>> поясните свою мысль
> Если хранить старые версии строк (или то, что нужно для их восстановления)
> не вперемешку с таблицей, а, например, в отдельном тейблспейсе, принципиально отпадает
> необходимость в вакууме.

отлично а как мы узнаем какие из них старые?
я так понимаю, вы предлагаете подход, подобный используемому в innodb, нельзя сказать, что у него совершенно нет недостатков.


"Обновление PostgreSQL с устранением уязвимости"
Отправлено ДБА , 17-Авг-21 10:13 
Честно говоря, не в курсе, как там в InnoDB. Мне нравится, как в Оракле: в табличный тейблспейс пишется только актуальная версия строки. При изменении она же и обновляется. Для каждого вектора изменений пишется запись отмены изменений (undo), которая циклично пишется в отдельный undo tablespace (или, в далёком прошлом, rollback segment). При необходимости достать старую версию строки, берём текущую и последовательно накатываем на неё undo до нужного состояния. И никакого мусора.  

"Обновление PostgreSQL с устранением уязвимости"
Отправлено edo , 17-Авг-21 11:31 
> Честно говоря, не в курсе, как там в InnoDB. Мне нравится, как
> в Оракле: в табличный тейблспейс пишется только актуальная версия строки. При
> изменении она же и обновляется. Для каждого вектора изменений пишется запись
> отмены изменений (undo), которая циклично пишется в отдельный undo tablespace (или,
> в далёком прошлом, rollback segment). При необходимости достать старую версию строки,
> берём текущую и последовательно накатываем на неё undo до нужного состояния.
> И никакого мусора.

ну да, оно самое.
в постгресе называется zheap и вяло пилится уже несколько лет. ЕМНИП update быстрее, delete немного медленнее; в сумме быстрее, но не сказать, что разница критичная.
насколько я понимаю, в ближайшее время ожидать не стоит.



"Обновление PostgreSQL с устранением уязвимости"
Отправлено Catwoolfii , 13-Авг-21 08:17 
direct io не нужно

"Обновление PostgreSQL с устранением уязвимости"
Отправлено Ananist , 13-Авг-21 11:40 
lol Почему же не нужен? Зачем двойное кеширование и кривая работа линухового кеша?

"Обновление PostgreSQL с устранением уязвимости"
Отправлено Catwoolfii , 13-Авг-21 13:35 
Для некоторых рабочих нагрузок DIRECT_IO может оказаться не оптимальным: https://www.percona.com/blog/2013/01/03/is-there-a-room-for-.../

"Обновление PostgreSQL с устранением уязвимости"
Отправлено Аноним , 13-Авг-21 13:54 
>  lol Почему же не нужен? Зачем двойное кеширование и кривая работа линухового кеша?

Всё немножко наоборот. DIO - это костыль, необходимый в случаях, когда логика юзерспейса плохо стыкуется с логикой кэширования ФС.
У постгреса такой архитектурной проблемы нет.


"Обновление PostgreSQL с устранением уязвимости"
Отправлено Ananist , 13-Авг-21 17:16 
Кеширование гарантирует сохранность данных? Зачем тогда большинство баз работает через DIO? Кеш никогда не является блокером? Может он не вымещается, по случайному скану?

"Обновление PostgreSQL с устранением уязвимости"
Отправлено Аноним , 14-Авг-21 14:03 
> Кеширование гарантирует сохранность данных? Зачем тогда большинство баз работает через DIO?

Очень хороший вопрос.
В некоторых СУБД (не будем показывать пальцем) все свежий изменения текущего состояния собраны в одном файле, и для фиксации изменений на диск достаточно одного вызова fsync().
В других СУБД (опять-таки, не будем показывать пальцем) отличия записанного состояния от текущего разбросаны по множеству файлов, причем некоторые из них могут быть очень большими. Тут уже, если хочется мало-мальски надёжно, без костылей direct io никак.


"Обновление PostgreSQL с устранением уязвимости"
Отправлено Аноним , 13-Авг-21 14:02 
> А то архитектурных дыр там пока хватает. Начиная от способа удаления записей с последующей очисткой,

Если вы про VACUUM FULL, то это вполне типичный вариант для больших объемов данных, когда после каждого чиха не начинается фоновое переписывание таблицы.

> и заканчивая отсутствием direct io.

Direct IO - затычка для ситуаций, когда кэширование создает проблемы с производительностью. А чтобы это произошло, нужно _очень_ извр^Wнетрадиционно использовать кэш. Монти, впрочем, смог.


"Обновление PostgreSQL с устранением уязвимости"
Отправлено Bek , 13-Авг-21 06:18 
Это просто показывает что даже такие боги программирования которые пишут PostgreSQL раз в год, но все равно не могут в память

Потому му что есть околодебилы которые архитектора потерли и побежали вверх по донатам , это все последствия не внимательности что архитектор хоть и не кодер программист , но и не последний человек


"Обновление PostgreSQL с устранением уязвимости"
Отправлено Хан , 13-Авг-21 01:20 
Самая популярная РСУБД на данный момент, поэтому молодцы что багфиксят

"Обновление PostgreSQL с устранением уязвимости"
Отправлено лютый жжжжж , 14-Авг-21 13:34 
long live, mongo

"Обновление PostgreSQL с устранением уязвимости"
Отправлено Аноним , 15-Авг-21 13:49 
У растоманов печот что не на расте