Hacker News

سلیکٹ اور ڈسک کے درمیان تین کیشے پرتیں۔

سلیکٹ اور ڈسک کے درمیان تین کیشے پرتیں۔ یہ ریسرچ اس کی اہمیت اور ممکنہ اثرات کو جانچتے ہوئے تین حصوں میں تقسیم کرتی ہے۔ بنیادی تصورات کا احاطہ کیا گیا۔ یہ مواد دریافت کرتا ہے: بنیادی اصول اور نظریات عملی...

1 min read Via frn.sh

Mewayz Team

Editorial Team

Hacker News

جب آپ کی ایپلیکیشن SELECT اسٹیٹمنٹ فائر کرتی ہے، تو وہ استفسار تقریباً کبھی بھی گھومنے والی ڈسک یا یہاں تک کہ خام فلیش اسٹوریج کو نہیں چھوتا ہے — یہ تین الگ الگ کیشے پرتوں سے گزرتی ہے جو خاموشی سے یہ طے کرتی ہے کہ آیا آپ کا جواب مائیکرو سیکنڈز میں آتا ہے یا ملی سیکنڈ میں۔ ان تہوں کو سمجھنا کاروباری پلیٹ فارم کے درمیان فرق ہے جو آسانی سے پیمانہ بناتا ہے اور ایک جو حقیقی دنیا کے بوجھ کے نیچے جھک جاتا ہے۔

اس لمحے کیا ہوتا ہے جب ایک منتخب سوال آپ کی درخواست چھوڑ دیتا ہے؟

جس لمحے آپ کی ایپلیکیشن ایک SELECT استفسار بھیجتی ہے، یہ ایک پائپ لائن میں داخل ہو جاتی ہے جس کا زیادہ تر ڈویلپر کبھی معائنہ نہیں کرتے۔ ڈیٹا بیس انجن کسی بھی I/O ہونے سے پہلے درخواست کو روکتا ہے، ایس کیو ایل کو اندرونی عمل درآمد کے منصوبے میں پارس کرتا ہے اور فوری طور پر اس کی پہلی لائن آف ڈیفنس سے مشورہ کرتا ہے: استفسار کا نتیجہ۔ اگر یکساں پیرامیٹرز کے ساتھ ایک جیسی استفسار حال ہی میں انجام دیا گیا ہے، تو انجن ڈیٹا کے کسی ایک صفحے کو چھوئے بغیر کیش شدہ نتیجہ واپس کر سکتا ہے۔ اسے کبھی کبھی استفسار کیش یا رزلٹ کیش کہا جاتا ہے، اور زیادہ پڑھنے والے، کم لکھنے والے کام کے بوجھ پر — جیسے اینالیٹکس ڈیش بورڈز اور رپورٹنگ ماڈیولز — یہ ڈسک ریڈز کی اکثریت کو مکمل طور پر ختم کر سکتا ہے۔

یہاں اہم بصیرت یہ ہے کہ استفسار کیش ڈیٹا کی تبدیلیوں کے لیے انتہائی حساس ہے۔ بنیادی ٹیبل کے خلاف کوئی بھی INSERT, UPDATE، یا DELETE متعلقہ کیش شدہ نتائج کو غلط قرار دیتا ہے۔ یہی وجہ ہے کہ رائٹ ہیوی ٹرانزیکشن سسٹم اکثر استفسار کے کیشے کو مکمل طور پر غیر فعال کر دیتے ہیں اور اس کی بجائے گہری تہوں پر انحصار کرتے ہیں۔

بفر پول کیا ہے اور یہ آپ کے خیال سے زیادہ کیوں اہم ہے؟

کیشے کی دوسری پرت — اور پروڈکشن سسٹمز میں سب سے اہم — ہے بفر پول (جسے PostgreSQL میں مشترکہ بفر کہا جاتا ہے، MySQL میں InnoDB بفر پول)۔ یہ RAM کا ایک علاقہ ہے جسے ڈیٹا بیس انجن حال ہی میں حاصل کردہ ڈیٹا پیجز کو رکھنے کے لیے استعمال کرتا ہے۔ جب رزلٹ کیش سے کوئی سوال پیش نہیں کیا جا سکتا، تو انجن چیک کرتا ہے کہ آیا کوئی بھی ڈسک ریڈ جاری کرنے سے پہلے مطلوبہ ڈیٹا پیجز بفر پول میں موجود ہیں یا نہیں۔

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

کلیدی بصیرت: زیادہ تر OLTP ورک بوجھ میں، ایک اچھے سائز کے بفر پول کا مطلب ہے کہ تمام ڈیٹا ریڈز کا 95-99% RAM سے پیش کیا جاتا ہے۔ ورکنگ سیٹ — آپ کے ڈیٹا کا سب سیٹ جو کہ سوالات درحقیقت اکثر چھوتے ہیں — اکثر ڈیٹا بیس کے کل سائز سے بہت چھوٹا ہوتا ہے۔ آپ کے کام کرنے والے سیٹ کو فٹ کرنے کے لیے اپنے بفر پول کو سائز دینا، آپ کے پورے ڈیٹاسیٹ کے لیے نہیں، یہ واحد سب سے زیادہ ریٹرن ٹیوننگ ایکشن ہے جو آپ لے سکتے ہیں۔

آپریٹنگ سسٹم کیش رام اور ڈسک کے درمیان خلا کو کیسے پُر کرتا ہے؟

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

💡 DID YOU KNOW?

Mewayz replaces 8+ business tools in one platform

CRM · Invoicing · HR · Projects · Booking · eCommerce · POS · Analytics. Free forever plan available.

Start Free →

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

پریکٹس میں سب سے زیادہ کارکردگی کی جیت کے لیے کون سی کیش لیئر ذمہ دار ہے؟

حقیقی دنیا کے پیداواری نظاموں میں، بفر پول وسیع مارجن سے کارکردگی کے نتائج پر حاوی ہے۔ یہاں یہ ہے کہ ہر پرت استعمال کے معاملات میں مختلف طریقے سے حصہ ڈالتی ہے:

  • سوال کا نتیجہ کیش: پڑھنے کے قابل، زیادہ تر جامد ڈیٹاسیٹس پر سب سے زیادہ فائدہ — رپورٹنگ سوالات، کیشڈ ڈیش بورڈز، عوامی مواد کے اختتامی پوائنٹس۔ لکھنے والی بھاری میزوں پر بیکار۔
  • ڈیٹا بیس بفر پول: یونیورسل ورک ہارس۔ ہر پروڈکشن ڈیٹا بیس سرور کو پہلے یہاں ٹیون کیا جانا چاہیے۔ بے ترتیب اور ترتیب وار رسائی کے نمونوں کو مؤثر طریقے سے ہینڈل کرتا ہے۔
  • OS صفحہ کیش: جب بفر پول کو چھوٹا کیا جاتا ہے تو حفاظتی جال فراہم کرتا ہے۔ بڑی میزوں کے ترتیب وار اسکینز کے دوران بھی نمایاں طور پر مدد کرتا ہے جو بفر پول سے گرم صفحات کو نکال دے گا۔
  • اسٹوریج کنٹرولر کیش (ہارڈویئر پرت): ایک چوتھی، اکثر نظر انداز کی جانے والی پرت — NVMe SSDs اور RAID کنٹرولرز بیٹری یا کپیسیٹر بیک اپ کے ساتھ آن بورڈ رائٹ کیشز کو برقرار رکھتے ہیں۔ یہ fsync لیٹنسی کی قیمت پر رائٹ تھرو پٹ کو قربان کیے بغیر استحکام کی حفاظت کرتا ہے۔
  • Application-layer cache (Redis, Memcached): مکمل طور پر ڈیٹا بیس کے اوپر بیٹھتا ہے، سیریلائزڈ استفسار کے نتائج یا کمپیوٹیڈ آبجیکٹ کو کیش کرتا ہے تاکہ ڈیٹا بیس کو بالکل بھی ٹکر نہ لگائی جا سکے — ہزاروں ہم آہنگ صارفین کی خدمت کرنے والے کثیر کرایہ دار SaaS پلیٹ فارمز کے لیے مثالی۔

ماڈرن بزنس پلیٹ فارمز کیش آرکیٹیکچر کو پیمانے پر قابل اعتمادی کے لیے کیسے فائدہ اٹھا سکتے ہیں؟

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

Mewayz بالکل اسی فلسفے کو ذہن میں رکھتے ہوئے تعمیر کیا گیا ہے۔ 138,000 سے زیادہ صارفین کو طاقت دینے والے 207 مربوط کاروباری ماڈیولز کے ساتھ، پلیٹ فارم کی ڈیٹا لیئر کو اس طرح ڈیزائن کیا گیا ہے کہ پڑھنے کی بھاری اکثریت کو کیش سے پیش کیا جائے — جواب کے اوقات کو تیز رکھنا اور بنیادی ڈھانچے کے اخراجات کا اندازہ لگایا جا سکتا ہے چاہے آپ $19/ماہ کے سٹارٹر پلان پر چل رہے ہوں یا $49/ماہ کے پروفیشنل ٹائر پر۔

اکثر پوچھے گئے سوالات

کیا استفسار کیش کو غیر فعال کرنے سے ہمیشہ ڈیٹا بیس کی کارکردگی بہتر ہوتی ہے؟

ہمیشہ نہیں، لیکن لکھنے والے بھاری کام کے بوجھ کے لیے یہ عام طور پر ہوتا ہے۔ استفسار کیشے کو مستقل مزاجی کو برقرار رکھنے کے لیے ایک عالمی mutex کی ضرورت ہوتی ہے، جو کہ اعلی ہم آہنگی کے تحت ایک رکاوٹ بن جاتا ہے۔ MySQL 8.0 نے اس وجہ سے استفسار کیش کو مکمل طور پر ہٹا دیا۔ PostgreSQL نے کبھی بھی بفر پول اور ایپلیکیشن لیئر کیشنگ پر انحصار کرتے ہوئے بلٹ ان استفسار کیش کو نافذ نہیں کیا۔ اگر آپ کا پڑھنے لکھنے کا تناسب زیادہ ہے اور آپ کے سوالات بہت زیادہ دہرائے جاتے ہیں، تو ایک استفسار کا کیش حقیقی فائدہ پہنچا سکتا ہے — بصورت دیگر، اس ٹیوننگ کی کوشش کو بفر پول میں لگائیں۔

میں کیسے جانوں کہ میرے بفر پول کا سائز درست ہے؟

اپنے بفر پول ہٹ ریشو کی نگرانی کریں: پول سے پیش کردہ صفحہ کی درخواستوں کا فیصد بمقابلہ ڈسک پڑھنے کی ضرورت ہے۔ OLTP کام کے بوجھ پر 95% سے نیچے ہٹ کا تناسب پول کے سائز کو بڑھانے کا اشارہ ہے۔ MySQL میں، SHO ENGINE INNODB STATUS سے استفسار کریں اور بفر پول ہٹ ریٹ دیکھیں۔ PostgreSQL میں، pg_statio_user_tables منظر ڈسک سے پڑھے گئے ہیپ بلاکس کو ظاہر کرتا ہے بمقابلہ بفر پول سے پیش کیا جاتا ہے۔ اپنے پورے ورکنگ سیٹ کو برقرار رکھنے کا مقصد — آپ کا پورا ڈیٹا سیٹ نہیں — RAM میں رہنے والا۔

کیشے کی تہوں اور کثیر کرایہ دار SaaS کی وشوسنییتا کے درمیان کیا تعلق ہے؟

ملٹی کرایہ دار SaaS میں، کیشے پرتیں "شور پڑوسی" کے مسائل کو روکتی ہیں جہاں ایک کرایہ دار کے بھاری استفسار کا بوجھ دوسرے تمام کرایہ داروں کی کارکردگی کو کم کرتا ہے۔ TTL کی بنیاد پر غلط کاری کے ساتھ کرایہ دار سے آگاہ ایپلی کیشن کیشنگ Redis میں فی کرایہ دار ہاٹ ڈیٹا رکھتا ہے، جس سے بڑے اکاؤنٹس سے بفر پول کے دباؤ میں زبردست کمی آتی ہے۔ گرم بفر پول کے ساتھ مل کر ڈیٹا بیس لیول کنکشن پولنگ اس بات کو یقینی بناتی ہے کہ کسی ایک اکاؤنٹ سے برسٹ ایکٹیویٹی مشترکہ صفحات کو کیشے سے فلش نہیں کرتی ہے اور پورے پلیٹ فارم میں لیٹنسی اسپائکس کا سبب بنتی ہے۔


کیشے کی پرتیں ڈیٹا بیس ٹریویا نہیں ہیں — یہ ایک آرکیٹیکچرل فاؤنڈیشن ہیں جو ان پلیٹ فارمز کو الگ کرتی ہیں جو تیز رفتار رہتے ہیں ان سے جو مستقل انفراسٹرکچر فائر فائٹنگ کی ضرورت ہوتی ہے۔ اگر آپ ایک ایسا کاروبار بنا رہے ہیں یا چلا رہے ہیں جس کے لیے پہلے سے ہی ان حقائق کے لیے موزوں پلیٹ فارم کی ضرورت ہے، app.mewayz.com پر Mewayz کو دریافت کریں — 207 ماڈیولز، ایک مربوط پلیٹ فارم، جو آپ کے پہلے صارف سے لے کر آپ کے سو ہزارویں تک قابل اعتماد کارکردگی کے لیے بنایا گیا ہے۔

Try Mewayz Free

All-in-one platform for CRM, invoicing, projects, HR & more. No credit card required.

Related Guide

HR Management Guide →

Manage your team effectively: employee profiles, leave management, payroll, and performance reviews.

Start managing your business smarter today

Join 30,000+ businesses. Free forever plan · No credit card required.

Ready to put this into practice?

Join 30,000+ businesses using Mewayz. Free forever plan — no credit card required.

Start Free Trial →

Ready to take action?

Start your free Mewayz trial today

All-in-one business platform. No credit card required.

Start Free →

14-day free trial · No credit card · Cancel anytime