Назад | Перейти на главную страницу

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 минут).

Очевидно, мы хотели бы избавиться от этих ошибок, чтобы в нашем мониторинге не было ложных срабатываний.

Резервное копирование запускает задание MapReduce, которое превращается в push-задачи. Это нормально, когда одна из этих задач иногда выходит из строя во время ожидания в очереди ожидания и повторяется, что приводит кRequest was aborted after waiting too long to attempt to service your request"ошибка в журналах.

Если появление этих ошибок является проблемой, вы можете попытаться устранить их, настроив свой очередь или масштабирование параметры.

Я знаю, что этот пост почему-то старый, но я оставлю здесь интересную документацию, которая может оказаться полезной в отношении нового предлагаемого подхода к запланировать экспорт в Cloud Datastore с помощью App Engine. Я предполагаю, что ваши проблемы все еще не воспроизводятся, поэтому я предлагаю всем, кто заходит на этот пост, лучше использовать эту новую функцию облачной платформы.

Обязательно обратитесь к предыдущей ссылке для получения подробного описания (и обновленного, поскольку на момент написания эта функция находится в бета и может измениться), но ниже я оставлю сводку основных шагов по планированию экспорта из Cloud Datastore с использованием хронометра и App Engine:

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