Начало » Использование СУБД » Firebird, HQbird, InterBase » Вышел Firebird 5 Release Candidate!
Вышел Firebird 5 Release Candidate! [сообщение #3214] |
Fri, 29 September 2023 17:53 |
sim_84
Сообщений: 330 Зарегистрирован: June 2022
|
Senior Member |
|
|
Хорошие новости! Вышел релиз кандидат версии Firebird 5.0! Это означает, что все функции и возможности зафиксированы, и можно начинать интенсивное тестирование!
Особенно интересен Firebird 5 для тех, кто использует Firebird 4, так как 5-ка может работать с базами от 4-ки без необходимости бэкапа-рестора.
Миграция с 4-ки также упрощена и не требует бэкапа-рестора, можно просто использовать gfix -upgrade (предварительно сделав файловую копию, например с помощью nbackup)
Также, хочется отметить тот факт, что 5-ка впервые выходит на 11 платформах, включая ARM для Linux и Android.
Больше подробностей в самом скором времени!
На следующей неделе мы (IBase) начнем публиковать подробные материалы по новым возможностям Firebird 5.
А пока качайте, читайте Release Notes, и пробуйте запустить свои проекты прямо на 5-ке.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Re: Вышел Firebird 5 Release Candidate! [сообщение #3321 является ответом на сообщение #3319] |
Tue, 10 October 2023 14:08 |
hvlad
Сообщений: 358 Зарегистрирован: August 2022
|
Senior Member |
|
|
SD писал(а) Tue, 10 October 2023 13:54neozx1984 писал(а) Thu, 05 October 2023 08:36
Тут сравнение двух подходов
Там, помимо всего прочего, есть интересное утверждение:
Цитата:Когда читается таблица с данными, её записи разделяются между потоками. Каждый поток читает записи со страниц данных, находящихся в выделенной ему POINTER PAGE. Обработав их, берёт следующую необработанную POINTER PAGE.
КАК, Холмс? gbak не имеет доступа на такой уровень. Или это работает для любого запроса, идущего по таблице натуралом? MAKE_DBKEY
|
|
|
Re: Вышел Firebird 5 Release Candidate! [сообщение #3323 является ответом на сообщение #3321] |
Tue, 10 October 2023 14:12 |
hvlad
Сообщений: 358 Зарегистрирован: August 2022
|
Senior Member |
|
|
hvlad писал(а) Tue, 10 October 2023 14:08SD писал(а) Tue, 10 October 2023 13:54neozx1984 писал(а) Thu, 05 October 2023 08:36
Тут сравнение двух подходов
Там, помимо всего прочего, есть интересное утверждение:
Цитата:Когда читается таблица с данными, её записи разделяются между потоками. Каждый поток читает записи со страниц данных, находящихся в выделенной ему POINTER PAGE. Обработав их, берёт следующую необработанную POINTER PAGE.
КАК, Холмс? gbak не имеет доступа на такой уровень. Или это работает для любого запроса, идущего по таблице натуралом? MAKE_DBKEY
Ты же был в Берлине в 2019. И задавал там ехидные вопросы, я точно помню.
Я там всё рассказывал и показывал.
|
|
|
Re: Вышел Firebird 5 Release Candidate! [сообщение #3408 является ответом на сообщение #3249] |
Sat, 14 October 2023 22:03 |
ggreggory
Сообщений: 76 Зарегистрирован: July 2022
|
Member |
|
|
neozx1984 писал(а) Thu, 05 October 2023 09:36ggreggory писал(а) Mon, 02 October 2023 21:38
Как понимаю, сейчас выигрыш рестора есть на базах с мега-индексами на мега-таблицах. Если ситуация обратная - много всяких разных таблиц и индексов, то выигрыша уже не наблюдается. Ну это мое наблюдение. Если у кого другие данные - делитесь, было бы интересно...
Тут сравнение двух подходов - многопоточной активации индекса (ParallelWorkers) и многопоточной активации индексов (в разных коннектах). Тестировалось на РедБазе 3.0, но в Firebird 5 картина будет примерна такая же. Кратко результат ParallelWorkers эффективен при 3-4 потоках, при большом количестве потоков производительность падает.
Хорошая статья! И я узнал о plume! Попробовал. На моем 3.0.8 он работать отказался, сыпался с ошибками "Warning trouble on index ...", но после апгрейда до 3.0.11 вроде работает.
Спасибо!
|
|
|
|
|
|
|
Re: Вышел Firebird 5 Release Candidate! [сообщение #3414 является ответом на сообщение #3413] |
Sun, 15 October 2023 13:23 |
hvlad
Сообщений: 358 Зарегистрирован: August 2022
|
Senior Member |
|
|
sim_84 писал(а) Sun, 15 October 2023 13:07Как будет время, глянь пожалуйста. Это не сложно. И не долго.
Вот что я вижу для БД TPCC размером 8.75GB. БД и бекап на одном и том же быстром NVMe SSD.
par 1, no zip : 80 sec
par 1, zip : 195 sec
par 4, no zip : 21 sec
par 4, zip : 198 sec
Очевидно, проблема в zip. Но дело не в сериализации, а в том, что он полностью занимает то ядро,
которое выполняет запись в файл - даже когда мы читаем БД в один поток. Т.е. алгоритм не справляется
с нагрузкой и работает сильно медленнее чем данные пишутся на диск. С более медленным диском картина
будет другой ("лучше").
Сжимать в не несколько потоком сам zip не умеет, насколько я знаю. Мы не можем сжимать каждый прочитанный
из БД блок в отдельном потоке, т.к. потом эту кучку отдельно сжатых блоков никто не распакует. Чтобы этого
достичь, нужно менять формат файла бекапа.
|
|
|
|
Re: Вышел Firebird 5 Release Candidate! [сообщение #3416 является ответом на сообщение #3414] |
Sun, 15 October 2023 14:41 |
hvlad
Сообщений: 358 Зарегистрирован: August 2022
|
Senior Member |
|
|
hvlad писал(а) Sun, 15 October 2023 13:23sim_84 писал(а) Sun, 15 October 2023 13:07Как будет время, глянь пожалуйста. Это не сложно. И не долго.
Вот что я вижу для БД TPCC размером 8.75GB. БД и бекап на одном и том же быстром NVMe SSD.
par 1, no zip : 80 sec
par 1, zip : 195 sec
par 4, no zip : 21 sec
par 4, zip : 198 sec
Очевидно, проблема в zip. Но дело не в сериализации, а в том, что он полностью занимает то ядро,
которое выполняет запись в файл - даже когда мы читаем БД в один поток. Т.е. алгоритм не справляется
с нагрузкой и работает сильно медленнее чем данные пишутся на диск. С более медленным диском картина
будет другой ("лучше").
Сжимать в не несколько потоком сам zip не умеет, насколько я знаю. Мы не можем сжимать каждый прочитанный
из БД блок в отдельном потоке, т.к. потом эту кучку отдельно сжатых блоков никто не распакует. Чтобы этого
достичь, нужно менять формат файла бекапа.
Попробовал с 7z. Он пожирает CPU активно, сколько ни дай Но всё равно тормозит
Вот лучшее, чего я добился (пробовал -m1, m3, m5 (default) и отдельно -tzip m1):
par 1, 7z -m1 : 82 sec
par 4, 7z -m1 : 59 sec
файл с архивом немного больше, чем у gbak -zip : 4.24GB против 4.09GB.
Так что, в принципе, есть вариант, когда сжатие выигрывает от параллельного чтения, но не сильно.
Если кому не лень - попробуйте с zstd
|
|
|
|
|
|
|
|
|
|
|
Re: Вышел Firebird 5 Release Candidate! [сообщение #3481 является ответом на сообщение #3479] |
Mon, 23 October 2023 15:31 |
sim_84
Сообщений: 330 Зарегистрирован: June 2022
|
Senior Member |
|
|
neozx1984,
попробуй кеш подготовленных запросов выключить в firebird.cong
MaxStatementCacheSize = 0
Дело в том, что любой DDL сбрасывает этот кеш. А здесь одни сплошные DDL операторы.
В трекере уже был тикет с багом по поводу кеша подготовленных запросов, вроде Влад его пофиксил, но не факт что до конца.
Кроме того я не уверен, что plume выбирает индексы корректно для одновременной активации.
Смотри может попасться 4 мелких индекса, а может 4 больших. А большие начнут жрать temp одновременно, кроме того если
ещё и многопоточная активация индекса включена, то эти 4 больших индекса начнут совсем другое кол-во потоков задействовать, но не больше, чем MaxParallelWorkers.
|
|
|
|
Re: Вышел Firebird 5 Release Candidate! [сообщение #3484 является ответом на сообщение #3481] |
Mon, 23 October 2023 16:20 |
neozx1984
Сообщений: 27 Зарегистрирован: June 2022
|
Junior Member |
|
|
sim_84 писал(а) Mon, 23 October 2023 15:31neozx1984,
попробуй кеш подготовленных запросов выключить в firebird.cong
MaxStatementCacheSize = 0
Дело в том, что любой DDL сбрасывает этот кеш. А здесь одни сплошные DDL операторы.
В трекере уже был тикет с багом по поводу кеша подготовленных запросов, вроде Влад его пофиксил, но не факт что до конца.
Да, были задачи:
Multi-threaded activating indices restarts server process #7314
Broken lock of statements cache during multithreaded index activation #7385
они закрыты.
На некоторых базах можно словить deadlock, поэтому поводу делали тест-кейс задача
Deadlock during index creation when parallel workers are used #7783
Про отключения кеша запросов это к ggreggory база его.
sim_84 писал(а) Mon, 23 October 2023 15:31
Кроме того я не уверен, что plume выбирает индексы корректно для одновременной активации.
Смотри может попасться 4 мелких индекса, а может 4 больших. А большие начнут жрать temp одновременно, кроме того если
ещё и многопоточная активация индекса включена, то эти 4 больших индекса начнут совсем другое кол-во потоков задействовать, но не больше, чем MaxParallelWorkers.
plume не оптимально выбирает индексы для активации есть сортировка только по FK, поэтому поводу есть задача Resource managment.
sim_84 писал(а) Mon, 23 October 2023 15:33На БД employee многопоточная активация на фиг не упала
Это функциональный тест
|
|
|
Re: Вышел Firebird 5 Release Candidate! [сообщение #3485 является ответом на сообщение #3481] |
Mon, 23 October 2023 17:20 |
ggreggory
Сообщений: 76 Зарегистрирован: July 2022
|
Member |
|
|
sim_84 писал(а) Mon, 23 October 2023 15:31
попробуй кеш подготовленных запросов выключить в firebird.cong
MaxStatementCacheSize = 0
Не помогло.
Поставил свежий снапшот WI-V5.0.0.1249 - та же фигня.
Но на 3.0.11 на той же базе plume нормально работает. Наверное, какие-то фиксы 3-ей версии в 5-ую еще не перенесены...
[Обновления: Mon, 23 October 2023 17:21] Известить модератора
|
|
|
|
Переход к форуму:
Текущее время: Sun Nov 24 17:14:24 GMT+3 2024
Общее время, затраченное на создание страницы: 0.01516 секунд
|