Multi-Document Transactions

Database Tutorials - ডকুমেন্ট ডিবি (DocumentDB) Transactions এবং ACID Properties |
207
207

Multi-Document Transactions হল একটি ডেটাবেস ট্রানজাকশন প্রক্রিয়া, যেখানে একাধিক ডকুমেন্ট বা রেকর্ডের উপর একযোগে পরিবর্তন করা হয়। এটি ডেটাবেসে একাধিক রেকর্ড বা ডকুমেন্ট আপডেট, ইনসার্ট বা ডিলিট করার সময় একে অপরের ওপর নির্ভরশীল থাকে এবং সমস্ত পরিবর্তন একত্রে সফলভাবে প্রয়োগ করা হয় অথবা পুরো ট্রানজাকশনটি ব্যর্থ হয়ে যায়। অর্থাৎ, ট্রানজাকশনটি ACID প্রপার্টি (Atomicity, Consistency, Isolation, Durability) অনুসরণ করে, যাতে ডেটাবেসের কনসিস্টেন্সি এবং সঠিকতা বজায় থাকে।


Multi-Document Transactions এর সুবিধা

১. Atomicity (পারফেক্ট একত্রিতকরণ)

  • Atomicity মানে যে, একাধিক ডকুমেন্টের উপর যেকোনো পরিবর্তন সম্পূর্ণভাবে সফল হতে হবে বা একেবারে ব্যর্থ হতে হবে। যদি কোনো কারণে একটিরও পরিবর্তন সফল না হয়, তাহলে পুরো ট্রানজাকশন ব্যর্থ হয়ে যাবে এবং ডেটাবেসের আগের অবস্থা ফিরে যাবে।

২. Consistency (সঙ্গতি)

  • Consistency নিশ্চিত করে যে, ট্রানজাকশনের শেষে ডেটাবেস একটি সঙ্গত অবস্থায় থাকবে। অর্থাৎ, সকল পরিবর্তন এবং আপডেট ডেটাবেসের নিয়ম এবং শর্তাবলী মেনে হবে।

৩. Isolation (বিচ্ছিন্নতা)

  • Isolation মানে হল যে, একটি ট্রানজাকশনের পরিবর্তন অন্য কোনো ট্রানজাকশনের পরিবর্তনের সঙ্গে মিশবে না। একে অপরের পরিবর্তনের উপর কোনো প্রভাব ফেলবে না, যতক্ষণ না একটি ট্রানজাকশন সম্পূর্ণ হয়।

৪. Durability (স্থায়িত্ব)

  • Durability নিশ্চিত করে যে, ট্রানজাকশন সম্পন্ন হলে, তার পরিবর্তনগুলি স্থায়ীভাবে ডেটাবেসে সঞ্চিত থাকবে এবং সিস্টেম ক্র্যাশ বা অন্যান্য সমস্যা সত্ত্বেও হারিয়ে যাবে না।

Multi-Document Transactions কিভাবে কাজ করে?

ধরা যাক, আপনি একটি ডেটাবেসে দুইটি ডকুমেন্ট আপডেট করতে চান:

  • প্রথমে আপনি একটি ডকুমেন্টে কিছু পরিবর্তন করবেন।
  • তারপর দ্বিতীয় ডকুমেন্টে কিছু পরিবর্তন করবেন।

এই দুইটি অপারেশন যদি একই সময়ে একযোগে সম্পন্ন হয়, তবে Multi-Document Transactions নিশ্চিত করবে যে, যদি একটি অপারেশন ব্যর্থ হয়, তবে অন্যটি ফেইল করবে না এবং কোনো ডেটা কনসিস্টেন্সি ক্ষতিগ্রস্ত হবে না। যদি একটি ট্রানজাকশন সফল হয়, তবে অন্যটি যথাযথভাবে আপডেট হবে। এবং যদি কোন কারণে একটি অপারেশন ব্যর্থ হয়, তখন সবকিছু আগের অবস্থায় ফিরে আসবে (rollback)।

উদাহরণ:

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

  1. আপনি Account A-এ টাকা যোগ করতে চান।
  2. পাশাপাশি, Account B থেকে টাকা বিয়োগ করতে চান।

এই দুটি অপারেশন যদি একসাথে সম্পন্ন না হয়, তবে এর ফলে ডেটাবেসে অস্বাভাবিক অবস্থা তৈরি হতে পারে (যেমন, একটি অ্যাকাউন্টে টাকা বৃদ্ধি পাবে কিন্তু অন্য অ্যাকাউন্টে কমে যাবে)। Multi-Document Transaction এই পরিবর্তন দুটি একসাথে করতে সাহায্য করবে, এবং যদি একটি অপারেশন ব্যর্থ হয়, তবে পুরো প্রক্রিয়া রোলব্যাক (rollback) হয়ে যাবে, যাতে ডেটাবেসের সঙ্গতি বজায় থাকে।


MongoDB এবং DocumentDB তে Multi-Document Transactions

MongoDB এবং DocumentDB উভয়ই Multi-Document Transactions সমর্থন করে, তবে এই ট্রানজাকশনগুলি ব্যবহারের সময় কিছু সীমাবদ্ধতা থাকতে পারে।

MongoDB:

MongoDB 4.0 সংস্করণ থেকে Multi-Document Transactions সমর্থন শুরু হয়েছে। MongoDB-তে একটি ট্রানজাকশন শুরু করার জন্য আপনি startSession এবং withTransaction ব্যবহার করতে পারেন:

const session = client.startSession();
session.startTransaction();

try {
    // Document A-তে পরিবর্তন
    db.collection('accounts').updateOne({ _id: accountA }, { $inc: { balance: 100 } }, { session });
    
    // Document B-তে পরিবর্তন
    db.collection('accounts').updateOne({ _id: accountB }, { $inc: { balance: -100 } }, { session });

    // যদি সবকিছু ঠিক থাকে, ট্রানজাকশন কমিট করুন
    session.commitTransaction();
} catch (error) {
    // কোন সমস্যা হলে, ট্রানজাকশন রোলব্যাক করুন
    session.abortTransaction();
} finally {
    session.endSession();
}

DocumentDB:

DocumentDB-তে MongoDB API সমর্থন করা হয়, তাই MongoDB-এর মতোই Multi-Document Transactions ব্যবহৃত হতে পারে, তবে এটি আরও কিছু সীমাবদ্ধতার মধ্যে পড়তে পারে, যেমন শুধুমাত্র কিছু নির্দিষ্ট MongoDB ভার্সনে এই ফিচারটি কাজ করে।


সারাংশ

Multi-Document Transactions একটি শক্তিশালী ফিচার যা একাধিক ডকুমেন্টের উপর একযোগে পরিবর্তন করতে ব্যবহৃত হয়, এবং এটি ডেটাবেসের ACID properties বজায় রাখতে সাহায্য করে। এটি ডেটাবেসে Atomicity, Consistency, Isolation, এবং Durability নিশ্চিত করে, যাতে একাধিক ডকুমেন্টের পরিবর্তন একযোগে সফল বা ব্যর্থ হয় এবং ডেটা সঠিক ও নিরাপদ থাকে। MongoDB এবং DocumentDB-তে এই ফিচারটি ব্যবহৃত হয় এবং তা নিশ্চিত করে যে ডেটাবেসের সঙ্গতি এবং সুরক্ষা বজায় থাকবে।

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

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

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

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