Теорема CAP (також відома як теорема Брюера, на честь науковця [en]) — твердження, що для будь-якої розподіленої комп'ютерної системи неможливо одночасно забезпечити виконання більше двох із перелічених трьох властивостей:
- узгодженість даних (усі вузли бачать однакові дані у будь-який момент часу);
- доступність (гарантія того, що кожен запит отримає коректну відповідь);
- стійкість до розділення (попри розділення на ізольовані секції або втрати зв'язку з частиною вузлів, система не втрачає стабільність і здатність коректно відповідати на запити).
Коли відбувається розділення мережі, необхідно вирішити, що потрібно робити
- скасувати операцію і таким чином зменшити доступність, але забезпечити узгодженість
- продовжувати операцію і таким чином забезпечувати доступність, але ризикувати неузгодженістю.
Таким чином, якщо є розділення мережі, потрібно вибирати між узгодженістю та доступністю. Зауважте, що узгодженість, визначена в теоремі CAP, значно відрізняється від узгодженості, гарантованої в транзакціях ACID баз даних.
Ерік Брюер стверджує, що часто використовувана концепція «два з трьох» може дещо вводити в оману, оскільки розробникам систем потрібно лише пожертвувати узгодженістю або доступністю за наявності розділення, але в багатьох системах розділення зустрічаються рідко.
Акронім CAP утворений з перших букв англомовних іменувань цих трьох властивостей (Consistency, Availability, Partition tolerance).
Наслідки
З точки зору теореми, розподілені системи в залежності від пари забезпечених властивостей діляться на три класи:
CA
Розподілена система в якій забезпечена доступність та узгодженість даних не може забезпечувати стійкість до розділення.
Прикладом такої системи є програмне забезпечення що підтримує ACID вимоги, наприклад реляційні бази даних.
AP
Розподілена система в якій не гарантується цілісність результату, зате висока доступність і збереження працездатності при розділенні.
Звісно такі системи з'явилися значно раніше формулювання CAP теореми, як то наприклад DNS, але ріст популярності збігається з розповсюдженням даного принципу (зокрема деякі NoSQL системи не гарантують цілісність результату, посилаючись на дану теорему).
CP
Система що забезпечує цілісність даних на всіх вузлах і здатність працювати при розділенні, але не гарантує доступність і може не відповідати на запити.
Прикладами таких систем є розподілене програмне забезпечення фінансових систем, де узгодженість даних має найвищий пріоритет, це наприклад, мережа банкоматів.
Історія
Згідно Еріком Брюером теорема вперше виникла восени 1998, а опублікована під назвою «CAP-правило» в 1999. В 2000 Брюер презентував свою гіпотезу на симпозіумі по розподіленим обчисленням що призвело до її широкої популярності та визнання серед спеціалістів по розподіленим обчисленням. Згодом, в 2002 Сет Джилберт та Ненсі Лінч із Массачусетського технологічного інституту опублікували формальне доведення цієї теореми.
У 2012 році Брюер пояснив деякі зі своїх точок зору, зокрема, чому часто використовувана концепція «два з трьох» може бути дещо оманливою, оскільки розробникам систем потрібно лише пожертвувати узгодженістю або доступністю за наявності розділення; Існують методи керування розділеннями та техніки відновлення після розділення. Брюер також відзначив різне визначення узгодженості, що використовується в теоремі CAP, порівняно з визначенням, що використовується в ACID.
Подібну теорему про компроміс між узгодженістю та доступністю в розподілених системах опублікували Бірман і Фрідман у 1996 році. Вони обмежили цю нижню межу не комутативними операціями.
, представлена в 2010 році, базується на CAP, стверджуючи, що навіть за відсутності розподілу існує ще один компроміс між затримкою та узгодженістю.
Технологія Blockchain жертвує негайною узгодженістю заради доступності та стійкості до розділення, вимагаючи певної кількості «підтверджень», алгоритми консенсусу Blockchain в основному зводяться до кінцевої узгодженості.
Примітки
- Liochon, Nicolas. The confusing CAP and ACID wording. This long run. Процитовано 1 лютого 2019.
- Eric Brewer, "CAP twelve years later: How the 'rules' have changed", Computer, Volume 45, Issue 2 (2012), pg. 23–29. DOI:10.1109/MC.2012.37.
- Carpenter, Jeff; Hewitt, Eben (July 2016). . www.oreilly.com (англ.). Архів оригіналу за 7 серпня 2020. Процитовано 21 грудня 2020.
In February 2012, Eric Brewer provided an updated perspective on his CAP theorem [..] Brewer now describes the “2 out of 3” axiom as somewhat misleading. He notes that designers only need sacrifice consistency or availability in the presence of partitions, and that advances in partition recovery techniques have made it possible for designers to achieve high levels of both consistency and availability.
- Brewer's CAP Theorem.
- . Архів оригіналу за 4 лютого 2016.
- CAP Twelve Years Later: How the "Rules" Have Changed.
- Ken Birman and Roy Friedman, "Trading Consistency for Availability in Distributed Systems", April 1996. hdl:1813/7235.
- Abadi, Daniel (23 квітня 2010). DBMS Musings: Problems with CAP, and Yahoo's little known NoSQL system. DBMS Musings. Процитовано 23 січня 2018.
- Bashir, Imran. (2018). Mastering blockchain. Birmingham, England: Packt Publishing. p. 41. .
Див. також
Це незавершена стаття про алгоритми. Ви можете проєкту, виправивши або дописавши її. |
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Teorema CAP takozh vidoma yak teorema Bryuera na chest naukovcya en tverdzhennya sho dlya bud yakoyi rozpodilenoyi komp yuternoyi sistemi nemozhlivo odnochasno zabezpechiti vikonannya bilshe dvoh iz perelichenih troh vlastivostej uzgodzhenist danih usi vuzli bachat odnakovi dani u bud yakij moment chasu dostupnist garantiya togo sho kozhen zapit otrimaye korektnu vidpovid stijkist do rozdilennya popri rozdilennya na izolovani sekciyi abo vtrati zv yazku z chastinoyu vuzliv sistema ne vtrachaye stabilnist i zdatnist korektno vidpovidati na zapiti Koli vidbuvayetsya rozdilennya merezhi neobhidno virishiti sho potribno robiti skasuvati operaciyu i takim chinom zmenshiti dostupnist ale zabezpechiti uzgodzhenist prodovzhuvati operaciyu i takim chinom zabezpechuvati dostupnist ale rizikuvati neuzgodzhenistyu Takim chinom yaksho ye rozdilennya merezhi potribno vibirati mizh uzgodzhenistyu ta dostupnistyu Zauvazhte sho uzgodzhenist viznachena v teoremi CAP znachno vidriznyayetsya vid uzgodzhenosti garantovanoyi v tranzakciyah ACID baz danih Erik Bryuer stverdzhuye sho chasto vikoristovuvana koncepciya dva z troh mozhe desho vvoditi v omanu oskilki rozrobnikam sistem potribno lishe pozhertvuvati uzgodzhenistyu abo dostupnistyu za nayavnosti rozdilennya ale v bagatoh sistemah rozdilennya zustrichayutsya ridko Akronim CAP utvorenij z pershih bukv anglomovnih imenuvan cih troh vlastivostej Consistency Availability Partition tolerance NaslidkiZ tochki zoru teoremi rozpodileni sistemi v zalezhnosti vid pari zabezpechenih vlastivostej dilyatsya na tri klasi CA Rozpodilena sistema v yakij zabezpechena dostupnist ta uzgodzhenist danih ne mozhe zabezpechuvati stijkist do rozdilennya Prikladom takoyi sistemi ye programne zabezpechennya sho pidtrimuye ACID vimogi napriklad relyacijni bazi danih AP Rozpodilena sistema v yakij ne garantuyetsya cilisnist rezultatu zate visoka dostupnist i zberezhennya pracezdatnosti pri rozdilenni Zvisno taki sistemi z yavilisya znachno ranishe formulyuvannya CAP teoremi yak to napriklad DNS ale rist populyarnosti zbigayetsya z rozpovsyudzhennyam danogo principu zokrema deyaki NoSQL sistemi ne garantuyut cilisnist rezultatu posilayuchis na danu teoremu CP Sistema sho zabezpechuye cilisnist danih na vsih vuzlah i zdatnist pracyuvati pri rozdilenni ale ne garantuye dostupnist i mozhe ne vidpovidati na zapiti Prikladami takih sistem ye rozpodilene programne zabezpechennya finansovih sistem de uzgodzhenist danih maye najvishij prioritet ce napriklad merezha bankomativ IstoriyaZgidno Erikom Bryuerom teorema vpershe vinikla voseni 1998 a opublikovana pid nazvoyu CAP pravilo v 1999 V 2000 Bryuer prezentuvav svoyu gipotezu na simpoziumi po rozpodilenim obchislennyam sho prizvelo do yiyi shirokoyi populyarnosti ta viznannya sered specialistiv po rozpodilenim obchislennyam Zgodom v 2002 Set Dzhilbert ta Nensi Linch iz Massachusetskogo tehnologichnogo institutu opublikuvali formalne dovedennya ciyeyi teoremi U 2012 roci Bryuer poyasniv deyaki zi svoyih tochok zoru zokrema chomu chasto vikoristovuvana koncepciya dva z troh mozhe buti desho omanlivoyu oskilki rozrobnikam sistem potribno lishe pozhertvuvati uzgodzhenistyu abo dostupnistyu za nayavnosti rozdilennya Isnuyut metodi keruvannya rozdilennyami ta tehniki vidnovlennya pislya rozdilennya Bryuer takozh vidznachiv rizne viznachennya uzgodzhenosti sho vikoristovuyetsya v teoremi CAP porivnyano z viznachennyam sho vikoristovuyetsya v ACID Podibnu teoremu pro kompromis mizh uzgodzhenistyu ta dostupnistyu v rozpodilenih sistemah opublikuvali Birman i Fridman u 1996 roci Voni obmezhili cyu nizhnyu mezhu ne komutativnimi operaciyami predstavlena v 2010 roci bazuyetsya na CAP stverdzhuyuchi sho navit za vidsutnosti rozpodilu isnuye she odin kompromis mizh zatrimkoyu ta uzgodzhenistyu Tehnologiya Blockchain zhertvuye negajnoyu uzgodzhenistyu zaradi dostupnosti ta stijkosti do rozdilennya vimagayuchi pevnoyi kilkosti pidtverdzhen algoritmi konsensusu Blockchain v osnovnomu zvodyatsya do kincevoyi uzgodzhenosti PrimitkiLiochon Nicolas The confusing CAP and ACID wording This long run Procitovano 1 lyutogo 2019 Eric Brewer CAP twelve years later How the rules have changed Computer Volume 45 Issue 2 2012 pg 23 29 DOI 10 1109 MC 2012 37 Carpenter Jeff Hewitt Eben July 2016 www oreilly com angl Arhiv originalu za 7 serpnya 2020 Procitovano 21 grudnya 2020 In February 2012 Eric Brewer provided an updated perspective on his CAP theorem Brewer now describes the 2 out of 3 axiom as somewhat misleading He notes that designers only need sacrifice consistency or availability in the presence of partitions and that advances in partition recovery techniques have made it possible for designers to achieve high levels of both consistency and availability Brewer s CAP Theorem Arhiv originalu za 4 lyutogo 2016 CAP Twelve Years Later How the Rules Have Changed Ken Birman and Roy Friedman Trading Consistency for Availability in Distributed Systems April 1996 hdl 1813 7235 Abadi Daniel 23 kvitnya 2010 DBMS Musings Problems with CAP and Yahoo s little known NoSQL system DBMS Musings Procitovano 23 sichnya 2018 Bashir Imran 2018 Mastering blockchain Birmingham England Packt Publishing p 41 ISBN 978 1 78883 904 4 Div takozhRozpodileni obchislennya Cilisnist informaciyi Ce nezavershena stattya pro algoritmi Vi mozhete dopomogti proyektu vipravivshi abo dopisavshi yiyi