Новости из Блогов За рамками MySQL

Discussion in 'Мировые новости. Обсуждения.' started by Suicide, 18 Aug 2012.

  1. Suicide

    Suicide Super Moderator
    Staff Member

    Joined:
    24 Apr 2009
    Messages:
    2,324
    Likes Received:
    6,400
    Reputations:
    693
    За рамками MySQL
    Потомки популярной базы данных

    Введение

    MySQL ― одна из самых популярных бесплатных программ с открытым исходным кодом в истории. Это фундамент управления базами данных тысяч Web-сайтов, вероятно, послуживший толчком (наряду с Linux®) к взрывному росту Интернета за последние 10 лет.

    Но если СУБД MySQL так важна, то почему появляется все больше популярных ответвлений от основного продукта MySQL? Поскольку MySQL ― бесплатная и открытая СУБД, разработчики всегда могут взять код, изменить его, как считают нужным, и распространять самостоятельно. Долгое время не было никаких ветвей MySQL, которые разработчик мог бы с уверенностью использовать в своей собственной рабочей среде. Теперь это не так. Несколько вариантов привлекают большое внимание.

    В этой статье рассмотрены три популярных ветви MySQL: Drizzle, MariaDB и Percona Server с механизмом XtraDB. Мы кратко поговорим о причинах и целях создания каждого из них и о том, стоит ли использовать их в своей рабочей среде. Прочитав эту статью, вы сможете ответить на вопрос: "Будет ли этот вариант MySQL хорошим решением для моей среды?"


    Почему происходит ветвление?

    Почему происходит ветвление MySQL? Это вполне законный вопрос. На MySQL основаны тысячи Web-сайтов, и это, казалось бы, отличное решение, устраивающее многих. Однако как это часто бывает, то, что хорошо для многих, хорошо не для всех. Некоторые разработчики хотят создать для собственных нужд нечто еще лучшее. А что может быть лучше, чем превращение хорошего решения в идеальное?

    Давайте подробнее рассмотрим то, что стремились изменить эти направления. Некоторые почувствовали, что MySQL становится слишком раздутым и многие из его функций никогда не используются, но влияют на производительность. Зачем тем, кого вполне устраивал более рациональный MySQL 4, дополнительные сложности, добавленные в MySQL 5? Для этого направления предпочтительная ветвь MySQL должна быть как можно проще и быстрее – пусть она обладает меньшими возможностями, но будет быстродействующей и ориентированной на свою целевую аудиторию, в данном случае ― Web-сайты высокой готовности.

    Другие считают, что MySQL не предлагает достаточного количества новых функций, или они появляются слишком медленно. Им кажется, что MySQL не поспевает за целевыми рынками Web-сайтов высокой готовности, работающими на многоядерных процессорах с огромным объемом оперативной памяти. Всем, кто знаком с MySQL, известно, что эта СУБД предлагает два разных механизма хранения – MyISAM и InnoDB. Так вот, эти люди считают, что ни один из них не дает им того, в чем они нуждаются, и создают новый механизм хранения данных, идеально подходящий для их целей.

    Некоторые проекты ставят перед собой цель создать "прозрачную" замену для MySQL, которую можно просто подставить ― без необходимости менять хотя бы одну строку кода. Это направление использует тот же код и те же интерфейсы, что и MySQL, максимально упрощая переход. Другой проект хвастается тем, что он несовместим с MySQL и требует изменения кода. Каждая ветвь находится на своем уровне зрелости: некоторые утверждают, что они готовы для промышленных приложений, а другие пока еще далеки от этого.

    Наконец, остается неопределенность относительно судьбы MySQL в руках Oracle. Oracle поглотила Sun, которая приобрела MySQL, и теперь Oracle контролирует продукт MySQL и направляет сообщество разработчиков, создающих новые законченные продукты. У Oracle есть своя коммерческая СУБД, и высказываются опасения, что компания может не выделить достаточных ресурсов на развитие продукта MySQL, чтобы тот шел в ногу со временем. Таким образом, многие направления стали результатом опасения, что MySQL, ведущая бесплатная и открытая СУБД, может медленнее приобретать новые функции, реже обновляться и стать более дорогостоящей в поддержке.

    XtraDB

    XtraDB - это не отдельный продукт, он все еще считается частью MySQL. На самом деле, XtraDB ― это механизм хранения, предназначенный для баз данных на основе MySQL. Его можно рассматривать как дополнительный вариант к стандартным MyISAM и InnoDB, которые уже входят в состав MySQL. По умолчанию MySQL 4 и 5 устанавливают каждую таблицу с помощью механизма хранения MyISAM. InnoDB ― тоже относительно новый вариант, так что администраторы баз данных и разработчики при настройке базы данных теперь могут выбрать механизм хранения для каждой таблицы. Основное различие между двумя вариантами заключается в том, что MyISAM, в отличие от InnoDB, не поддерживает транзакционный режим. Кроме того, в InnoDB множество мелких усовершенствований, повышающих производительность по сравнению с MyISAM, и этот механизм надежнее и безопаснее с точки зрения возможной потери данных. Начиная с версии 5.5, когда стало ясно, что механизм InnoDB лучше подходит для будущих усовершенствований, MySQL стала по умолчанию использовать InnoDB вместо MyISAM.

    Эти преимущества привели к тому, что механизм хранения InnoDB сам образовал новую ветвь ― XtraDB. Какова же степень новизны этого механизма хранения? Компания Percona выпустила его менее трех лет назад. Так что это относительно новый механизм. Он специально предназначен для современных быстродействующих Web-сайтов с современными серверами. Он рассчитан на серверы с десятками и сотнями процессорных ядер и большим объемом оперативной памяти (32 ГБ и более). Любая компания может арендовать такие серверы у компании по управлению серверами и, база данных должна в полной мере использовать их возможности.

    Направление XtraDB преследует еще одну цель – стать простой заменой механизма хранения InnoDB, чтобы пользователи могли легко с одного на другой без необходимости изменять что-либо в исходном коде приложения. Кроме предоставления всех новых функций и усовершенствований, которые они хотели бы добавить, XtraDB должен быть обратно совместим с InnoDB. Этой цели разработчики достигли.

    Насколько XtraDB быстрее? Один тест, который я нашел, показывает, что этот механизм выполняет в 2,7 раза больше транзакций в минуту, чем встроенный в MySQL 5.1 InnoDB (см. раздел Ресурсы). Конечно, это заслуживает внимания, особенно с учетом простоты перехода.


    Percona

    XtraDB предлагает заметные усовершенствования по сравнению с встроенными механизмами хранения MySQL, но это не самостоятельный продукт, и его нельзя просто включить в существующую установку MySQL. Чтобы использовать этот новый механизм хранения, нужно приобрести продукт, в который он входит.

    Этот продукт ― Percona Server, выпущенный компанией Percona, одним из ведущих поставщиков консалтинговых услуг по MySQL. Это самостоятельная СУБД, которая предоставляет пользователям возможность заменить свою установку MySQL на Percona Server и таким образом воспользоваться преимуществами механизма хранения XtraDB. Компания утверждает, что он полностью совместим с MySQL, так что теоретически в программное обеспечение не придется вносить никаких изменений. Это определенно огромное преимущество и хорошо для проверки качества, когда нужно быстро оценить выигрыш в производительности. Таким образом, основанием для того, чтобы присмотреться к Percona, служит возможность воспользоваться механизмом XtraDB при минимуме необходимых изменений в основном коде.

    К тому же его разработчики ― авторы оригинального механизма хранения XtraDB. Percona сделала этот код открытым, так что его можно найти и в других продуктах, но создатели первоначального механизма ― те же, кто написал этот продукт. При желании можно использовать следующую информацию.

    Вот что говорится о Percona Server на Web-сайте разработчиков:

    • масштабируемость: обрабатывает больше транзакций; масштабируется на мощные серверы;
    • производительность: Percona Server с XtraDB чрезвычайно быстр;
    • надежность: устойчив к повреждению, отказобезопасная репликация;
    • управление: оперативное резервное копирование, оперативный импорт/экспорт таблиц;
    • диагностика: развитое профилирование и оснащение инструментами;
    • гибкость: переменный размер страницы, улучшенное управление буферным пулом.

    Наконец, Percona утверждает, что ее продукт "максимально приближен к официальным выпускам MySQL Enterprise от Oracle", чем отличается от других вариантов, где код, лежащий в основе MySQL, изменился больше. Один недостаток Percona Server заключается в том, что компания сама управляет кодом и не принимает вкладов от внешних разработчиков без их предварительного рассмотрения, что означает, что она контролирует функциональность продукта.


    MariaDB


    Еще один продукт с механизмом хранения XtraDB ― MariaDB. Он очень похож на продукт Percona, но содержит больше изменений во внутреннем коде в целях еще большего повышения производительности по сравнению со стандартным MySQL. В нем используется механизм XtraDB непосредственно от Percona, так что механизмы хранения обоих продуктов идентичны.

    Более того, в состав MariaDB входят и стандартные механизмы хранения MySQL ― MyISAM и InnoDB. Так что, фактически, его можно считать расширением MySQL, которое делает все, что делает MySQL, и многое другое. Утверждается также, что это прозрачная замена для MySQL, так что его можно установить с уверенностью, что для перехода с MySQL на MariaDB не потребуется никаких изменений внутреннего кода.

    Наконец, и это, возможно, самое главное, ведущим разработчиком MariaDB является Монти Видениус, создатель оригинального MySQL. Монти учредил компанию для управления разработкой MariaDB, которая называется Monty Program, и нанимает разработчиков для написания и совершенствования MariaDB. Это хорошо и плохо: Хорошо, что компания руководит созданием новых функций и выпуском исправлений Maria, но то, что она ориентирована не на доход, а на продукт, может создать проблемы. Компании, не приносящие дохода, часто недолговечны.


    Drizzle

    Последний продукт, который мы рассмотрим, ― Drizzle. В отличие от двух других готовых продуктов, Drizzle представляет собой серьезный отход от MySQL, и даже утверждается, что он не является прозрачной заменой MySQL. Цель его разработки ― внесение значительных изменений в MySQL для получения превосходного решения задачи высокой готовности, даже если это приведет к изменению привычных свойств MySQL.

    Ответы на вопросы на странице FAQ компании еще больше подчеркивают ее основополагающие цели. Авторы недовольны изменениями, внесенными в ядро MySQL после выпуска версии 4.1, и утверждают, что многим разработчикам не нужны эти дополнительные накладные расходы. Они признают, что их продукт даже не является SQL-совместимой реляционной СУБД. Это действительно отход от MySQL.

    Так зачем же вообще рассматривать продукт, столь сильно отличающийся от привычного MySQL? Именно по этой причине – это существенно переработанные механизмы MySQL, откуда исключены неоптимальные и ненужные с точки зрения разработчиков функции, и большая часть кода переписана с целью оптимизации вплоть до того, что вместо языка Си используется язык C++. И это еще не все, этот продукт рассчитан на определенную целевую среду – многоядерные серверы с большим объемом оперативной памяти, 64-разрядные машины под управлением Linux, серверы, используемые в облачных вычислениях, Web-сайты хостинга серверов и серверы, обрабатывающие десятки тысяч запросов в минуту. Это довольно специфичный рынок. Не слишком ли специфичный? Нужно учесть, сколько денег такие компании тратят на свои базы данных - если они смогут установить Drizzle вместо MySQL и вдвое сократить стоимость своих серверов, то это огромная экономия!

    Значит, всем стоит перейти на Drizzle? Но он несовместим с MySQL, что неоднократно подчеркивали разработчики. Так что тем, у кого уже есть платформа MySQL, придется переписать много кода, чтобы он должным образом работал в новой среде.

    Хотя для его внедрения потребуются дополнительные усилия, и он не так прост в установке и эксплуатации, как Percona или MariaDB, я включил Drizzle в этот обзор, потому что если не сегодня, то, возможно, через несколько лет он, скорее всего, станет для некоторых предпочтительным выбором. Поскольку цель этой статьи ― популяризация инструментов будущего, это хорошая возможность продемонстрировать данный продукт. Многие ведущие специалисты по базам данных полагают, что в ближайшие пять лет Drizzle станет предпочтительной СУБД высокой готовности.

    Исходный код Drizzle полностью открыт, и принимаются вклады от сторонних разработчиков. За его разработкой не стоит никакая единая компания, как за MariaDB, и этот проект не закрыт для внешних вкладов, как Percona. Это хорошие предпосылки для роста и появления новых возможностей, которые могут понадобиться, учитывая намерение разработчиков переписать большую часть кода MySQL.

    Сравнительная таблица

    Вот краткий обзор трех отделившихся от MySQL продуктов, рассмотренных в этой статье.

    [​IMG]


    Заключение


    В этой статье обсуждаются три новых ветви продукта MySQL, нацеленных на решение некоторых проблем, присущих MySQL. Все три ― бесплатные продукты с открытым исходным кодом. Пользователю необходимо взвесить все "за" и "против" их применения вместо MySQL. Я считаю, что почти для каждого, кто прочел эту статью, предпочтительным выбором СУБД по-прежнему будет оставаться MySQL. Я сильно сомневаюсь, что многие читатели этой статьи управляют Web-сайтом, принимающим 1 000 000 запросов в час. Хочу еще раз подчеркнуть – MySQL остается превосходным продуктом, который в большинстве случаев подойдет как нельзя лучше.

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

    Наконец, главная причина всех этих ответвлений от MySQL ― необходимость изменить некоторые из основных функций MySQL, которые, по мнению авторов, не могут терпеть, пока сам MySQL дозреет до этого. К тому же над будущим MySQL навис призрак Oracle, и многие разработчики, в том числе первоначальные разработчики MySQL, озабочены судьбой продукта и способностью Oracle сохранять достаточную преданность ему. Все это, на мой взгляд, обоснованные опасения, и по этой причине, двигаясь в будущее, нужно не упускать из вида эти три продукта.


    15.08.2012
    Майкл Абернети, автор
    http://www.ibm.com/developerworks/ru/library/os-beyondmysql/
    http://www.ibm.com/developerworks/opensource/library/os-beyondmysql/index.html?S_TACT=105AGX99&S_CMP=CP
     
  2. RexTiam

    RexTiam Member

    Joined:
    2 Nov 2009
    Messages:
    112
    Likes Received:
    45
    Reputations:
    5
    было интересно почитать. Действительно интересно и стоит смотреть в сторону других ветвей.
     
  3. $n@ke

    $n@ke Elder - Старейшина

    Joined:
    18 Sep 2006
    Messages:
    697
    Likes Received:
    404
    Reputations:
    134
    давно юзаю марию,конечно нагрузок не было,но с большими бд(>2гб) справляется быстрее чем мускул.
     
Loading...