2010 г.
Рационализация согласованности в "облаках": не платите за то, что вам не требуется
Тим Краска, Мартин Хеншель, Густаво Алонсо, Дональд Коссман
Перевод: Сергей Кузнецов
Назад Содержание Вперёд
7. Эксперименты
В этом разделе описываются эксперименты, которые мы выполняли для изучения сравнительных характеристик разных политик согласованности. Наши эксперименты основывались на эталонном тестовом наборе TPC-W
[32]. Тестовый набор TPC-W моделирует Internet-магазин и направлен на сравнение производительности разных реализаций. Для всех своих тестовых испытаний мы сообщаем время ответа и стоимость транзакции. Эти результаты демонстрируют высокий потенциал рационализации согласованности.
7.1. Экспериментальная среда
Тестовый набор TPC-W. Тестовый набор TPC-W моделирует Internet-магазин (см. наш первый сценарий использования в разд. 2). В этом тестовом наборе подразумевается, что клиенты обходят Web-сайт Internet-магазина и, в конце концов, совершают покупки. Всего имеются 14 различных действий (например, поиск товара, регистрация клиента и покупка товара) и три разных смеси этих действий. Больше всего операций обновления производится в смеси заказов (Ordering Mix), в которой 10% действий являются покупками товаров. Во всех своих экспериментах мы использовали именно Ordering Mix, чтобы получить более точные характеристики подхода рационализации согласованности.
База данных, определяемая в тестовом наборе TPC-W, содержит данные восьми разных типов (например, элемент данных, содержащий информацию о продукте, включая объем его запаса). Кроме того, в тестовом наборе TPC-W требуется, чтобы все транзакции над базой данных выполнялись на уровне строгой согласованности. В своих экспериментах мы ослабляем это требование. Для изучения характеристик рационализации согласованности мы назначаем разным типам данных разные категории согласованности (см. ниже).
До начала каждого эксперимента устанавливалось некоторое константное значение объема запасов каждого продукта. В тестовом наборе TPC-W определяется, что запасы продуктов должны периодически восполняться. В этом случае тестовый набор может выполняться бесконечно без возникновения ситуаций, когда объем запасов какого-либо продукта становится меньше некоторого порогового значения. Нас интересуют несогласованные состояния базы данных, в которых объем запасов какого-нибудь продукта становится отрицательным по причине параллельного выполнения не изолированных транзакций. Чтобы получить возможность оценить эти несогласованности, мы не восполняем запасы продуктов, а завершаем эксперименты по прошествии заданного времени и подсчитываем число продаж сверх имеющихся запасов. Все эксперименты выполнялись в течении 300 секунд и повторялись по 10 раз.
В смеси Ordering Mix 10% всех действий являются действиями по покупке товаров. В одном действии покупки может быть приобретено сразу несколько видов продуктов. Общее число видов товара, приобретаемых за одну покупку, является случайной целой величиной со значениями от 1 до 6 (включительно). Т.е. за один раз можно приобрести не более 6 видов продуктов. Число единиц товара, которые можно приобрести при покупке данного вида товара, подчиняется правилу 80-20 [15]. Мы реализовали это правило с использованием автомодельного распределения (self-similar distribution) Джима Грея (Jim Gray) с параметрами h = 0.2 и N = 4 [15]. За одну покупку можно приобрести не более 4 единиц одного вида товара.
Распределения данных по категориям. В своих экспериментах мы изучали влияние параметров категоризации. Разные типы данных тестового набора TPC-W приписывались к категориям согласованости: (1) категории данных A, (2) категории данных C, (3) смеси категорий.
(1) Сначала мы включали все типы данных в категорию A, т.е. все транзакции над базой данных были изолированными и сохраняли согласованность данных. Такая категоризация данных соответствует требованиям тестового набора TPC-W.
(2) Потом мы объявляли все данные данными категории C. Транзакции над базой данных были только сессионно согласованными. Данные могли устаревать, а их согласованность – не сохраняться. В частности, поскольку покупка товаров совершалась не в монопольном режиме, могли возникнуть случаи продаж сверх имеющихся запасов.
Таблица 1. Разбиение данных на категории
Данные |
Категория |
XACTS |
A (очень ценные данные) |
Item |
B (зависит от объема запаса) |
Customer |
C (немного параллельных обновлений) |
Address |
C (немного параллельных обновлений) |
Country |
C (немного параллельных обновлений) |
Author |
C (немного параллельных обновлений) |
Orders |
С (только добавление, обновления отсутствуют) |
OrderLine |
С (только добавление, обновления отсутствуют) |
(3) Наконец, мы производили смешанную категоризацию данных. Эта смесь содержала данные категорий A, B и C. Разбиение на категории типов данных тестового набора TPC-W показано в табл. 1. Данные о кредитных картах (XACTS) отнесены к категории A. Данным о продуктах (Item) назначена категория B, поскольку в них содержится числовое значение, к которому можно относиться, как к порогу (объем запаса товара). Все прочие данные отнесены к категории C.
Стоимости. Во всех наших экспериментах база данных размещалась в S3, и клиенты подключались к этой базе данных через серверы приложений, которые выполнялись в среде EC2. Расходы времени выполнения определяются денежной стоимостью выполнения серверов приложений в среде EC2, хранения данных в S3 и подключения к нашим дополнительным службам (т.е. усовершенствованной службе очередей и службе блокировок). Стоимость использования EC2 и S3 определяется компанией Amazon. Стоимость подключения к нашим дополнительным службам и их использования определяется нами, и при этом мы следуем модели SQS (Simple Queue Service) компании Amazon. В частности, ценообразование нашей усовершенствованной службы очередей точно такое же, как у SQS версии WSDL 2008-01-01. Мы используем такие же цены, чтобы избежать различия между службами компании Amazon и нашими дополнительными службами. Стоимость запроса и возврата блокировки равна стоимости чтения сообщения из очереди в SQS. Мы измеряем стоимость выполнения в долларах в расчете на 1000 транзакций. Одна транзакция соответствует в точности одному действию, определенному в тестовом наборе TPC-W.
Убытки, вызываемые несогласованностью, – это расходы, которые несет компания в тех ситуациях, когда оказывается невозможно оказать клиентам обещанную услугу. В данном случае такие расходы связаны с продажей товаров сверх их наличного запаса. Такие заказы невозможно выполнить, и покупатели оказываются обманутыми. В крупных компаниях суммы таких расходов хорошо известны. Поскольку мы очень сильно нагружаем свою системы (см. ниже) сумма расходов, связанных с продажей отсутствующих товаров, была установлена в размере $00.1 в расчете на один ошибочно проданный продукт. Общая стоимость состоит из расходов времени выполнения и расходов, вызываемых несогласованностью данных.
Параметры. В своих экспериментах мы использовали 10 серверов приложений, размещенных в среде EC2. Эти серверы приложений выполняли транзакции в соответствии со смесью действий Ordering mix, определенной в тестовом наборе TPC-W. Число видов товаров в системе равнялось 1000. Значения запасов каждого товара устанавливались равномерно распределенной случайной величиной в диапазоне от 10 до 100. Интервал между выполнениями операции контрольной точки равнялся 30 секундам. Таким образом, не более чем через каждые 30 секунд актуальная версия страницы записывалась в S3. Время жизни страницы равнялось 5 секундам. Размер окна Динамической политики был установлен в 80 секунд, а показатель скольжения – в 5 секунд.
Чтобы четко выявить индивидуальные характеристики различных категорий согласованности и стратегий переключения уровней согласованности, мы подвергли свою систему нагрузочному тестированию. За 300 секунд выполнения тестового набора продавалось до 12000 единиц товара. Это составляет больше четверти от всего доступного объема товаров. Такая нагрузка системы позволила нам получить стабильные и повторяемые результаты. Конечно, в сценариях реального мира нагрузка гораздо ниже, но зато выше расходы из-за продажи товаров сверх запаса. Для получения стабильных результатов при таких нагрузках требуется очень долгое время выполнение тестов, что делает почти невозможным детальное изучение производительности, и поэтому мы приводим только результаты, полученные при высокой нагрузке системы. Однако, при выполнении нами некоторых экспериментов с более реалистичными сценариями были получены вполне сравнимые результаты.
7.2. Эксперимент 1: стоимость в расчете на транзакцию
Основная суть этой статьи состоит в оптимизации общей стоимости транзакции – стоимости, выраженной в долларах. Эта стоимость включает как стоимость выполнения транзакции, так и расходы, возникающие при продаже товаров сверх наличных запасов. В нашем первом эксперименте, результаты которого показаны на рис. 3, мы сравниваем общую стоимость транзакции при соблюдении разных гарантий согласованности.
Рис. 3. Стоимость транзакции ($/1000 транзакций); изменяются гарантии
Для данных категории A стоимость 1000 транзакций составляет примерно $0.15. Для данных категории C стоимость существенно зависит от распределения операций обновления. Для сильно скошенных распределений "80-20" возникает много продаж сверх имеющихся запасов из-за высокого уровня конкуренции операций записи за несколько записей данных. Для обеспечения адаптивной гарантии согласованности мы использовали Динамическую политику, поскольку она лучше всего подходит для сценария Internet-магазина. Эта политика обеспечивает наименьшую стоимость транзакций. Динамическая политика способствует нахождению правильного баланса между слабой согласованностью (позволяющей экономить расходы в время выполнения) и строгой согласованностью (гарантирующей отсутствие продаж сверх наличных запасов).
Рис. 4. Стоимость транзакции ($/1000 транзакций); изменяются расходы, вызываемые несогласованностью данных
На общую стоимость сильное влияние оказывает размер расходов, вызываемых несогласованностью данных. Это влияние демонстрируется на рис. 4. Для данных категории A общая стоимость транзакции при изменении размера этих расходов остается неизменной, поскольку несогласованность данных не возникает, и штрафных расходов просто нет. При возрастании размера расходов общая стоимость транзакций при применении Динамической политики приближается к стоимости транзакций с данными категории A. Динамическая политика настраивается на изменений размера штрафных расходов (см. п. 5.3.3) и при увеличении этого размера вынуждает выполняться в режиме строгой согласованности все большее число транзакций. Стоимость транзакций для данных категории C поразительно быстро растет. При увеличении размера штрафных расходов до $0.1 общая стоимость тысячи транзакций возрастает до $0.74 ($23) для равномерного распределения операций обновления (распределения "80-20"). Поэтому график возрастания стоимости транзакций для данных категории C на рис. 4 не показан.
Экстраполяция результатов экспериментов с использованием Динамической политики на приложения реального мира (такие как Amazon или eBay) показывает, что этот подход может привести к значительной экономии расходов.
Рис. 5. Время ответа (миллисекунды)
7.3. Эксперимент 2: время ответа
Более тщательное рассмотрение аспектов производительности системы позволило нам измерить время реакции системы на одиночные действия тестового набора TPC-W. На рис. 5 приведены основные экспериментальные данные. Наибольшее время ответа система демонстрирует для данных категории A. Каждая транзакция с данными категории A должна получить блокировку до выполнения операций чтения и записи. Наименьшее время ответа обеспечивается для данных категории C, поскольку в этом случае блокировки не требуются. При использовании Динамической политики время ответа увеличивается на 24%, поскольку в этом случае иногда блокировки требуются, чтобы избежать продаж сверх имеющихся запасов. На основании этого мы полагаем, что Динамическая политика может успешно конкурировать с другими современными политиками по отношению к производительности, позволяя в то же время оптимизировать стоимость транзакций (см. предыдущий эксперимент).
7.4. Эксперимент 3: политики
В третьем эксперименте детально изучались различия нескольких адаптивных политик. Мы фокусировались на числовых политиках, поскольку именно они применяются в сценарии Internet-магазина, и сравнивали Политику с фиксированным пороговым значением (с порогами
T = 40 и
T = 12) с Политикой разъединения и Динамической политикой. Тем не менее, поскольку Динамическая политика для числовых данных – это всего лишь развитая форма Общей политики, а Политика, основанная на времени, – это всего лишь особый случай Политики с фиксированным пороговым значением, полученные результаты могут служить и примерами для Политики, основанной на времени, и для Общей политики.
Рис. 6. Стоимость транзакции ($/1000 транзакций)
На рис. 6 приведены стоимости 1000 транзакций в долларах. Политика с фиксированным пороговым значением T = 12 оптимизирована для равномерного распределения операций обновления записей данных (см. эксперимент 4). Эта политика обеспечивает самую низкую стоимость транзакций при равномерном распределении обновлений. При скошенных распределениях операций обновления та же политика приводит к очень высокой стоимости транзакций. Установка порогового значения T = 40 способствует снижению стоимости транзакций при скошенных распределениях обновлений, но повышает стоимость транзакций при равномерном распределении обновлений. Мы приходим к выводу, что Политика с фиксированным пороговым значением сильно зависит от величины порогового значения, и что она уступает по производительности более сложным политикам. Уже Политика разъединения обеспечивает более низкую стоимость транзакций при обоих видах распределений операций обновления, а Динамическая политика может превзойти и Политику разъединения.
Рис. 7. Время ответа (миллисекунды)
На рис. 7 показано время ответа системы при использовании разных политик. Как можно видеть, Динамическая политика обеспечивает наименьшее время ответа. Если в базе данных объем запасов некоторого товара становится меньше фиксированного порогового значения, Политика с фиксированным пороговым значением приведет к выполнению транзакций на уровне строгой согласованности. Чем выще пороговое значение, тем раньше эта политика начнет требовать строгую согласованность. Поэтому Политика с фиксированным пороговым значением демонстрирует увеличение времени ответа при увеличении значения порога. Даже при T = 12 Политика с фиксированным пороговым значением приводит к потребности в слишком большом числе блокировок по сравнению с Динамической политикой и Политикой разъединения.
Иначе говоря, Динамическая политика превосходит все другие политики, описываемые в этой статье, как по стоимости транзакций, так и по времени ответа. Это становится возможным за счет использования статистики, собираемой в время выполнения и игнорируемой другими, в большей мере статическими политиками.
7.5. Эксперимент 4: фиксированное пороговое значение
Наш последний эксперимент был посвящен еще более детальному изучению Политики с фиксированным пороговым значением. Целью являлось экспериментальное определение оптимального порогового значения в условиях нашего тестового набора. Мы хотели лучше понять эту политику принятия решений, а также подход рационализации согласованности в целом. В этом эксперименте операции обновления были равномерно распределены для всех продуктов, данные о которых содержались в базе данных.
Рис. 8. Расходы времени выполнения (в долларах) при изменении порогового значения
На рис. 8 приведены денежные показатели стоимости в расчете на 1000 транзакций при использовании Политики с фиксированным пороговым значением над данными категорий A, B и C. Мы изменяли пороговое значение. Поскольку это пороговое значение несущественно для данных категорий A и C, стоимость транзакций над такими данными остается неизменной. Расходы времени выполнения для данных категории B увеличиваются при возрастании порогового значения. Чем выше пороговое значение, тем раньше эта политика переключится на уровень строгой согласованности, который вызывает значительно больше накладных расходов (например, из-за потребности в блокировках и посылки большего числа сообщений).
Рис. 9. Продажи сверх имеющихся запасов при изменении порогового значения
На рис. 9 показан объем продаж сверх имеющихся запасов в расчете на 1000 транзакций. В нашей ситуации нагрузочного тестирования при работе с данными категории C образуется 7 продаж сверх имеющихся запасов на 1000 транзакций. Для данных категории A, конечно, такие продажи отсутствуют, поскольку данные всегда обновляются в режиме строгой согласованности. При работе с данными категории B чем выше пороговое значение, тем меньше продаж сверх наличных запасов. Так происходит из-за того, что Политика с фиксированным пороговым значением раньше переключается на уровень строгой согласованности. Начиная с порогового значения T = 14, продажи сверх имеющихся запасов исчезают.
Рис. 10. Общая стоимость транзакции при изменении порогового значения
На рис. 10 показана общая стоимость транзакции для данных категорий A, C и B при применении Политики с фиксированным пороговым значением. Общая стоимость является суммой расходов времени выполнения и расходов, связанных с продажей товаров сверх имеющихся запасов. При использовании Политики с фиксированным пороговым значением минимальная стоимость достигается при значении порога T = 12. При этом пороговом значении стоимость транзакции над данными категорий A и C оказывается существенно более высокой.
Эти цифры хорошо демонстрируют то, что адаптация системы во время выполнения позволяет эффективно изменять уровень согласованности от сессионной согласованности до сериализуемости.
8. Заключение
В среде "облачных" служб хранения данных с каждым обращением к службе связаны соответствующие расходы. В частности, можно очень точно оценить в денежном выражении расходы на поддержку протоколов согласованности данных (нужно всего лишь умножить число обращений к службе, требуемых для обеспечения требуемого уровня согласованности, на стоимость одного такого обращения). Поэтому в этой среде согласованность влияет не только на производительность и доступность систем, но и на общую операционную стоимость. В этой статье мы предложили новую концепцию рационализации согласованности, направленную на оптимизацию расходов времени выполнения системы баз данных в ситуациях, когда несогласованность данных вызывает штрафные расходы. Эта оптимизация основана на том, что в базе данных допускается несогласованность данных, если это способствует снижению стоимости транзакций, но не приводит к слишком большому повышению штрафных расходов.
В предложенном подходе данные разделяются (рационируются) на три категории сгласованности: A, B и C. Для данных категории A обеспечивается строгая согласованность, и транзакции над такими данными обладают наибольшей стоимостью. Для данных категории C гарантируется сессионная согласованность; транзакции дешевы, но вероятно возникновение несогласованных данных. Данные категории B обрабатываются на уровнях строгой или сессионной согласованности в зависимости от задаваемой политики. В этой статье мы представляем и сравниваем несколько таких политик переключения уровней согласованности, включая политики, обеспечивающие вероятностные гарантии согласованности. Как показывают наши эксперименты, рационализация согласованности позволяет существенно снизить общие расходы и повысить эффективность "облачных" систем баз данных. Кроме того, эти эксперименты показывают, что изменение уровней согласованности на основе темпоральной статистики обеспечивает наилучшие стоимостные показатели, поддерживая при этом приемлемую производительность.
Мы полагаем, что предложенные в статье статистические политики являются только первым шагом на пути к вероятностным гарантиям согласованности. В будущих работах будут исследованы многие возможные усовершенствования: улучшенные и убыстренные статистические методы, автоматическая оптимизация с учетом других параметров (например, энергопотребления), добавление бюджетных ограничений к функции стоимости и ослабление других принципов парадигмы ACID (например, долговечности хранения – durability).
Назад Содержание Вперёд