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

Адаптивная установка порогового значения


Критическим аспектом нашего подхода, влияющим и на расходы, и на корректность, является определение момента времени, в который следует переключать уровни согласованности.

Пусть Cx обозначает стоимость выполнения операции обновления записи категории x. В этой стоимости отражаются только дополнительные расходы в расчете на запись в уже выполняемой транзакции; расходы на образование транзакции не учитываются. Пусть CO – это расходы, связанные с нарушением согласованности. Запись следует обрабатывать на уровне слабой согласованности, только если ожидаемая экономия от применения слабой согласованности превышает ожидаемые расходы EO(X), вызываемые несогласовавнностью:

Если CA - CC > EO(X), то запись следует обрабатывать на уровне сессионной согласованности (данные категории C). Если CA - CC < EO(X), то запись следует обрабатывать на уровне строгой согласованности (данные категории A). В предположении, что EO(X) = PC(X) × CO, запись следует обрабатывать в режиме слабой согласованности, если вероятность конфликта меньше значения (CA - CC) / CO:

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

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



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