MongoDB তে Transactions এর গুরুত্ব

MongoDB Transactions - মঙ্গোডিবি (MongoDB) - Database Tutorials

374

MongoDB Transactions হল একটি গুরুত্বপূর্ণ বৈশিষ্ট্য যা ডেটাবেসের মধ্যে একাধিক অপারেশন (যেমন ডকুমেন্ট ইনসার্ট, আপডেট, ডিলিট) একসাথে সম্পন্ন করতে সহায়তা করে। এটি একাধিক অপারেশনকে একটিমাত্র "অপারেশন" হিসেবে ট্রিট করে এবং নিশ্চিত করে যে সমস্ত অপারেশন সফলভাবে সম্পন্ন না হলে কিছুই পরিবর্তিত হবে না (এটি ACID গুণাবলী অনুসরণ করে)।

MongoDB 4.0 থেকে ট্রানজেকশন সমর্থিত এবং এটি মাল্টি-ডকুমেন্ট ট্রানজেকশন এর জন্য জনপ্রিয়, যা রিলেশনাল ডেটাবেসের ট্রানজেকশনের মতো কাজ করে।


MongoDB Transactions এর মূল বৈশিষ্ট্য

MongoDB তে ট্রানজেকশনগুলির কিছু প্রধান বৈশিষ্ট্য:

  • ACID Properties: MongoDB এর ট্রানজেকশনগুলি ACID (Atomicity, Consistency, Isolation, Durability) গুণাবলী অনুসরণ করে। এর মানে হল যে, একটি ট্রানজেকশনে যতটা সম্ভব সব অপারেশন একসাথে সফলভাবে সম্পন্ন হবে, না হলে কিছুই পরিবর্তিত হবে না।
    • Atomicity: একাধিক অপারেশন একযোগে সম্পন্ন হবে। যদি একটি অপারেশন ব্যর্থ হয়, তবে সমস্ত অপারেশন বাতিল হয়ে যাবে।
    • Consistency: ট্রানজেকশন শেষ হলে ডেটাবেসটি একটি বৈধ অবস্থায় থাকবে।
    • Isolation: একটি ট্রানজেকশনের পরিবর্তন অন্য ট্রানজেকশনের কার্যক্রমের প্রভাব ফেলবে না যতক্ষণ না তা সম্পূর্ণ হয়।
    • Durability: একটি সফল ট্রানজেকশন ডেটাবেসে স্থায়ী হবে, এমনকি সিস্টেম ক্র্যাশের পরেও।
  • মাল্টি-ডকুমেন্ট ট্রানজেকশন: MongoDB তে আপনি একাধিক ডকুমেন্টে একযোগভাবে অপারেশন চালাতে পারবেন এবং এটি ACID ট্রানজেকশনের মধ্যে আসে।
  • সরাসরি পিভটেড কুয়েরি: MongoDB ট্রানজেকশনগুলিতে ইনডেক্স এবং পিভটেড কুয়েরি সমর্থিত, যা কার্যকরী।

MongoDB তে Transaction শুরু করা

MongoDB তে ট্রানজেকশন পরিচালনা করার জন্য, একটি সেশন ব্যবহার করতে হয়। সেশনটি ট্রানজেকশন এর আওতায় থাকা অপারেশনগুলির সমন্বয় করে।

ট্রানজেকশন শুরু করা

MongoDB তে ট্রানজেকশন শুরু করতে সেশন অবজেক্ট ব্যবহার করা হয়। নিচে একটি উদাহরণ দেয়া হলো যেখানে একটি ট্রানজেকশন পরিচালনা করা হয়েছে:

const session = client.startSession(); // সেশন শুরু করা

session.startTransaction(); // ট্রানজেকশন শুরু

try {
  // ডেটাবেস অপারেশন, যেমন ইনসার্ট, আপডেট, ডিলিট
  db.collection('users').insertOne({ name: "John", age: 30 }, { session });

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

MongoDB তে Transaction এর ব্যবহার

MongoDB তে ট্রানজেকশনগুলি একাধিক অপারেশন একসাথে করতে সহায়তা করে, যেমন:

  • একাধিক ডকুমেন্টে ইনসার্ট করা: একটি ট্রানজেকশনের মধ্যে একাধিক ডকুমেন্ট ইনসার্ট করা।
  • একাধিক ডকুমেন্টে আপডেট করা: একাধিক ডকুমেন্টের মধ্যে আপডেট করা এবং নিশ্চিত করা যে, সব কিছু সফল হলে ডেটাবেস আপডেট হবে।
  • ডেটাবেস ডিলিট করা: ডকুমেন্ট মুছে ফেলা এবং নিশ্চিন্ত করা যে, সব অপারেশন একসাথে সম্পন্ন হবে।

MongoDB তে Transaction Rollback এবং Commit

MongoDB তে, একটি ট্রানজেকশনে commitTransaction এবং abortTransaction অপারেশন দুটি ব্যবহার করা হয়:

  • commitTransaction: ট্রানজেকশন সফল হলে এটি সব পরিবর্তন ডেটাবেসে স্থায়ী করে।
  • abortTransaction: যদি কোনো সমস্যা হয়, তবে এটি সমস্ত পরিবর্তন বাতিল করে এবং ডেটাবেস পূর্বের অবস্থায় ফিরে যায়।

MongoDB তে Transaction Example

এখানে একটি উদাহরণ দেওয়া হলো, যেখানে দুটি ডকুমেন্টকে আপডেট করা হয়েছে এবং যদি কোনো এক অপারেশন ব্যর্থ হয়, তবে পুরো ট্রানজেকশন বাতিল হয়ে যাবে।

const session = client.startSession();

session.startTransaction();

try {
  // প্রথম ডকুমেন্ট আপডেট
  db.collection('users').updateOne(
    { name: 'John' },
    { $set: { age: 31 } },
    { session }
  );

  // দ্বিতীয় ডকুমেন্ট আপডেট
  db.collection('users').updateOne(
    { name: 'Jane' },
    { $set: { age: 29 } },
    { session }
  );

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

MongoDB Transaction এর সুবিধা

  • ডেটা এক্সট্রা রিলায়েবিলিটি: MongoDB তে ট্রানজেকশন ব্যবহারের মাধ্যমে আপনি নিশ্চিত করতে পারেন যে ডেটা পরিবর্তনগুলি অটোমেটিকভাবে কার্যকর হবে বা রোলব্যাক হবে, যখন ব্যর্থতা ঘটে।
  • এসি (ACID) ট্রানজেকশন: MongoDB 4.0 থেকে শুরু করে ACID ট্রানজেকশন সমর্থিত, যা ডেটাবেসের সঠিকতা এবং নির্ভরযোগ্যতা নিশ্চিত করে।
  • পারফরম্যান্স: MongoDB এর ট্রানজেকশন পারফরম্যান্সকে ধরে রেখে একাধিক অপারেশন পরিচালনা করতে সহায়তা করে।

সারাংশ

MongoDB তে ট্রানজেকশন ব্যবহার করা খুবই শক্তিশালী এবং এটি ACID গুণাবলী অনুসরণ করে। একাধিক ডকুমেন্টে অপারেশন পরিচালনা করার সময় MongoDB ট্রানজেকশন নিশ্চিত করে যে সব অপারেশন সফলভাবে সম্পন্ন হবে বা যদি কোনো সমস্যা হয়, তবে সব কিছু বাতিল হবে। MongoDB 4.0 থেকে মাল্টি-ডকুমেন্ট ট্রানজেকশন সমর্থিত, যা MongoDB ডেটাবেসের কার্যকারিতা এবং নির্ভরযোগ্যতা বাড়ায়।

Content added By
Promotion

Are you sure to start over?

Loading...