Рационализация согласованности в облаках

Экспериментальная среда


Тестовый набор 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 . Мы реализовали это правило с использованием автомодельного распределения (self-similar distribution) Джима Грея (Jim Gray) с параметрами h = 0.2 и N = 4 . За одну покупку можно приобрести не более 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 единиц товара. Это составляет больше четверти от всего доступного объема товаров. Такая нагрузка системы позволила нам получить стабильные и повторяемые результаты. Конечно, в сценариях реального мира нагрузка гораздо ниже, но зато выше расходы из-за продажи товаров сверх запаса. Для получения стабильных результатов при таких нагрузках требуется очень долгое время выполнение тестов, что делает почти невозможным детальное изучение производительности, и поэтому мы приводим только результаты, полученные при высокой нагрузке системы. Однако, при выполнении нами некоторых экспериментов с более реалистичными сценариями были получены вполне сравнимые результаты.


Содержание раздела