Опубликован первый стабильный релиз новой ветки СУБД MariaDB 10.10 (10.10.2), в рамках которой развивается ответвление от MySQL, сохраняющее обратную совместимость и отличающееся интеграцией дополнительных движков хранения и расширенных возможностей. Развитие MariaDB курирует независимая организация MariaDB Foundation в соответствии с открытым и прозрачным процессом разработки, не зависящим от отдельных производителей. MariaDB поставляется вместо MySQL во многих дистрибутивах Linux (RHEL, SUSE, Fedora, openSUSE, Slackware, OpenMandriva, ROSA, Arch Linux, Debian) и внедрён в таких крупных проектах, как Wikipedia, Google Cloud SQL и Nimbuzz...Подробнее: https://www.opennet.dev/opennews/art.shtml?num=58143
В этот раз доломали оптимизатор JOIN?Я после 10.6 боюсь обновляться вообще, так и сижу на 10.5, местами ушёл на ванильный 8.0, потому что в 10.6 доломали сброс страниц.
Молчу уже про то, что до этого доломали и выкинули TokuDB, и на больших объёмах хорошо сжимаемых данных всё стало плохо.
И как ты справляешься без реализации новых алгоритмов и с отсутствием типа INET4?
Новых алгоритмов - это автовакуума в плоской DBF-подобной структуре с навесными индексами?
А INET4 - это тупое кэнди над блобом.
Извиняюсь, не над блобом, над CHAR(4)/binary. Блоб немножко по-другому хранится.
на этот раз прощаю
>боюсь обновляться вообщену и нафига тебе такой геморрой? я например свалил на postgres больше 15 лет назад после общения с разработчиками mysql и ни разу ни в каких проектах об этом не пожалел. чего и всем желаю.
Извиняй, у меня нет задач 15-летней свежести.
это типа ты тык шутишь о якобы преимуществах mysql под postgres? это при том что в mysql только inet4 добавили который был в postgres 15 лет назад? смешно. можешь и на телеге ездить если автомобилем брезгуешь
Хосспаде. У постгреса до сих пор при записи получается отличная первой свежести DBF-подобная плоская структура, поэтому ему нужен вакуум, а логическая репликация не умеет в DDL. О чём тут вообще речь может быть?
Ну не умеет и не умеет. Есть же log shipping.То же и про vacuum можно сказать, ну нужен он и нужен, какие неудобства это вызывает? Сейчас сверился с интернетом, autovacuum включен по умолчанию начиная с 8.3 (2008 год!). В большинстве сценариев использования оно просто работает.
А можно подробнее, что там со сбросом страниц?
Ну чего-чего там. В один поток теперь флаш идёт. Разбиение buffer pool на инстансы тоже убрали, со всеми вытекающими. Особенно весело тем, кто кипятит^W сжимает, потому что в отличие от ванильки у них модульная компрессия была в page cleaner зашита, который собственно и флашит, а не во writer threads. Надо будет на 10.10 глянуть, но очень сомневаюсь, что там что-то в этом плане переперделали.
похоже пофиксили
Серьёзно, компрессия пошла в несколько потоков?
Благодарю, надо будет тогда всерьёз глянуть, есть места, где на ванильку быстро не откатиться.
Посмотрел.
Нет, ничего не изменилось, та же херня.
Запись из пула в один поток, одно ядро в полку, остальные спокойны, write rate по сравнению с ванилькой под плинтусом.
> Добавлен тип данных INET4 для хранения адресов IPv4 в 4-байтовом представлениив постгресе уже сто лет как было
так сабж по сути из себя представляет одно большое проявление NIH-синдрома у его разработчиков, зачем он когда есть слоняра - хбз
Вы всё ещё вакуумите? Тогда мы идём к вам. Даже со всеми недостатками :D
Вакуумили, вакуумим и вакуумить будем. А что? Какие с этим проблемы?
Ну, кто ж против-то. Продолжайте.
Даже с таким огромным минусом как вакуум, предпочту PostgreSQL сабжу.
ну-ну, вы мне еще за OPTIMIZE (RECREATE) TABLE поговорите)))
Ты не поверишь, ещё со времён 5.5 в общем случае не требуется.
Бывают специфичные случаи, но это скорее исключение.
Эту операцию регулярно делать не нужно когда в таблицу только INSERT'ы идут и совсем чуть-чуть UPDATE. В случае же взрослого INSERT/UPDATE/DELETE что мыскль, что мария, место на диске жрут с не меньшим аппетитом, чем PG. Но, в отличии от PG, вернуть это место взад бывает не всегда просто и быстро.
Мысль есть, но она не верная.
Есть биллинг, из которого ежедневно архивируются данные старше года. Ну так вот. Ничего не растёт.
Последовательно vs. Случайным образом.
InnoDB устроена так, что ей без разницы.
Единственные различия в размерах дают индексы, если слишком безумные паттерны записи - деревья могут слегка распухать, но тут уже никому ничто не поможет, только пересоздание дерева.
Самый хреновый юзкейс на самом деле не случайный образ, а большое удаление и медленное заполнение.
При этом размер сохраняется по-максимуму от "до последнего удаления". В принципе проблемы нет, потому что всё равно снова заполнится, но тем не менее.
У тех, у кого сжатие, и этого нет - оно всё равно где надо дырок понатыкивает, и размер получается сугубо виртуальным.
Кстати да, даже ALTER (RECREATE) TABLE ныне вполне себе позволяет фоновые INSERT :) Такие дела.
Уже даже одна возможность no-lock online DDL (schema change), даже со всеми ограничениями, даёт любому нынешнему варианту MySQL фору в три головы минимум.
Зачем использовать постгрю там, где даже ms sql слишком много, а sqlite слишком мало?
MySQL и PostgreeSQL - это ПО для разных целевых аудиторий.
MSSQL вроде бы хорош внутреннее, но вот стохастика в оптимизаторе - это лютый ппц при дебаге.
Повторить проблему с запросом в синтетики почти невозможно, приходится жестить на боевых.
// в синтетике
Пиши всё в плоский файл.
Так это и получится постгрес.
У открытого постгреса как с чем-нибудь галероподобным?
Ну то есть, репликация до сих пор master-slave или есть что-то более приличное встроенное?
Mariadb используют в том числе и за (почти) беспроблемность в данном случае репликации.
Да никак. Даже репликация без DDL до сих пор. Без слёз не взглянешь.
Вот блин, не знал. Стоят мастер и реплика Postgres c timescaledb. И все работает - таблички новые на реплике появляются, старые удаляются. Наверно магия... репликация то без DDL.P.S.
Ну а аналога галеры действительно нет.
Реплика-то активная, читать с неё можно, или standby? :)
(вопрос ответа не требует)
А зачем тогда спрашиваешь?hot_standby
Да, читать можно.
Серьёзно? И даже конфликтов с применением WAL при чтении нет? :)
А вот это есть. Пока читаем, применение wal "покурить уходит".Но как это связано с опровержением вашего "Даже репликация без DDL до сих пор"?
Я писал про логическую репликацию. Репликация через сброс WAL - это редкостное извращение с попутными граблями. И нет, там не применение покурить уходит, там чтение канселяется. Чтобы покурить - надо издеваться над настройками.
В вашем посте выше про логическую репликацию ни слова. Поэтому прочитав его, можно подумать, что в PostgreSql DDL не реплицируется - а это ложь.>>Репликация через сброс WAL - это редкостное извращение с попутными граблями.
Любая репликация(и физическая и логическая) в PostgreSQL идет через передачу WAL. Просветите, в чем извращение и грабли?
Физическая репликация - штука стабильная и надежная. Не ломалась ни разу в отличие от репликации mariadb/mysql.
Кстати, репликация в mariadb/mysql тоже идет через сброс лога.>>Чтобы покурить - надо издеваться над настройками.
Вот тут вообще не понятно, что вы имели ввиду. СУБД, как и любой сервис, нужно настраивать бод задачу.
Вы свои сервисы на серверах, включая марию исключительно с дефолтными настройками используете?!
Предпочитаю "настраивать" только то, что очевидно необходимо сервису.
Костыльный "тюнинг" - не моё, хотя иногда конечно тоже приходится.
> Ну то есть, репликация до сих пор master-slave или есть что-то более приличное встроенное?А что приличного в мастер-мастер репликации? Она же ничего нормальной базе не даёт и сломана by design.
>> Ну то есть, репликация до сих пор master-slave или есть что-то более приличное встроенное?
> А что приличного в мастер-мастер репликации? Она же ничего нормальной базе не
> даёт и сломана by design.Да меня и master-несколько slave устроит, если:
а) можно нормально читать из реплик (в принципе, соблюдается, но возможны лаги)
б) не будет проблем с разворотом репликации при падении мастера (та же галера позволяет прибить одну из реплик, восстановить её виртуалку из бекапа недельной давности и всё заработает без вмешательсва админа/скриптов и без возможных проблем с чтением устаревшего - проверял)
в) не потребует перенастройки клиентов с возможным перезапуском при этом самом повороте (скажем, у галеры можно тупо поставить haproxy, который будет кидать соединения в живые реплики и всё будет работать бесшовно с точки зрения клиента независимо от того, сдохла ли реплика и какая именно - опять же проверял)
г) поддерживается производителем БД (т.е. не куча костылей и подпорок неизвестно от кого и неизвестно для какой версии, пусть даже прикрытых ансиблом, а из коробки, включая автоматику разворота репликации)
По (а) с галерой ещё проще. Можно просто прибить данные реплики, она всё сама скопирует.
> По (а) с галерой ещё проще. Можно просто прибить данные реплики, она
> всё сама скопирует.Ну да, но на рабочем кластере, где случайно прибили одну вм, было проще восстановить из бекапа.
Оно не нужно ни там ни там.
К сожалению стала видна острейшая нехватка ресурсов у компании за MariaDB. По сути текущий 10 - это всё ещё 5.7 с рядом бэкпортов из разных веток и собственных плюшек, при этом очень многое пришлось выкинуть, потому что сил тянуть не хватило. У Oracle же вполне хватило ресурсов сделать ряд важных изменений, не теряя при этом ничего, но на то он и Oracle.
Может и так, но большинству важнее что опенсорц не скатится в монетизацию или ещё какой треш.
И потом, у оракла есть соблазн улучшить продажи их собственной базы вместо развития опенсорца.
Не, там нет конфликта, у двух движков совершенно разные весовые категории. Поэтому развивают оба. До полного счастья им не хватает покупки SQLite :)
Это же не LTS ваще. Сидим на 10.5 и не жужжим.
https://mariadb.com/kb/en/mariadb-server-release-dates/
MariaDB Server 10.6
The current long-term support MariaDB stable release, supported until July 2026.
Сказали же тебе ну жужжи.
Года три назад пытался сделать таблицу из партиций разных типов, memory и innodb если быть точным. В API этот функционал заложен, но при этом выпадала ошибка что пока не поддерживается. Может кто в курсе, исправли ли?
О чём речь-то вообще? Партиции доступны в пределах одного движка, никаких изменений тут не предвидится.
Или речь о MERGE?
> сохраняющее обратную совместимость и отличающееся интеграцией дополнительных движков хранениягде NDB?
В ванильке. NDB число оракловая шляпа (до этого сановская).
NDB был в MySQL еще до покупки Ораклом
До покупки санками, вы хотели сказать?
В принципе да, он ещё и до санок существовал.
нет, я хотел сказать то, что написали ответ это на то, что это "оракловая шляпа"
Мария просто нешмагла в NDB
https://mariadb.com/kb/en/ndb-in-mariadb/Но причины могут быть разными, кроме коммюнити. Там наверняка фигово поле патентов.
про патенты не слышал ни разу, а то что у них инженеров для этого нет они сами говорили
> Добавлен тип данных INET4 для хранения адресов IPv4 в 4-байтовом представлении.веб-макакам мало int32?
CHAR(4) оптимально - накладные расходы всё те же, что и у INTEGER.
>MariaDB поставляется вместо MySQLВот она свобода. Вместо «вместе» — «вместо». Это как истерия против ОО, когда просто подменяли пакет, действуя как вирусы. Видать обиделись на Оракл сильно.
Никакого выбора в «свободной» системе — жричодали.
> жричодалиДа, в бесплатном софте именно так. Или ты спонсируешь проект (своим временем, деньгами или ещё как), или пользуешься тем, что дали.
Да и в платном обычно удовлетворение каких-то «хотелок» за отдельные деньги (зачастую немалые)
Это понятно. Но самый цимес в том, что эти адепты жрут г-но от тех, кто при этом убеждает что печётся об их свободе. А свобода по-дебиановски (даи по-столмановски) — это отсутствие выбора.