تغییرات کاساندرا در نسخه های سری 2x و 3x

در نسخه 2 تغییرات کاساندرا بسیار زیادی بوده و حاصل یک پروسه 5 ساله کار بر روی این پایگاه داده می باشد . همچنین بهبودهای آشکاری بر روی کارایی این پایگاه داده مشهود است. پیشرفت اصلی در کاساندرا 2 بر روی CQL ، بهبود کارائی و  امنیت صورت پذیرفته است . CQL چندین قابلیت مهم را از جمله Batching  شرط های به روز رسانی و ستون های ایستا و کنترل بیشتر بر روی برش هایی از ستون های کلاستر را ارائه نموده است.

مزایایی کاساندرا
Cassandra Advantages

قابلیت های کلیدی در کاساندرا 2 عبارتند از :

  • پشتیبانی از تراکنش های lightweight

استفاده از کلمه کلیدی IF در CQL در دستورات شرطی Insert و Update و یک مرحله جدید سازگاری سریال (SERIAL consistency )

INSERT INTO customer_account (customerID, customer_email)
VALUES (‘LauraS’, ‘lauras@gmail.com’)
IF NOT EXISTS;

UPDATE customer_account
SET customer_email=’laurass@gmail.com’
IF customer_email=’lauras@gmail.com’;

 

  • Triggers

نسخه 2.0 از کاساندرا از تریگر ها پشتیبانی می کند. یک تریگر به توسعه دهندگان اجازه می دهد که یک رویداد را اجرا کنند که مجموعه ای از منطق برنامه ای را اجرا می کند که در داخل یا خارج از خوشه پایگاه داده اجرا می شود.

 

  • بهبود در CQL که شامل موارد زیر می باشد.
  • پشتیبانی از CQL paging

Paging یک نتیجه از شروط select بر روی CQL native protocol 2 connection اجرا می گردد. حذف برخط از نتایج با استفاده از یک تابع رمز برای صفحه های از نتایج می باشد. به عنوان مثال خروجی داده در این جدول ، یک شرط ساده select تشکیل شده است در صورتی که در نسخه های قبل از پیچیدگی زیادی برخوردار بود :

  • پشتیبانی از شروط آماده (Prepared statement ):

Batch Atomic ،شروط آماده برای مجموعه  را تضمین می نماید. One-Shoot Binding یک قابلیت برای متغییرها و شروط آماده و متغییرهایی که در درخواست های پارس سمت سرور می باشند و اجرای آنها به وسیله پیام های  Batch  که حاوی لیستی از پرس و جوهای رشته ای که مجدد پارس نشده اند می باشند.

  • پشتیبانی از Bind متغییرها :

پشتیبانی از Time to live و LIMIT در شرط ها مانند زیر

SELECT * FROM stock_ticks LIMIT ?;

UPDATE stock_ticks USING TTL ? SET v = 100 WHERE ticker_id = ‘NFLX’;

  • بهبود مکانیزم هویت سنجی :

پشتیبانی از SASL برای بهبود شناسایی هویت و ساده تر نمودن آن بر روی نسخه های جدید CQL native protocol موجود است .

  • پشتیبانی از Drop Column

معرفی مجدد دستور ALTER TABLE DROP به صورت مثال زیر:

ALTER TABLE emp DROP emp_second_address

 

  • Select ستون های Allias

پشتیبانی از Column Aliases در دستورات   Select همانند aliases در پایگاه داده های رابطه ای

 

SELECT hdate AS hired_date

  FROM emp WHERE empid = 500

 

  • شروط DDL

شروط تستی برای موجودیت جداول ،keyspace و index ها قبل از دستورات DROP و CREATE می توان از دستورات IF EXISTS و یا IF NOT EXISTS بهره برد .

DROP KEYSPACE IF EXISTS my_ks.

  • پیشرفت اندیکس ثانویه

توسعه دهندگان و مدیران می توانند شاخص های ثانویه ای را روی ستون هایی که در تعریف  primary key  قرار دارند، ایجاد کنند که در نسخه های قبلی کاساندرا امکان پذیر نبود.

  • One-off نمودن دستورات اجرایی و آماده

استفاده از دستورات آماده ، هر گاه یک پرس و جو برای پاس کردن مقادیر  باینری برای دستورات اجرا می گردد . برای مثال برای جلوگیری از تبدیل یک نوع blob به string بر روی ارتباط native protocol version 2 .

  • بهبود کارایی

 پیشرفت های مربوط به عملکرد در Cassandra 2.0 داده شده است که عبارتند از:

  • پشتیبانی از Eager retries

اگر یک replica به طور غیرعادی در ارائه اطلاعات مورد نیاز آهسته باشد، درخواست کاربر به سایر کپی ها ارسال می شود در حالی که هنوز زمان لازم برای انجام این کار قبل از زمان بندی پرس و جو وجود دارد.

  • بهبود تراکم

فشرده سازی ترکیبی (leveled و size-tiered ) برای استراتژی فشرده سازی مرحله ای، برای کم کردن overhead کارایی جهت عملگرهای خواندن زمانی که با بارگزاری سنگین  عملیات نوشتن، می تواند سرعت را حفظ نماید.

 

تغییرات دیگر در کاساندرا 2.0

  • دستورات جدید برای غیرفعال نمودن فشرده سازی که در پس ضمینه

nodetool disableautocompaction و nodetool enableautocompaction

  • یک تغییر در انتخاب token تصادفی در طول برپاسازی کلاستر

Auto_bootstrapping یک token  گره با نداشتن initial_token

  • حذف پشتیبانی از super column

پشتیبانی از نرم افزارهایی که پرس و جو ها را بر روی super column را انجام می دهد و ترجمه super column  ها را در ساختار cql به صورت on the fly  انجام می دهند و نتایج آنها  ، ادامه دارد .

  • حذف دستور cqlsh ASSUME
  • این دستور برای توابع تبدیل blobAsType و typeAsBlob استفاده می شود.
  • دستورات Cqlsh COPY برای پشتیبانی از مجموعه ها
  • گنجاندن نسخه پروتوکل بومی در جدول local
  • گنجاندن default_time_to_live ، speculative_retry و memtable_flush_period_in_ms در خروجی جداول  cqlsh
  • پشتیبانی از یک لیست خالی از مقادیر IN جز شروط دستورات SELECT, UPDATE و DELETE ، استفاده کامل از نرم افزارهای راه انداز جاوا  زمانی که آرایه خالی از آرگومان ها جز IN باشد .

تغییرات کاساندرا نسخه 3 را  در اینجا بخوانید

منبع:

https://www.datastax.com/wp-content/uploads/2013/09/WP-DataStax-WhatsNewC2.0.pdf

آدرس کانال تلگرام ما:

t.me/bigdata_channel
برای ورود به کانال بر روی اینجا کلیک کنید.

 

Visits: 445

دیدگاهتان را بنویسید