SQLite کے ڈویلپرز متوازی تحریروں کی حمایت کے ساتھ HC-tree backend تیار کرتے ہیں۔

SQLite پروجیکٹ کے ڈویلپرز نے ایک تجرباتی HCtree بیک اینڈ کی جانچ شروع کر دی ہے جو قطار کی سطح کی لاکنگ کو سپورٹ کرتا ہے اور استفسارات پر کارروائی کرتے وقت متوازی کی اعلی سطح فراہم کرتا ہے۔ نئے بیک اینڈ کا مقصد کلائنٹ سرور سسٹمز میں SQLite کے استعمال کی کارکردگی کو بہتر بنانا ہے جس کو ڈیٹا بیس میں بیک وقت تحریری درخواستوں کی ایک بڑی تعداد پر کارروائی کرنی پڑتی ہے۔

ڈیٹا کو ذخیرہ کرنے کے لیے SQLite میں مقامی طور پر استعمال ہونے والے b-tree کے ڈھانچے اس قسم کے بوجھ کے لیے ڈیزائن نہیں کیے گئے ہیں، جو SQLite کو صرف ایک دھاگے میں لکھنے تک محدود کرتا ہے۔ ایک تجربے کے طور پر، ڈویلپرز نے ایک متبادل حل تیار کرنا شروع کیا جو اسٹوریج کے لیے HC-tree ڈھانچے کا استعمال کرتا ہے، جو تحریری کارروائیوں کو متوازی کرنے کے لیے زیادہ موزوں ہیں۔

متعدد کارروائیوں کو بیک وقت چلانے کی اجازت دینے کے لیے، ایک HCtree ریکارڈ ایک ٹرانزیکشن پارٹیشننگ میکانزم کا استعمال کرتا ہے جو پیج لیول لاکنگ کا استعمال کرتا ہے اور یہ MVCC (ملٹی ورژن کنکرنسی کنٹرول) سے ملتا جلتا ہے لیکن صفحہ سیٹ کے بجائے کلیدوں اور کلیدی حدود کی بنیاد پر ٹرانزیکشن چیک کا استعمال کرتا ہے۔ پڑھنے اور لکھنے کی کارروائیاں ڈیٹا بیس کے اسنیپ شاٹ کے سلسلے میں کی جاتی ہیں، جن میں تبدیلیاں لین دین مکمل ہونے کے بعد ہی مرکزی ڈیٹا بیس میں نظر آتی ہیں۔

کلائنٹ تین اوپن ٹرانزیکشن آپریشنز استعمال کر سکتے ہیں:

  • "شروع کریں" - لین دین دوسرے کلائنٹس کے اکاؤنٹ تک رسائی کے ڈیٹا کو نہیں لیتے ہیں۔ اگر تحریری کارروائیاں کسی لین دین کے اندر انجام دی جاتی ہیں، تو لین دین صرف اس صورت میں کیا جا سکتا ہے جب اس کے عمل کے دوران ڈیٹا بیس میں تحریری کارروائیاں نہ ہوں۔
  • "ابتدائی اتفاق" - لین دین دوسرے کلائنٹس کی رسائی کے بارے میں معلومات اکٹھا کرتے ہیں۔ اگر تحریری کارروائیاں کسی لین دین کے اندر انجام دی جاتی ہیں، تو لین دین کا ارتکاب کیا جا سکتا ہے اگر اسنیپ شاٹ بننے کے بعد ڈیٹا بیس میں دیگر لین دین کیے گئے ہوں۔
  • "خصوصی طور پر شروع کریں" - ایک ٹرانزیکشن کھولنے کے بعد، یہ دوسرے ٹرانزیکشنز کو مکمل ہونے تک روک دیتا ہے۔

HCtree ماسٹر غلام نقل کی حمایت کرتا ہے، جو آپ کو لین دین کو دوسرے ڈیٹا بیس میں منتقل کرنے اور ثانوی ڈیٹا بیس کو بنیادی ڈیٹا بیس کے ساتھ مطابقت پذیر رکھنے کی اجازت دیتا ہے۔ HCtree ڈیٹا بیس کے سائز کی حد کو بھی ہٹاتا ہے - 32 بٹ ڈیٹا پیج شناخت کنندگان کے بجائے، HCtree 48 بٹ والے استعمال کرتا ہے، جو ڈیٹا بیس کا زیادہ سے زیادہ سائز 16 ٹیبی بائٹس سے بڑھا کر 1 ایکسبی بائٹ (ملین ٹیبی بائٹس) کر دیتا ہے۔ توقع ہے کہ HCtree بیک اینڈ کے ساتھ SQLite کی کارکردگی کلاسک سنگل تھریڈڈ بیک اینڈ سے کم نہیں ہوگی۔ HCtree سپورٹ والے SQLite کلائنٹس HC-tree-based database اور legacy SQLite ڈیٹا بیس دونوں تک رسائی حاصل کر سکیں گے۔

ماخذ: opennet.ru

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