نظرية CAP

في نظرية قواعد البيانات ، تنص نظرية CAP ، والتي تسمى أيضًا نظرية بروير نسبة إلى عالم الكمبيوتر إريك بروير ، على أن أي مخزن بيانات موزع يمكن أن يوفر اثنين على الأكثر من الضمانات الثلاثة التالية : [ 1 ] [ 2 ] [ 3 ]

تناسق
تتلقى كل عملية قراءة آخر عملية كتابة أو خطأ. تعني الاتساق أن جميع العملاء يرون البيانات نفسها في الوقت نفسه، بغض النظر عن العقدة التي يتصلون بها. ولتحقيق ذلك، عند كتابة البيانات إلى عقدة ما، يجب إعادة توجيهها أو نسخها فورًا إلى جميع العقد الأخرى في النظام قبل اعتبار عملية الكتابة "ناجحة" [ 4 ] . يختلف مفهوم الاتساق كما هو مُعرَّف في نظرية CAP اختلافًا كبيرًا عن الاتساق المضمون في معاملات قواعد بيانات ACID [ 5 ] .
التوافر
يجب أن ينتج عن كل طلب تتلقاه عقدة سليمة في النظام استجابة، دون ضمان احتواء هذه الاستجابة على أحدث نسخة من البيانات [ 6 ] . هذا هو تعريف التوافر في نظرية CAP كما حددها جيلبرت ولينش [ 1 ] . يختلف مفهوم التوافر في نظرية CAP عن مفهوم التوافر العالي في هندسة البرمجيات [ 7 ] .
التسامح مع التقسيم
يستمر النظام في العمل على الرغم من فقدان (أو تأخير) عدد عشوائي من الرسائل بواسطة الشبكة بين العقد. [ 8 ]

عند حدوث عطل في تقسيم الشبكة ، يجب اتخاذ قرار بشأن القيام بأحد الإجراءات التالية:

  • إلغاء العملية وبالتالي تقليل التوافر مع ضمان الاتساق
  • المضي قدماً في العملية، وبالتالي توفير إمكانية الوصول، ولكن مع خطر عدم الاتساق. هذا لا يعني بالضرورة أن النظام متاح بشكل كبير لمستخدميه. [ 7 ]
مخطط أويلر لنظرية CAP

وبالتالي، إذا كان هناك انقطاع في الشبكة، فيجب على المرء أن يختار بين الاتساق أو التوافر.

خلال أوقات العمليات العادية، يغطي مخزن البيانات جميع الجوانب الثلاثة. [ 9 ]

توضيح

لا يوجد نظام موزّع بمنأى عن أعطال الشبكة، لذا يجب عمومًا تقبّل تجزئة الشبكة. [ 10 ] [ 11 ] في حالة وجود تجزئة، يتبقى خياران: الاتساق أو التوافر . عند اختيار الاتساق على التوافر، سيعيد النظام خطأً أو مهلة زمنية إذا تعذّر ضمان تحديث معلومات معينة بسبب تجزئة الشبكة. أما عند اختيار التوافر على الاتساق، فسيعالج النظام الاستعلام دائمًا ويحاول إرجاع أحدث نسخة متاحة من المعلومات، حتى لو لم يتمكن من ضمان تحديثها بسبب تجزئة الشبكة. [ 12 ]

في حالة عدم وجود انقطاع في الشبكة، يمكن ضمان كل من التوافر والاتساق. [ 13 ]

تُفضّل أنظمة قواعد البيانات المصممة مع مراعاة ضمانات ACID التقليدية ، مثل أنظمة إدارة قواعد البيانات العلائقية (RDBMS)، الاتساق على التوافر، بينما تُفضّل الأنظمة المصممة وفقًا لفلسفة BASE ، الشائعة في حركة NoSQL على سبيل المثال، التوافر على الاتساق. [ 14 ] لكن MongoDB و Redis تحلان مشكلة انقطاع الشبكة بالحفاظ على الاتساق مع التضحية بالتوافر. [ 4 ] [ 9 ] تُعدّ CouchDB و Cassandra و ScyllaDB أمثلة على قواعد بيانات AP. [ 9 ] لا توجد قواعد بيانات NoSQL تُصنّف على أنها CA. [ 9 ] تُوفّر معظم قواعد البيانات الموزّعة الحديثة خيارات تكوين لكلٍّ من الاتساق والتوافر. [ 6 ]

تختار بعض خدمات الحوسبة السحابية اتساقًا قويًا، لكنها تستخدم شبكات ألياف ضوئية خاصة عالمية ومزامنة ساعة نظام تحديد المواقع العالمي (GPS) لتقليل تكرار انقطاعات الشبكة . أخيرًا، قد تستخدم البنى المتسقة التي لا تعتمد على مشاركة البيانات تقنيات مثل التجزئة الجغرافية للحفاظ على توافر البيانات المملوكة للعقدة المستعلم عنها، ولكن دون أن تكون متاحة لطلبات عشوائية أثناء انقطاع الشبكة .

تاريخ

بحسب عالم الحاسوب إريك بروير من جامعة كاليفورنيا، بيركلي ، ظهرت النظرية لأول مرة في خريف عام 1998. [ 14 ] ونُشرت كمبدأ CAP في عام 1999 [ 15 ] وقدّمها بروير كفرضية في ندوة مبادئ الحوسبة الموزعة (PODC) عام 2000. [ 16 ] وفي عام 2002، نشر سيث جيلبرت ونانسي لينش من معهد ماساتشوستس للتكنولوجيا برهانًا رسميًا لفرضية بروير، ما جعلها نظرية . [ 1 ]

في عام ٢٠١٢، أوضح بروير بعض مواقفه، بما في ذلك سبب كون مفهوم "اثنان من ثلاثة" الشائع الاستخدام مُضللاً إلى حد ما، لأن مصممي الأنظمة لا يحتاجون إلا إلى التضحية بالاتساق أو التوافر في حالة وجود أقسام؛ إذ توجد تقنيات لإدارة الأقسام واستعادتها. كما أشار بروير إلى اختلاف تعريف الاتساق المستخدم في نظرية CAP عن التعريف المستخدم في ACID . [ ١٤ ] [ ١٧ ]

وقد نشر بيرمان وفريدمان نظرية مماثلة توضح المفاضلة بين الاتساق والتوافر في الأنظمة الموزعة في عام 1996. [ 18 ] وقد قيدت نتيجة بيرمان وفريدمان هذا الحد الأدنى للعمليات غير التبادلية.

تستند نظرية PACELC ، التي طُرحت عام 2010 [ 13 إلى نظرية CAP، حيث تنص على أنه حتى في غياب التقسيم، توجد مفاضلة أخرى بين زمن الاستجابة والاتساق. تعني PACELC أنه في حالة حدوث تقسيم (P)، تكون المفاضلة بين التوافر (A) والاتساق (C)؛ وإلا (E)، تكون المفاضلة بين زمن الاستجابة (L) والاتساق (C). يرى بعض الخبراء، مثل مارك بروكر، أن نظرية CAP ذات صلة خاصة بالبيئات ذات الاتصال المتقطع، مثل تلك المتعلقة بإنترنت الأشياء (IoT) وتطبيقات الهاتف المحمول . في هذه السياقات، قد تتعرض الأجهزة للتقسيم بسبب ظروف فيزيائية صعبة، مثل انقطاع التيار الكهربائي أو عند دخول أماكن ضيقة كالمصاعد. بالنسبة للأنظمة الموزعة ، مثل تطبيقات الحوسبة السحابية ، يُعد استخدام نظرية PACELC أكثر ملاءمة ، فهي أشمل وتأخذ في الاعتبار المفاضلات مثل زمن الاستجابة والاتساق حتى في غياب تقسيمات الشبكة . [ 19 ]

انظر أيضاً

مراجع

  1. 1 2 3 جيلبرت، سيث؛ لينش، نانسي (2002). "فرضية بروير وجدوى خدمات الويب المتسقة والمتاحة والمقاومة للانقطاعات". أخبار ACM SIGACT . 33 (2). رابطة آلات الحوسبة (ACM): 51-59 . doi : 10.1145/564585.564601 . ISSN 0163-5700 . S2CID 15892169 .  
  2. "نظرية بروير CAP" . julianbrowne.com . 2009-01-11.
  3. إريك أ. بروير (2000). نحو أنظمة موزعة قوية (PDF) . مبادئ الحوسبة الموزعة (PODC).
  4. 1 2 "ما هي نظرية CAP؟ | IBM" . www.ibm.com . 2022-12-20 . تم الاطلاع عليه بتاريخ 2025-12-05 .
  5. ليوشون، نيكولاس. "صياغة CAP و ACID المُربكة" . هذا المسار الطويل . تم الاسترجاع في 1 فبراير 2019 .
  6. 1 2 "مرحباً بالمقابلة | تصميم النظام على عجل" . مرحباً بالمقابلة . تم الاسترجاع في 7 ديسمبر 2025 .
  7. 1 2 فاولر، آدم (2015). NoSQL للمبتدئين . للمبتدئين. ISBN 978-8126554904.
  8. جيلبرت، سيث؛ لينش، نانسي (2012). "وجهات نظر حول نظرية CAP" . مجلة الكمبيوتر . 45 (2): 30-36 . doi : 10.1109/mc.2011.389 . hdl : 1721.1/79112 . ISSN 0018-9162 . 
  9. 1 2 3 4 ألاستيرن. "نظرية CAP" . ScyllaDB . تم الاسترجاع في 2025-12-06 .
  10. كليمان، مارتن (18 سبتمبر 2015). نقد لنظرية CAP (تقرير). أبولو - مستودع جامعة كامبريدج. arXiv : 1509.05393 . Bibcode : 2015arXiv150905393K . doi : 10.17863/CAM.13083 . S2CID 1991487. تاريخ الاسترجاع: 24 نوفمبر 2019 . 
  11. مارتن، كليمان. "رجاءً توقفوا عن تسمية قواعد البيانات بـ CP أو AP" . مدونة مارتن كليمان . تم الاطلاع بتاريخ 24 نوفمبر 2019 .
  12. "نظرية CAP - التوافر وما بعده: فهم وتحسين مرونة الأنظمة الموزعة على AWS" . docs.aws.amazon.com . تم الاطلاع عليه بتاريخ 7 ديسمبر 2025 .
  13. 1 2 عبادي، دانيال (23 أبريل 2010). "تأملات في أنظمة إدارة قواعد البيانات: مشاكل مع CAP، ونظام NoSQL غير المعروف من ياهو" . تأملات في أنظمة إدارة قواعد البيانات . تم الاسترجاع في 23 يناير 2018 .
  14. 1 2 3 بروير، إريك (2012). "CAP بعد اثني عشر عامًا: كيف تغيرت "القواعد"" . مجلة الكمبيوتر . 45 (2). معهد مهندسي الكهرباء والإلكترونيات (IEEE): 23-29 . doi : 10.1109/mc.2012.37 . ISSN 0018-9162 . S2CID 890105 .  
  15. أرماندو فوكس؛ إريك بروير (1999). الحصاد، والإنتاجية، والأنظمة المتسامحة القابلة للتوسع . وقائع ورشة العمل السابعة حول المواضيع الساخنة في أنظمة التشغيل (HotOS 99). IEEE CS. الصفحات 174-178 . doi : 10.1109/HOTOS.1999.798396 . 
  16. إريك بروير. "نحو أنظمة موزعة قوية" (ملف PDF) .
  17. كاربنتر، جيف؛ هيويت، إيبن (يوليو 2016). كاساندرا: الدليل الشامل ( الطبعة الثانية). أورايلي ميديا. ISBN  9781491933657في فبراير 2012 ، قدّم إريك بروير منظورًا مُحدّثًا لنظرية CAP الخاصة به  ... ويصف بروير الآن بديهية "2 من 3" بأنها مُضلّلة إلى حدٍّ ما. ويشير إلى أن المصممين لا يحتاجون إلا إلى التضحية بالاتساق أو التوافر في حالة وجود أقسام، وأن التطورات في تقنيات استعادة الأقسام قد مكّنت المصممين من تحقيق مستويات عالية من كلٍّ من الاتساق والتوافر.
  18. كين بيرمان؛ روي فريدمان (أبريل 1996). "المفاضلة بين الاتساق والتوافر في الأنظمة الموزعة" . hdl : 1813/7235 .
  19. تصميم التطبيقات كثيفة البيانات: الأفكار الرئيسية وراء الأنظمة الموثوقة والقابلة للتوسع والصيانة . دار نشر أورايلي ميديا. رقم ISBN 978-1449373320.