Запрос работы DynamoDB с выделенной пропускной способностью WCU / RCU - PullRequest
0 голосов
/ 12 февраля 2019

Я пытаюсь понять, как работает выделенная пропускная способность динамо-БД (RCU / WCU).

Я пробовал 2 сценария, в которых я внес изменение в WCU (1000 и 10 000), но WCU использовал цифры, которые яЯ получаю то же самое, т. е. 809.63.

В двух словах, у меня есть 123 записи, распределенные в 5 файлах, каждая запись имеет 400 КБ (в соответствии с правилом ограничения динамо дБ).При выполнении этих случаев не было никакого регулирования, и странная вещь - время выполнения сценария то же самое, то есть 6 секунд, даже при том, что я изменил количество WCU на 1k и 10k соответственно.

Мой вопрос, почему это ведет себя так,Я хотел бы знать ваши комментарии по этому поводу.

Я предполагаю, что если я уменьшу / увеличу количество WCU, я должен увидеть изменения во времени выполнения скрипта, чего нет в моем случае.

ДинамоТесты сценария БД:

Dynamo DB Scenario tests

Ответы [ 2 ]

0 голосов
/ 15 февраля 2019

Прежде чем ответить, большое спасибо Deiv & Stu за то, что нашли это доказательство.
DynamoDB может потреблять до 300 секунд неиспользованной пропускной способности в пакетной емкости.

Максимальный размер элемента в DynamoDB составляет 400 КБ и 1RCU дает вам чтение до 4 КБ.

Допустим, вы хотите прочитать элемент размером 400 КБ, и у вас есть 1 RCU на вашем столе.Вы можете извлекать этот элемент один раз каждые 100 секунд.

Из-за большой емкости всегда будет время, когда вы сможете прочитать этот элемент, потому что на самом деле вы можете использовать до 300 RCU за один раз, а не только 1.

Представьте, что вы начинаете игру с этого предмета 400 КБ.Вам нужно подождать 100 секунд, не тратя RCU, чтобы вы набрали достаточно взрывной способности, чтобы получить предмет.Через 101 секунду вы делаете запрос, тратите 100 RCU и получаете предмет.Еще через 5 секунд вы делаете запрос снова, но получаете отклонение с исключением регулирования.

Так что нет, DynamoDB не будет увеличивать задержку запроса для удовлетворения вашего положения RCU.Он либо возвращает ваши результаты как можно быстрее, либо выдает исключение.

0 голосов
/ 12 февраля 2019

WCU / RCU не увеличивают скорость отклика DynamoDB SDK, они только устанавливают верхний предел для использования емкости.

Единицы чтения и записи Емкости, как имяпредполагает, Емкость единицы .Они указывают верхний предел того, сколько ресурсов может обрабатывать ваша таблица с точки зрения чтения / записи.Это означает, что в вашем случае, так как вы используете 809.63 WCU, если ваш WCU установлен выше 810, вы не получите никаких удушенных запросов.Однако, если вы снизите свой WCU до 800, вы начнете видеть, что ваши запросы удушаются.

Если у вас есть согласованный TPS и вы знаете, сколько единиц емкости вы будете использовать, тогда установите именно ту сумму, которая вам потребуется.,В вашем случае 1k WCU кажется достаточным и не будет иметь никакого значения по сравнению с 10k с точки зрения производительности, , если вы не используете более 1k WCU , и в этом случае вы можете выделить больше емкости или внедрить автоматическое масштабирование для

См. здесь для получения дополнительной информации: Документация

Редактировать: Как описано в комментариях ниже, если вы используете больше емкости, чем предусмотрено, DynamoDB временно разрешитприрост мощности для поддержки до 5 минут, что может привести к различным результатам с точки зрения регулирования

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...