درباره ضریب تکرار کاساندرا
کاساندرا برای اطمینان از قابلیت اطمینان و تحمل خطا، کپی های داده را در چندین گره ذخیره می کند. استراتژی تکثیر برای هر فضای کلید Edge، گره هایی را که رونوشت ها در آن قرار می گیرند، تعیین می کند.
تعداد کل کپی ها برای یک فضای کلید در یک خوشه Cassandra به عنوان ضریب تکرار فضای کلیدی نامیده می شود. ضریب تکرار یک به این معنی است که تنها یک کپی از هر ردیف در خوشه Cassandra وجود دارد. ضریب تکرار دو به این معنی است که دو نسخه از هر ردیف وجود دارد، جایی که هر کپی در یک گره متفاوت است. همه کپی ها به یک اندازه مهم هستند. هیچ نسخه اصلی یا اصلی وجود ندارد.
در یک سیستم تولیدی با سه یا چند گره کاساندرا در هر مرکز داده، ضریب تکرار پیشفرض برای فضای کلید Edge سه است. به عنوان یک قاعده کلی، ضریب تکرار نباید از تعداد گره های کاساندرا در خوشه تجاوز کند.
از روش زیر برای مشاهده طرحواره Cassandra استفاده کنید، که ضریب تکرار را برای هر فضای کلید Edge نشان می دهد:
- به یک گره کاساندرا وارد شوید.
- دستور زیر را اجرا کنید:
/opt/apigee/apigee-cassandra/bin/cassandra-cli -h $(hostname -i) <<< "show schema;"
جایی که
$(hostname -i)
به آدرس IP گره کاساندرا حل می شود. یا می توانید$(hostname -i)
با آدرس IP گره جایگزین کنید.
برای هر فضای کلید، خروجی را به شکل زیر مشاهده خواهید کرد:
create keyspace kms with placement_strategy = 'NetworkTopologyStrategy' and strategy_options = {dc-1 : 3} and durable_writes = true;
می توانید ببینید که برای مرکز داده 1، dc-1
، ضریب تکرار پیش فرض برای فضای کلید kms
برای نصب با سه گره کاساندرا سه است.
اگر گرههای Cassandra اضافی را به خوشه اضافه کنید، ضریب تکرار پیشفرض تحت تأثیر قرار نمیگیرد.
برای مثال، اگر تعداد گرههای کاساندرا را به شش افزایش دهید، اما ضریب تکرار را روی سه بگذارید، مطمئن نمیشوید که تمام گرههای کاساندرا یک کپی از تمام دادهها دارند. اگر یک گره پایین بیاید، ضریب تکرار بالاتر به معنای احتمال بالاتری است که داده های روی گره در یکی از گره های باقی مانده وجود دارد. نقطه ضعف ضریب تکرار بالاتر، افزایش تاخیر در نوشتن داده ها است.
درباره سطح سازگاری کاساندرا
سطح سازگاری کاساندرا به عنوان حداقل تعداد گرههای کاساندرا تعریف میشود که باید قبل از موفقیتآمیز در نظر گرفتن عملیات خواندن یا نوشتن، تأیید کنند. سطوح مختلف سازگاری را می توان به فضاهای کلیدی مختلف Edge اختصاص داد.
هنگام اتصال به Cassandra برای عملیات خواندن و نوشتن، گرههای پردازشگر پیام و سرور مدیریت معمولاً از مقدار Cassandra LOCAL_QUORUM
برای تعیین سطح سازگاری برای یک فضای کلید استفاده میکنند. با این حال، برخی از فضاهای کلیدی برای استفاده از سطح سازگاری یک تعریف شده اند.
محاسبه مقدار LOCAL_QUORUM
برای یک مرکز داده به صورت زیر است:
LOCAL_QUORUM = (replication_factor/2) + 1
همانطور که در بالا توضیح داده شد، ضریب تکرار پیش فرض برای یک محیط تولید Edge با سه گره Cassandra سه است. بنابراین، مقدار پیشفرض LOCAL_QUORUM
= (3/2) +1 = 2 (مقدار به یک عدد صحیح گرد میشود).
با LOCAL_QUORUM
= 2، حداقل دو گره از سه گره کاساندرا در مرکز داده باید به عملیات خواندن/نوشتن پاسخ دهند تا عملیات موفقیت آمیز باشد. بنابراین برای یک خوشه کاساندرا سه گره، خوشه می تواند تحمل کند که یک گره در هر مرکز داده پایین باشد.
با تعیین سطح سازگاری به عنوان LOCAL_QUORUM
، Edge از تأخیر مورد نیاز با اعتبارسنجی عملیات در چندین مرکز داده جلوگیری می کند. اگر فضای کلیدی از مقدار Cassandra QUORUM
به عنوان سطح سازگاری استفاده کند، عملیات خواندن/نوشتن باید در تمام مراکز داده اعتبارسنجی شود.
برای مشاهده سطح سازگاری استفاده شده توسط گره های پردازشگر پیام لبه یا مدیریت سرور:
- به یک گره پردازشگر پیام وارد شوید.
- به پوشه /opt/apigee/edge-message-processor/conf تغییر دهید:
cd /opt/apigee/edge-message-processor/conf
- برای سازگاری بنویسید:
grep -ri "write.consistencylevel" *
- برای قوام خواندن:
grep -ri "read.consistencylevel" *
- وارد گره مدیریت سرور شوید.
- به دایرکتوری /opt/apigee/edge-management-server/conf تغییر دهید:
cd /opt/apigee/edge-management-server/conf
- مراحل 3 و 4 را تکرار کنید.
اگر گره های Cassandra اضافی را به خوشه اضافه کنید، سطح سازگاری تحت تأثیر قرار نمی گیرد.