تغییرات کاساندرا در نسخه های سری 2x و 3x
در نسخه 2 تغییرات کاساندرا بسیار زیادی بوده و حاصل یک پروسه 5 ساله کار بر روی این پایگاه داده می باشد . همچنین بهبودهای آشکاری بر روی کارایی این پایگاه داده مشهود است. پیشرفت اصلی در کاساندرا 2 بر روی CQL ، بهبود کارائی و امنیت صورت پذیرفته است . CQL چندین قابلیت مهم را از جمله Batching شرط های به روز رسانی و ستون های ایستا و کنترل بیشتر بر روی برش هایی از ستون های کلاستر را ارائه نموده است.
قابلیت های کلیدی در کاساندرا 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
برای ورود به کانال بر روی اینجا کلیک کنید.
بازدیدها: 446
برچسبتغییرات کاساندرا کاساندرا نسخه 2 کاساندرا نسخه 3