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

un

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

Кожен PoP має свою ячейку на площині

Вороной тesselation

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

Геометрія CDN: кожен запит користувача маршрутизується до найближчого PoP. Кожен PoP обслуговує ячейку географічної площини. Межі ячеок - це перпендикулярні bisectors ліній між сусідніми PoP.

Геометричне читання:

- Додання PoP зменшує ячейки сусідніх (& створює нову ячейку)

- Видалення PoP примушує його ячейку розподілитися до сусідніх (зростання потужності сусідів)

- Користувач, розташований поблизу межі ячейки, може змінити PoP, як балансування навантаження зміниться

- Аварія одного PoP збільшує кожен ячейку сусіда під час аварії

Оперативний наслідок: коли PoP зазнає аварії, його навантаження не зникає; воно мігрує до сусідніх PoP. Якщо сусідні PoP розміщені лише для їх звичайної ячейки, навантаження, яке зростає, зриває їх наступно (послідовний провал PoP). Матурні провайдери CDN розміщують кожен PoP з урахуванням зростання навантаження сусідніх у випадку аварії.

Вороной ячейки навколо PoP; одна аварія PoP збільшує ячейки сусідів

CDN з 4 PoP обслуговує континентальну США: Західний узбережжя, Гірський, Середній захід, Східне узбережжя. Кожен розміщений для ~25% загальної американської трафіку. PoP Гірський зазнає аварії. Прогнозуйте: (1) які сусідні PoP поглинають відредаговане навантаження та в приблизно якій пропорції, та (2) що стає на шляху, якщо ті сусіди були розміщені exactly для 25% кожен без резерву.

Нерівність трикутника, яку ви не можете обманувати

Фізика встановлює нижню межу

Світло рухається зі швидкістю ~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 мінімум. Розтяжені бази даних сплачують цю підлогу на кожному разі.

Трикутник затримки: A-B-C, нижня межа встановлена фізичною відстанню

Платити підлогу

Сервіс працює у двох регіонах: US-East (us-east-1) та EU-West (eu-west-1). Два регіони знаходяться на відстані приблизно 5,500 км. Сервіс має основну базу даних у US-East. Користувачі з EU мають свої запити обслуговуватися з EU-West backends, але кожен запис вимагає повернення до основної бази даних US-East.

Обчислити затримку підлоги для запису користувача EU (зворотний шлях від їх браузера до EU-West backend до US-East primary та назад). Порівняти з затримкою читання користувача, повністю обслуговуваного з EU-West cached state. Потім запропонуйте одну архітектурну зміну, яка зменшує затримку підлоги для записів користувачів EU.

Географічне проектування ємності

Синтез

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

Застосуйте всі три.

Команда планує покриття CDN для послуги з користувачами на трьох континентах: Північна Америка (60% користувачів), Європа (30%), Азія (10%). До їхнього бюджету входить 6 PoPs. Кожен PoP може обслуговувати стабільну ядро на 70% зайнятості без перетину коліна кривої черги.

Проектуйте розміщення PoP: (1) як розподілили б ви 6 PoP по трьом континентам, (2) яка є мінімальною затримкою для користувача з Азії, обслуговуваного з європейського PoP, якщо не існує PoP Азії (припустимо, що відстань становить ~9000 км), та (3) яку запас ємності потрібно було б встановити на кожен PoP для зіткнення з однаковою втратою без підривних ефектів?

Закриття Співробітника Курсу

Закриття Співробітника Курсу

Ви завершили всі п'ять геометричних-* супутніх уроків:

- Проксі та Початкові точки: зарезервовані графи, кількість кроків, співвідношення вхід/вихід, перенаправлення

- Безстандартова Горизонтальна Масштабування: Закон Літла як площа, крива черги та його коліно

- Розділення Вхід/Вихід: двоїстої структури, видалення вершин розрізання, терпимість розділення

- Режими Погибелі та Радіус Вибуху: міжцентрична відстань, мінімальний переріз, діаметр

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

Основна ідея: розподілені системи мають геометричну структуру. Кожна архітектура - це граф. Кожна нижня межа затримки - це нерівність трикутника. Кожна рішення ємності - це крива та коліно. Коли ви бачите геометрію, оперативні рішення випливають з неї.

Комбінувавши п'ять основних уроків (cs_distsys_*), ви маєте працюючий модель мислення веб-розмірної розподіленої системи та графо-творчої дисципліни для аргументування її.

Добре зроблено.