+1 امتیاز
قبل در برنامه نویسی توسط (63 امتیاز)
برچسب گذاری دوباره قبل توسط
سلام

قضیه CAP بیانگر این موضوع است که در سیستم‌های توزیع شده شما فقط امکان فراهم کردن دو گزینه از سه گزینه

Consistency, Availability و Partition tolerance را خواهید داشت و گزینه باقیمانده قربانی فراهم کردن سایر گزینه‌ها خواهد شد. چرا ؟

در واقع چرا نمیتونیم این 3 تا رو در کنار هم داشته باشیم؟

با تشکر

1 پاسخ

+1 امتیاز
قبل توسط (330 امتیاز)
در دیتابیس های توزیع شده چون نودها در کلاستر باید با هم مکاتبه کنند باید P باشه در نتیجه شما باید بین CوA یکی رو انتخاب کنید. برای بدست آوردن A باید داده ها رو replicate کنید.یعنی اگر سه نود به نام a,b,c دارید باید یک کپی در همه نود ها باشه.به این ترتیب اگر هر کدام از نود ها خراب شد کپی دیگه در دسترس باشه که همان ویژگی Availability هست.فرض کنید داده جدید در حال نوشته شدن در a هست اما هنوز فرصت نشده که در b,c نوشته بشه،در همین حین یک عملیات خواندن در b یا c صورت می گیره در نتیجه نود a داده جدید داره اما بقیه نود ها داده قدیمی دارند. در نتیجه اصل consistency که میگه داده های همه نود ها باید یکسان باشه زیر سوال میره.پس اگر قصد دارید برای دسترس پذیری یعنی همان A چند کپی از داده را داشته باشید باید قید C را بزنید.اما این نوع دیتابیس های AP مکانیزیمی در نظر گرفتند که بتوانند C را هم ساپورت کنند که بهش می گن eventually consistency.
پس شما بر اساس نیازتان بین C و A یکی را انتخاب کنید.اما دیتابیس هایی هستند مانند مانگو که انعطاف پذیرند.یعنی این دیتابیس اصولا از نوع CP هست.چون تمام عملیات خواندن و نوشتن به سمت نود مستر میره اما اگر در تنظیمات اجازه بدی که نود های slave هم اجازه خواندن داشته باشند آنوقت این دیتابیس به نوع AP تبدیل میشه.
قبل توسط (1.1هزار امتیاز)
+1
تشکر از جواب خوبتون.

سوالات مشابه

0 امتیاز
0 پاسخ 442 بازدید
+1 امتیاز
1 پاسخ 380 بازدید
+1 امتیاز
1 پاسخ 568 بازدید
0 امتیاز
1 پاسخ 482 بازدید
...