CAP Teoreması nədir?
CAP Teoremi — paylanmış (distributed) sistemlərdə və verilənlər bazalarında mühüm anlayışdır və sistem dizaynında qarşılaşılan məhdudiyyətləri ifadə edir. Teoremi 2000-ci ildə kompüter alimi Eric Brewer irəli sürüb, 2002-ci ildə isə MIT alimləri Seth Gilbert və Nancy Lynch onu riyazi olaraq sübut ediblər.
«CAP» adı üç əsas xüsusiyyətin baş hərflərindən yaranıb:
- Consistency (Ardıcıllıq / Uyğunluq)
- Availability (Əlçatanlıq)
- Partition Tolerance (Şəbəkə bölünməsinə dözümlülük)
Hər bir xüsusiyyət nə deməkdir?
Consistency (Ardıcıllıq)
Sistemin bütün hissələri (node-ları) eyni anda eyni məlumatları görür. Hər oxuma sorğusu ya ən son yazılan məlumatı, ya da xəta qaytarır — köhnəlmiş məlumat heç vaxt qaytarılmır.
Availability (Əlçatanlıq)
Sistemin işləyən hər bir hissəsi daxil olan hər sorğuya xəta olmayan cavab verir. Lakin bu cavab həmişə ən son məlumatı əks etdirməyə bilər.
Partition Tolerance (Şəbəkə bölünməsinə dözümlülük)
Sistem şəbəkədə qismən kəsilmələr (partition) olsa belə — yəni bəzi serverlər bir-biri ilə əlaqə saxlaya bilmədikdə də — işləməyə davam edir.
CAP Teoreminin əsas ideyası
Paylanmış sistemdə eyni anda bu üç xüsusiyyətin hamısını tam təmin etmək mümkün deyil. Böyük sistemlərdə şəbəkə bölünməsi qaçılmazdır. Ona görə də bölünmə baş verdikdə sistem ya ardıcıllığı (consistency), ya da əlçatanlığı (availability) qurban verməlidir.
Seçim nümunələri
- CP (Consistency + Partition Tolerance): Bölünmə zamanı sistem köhnəlmiş məlumat qaytarmaq əvəzinə bəzi sorğulara cavab vermir və ya xəta qaytarır. Nümunə: MongoDB, HBase. Bu yanaşma bank əməliyyatları kimi dəqiqliyin vacib olduğu sistemlər üçün uyğundur.
- AP (Availability + Partition Tolerance): Sistem həmişə cavab verir, amma məlumatlar müvəqqəti uyğunsuz ola bilər; sonradan sinxronlaşır (“eventual consistency”). Nümunə: Cassandra, Amazon DynamoDB. Bu yanaşma sosial şəbəkələr, sevimlilər siyahısı kimi bir neçə saniyəlik gecikmənin kritik olmadığı sistemlər üçün uyğundur.
- CA (Consistency + Availability): Sistem həm ardıcıl, həm də əlçatandır, amma şəbəkə bölünmələrinə dözümlü deyil. Real paylanmış sistemlərdə bu seçim praktiki olaraq mümkün deyil. CA əsasən tək serverdə işləyən ənənəvi RDBMS-lərə aiddir.
Bir çox paylanmış NoSQL bazaları məhz CAP teoreminə əsasən CP və ya AP modelini seçir.
CAP və ACID: “C” hərfləri eyni deyil
Bu iki anlayış tez-tez qarışdırılır. ACID-dəki “C” (Consistency) bir tranzaksiyanın bazanı qaydalara uyğun vəziyyətdə saxlamasını bildirir. CAP-dakı “C” isə paylanmış sistemin bütün hissələrinin eyni məlumatı görməsi deməkdir. Adları eyni olsa da, bunlar fərqli anlayışlardır.
Niyə bu vacibdir?
CAP Teoremi paylanmış sistemlərin dizaynında kompromisləri göstərir və hansı xüsusiyyətlərin daha önəmli olduğunu seçməyə kömək edir. Bu, xüsusilə bulud xidmətləri, Big Data sistemləri və yüksək əlçatanlıq tələb edən platformalar üçün vacibdir.
İstəyirsiniz ki, bu biliyi praktikaya keçirib real nəticələr əldə edəsiniz? IT və Kompüter Mühəndisliyi kursumuzla addım-addım öyrənməyə başlayın. Ətraflı məlumat üçün linkə keçid edin: IT və Kompüter Mühəndisliyi kursu
