Мы выполняем резервные копии наших документов 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:
app.yaml
(Конфигурация App Engine), cloud_datastore_admin.py
(Само приложение App Engine) и cron.yaml
(задание cron) и заполните их содержимым ссылки, которой я поделился в самом начале, убедившись, что вы заменили все необходимое содержимое, чтобы оно соответствовало именам ваших ресурсов. Также отредактируйте cron файл конфигурации по вашему желанию, чтобы настроить соответствующую политику экспорта в соответствии с вашими требованиями.