Слон против дельфина: встреча московских групп
пользователей MySQL и PostgreSQL
– Ыыы... А вдруг они… подерутся?
– Что значит «вдруг»?
Да, странно – имена без весовых категорий указаны... Или будет как в К1?
Боксерские перчатки выдавать будут?
Из комментариев к предстоящему событию на форуме opennet.ru
22 января в Москве в помещении Высшей школы экономики на Покровском бульваре состоялась совместная встреча московских групп пользователей MySQL и PostgreSQL. Обошлось без кровопролития…
Это мероприятие все ждали с несколько нездоровым оживлением. Это и понятно, сообщества MySQL и PostgreSQL давно известны антагонизмом по отношению друг к другу. «Копья» на многочисленных интернет-форумах и списках рассылки «трещат» уже далеко не первый год, и вот организована первая очная встреча.
Сторону PostgreSQL представляли Николай Самохвалов («Постгресмен», он и выступал в качестве ведущего встречи), Олег Бортунов, Федор Сигаев (PostgreSQL Global Development Group) и Андрей Смирнов (NetStream). Им противостояли Константин Осипов (Sun/MySQL) и Алексей Рыбак (Badoo.com).
И треснул мир напополам. Дымит разлом
Во вступительном слове Николай Самохвалов подчеркнул, что последователи обоих СУБД собрались, как друзья, как сторонники двух самых успешных Open Source-серверов баз данных, для распространения которых сейчас, во время тяжелых экономических условий, возможно, самое время.
Первая часть встречи действительно была организована как поединок – 40 минут были разбиты на четыре части, на протяжении которых стороны при жёстком регламенте времени (по пять минут каждой стороне) должны были осветить работу отстаиваемой СУБД в том или ином аспекте.
Getting started
Первый раунд был посвящён проблемам установки СУБД, и Николай Самохвалов в своём выступлении постарался развенчать миф о сложности и «консольности» PostgreSQL, продемонстрировав на слайдах работу симпатичного графического инсталлятора. Особый упор делался на разнообразие способов установки и управления СУБД, простоту этого действия для новичков («Нужно только жать кнопку Next!»).
Очень порадовало публику известие о разработке компании EnterpriseDB, позволяющей управлять СУБД PostgreSQL с iPhone.
Говоря о возможностях сервера баз данных, Николай сообщил, что на любой вопрос человека, мигрирующего на PostgreSQL, вида «а почему вот этого нет?» Он ответственно заявляет – «вот это – уже есть»!
В ответ, говоря про установку MySQL, Константин Осипов поначалу ограничился одной фразой:
– Говорить тут особо нечего, у большинства из вас MySQL уже стоит.
Но потом кратко обрисовал установку СУБД, уложившись в три минуты, против заявленных пяти, при этом успев рассказать о типах хранилищ данных в MySQL.
Scale out
Следующий раунд – «Масштабирование». Его начал Алексей Рыбак (личность достаточно известная в мире разработчиков высоконагруженных систем и веб-программирования). Своё выступление он начал словами:
– Я здесь представляю тех ребят, которые просто берут MySQL и используют её. Я имею слабое представление о том, что там внутри.
После чего поделился собственным опытом использования СУБД в большом проекте (тысячи серверов, 24х7х365 и т. д.). При этом упор делался на то, что прагматичная позиция диктует выбирать не красивых и умных, а гарантированно работающие схемы, и в этом смысле MySQL очень хороша тем, что не даёт создавать неоправданно сложные зависимости между данными и «не диктует неэффективную или сложно управляемую архитектуру».
Алексей подчеркнул, что решения, применяемые в Badoo.com, не используют сложных запросов, внешних ключей триггеров и процедур, а репликация, шардинг (сегментирование по определенному признаку), очереди событий на базе MySQL являются собственными разработками. При этом архитектура системы не менялась 4 года, за которые число пользователей её возрастало от ноля до 18 миллионов.
Далее Алексей рассказал о новом проекте – libmca, библиотеки для построения клиента с асинхронной обработкой множества запросов к СУБД MySQL.
В ответ Андрей Смирнов подчеркнул преимущества PostgreSQL на многоядерных и многопроцессорных аппаратных платформах. Также были упомянуты чрезвычайно эффектные решения для PostgreSQL от компании Skype, такие как PgBouncer и Sky Tools (Longdicade), а также встроенные в СУБД средства масштабирования. Далее было кратко рассказано об архитектуре Skype, которая, по заверениям разработчиков, должна оставаться жизнеспособной и при миллиарде пользователей. Вообще с таким пользователем, как Skype, команде PostgreSQL в этом раунде можно было больше ничего не доказывать.
Упомянуто было также теперь уже открытое решение GridSQL от EnterpriseDB.
Development
Третий раунд был посвящён развитию СУБД.
Николай Самохвалов рассказал о циклах разработки PostgreSQL, системе нумерации версий и о нововведении процесса разработки – мероприятиях Commit Fest, процесса регулярной обработки патчей и включении их в CVN HEAD. Благодаря им сообщество в любой момент времени знает, какие изменения точно будут в очередном релизе СУБД (в данном случае в PostgreSQl 8.4).
В ответ Константин Осипов рассказал о прогрессе MySQL за последние 6 лет и показал структуру разработки СУБД, назвав важное отличие – использование распределённой системы контроля версий (Bazaar), что обусловлено принципами разработки MySQL, а именно наличия, помимо основного дерева, большого числа поддерживаемых веток. Было рассказано об инструментах тестирования и сборки, о новшествах в предстоящих релизах СУБД – 5.3, 6.0 (online backup и новые хранилища данных Maria и Falcon), 6.1 (наконец-то внешние ключи!).
Community
Следующий раунд назывался «Сообщество».
Константин Осипов, не покидая кафедры, рассказал о существующих формах поддержки пользователей MySQL – списках рассылки, форумах, московской группе пользователей, особо была упомянута платная техническая поддержка для коммерческих клиентов. (Цитата: «Если есть какая-либо техническая проблема – есть гарантия, что она будет решена».)
Николай Самохвалов показал географическое распространение разработчиков и групп пользователей PostgreSQL (увы, как было видно на карте, Африка и Антарктида оказались практически не охвачены) и рассказал о мероприятиях, проводимых российским PostgreSQL-сообществом. Тут оппонентам крыть было нечем – на одном из таких мероприятий мы и находились.
Coda
После этого слово попросил Максим Бабук (Masterhost), рассказавший об успешном переводе высоконагруженной системы с MySQL на PostgreSQL и о том, что последняя нормально выдерживала нагрузки, на которых первая «умирала». Патетику доклада несколько сбил Фёдор Сигаев, спросив, зачем при описанной структуре данных (шесть простых таблиц, простые запросы) надо было использовать реляционную СУБД.
На этом первая часть встречи закончились, и приглашённые эксперты стали отвечать на вопросы присутствующих.
Прения
«Холивара» не получилось, наверняка к чьему-то разочарованию. Возможно потому, что был вечер трудового дня и все устали, а может, просто собрались адекватные люди, которые к тому же успели поломать на форумах все возможные копья. В аудитории царила обстановка политкорректности и доброжелательности.
Вопросы старались задавать представителям двух команд одновременно, правда, это не всегда получалось. Касались они самых разных тем – от «назовите самый большой проект под PostgreSQL» до реализации OLAP-куба. Из конструктивной части вопросов/ответов довольно интересно было послушать про организацию работы СУБД в условиях ограниченности ресурсов, виртуализацию (VPS), о подходах к проблеме квотирования ресурсов. Также вышла увлекательная мини-дискуссия между Олегом Бортуновым и Константином Осиповым относительно применения паттернов построения доступа к данным и концепции Cloud Сomputing в свете будущего информационных систем.
Последний вопрос был знаковым, его задала очаровательная девушка, вид которой во время встречи вызывал недоумение – как и зачем она здесь оказалась. В общем, после рассуждений о жадных или генетических алгоритмах и индексирующих многомерных массивах прозвучало:
– Здравствуйте! Я начинающий веб-дизайнер, не подскажете, какую базу данных мне выбрать? – бурная реакция аудитории заглушила ответ: «Вам, девушка, любую».
Расходились в хорошем настроении.
Текст: Кирилл Сухов, фото Михаил Шурутов