কী অবরুদ্ধ করছে এবং কীভাবে তা ঘটে?


20

আমি এসকিউএল সার্ভারে ব্লক করা সম্পর্কে কিছু তথ্য সন্ধান করার চেষ্টা করেছি, তবে এটি কী এবং এটি কীভাবে হয় তার কোনও সংক্ষিপ্ত ব্যাখ্যা আমি খুঁজে পাইনি। আপনি কি আমাকে আলোকিত করতে পারেন?

উত্তর:


23

অ্যানালজিস

কখনও কখনও এটি কম্পিউটার থেকে দূরে সাদৃশ্যগুলি ব্যবহার করতে সহায়তা করে।

ধরা যাক আপনার একটি বল এবং দুটি শিশু রয়েছে। যে কোনও সময়ে কেবল একটি শিশুই বল রাখতে পারে। যাইহোক, যদি বাচ্চাদের মধ্যে কোনও একটি যদি বল পেয়ে যায় এবং সে এড়াতে না দেয় কারণ তিনি বিভ্রান্ত হয়ে পড়েছেন (উদাহরণস্বরূপ টিভি দেখছেন), তবে অন্য শিশুটি বলের সাথে খেলতে পাবে না।

অন্য শিশু সেই সংস্থান থেকে অবরুদ্ধ।

যদি আমরা এটি টিভির সাথে তুলনা করি, উদাহরণস্বরূপ, বেশ কয়েকটি শিশু যে কোনও এক সময়ে টিভি দেখতে পারে।

লক্স

আমরা যদি ডাটাবেস বিশ্বে চলে যাই তবে আমরা দেখতে পাই যে সংস্থান ব্যবহারের বিভিন্ন উপায় রয়েছে (ঠিক আমাদের উপরের দুটি উদাহরণের মতো)। আমরা "পঠন" সম্পাদন করতে পারি বা "রাইট" সম্পাদন করতে পারি।

যখন আমরা ডেটাটি পড়তে চাই, তখন অন্য কারণীরাও ডেটা পড়তে পারে না এমন কোনও কারণ নেই - যেমন দুটি টিভি দেখছেন। তবে, আমরা যদি ডেটা লিখতে চাই, তবে আমাদের তা নিশ্চিত করতে হবে যে অন্য কেউ এটির দিকে নজর দিচ্ছে না। আমরা এটি লেখার সময় যদি তারা এটি পড়তে থাকে তবে তারা "নোংরা" পড়বে। (অর্থ, তারা আংশিকভাবে লিখিত ডেটা দেখতে পাবে, যা অবৈধ will

এই নোংরা পাঠগুলি কখনই না ঘটে তা নিশ্চিত করার জন্য, আমাদের কাছে দুটি প্রাথমিক ধরণের লক রয়েছে, পড়ুন লকস এবং এক্সক্লুসিভ লকস।

লক পড়ুন

আপনার কোনও নির্দিষ্ট সময়ে একই ডেটাসোর্স থেকে বিভিন্ন আলাদা সংযোগ পড়তে পারে। তবে এটি নিশ্চিত করার জন্য যে তারা যখন এটি পড়ার সময় সেই ডেটা পরিবর্তন করে না, তারা একটি রিড লক বের করে।

কোনও সংযোগে একবারে কোনও ডাটা টুকরোতে রিড লক হয়ে গেলে, অন্যান্য সমস্ত সংযোগগুলি ডেটা লেখার আগে রিড লকটি প্রকাশ না হওয়া পর্যন্ত অপেক্ষা করতে হবে । অন্যরা, তথ্যের একই টুকরোতে তাদের নিজস্ব পঠিত লকগুলি নিতে পারেন।

এক্সক্লুসিভ লক

যদি কোনও সংযোগ ডেটা টুকরা আপডেট / সন্নিবেশ / মুছতে চায় তবে তাদের একটি বিশেষ লকটি নিতে হবে। এটি ডেটাতে কোনও লক আটকানো (সেই সংযোগটির জন্য লকটিকে একচেটিয়া তৈরি করা) থেকে অন্য কোনও সংযোগকে বাধা দেয়।

যখন কোনও সংযোগের ডেটাতে একচেটিয়া লক থাকে, তখন অন্য কোনও সংযোগ ডেটা থেকে পড়তে পারে না। এটি লিখিত হওয়ার সাথে সাথে কেউ ডেটা পড়তে পারে না তা নিশ্চিত করে নোংরা পড়া রোধ করতে সহায়তা করে।

রোধক

"ব্লকিং" কেবলমাত্র একটি শব্দ যার অর্থ অন্য সংযোগটি পড়তে বা লিখতে চাইলে কোনও সংযোগ কোনও সংস্থানটিতে একটি লক ধরে থাকে। এটি অগত্যা এটির অর্থ এই নয় যে মালিকের সংযোগ এটি প্রকাশ করবে না, কেবল এটি বর্তমানে এটি ধারণ করে।

এই বলটি একটি সন্তানের সাথে কেসের সাথে তুলনা করুন। বলটি ধারণ করা শিশু অন্য সমস্ত বাচ্চাকে বলটি আটকাতে বাধা দিচ্ছে।

অচল অবস্থা

আমি জানি আপনি এটি জিজ্ঞাসা করেননি, তবে ডেডলকগুলি পেতে এটি আরও একটি ধাপ (এবং এটি ব্লক করার সাথে খুব সম্পর্কিত)।

আপনার প্রত্যেকটির দুটি লক রয়েছে এমন দুটি সংযোগ থাকলে ডেডলকগুলি ঘটতে পারে তবে তারা একে অপরের সংস্থান চায়। এই দৃশ্যে, এটি দুটি বাচ্চার মতো যে প্রত্যেকের একটি বল থাকে তবে অন্যটির বল চায়।

বাচ্চাদের মতো, এই সংযোগগুলি মোটেও ভাগ করে নিতে রাজি নয়। প্রতিটি সংযোগ চালিয়ে যাওয়ার জন্য উভয় সংস্থানগুলিতে অ্যাক্সেস প্রয়োজন। তবে এগুলি স্থায়ী অবরুদ্ধের অবস্থায় রয়েছে। এই অবস্থায়, পিতামাতাকে (ডিবিএমএস) আসতে হবে এবং হেরে যাওয়া বাছাই করতে হবে যাতে কোনও সন্তানের (সংযোগ) উভয় সংস্থার অ্যাক্সেস পেতে পারে।

একবার "বিজয়ী" সংযোগটি হয়ে গেলে, এটি সংস্থানগুলি ছেড়ে দেয় এবং তারপরে অন্যান্য ("হারাতে") সংযোগ উভয় সংস্থানগুলিতে যাওয়ার জন্য আবার চেষ্টা করতে পারে।

সুতরাং, অচলাবস্থার ধারণাটি যেখানে আপনার দুটি সংস্থান রয়েছে যা একে অপরকে অবরুদ্ধ করে চলেছে।


এখানে , আপনি এসকিউএল সার্ভারের দেওয়া বিভিন্ন ধরণের লক এবং বিভিন্ন সংস্থান যা ব্লকিং / ডেডলকগুলি সৃষ্টি করতে পারে সে সম্পর্কে আরও পড়তে পারেন। নিবন্ধটি পুরানো, তবে এটি এসকিউএল সার্ভার 2000 এর জন্য 2008 আর 2 এর মাধ্যমে প্রযোজ্য। (এসকিউএল সার্ভারের পরবর্তী সংস্করণগুলিতে আরও কয়েকটি ধরণের লক যুক্ত হয়েছে তবে এটি আপনাকে একটি সূচনা পয়েন্ট দেবে))


1
@ রিচার্ড, যেমন আপনি উল্লেখ করেছিলেন যে কোনও অচলাবস্থা দেখা দিলে, তখন ডিবিএমএস এসে কোনও ক্ষতিগ্রস্তকে বেছে নেবে .. এটি কি ডিবিএমএস দ্বারা স্বয়ংক্রিয়ভাবে সম্পন্ন হয়েছে? অথবা কোনও ব্যক্তি এটির জন্য ডিবিএমএস শুরু না করা পর্যন্ত একটি খারাপ নকশাকৃত সিস্টেম (যেটি প্রায়শই ডেডলকগুলির অভিজ্ঞতা হয়) বন্ধ হয়ে যাবে?
CenterOrbit

2
এসকিউএল সার্ভারের জন্য, এটি স্বয়ংক্রিয়ভাবে সম্পন্ন হয় (প্রদত্ত ডাটাবেস ডেডলকটি সনাক্ত করতে পারে )। এটি সনাক্ত করতে সমস্যা হতে পারে যদি উদাহরণস্বরূপ, এটি আসলে একটি লাইভ লক
রিচার্ড

দুর্দান্ত এবং খুব পুঙ্খানুপুঙ্খ উত্তর রিচার্ড। লাইভ লকগুলিতে একটি অতিরিক্ত পয়েন্ট (যা সত্যই পুরানো ব্লকিংয়ের সাথে তুলনা বা সম্পর্কিত হওয়া উচিত নয়) ... এসকিউএল আরও লকগুলি নেওয়া যেখানে আটকাবে সেখানে একচেটিয়া লক অপেক্ষা করছে, আইআইআরসি পর পর ৪ টি ওভারল্যাপিং ভাগ করে নেওয়া লকগুলি আটকাবে।
মার্ক স্টোরী-স্মিথ

5

রিচার্ডের দুর্দান্ত ব্যাখ্যা, তবে কেবল অফিসিয়াল ডকুমেন্টেশনের লিঙ্কগুলি যুক্ত করতে চেয়েছিলেন। এই বিষয়গুলি এসকিউএল সার্ভার 2000 এর জন্য লেখা হয়েছিল, তবে অনেকগুলি ধারণা আজও একই রয়েছে:

বুঝতে এবং ব্লক করা এড়ানো

এসকিউএল সার্ভারে লক করা বোঝা

সম্পাদনা করুন - কিছু সংযোজন:

সমস্ত 3 টি খুব সুপরিচিত এসকিউএল সার্ভারের লেখক এবং / অথবা এমভিপিগুলি।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.