CAP թեորեմ
Տվյալների բազայի տեսության մեջ CAP թեորեմը, որը նաև կոչվում է Բրյուերի թեորեմ՝ համակարգչային գիտնական Էրիկ Բրյուերի անունով, ասում է, որ ցանկացած բաշխված տվյալների պահոց կարող է միաժամանակ ապահովել միայն երեք ստորև նշված երաշխիքներից երկուսը.[1][2][3]
- Համապատասխանություն (Consistency)
Կարդալու (read) յուրաքանչյուր գործողություն պետք է վերադարձնի կամ ամենավերջին գրառումը (write), կամ սխալ։ Նշենք, որ CAP թեորեմում կիրառվող «համապատասխանություն» եզրույթը տարբերվում է ACID տրանզակցիաներում օգտագործվող համապատասխանությունից։[4]
- Հասանելիություն (Availability)
Ցանկացած պահանջ, որը ստանում է չվթարված հանգույցը (node), պարտադիր պետք է հանգեցնի պատասխանի։ Նշենք, որ CAP թեորեմի հասանելիությունը չի նույնանում «բարձր հասանելիության» (high availability) գաղափարի հետ, որն օգտագործվում է ծրագրային ճարտարապետությունում։[1]
- Բաժանման հանդուրժողականություն (Partition tolerance)
Համակարգը շարունակում է գործել նույնիսկ այն դեպքում, երբ ցանցում հաղորդագրությունները կարող են անհետանալ կամ ուշանալ հանգույցների միջև։
Երբ ցանցում տեղի է ունենում բաժանում (network partition), համակարգը պետք է ընտրություն կատարի՝
- կամ չեղարկել գործողությունը, այսինքն՝ հրաժարվել հասանելիությունից՝ փոխարենը պահպանելով համապատասխանությունը,
- կամ շարունակել գործողությունը, այսինքն՝ ապահովել հասանելիությունը՝ փոխարենը վտանգելով համապատասխանությունը։[5]
Այս ընտրությունը չի նշանակում, որ համակարգը միշտ կլինի «բարձր հասանելի», այլ միայն՝ որ այն կպատասխանի։
Ծանոթագրություն
[խմբագրել | խմբագրել կոդը]- ↑ 1,0 1,1 Gilbert, Seth; Lynch, Nancy (2002). «Brewer's conjecture and the feasibility of consistent, available, partition-tolerant web services». ACM SIGACT News. Association for Computing Machinery (ACM). 33 (2): 51–59. doi:10.1145/564585.564601. ISSN 0163-5700. S2CID 15892169.
- ↑ «Brewer's CAP Theorem». julianbrowne.com. 2009 թ․ հունվարի 11.
- ↑ Eric A. Brewer (2000). Towards Robust Distributed Systems (PDF). Principles on Distributed Computing (PODC).
- ↑ Liochon, Nicolas. «The confusing CAP and ACID wording». This long run. Վերցված է 2019 թ․ փետրվարի 1-ին.
- ↑ Քաղվածելու սխալ՝ Սխալ
<ref>պիտակ՝ «Fowler 2015» անվանումով ref-երը տեքստ չեն պարունակում: