Google Datastore Backup вызывает ошибки
Мы выполняем резервное копирование наших документов в Google Datastore через cron, как описано здесь. База данных составляет около 55 ГБ, включая индексы, и мы делаем полное резервное копирование каждые 24 часа. Ведро, в которое мы сохраняем, принадлежит другому проекту.
Резервные копии успешны, и мы можем без проблем восстановить их в нашей промежуточной среде!
Тем не менее, мы видим много ошибок во время резервного копирования. Ошибки приходят от ah-builtin-python-bundle
модуль и сообщение об ошибке Request was aborted after waiting too long to attempt to service your request.
Это заставляет наш мониторинг предупреждать нас (у нас есть порог 1,5 ошибки в секунду в течение 3 минут).
Очевидно, что мы хотели бы избавиться от этих ошибок, чтобы в нашем мониторинге не было ложных срабатываний.
2 ответа
Резервное копирование запускает задание MapReduce, которое фанаты превращают в задачи push. Это нормально для одной из этих задач время от времени ожидания в очереди ожидания и повторной попытки, что приведет к " Request was aborted after waiting too long to attempt to service your request
"ошибка в логах.
Если вы видите эти ошибки, вы можете попытаться устранить их, настроив параметры очереди или масштабирования.
Я знаю, что этот пост несколько устарел, но я оставлю здесь некоторую интересную документацию, которая может оказаться полезной в отношении нового предлагаемого подхода к планированию экспорта в Cloud Datastore с использованием App Engine. Я полагаю, что ваши проблемы по-прежнему не воспроизводимы, поэтому я бы посоветовал всем, кто придет на этот пост, лучше воспользоваться этой новой функцией облачной платформы.
Обязательно обратитесь к предыдущей ссылке для получения подробного описания (и обновленного, потому что на момент написания статьи эта функция находится в бета-версии и может измениться), но ниже я оставлю краткое изложение основных шагов для планирования экспорта из Cloud Datastore с использованием chron и App Engine:
- Создайте корзину Cloud Storage в том же месте, что и хранилище данных.
- Присвойте роль администратора экспорта-импорта облачного хранилища данных своей учетной записи службы App Engine по умолчанию (которая должна выглядеть какPROJECT_ID@appspot.gserviceaccount.com).
- Назначьте разрешения на запись в корзину учетной записи службы App Engine по умолчанию.
- Создать новую локальную папку с файлами
app.yaml
(Конфигурация App Engine),cloud_datastore_admin.py
(Само приложение App Engine) иcron.yaml
(cron job), и заполните их содержимым в ссылке, которой я поделился в самом начале, убедившись, что вы заменяете любой необходимый контент, чтобы соответствовать именам ваших ресурсов. Также отредактируйте файл конфигурации cron по вашему желанию, чтобы настроить соответствующую политику экспорта в соответствии с вашими требованиями. - После того, как вы настроили полную конфигурацию для своего приложения, разверните его (включая задание cron), протестируйте его и увидите свои экспорты в корзине Cloud Storage.