Apache Cassandra 4.0 DBMS موجود است

بنیاد نرم‌افزار آپاچی انتشار DBMS توزیع‌شده Apache Cassandra 4.0 را ارائه کرد که به کلاس سیستم‌های noSQL تعلق دارد و برای ایجاد ذخیره‌سازی بسیار مقیاس‌پذیر و قابل اعتماد از مقادیر عظیمی از داده‌های ذخیره شده در قالب یک آرایه انجمنی (هش) طراحی شده است. نسخه Cassandra 4.0 آماده اجرای تولید در نظر گرفته شده است و قبلاً در زیرساخت‌های Amazon، Apple، DataStax، Instaclustr، iland و Netflix با خوشه‌های بیش از 1000 نود آزمایش شده است. کد پروژه به زبان جاوا نوشته شده و تحت مجوز آپاچی 2.0 توزیع شده است.

Cassandra DBMS ابتدا توسط فیس بوک توسعه داده شد و در سال 2009 تحت نظارت بنیاد آپاچی منتقل شد. راه‌حل‌های صنعتی مبتنی بر Cassandra برای خدمات رسانی از شرکت‌هایی مانند Apple، Adobe، CERN، Cisco، IBM، HP، Comcast، Disney، eBay، Huawei، Netflix، Sony، Rackspace، Reddit و Twitter به کار گرفته شده‌اند. به عنوان مثال، زیرساخت ذخیره سازی مبتنی بر آپاچی کاساندرا که توسط اپل مستقر شده است، دارای بیش از هزار خوشه، شامل 160 هزار گره و ذخیره بیش از 100 پتابایت داده است. هواوی از بیش از 300 خوشه آپاچی کاساندرا استفاده می کند که شامل 30 هزار گره است و نتفلیکس از بیش از 100 خوشه استفاده می کند که 10 هزار گره را پوشش می دهد و بیش از یک تریلیون درخواست را در روز پردازش می کند.

Cassandra DBMS یک سیستم هش دینامو کاملاً توزیع شده را ترکیب می کند که با افزایش حجم داده، مقیاس پذیری تقریباً خطی را فراهم می کند. کاساندرا از یک مدل ذخیره‌سازی داده مبتنی بر خانواده ستونی (ColumnFamily) استفاده می‌کند، که با سیستم‌هایی مانند memcachedb که داده‌ها را فقط در یک زنجیره کلید/مقدار ذخیره می‌کند، با توانایی سازمان‌دهی ذخیره‌سازی هش‌ها با چندین سطح تودرتو متفاوت است. برای ساده کردن تعامل با پایگاه داده، زبان پرس و جو ساخت یافته CQL (Cassandra Query Language) پشتیبانی می شود که یادآور SQL است، اما عملکرد آن کاهش یافته است. ویژگی ها شامل پشتیبانی از فضاهای نام و خانواده ستون ها و ایجاد نمایه ها با استفاده از عبارت "CREATE INDEX" است.

DBMS به شما امکان می دهد تا ذخیره سازی مقاوم در برابر خرابی ایجاد کنید: داده های قرار داده شده در پایگاه داده به طور خودکار به چندین گره از یک شبکه توزیع شده تکثیر می شوند که می توانند مراکز داده مختلف را در بر گیرند. هنگامی که یک گره از کار می افتد، توابع آن در پرواز توسط گره های دیگر انتخاب می شود. افزودن گره‌های جدید به خوشه و به‌روزرسانی نسخه کاساندرا بدون دخالت دستی اضافی یا پیکربندی مجدد سایر گره‌ها، به سرعت انجام می‌شود. درایورهایی با پشتیبانی CQL برای Python، Java (JDBC/DBAPI2)، Ruby، PHP، C++ و JavaScript (Node.js) آماده شده اند.

نوآوری های اصلی:

  • بهبود عملکرد و مقیاس پذیری. کارایی تبادل داده در قالب SSTable (جدول رشته های مرتب شده) بین گره ها بهبود یافته است. پروتکل پیام رسانی Internode بهینه شده است. سرعت انتقال داده ها بین گره ها تا 5 برابر افزایش یافته است (عمدتاً به دلیل استفاده از تکنیک Zero Copy و انتقال کل SSTables) و توان عملیات خواندن و نوشتن به 25٪ افزایش یافته است. فرآیند بازیابی افزایشی بهینه شده است. تأخیرهای ناشی از توقف جمع آوری زباله به چند میلی ثانیه کاهش می یابد.
  • پشتیبانی از گزارش حسابرسی اضافه شده است که به شما امکان می دهد عملیات احراز هویت کاربر و تمام درخواست های CQL اجرا شده را ردیابی کنید.
  • قابلیت نگهداری یک گزارش درخواست باینری کامل را اضافه کرد که به شما امکان می دهد تمام ترافیک درخواست و پاسخ را ذخیره کنید. برای مدیریت، دستورات "nodetool enablefullquerylog|disablefullquerylog|resetfullquerylog" پیشنهاد شده است، و ابزار fqltool برای تجزیه و تحلیل گزارش ارائه شده است. دستوراتی برای تبدیل لاگ به یک فرم قابل خواندن (Dump)، مقایسه برش های فعالیت (مقایسه) و اجرای مجدد (Replay) برای تجزیه و تحلیل که شرایط ذاتی بار واقعی را بازتولید می کند، ارائه شده است.
  • پشتیبانی از جداول مجازی اضافه شده است که نه داده‌های ذخیره‌شده در SSTables، بلکه خروجی اطلاعات از طریق API (معیارهای عملکرد، اطلاعات تنظیمات، محتوای حافظه پنهان، اطلاعات مربوط به مشتریان متصل و غیره) را منعکس می‌کنند.
  • کارایی ذخیره سازی داده های فشرده بهبود یافته است، مصرف فضای دیسک را کاهش داده و عملکرد خواندن را بهبود می بخشد.
  • داده‌های مربوط به فضای کلید سیستم (system.*) اکنون به‌جای توزیع در تمام فهرست‌های داده در فهرست اول به‌طور پیش‌فرض قرار می‌گیرند، که به گره اجازه می‌دهد در صورت خرابی یکی از دیسک‌های اضافی، عملیاتی باقی بماند.
  • پشتیبانی آزمایشی برای تکرار گذرا و حد نصاب های ارزان اضافه شد. کپی‌های موقت همه داده‌ها را ذخیره نمی‌کنند و از بازیابی افزایشی برای سازگاری با کپی‌های کامل استفاده می‌کنند. حد نصاب های نور بهینه سازی نوشتن را اجرا می کنند که در آن هیچ نوشته ای روی کپی های موقتی تا زمانی که مجموعه کافی از کپی های کامل در دسترس نباشد، نوشته نمی شود.
  • اضافه شدن پشتیبانی آزمایشی برای جاوا 11.
  • گزینه آزمایشی برای مقایسه همه درختان مرکل اضافه شد. به عنوان مثال، فعال کردن گزینه در یک خوشه 3 گرهی که در آن دو ماکت یکسان و یکی قدیمی است، منجر به به روز رسانی ماکت قدیمی تنها با استفاده از یک عملیات کپی از ماکت فعلی می شود.
  • اضافه شدن توابع جدید currentTimestamp، currentDate، currentTime و currentTimeUUID.
  • پشتیبانی از عملیات حسابی در جستارهای CQL اضافه شده است.
  • امکان انجام عملیات محاسباتی بین داده ها با انواع “timestamp”/”date” و “duration” فراهم شده است.
  • یک حالت برای پیش‌نمایش جریان‌های داده مورد نیاز برای بازیابی (تعمیر nodetool - پیش‌نمایش) و توانایی بررسی یکپارچگی داده‌های در حال بازیابی (تعمیر nodetool - اعتبارسنجی) اضافه شده است.
  • پرس و جوهای SELECT اکنون توانایی پردازش عناصر Map و Set را دارند.
  • پشتیبانی اضافه شده برای موازی سازی مرحله ساخت و ساز اولیه نماهای مادی شده (cassandra.yaml:concurrent_materialized_view_builders).
  • دستور "nodetool cfstats" پشتیبانی از مرتب سازی بر اساس معیارهای خاص و محدود کردن تعداد ردیف های نمایش داده شده را اضافه کرده است.
  • تنظیماتی برای محدود کردن اتصال کاربر به مراکز داده خاص ارائه شده است.
  • قابلیت محدود کردن شدت (محدودیت نرخ) ایجاد عکس فوری و عملیات پاکسازی اضافه شده است.
  • cqlsh و cqlshlib اکنون از پایتون 3 پشتیبانی می کنند (پایتون 2.7 هنوز پشتیبانی می شود).
  • پشتیبانی از پلتفرم ویندوز قطع شده است. برای اجرای Cassandra در ویندوز، توصیه می شود از محیط های لینوکس ایجاد شده بر اساس زیرسیستم WSL2 (Windows Subsystem for Linux 2) یا سیستم های مجازی سازی استفاده کنید.



منبع: opennet.ru

اضافه کردن نظر