Multi-Version Concurrency Control (MVCC)

Database Tutorials - ডকুমেন্ট ডিবি (DocumentDB) DocumentDB এর আর্কিটেকচার |
214
214

Multi-Version Concurrency Control (MVCC) একটি ডেটাবেস কনসেপ্ট যা ডেটাবেসে একাধিক ক্লায়েন্টের একই ডেটাতে সমান্তরালভাবে অ্যাক্সেস করার সময় ডেটার কনসিস্টেন্সি নিশ্চিত করে। MVCC-এর মাধ্যমে ডেটা পরিবর্তন করার সময় একাধিক ভার্সন তৈরি করা হয়, যার ফলে নন-ব্লকিং রিডস (Non-blocking Reads) এবং লাইট-ওয়েট ট্রানজাকশন্স সম্ভব হয়। এর মাধ্যমে ডেটাবেসের পারফরম্যান্স এবং কনসিস্টেন্সি বজায় থাকে যখন একাধিক ব্যবহারকারী ডেটাবেসের সাথে কাজ করেন।


MVCC কীভাবে কাজ করে?

MVCC-তে, প্রতিটি ডেটাবেস রেকর্ডে একাধিক ভার্সন থাকে, যার মধ্যে পূর্ববর্তী এবং নতুন পরিবর্তনগুলি সংরক্ষিত থাকে। যখন একটি ট্রানজাকশন ডেটাকে পরিবর্তন বা আপডেট করে, তখন নতুন একটি ভার্সন তৈরি হয়, কিন্তু পুরানো ভার্সনটি ডিলিট করা হয় না। এতে পূর্ববর্তী ভার্সনটি অন্য ট্রানজাকশনের জন্য অ্যাক্সেসযোগ্য থাকে।

ডেটা ভার্সনিং

যখন একটি ট্রানজাকশন ডেটার একটি অংশে পরিবর্তন আনে, তখন একটি নতুন ডেটা ভার্সন তৈরি হয়। পুরানো ভার্সনটি তখন পর্যন্ত অপরিবর্তিত থাকে যতক্ষণ না তার ব্যবহারকারী বা ট্রানজাকশন শেষ হয়। এর ফলে:

  • নতুন ট্রানজাকশনগুলি পুরানো ভার্সনগুলিকে অ্যাক্সেস করতে পারে।
  • প্রতিটি ট্রানজাকশন তার নিজস্ব ভিউ দেখবে এবং কোনো একটি ট্রানজাকশন অন্যের কাজের মধ্যে হস্তক্ষেপ করতে পারে না।

MVCC-এর সুবিধা

১. কনকারেন্ট ট্রানজাকশন

MVCC একাধিক ট্রানজাকশনকে সমান্তরালে (concurrently) পরিচালনা করার সুবিধা দেয়। যখন একাধিক ক্লায়েন্ট একই সময়ে ডেটা অ্যাক্সেস বা আপডেট করে, MVCC প্রতিটি ট্রানজাকশনকে তার নিজস্ব ভার্সনে কাজ করতে দেয়, ফলে ট্রানজাকশন লকিং কম হয় এবং ডেটাবেসের পারফরম্যান্স বৃদ্ধি পায়।

২. নন-ব্লকিং রিডস

MVCC ডেটার পরিবর্তনকে ব্লক না করে নন-ব্লকিং রিডস নিশ্চিত করে। এটি নিশ্চিত করে যে যখন একটি ট্রানজাকশন ডেটাকে রিড (পড়া) করছে, তখন অন্য ট্রানজাকশন সেই ডেটা পরিবর্তন করতে পারে। এর ফলে, একটি ট্রানজাকশন রিডের সময় ব্লক হয় না, যা পারফরম্যান্সের উন্নতি করে।

৩. কনসিস্টেন্সি বজায় রাখা

MVCC নিশ্চিত করে যে প্রতিটি ট্রানজাকশন এ্যাটমিক, ইসোলেটেড, এবং কনসিসটেন্ট অবস্থায় কাজ করে, যার ফলে ACID Properties বজায় থাকে।

৪. ডেডলক কমানো

কারণ একাধিক ট্রানজাকশন একই ডেটার উপর কাজ করে না, MVCC ডেডলক (deadlock) হওয়ার সম্ভাবনা কমায়। সাধারণত, লকিং মেকানিজমে ডেডলকের সমস্যা হয়, কিন্তু MVCC-তে একাধিক ট্রানজাকশন তার নিজস্ব ভার্সন নিয়ে কাজ করতে পারে, যার ফলে লকিংয়ের প্রয়োজন পড়ে না।


MVCC-এর কাজের প্রক্রিয়া

  1. তিনটি প্রধান এলিমেন্ট:
    • Transaction ID (TID): প্রতিটি ট্রানজাকশনের একটি ইউনিক আইডি থাকে।
    • Start Timestamp: ট্রানজাকশনটি কখন শুরু হয়েছে।
    • End Timestamp: ট্রানজাকশনটি কখন শেষ হয়েছে (কমপ্লিটেড)।
  2. ডেটা ভার্সনিং:
    • যখন কোনো ট্রানজাকশন ডেটাতে পরিবর্তন করে, একটি নতুন ভার্সন তৈরি হয়।
    • প্রতিটি ভার্সনের সাথে তার TID যুক্ত থাকে, এবং এটি ট্রানজাকশনটির জীবনচক্রের অংশ হিসেবে পরিচালিত হয়।
  3. রিড এবং রাইট অপারেশন:
    • Reads: একটি ট্রানজাকশন অন্য কোনো ট্রানজাকশনের পূর্ববর্তী বা চলমান ভার্সন রিড করতে পারে। এটি সাধারণত ট্রানজাকশনটির Start Timestamp অনুযায়ী কাজ করে।
    • Writes: একটি ট্রানজাকশন যখন ডেটা আপডেট বা লিখে, তখন একটি নতুন ভার্সন তৈরি হয়। তবে, পুরানো ভার্সনটি ব্যবহারকারীদের জন্য অ্যাক্সেসযোগ্য থাকে যতক্ষণ না ট্রানজাকশনটি কমপ্লিট হয়।

MVCC-এর কিছু উদাহরণ

ধরা যাক, একটি অ্যাপ্লিকেশনে একটি কাস্টমারের অ্যাকাউন্ট ব্যালেন্স আপডেট করা হচ্ছে:

  • Transaction A: কাস্টমারের ব্যালেন্স পরিবর্তন করছে এবং একটি নতুন ভার্সন তৈরি হচ্ছে।
  • Transaction B: অন্য একটি ট্রানজাকশন ঐ একই কাস্টমারের ব্যালেন্স পড়ছে। Transaction B আগের ভার্সনটি দেখতে পাবে এবং তার ফলাফল হিসেবে পুরানো ব্যালেন্সটি রিটার্ন করবে, যতক্ষণ না Transaction A সম্পূর্ণ হয়।

এভাবে, দুটি ট্রানজাকশন একে অপরকে ব্লক না করে কাজ করতে পারে, ফলে ডেটা অ্যাক্সেস আরও দ্রুত এবং কার্যকরী হয়।


সারাংশ

Multi-Version Concurrency Control (MVCC) একটি শক্তিশালী কনসিস্টেন্সি মেকানিজম যা একাধিক ট্রানজাকশনকে একসাথে কাজ করতে দেয় এবং ডেটার কনসিস্টেন্সি বজায় রাখে। এটি ব্লকিং রিডস, ট্রানজাকশন লকিং এবং ডেডলক কমাতে সাহায্য করে, পাশাপাশি ACID গুণাবলী নিশ্চিত করে। MVCC বিশেষভাবে গুরুত্বপূর্ণ যখন উচ্চ পরিমাণে ট্রানজাকশন পরিচালনা করতে হয় এবং ডেটাবেসের পারফরম্যান্স এবং কনসিস্টেন্সি বজায় রাখতে হয়।

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

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

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

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