CAP Теоремасы

All lectures for KY purposes
Деңгээл , Сабак
жеткиликтүү

4.1 Брювер тууралуу Согласованность

Эрик Брювер эч качан маалымат базалары боюнча эксперт болгон эмес. Ал таратылган системаларды изилдейт жана 2000-жылы "Таратылган эсептөөлөрдүн принциптери" аттуу презентация алып барган, анда CAP "теоремасын" сунуш кылган. 2010-жылы ал кайрадан бул конференцияга чакыртылып, анда CAP "теоремасы" эске алынган системалардын мисалдарын келтирген. Таратылган системаларда маалымат базаларында колдонулган терминдерден айырмаланган терминдер колдонулат.

Тактап айтканда, заматта согласованность деген, колдонуучу маалыматтарды жаңыртуунун ийгиликтүү аяктагандыгы тууралуу кабар алган соң, бул операциянын жыйынтыгы дароо бардык колдонуучуларга көрүнөт дегенди билдирет.

Акырынын натыйжасында согласованность болсо, узак убакыт жаңыртуусуз өткөндөн кийин, бардык маалыматтардын өзгөрүүлөрү бүт система боюнча таркатылат жана бардык репликалар бирдей абалда болот дегенди билдирет.

Согласованность түшүнүгүнүн маанисин карап чыгып, Брювердин "теоремасы" абдан жөнөкөй жана түшүнүктүү деген жыйынтык чыгарууга болот: бөлүнгөн маалыматтары бар таратылган системада бир эле учурда үч керектүү касиеттердин экөөнү – согласованность, жеткиликтүүлүк жана тармактын үзүлүшүнө туруштук берүү – алууга болот. Брювер ACID касиеттерин BASE касиеттерине (Basically Available, Soft-state, Eventual consistency – көп учурда жеткиликтүү; туруктуу абал эмес; келечекте согласованность) салыштырат.

Бирок бул салыштыруу так эмес, анткени биринчи логикалык аспекттерге, ал эми экинчиси таратылган системалардын физикалык касиеттерине тиешелүү. Ошондуктан, мындай системалар менен иштөө үчүн эки башка иштөө схемасын колдонууга туура келет, алар бири-бирине карама-каршы талаптарга ээ болушу мүмкүн.

4.2 Теореманын "дәлелдөө"

Көпчүлүк Брювердин "теоремасы" формалдуу түрдө далилденген деп эсептейт. Чынында, Сет Гильберттин (Seth Gilbert) жана Нэнси Линчтин (Nancy Lynch) макаласында кээ бир ( дээрлик) формалдуу аныктамалар киргизилип, анын контекстинде "теорема" чыныгы теорема болуп калыптанат жана далилденет. Бирок "теоремасы" боюнча Брювердин үч касиеттеринин ичинен эки касиеттерин гана бир эле учурда камсыз кыла ала турган таратылган системанын үч касиеттерин кантип аныктаса болот?

Согласованность атомардуу же линеаризацияланган согласованность (atomic, or linearizable consistency) деп аталат жана системанын касиетин билдирет, анын бардык жеке маалымат объекттери атомардуу болуп саналат (линеаризацияланган). Өз кезегинде, атомардуу объект – бул операциянын чакыруусу жана жооптордун алынуусу заматта болуп жаткандай болгон объект. Бул учурда операциялардын кабыл алуу тартиби төмөнкүдөй болушу керек: эгерде окуу түрүндөгү операция жазуунун кандайдыр бир түрүндөгү операцияны аткаргандан кийин келсе, окуу операциясы ошол жазган операциянын жыйынтыгын кайтарууга тийиш.

Таратылган система дайыма жеткиликтүү болуп саналат, эгерде баш тартпаган узелден келген ар бир суроо жооп алуу керек болсо. Тармактын бөлүнүүкө туруштук берүү системанын узелдердин биринен экинчисине жөнөтүлгөн билдирүүлөрдүн кандайдыр бир санынын жоголушунан кийин да системанын жашоого жөндөмдүүлүгү катары моделденет.

Бул аныктамалардын негизинде Гильберт жана Линч төмөнкү теореманы формулировка кылышат (асинхрондук тармак моделинде саат жок, жана жанында жайгашкан узелдер алынган билдирүүлөр жана жергиликтүү эсептөөлөрдүн негизинде гана чечим кабыл алышы керек):

Асинхрондук тармак моделинде окуу жана жазуу операциялары бар маалымат объектисин ишке ашыруу мүмкүн эмес, бардык мыйзамдуу аткарылыштар үчүн жеткиликтүүлүк жана атомардуу согласованность касиеттерин камсыздоону кепилдеп турган.

Бул теорема чынында эле "каршы далилдөө" жолу менен формалдуу түрдө далилденет. Андан ары макалада мындай жыйынтык чыгарылат:

Асинхрондук тармак моделинде окуу жана жазуу операциялары бар маалымат объектисин ишке ашыруу мүмкүн эмес, бардык мыйзамдуу аткарылыштар үчүн жеткиликтүүлүк касиеттерин камсыздоону жана билдирүүлөр жок болбогон аткарылыштар үчүн атомардуу согласованность касиеттерин камсыздоону кепилдеп турган.

Мындан тышкары, тармактын жарым-синхрондук моделинде негизги теореманын чындыгы далилденет, анда ар бир узелде саат бар, убакыт бирдей ылдамдыкта көбөйөт, бирок сааттар синхрондоштурулбайт, башкача айтканда, бир убакытта ар башка убакытты көрсөтө алышат. Бул учур үчүн окшош жыйынтык чыгарылбайт деп көрсөтүлгөн, демек, жарым-синхрондук тармактар үчүн "жакшы" касиеттерге ээ болгон таратылган системаларды уюштурууда көбүрөөк мүмкүнчүлүктөр бар.

Ооба, белгилүү бир мааниде (Брювер ойлогон мааниде эмес) Гильберт жана Линч бир эле учурда бир таратылган системада атомардуу согласованность, жеткиликтүүлүк жана тармактын бөлүнүүкө туруштук берүү касиеттерин камсыз кылуу мүмкүн эместигин далилдеди деп эсептөөгө болот. Бирок бул жалпы маалымат базасынын транзакцияларына жана өзгөчө ACID транзакцияларына кандай тиешеси бар?

4.3 ACID-транзакциялар

Бул тууралуу "CAP теоремасы" боюнча талкууга арналган заметкасында Джулиан Браун (Julian Browne) мындай дейт:

Гильберт жана Линч өз далилдеринде согласованность термининин ордуна атомарность терминин колдонушат, бул техникалык жактан алганда маанилүүрөөк болуп саналат, анткени так айтканда ACID маанисиндеги согласованность маалымат базасынын транзакцияларынын идеалдуу касиеттерине тиешелүү жана ал эч кандай маалыматтар алдын ала аныкталган чектөөлөрдү бузбай турганын билдирет.

Бирок, эгерде маалыматсыз системалардын алдын ала аныкталган чектөөсү бир эле элементтин бир нече ар башка маанисине тыюу салуу деп эсептесек, бул согласованность абстракциясынан келип чыккан өзгөчөлүк миссия эмес деп эсептейм (мындан тышкары, Брювер атомарность деген терминди колдонсо, анда AAP теоремасы чыкмак, анын аталышын айтууга абдан ыңгайсыз болмок).

Бул өтө олуттуу жазылган жок, бирок чынчылдык менен жазылган. Чынында эле, атомардуу согласованность талабы менен ACID маанисиндеги транзакциялардын согласованность талаптарын аралаштырууга болбойт. Маалымат базасынын бүтүндүгүнүн чектөөлөрү – бул логикалык, бизнестик талаптар. Алар колдонмо чөйрөнүн логикасынан келип чыгат. Атомардуу согласованность талабы таптакыр башка түрдөгү. Бул ишке ашыруу талабы, ал маалымат базасынын физикалык согласованность деп аталган категориясына таандык (мисалы, индекстин өзгерүү операцияларын аткарууда бардык тиешелүү B+-бактыдагы блоктор туура маанилерди камтып, туура шилтемелер менен байланышкан болушу керек).

Бирок бул тууралуу олуттуу түрдө маалымат базасынын жамаатынын өкүлдөрү Дэниел Абади (Daniel Abadi) жана Александр Томсон (Alexander Thomson) өз заметкаларында жазышат:

... масштабдуу транзакциялык системалардын жеткиликтүүлүк талабын камсыз кылуу барган сайын маанилүүрөөк болуп жатат жана адатта аны репликация жана бир узелдин бузулуп кетүүсү учурунда автоматтык түрдө кайра багыттоо аркылуу камсыз кылынат. Ошондуктан, колдонмо иштеп чыгуучулар ACID системаларынын согласованность кепилдиктери (алгач колдонуучулар тарабынан аныкталган инварианттарды жергиликтүү түрдө камсыздоого багытталган) репликалардын катуу согласованность камсыздоосуна жайылтылышын күтүшөт (башкача айтканда, ар бир учурда ошол эле маалыматтын бардык репликалары бирдей көчүрмөлөр болуп турган, башкача айтканда, бул учурда CAP/PACELC маанисинде согласованностьты билдирет).

Башкача айтканда, Брювер боюнча согласованность ACID маанисиндеги согласованность менен байланыштуу эмес, бирок жогорку деңгээлдеги жеткиликтүүлүктү камсыз кылууга багытталган системаларда маалыматтардын репликациясы аркылуу репликалардын катуу согласованностьты камсыз кылуу керек. Бул ACID касиети эмес, бирок маалымат базасынын жамааты колдонмо түзүүнү жеңилдеткен техникалык (физикалык) өзгөчөлүк.

Майкл Стоунбрейкердин ою боюнча, заманбап высококачественные СУБД куруунун кепилдиги техникалык компромисстерди туура тандап алуу болуп саналат. Конкреттик инженердик чечимди тандоодо келечектеги колдонуучулардын талаптарын, ар кандай бузулуучу кырдаалдардын пайда болуу ыктымалдуулугун жана башка көп нерселерди эске алуу керек, жана жок дегенде жалпы теоремалык көрсөтмөлөр (анын ичинде CAP "теоремасы") боюнча догматтык түрдө жетекчиликке алынбоо керек.

Стоунбрейкер эсептейт, маалымат базасынын параллель транзакциялар чөйрөсүндө Брювер боюнча согласованностьтан баш тартуу жана тармактын бөлүнүүкө туруштук берүүгө чыкканынан баш тартуу начар компромисс болуп саналат, анткени (а) репликалардын согласованность системанын абдан пайдалуу касиети болуп саналат; (b) массивно-параллель транзакциялык СУБД өтө көп узелдери бар кластерлерге муктаж эмес, андыктан тармактын бөлүнүү абалдары аз ыктымалдуулукта; (c) система тармактын бөлүнүүсүнөн эмес, мисалы, кезектеги программалык каталардан улам жеткиликсиз болуп калат.

Ошентип, NoSQL (ок NoACID) лагеринин өкүлдөрүнүн жогорку активдүүлүгү, көбүнчө Брювердин "теоремасына" таянат, бул ACID-транзакцияларды колдогон массивно-параллель транзакциялык СУБД куруунун теоретикалык мүмкүн эместиги эмес, бирок ACID-транзакцияларды жана репликалардын согласованностьти колдобогон жөнөкөйлөштүрүлгөн системаларды түзүү оңой жана тезирээк. Жөнөкөйлөштүрүлгөн уюштуруунун аркасында алар абдан тез маалыматтарды иштетүү жөндөмүнө ээ болуп, айрым колдонмолор үчүн бул технологиялардын бардык ыңгайлуулуктарынан кыйла маанилүү болуп саналат.

Көрөлү, маалымат базасы коомчулугу бул чакырыкка кандай жооп берет.

Комментарийлер
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION