Как обеспечить ежедневное сканирование таблицы при увеличении размера таблицы - PullRequest
0 голосов
/ 14 мая 2019

У меня есть таблица DynamoDB, в которой хранятся метаданные элементов в S3 (то есть изображения и файлы).Иногда элементы S3 удаляются, а метаданные - нет.Поэтому я запускаю процесс, который сканирует всю таблицу DynamoDB, чтобы проверить, существует ли еще объект S3.Если нет, удалите строку DynamoDB.Но поскольку общее количество объектов увеличилось, сканирование заняло больше времени.Я хочу, чтобы все в DynamoDB сканировалось каждый день, независимо от размера таблицы.Итак, ищем предложение по дизайну для перезаписи сканирующего инструмента, который должен быть масштабируемым по горизонтали с таблицей.

В настоящее время я использую функцию параллельного сканирования, предоставляемую DynamoDB, чтобы разделить таблицу на 1000 частей.И добавьте больше потоков, чтобы сканировать каждую дополнительную часть одновременно.Таким образом, благодаря увеличению параллелизма, все сканирование завершается в более короткие сроки.И запланируйте процесс для запуска в полночь.Но я вижу, что этот метод потерпит неудачу, когда рост таблицы превысит некоторое пороговое значение, если сканирование одной детали занимает более 1 дня.

1 Ответ

0 голосов
/ 31 мая 2019

Вместо того, чтобы сначала удалить в S3, просто отметьте запись, удаленную в динамической БД, а затем используйте ленту изменений динамической БД для поиска и удаления объекта в S3.Помимо надежного удаления из S3, оно также ускорит синхронное удаление и обеспечит полную согласованность операции удаления.

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