English· Español· Deutsch· Nederlands· Français· 日本語· ქართული· 繁體中文· 简体中文· Português· Русский· العربية· हिन्दी· Italiano· 한국어· Polski· Svenska· Türkçe· Українська· Tiếng Việt· Bahasa Indonesia

un

гость
1 / ?
назад к урокам

Каждый PoP владеет ячейкой плоскости

Тесселяция Вороного

Разместите N точек (PoP: точки присутствия) на плоскости. Проведите границы областей таким образом, чтобы каждая точка на плоскости была отнесена к ближайшему PoP. Результатом является диаграмма Вороного: плоскость разделяется на N ячеек, по одной на каждый PoP, каждая из которых содержит все точки, более близкие к её PoP, чем к любому другому.

Геометрия CDN: каждый запрос пользователя маршрутизируется к ближайшему PoP. Каждый PoP обслуживает ячейку географической плоскости. Границы ячеек являются перпендикулярными биссектрисами отрезков, соединяющих соседние PoP.

Геометрическая интерпретация:

- Добавление PoP уменьшает ячейки его соседей (& создаёт новую ячейку)

- Удаление PoP заставляет его ячейку перераспределиться между соседями (скачок нагрузки на соседей)

- Пользователь, находящийся вблизи границы ячейки, может переключаться между PoP по мере изменения балансировки нагрузки

- Сбой одного PoP увеличивает эффективную ячейку каждого соседа во время простоя

Операционное следствие: когда PoP выходит из строя, его нагрузка не исчезает; она мигрирует на соседние PoP. Если соседи рассчитаны только на свою обычную ячейку, скачок нагрузки приведёт к их последующему сбою (каскадный сбой PoP). Зрелые провайдеры CDN рассчитывают каждый PoP с учётом скачка нагрузки при отказе соседа.

Ячейки Вороного вокруг PoP; сбой одного PoP увеличивает ячейки соседей

CDN работает с 4 PoP, обслуживающими континентальную часть США: Западное побережье, Горный регион, Средний Запад, Восточное побережье. Каждый рассчитан примерно на 25% всего трафика США. PoP в Горном регионе выходит из строя. Предскажите: (1) какие соседние PoP поглотят перераспределённую нагрузку, & в каком примерно соотношении, & (2) что произойдёт, если эти соседи были рассчитаны ровно на 25% каждый без запаса мощности.

Неравенство треугольника, от которого нельзя «сбежать»

Физика задает нижний предел

Свет распространяется со скоростью ~300 000 км/с в вакууме. В оптоволокне — около 200 000 км/с из-за показателя преломления. Это означает:

- ~1 000 км оптоволокна = ~5 мс в одну сторону = ~10 мс туда и обратно

- Сквозь США с побережья на побережье (~5 000 км) = минимум ~50 мс RTT

- США в Европу (~8 000 км) = минимум ~80 мс RTT

- Антаподальные точки (половина пути вокруг света) = минимум ~200 мс RTT

Это нижний предел. Реальный RTT всегда больше (прохождения через маршрутизаторы, коммутация, очереди, перегрузка). Ни одно приложение не может работать быстрее, чем позволяет физика.

Неравенство треугольника

Для трех узлов A, B, C неравенство треугольника гласит, что d(A,C) <= d(A,B) + d(B,C): прямой путь короче (или равен) любому косвенному пути.

Сетевой смысл: если ваш сервис маршрутизирует трафик A -> B -> C, а не напрямую A -> C, задержка будет как минимум равна сумме задержек двух участков. Часто она даже больше из-за обработки данных в узле B.

Архитектурное чтение: каждое посредничество (прокси, балансировщик нагрузки, хоп CDN) добавляет как минимум один сегмент кругового пути к воспринимаемой задержке пользователя. Польза CDN заключается в сокращении сегмента со стороны пользователя (точка присутствия PoP ближе, чем исходный сервер), даже если общее количество хопов возрастает.

Многорегиональные ловушки: сервис, который читает из региона A, но пишет в регион B, несёт задержку A-на-B при каждой записи. Если расстояние между A и B составляет 100 мс, каждая запись занимает не менее 100 мс. Растянутые базы данных платят эту «цену» каждый раз.

Треугольник задержки: нижний предел A-B-C, заданный физическим расстоянием

Оплата нижнего предела

Сервис работает в двух регионах: US-East (us-east-1) и EU-West (eu-west-1). Расстояние между этими регионами составляет примерно 5 500 км. Первичная база данных сервиса находится в US-East. Запросы пользователей из ЕС обрабатываются бэкендами в EU-West, но каждая запись требует обратного вызова к первичной базе данных в US-East.

Вычислите нижний предел задержки для записи от пользователя из ЕС (круговой путь от браузера пользователя к бэкенду в EU-West, затем к первичной базе данных в US-East и обратно). Сравните это с чтением от пользователя из ЕС, полностью обслуживаемым из кэшированного состояния в EU-West. Затем предложите одно архитектурное изменение, которое снижает нижний предел задержки записи для пользователей из ЕС.

Проектирование географической пропускной способности

Синтез

Теперь вы можете интерпретировать ячейки Вороного как зоны обслуживания PoP, вычислять нижний предел задержки, ограниченный скоростью света, и применять кривую теории массового обслуживания на уровне прокси.

Примените все три.

Команда планирует покрытие CDN для сервиса с пользователями на трех континентах: Северная Америка (60% пользователей), Европа (30%), Азия (10%). В бюджете предусмотрено 6 PoP. Каждый PoP может обслуживать стабильную ячейку при загрузке 70%, не пересекая «колено» кривой очередей.

Спроектируйте размещение PoP: (1) как бы вы распределили 6 PoP по трем континентам, (2) для наименьшей доли пользователей (Азия, 10%), каков нижний предел задержки для пользователя из Азии, обслуживаемого из PoP в Европе, если PoP в Азии отсутствует (предположим расстояние ~9000 км), и (3) какой запас пропускной способности (headroom) вы бы потребовали на каждый PoP, чтобы пережить отказ одного PoP без каскадного эффекта?

Завершение курса-компаньона

Завершение курса-компаньона

Вы завершили все пять сопутствующих уроков по геометрии:

- Прокси и источники: ориентированные графы, количество хопов, fan-in / fan-out, непрямолинейность

- Бессостояльное горизонтальное масштабирование: закон Литтла как площадь, кривая очередей и её «колено»

- Разделение входящего и исходящего трафика: двудольная структура, устранение вершин-разделителей, устойчивость к разделению

- Режимы отказов и радиус поражения: центральность между вершинами, минимальный разрез, диаметр

- Наблюдаемость и пропускная способность (этот урок): ячейки Вороного для точек присутствия (PoP), нижняя граница треугольника задержки, проектирование географической пропускной способности

Сквозная тема: распределённые системы имеют геометрическую структуру. Каждая архитектура — это граф. Каждая нижняя граница задержки — это неравенство треугольника. Каждое решение о пропускной способности — это кривая и её «колено». Как только вы видите геометрию, операционные решения вытекают из неё.

В сочетании с пятью основными уроками (cs_distsys_*) у вас есть рабочая ментальная модель веб-масштабной распределённой системы и графовая дисциплина для рассуждений о ней.

Молодец.