Сервис, такой как хранилище данных Google App Engine, основан на репликации данных в нескольких точках присутствия (POP). Любой интеграционный тест для в конечном итоге непротиворечивой службы на самом деле является тестом скорости репликации этой службы в его наборе POP. Скорость, с которой контент распространяется на каждую POP в данной услуге, не будет одинаковой для каждой POP в пределах службы, в зависимости от ряда факторов, таких как метод репликации и различные проблемы Интернет-транспорта - это два примера которые составляют большинство отчетов в любой в конечном итоге непротиворечивой службе хранилища данных (по крайней мере, таков был мой опыт, пока я работал в крупной CDN).
Чтобы эффективно протестировать репликацию объекта на данной платформе, вам нужно настроить тест так, чтобы он запрашивал один и тот же недавно размещенный объект от конкретно каждой из POPs службы. Я предлагаю проверять список POP от одного до пяти раз или до тех пор, пока все отчеты POP в вашем списке POP не будут содержать объект. Вот набор интервалов для выполнения теста, который вы можете настроить: 1, 5, 60 минут, 12 часов, 25 часов после помещения его в хранилище данных. Ключом является регистрация результатов в каждом интервале для последующего просмотра и анализа, чтобы почувствовать способность данного сервиса глобально реплицировать объекты. Часто службы хранилища данных извлекают локальную копию в POP только после того, как она была запрошена локально [маршрутизация выполняется по протоколу BGP, поэтому ваш тест должен запросить объект из каждой конкретной POP, чтобы он был глобально действительным для данной платформы] , В случае хранилища данных Google вам нужно будет настроить тест для запроса данного объекта из «более 70 точек присутствия в 33 странах»; вам, скорее всего, придется получить список URL адресов, специфичных для POP, из службы поддержки Google [ref:https://cloud.google.com/about/locations/ ] или, если Google использует Fastly для репликации, Fastly Support [ https://www.fastly.com/resources ].
Несколько преимуществ этого метода: 1) Вы почувствуете платформу репликации данного сервиса, узнаете его сильные и слабые стороны в целом в глобальном масштабе [как это было во время интеграционного теста]. 2) Для любого объекта, который вы тестируете, у вас будет доступный инструмент для подогрева контента [сделайте первый запрос, который создаст копию в заданном локальном POP] - таким образом, вы обеспечите способ распространения контента по всему миру, прежде чем ваши клиенты запросят его у где-нибудь на земле.