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 اصل میں Facebook کی طرف سے تیار کیا گیا تھا اور 2009 میں اپاچی فاؤنڈیشن کے زیر اہتمام منتقل کیا گیا تھا۔ Cassandra پر مبنی صنعتی حل ایپل، Adobe، CERN، Cisco، IBM، HP، Comcast، Disney، eBay، Huawei، Netflix، Sony، Rackspace، Reddit اور Twitter جیسی کمپنیوں کی پاور سروسز میں تعینات کیے گئے ہیں۔ مثال کے طور پر، ایپل کی طرف سے تعینات اپاچی کیسینڈرا پر مبنی اسٹوریج انفراسٹرکچر میں ایک ہزار سے زیادہ کلسٹرز ہیں، جن میں 160 ہزار نوڈس شامل ہیں اور 100 پیٹا بائٹس سے زیادہ ڈیٹا کو اسٹور کیا گیا ہے۔ Huawei 300 سے زیادہ Apache Cassandra کلسٹرز استعمال کرتا ہے، جو 30 ہزار نوڈس پر مشتمل ہے، اور Netflix 100 سے زیادہ کلسٹرز کا استعمال کرتا ہے، جو 10 ہزار نوڈس کا احاطہ کرتا ہے اور روزانہ ایک ٹریلین سے زیادہ درخواستوں پر کارروائی کرتا ہے۔

Cassandra DBMS مکمل طور پر تقسیم شدہ Dynamo ہیش سسٹم کو یکجا کرتا ہے، جو ڈیٹا کے حجم میں اضافے کے ساتھ تقریباً لکیری اسکیل ایبلٹی فراہم کرتا ہے۔ کیسینڈرا کالم فیملی (کالم فیملی) پر مبنی ڈیٹا سٹوریج ماڈل کا استعمال کرتی ہے، جو کہ memcachedb جیسے سسٹمز سے مختلف ہے، جو ڈیٹا کو صرف ایک کلیدی/ویلیو چین میں اسٹور کرتا ہے، جس میں کئی سطحوں کے گھونسلے کے ساتھ ہیش کے ذخیرہ کو منظم کرنے کی صلاحیت ہے۔ ڈیٹا بیس کے ساتھ تعامل کو آسان بنانے کے لیے، سٹرکچرڈ استفسار لینگویج CQL (Cassandra Query Language) کو سپورٹ کیا جاتا ہے، جو SQL کی یاد دلاتا ہے، لیکن فعالیت میں کم ہے۔ خصوصیات میں نام کی جگہوں اور کالم فیملیز کے لیے سپورٹ، اور "CREATE INDEX" اظہار کا استعمال کرتے ہوئے اشاریہ جات کی تخلیق شامل ہے۔

DBMS آپ کو ناکامی سے بچنے والا اسٹوریج بنانے کی اجازت دیتا ہے: ڈیٹا بیس میں رکھا ڈیٹا خود بخود تقسیم شدہ نیٹ ورک کے کئی نوڈس پر نقل کیا جاتا ہے، جو مختلف ڈیٹا سینٹرز تک پھیل سکتا ہے۔ جب کوئی نوڈ ناکام ہوجاتا ہے، تو اس کے افعال دوسرے نوڈس کے ذریعے مکھی پر اٹھائے جاتے ہیں۔ کلسٹر میں نئے نوڈس کو شامل کرنا اور کیسینڈرا ورژن کو اپ ڈیٹ کرنا بغیر کسی اضافی دستی مداخلت کے یا دوسرے نوڈس کو دوبارہ ترتیب دینے کے فلائی پر کیا جاتا ہے۔ CQL سپورٹ والے ڈرائیورز Python، Java (JDBC/DBAPI2)، Ruby، PHP، C++ اور JavaScript (Node.js) کے لیے تیار ہیں۔

اہم اختراعات:

  • بہتر کارکردگی اور اسکیل ایبلٹی۔ نوڈس کے درمیان SSTable (Sorted Strings Table) فارمیٹ میں ڈیٹا ایکسچینج کی کارکردگی کو بہتر بنایا گیا ہے۔ انٹرنوڈ میسجنگ پروٹوکول کو بہتر بنایا گیا ہے۔ نوڈس کے درمیان ڈیٹا اسٹریمز کی منتقلی کی رفتار 5 گنا تک بڑھ گئی ہے (بنیادی طور پر زیرو کاپی تکنیک کے استعمال اور پورے SSTables کی منتقلی کی وجہ سے)، اور پڑھنے اور لکھنے کے آپریشنز کے لیے تھرو پٹ بڑھ کر 25% ہو گیا ہے۔ اضافی بحالی کے عمل کو بہتر بنایا گیا ہے۔ کوڑا اٹھانے کے موقوف کی وجہ سے تاخیر چند ملی سیکنڈ تک کم ہو جاتی ہے۔
  • ایک آڈٹ لاگ کے لیے سپورٹ شامل کیا گیا ہے جو آپ کو صارف کی توثیق کے آپریشنز اور CQL کے تمام استفسارات کو ٹریک کرنے کی اجازت دیتا ہے۔
  • ایک مکمل بائنری درخواست لاگ کو برقرار رکھنے کی صلاحیت شامل کی گئی، جس سے آپ تمام درخواستوں اور جوابی ٹریفک کو محفوظ کر سکتے ہیں۔ نظم و نسق کے لیے، "nodetool enablefullquerylog|disablefullquerylog|resetfullquerylog" کمانڈز تجویز کیے گئے ہیں، اور لاگ تجزیہ کے لیے fqltool یوٹیلیٹی فراہم کی گئی ہے۔ لاگ کو پڑھنے کے قابل شکل (Dump) میں تبدیل کرنے، سرگرمی کے ٹکڑوں کا موازنہ (موازنہ) کرنے اور حقیقی بوجھ میں شامل حالات کو دوبارہ پیش کرنے کے تجزیے کے لیے دوبارہ عمل درآمد (ری پلے) کے لیے کمانڈز فراہم کیے جاتے ہیں۔
  • ورچوئل ٹیبلز کے لیے شامل کیا گیا سپورٹ جو SSTables میں ذخیرہ شدہ ڈیٹا کی عکاسی نہیں کرتا، بلکہ API (کارکردگی میٹرکس، سیٹنگز کی معلومات، کیشے کے مواد، منسلک کلائنٹس کے بارے میں معلومات وغیرہ) کے ذریعے معلومات کی پیداوار کو ظاہر کرتا ہے۔
  • کمپریسڈ ڈیٹا اسٹوریج کی کارکردگی کو بہتر بنایا گیا ہے، ڈسک کی جگہ کی کھپت کو کم کرنے اور پڑھنے کی کارکردگی کو بہتر بنایا گیا ہے۔
  • سسٹم کی اسپیس (سسٹم) سے متعلق ڈیٹا اب تمام ڈیٹا ڈائرکٹریز میں تقسیم کیے جانے کے بجائے ڈیفالٹ کے طور پر پہلی ڈائرکٹری میں رکھا جاتا ہے، جو اضافی ڈسکوں میں سے ایک ناکام ہونے پر نوڈ کو فعال رہنے کی اجازت دیتا ہے۔
  • عارضی نقل اور سستے کورم کے لیے تجرباتی تعاون شامل کیا گیا۔ عارضی نقلیں تمام ڈیٹا کو ذخیرہ نہیں کرتی ہیں اور مکمل نقلوں کے ساتھ مطابقت رکھنے کے لیے اضافی بحالی کا استعمال کرتی ہیں۔ ہلکے کورم تحریری اصلاح کو نافذ کرتے ہیں جس میں عارضی نقلوں پر کوئی تحریر نہیں کی جاتی جب تک کہ مکمل نقلوں کا کافی سیٹ دستیاب نہ ہو۔
  • جاوا 11 کے لیے تجرباتی تعاون شامل کیا گیا۔
  • تمام مرکل درختوں کا موازنہ کرنے کے لیے تجرباتی آپشن شامل کیا گیا۔ مثال کے طور پر، 3-نوڈ کلسٹر پر آپشن کو فعال کرنا جس میں دو نقلیں ایک جیسی ہیں اور ایک باسی ہے، اس کے نتیجے میں موجودہ نقل کی صرف ایک کاپی آپریشن کا استعمال کرتے ہوئے باسی نقل کی تازہ کاری ہوگی۔
  • نئے فنکشنز کرنٹ ٹائم سٹیمپ، کرنٹ ڈیٹ، کرنٹ ٹائم اور کرنٹ ٹائم یو یو آئی ڈی شامل کیے گئے۔
  • CQL سوالات میں ریاضی کی کارروائیوں کے لیے معاونت شامل کی گئی۔
  • "ٹائم اسٹیمپ"/"تاریخ" اور "دورانیہ" کی اقسام کے ساتھ ڈیٹا کے درمیان ریاضی کے عمل کو انجام دینے کی صلاحیت فراہم کی گئی ہے۔
  • ریکوری کے لیے درکار ڈیٹا اسٹریمز کا پیش نظارہ کرنے کے لیے ایک موڈ شامل کیا گیا (نوڈ ٹول مرمت —پیش نظارہ) اور بحال کیے جانے والے ڈیٹا کی سالمیت کو چیک کرنے کی صلاحیت (نوڈ ٹول ریپیر —ویلیٹیٹ)۔
  • SELECT سوالات میں اب نقشہ اور سیٹ عناصر پر کارروائی کرنے کی صلاحیت ہے۔
  • مادی خیالات کے ابتدائی تعمیراتی مرحلے کو متوازی بنانے کے لیے مدد شامل کی گئی (cassandra.yaml:concurrent_materialized_view_builders)۔
  • "nodetool cfstats" کمانڈ نے مخصوص میٹرکس کے مطابق ترتیب دینے اور دکھائی جانے والی قطاروں کی تعداد کو محدود کرنے کے لیے تعاون شامل کیا ہے۔
  • صارف کے کنکشن کو صرف مخصوص ڈیٹا سینٹرز تک محدود کرنے کے لیے ترتیبات فراہم کی جاتی ہیں۔
  • سنیپ شاٹ بنانے اور کلیئرنگ آپریشنز کی شدت (شرح کی حد) کو محدود کرنے کی صلاحیت شامل کی گئی۔
  • cqlsh اور cqlshlib اب Python 3 کو سپورٹ کرتے ہیں (Python 2.7 اب بھی سپورٹ ہے)۔
  • ونڈوز پلیٹ فارم کے لیے سپورٹ بند کر دی گئی ہے۔ کیسینڈرا کو ونڈوز پر چلانے کے لیے، WSL2 سب سسٹم (Windows Subsystem for Linux 2) یا ورچوئلائزیشن سسٹمز کی بنیاد پر بنائے گئے لینکس ماحول کو استعمال کرنے کی سفارش کی جاتی ہے۔



ماخذ: opennet.ru

نیا تبصرہ شامل کریں