Distributed lock manager
آپریٹنگ سسٹم وسائل تک رسائی کو منظم اور سیریلائز کرنے کے لیے لاک مینیجرز کا استعمال کرتے ہیں۔ ایک ڈسٹری بیوٹڈ لاک مینیجر (ڈی ایل ایم) ایک کلسٹر میں ہر مشین میں چلتا ہے، جس میں کلسٹر وائڈ لاک ڈیٹا بیس کی ایک جیسی کاپی ہوتی ہے۔ اس طرح ایک ڈی ایل ایم سافٹ ویئر ایپلی کیشنز فراہم کرتا ہے جو متعدد مشینوں پر ایک کلسٹر میں تقسیم کیے جاتے ہیں تاکہ ان کی رسائی کو مشترکہ وسائل سے ہم آہنگ کیا جا سکے۔ ڈی ایل ایم کو کئی کامیاب کلسٹرڈ فائل سسٹمز کی بنیاد کے طور پر استعمال کیا گیا ہے، جس میں کلسٹر میں موجود مشینیں کارکردگی اور دستیابی کے اہم فوائد کے ساتھ ایک متحد فائل سسٹم کے ذریعے ایک دوسرے کے اسٹوریج کو استعمال کر سکتی ہیں۔ کارکردگی کا بنیادی فائدہ حصہ لینے والے کمپیوٹرز کے درمیان ڈسک کیش کی ہم آہنگی کے مسئلے کو حل کرنے سے آتا ہے۔ ڈی ایل ایم کا استعمال نہ صرف فائل لاک کرنے کے لیے کیا جاتا ہے بلکہ تمام ڈسک تک رسائی کو مربوط کرنے کے لیے بھی کیا جاتا ہے۔ وی ایم ایس کلسٹر، وسیع پیمانے پر استعمال میں آنے والا پہلا کلسٹرنگ سسٹم، اس طرح اوپن وی ایم ایس ڈی ایل ایم پر انحصار کرتا تھا۔ وسائل ڈی ایل ایم کسی وسائل کے عمومی تصور کا استعمال کرتا ہے، جو کہ ایک ایسی ہستی ہے جس تک مشترکہ رسائی کو کنٹرول کیا جانا چاہیے۔ اس کا تعلق کسی فائل، ریکارڈ، مشترکہ میموری کے علاقے، یا کسی اور چیز سے ہو سکتا ہے جسے ایپلیکیشن ڈیزائنر منتخب کرتا ہے۔ وسائل کے درجہ بندی کی وضاحت کی جا سکتی ہے، تاکہ لاکنگ کی کئی سطحوں کو نافذ کیا جا سکے۔ مثال کے طور پر، ایک فرضی ڈیٹا بیس وسائل کے درجہ بندی کی وضاحت اس طرح کر سکتا ہے: ڈیٹا بیس ٹیبل ریکارڈ فیلڈ ایک عمل پھر مجموعی طور پر ڈیٹا بیس پر تالے حاصل کر سکتا ہے، اور پھر ڈیٹا بیس کے مخصوص حصوں پر۔ ماتحت وسائل کو لاک کرنے سے پہلے پیرنٹ ریسورس پر لاک حاصل کرنا ضروری ہے۔ لاک موڈ وی ایم ایس سی کلسٹر کے اندر چلنے والا عمل کسی وسائل پر لاک حاصل کر سکتا ہے۔ چھ لاک موڈ ہیں جو دیئے جا سکتے ہیں، اور یہ خصوصی طور پر دیئے جانے کی سطح کا تعین کرتے ہیں، لاک کو لاک موڈ کے اعلی یا نچلے درجے میں تبدیل کرنا ممکن ہے۔ جب تمام عمل کسی وسائل کو کھول دیتے ہیں، تو وسائل کے بارے میں نظام کی معلومات تباہ ہو جاتی ہیں۔ نل (این ایل)۔ وسائل میں دلچسپی کی نشاندہی کرتا ہے، لیکن دوسرے عمل کو اسے بند کرنے سے نہیں روکتا ہے۔ اس کا فائدہ یہ ہے کہ ریسورس اور اس کے لاک ویلیو بلاک کو محفوظ رکھا جاتا ہے، یہاں تک کہ جب کوئی عمل اسے لاک نہیں کر رہا ہو۔ کنکرنٹ ریڈ (سی آر)۔ وسائل کو پڑھنے (لیکن اپ ڈیٹ نہ کرنے) کی خواہش کی نشاندہی کرتا ہے۔ یہ دوسرے عمل کو وسائل کو پڑھنے یا اپ ڈیٹ کرنے کی اجازت دیتا ہے، لیکن دوسروں کو اس تک خصوصی رسائی حاصل کرنے سے روکتا ہے۔ یہ عام طور پر اعلی سطحی وسائل پر استعمال کیا جاتا ہے، تاکہ ماتحت وسائل پر زیادہ پابندیاں حاصل کی جا سکیں۔ سمورتی تحریر (سی ڈبلیو)۔ وسائل کو پڑھنے اور اپ ڈیٹ کرنے کی خواہش کی نشاندہی کرتا ہے۔ یہ دوسرے عمل کو وسائل کو پڑھنے یا اپ ڈیٹ کرنے کی بھی اجازت دیتا ہے، لیکن دوسروں کو اس تک خصوصی رسائی حاصل کرنے سے روکتا ہے۔ یہ عام طور پر اعلی سطحی وسائل پر بھی استعمال کیا جاتا ہے، تاکہ ماتحت وسائل پر زیادہ پابندیاں حاصل کی جا سکیں۔ محفوظ شدہ پڑھنا (پی آر)۔ یہ روایتی شیئر لاک ہے، جو وسائل کو پڑھنے کی خواہش کی نشاندہی کرتا ہے لیکن دوسروں کو اسے اپ ڈیٹ کرنے سے روکتا ہے۔ تاہم دوسرے بھی اس وسائل کو پڑھ سکتے ہیں۔ محفوظ تحریر (پی ڈبلیو)۔ یہ روایتی اپ ڈیٹ لاک ہے، جو وسائل کو پڑھنے اور اپ ڈیٹ کرنے کی خواہش کی نشاندہی کرتا ہے اور دوسروں کو اسے اپ ڈیٹ کرنے سے روکتا ہے۔ تاہم کنکرنٹ ریڈ تک رسائی رکھنے والے دوسرے لوگ وسائل کو پڑھ سکتے ہیں۔ خصوصی (EX)۔ یہ روایتی خصوصی تالا ہے جو وسائل کو پڑھنے اور اپ ڈیٹ کرنے کی اجازت دیتا ہے، اور دوسروں کو اس تک رسائی حاصل کرنے سے روکتا ہے۔ درج ذیل ٹروتھ ٹیبل ہر لاک موڈ کی دوسروں کے ساتھ مطابقت کو ظاہر کرتا ہے: لاک حاصل کرنا ایک عمل لاک کی درخواست درج کرکے کسی وسائل پر لاک حاصل کر سکتا ہے۔ یہ کیو آئی او تکنیک سے ملتا جلتا ہے جو آئی/او انجام دینے کے لیے استعمال ہوتی ہے۔ اینکیو لاک کی درخواست یا تو ہم آہنگی سے مکمل ہو سکتی ہے، ایسی صورت میں عمل لاک کی منظوری تک انتظار کرتا ہے، یا غیر ہم آہنگی سے، ایسی صورت میں جب لاک حاصل ہو جاتا ہے تو اے ایس ٹی ہوتا ہے۔ بلاکنگ اے ایس ٹی قائم کرنا بھی ممکن ہے، جو اس وقت شروع ہوتا ہے جب کسی عمل نے ایک تالا حاصل کر لیا ہو جو کسی دوسرے عمل کے ذریعے وسائل تک رسائی کو روک رہا ہو۔ اس کے بعد اصل عمل اختیاری طور پر دوسری رسائی کی اجازت دینے کے لیے کارروائی کر سکتا ہے (مثال کے طور پر۔ لاک کو ڈیموٹ یا ریلیز کرکے)۔ لاک ویلیو بلاک ایک لاک ویلیو بلاک ہر وسائل سے وابستہ ہوتا ہے۔ اسے کسی بھی عمل کے ذریعے پڑھا جا سکتا ہے جس نے ریسورس پر لاک حاصل کیا ہو (نیل لاک کے علاوہ) اور اس عمل کے ذریعے اپ ڈیٹ کیا جا سکتا ہے جس نے اس پر محفوظ اپ ڈیٹ یا خصوصی لاک حاصل کیا ہو۔ اس کا استعمال ایپلیکیشن ڈیزائنر کے منتخب کردہ وسائل کے بارے میں کوئی بھی معلومات رکھنے کے لیے کیا جا سکتا ہے۔ ایک عام استعمال وسائل کا ورژن نمبر رکھنا ہے۔ ہر بار منسلک ہستی (مثال کے طور پر۔ ڈیٹا بیس ریکارڈ) کو اپ ڈیٹ کیا جاتا ہے، لاک کا ہولڈر لاک ویلیو بلاک میں اضافہ کرتا ہے۔ جب کوئی دوسرا عمل ریسورس کو پڑھنا چاہتا ہے، تو وہ مناسب لاک حاصل کرتا ہے اور موجودہ لاک ویلیو کا موازنہ اس ویلیو سے کرتا ہے جو اس نے آخری بار ریسورس کو لاک کیا تھا۔ اگر قیمت ایک جیسی ہے، تو عمل جانتا ہے کہ منسلک ہستی کو آخری بار پڑھنے کے بعد سے اپ ڈیٹ نہیں کیا گیا ہے، اور اس لیے اسے دوبارہ پڑھنا غیر ضروری ہے۔ لہذا، اس تکنیک کو ڈیٹا بیس یا اسی طرح کی ایپلی کیشن میں مختلف قسم کے کیش کو لاگو کرنے کے لیے استعمال کیا جا سکتا ہے۔ ڈیڈ لاک کا پتہ لگانا جب ایک یا زیادہ عمل وسائل پر تالے حاصل کر لیتے ہیں، تو ایسی صورتحال پیدا کرنا ممکن ہے جہاں ہر ایک دوسرے کو تالے حاصل کرنے سے روک رہا ہو، اور ان میں سے کوئی بھی آگے نہیں بڑھ سکتا۔ اسے ڈیڈ لاک کے نام سے جانا جاتا ہے (ای ڈبلیو ڈیجسٹرا نے اصل میں اسے ایک مہلک گلے لگایا تھا)۔ ایک سادہ سی مثال یہ ہے کہ جب پروسیس 1 نے ریسورس اے پر ایک خصوصی لاک حاصل کیا ہے، اور پروسیس 2 نے ریسورس بی پر ایک خصوصی لاک حاصل کیا ہے۔ اگر پروسیس 1 ریسورس بی کو لاک کرنے کی کوشش کرتا ہے، تو اسے جاری کرنے کے لیے پروسیس 2 کا انتظار کرنا پڑے گا۔ لیکن اگر پروسیس 2 ریسورس اے کو لاک کرنے کی کوشش کرتا ہے، تو دونوں عمل ایک دوسرے کے لیے ہمیشہ انتظار کریں گے۔ اوپن وی ایم ایس ڈی ایل ایم وقتا فوقتا تعطل کے حالات کی جانچ کرتا ہے۔ مندرجہ بالا مثال میں، کسی ایک عمل کی دوسری لاک اینکیو درخواست ڈیڈ لاک اسٹیٹس کے ساتھ واپس آئے گی۔ اس کے بعد یہ اس عمل پر منحصر ہوگا کہ تعطل کو حل کرنے کے لیے کارروائی کی جائے-اس معاملے میں اسے حاصل کردہ پہلا تالا جاری کرکے۔ لینکس کلسٹرنگ ریڈ ہیٹ اور اوریکل دونوں نے لینکس کے لیے کلسٹرنگ سافٹ ویئر تیار کیا ہے۔ او سی ایف ایس 2، اوریکل کلسٹر فائل سسٹم کو جنوری 2006 میں ورژن 2.6.16 کے ساتھ آفیشل لینکس کرنل میں شامل کیا گیا تھا۔ او سی ایف ایس 2 پر الفا کوالٹی کوڈ وارننگ کو 2.6.19 میں ہٹا دیا گیا تھا۔ ریڈ ہیٹ کے کلسٹر سافٹ ویئر، بشمول ان کے ڈی ایل ایم اور جی ایف ایس 2 کو نومبر 2006 میں باضابطہ طور پر لینکس کرنل میں ورژن 2.6.19 کے ساتھ شامل کیا گیا تھا۔ دونوں نظام قابل احترام وی ایم ایس ڈی ایل ایم پر مبنی ڈی ایل ایم ماڈل کا استعمال کرتے ہیں۔ اوریکل کے ڈی ایل ایم میں ایک آسان اے پی آئی ہے۔ (بنیادی فنکشن، ڈی ایل ایم لاک ()، میں آٹھ پیرامیٹرز ہیں، جبکہ وی ایم ایس ایس وائی ایس $ای این کیو سروس اور ریڈ ہیٹ کے ڈی ایل ایم لاک دونوں میں 11 ہیں۔) دیگر نفاذ دیگر ڈی ایل ایم کے نفاذ میں درج ذیل شامل ہیں: گوگل نے چبی تیار کی ہے، جو ڈھیلے جوڑے والے تقسیم شدہ نظاموں کے لیے ایک لاک سروس ہے۔ یہ موٹے دانے والے لاکنگ کے لیے ڈیزائن کیا گیا ہے اور ایک محدود لیکن قابل اعتماد تقسیم شدہ فائل سسٹم بھی فراہم کرتا ہے۔ گوگل کے بنیادی ڈھانچے کے کلیدی حصے، بشمول گوگل فائل سسٹم، بگ ٹیبل، اور میپ ریڈیس، مشترکہ وسائل تک رسائی کو ہم آہنگ کرنے کے لیے چبی کا استعمال کرتے ہیں۔ اگرچہ چبی کو لاک سروس کے طور پر ڈیزائن کیا گیا تھا، لیکن اب اسے گوگل کے اندر ڈی این ایس کی جگہ نیم سرور کے طور پر بہت زیادہ استعمال کیا جاتا ہے۔ اپاچی زو کیپر، جو یاہو میں بنایا گیا تھا، اوپن سورس سافٹ ویئر ہے اور اسے تقسیم شدہ تالے انجام دینے کے لیے بھی استعمال کیا جا سکتا ہے۔ ای ٹی سی ڈی اوپن سورس سافٹ ویئر ہے، جو کور او ایس میں اپاچی لائسنس کے تحت تیار کیا گیا ہے۔ اسے تقسیم شدہ تالے انجام دینے کے لیے بھی استعمال کیا جا سکتا ہے۔ ریڈیس ایک اوپن سورس، بی ایس ڈی لائسنس یافتہ، اعلی درجے کی کلیدی قیمت کیشے اور اسٹور ہے۔ ریڈیس کو تقسیم شدہ لاک مینجمنٹ کے لیے ریڈ لاک الگورتھم کو نافذ کرنے کے لیے استعمال کیا جا سکتا ہے۔ ہاشی کارپ کا قونصل، جسے ہاشی کارپ نے بنایا تھا، اوپن سورس سافٹ ویئر ہے اور اسے تقسیم شدہ تالے انجام دینے کے لیے بھی استعمال کیا جا سکتا ہے۔ تاؤکا ڈسٹری بیوٹڈ لاک مینیجر ڈیڈ لاک سے بچنے کے لیے "ٹرائی لاک" کے طریقے استعمال کرتا ہے۔ یہ نینو سیکنڈ درستگی کے ساتھ ہر لاک کے لیے ایک ٹی ٹی ایل کی وضاحت بھی کر سکتا ہے۔ ڈی ایل ایم اوپن ایس ایس آئی جیسے زیادہ مہتواکانکشی سنگل سسٹم امیج (ایس ایس آئی) پروجیکٹوں کا ایک کلیدی جزو بھی ہے۔ حوالہ جات ایچ پی اوپن وی ایم ایس سسٹمز سروسز ریفرنس دستی-$ای این کیو آفیسر-روبی ایف ایل او ایم میں لکھا ہوا ایک سادہ تقسیم شدہ لاک مینیجر-ایک مفت اوپن سورس تقسیم شدہ لاک مینیجر جسے شیل کمانڈز، اسکرپٹ اور اپنی مرضی کے مطابق تیار کردہ سی، سی + +، جاوا، پی ایچ پی اور ازگر سافٹ ویئر کو مطابقت پذیر کرنے کے لیے استعمال کیا جا سکتا ہے۔ تقسیم شدہ کمپیوٹنگ فن تعمیر