MongoDB பல-ஆவணம் ACID பரிவர்த்தனைகளை ஆதரிக்கிறது (replica sets க்கு v4.0 முதல், sharded clusters க்கு v4.2 முதல்) — பல ஆவணங்கள்/collections முழுவதும் செயல்பாடுகளைக் குழுவாக்குவதால் அவை அனைத்தும் வெற்றிபெறுகின்றன அல்லது அனைத்தும் தோல்வியடைகின்றன. இருப்பினும், MongoDB இன் ஆவணம் மாதிரி பெரும்பாலும் பரிவர்த்தனைகளை தேவையற்றதாக ஆக்குகிறது அணு (atomic) ஒற்றை-ஆவணம் செயல்பாடுகளின் மூலம்.
ஒற்றை-ஆவணம் செயல்பாடுகள் ஏற்கனவே அணுவாக உள்ளன
KEY POINT: operations on a SINGLE document are ALWAYS atomic in MongoDB.
→ Because related data is often EMBEDDED in one document, many operations that would
need a transaction in SQL are a single atomic document update in MongoDB.
→ Good schema design (embedding) often eliminates the NEED for multi-doc transactions.
// updating a document and its embedded array atomically — NO transaction needed
db.accounts.updateOne(
{ _id: id },
{ $inc: { balance: -100 }, $push: { transactions: { amount: -100 } } }
); // atomic — both changes succeed or fail together (single document)
பல-ஆவணம் பரிவர்த்தனைகள் (உண்மையில் தேவைப்படும் போது)
// for operations across MULTIPLE documents/collections that must be atomic
const session = db.getMongo().startSession();
session.startTransaction();
try {
db.accounts.updateOne({ _id: 1 }, { $inc: { balance: -100 } }, { session });
db.accounts.updateOne({ _id: 2 }, { $inc: { balance: 100 } }, { session });
session.commitTransaction(); // both succeed together
} catch (e) {
session.abortTransaction(); // or both roll back
} finally {
session.endSession();
}
பல-ஆவணம் பரிவர்த்தனைகள் (session ஐ பயன்படுத்தி) ஆவணங்கள் முழுவதும் ACID உத்தரவாதங்களை வழங்குகின்றன — தனி கணக்கு ஆவணங்களுக்கு இடையில் பரிமாற்றம் செய்வது போன்ற சந்தர்ப்பங்களுக்கு.
பரிவர்த்தனைகளை மிதமாகப் பயன்படுத்தவும்
✓ Transactions are available and provide ACID across documents WHEN NEEDED
✗ But they have PERFORMANCE COSTS (overhead, locking) — don't overuse them
→ PREFER good schema design (embedding related data) so single-document atomic
operations suffice. Use multi-document transactions only when data genuinely
spans documents and must be consistent (e.g. money transfers between accounts).
→ Requires a replica set (not standalone).
இது ஏன் முக்கியமானது
MongoDB பரிவர்த்தனைகளைப் புரிந்துகொள்ளுதல் — மேலும் முக்கியமாக அவை எப்போது தேவைப்படுகின்றன என்பதை — MongoDB பயன்பாடுகளில் தரவு நிலைத்தன்மையை உறுதிசெய்ய முக்கியம், எனவே சரியான அமைப்புகளைக் கட்டுவதற்கு இது மূல்யமான அறிவாகும்.
असबচे महत्वपूर्ण अंतर्दृष्टि यह है कि ஒற்றை-ஆவணம் செயல்பாடுகள் MongoDB இல் எப்போதும் அணுவாக உள்ளன, மேலும் ஆவணம் மாதிரி தொடர்புடைய தரவை ஒரு ஆவணத்தில் உட்பொதிக்க ஊக்குவிப்பதால், பல செயல்பாடுகள் ஒரு relational database இல் பரிவர்த்தனை தேவை (தொடர்புடைய தரவு அட்டவணைகள் முழுவதும் பிரிந்திருக்கும் போது) MongoDB இல் ஒரு ஒற்றை அணு ஆவணம் புதுப்பிப்பு — எனவே நல்ல schema வடிவமைப்பு பெரும்பாலும் பல-ஆவணம் பரிவர்த்தனைகளின் தேவையை நீக்குகிறது.
இது ஒரு முக்கியமான கருத்தாய்தல் புள்ளி: MongoDB இன் ஆவணத்திற்கான atomicity, உட்பொதிப்பு உடன் சேர்ந்து, பரிவர்த்தனைகள் இல்லாமல் பல நிலைத்தன்மை தேவைகளைக் கையாளுகிறது.
MongoDB பல-ஆவணம் ACID பரிவர்த்தனைகளை ஆதரிக்கிறது (v4.0+ முதல்) பல ஆவணங்கள்/collections முழுவதும் செயல்பாடுகள் உண்மையில் பரவும் சந்தர்ப்பங்களுக்கு (தனி கணக்கு ஆவணங்களுக்கு இடையில் பரிமாற்றம் செய்வது போன்றவை) என்பதைப் புரிந்துகொள்ளுதல் முக்கியம் — அவை உண்மையில் தேவைப்படும் போது கிடைக்கின்றன, அனைத்து-அல்லது-எதுவுமில்லை உத்தரவாதங்களை வழங்குகின்றன.
சம மூல்யமாக முக்கியமான பரிவர்த்தனைகளை மிதமாகப் பயன்படுத்த வேண்டும் என்பது: அவற்றுக்கு செயல்திறன் செலவுகள் உள்ளன (overhead, locking), எனவே விரும்பிய அணுகுமுறை நல்ல schema வடிவமைப்பு (உட்பொதிப்பு) ஆகும் அதனால் ஒற்றை-ஆவணம் அணு செயல்பாடுகள் போதுமானவை, பல-ஆவணம் பரிவர்த்தனைகளை உண்மையான குறுக்கு-ஆவணம் நிலைத்தன்மை தேவைகளுக்கு ஒதுக்கி வைத்திருக்கின்றன.
இதைப் புரிந்துகொள்ளுதல் — ஒற்றை-ஆவணம் atomicity, பல-ஆவணம் செயல்பாடுகளை அணு செயல்பாடுகளின் தேவையை நீக்குகிறது, பல-ஆவணம் பரிவர்த்தனைகள் இருக்கின்றன உண்மையில் தேவைப்படும் போது, மேலும் பரிவர்த்தனைகளை விட வடிவமைப்பிற்கு விருப்பம் — நல்ல MongoDB판断ஐ பிரதிபலிக்கிறது.
தரவு நிலைத்தன்மை முக்கியமாக இருப்பதால் மற்றும் MongoDB இன் அணுகுமுறை (ஆவணம் atomicity + optional பரிவர்த்தனைகள்) SQL இன் பரிவர்த்தனை-மையமான மாதிரியிலிருந்து வேறுபடுவதால், MongoDB பரிவர்த்தனைகளைப் புரிந்துகொள்ளுதல் — குறிப்பாக ஒற்றை-ஆவணம் செயல்பாடுகள் அணுவாக உள்ளன, உட்பொதிப்பு பரிவர்த்தனை தேவைகளைக் குறைக்கிறது, மேலும் பல-ஆவணம் பரிவர்த்தனைகள் கிடைக்கின்றன ஆனால் விচক்ஷணமாக பயன்படுத்த வேண்டும் — மதிப்பமான, முக்கியமான அறிவு MongoDB பயன்பாடுகளில் நிலைத்தன்மையை சரியாகவும் திறமையாகவும் உறுதிசெய்ய, MongoDB இன் நிலைத்தன்மை மாதிரி மற்றும் நல்ல வடிவமைப்பு நடைமுறைகளின் புரிதலை பிரதிபலிக்கும் ஒரு விஷயம்.
