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

       

Категория B – адаптивность


В промежутке между данными с сессионной согласованностью (C) и данными, для которых поддерживается режим сериализации (A), существует широкий спектр типов данных и приложений, для которых требуемый уровень согласованности зависит от конкретной ситуации. Иногда требуется строгая согласованность, а иногда она может ослабляться. Принимая во внимание двойное влияние транзакционной согласованности в условиях "облачных" баз данных (на стоимость и производительность), мы вводим категорию B, включающую все данные, для которых имеются требования адаптивной согласованности.

Кроме того, для многих приложений, которые могли бы исполняться в среде "облачной" базы данных, можно определить количество расходов, возникающих из-за несогласованности данных (см. сценарии использования, описанные выше). К таким расходам относятся возвраты платежей клиентам, которым доставлены не те товары, накладные расходы, возникающие при избыточном бронировании, затраты на аннулирование заказов и т.д. Расходы в этом смысле означают либо прямые денежные затраты, либо, например, сокращение клиентской базы или дополнительные административные усилия для разрешения конфликта. Поскольку не все обновления данных категории B приводят к возникновению конфликта (разд. 2), возможны нетривиальные компромиссы между расходами по вине несогласованности данных и преимуществами от использования ослабленной согласованности.

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

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



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