Дональд Коссман, Тим Краска и Саймон Лоузинг
Перевод: Сергей Кузнецов
Оригинал: Donald Kossmann, Tim Kraska, Simon Loesing. An evaluation of alternative architectures for transaction processing in the cloud. Proceedings of the 2010 International Conference on Management of Data (SIGMOD 2010), June 6-11, 2010, Indianapolis, Indiana, USA, pp. 579-590
This translation is a derivative of ACM-copyrighted material. ACM did not prepare this translation and does not guarantee that it is an accurate copy of the originally published work. The original intellectual property contained in this work remains the property of ACM.
От переводчика
Меня продолжают интересовать различные аспекты управления данными в новых условиях неограниченного горизонтального масштабирования аппаратных средств. В настоящее время эта область достаточно строго распадается на два направления: управление аналитическими данными и управление транзакционными данными. Наиболее интересным работам первого направления посвящены следующие статьи:
Возможно, заслуживает внимания и моя обзорная статья MapReduce: внутри, снаружи или сбоку от параллельных СУБД?
- Эндрю Павло, Эрик Паулсон, Александр Разин, Дэниэль Абади, Дэвид Девитт, Сэмюэль Мэдден, Майкл Стоунбрейкер. Сравнение подходов к крупномасштабному анализу данных
- Майкл Стоунбрейкер, Дэниэль Абади, Дэвит Девитт, Сэм Мэдден, Эрик Паулсон, Эндрю Павло и Александр Разин. MapReduce и параллельные СУБД: друзья или враги?
- Джеффри Коэн, Брайен Долэн, Марк Данлэп, Джозеф Хеллерстейн, Кейлэб Велтон. МОГучие способности: новые приемы анализа больших данных
- Эрик Фридман, Питер Павловски и Джон Кислевич. SQL/MapReduce: практический подход к поддержке самоописываемых, полиморфных и параллелизуемых функций, определяемых пользователями
- Азза Абузейд, Камил Байда-Павликовски, Дэниэль Абади, Ави Зильбершац, Александр Разин. HadoopDB: архитектурный гибрид технологий MapReduce и СУБД для аналитических рабочих нагрузок.
- Ю Ксу, Пекка Костамаа, Лайк Гао. Интеграция Hadoop и параллельной СУБД.
Не менее интересно, хотя и совсем по-другому, развивается и второе направление. Здесь имеется некоторое противостояние между лагерем, опирающимся на теорему CAP (по этому поводу очень советую почитать замечательную заметку Стоунбрейкера Ошибки в системах баз данных, согласованность "в конечном счете" и теорема CAP) и, следуя этой теореме, отказывающихся от обеспечение свойств ACID в своих транзакциях, и группой, возлавляемой тем же Стоунбрейкером, которые стремятся к новому поколению транзакционных средств управления данными, в которых свойства ACID продолжают поддерживаться. Этой тематике тоже посвящен ряд интересных статей:
- Даниела Флореску, Дональд Коссман. Переосмысление стоимости и производительности систем баз данных;
- Тим Краска, Мартин Хеншель, Густаво Алонсо, Дональд Коссман. Рационализация согласованности в "облаках": не платите за то, что вам не требуется;
- Пэт Хелланд, Дейв Кэмпбел. Дом на песке.
- Майкл Стоунбрейкер, Сэмюэль Мэдден, Дэниэль Абади, Ставрос Харизопулос, Набил Хачем, Пат Хеллэнд. Конец архитектурной эпохи, или Наступило время полностью переписывать системы управления данными.
- Ставрос Харизопулос, Дэниэль Абади, Сэмюэль Мэдден, Майкл Стоунбрейкер. OLTP в Зазеркалье.
- Эван Джонс, Дэниэль Абади и Сэмуэль Мэдден. Управление параллелизмом с низкими накладными расходами для разделенных баз данных в основной памяти.
Сравнению этих подходов следовало бы посвятить отдельную статью, но пока ее нет, а в вводной заметке к переводу такое сравнение выполнить невозможно. Поэтому пока я просто продолжаю собирать интересные статьи про новые транзакционные системы управления данными и предлагаю вашему вниманию статью Дональда Коссмана и его коллег, в которой на основе тестового набора TPC-W сравниваются характеристики производительности и стоимости "облачных" систем управления данными от разных компаний и с разной архитекурой. Я считаю эту статью полезной и познавательной.
Сергей Кузнецов
"Облачные" вычисления сулят обеспечить несколько новых возможностей. Они сулят сократить время выхода на рынок за счет устранения или упрощения процессов планирования, приобретения и подготовки к использованию аппаратных средств. Они сулят обеспечить разные способы сокращения расходов. Во-первых, за счет перехода к использованию бизнес-модели "платы по мере использования" можно превратить капитальные вложения в текущие расходы. Во-вторых, "облачная" инфраструктура может обеспечить более высокий (близкий к 100%) коэффициент загруженности аппаратных ресурсов. Поэтому cloud computing часто считают важной технологией для обеспечения экологически безопасного использования вычислительных средств (green computing). Кроме того, при использовании "облачных" вычислений сокращаются эксплуатационные расходы и трудозатраты за счет автоматизации таких IT-задач, как обновление системы безопасности (security patch) и переключение на резервные мощности при отказе оборудования (fail-over). Что касается производительности, то cloud computing обещает (практически) неограниченную масштабируемость, так что IT-администраторам не требуется беспокоиться о поддержке пиковой рабочей нагрузки. Наконец, "облачные" вычисления сулят гибкость при использовании программных и аппаратных средств и при управлении ими, что позволяет сократить время выхода на рынок и уменьшить расходы.
К настоящему времени выпущен ряд продуктов. В частности, свои продукты предлагают три крупнейших участника IT-индустрии – Amazon, Google и Microsoft. Все эти продукты объединяет то, что они доступны широкой аудитории пользователей за счет оформления технологии cloud computing в виде сервисов, которые можно вызывать с любого персонального компьютера на основе интерфейса REST. Кроме того, все текущие предложения направлены на обеспечение всех основных преимуществ "облачных" вычислений, и они завоевывают все большее признание на IT-рынке.
Цель этой статьи состоит в том, чтобы заложить первую небольшую веху на пути к анализу упомянутых продуктов. С использованием базы данных и рабочей нагрузки тестового набора TPC-W мы произвели оценку предложений Amazon, Google и Microsoft и сравнили результаты этих экспериментов с результатами, полученными при прогоне тестового набора TPC-W на Java-сервере приложений с применением обычной системы реляционных баз данных. В частности, мы старались найти ответы на следующие вопросы:
Очевидно, что результаты, описываемые в этой статье, являются всего лишь мгновенным снимком текущего состояния дел. Основной вклад статьи состоит в формировании некоторого каркаса, который может позволить поставщикам улучшать свои службы, а пользователям – сравнивать продукты.
Как будет показано, наши эксперименты привели к ряду неожиданных результатов. Хотя многие службы со стороны выглядят очень похожими (например, матрицы цен Microsoft Azure и Amazon Web Services почти идентичны относительно пропускной способности сети, стоимости хранения данных и ресурса процессора), они очень различаются, когда речь идет о сквозной производительности (end-to-end performance), масштабируемости и стоимости использования. Может быть, еще более неожиданными оказались различия в архитектурах, поддерживающих управление крупномасштабными данными и транзакционные рабочие нагрузки в "облачной" инфраструктуре.
В то время как большинство (традиционных) систем баз данных общего назначения (например, DB2, MySQL, Oracle 11, Postgres, Microsoft SQL Server) основывается практически на одних и тех же "хрестоматийных" архитектуре и структурах данных (например, во всех них используются динамическое программирование, индексы на основе B-деревьев, упреждающая запись в журнал (write-ahead logging)) [26], различия в реализации "облачных" служб колоссальны. Хотя время хрестоматийной архитектуры "облачных" служб еще далеко не пришло, в этой статье мы пытаемся "заглянуть за кулисы", классифицировать варианты архитектуры и подготовить почву для сравнения различных вариантов архитектуры по отношению к производительности и стоимости.
Оставшаяся часть статьи структурирована следующим образом. В разд. 2 приводится обзор родственных работ. В разд. 3 описываются альтернативные архитектуры баз данных, предназначенные для обработки транзакций "в облаках". В разд. 4 кратко обсуждаются службы, используемые нами для экспериментов и представляющие различные архитектуры, которые описываются в разд. 3. В разд. 5 приводятся детальные данные о тестовом наборе и экспериментальной среде. В разд. 6 представлены результаты экспериментов. В разд. 7 содержатся заключительные замечания и планы будущих исследований.
Несколько исследований посвящалось оценке производительности и масштабируемости инфраструктур "облачных" вычислений. В недавнем исследовании, выполнявшемся в сообществе баз данных, производительность Hadoop сравнивалась с производительностью более традиционных (основанных на SQL) систем баз данных [19]. Это исследование фокусировалось на крупномасштабных аналитических рабочих нагрузках с доступом к данным только по чтению, в то время как наше исследование концентрируется на рабочих нагрузках OLTP. В [15] приводятся результаты родственного исследования соотношений "стоимость-согласованность" при выполнении рабочих нагрузок OLTP в "облачной" среде. Наиболее близкой нашему исследованию работой является проект Cloudstone из университета Беркли. В Cloudstone специфицируются база данных и рабочая нагрузка для изучения "облачных" инфраструктур [23], и определяются показатели производительности и стоимости, на основе которых сравниваются альтернативные системы. В своих экспериментах мы могли бы использовать рабочую нагрузку Cloudstone, но мы предпочли выбрать тестовый набор TPC-W по причине его популярности и широкого признания в сообществе баз данных. Описываемое исследование основывается на двух предыдущих статьях, в которых излагалась наша позиция. В [12] предлагалось в ходе экспериментов по изучению производительности обращать внимание не только на величины задержки и пропускной способности, но и на стоимость. В [2] описывалась серия экспериментов, направленных на оценку "облачных" инфраструктур. Данное исследование можно считать первым шагом к реализации программы, намеченной в [2]: мы выполнили эксперименты, предложенные в [2] для оценки "масштабируемости" и "стоимости". Эксперименты из [2] с "пиковой" рабочей нагрузкой и отказоустойчивостью остались на будущее. На нашу работу особенно повлияла классическая статья, посвященная клиент-серверным архитектурам баз данных [11].