Index locking
ডাটাবেসে একটি সূচক হল একটি ডেটা স্ট্রাকচার, ডাটাবেসের অংশ, যা ব্যবহারকারীর ডেটাতে অ্যাক্সেস দক্ষতার সাথে নেভিগেট করার জন্য একটি ডাটাবেস সিস্টেম দ্বারা ব্যবহৃত হয়। সূচক ডেটা হল ব্যবহারকারীর ডেটা থেকে আলাদা সিস্টেম ডেটা এবং প্রাথমিকভাবে পয়েন্টার নিয়ে গঠিত। একটি ডাটাবেসে পরিবর্তন (সন্নিবেশ, মুছে ফেলা বা ক্রিয়াকলাপগুলি সংশোধন করে), সঠিক ব্যবহারকারীর ডেটা অ্যাক্সেস বজায় রাখতে সূচকগুলি আপডেট করার প্রয়োজন হতে পারে। সূচক লকিং একটি কৌশল যা সূচকের অখণ্ডতা বজায় রাখতে ব্যবহৃত হয়। একটি সূচকের একটি অংশ একটি ডাটাবেস লেনদেনের সময় লক করা থাকে যখন সম্পর্কিত ব্যবহারকারীর ডেটা অ্যাক্সেস করার প্রচেষ্টার ফলস্বরূপ লেনদেনের মাধ্যমে এই অংশটি অ্যাক্সেস করা হয়। উপরন্তু, একটি সিস্টেমের স্ব-রক্ষণাবেক্ষণ ক্রিয়াকলাপের অংশ হিসাবে একটি সূচক বজায় রাখতে এবং সংশোধন করতে বিশেষ ডাটাবেস সিস্টেম লেনদেন (ব্যবহারকারী-প্ররোচিত লেনদেন নয়) আহ্বান করা যেতে পারে। যখন একটি সূচকের একটি অংশ একটি লেনদেনের দ্বারা লক করা থাকে, তখন অন্যান্য লেনদেনগুলি এই সূচক অংশটি অ্যাক্সেস করা থেকে ব্লক করা হতে পারে (লকের ধরণ এবং প্রয়োজনীয় ক্রিয়াকলাপের উপর নির্ভর করে সংশোধন করা এবং এমনকি এটি পড়া থেকে ব্লক করা)। ইনডেক্স লকিং প্রোটোকল নিশ্চিত করে যে ফ্যান্টম রিড ঘটনা ঘটবে না। সূচক লকিং প্রটোকলে বলা হয়েছেঃ প্রতিটি সম্পর্কের কমপক্ষে একটি সূচক থাকতে হবে। একটি লেনদেন শুধুমাত্র সম্পর্কের এক বা একাধিক সূচকের মাধ্যমে খুঁজে পাওয়ার পরেই টুপলগুলি অ্যাক্সেস করতে পারে একটি লেনদেন টিআই যে একটি সন্ধান সম্পাদন করে তা অবশ্যই এস-মোডে অ্যাক্সেস করা সমস্ত সূচক পাতার নোডগুলিকে লক করতে হবে, এমনকি যদি পাতার নোডে সূচক সন্ধানকে সন্তুষ্ট করে এমন কোনও টুপল না থাকে (যেমন। একটি পরিসীমা প্রশ্নের জন্য, একটি পাতায় কোনও টুপল সীমার মধ্যে থাকে না) একটি লেনদেন টিআই যা একটি সম্পর্কের মধ্যে একটি টুপল টিআই সন্নিবেশ, আপডেট বা মুছে দেয় তা অবশ্যই সমস্ত সূচকে আপডেট করতে হবে এবং এটি অবশ্যই সন্নিবেশ/আপডেট/মুছে ফেলার দ্বারা প্রভাবিত সমস্ত সূচক পাতার নোডগুলিতে একচেটিয়া লক পেতে হবে দ্বি-পর্যায়ের লকিং প্রোটোকলের নিয়মগুলি অবশ্যই পালন করতে হবে। সূচকগুলি অ্যাক্সেস করার জন্য বিশেষ সমান্তরাল নিয়ন্ত্রণ কৌশল বিদ্যমান। এই কৌশলগুলি সূচকের প্রকারের উপর নির্ভর করে এবং এর কাঠামোর সুবিধা নেয়। এগুলি সাধারণত ব্যবহারকারীর ডেটাতে প্রয়োগ করা সূচকের সাধারণ সমান্তরাল নিয়ন্ত্রণ পদ্ধতিতে প্রয়োগ করার চেয়ে অনেক বেশি কার্যকর। বি-ট্রি (বি-ট্রি কনকারেন্সি কন্ট্রোল)-এর জন্য বিশেষ কৌশলগুলি উল্লেখযোগ্য এবং ব্যাপকভাবে গবেষণা করা হয় যা নিয়মিতভাবে ডাটাবেস সূচক হিসাবে ব্যবহৃত হয়। সূচক লকগুলি একযোগে সূচকগুলি অ্যাক্সেস করার জন্য থ্রেডগুলিকে সমন্বয় করতে ব্যবহৃত হয় এবং সাধারণত ব্যবহারকারীর ডেটাতে সাধারণ লেনদেনের লকগুলির তুলনায় স্বল্পস্থায়ী হয়। পেশাদার সাহিত্যে এগুলিকে প্রায়শই ল্যাচেস বলা হয়। আরও দেখুন ডাটাবেস সূচক কনকারেন্সি কন্ট্রোল লক (ডাটাবেস) বি-ট্রি কনকারেন্সি কন্ট্রোল রেফারেন্স ডাটাবেস লেনদেন প্রক্রিয়াকরণ কনকারেন্সি নিয়ন্ত্রণ