25
проанализировав векторы часов прочитанных записей. Схематически процесс
обновления и чтения записи изображен на рисунке 1.7.
N = 3
W = 1
R = N
Верcия Б
Верcия Б, А
Верcия Б
Верcия А
Верcия А
Рисунок 1.7 – Строгая согласованность с параметрами W=1, R=N.
3. W = R = (N+1) /2 (если N нечетное) и W = R =N/2+1 (если N четное). В
этом случае имеются задержки и при обновлении записи, и при ее чтении. Такой
вариант подходит для сегментов записей, над которыми операции обновления и
чтения выполняются примерно в равных пропорциях. При обработке
прочитанных записей необходимо анализировать вектор часов. Схематически
процесс обновления и чтения записи представлен на рисунке 1.8.
N = 3
W = 2
R = 2
Верcия Б
Верcия Б, А
Верcия Б
Верcия Б
Верcия А
Рисунок 1.8 – Строгая согласованность за счет кворума.
Согласованность считает согласованностью в конечно счете, если W+R≤N.
Действительно, если принять вышеупомянутые обозначения, то:
(1.2)
Из выражения (1.2) видно, что при выполнении
операции чтения система
может вернуть такой набор реплик, в котором ни одна запись не будет новой. То
26
есть, клиенту будут возвращены устаревшие данные. Такой вид согласованности
подходит для сегментов записей, для которых основным свойством из теоремы
CAP является свойство доступности. Этот сценарий схематически представлен на
рисунке 1.9.
N = 3
W = 1
R = 1
Верcия Б
Верcия А
Верcия Б
Верcия А
Верcия А
Рисунок 1.9 – Согласованность в конечном счете.
Рассмотрим основные проблемы, связанные с выбором параметров
репликации.
1. Число реплик N велико:
- отказоустойчивость выше,
- при W+R≤N (слабая согласованность): увеличивается
вероятность чтения
устаревших данных, производительность выше (одновременное чтение из
большего числа реплик),
- при W+R>N (строгая согласованность): производительность ниже
(увеличивается время выполнения операций обновления и чтения).
Схематично проблемы при больших N представлены на рисунке 1.10.
2. Если число реплик N мало картина меняется:
- отказоустойчивость ниже,
- при W+R≤N (слабая согласованность): уменьшается вероятность чтения
устаревших данных, но и производительность ниже,
- при W+R>N (строгая согласованность): производительность выше
(уменьшается время выполнения операций обновления и чтения).
Схематично проблемы при небольших N представлены на рисунке 1.11.
27
1
2
3
N
Write (1)
Распространение изменений
Read (1)
N/2+2
N
Распространение изменений
1
2
N/2+1
Write(N/2+1)
Read(N/2)
а) согласованность в конечном
счете
б) строгая согласованность
Рисунок 1.10 – Проблемы, связанные с большим N.
1
N
Уменьшено число реплик
Read(1)
1
3
N
Распространение изменений
Write
(N/2+1)
Отказ
Ожидание
создания
новой реплики
Новая
реплика
а) согласованность в конечном счете
б) строгая согласованность
Рисунок 1.11 – Проблемы, связанные с небольшим числом реплик N.
Из приведенных выше примеров следует, что
задача выбора параметров
репликации не является тривиальной: их изменение приводит к улучшению одних
показателей и ухудшению других.
Do'stlaringiz bilan baham: