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:

  1. Создайте корзину Cloud Storage в том же месте, что и хранилище данных.
  2. Присвойте роль администратора экспорта-импорта облачного хранилища данных своей учетной записи службы App Engine по умолчанию (которая должна выглядеть какPROJECT_ID@appspot.gserviceaccount.com).
  3. Назначьте разрешения на запись в корзину учетной записи службы App Engine по умолчанию.
  4. Создать новую локальную папку с файлами app.yaml (Конфигурация App Engine), cloud_datastore_admin.py (Само приложение App Engine) и cron.yaml (cron job), и заполните их содержимым в ссылке, которой я поделился в самом начале, убедившись, что вы заменяете любой необходимый контент, чтобы соответствовать именам ваших ресурсов. Также отредактируйте файл конфигурации cron по вашему желанию, чтобы настроить соответствующую политику экспорта в соответствии с вашими требованиями.
  5. После того, как вы настроили полную конфигурацию для своего приложения, разверните его (включая задание cron), протестируйте его и увидите свои экспорты в корзине Cloud Storage.
Другие вопросы по тегам