DynamoDB Stream позволяет …
отлавливать (capture) события (events) изменения данных в DynamoDB таблице
DynamoDB Stream Record может хранить (на выбор)
KEYS_ONLYNEW_IMAGEOLD_IMAGENEW_AND_OLD_IMAGEIMAGE = DynamoDB item
Кто может читать данные из DynamoDB Stream?
Kinesis Data StreamLambda может читать их (через Event Source Mapper)Kinesis Client Library, может читать ихСколько составляет retention DynamoDB Stream?
Что, если нужно больше?
Retention event’ов в DynamoDB Stream составляет 24 часа.
Если нужно хранить их дольше, то их придётся слать например в Kinesis.
В чём отличие и сходство DynamoDB Stream и Kinesis Data Stream?
DynamoDB Stream имеет схожее устройство с Kinesis Data Stream.
DynamoDB Stream тоже состоит из Шардов.
В отличие от KDS, DynamoDB Stream - это managed сервис.
Так что количество шардов регулируется самим AWS’ом автоматически.
Что такое Retroactive? Как это связано с DynamoDB Stream?
Если активировать DynamoDB Stream для DynamoDB таблицы,
которая уже имеет записи,
то эти записи НЕ попадут в Stream.
DynamoDB Stream is NOT retroactive
Что такое Global Table в DynamoDB?
На что похоже?
Какие есть pre-requisites для активации этой фичи?
DynamoDB Global Table - фича позволяет реплицировать DynamoDB таблицу по разным регионам.
- Реплики автоматически синхронизируют (propagate) данные между собой.
Сама идея репликации table’ов похожа на S3 Cross-Region-Replication.
Чтобы активировать DynamoDB Global Table, нужно сначала активировать DynamoDB Stream.
Какие альтернативы DynamoDB можно использовать для хранения сессии в кэше?
А какие нельзя? Почему?
ElastiCache - in-memory Key-Value cache storeDynamoDB - serverless Key-Value cache storeEFS - file-systemНельзя EBS и InstanceStore, т.к. они НЕ shared между EC2 instancе’ами
Что такое DAX?
На основе чего он устроен?
Какую проблему решает?
DynamoDB Accelerator (”DAX”) - фича, которая позволяет повысить скорость чтения из таблиц.
Работает на основе обыкновенного КЭШирования.
DAX решает проблему “Hot Key”, Throttling
Какие изменения в коде нужно внести, чтобы начать использовать DAX?
Какие API операции у него есть?
Чтобы начать использовать DAX, НЕ нужно изменять код приложения.
Он совместим с существующими API операциями.
Из чего состоит DAX кластер?
Сколько штук?
Как их настраивать?
10 DAX nodesМожно ли шифровать данные в DAX?
Также как и в DynamoDB - Encryption at rest через KMS
Какая есть альтернатива DAX?
Когда использовать что?
DAX для простых запросов (Query, Scan) и индивидуальных item’овElastiCache для больших результатов агрегирующих запросовМожно комбинировать DAX и ElastiCache, используя их сильные стороны.
В чём суть Optimistic Locking в DynamoDB?
Какую проблему это решает?
Что это напоминает?
Выполнить операцию Update / Delete,
только если item НЕ изменился перед выполнением операции.
Решает проблему потери операции при параллельном выполнении двух операций.
Напоминает оптимистичная блокировка SQL БД
Напоминает CAS принцип в многопоточности
Как реализовать Optimistic Locking в DynamoDB?
version number