ایرو اسپائک VS. ریڈیس ، کیس اسٹڈیز

Aerospike Vs Redis Case Studies



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

آج میں آپ کے ساتھ اپنے صارفین سے ایک معاملہ شریک کرنا چاہتا ہوں ٹریول سامعین!



'ٹریول ناظرین' ایک ڈیجیٹل اشتہاری پلیٹ فارم ہے جس کا مطلب ہے کہ ہم دنیا بھر میں اشتہار بازی میں بہت زیادہ سرمایہ کاری جاری رکھیں گے۔ اس مضمون میں ، میں اپنے سیکٹر ٹینڈر کو درپیش چیلنجوں میں سے کچھ پر تبادلہ خیال کرنا چاہتا ہوں۔



ہم بولی دہندگان نے صفحہ اشتہار سلاٹ پر نیلامی ، اصل وقت کے ماحول میں حصہ لیا۔ بولی کی درخواست کے بارے میں ہم 60-70 کلومیٹر فی سیکنڈ ، ہر درخواست کے لئے کارروائی کا وقت 75 ملی میٹر سے کم ہونا چاہئے۔ سسٹم پر زیادہ بوجھ کو سنبھالنے کے ل we ، ہم پس منظر میں میموری میں پوسٹگریس ریفریش ڈیٹا کا استعمال کرتے رہے ہیں ، اور ریڈائس میں ریئل ٹائم ڈیٹا استعمال کرتے ہیں۔ (عام طور پر استعمال شدہ ڈیٹا بیس ٹکنالوجی کمپنیوں میں RDBMS شامل ہیں ، جیسے پوسٹگریس ، MySQL اور کیچنگ حل۔)



ایس ایس پی (سپلائی سائیڈ پلیٹ فارم) سے ہر درخواست کے نتیجے میں متعدد کیش استفسار ہوگا۔ تھروپپٹ (لین دین فی سیکنڈ) اور تاخیر (رسپانس ٹائم) ایک اہم اشارے ہے ، اس کیچ کو RTB ایپلی کیشنز کی ضروریات کو پورا کرنا ہوگا۔

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

چیلنج



ہماری بندرگاہ ریڈیس بفر پرت مختلف بندرگاہوں پر کئی ڈیٹا بیس (5-6) چلانے سے بنی ہے ، ہر ڈیٹا بیس میں ماسٹر نوڈ اور غلام نوڈس 10 کے قریب ہیں۔ ابتدا ہی سے ، ہم نے ریڈیس کو استعمال کرتے وقت زیادہ سے زیادہ پریشانی محسوس کی۔ یہ کچھ پریشانیوں کا سامنا ہے۔

master ماسٹر نوڈ کے ذریعہ چلائے جانے والے سرور کی ان پٹ کو محدود کرنے کے لئے ایک ماسٹر ڈیوائس ، متعدد آلات - 'لکھنا' سے۔

· ریڈیس سنگل تھریڈڈ ہے ، جس کا مطلب ہے کہ ہم سی پی یو کے معاملے میں عمودی توسیع پذیر نہیں ہیں۔

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

database ایک ہی ڈیٹا بیس میں بہت سارے مختلف قسم کے ڈیٹا کو ذخیرہ کرنے کا کوئی آسان طریقہ نہیں ہے - ہمارے پاس مختلف ریڈیس مثالوں میں (مثال کے طور پر) مختلف اسٹورز محفوظ ہیں ، لہذا ہمیں مختلف بندرگاہوں پر متعدد رابطے ہینڈل کرنے ہیں۔

حل

میں ایک ایسا حل تلاش کرنے کی کوشش کر رہا ہوں جو ہماری تمام ضروریات کو پورا کرتا ہو ، جبکہ اس کے باوجود لچک اور استعمال میں آسانی برقرار رہتی ہے۔

وسیع تر تحقیق کے بعد ، میں گہرائی سے سمجھتا ہوں کہ ایرو اسپائک واقعتا our ہماری ضروریات کو پورا کرسکتا ہے ، پچھلی ملازمت میں ایرو اسپائک کے ساتھ مجھے پہلے ہی کچھ تجربہ ہے۔ لہذا ہم نے اس پروجیکٹ پر ایرو اسپائک کا استعمال شروع کیا۔

ایرو اسپائک فوائد میں شامل ہیں:

ition تقسیم - پہلے سے طے شدہ طور پر ، اس میں 4096 پارٹیشن ہے ، جو کلسٹر کے تمام نوڈس میں تقسیم ہے۔ یہ ہمارے لئے 'لکھنا' ہے تاکہ ان پٹ میں بہت زیادہ بہتری آئی ہے۔

er ایرو اسپائک کثیر جہتی ہے - جو ہمارے وسائل کا سب سے موثر استعمال ہوسکتا ہے۔

down ماسٹر کاپی مطابقت پذیری کا کوئی وقت نہیں - آپ 'لکھیں' اصول (پالیسی) تشکیل کرسکتے ہیں ، کاپی میں 'لکھنا' درخواست بنانے کو 'مکمل' سمجھا جاتا ہے اس کی تصدیق کریں گے۔

· نام کی جگہ - تمام مختلف اقسام کے ڈیٹا کو ایک ہی کلسٹر کے مختلف نام خانے میں محفوظ کیا جاسکتا ہے ، کیا یہ درجہ بندی: نام کی جگہ> سیٹ> ریکارڈ ہے۔

· ایس ایس ڈی یا میموری اسٹوریج - ایرو اسپیک کے دو موڈ ہیں: ایس ایس ڈی اور میموری۔ صرف میموری میں دوبارہ ہوجائیں ، جس کا مطلب ہے کہ ایک بہت بڑا توسیع بہت مہنگا ہوجاتا ہے ، لیکن کارکردگی کو مسابقت فراہم کرنے کے لئے ایس ایس ڈی اسٹوریج کے ذریعہ ایرو اسپیک۔

معیارات

I ریڈیس اور ایرو اسپائک نے موازنہ کیا۔ سب سے پہلے ، تھرو پٹ سب سے اہم پیرامیٹر ہے ، کیونکہ ہمارے پاس فی سیکنڈ میں بولی دہندگان سے لاکھوں درخواستیں ہیں۔

میں نے 16 وی سی پی یو اور 14.4 جی بی میموری کی مدد سے ایک ورچوئل مشین بنائی (زیادہ تر ٹریول ناظرین کا بنیادی ڈھانچہ گوگل کلاؤڈ پلیٹ فارم پر لگایا گیا ہے) ، جہاں اس نے جی سی ای میں ریڈیس اور ایرو اسپائک ڈیبین 9 کا استعمال کیا۔

میں نے درج ذیل لنکس کے مطابق ایرو اسپائک اور معیارات مرتب کیے ہیں۔

ڈیبین پر انسٹال کریں
اس ٹیوٹوریل میں ڈیبین سسٹم پر ایرو اسپیک نصب کرنے کا احاطہ کیا گیا ہے۔
https://www.aerospike.com/docs/operation/install/linux/debian/

معیارات
ایرو اسپائیک کلسٹر پر بوجھ پیدا کرنے اور پرفارمنس میٹرکس کا حساب لگانے کیلئے ایرو اسپیک گو کلائنٹ بینچ مارک ٹول کا استعمال کریں۔
https://www.aerospike.com/docs/client/go/benchmark.html

میں نے گو بینچ مارک کو بھی ڈاؤن لوڈ کیا ، کیوں کہ ہماری تمام آر ٹی بی ایپلی کیشنز گو کے ساتھ لکھی گئی ہیں۔

یہ ریڈیس انسٹال کرنے کے لئے لنک ہے:

ریڈیز کوئیک اسٹارٹ - ریڈیس
ریڈیس کو انسٹال کرنے کا تجویز کردہ طریقہ اسے ذرائع سے مرتب کررہا ہے ، کیوں کہ ریڈیس کو کام کرنے کے علاوہ کوئی انحصار نہیں ہے…
https://redis.io/topics/quickstart

پھر ، میں ابھی ریڈائس سرور چلایا اور ریڈیس بینچ مارک ٹول استعمال کرسکتا ہوں۔

میں نے بالترتیب چلانے کا فیصلہ کیا ، حوالہ 'لکھنا' اور 'پڑھنا'۔ بنچ مارک 1،000،000 قطار ، 8 بائٹس لکھنے کی قیمت (انٹ 64) اور 50 ہم آہنگی کلائنٹ کنیکشن لکھیں / پڑھیں۔

'لکھیں' بینچ مارک:

دوبارہ :

redis-Benmark -t set -n 1000000 -d 8 -c 50

====== SET ======

1000000 درخواستیں 7.66 سیکنڈ میں مکمل ہوگئیں

50 متوازی مؤکل

8 بائٹس پے لوڈ

زندہ رکھیں: 1

99.92٪<= 1 milliseconds

100.00٪<= 2 milliseconds

100.00٪<= 2 milliseconds

130497.20 درخواستیں فی سیکنڈ

ایرو اسپائک:

./benchmark -w I -c 50

2018/01/17 14:05:33 استعمال کرنے کے لئے سی پی یو کی تعداد مقرر کرنا: 16

2018/01/17 14:05:33 بینچ مارک.گو: 181: میزبان: 127.0.0.1

2018/01/17 14:05:33 بینچ مارک.گو: 182: پورٹ: 3000

2018/01/17 14:05:33 بنچ مارک.گو: 183: نام کی جگہ: امتحان

2018/01/17 14:05:33 بنچ مارک.گو: 184: سیٹ: ٹیسسیٹ

2018/01/17 14:05:33 بنچ مارک.گو: 185: چابیاں / ریکارڈ: 1000000

2018/01/17 14:05:33 بنچ مارک.گو: 186: آبجیکٹ کی وضاحت: I ، سائز: 0

2018/01/17 14:05:33 بنچ مارک.گو: 187: بے ترتیب بن اقدار غلط ہیں

2018/01/17 14:05:33 بنچ مارک.گو: 188: کام کا بوجھ: 100٪ ریکارڈ شروع کریں

2018/01/17 14:05:33 بینچ مارک.گو: 189: اتفاق: 50

2018/01/17 14:05:33 بنچ مارک.گو: 190: زیادہ سے زیادہ تر ان پٹ لامحدود

2018/01/17 14:05:33 بینچ مارک.گو: 191: ٹائم آؤٹ 0 ایم ایس

2018/01/17 14:05:33 بنچ مارک.گو: 192: زیادہ سے زیادہ کوشش 2

2018/01/17 14:05:33 بنچ مارک.گو: 193: ڈیبگ: غلط

2018/01/17 14:05:33 بنچ مارک.گو: 194: تاخیر: 0: 0

2018/01/17 14:05:33 بنچ مارک.گو: 137: نوڈس ملا: [BB90512440A0142]

2018/01/17 14:05:34 بینچ مارک.گو: 712: تحریر کریں (tps = 436881 ٹائم آؤٹ = 0 غلطیاں = 0 ٹوٹل اکاؤنٹ = 436881)

2018/01/17 14:05:35 بینچ مارک.گو: 712: تحریر کریں (tps = 442889 ٹائم آؤٹ = 0 غلطیاں = 0 کل کاؤنٹی = 879770)

2018/01/17 14:05:36 بنچ مارک.گو: 712: تحریر کریں (tps = 120230 ٹائم آؤٹ = 0 غلطیاں = 0 کل اکاؤنٹ = 1000000)

'پڑھنا' معیارات:

دوبارہ:

redis-Benmark -t get -n 1000000 -d 8 -c 50

====== GET ======

1000000 درخواستیں 7.47 سیکنڈ میں مکمل ہوگئیں

50 متوازی مؤکل

8 بائٹس پے لوڈ

زندہ رکھیں: 1

99.90٪<= 1 milliseconds

100.00٪<= 1 milliseconds

133850.89 درخواستیں فی سیکنڈ

er ایرو اسپائک:

· ./benchmark -w RU: 100 -c 50

/0 2018/01/17 14:03:55 استعمال کرنے کے لئے سی پی یو کی تعداد مقرر کرنا: 16

/0 2018/01/17 14:03:55 بینچ مارک.گو: 181: میزبان: 127.0.0.1

/0 2018/01/17 14:03:55 بینچ مارک.گو: 182: پورٹ: 3000

/0 2018/01/17 14:03:55 بینچ مارک.گو: 183: نام کی جگہ: امتحان

· 2018/01/17 14:03:55 بینچ مارک.گو: 184: سیٹ: ٹیسٹیٹ

/0 2018/01/17 14:03:55 بینچ مارک.گو: 185: چابیاں / ریکارڈ: 1000000

/0 2018/01/17 14:03:55 بینچ مارک.گو: 186: آبجیکٹ کا انداز: I ، سائز: 0

· 2018/01/17 14:03:55 بینچ مارک.گو: 187: بے ترتیب بن اقدار غلط ہیں

· 2018/01/17 14:03:55 بنچ مارک.گو: 188: کام کا بوجھ: 100٪ پڑھیں ، 0٪ لکھیں

/0 2018/01/17 14:03:55 بینچ مارک.گو: 189: اتفاق: 50

/0 2018/01/17 14:03:55 بینچ مارک.گو: 190: زیادہ سے زیادہ ان پٹ لامحدود

· 2018/01/17 14:03:55 بینچ مارک.گو: 191: ٹائم آؤٹ 0 ایم ایس

/0 2018/01/17 14:03:55 بینچ مارک.گو: 192: زیادہ سے زیادہ کوشش 2

/0 2018/01/17 14:03:55 بینچ مارک.گو: 193: ڈیبگ: غلط

· 2018/01/17 14:03:55 بنچ مارک.گو: 194: تاخیر: 0: 0

· 2018/01/17 14:03:55 بینچ مارک.گو: 137: نوڈس ملا: [BB90512440A0142]

· 2018/01/17 14:03:57 بینچ مارک.گو: 717: لکھیں (tps = 0 ٹائم آؤٹ = 0 غلطیاں = 0) پڑھیں (tps = 446765 ٹائم آؤٹ = 0 غلطیاں = 0) کل (tps = 446765 ٹائم آؤٹ = 0 غلطیاں) = 0 ، گنتی = 446765)

· 2018/01/17 14:03:58 بنچمارک.گو: 717: لکھیں (tps = 0 ٹائم آؤٹ = 0 غلطیاں = 0) پڑھیں (tps = 503307 ٹائم آؤٹ = 0 غلطیاں = 0) کل (tps = 503307 ٹائم آؤٹ = 0 غلطیاں) = 0 ، گنتی = 950072)

· 2018/01/17 14:03:59 بنچمارک.گو: 717: لکھیں (tps = 0 ٹائم آؤٹ = 0 غلطیاں = 0) پڑھیں (tps = 487852 ٹائم آؤٹ = 0 غلطیاں = 0) کل (tps = 487852 ٹائم آؤٹ = 0 غلطیاں) = 0 ، گنتی = 1437924)

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

ایرو اسپائک 430،000 تحریری عمل فی سیکنڈ ، اور 130،000 تحریری عمل فی سیکنڈ ریڈیس

کے ساتھ

ایرو اسپائک 480،000 اوقات فی سیکنڈ ، 133،000 اوقات فی سیکنڈ اور ریڈیس پڑھیں۔

کلسٹر قائم کرنا

ہم نے ایرو اسپائک کا استعمال جاری رکھنے کا فیصلہ کیا ہے ، اور جی سی ای میں تین نوڈس کا کلسٹر قائم کرنے کا فیصلہ کیا ہے ، جس کی نقل 2 عنصر ہم نے ریڈیس سے ایرو اسپیک میں عام طور پر استعمال ہونے والے کچھ اصل وقت کے اعداد کو تبدیل کیا ہے۔

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

ہم نے پرومیٹیس اشارے اور ایرو اسپیک مینجمنٹ کنسول کا استعمال کیا ، تاکہ ہم کلسٹر کی حیثیت کو بہتر طور پر سمجھ سکیں۔

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

کوتاہی

ایرو اسپائک (ریڈیس کے مقابلے میں) کے ذریعہ لائے جانے والے فوائد کے علاوہ ، مجھے کوتاہیوں کا بھی ذکر کرنا ہوگا۔

ows قطاروں کی تعداد کو محدود کریں - قطاروں کی تعداد کمیونٹی ایڈیشن ہر نام کے لئے ہر نوڈ 4 بلین لائنوں تک محدود ہے ، اب ہم اسے استعمال کرسکتے ہیں۔ پابندیوں کی مکمل فہرست کے لئے یہاں پایا جاسکتا ہے۔

· https://www.aerospike.com/docs/guide/limitations.html

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

client غیر مستحکم کلائنٹ لائبریریوں پر جائیں - وقتا فوقتا ہمارے ایرو اسپیک گو کلائنٹ گو روٹین کو 2-3 مرتبہ تیار کرتے ہیں ، اور یہ معمولات جمود کا شکار رہتے ہیں۔ اس کا مطلب ہے کہ وہ زیادہ میموری استعمال کریں گے ، اور اسے کبھی جاری نہیں کریں گے۔ (نوٹ: ایرو اسپائک کے نئے ورژن نے بھی مسئلہ حل کردیا)

آخر میں

ایرو اسپائک ہمارے ڈیٹا مینجمنٹ کو آسان بناتا ہے۔ ہم ڈیٹا بیس 5 میں کلسٹر کے تین نوڈس ریڈیس ایرو اسپائک میں اسٹور کرسکتے ہیں۔

گو کی درخواست کا عمل اب تمام ضروری اعداد و شمار کے بارے میں استفسار کرنے کے لئے صرف ایک ایرو اسپائک کنکشن ہے۔

درخواست کی مدت 320 مائیکرو سیکنڈز ، مکمل طور پر آر ٹی بی بفر کی ضروریات کو پورا کریں (ریڈیز سے بہت ملتا جلتا)۔

ہمارے بنیادی ڈھانچے کی توسیع زیادہ آسانی سے۔ پہلے ، ہم جی سی ای میں نئے نوڈس تیار کرنے والے ٹیرفارم پروجیکٹس کا استعمال کرتے ہیں۔ پھر کبرنیٹس ہیلم چارٹ استعمال کرنے کے ل dep تعینات کریں۔ اب ، صرف ایک کمانڈ استعمال کرکے نیا کلسٹر بنانے کی طرح آسانی سے ہیلم چارٹس چلائیں۔

پڑھنے کا شکریہ!