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

  • الاتساق
نظرية كاب
معلومات عامة
جزء من
سُمِّي باسم
المكتشف أو المخترع
أثبته

يتمكن كل طلب قراءة من الحصول على أحدث عملية كتابة أو رسالة خطأ.

  • التوافرية

يتلقى كل طلب استجابة (غير خاطئ)، دون ضمان أنها تحتوي على أحدث عملية كتابة.

  • تحمّل التقسيم

يستمر النظام في العمل رغم وقوع عدد عشوائي من الرسائل (أو تأخيرها) في الشبكة بين العقد.

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

  • إلغاء العملية وبالتالي تقليل التوافرية ولكن ضمان اتساق البيانات. (CP)
  • المتابعة مع العملية مع وجود التوافرية ولكن بمخاطرة عدم اتساق البيانات. (AP)

وبالتالي، إذا كان هناك تقسيم للشبكة، فيجب على الشخص الاختيار بين اتساق البيانات أو توفرها. لاحظ أن الاتساق كما هو محدد في نظرية كاب يختلف تمامًا عن الاتساق المضمون في معاملات قاعدة بيانات أسيد.[4]

تفسير

عدل

لا يمكن أن يكون أي نظام موزع آمنًا تمامًا من فشل الشبكة، لذلك عادة يجب تحمل تقسيم الشبكة.[5][6] عند وجود التقسيم، يتبقى لدينا اثنتين من الخيارات: الاتساق أو التوافرية.

مراجع

عدل
  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.
  2. ^ "Brewer's CAP Theorem". julianbrowne.com. 11 يناير 2009. مؤرشف من الأصل في 2024-01-24.
  3. ^ "Brewers CAP Theorem on distributed systems". royans.net. 14 فبراير 2010. مؤرشف من الأصل في 2024-01-28.
  4. ^ Liochon، Nicolas. "The confusing CAP and ACID wording". This long run. مؤرشف من الأصل في 2023-12-08. اطلع عليه بتاريخ 2019-02-01.
  5. ^ Kleppmann، Martin (18 سبتمبر 2015). A Critique of the CAP Theorem (Report). Apollo - University of Cambridge Repository. arXiv:1509.05393. Bibcode:2015arXiv150905393K. DOI:10.17863/CAM.13083. S2CID:1991487. مؤرشف من الأصل في 2023-12-03. اطلع عليه بتاريخ 2019-11-24.
  6. ^ Martin، Kleppmann. "Please stop calling databases CP or AP". Martin Kleppmann's Blog. مؤرشف من الأصل في 2023-10-25. اطلع عليه بتاريخ 2019-11-24.