1.3.2.
Влияние параметров N, W, R на показатели согласования реплик
Параметры N, W, R были определены в пункте 1.3.1. Согласованность
считает строгой, если W+R>N. Действительно, если обозначить набор узлов, на
которые реплицируется запись, как множество Ws, набор узлов, с которых
считывается запись, как Rs, а общий набор узлов как Ns, то:
,
(1.1)
Из выражения (1.1) видно, что при выполнении операции чтения хотя бы
одна запись будет содержать новую версию записи.
Существует три варианта обеспечения строгой согласованности [14]:
1. W = N, R = 1. В этом случае обновление выполняется сравнительно
медленно, т.к. для завершения операции система должна согласовать все N
реплик. Однако чтение выполняется быстро, т.к. запись читается из какой-либо
одной доступной реплики. Такой вариант подходит для сегментов записей,
которые редко обновляются, но часто читаются. Схематически процесс
обновления и чтения записи представлен на рисунке 1.6.
N = 3
W = N
R = 1
Верcия Б
Верcия Б
Верcия Б
Верcия Б
Верcия Б
Рисунок 1.6 – Строгая согласованность с параметрами W=N, R=1.
2. W = 1, R = N. В этом случае обновление завершается быстро, однако
чтение выполняется сравнительно медленно, т.к. для завершения операции
система должна прочитать все N реплик записи. Такой вариант подходит для
сегментов записей, для которых операция обновления выполняется часто и важно,
чтобы она завершилась быстро. Однако при чтении может быть возвращено
несколько версий записей, что осложняет обработку полученных данных. В этом
случае приложение должно выбрать последнюю обновленную запись,
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: |