Isolation Level এবং Concurrency Control

Database Tutorials - অ্যাপাচি ডার্বি (Apache Derby) ডেটাবেজ ট্রানজাকশন এবং সমালোচনা |
239
239

Isolation Level এবং Concurrency Control হল ডেটাবেস ট্রানজেকশন ম্যানেজমেন্টের দুটি গুরুত্বপূর্ণ ধারণা, যা ডেটাবেসের কর্মক্ষমতা, এক্সেস, এবং ডেটার সঠিকতা নিশ্চিত করতে সাহায্য করে। এই ধারণাগুলি মূলত ACID (Atomicity, Consistency, Isolation, Durability) গুণাবলীকে বাস্তবায়ন করতে ব্যবহৃত হয়, যেখানে Isolation একটি গুরুত্বপূর্ণ উপাদান।


Isolation Level

Isolation Level একটি ডেটাবেস ট্রানজেকশন কনসেপ্ট, যা ট্রানজেকশনগুলির মধ্যে সম্পর্কের নির্দিষ্ট স্তর নির্ধারণ করে, অর্থাৎ, একাধিক ট্রানজেকশন একই সময়ে চলার সময় তারা একে অপরের ডেটাকে কতটা প্রভাবিত বা সংস্পর্শ করতে পারে তা নির্ধারণ করে। Isolation level সাধারণত SQL ডেটাবেস সিস্টেমে নির্দিষ্ট করা হয়।

Isolation Levels এর ধরন

SQL ডেটাবেসে সাধারণত ৪টি Isolation Level থাকে:

  1. Read Uncommitted:
    • সর্বনিম্ন isolation level।
    • এই স্তরে, একটি ট্রানজেকশন অন্য ট্রানজেকশন দ্বারা কমিট না হওয়া ডেটা (dirty data) পড়তে পারে।
    • Dirty reads এর সমস্যা থাকে, যেখানে একটি ট্রানজেকশন অন্য ট্রানজেকশনের অবস্থা পরিবর্তনকারী ডেটা পড়তে পারে যা পরে রোলব্যাক হতে পারে।
  2. Read Committed:
    • এই স্তরে, ট্রানজেকশন শুধুমাত্র সেগুলি পড়তে পারে যা অন্য ট্রানজেকশন দ্বারা কমিট করা হয়েছে।
    • Non-repeatable reads হতে পারে, যেখানে একটি ট্রানজেকশন প্রথমবার ডেটা পড়ার পর অন্য ট্রানজেকশন সেই ডেটা পরিবর্তন করে, ফলে প্রথম ট্রানজেকশনটি যখন আবার ডেটা পড়বে তখন আগের মতো থাকবেনা।
  3. Repeatable Read:
    • এই স্তরে, যখন একটি ট্রানজেকশন ডেটা পড়তে শুরু করে, তখন সেই ডেটা পরবর্তী সব ডেটা পড়ার জন্য অপরিবর্তিত থাকে যতক্ষণ না ট্রানজেকশনটি শেষ হয়।
    • Phantom reads হতে পারে, যেখানে নতুন রেকর্ড যুক্ত হওয়ার কারণে কুয়েরি ফলাফল পরিবর্তিত হতে পারে।
  4. Serializable:
    • সবচেয়ে শক্তিশালী isolation level।
    • এই স্তরে, একাধিক ট্রানজেকশন একে অপরকে সম্পূর্ণভাবে সিস্টেমে বিচ্ছিন্ন করে এবং এটি পুরোপুরি এমনভাবে কার্যকর করে যেন ট্রানজেকশনগুলি একে অপরের উপর কখনও প্রভাব ফেলতে না পারে।
    • এটি Serializable ট্রানজেকশন কনসিস্টেন্সি রক্ষা করে, তবে এটি ডেটাবেসের কর্মক্ষমতা কমাতে পারে, কারণ একাধিক ট্রানজেকশন একে অপরকে অপেক্ষা করে।

Isolation Level এবং Performance

  • Read Uncommitted: সবচেয়ে কম ট্রানজেকশন লকিং এবং ল্যাটেন্সি, তবে এটি dirty reads, non-repeatable reads এবং phantom reads এর মতো সমস্যা সৃষ্টি করতে পারে।
  • Read Committed: কিছুটা নিরাপদ, তবে non-repeatable reads এখনও হতে পারে।
  • Repeatable Read: অধিক নির্ভরযোগ্য, তবে phantom reads এর সমস্যা থাকতে পারে।
  • Serializable: সবচেয়ে নিরাপদ, কিন্তু ডেটাবেসের কর্মক্ষমতা খুব কমিয়ে দেয়।

Concurrency Control

Concurrency Control হল সেই প্রক্রিয়া যা নিশ্চিত করে যে একাধিক ট্রানজেকশন একই সময়ে ডেটাবেসে পরিবর্তন করে না এবং ডেটা সঠিক থাকে। ডেটাবেস সিস্টেমে একাধিক ট্রানজেকশন একযোগে চালানোর সময়ে, Concurrency Control সমস্যা সমাধান করে যেমন:

  • Lost Updates: একাধিক ট্রানজেকশন একই ডেটা আপডেট করার চেষ্টা করলে একটি আপডেট হারিয়ে যেতে পারে।
  • Temporary Inconsistencies: একাধিক ট্রানজেকশন একই ডেটা পড়তে পারে এবং আপডেট করতে পারে, যার ফলে অস্থায়ী অসামঞ্জস্য সৃষ্টি হতে পারে।
  • Uncommitted Data: অন্য ট্রানজেকশনের কমিট না হওয়া ডেটা ব্যবহার করে ডেটাবেস সঠিক হতে পারে না।
  • Inconsistent Retrievals: ডেটাবেসের মধ্যে আপডেট হতে থাকা ডেটা থেকে অনির্ভরযোগ্য তথ্য পাওয়া যেতে পারে।

Concurrency Control Techniques

  1. Pessimistic Concurrency Control (Pessimistic Locking):
    • এই কৌশলে, ডেটাবেস একটি লক তৈরি করে যাতে অন্য ট্রানজেকশন ওই ডেটাতে কাজ না করতে পারে যতক্ষণ না বর্তমান ট্রানজেকশনটি শেষ হয়।
    • এটি exclusive locks এবং shared locks ব্যবহার করে।
  2. Optimistic Concurrency Control (Optimistic Locking):
    • এখানে লকিং ব্যাবহার করা হয় না, তবে ট্রানজেকশন শেষ হওয়ার পর, একটি validation phase থাকে যেখানে ডেটার পরিবর্তনগুলি পরীক্ষিত হয়। যদি ডেটায় কোন কনফ্লিক্ট থাকে, তাহলে ট্রানজেকশন রোলব্যাক করা হয়।
    • এটি সাধারণত timestamp-based বা version-based সিস্টেম ব্যবহার করে।
  3. Two-Phase Locking (2PL):
    • এটি একটি নির্ভরযোগ্য কৌশল যা ট্রানজেকশন দুটি ধাপে লক ম্যানেজ করে:
      • Growing phase: ট্রানজেকশনটি নতুন লক প্রাপ্ত করে।
      • Shrinking phase: একবার লকগুলো মুক্ত করলে আর নতুন লক নেয়া হয় না।
    • এটি Serializable isolation level এ পৌঁছানোর একটি উপায়।

উপসংহার

Isolation Level এবং Concurrency Control ডেটাবেস ট্রানজেকশন ম্যানেজমেন্টের দুটি অত্যন্ত গুরুত্বপূর্ণ অংশ। Isolation Level ট্রানজেকশনগুলির মধ্যে কীভাবে একে অপরের প্রভাব হ্রাস করবে তা নির্ধারণ করে এবং Concurrency Control নিশ্চিত করে যে একাধিক ট্রানজেকশন একসাথে চললেও ডেটা সঠিক থাকবে। বিভিন্ন অ্যাপ্লিকেশনে, পারফরম্যান্স এবং ডেটা সঠিকতার জন্য সঠিক Isolation Level এবং Concurrency Control কৌশল নির্বাচন করা প্রয়োজন।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion