ڈریگن فلائی 1.0 کی ریلیز، ایک ان میموری ڈیٹا کیشنگ سسٹم

ڈریگن فلائی ان میموری کیشنگ اور سٹوریج سسٹم جاری کیا گیا ہے، جو ڈیٹا کو کلید/ویلیو فارمیٹ میں ہیرپیٹ کرتا ہے اور اسے بہت زیادہ بھری ہوئی سائٹس کے کام کو تیز کرنے، DBMS پر سست سوالات کیش کرنے اور RAM میں انٹرمیڈیٹ ڈیٹا کے لیے ہلکے وزن کے حل کے طور پر استعمال کیا جا سکتا ہے۔ Dragonfly Memcached اور Redis پروٹوکول کو سپورٹ کرتا ہے، جو آپ کو موجودہ کلائنٹ لائبریریوں کو استعمال کرنے اور کوڈ کو دوبارہ کام کیے بغیر Memcached اور Redis کو Dragonfly میں منتقل کرنے کی اجازت دیتا ہے۔

Redis کے مقابلے میں، Dragonfly نے Amazon EC2 c6gn.16xlarge ماحول میں عام کام کے بوجھ کے لیے کارکردگی میں 25 گنا اضافہ (3.8 ملین درخواستیں فی سیکنڈ) حاصل کیا۔ AWS c6gn.16xlarge ماحول میں Memcached کے مقابلے میں، Dragonfly فی سیکنڈ 4.7 گنا زیادہ تحریری درخواستیں (3.8 ملین بمقابلہ 806 ہزار) اور 1.77 گنا زیادہ پڑھنے کی درخواستیں فی سیکنڈ (3.7 ملین بمقابلہ 2.1 ملین) کرنے میں کامیاب رہا۔

ڈریگن فلائی 1.0 کی ریلیز، ایک ان میموری ڈیٹا کیشنگ سسٹم

5 GB ڈیٹا کو ذخیرہ کرنے کے ٹیسٹوں میں، Dragonfly کو Redis کے مقابلے میں 30% کم میموری کی ضرورت تھی۔ "bgsave" کمانڈ کے ساتھ سنیپ شاٹس بناتے وقت، میموری کی کھپت بڑھ جاتی ہے، لیکن چوٹی کے لمحات میں یہ Redis کے مقابلے میں تقریباً تین گنا کم رہا، اور سنیپ شاٹ ریکارڈنگ کا عمل خود بہت تیز ہے (ٹیسٹ میں، ڈریگن فلائی میں ایک سنیپ شاٹ 30 میں لکھا گیا تھا۔ سیکنڈ، جبکہ Redis - 42 سیکنڈ میں)۔

ڈریگن فلائی 1.0 کی ریلیز، ایک ان میموری ڈیٹا کیشنگ سسٹم

وسائل کا اشتراک کیے بغیر کثیر تھریڈڈ آرکیٹیکچر کی بدولت اعلی کارکردگی حاصل کی جاتی ہے (شیئرڈ کچھ بھی نہیں)، جس کا مطلب ہے کہ ہر تھریڈ کو ڈیٹا کے اپنے حصے کے ساتھ ایک الگ الگ پروسیسر تفویض کیا جاتا ہے، بغیر میوٹیکس اور اسپن لاک کے کام کرتا ہے۔ ایک سے زیادہ کلیدوں کے ساتھ کام کرتے وقت ایٹمی ہونے کو یقینی بنانے کے لیے، ہلکے وزن والے VLL تالے استعمال کیے جاتے ہیں۔ میموری میں معلومات کو مؤثر طریقے سے ذخیرہ کرنے کے لیے، ڈیش ٹیبل ڈھانچہ استعمال کیا جاتا ہے، جو تقسیم شدہ ہیش ٹیبل کی ایک قسم کو نافذ کرتا ہے۔

ڈریگن فلائی کی کچھ خصوصیات:

  • کیشنگ موڈ، جو مفت میموری ختم ہونے کے بعد خود بخود پرانے ڈیٹا کو نئے ڈیٹا سے بدل دیتا ہے۔
  • زندگی بھر ڈیٹا کے پابند ہونے کے لیے سپورٹ جس کے دوران ڈیٹا کو متعلقہ سمجھا جاتا ہے۔
  • دوبارہ شروع کرنے کے بعد بعد میں ریکوری کے لیے بیک گراؤنڈ میں سٹوریج کی حالت کو فلش کرنے کے لیے سپورٹ۔
  • سسٹم مینیجمنٹ کے لیے HTTP کنسول کی موجودگی (TCP پورٹ 6379 سے منسلک ہے) اور ایک API واپسی میٹرکس کے لیے، جو Prometheus کے ساتھ ہم آہنگ ہے۔
  • 185 Redis کمانڈز کے لیے سپورٹ، جو تقریباً Redis 5 ریلیز کی فعالیت کے برابر ہے۔
  • CAS (چیک اینڈ سیٹ) کے علاوہ تمام Memcached کمانڈز کو سپورٹ کرتا ہے۔
  • سنیپ شاٹس بنانے کے لیے غیر مطابقت پذیر کارروائیوں کے لیے معاونت۔
  • متوقع میموری کی کھپت۔
  • بلٹ ان Lua 5.4 انٹرپریٹر۔
  • پیچیدہ ڈیٹا کی اقسام جیسے ہیش، سیٹ، فہرست (ZSET، HSET، LIST، SETS اور STRING) اور JSON ڈیٹا کو سپورٹ کرتا ہے۔
  • غلطی رواداری اور بوجھ کے توازن کے لیے سٹوریج کی نقل کی حمایت کرتا ہے۔

ڈریگن فلائی کوڈ C/C++ میں لکھا گیا ہے اور اسے BSL (بزنس سورس لائسنس) کے تحت تقسیم کیا گیا ہے۔ BSL لائسنس کو MySQL کے شریک بانی نے اوپن کور ماڈل کے متبادل کے طور پر تجویز کیا تھا۔ بی ایس ایل کا خلاصہ یہ ہے کہ جدید فعالیت کا کوڈ ابتدائی طور پر ترمیم کے لیے دستیاب ہے، لیکن کچھ وقت کے لیے مفت استعمال کیا جا سکتا ہے صرف اس صورت میں جب اضافی شرائط پوری ہو جائیں، جن کو روکنے کے لیے تجارتی لائسنس کی خریداری ضروری ہے۔ Dragonfly پروجیکٹ کے لیے لائسنس کی اضافی شرائط کے لیے کوڈ کو 2.0 مارچ 15 کو Apache 2028 لائسنس میں منتقل کرنے کی ضرورت ہے۔ اس وقت تک، لائسنس کوڈ کے استعمال کی اجازت صرف اس کی خدمات اور مصنوعات کے کام کو یقینی بنانے کے لیے دیتا ہے، لیکن بامعاوضہ کلاؤڈ سروسز کی تخلیق کے لیے استعمال کی ممانعت کرتا ہے جو ڈریگن فلائی میں اضافے کے طور پر کام کرتی ہیں۔

ورژن Dragonfly 1.0 پرائمری سرور سے سیکنڈری سرور تک ڈیٹا کی نقل کے لیے سپورٹ کے نفاذ کے لیے قابل ذکر ہے۔ تاہم، ڈریگن فلائی کو ثانوی اسٹوریج کے طور پر استعمال کرنے کے لیے کنفیگر کیا جا سکتا ہے جو پرائمری سرور سے ڈیٹا حاصل کرتا ہے یا تو ڈریگن فلائی کی بنیاد پر یا ریڈیس کی بنیاد پر۔ ریپلیکیشن مینجمنٹ API Redis کے ساتھ مطابقت رکھتا ہے اور یہ ROLE اور REPLICAOF (SLAVEOF) کمانڈز کے استعمال پر مبنی ہے۔

ماخذ: opennet.ru

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