Кожен PoP має свою ячейку на площині
Вороной тesselation
Помістіть N точок (PoP: точки присутності) на площині. Нарисуйте межі регіонів так, щоб кожна точка на площині була присутньою в найближчому PoP. Результат - Вороной діаграма: площина розділяється на N ячеок, одну за однією, кожна з яких містить всі точки, ближчі до її PoP, ніж до будь-якого іншого.
Геометрія CDN: кожен запит користувача маршрутизується до найближчого PoP. Кожен PoP обслуговує ячейку географічної площини. Межі ячеок - це перпендикулярні bisectors ліній між сусідніми PoP.
Геометричне читання:
- Додання PoP зменшує ячейки сусідніх (& створює нову ячейку)
- Видалення PoP примушує його ячейку розподілитися до сусідніх (зростання потужності сусідів)
- Користувач, розташований поблизу межі ячейки, може змінити PoP, як балансування навантаження зміниться
- Аварія одного PoP збільшує кожен ячейку сусіда під час аварії
Оперативний наслідок: коли PoP зазнає аварії, його навантаження не зникає; воно мігрує до сусідніх PoP. Якщо сусідні PoP розміщені лише для їх звичайної ячейки, навантаження, яке зростає, зриває їх наступно (послідовний провал PoP). Матурні провайдери CDN розміщують кожен PoP з урахуванням зростання навантаження сусідніх у випадку аварії.
Нерівність трикутника, яку ви не можете обманувати
Фізика встановлює нижню межу
Світло рухається зі швидкістю ~300,000 км/с у вакуумі. У волокні - приблизно 200,000 км/с через індекс заломлення. Отже:
- ~1,000 км волокна = ~5 ms в одну сторону = ~10 ms зворотно-сидя
- Coast-to-coast US (~5,000 км) = ~50 ms RTT minimum
- US to Europe (~8,000 км) = ~80 ms RTT minimum
- Antipodal (halfway around world) = ~200 ms RTT minimum
Цей є нижня межа. Реальна 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-to-B на кожному записі. Якщо A & B знаходяться на відстані 100 ms, кожен запис займає >= 100 ms мінімум. Розтяжені бази даних сплачують цю підлогу на кожному разі.
Платити підлогу
Сервіс працює у двох регіонах: US-East (us-east-1) та EU-West (eu-west-1). Два регіони знаходяться на відстані приблизно 5,500 км. Сервіс має основну базу даних у US-East. Користувачі з EU мають свої запити обслуговуватися з EU-West backends, але кожен запис вимагає повернення до основної бази даних US-East.
Географічне проектування ємності
Синтез
Тепер ви можете читати ядра Вороного як області вловлення PoP, обчислювати нижню межу затримки швидкості світла та застосовувати криву черги на рівні проксі.
Застосуйте всі три.
Команда планує покриття CDN для послуги з користувачами на трьох континентах: Північна Америка (60% користувачів), Європа (30%), Азія (10%). До їхнього бюджету входить 6 PoPs. Кожен PoP може обслуговувати стабільну ядро на 70% зайнятості без перетину коліна кривої черги.
Закриття Співробітника Курсу
Закриття Співробітника Курсу
Ви завершили всі п'ять геометричних-* супутніх уроків:
- Проксі та Початкові точки: зарезервовані графи, кількість кроків, співвідношення вхід/вихід, перенаправлення
- Безстандартова Горизонтальна Масштабування: Закон Літла як площа, крива черги та його коліно
- Розділення Вхід/Вихід: двоїстої структури, видалення вершин розрізання, терпимість розділення
- Режими Погибелі та Радіус Вибуху: міжцентрична відстань, мінімальний переріз, діаметр
- Наблюдність та Ємність (цей): ядра PoP Вороного, нижня межа трикутника затримки, географічна дисципліна ємності
Основна ідея: розподілені системи мають геометричну структуру. Кожна архітектура - це граф. Кожна нижня межа затримки - це нерівність трикутника. Кожна рішення ємності - це крива та коліно. Коли ви бачите геометрію, оперативні рішення випливають з неї.
Комбінувавши п'ять основних уроків (cs_distsys_*), ви маєте працюючий модель мислення веб-розмірної розподіленої системи та графо-творчої дисципліни для аргументування її.
Добре зроблено.