Англійська мова для архітектури Trade-Off Discussions: CAP Theorem and Beyond

Вивчіть англійську лексику для представлення компромісів архітектури, зокрема теорему CAP, вибір послідовності проти доступності і обмеження розподілених систем.

Архітектурні дискусії є місцем, де приймаються найбільш важливі технічні рішення, а також де нерідні носії часто відчувають себе найменш впевненими. Словниковий запас є щільним (теорема CAP, кінцева послідовність, терпимість до розділів), і розмова йде швидко. Цей посібник надає вам мову для повноцінної участі.


Мова мовлення — англійська

Архітектура - це, в основному, компроміси. В англійській мові є спеціальний словник для їх обрамлення:

Контрастні структури

  • ”** Хоча ** сильна послідовність спрощує логіку клієнта, ** це приходить за рахунок ** більшої затримки.”
  • «Ми можемо оптимізувати для доступності за рахунок послідовності.»
  • «Варіант А дає нам сильніші гарантії але вводить операційну складність»
  • Цей підхід ** обмінює ** пропускну здатність запису на простоту читання

Важливі фактори

  • «Враховуючи наші вимоги SLA, ми приоритизували доступність над послідовністю.»
  • «Прийнятний компроміс тут є кінцевою послідовністю в обмін на горизонтальну масштабованість»
  • «Ми відкинули сильнішу модель послідовності, тому що надмірні витрати не були виправдані в нашому масштабі»

Вивчення теорії категорій

** Теорема CAP ** (Brewer, 2000) стверджує, що розподілена система може гарантувати лише дві з трьох властивостей:

  • ** C — Послідовність: ** Кожне читання повертає останній запис.
  • ** A — Доступність: ** Кожен запит отримує відповідь (не обов’ язково найновіші дані).
  • ** P — Допуск розділів: ** Система продовжує працювати, незважаючи на мережеві розділи.

“На практиці, толерантність розділів є не-обговорюваною для будь-якої розподіленої системи - мережі не спрацьовують. Отже, справжній компроміс - це ** C проти ** C. A** під час розділення»

Представлення CAP на зустрічі

Открываю тему:

«Перед тим, як ми виберемо базу даних, я хочу пройти через наслідки CAP для нашого випадку використання»

Відображення вибору:

«Для нашого платіжного сервісу **послідовність не піддається обговоренню ** — ми не можемо показати клієнту застарілий баланс. Отже, ми готові ** пожертвувати доступністю ** під час події розділу. Це вказує нам на систему CP, таку як Zookeeper або сильно послідовну базу даних. ”

** Підтвердження обмеження: **

“Для нашого каталогу продукції, **доступність має більше значення ** ніж мати абсолютну останню ціну. Невелика невідповідність прийнятна. Отже, ми можемо йти з системою AP, як Cassandra або DynamoDB в кінцевому режимі послідовності. “


Послідовні моделі лексики

Окрім CAP, обговорення розподілених систем включають спектр моделей послідовності:

ModelMeaningExample sentence
Strong consistencyAll nodes see the same data at the same time”Transactions require strong consistency.”
Eventual consistencyNodes converge to the same state eventually”The user profile will be eventually consistent across regions.”
Read-your-writesA user always sees their own latest write”We guarantee read-your-writes for session data.”
Monotonic readsA user never sees older data after seeing newer data”Monotonic reads prevent confusing UI flicker.”
Causal consistencyCausally related events appear in the right order”Comments appear after the post they reply to — causal consistency.”

Доступність проти Затримка проти Послідовність

Ці три форми складають загальну тристоронню напругу:

  • Додаток синхронної репліки покращує міцність, але збільшує затримку запису
  • «Кешування на краю зменшує затримку, але вводить вікно застарілості»
  • Quorum write (запис до більшості вузлів) дає нам послідовність за рахунок більшого підсилення запису.”

Використання “проти” в дискусії

  • Це, в принципі, послідовність проти доступності рішення. ”
  • «Ми обговорюємо затримку проти коректності для потоку звітів.»
  • «Вибір сходить до операбельності проти сирої продуктивності

Розмовляємо про неефективні способи

Обговорення архітектури повинні стосуватися того, що відбувається, коли щось не так:

  • Якщо первинний впаде, вторинний підійде через 30 секунд
  • “Під час мережевого розділу, система буде відкидати записи, щоб зберегти послідовність.”
  • “Від’ємник ** вибуває ** після 5 послідовних невдач і входить в ** відкритий стан **.”
  • Сценарій розділення мозку виникає, коли обидва вузли вважають, що вони є первинними

Хеджування відповідно

В архітектурі, ви повинні визнати непевність:

  • “Я досить впевнений, що кінцева послідовність прийнятна тут, але я б хотів перевірити це з командою продукту.”
  • Це моя найкраща оцінка — ми повинні оцінити перед тим, як прийняти рішення
  • «Може бути ** крайні випадки **, які я не розглядав — варто другого перегляду»

Обговорення PACELC

PACELC (Abadi, 2012) розширює CAP: він запитує, що є компромісом *навіть коли немає розділу * (Інше: Затримка проти. Послідовність):

“CAP говорить нам, що відбувається під час розділу. PACELC говорить нам, що відбувається всередині: чи ми надаємо перевагу затримці або послідовності для нормальних операцій?»

  • DynamoDB є PA/EL — доступний під час розділення, і оптимізований для низької затримки
  • «Spanner є PC/EC — послідовний під час розділення, і послідовний навіть за рахунок затримки.»

Рецензія на книгу «Архітектура

Задаю вопрос:

«Я хочу переконатися, що я розумію модель невдачі — що відбувається з записами в польоті під час відключення?»

Викликати дизайн:

“Я думаю, що тут є послідовний прогал. Якщо два користувачі пишуть одночасно, яка є стратегія розв’язання конфлікту

Пропоную альтернативу:

“А що, якщо ми розділимо шляхи читання і запису? Ми могли б застосувати CQRS і використовувати в кінцевому підсумку послідовну модель читання»

Достигнення консенсусу:

“Звучить так, ніби ми ** вирівняні ** на кінцеву послідовність для каталогу, з сильною послідовністю для платежів. Чи всім це подобається?»


Ключеві моменти

  • ** Теорема CAP: ** Послідовність, Доступність, Допуск розділів — оберіть дві. На практиці, P необхідний, тому справжній вибір C проти. Під час розділу.
  • Використовуйте контрастні структури: «поки… це йде за ціною», «обмінює X на Y», «оптимізує для X за рахунок Y»
  • Знайте спектр послідовності: сильний → читайте-свої-писання → причинний → кінцевий.
  • PACELC розширює CAP до звичайних операцій: Затримка проти Незмінність навіть без розділу.
  • На зустрічах ** чітко визначайте свої компроміси ** перед тим, як рекомендувати рішення.

Навигація Nuance: Рефінінг Вашої фрази

Для не-англомовних носіїв англійської мови в технічних областях, розуміння архітектурних дискусій часто залежить не тільки від розуміння * концепцій * - як теорема CAP - але також від опанування конкретної мови, використовуваної для вираження цих концепцій. Це неймовірно поширене, щоб бути абсолютно ясним про технічний виклик, коли розмовляєш безпосередньо з іншими інженерами, але спізнюється, коли перекладаєш це в письмове спілкування або навіть коротке пояснення зацікавленим сторонам. Тут різко зростає важливість вивчення професійного словника англійської мови. Давайте розглянемо деякі реалістичні сценарії і те, як ви можете підійти до них з більшою точністю.

Розгляньте це повідомлення Slack під час перегляду коду: « Ця зміна вводить остаточну послідовність — ми ставимо доступність вище строгої точності даних у цьому конкретному сценарії ». Тепер уявіть себе на місці початкового автора. Рецензент відповідає: «А як щодо цілісності даних? Ви впевнені, що не буде невідповідностей?» Замість того, щоб негайно захищати своє рішення технічним поясненням, яке може здатися надто складним для отримувача, більш відшліфованим підходом було б визнати їхню занепокоєність безпосередньо і вписати її в ширший архітектурний контекст. Ви можете відповісти: «Це вірний аргумент. Ми навмисно обирали для кінцевої послідовності тут, тому що наша основна мета полягає в тому, щоб користувачі могли продовжувати отримувати доступ до служби навіть під час періодів високої завантаження - вирівнюючи з пріоритетуванням доступності теореми CAP. Ми активно моніторимо невідповідності і впровадили [згадайте конкретний процес примирення або метрику] як стратегію зменшення». Зауважте, як ця фраза уникає жаргону і зосереджується на *розумінні * за вибором.

Інший приклад, який ви можете побачити під час написання опису запитів на завантаження: « Внесено зміни для поліпшення швидкодії читання ». Менш ефективною версією може бути просто вказати цей факт. Однак, багатший опис - особливо для крос-функціональної команди - може бути: “Оптимізовані запити бази даних і кешування шарів для зменшення затримки приблизно на 20%, в відповідності з загальними цілями проекту покращення користувацького досвіду. Це рішення відображає наш компроміс між негайним збільшенням продуктивності читання і потенційним впливом на операції запису, інформовані наслідками теореми CAP для розподілених систем. “Ключем тут є додавання контексту - * чому * була зроблена ця оптимізація? Які обмеження були розглянуті? Використання фраз на кшталт «вирівнювання з цілями проекту» або «інформований» демонструє глибше розуміння архітектурних розглядів.

Нарешті, подумайте про обговорення цих компромісів на зустрічі з менеджерами продукту. Замість того, щоб сказати: «Ми використовуємо CAP», що відразу ж є занадто технічним, ви можете сказати: «Наша архітектура приоритизує доступність - це означає, що користувачі можуть продовжувати отримувати доступ до нашого сервісу навіть під час періодів великої навантаження - тому що ми віримо, що чутливість є найважливішою для цього конкретного сегмента користувачів. Ми прийняли свідоме рішення прийняти певний рівень можливої послідовності в обмін на цю поліпшену продуктивність. “Цей підхід дозволяє менеджеру продукту зрозуміти * що * ви пріоритизуєте і * чому *, сприяючи більш продуктивній дискусії про бізнес-цінність.

Поширені запитання

Про що ця стаття "Англійська мова для архітектури Trade-Off Discussions: CAP Theorem and Beyond"?

Вивчіть англійську лексику для представлення компромісів архітектури, зокрема теорему CAP, вибір послідовності проти доступності і обмеження розподілених систем.

Чи безкоштовна ця стаття?

Так. Усі статті на CoderSlingo, включно з цією, доступні безкоштовно без реєстрації.

Скільки часу займає читання "Англійська мова для архітектури Trade-Off Discussions: CAP Theorem and Beyond"?

Приблизно 9 min.