Почему в AWS S3 удалять объекты намного медленнее, чем их создавать?
У меня есть лямбда-функция AWS, которая следит за ведром S3. Когда изображение загружается в корзину, лямбда-функция создает миниатюру изображения. Однако я допустил ошибку в функции и сохранил преобразованный файл в том же каталоге, который просматривал, создав бесконечный цикл.
Он работал примерно минуту, прежде чем я остановил его, и за это время создал 600 000 изображений. Однако удаление этих изображений (с помощью консоли AWS) заняло около 20 минут.
Почему такая разница? Я заинтересован в причинах низкого уровня для этого.
1 ответ
Согласно этой документации https://docs.aws.amazon.com/AmazonS3/latest/dev/delete-or-empty-bucket.html удаление - это "вставка маркера удаления". Таким образом, это может объяснить, почему удаление происходит так медленно по сравнению с загрузкой, которая обеспечивает только конечную согласованность.
Контейнеры Amazon S3 во всех регионах обеспечивают согласованность операций чтения-после-записи для PUTS новых объектов и возможную согласованность для операций PUTS и DELETES с перезаписью.
В соответствии с вышесказанным, вы должны быть противоположны с точки зрения производительности создания и удаления объектов.
Однако основная причина, которую я предполагаю, связана с использованием веб-консоли AWS, когда действие "удалить" может занять больше времени для отражения веб-консоли. Напротив, если вы выполняете операцию удаления с помощью интерфейса командной строки AWS, все должно быть наоборот.