پے پال نے جونو ڈی بی ڈی بی ایم ایس کوڈ کھولا۔

پے پال نے غلطی برداشت کرنے والے DBMS JunoDB کا سورس کوڈ کھول دیا ہے، جو ڈیٹا کو کلیدی قدر کی شکل میں ہیر پھیر کرتا ہے۔ سسٹم کو ابتدائی طور پر ہائی سیکیورٹی، افقی اسکیل ایبلٹی، فالٹ ٹولرنس، اور پیشین گوئی کی تاخیر کو ذہن میں رکھتے ہوئے بیک وقت لاکھوں کنکشنز کو ہینڈل کرنے کی صلاحیت کے ساتھ ڈیزائن کیا گیا تھا۔ پے پال میں، صارف کے لاگ ان سے لے کر مالیاتی لین دین کی کارروائی تک تقریباً تمام خدمات جونو ڈی بی سے منسلک ہیں۔ پروجیکٹ کوڈ گو (ایک جاوا کلائنٹ لائبریری) میں لکھا گیا ہے اور اپاچی 2.0 لائسنس کے تحت تقسیم کیا گیا ہے۔ مزید ترقی کمیونٹی سے اصلاحات، بہتری اور تبدیلیوں کو قبول کرے گی۔

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

پے پال نے جونو ڈی بی ڈی بی ایم ایس کوڈ کھولا۔

ڈیٹا کو تقسیم کیا جاتا ہے اور ہیشنگ کا استعمال کرتے ہوئے سٹوریج نوڈس سے منسلک کیا جاتا ہے، جو کلسٹر میں نوڈس کے بڑھنے یا سکڑنے کے ساتھ ڈیٹا کی نقل و حرکت کو کم کرتا ہے۔ غلطی کی رواداری کو یقینی بنانے کے لیے، ڈیٹا کے ہر ٹکڑے کو کئی اسٹوریج نوڈس پر نقل کیا جاتا ہے، جو آپ کو انفرادی سرورز کے ناکام ہونے پر معلومات کو محفوظ کرنے کی اجازت دیتا ہے۔ جغرافیائی طور پر تقسیم شدہ اسٹوریج کی تخلیق کی حمایت کی جاتی ہے، جس میں نوڈس کے گروپ مختلف ڈیٹا سینٹرز میں واقع ہیں.

پے پال نے جونو ڈی بی ڈی بی ایم ایس کوڈ کھولا۔

ڈیٹا سٹوریج نوڈس پر، وہ RAM میں یا RocksDB لائبریری کی بنیاد پر مقامی اسٹوریج میں واقع ہوتے ہیں۔ جب مستقل طور پر ذخیرہ کیا جاتا ہے تو، ڈیٹا کو خفیہ کردہ شکل میں ذخیرہ کیا جاتا ہے (انکرپشن کلید یا تو کلائنٹ کے ذریعہ متعین کی جاسکتی ہے یا پراکسی سطح پر سیٹ کی جاسکتی ہے)۔

پے پال نے جونو ڈی بی ڈی بی ایم ایس کوڈ کھولا۔

ایپلی کیشنز سے ڈیٹا بیس تک رسائی کے لیے، ایک کلائنٹ لائبریری فراہم کی جاتی ہے جو Java، Go اور C++ میں ایپلی کیشنز کے لیے API فراہم کرتی ہے۔ کلائنٹ کے حصے کو زیادہ سے زیادہ آسان بنایا جاتا ہے، اور جب بھی ممکن ہو پیچیدہ منطق اور ترتیبات کو DBMS کی طرف منتقل کیا جاتا ہے۔ کلائنٹ اور بیلنسر یا پراکسی کے درمیان تعامل ایک انکرپٹڈ کمیونیکیشن چینل کے ذریعے کیا جاتا ہے۔ درخواستوں کا نظم کرنے اور بھیجنے کے لیے، آپ کمانڈ لائن انٹرفیس استعمال کر سکتے ہیں، جو کلائنٹ API کی تمام صلاحیتوں کو نقل کرتا ہے۔

یہ نظام پیشین گوئی کے قابل کم تاخیر کے ساتھ درخواستوں پر کارروائی کرنے کے لیے ڈیزائن کیا گیا ہے، مثال کے طور پر، تین سٹوریج نوڈس اور ایک پراکسی کا ایک کلسٹر، جو n1-highmem-32 ماحولیات (32 Intel Xeon 2.30GHz CPUs، 214G RAM اور 450G SSD پر مبنی اسٹوریج) سے بنا ہے۔ , 2.5 ہزار بیک وقت TLS کنکشنز اور 95 ہزار درخواستوں کا بہاؤ فی سیکنڈ (16 بیک وقت کنکشنز اور 99 ہزار درخواستوں کے بہاؤ کے ساتھ) 200% معاملات میں 15 ms سے زیادہ نہ ہونے والی مقررہ تاخیر اور 3000% میں 80 ms فراہم کرنے کے قابل تھا۔ فی سیکنڈ، 6% معاملات میں تاخیر 95 ms اور 15% میں 99 ms سے زیادہ نہیں ہوئی)۔ پے پال میں، جونو ڈی بی پر مبنی خدمات روزانہ تقریباً 350 بلین درخواستیں پیش کرتی ہیں۔

پے پال نے جونو ڈی بی ڈی بی ایم ایس کوڈ کھولا۔


ماخذ: opennet.ru

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