DynamoDB: RCU WCU Strong/Eventual, capacity modes Flashcards

1
Q

Что такое Consistent Read в DynamoDB?
Как это связано со структурой DynamoDB?

A

Под капотом DynamoDB реплицирует данные между серверами.
- Пишем данные во write-реплику.
- Читаем данные из read-реплики.

Подразумевается, что данные при чтении будут консистентны (НЕ противоречивы, без аномалий).

Поэтому операция чтения называется Consistent Read.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Какие режимы чтения данных можно выбрать в dynamoDB?

A

Для чтения данных можно выбрать один из режимов:
- Strongly Consistent Read
- Eventually Consistent Read

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Какие плюсы и минусы есть у Eventually Consistent Read?

A

“Данные будут НЕпротиворечивы В КОНЦЕ КОНЦОВ. Но НЕ факт, что сразу.”

При выборе Eventual Consistent Read Mode
есть вероятность получить УСТАРЕВШИЕ данные,
если чтение произошло слишком быстро:
сразу после записи и ДО момента репликации.

Операция чтения происходит максимально быстро.
Есть риск прочитать устаревшие данные.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Какие плюсы и минусы есть у Strongly Consistent Read?

A

“Данные будут НЕпротиворечивы 100% всегда.”

При выборе Strongly Consistent Read Mode
прочитанные данные ВСЕГДА будут точны и актуальны.

Операция чтения берёт больше времени.
Операция чтения стоит НЕМНОГО больше денег ($$$).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Как выполнять API операции методом Strongly Consistent Read?

A

Чтобы использовать Strongly Consistent Read Mode,
нужно выставить параметр ConsistentRead в true
при выполнении read API-операций.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Какие ключевые слова можно подобрать для мастабирования DynamoDB?

A

(throughputs) RCU и WCU, Capacity

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Какие режимы масштабирования есть DynamoDB?
Как часто можно переключаться между ними?

A

Capacity Modes
- Provisioned Mode (default) - вручную
- On-demand Mode - автоматически
Каждые 24 часа можно переключаться между режимами.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Как утроен Provisioned Mode?
Когда его нужно выбирать?

A
  • Указываем RCU и WCU вручную
  • Платим за количество указанных RCU и WCU
    НЕЗАВИСИМО от фактического использования

При выборе Provisioned Mode мы заранее должны иметь представление о потребностях приложения.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

В Provisioned Mode: AutoScaling можно выбрать величины … и …
В случае превышения этих величин произойдёт …
А при исчерпании объёма этого … произойдёт ….
Эту проблему можно решать через … или …

A

min RCU и max RCU (аналогично для WCU)
Burst
Burst Capacity
Provisioned Throughput Exceeded Exception
Exponential Backoff Retry, увеличение WCU

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Если мы превышаем лимиты выделенных RCU WCU, то получаем …
Дословно это обозначает …

A

Provisioned Throughput ExceedException
- Provisioned - от слова Provisioned Mode, когда мы указываем RCU WCU вручную
- Throughput - слово, обобщающее слова RCU WCU

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Как утроен On-Demand Mode?
Как происходит оплата?
Что делать при Throttling’е?
Какой недостаток есть?

A
  • RCU и WCU автоматически изменяются соразмерно нагрузке
  • Платим только за то количество RCU и WCU,
    которое ПО ФАКТУ мы используем
  • Throttling’а НЕ бывает, безлимитный объём нагрузки

При выборе On-demand Mode заранее потребности приложения знать НЕ нужно.
Уметь рассчитывать RCU WCU НЕ нужно.

Автоматический On-demand Mode гораздо ДОРОЖЕ ($$$) ручного Provisioned.
Примерно в 2.5 раза дороже, чем ручной Provisioned Mode.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Когда On-Demand Mode нужно выбирать?

A

Use Case
Поскольку On-Demand гораздо дороже, то использовать его следует только в случае Unpredictable Workload Traffic.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Вычисления
1 WCU =

A

записать 1 KB/sec данных

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Вычисления
Нужно писать 6 item’ов в секунду, каждый размером 4.5 KB
Сколько WCU?

A

нужно округлить 4.5 KB к бОльшему, то есть к 5 KB
6 item/sec * 5 KB = 30 WCU

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Вычисления
1 RCU =

A
  • прочитать 4 KB/sec данных методом Strongly Consistent
  • ДВАЖДЫ прочитать 4 KB/sec данных методом Eventually Consistent
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Вычисления
Нужно читать 16 item’ов в секунду методом Eventual Read,
каждый item размером 12 KB
Сколько RCU?

A

(16 / 2) * (12 / 4) = 24 RCU

17
Q

Вычисления
Нужно читать 10 item’ов в секунду методом Consistent Read,
каждый item размером 6 KB
Сколько RCU?

A

нужно округлить 6 KB к бОльшему, то есть к 8 KB. Ведь для записи item’а размером 6 KB потребуется 2 WCU (операция WCU НЕделима).

(8 KB / 4 KB/sec) * (10 items) = 20 RCU