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