V4 এর প্রকৃত অর্থ হওয়ার আগে মঙ্গোডিবি এসিডি মেনে চলছিল না?


226

আমি কোনও ডাটাবেস বিশেষজ্ঞ নই এবং কোনও আনুষ্ঠানিক কম্পিউটার বিজ্ঞানের পটভূমি নেই, তাই আমার সাথে সহ্য করুন। আমি বাস্তব ধরণের নেতিবাচক জিনিসগুলি জানতে চাই যা ঘটতে পারে যদি আপনি ভি 4 এর আগে একটি পুরানো মঙ্গোডিবি সংস্করণ ব্যবহার করেন যা এসিডি অনুগত ছিল না । এটি যে কোনও এসআইডি নন কমপ্লায়েন্ট ডাটাবেসের ক্ষেত্রে প্রযোজ্য।

আমি বুঝতে পারি যে মঙ্গোডিবি পারমাণবিক অপারেশন করতে পারে , তবে তারা বেশিরভাগ পারফরম্যান্সের কারণে "প্রথাগত লকিং এবং জটিল লেনদেনকে সমর্থন করে না"। আমি ডাটাবেস লেনদেনের গুরুত্ব এবং আপনার ডেটাবেস যখন কোনও ব্যাংকের জন্য রয়েছে তার উদাহরণ এবং আপনি কয়েকটি রেকর্ড আপডেট করছেন যা সমস্ত সিঙ্কে থাকা দরকার, আপনি যদি চান যে লেনদেনটি প্রাথমিক অবস্থায় ফিরে আসে তবে সেখানে বিদ্যুৎ বিভ্রাট সুতরাং equণ সমান ক্রয়, ইত্যাদি।

কিন্তু যখন আমি মঙ্গোডিবি সম্পর্কে কথোপকথনে যাই, আমাদের মধ্যে যারা ডাটাবেসগুলি বাস্তবে কার্যকর করা হয় তার প্রযুক্তিগত বিবরণ জানেন না তারা এই জাতীয় বিবৃতি ছড়িয়ে দেওয়া শুরু করে:

মঙ্গোডিবি মাইএসকিউএল এবং পোস্টগ্র্রেসের চেয়ে দ্রুতগতি সম্পন্ন, তবে মিলিয়ন মিলিয়ন জনের মতো একটি ছোট্ট সুযোগ আছে যে এটি "সঠিকভাবে সংরক্ষণ করবে না"।

এই "সঠিকভাবে সংরক্ষণ করবে না" অংশটি এই বোঝার প্রতি নির্দেশ করছে: আপনি মংগোডিবিতে যে মুহুর্তে লিখছেন ততক্ষণে যদি বিদ্যুৎ বিভ্রাট থাকে তবে একটি বিশেষ রেকর্ডের সুযোগ রয়েছে (বলুন আপনি 10 টি বৈশিষ্ট্যযুক্ত নথিতে পৃষ্ঠাগুলি ট্র্যাক করছেন প্রতিটি), যে কোনও নথিতে কেবলমাত্র 5 টি বৈশিষ্ট্য সংরক্ষণ করা হয়েছে ... যার অর্থ সময়ের সাথে সাথে আপনার পৃষ্ঠাভিউ কাউন্টারগুলি "সামান্য" বন্ধ হয়ে যাবে। আপনি কখনই জানতে পারবেন না যে আপনি জানেন যে সেগুলি 99.999% সঠিক হবে, তবে 100% নয়। এটি কারণ, আপনি যদি এটিকে বিশেষত একটি মঙ্গডব পারমাণবিক অপারেশন না করেন তবে অপারেশনটি পারমাণবিক হওয়ার নিশ্চয়তা নেই।

সুতরাং আমার প্রশ্নটি হল, কখন এবং কেন মঙ্গোডিবি "সঠিকভাবে সংরক্ষণ করতে পারে না" তার সঠিক ব্যাখ্যাটি কী? এসিডের কোন অংশ এটি সন্তুষ্ট করে না, এবং কোন পরিস্থিতিতে, এবং যখন আপনি এই তথ্যটি 0.001% বন্ধ করবেন তখন আপনি কীভাবে জানবেন? এটি কি কোনওভাবে ঠিক করা যায় না? যদি তা না হয় তবে এর অর্থ এই মনে হচ্ছে যে আপনি আপনার usersটেবিলের মতো জিনিস মঙ্গোডিবিতে সঞ্চয় করবেন না কারণ কোনও রেকর্ড সংরক্ষণ নাও করতে পারে। তবে আবার, সেই 1 / 1,000,000 ব্যবহারকারীর কেবল "আবার সাইন আপ করার চেষ্টা করতে" দরকার হতে পারে, না?

আমি কেবল মঙ্গোডিবি-র মতো এসিআইডি নন-কমপ্লায়েন্ট ডাটাবেসে কখন / কেন নেতিবাচক জিনিসগুলি ঘটে তার একটি তালিকা খুঁজছি এবং আদর্শভাবে যদি কোনও মানক কাজের (যেমন ডেটা সাফ করার জন্য একটি পটভূমির কাজ চালানো, বা কেবল এটির জন্য এসকিউএল ব্যবহার করা ইত্যাদি) থাকে তবে list ।

উত্তর:


133

মঙ্গোডিবি-র সাথে আপনি যে জিনিসটি হারাবেন তা হ'ল মাল্টি-কালেকশন (টেবিল) লেনদেন। মঙ্গোডিবিতে পারমাণবিক সংশোধক কেবলমাত্র একটি নথির বিপরীতে কাজ করতে পারে।

আপনার যদি কোনও জিনিস তালিকা থেকে সরানো এবং একই সাথে কারও আদেশে যুক্ত করতে হয় - আপনি পারবেন না। যদি না দুটি জিনিস - তালিকা এবং আদেশগুলি একই নথিতে উপস্থিত থাকে (যা তারা সম্ভবত না করে)।

আমি যে অ্যাপ্লিকেশনটিতে কাজ করছি তার মধ্যে আমি খুব একই সমস্যার মুখোমুখি হয়েছি এবং এর মধ্যে থেকে দুটি বেছে নেওয়ার সম্ভাব্য সমাধান রয়েছে:

1) আপনার ডকুমেন্টগুলিকে যতটা সম্ভব আপনি গঠন করুন এবং পারমাণবিক সংশোধকগুলি যতটা সম্ভব আপনি ব্যবহার করতে পারেন এবং অবশিষ্ট বিটের জন্য, সিঙ্কের বাইরে থাকা রেকর্ডগুলি সাফ করার জন্য একটি পটভূমি প্রক্রিয়া ব্যবহার করুন। উদাহরণস্বরূপ, আমি জায়গুলি থেকে আইটেমগুলি সরিয়েছি এবং এটিকে পারমাণবিক সংশোধক ব্যবহার করে একই নথির একটি সংরক্ষিত ইনভেন্টরি অ্যারে যুক্ত করি।

এটি আমাকে সর্বদা জানতে দেয় যে আইটেমগুলি ইনভেন্টরিতে পাওয়া যায় না (কারণ সেগুলি গ্রাহক দ্বারা সংরক্ষিত)। গ্রাহক চেক আউট হয়ে গেলে, আমি তখন আইটেমগুলি রিজার্ভড ইনভেন্টরি থেকে সরিয়ে ফেলি। এটি কোনও স্ট্যান্ডার্ড লেনদেন নয় এবং যেহেতু গ্রাহক কার্টটি পরিত্যাগ করতে পারে, তাই পরিত্যক্ত কার্টগুলি সন্ধান করতে এবং সংরক্ষিত তালিকাটি উপলভ্য তালিকা পুলে ফিরিয়ে আনতে আমার কিছু পটভূমি প্রক্রিয়া দরকার।

এটি স্পষ্টতই আদর্শের চেয়ে কম, তবে এটি একটি বৃহত প্রয়োগের একমাত্র অংশ যেখানে মঙ্গোদব প্রয়োজনীয়তার সাথে পুরোপুরি ফিট করে না। এছাড়াও, এটি নির্দ্বিধায় এ পর্যন্ত কাজ করে। অনেক পরিস্থিতিতে এটি সম্ভব নাও হতে পারে তবে আমি যে নথির কাঠামোটি ব্যবহার করছি তা এটি ভাল ফিট করে।

2) মঙ্গোডিবি এর সাথে একযোগে একটি লেনদেনের ডাটাবেস ব্যবহার করুন। মংডোডিবি (বা অন্য কোনও নোএসকিউএল) এটি সর্বোত্তমভাবে কাজ করার সুযোগ দেওয়ার সময় যে জিনিসগুলির একেবারে প্রয়োজন তাদের জন্য লেনদেন সরবরাহ করতে মাইএসকিউএল ব্যবহার করা সাধারণ।

যদি # 1 থেকে আমার সমাধান দীর্ঘমেয়াদে কাজ না করে, আমি মাইএসকিউএল এর সাথে মঙ্গোডিবি সংযুক্ত করার বিষয়ে আরও তদন্ত করব তবে আপাতত # 1 আমার প্রয়োজনীয়তার জন্য উপযুক্ত।


27
" মঙ্গোডিবিতে পারমাণবিক সংশোধকগুলি কেবল একটি একক সংগ্রহের বিরুদ্ধে কাজ করতে পারে " => আমার মনে হয় আপনি "একক দলিলের বিপরীতে" বোঝানো হয়েছিল ।
Assylias

2
চমৎকার তথ্য, সাধারণত মাইএসকিউএল ব্যবহারের পরামর্শ ব্যতীত একটি দুর্দান্ত উত্তর।
ডগ মোলিনাক্স

Mong মংগোডিবি-র সাথে আপনি যে জিনিসটি হারাবেন সেটি হ'ল মাল্টি-কালেকশন (টেবিল) লেনদেন। মঙ্গোডিবি-তে পারমাণবিক সংশোধনকারী কেবলমাত্র একটি দলিলের বিরুদ্ধে কাজ করতে পারে - মঙ্গো ডক থেকে ( ডকস.মোংডোব / ভি ৩.২ / কোর / রাইটার- অপারেশনস-অ্যাটমিকিটি ): " মঙ্গোডিবিতে একটি লিখন অপারেশন একক স্তরের পারমাণবিক দস্তাবেজ, এমনকি যদি অপারেশনটি একক নথির মধ্যে একাধিক এম্বেড থাকা ডকুমেন্টগুলিকে পরিবর্তন করে। "
yoav.str

5
মাল্টি-ডকুমেন্ট এসিডি লেনদেনের অভাব এখন আর নেই। মঙ্গোডিবি ঘোষণা করেছে যে তারা ভি 4.0 এ আসছে। Mongodb.com/blog/post/m Multi
গ্রিগরি

1
আপাতত, যেহেতু মঙ্গোডিবি ৪.০ হ'ল বহু-নথি লেনদেনের সাথে এসিডি অনুগত মঙ্গডব.com/ ট্রান্সঅ্যাকশনস । একটি সময়ে কটাক্ষপাত আছে mongodb.com/blog/post/...
Ratah

134

এটি আসলে সঠিক নয় যে মঙ্গোডিবি এসিডি-অনুগত নয়। বিপরীতে, মঙ্গোডিবি ডকুমেন্ট স্তরে এসিডি-সংকলক ।

একক নথিতে যে কোনও আপডেট

  • পারমাণবিক: এটি হয় সম্পূর্ণরূপে সম্পূর্ণ হয় বা এটি হয় না
  • সামঞ্জস্যপূর্ণ: কোনও পাঠক একটি "আংশিক প্রয়োগ" আপডেট দেখতে পাবেন না
  • বিচ্ছিন্ন: আবার, কোনও পাঠক "নোংরা" পড়া দেখবেন না
  • টেকসই: (যথাযথ লেখার উদ্বেগ সহ)

মঙ্গোডিবির যা নেই তা হ'ল লেনদেন - এটি হ'ল মাল্টিপল ডকুমেন্ট আপডেটগুলি যা আবার ঘূর্ণায়মান হতে পারে এবং এটি এসিডি-সম্মতিযুক্ত।

নোট করুন যে আপনি দু'-দফার কমিট ব্যবহার করে একটি একক দস্তাবেজে এসিডি-সম্মতিযুক্ত আপডেটের শীর্ষে লেনদেনগুলি তৈরি করতে পারেন ।


3
নোট করুন যে দ্বি-পর্যায়ের কমিটের লেনদেনগুলি এসিডি-সম্মতিযুক্ত নয়। কোনও কারণে আমি লিঙ্কটি অনুসরণ না করা পর্যন্ত আমি বিপরীতে অনুমান করেছি।
জাস্টিন সি

1
লেখার বিষয়ে উদ্বেগের কনফিগারেশন নির্বিশেষে নথির স্তরে বিতরণ করা মংগাডিবির স্থায়িত্ব সম্পর্কে কিছু প্রশ্ন রয়েছে। ওপেন-সোর্স সরঞ্জাম জ্যাপসন আবিষ্কার করেছে যে এমনকি নেটওয়ার্ক পার্টিশনের মুখে ডেটা হারিয়ে যেতে পারে এমনকি MAJORITY লেখার উদ্বেগের সাথেও। লিখিত আপটি এখানে দেখুন: aphyr.com/posts/284-call-me-maybe-mongodb
jrullmann

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

5
ইয়ারের সাথে একমত "ডকুমেন্ট পর্যায়ে এসিডি-সম্মতিযুক্ত" কোনও বিক্রয় পয়েন্ট নয়। এটির মূল অর্থ "এসিডি কমপ্লায়েন্ট নয়"। এসিডি কখনই "মাত্র একটি সারি / ডকুমেন্ট / সত্তা" সম্পর্কে বোঝানো হয়নি। এটি সম্পূর্ণ ডাটাবেস জুড়ে আপনার ডেটা ধারাবাহিক রাখার বিষয়ে।
জোশুয়া.পালিং

34

"স্টারবাকস টু ফেজ কমিট ব্যবহার করে না" তে একটি ভাল ব্যাখ্যা রয়েছে ।

এটি নোএসকিউএল ডাটাবেসগুলির বিষয়ে নয়, তবে এটি সেই বিন্দুর উদাহরণ দেয় যে কখনও কখনও আপনি কোনও লেনদেন হারাতে বা অস্থায়ীভাবে আপনার ডেটাবেসকে অসামঞ্জস্য অবস্থায় রাখতে পারেন।

আমি এটিকে এমন কিছু হিসাবে বিবেচনা করব না যা "ফিক্সড" হওয়া দরকার। ফিক্সটি হ'ল একটি এসিডি-কমপ্লায়েন্ট রিলেশনাল ডাটাবেস ব্যবহার করা। আপনি কোনও নোএসকিউএল বিকল্প চয়ন করেন যখন এর আচরণটি আপনার অ্যাপ্লিকেশন প্রয়োজনীয়তা পূরণ করে।


1
যে কোন উপমা মত এর সীমাবদ্ধতা আছে। সফ্টওয়্যারগুলিতে, নতুন অ্যারে [ক্যাশিয়ার্স] তৈরি করা সহজ এবং এগুলি প্রতিটি সিঙ্ক্রোনাস লেনদেন প্রক্রিয়াজাত করতে পারে, তবে এর আসল বিশ্বব্যাপী হাস্যকর ব্যয় হবে।
এইচআরজে

16

আমি মনে করি অন্য লোকেরা ইতিমধ্যে ভাল উত্তর দিয়েছে। তবে আমি যুক্ত করতে চাই যে এসিডি নসকিউএল ডিবি রয়েছে (যেমন http://ravendb.net/ )। সুতরাং এটি কেবল এনওএসকিউএলই নয় - এসিডের সাথে কোনও এসিড বনাম সম্পর্কিত নয় ....


1
ধন্যবাদ @ সাবগেট সেখানকার যে কেউ তাদের অভিজ্ঞতা রাভেনডিবির সাথে ভাগ করে নিতে পারে এবং যদি তা সত্যই প্রয়োজনটিকে সন্তুষ্ট করে?
নীড় পেঙ্গাস

12

"সঠিকভাবে সংরক্ষণ করবে না" এর অর্থ হতে পারে:

  1. ডিফল্টরূপে মঙ্গোডিবি তাত্ক্ষণিকভাবে ড্রাইভে আপনার পরিবর্তনগুলি সংরক্ষণ করে না। সুতরাং এমন একটি সম্ভাবনা রয়েছে যে আপনি কোনও ব্যবহারকারীকে "আপডেট সফল" বলছেন, পাওয়ার আউটেজ হয় এবং আপডেটটি হারিয়ে যায়। মঙ্গোডিবি আপডেট "স্থায়িত্ব" এর স্তর নিয়ন্ত্রণ করতে বিকল্প সরবরাহ করে। অন্যান্য প্রতিলিপি (গুলি) এই আপডেটটি পেতে (মেমরির ক্ষেত্রে) অপেক্ষা করতে পারে, স্থানীয় জার্নাল ফাইলের জন্য লেখার জন্য অপেক্ষা করতে পারে ইত্যাদি etc.

  2. একই সংগ্রহের একাধিক সংগ্রহ এবং একাধিক নথিতে কোনও সহজ "পারমাণবিক" আপডেট নেই। এটি বেশিরভাগ ক্ষেত্রেই সমস্যা নয় কারণ এটি দুটি দফায় কমিটের মাধ্যমে সংঘবদ্ধ হতে পারে বা আপনার স্কিমাকে পুনর্গঠন করতে পারে তাই একক নথিতে আপডেট করা হয়। এই প্রশ্নটি দেখুন: ডকুমেন্ট ডাটাবেসগুলি: রিডানড্যান্ট ডেটা, রেফারেন্সস ইত্যাদি (মঙ্গোডিবি বিশেষত)


10

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

তারা সম্পর্কিত বিশ্বের থেকে লেনদেনের মতো অনুভব করে, যেমন:

with client.start_session() as s:
    s.start_transaction()
    try:
        collection.insert_one(doc1, session=s)
        collection.insert_one(doc2, session=s)
        s.commit_transaction()
    except Exception:
        s.abort_transaction()

Https://www.mongodb.com/blog/post/m Multi- docament- transferences- in- mongodb দেখুন


MongoDB4.0 এর প্রথম রিলিজ প্রার্থী বাইরে - linkedin.com/pulse/mongodb-40-rc0-now-available-grigori-melnik
Grigori Melnik

5

আরও ভাল বোঝার জন্য দয়া করে এসিডি বৈশিষ্ট্যগুলি পড়ুন

এছাড়াও মঙ্গোডিবি ডকুমেন্টেশনে আপনি একটি প্রশ্ন এবং উত্তর খুঁজে পেতে পারেন ।

মঙ্গোডিবি এসিডি অনুবর্তী নয়। এসিডি কমপ্লায়েন্স নিয়ে আলোচনার জন্য নীচে পড়ুন।

  1. মঙ্গোডিবি Aকেবলমাত্র নথির স্তরে কৌশলগত। এটি পারমাণবিক সংজ্ঞাটি মেনে চলে না যা আমরা সম্পর্কের ডাটাবেস সিস্টেমগুলি থেকে বিশেষত উপরের লিঙ্কটি থেকে জানি। এই অর্থে মংগোডিবি এসিডি থেকে আসা এটিকে মেনে চলে না।
  2. MongoDB হয় Cডিফল্টরূপে onsitent। তবে, আপনি প্রতিরূপ সেটে মাধ্যমিক সার্ভারগুলি থেকে পড়তে পারেন । এই ক্ষেত্রে কেবলমাত্র আপনার ক্ষেত্রে সামঞ্জস্য থাকতে পারে। আপনি যদি কিছুটা পুরানো ডেটা পড়তে আপত্তি না করেন তবে এটি কার্যকর।
  3. Iমঙ্গোডিবি সোলেশন গ্যারান্টি দেয় না (উপরের সংজ্ঞা অনুসারে আবার):
  1. একাধিক সমসাময়িক পাঠক এবং লেখক সহ সিস্টেমগুলির জন্য, মঙ্গোডিবি ক্লায়েন্টদের লেখার অপারেশনটির ফলাফলগুলি পড়ার আগে লেখার ক্রিয়াকলাপ পড়তে দেবে।
  2. যদি ম্যাগনড জার্নালটি শুরুর আগেই সমাপ্ত হয়, এমনকি যদি কোনও লিখিতভাবে সাফল্যের সাথে ফিরে আসে, প্রশ্নগুলিতে ডেটা পড়তে পারে যা মঙ্গোদ পুনরায় চালু হওয়ার পরে উপস্থিত থাকবে না।

যাইহোক , মঙ্গোডিবি প্রতিটি নথি বিচ্ছিন্নকরণে (সন্নিবেশ এবং আপডেটের জন্য) পরিবর্তন করে; মাল্টি ডকুমেন্ট লেনদেন নয়, শুধুমাত্র নথি স্তরে।

  1. শুভেচ্ছা Durability - আপনার সাথে এই আচরণ কনফিগার করতে পারেন write concern, বিকল্প নয় নিশ্চিত যদিও। হয়তো কেউ আরও ভাল জানেন।

আমি বিশ্বাস করি নোএসকিউএলকে এসিডি সীমাবদ্ধতা বা এর অনুরূপ দিকে নিয়ে যেতে কিছু গবেষণা চলছে ongoing এটি একটি চ্যালেঞ্জ কারণ নোএসকিউএল ডেটাবেসগুলি সাধারণত দ্রুত (এআর) হয় এবং এসিডি সীমাবদ্ধতাগুলি পারফরম্যান্সকে উল্লেখযোগ্যভাবে ধীর করতে পারে।


4

একক সংগ্রহের বিরুদ্ধে পারমাণবিক পরিবর্তনের কাজ করার একমাত্র কারণ হ'ল মঙ্গোদব বিকাশকারীরা সম্প্রতি একটি সংকলনের প্রশস্ত রাইটিং-লক সহ একটি ডাটাবেস লক আদান প্রদান করেছে। সিদ্ধান্ত নেওয়া যে এখানে বর্ধিত সম্মতিটি বাণিজ্য বন্ধের পক্ষে মূল্যবান। এর মূল অংশে, মংডোব একটি মেমরি-ম্যাপযুক্ত ফাইল: তারা মেশিনের ভিএম সাবসিস্টেমটিতে বাফার-পুল পরিচালনাটি অর্পণ করেছে। এটি সর্বদা স্মৃতিতে থাকে বলে, তারা খুব কোর্সযুক্ত দানযুক্ত লকগুলি দিয়ে পালাতে সক্ষম হয়: আপনি কেবল এটিকে ধরে রাখার সময় মেমরির মধ্যে অপারেশন করবেন যা অত্যন্ত দ্রুত হবে fast এটি একটি traditionalতিহ্যবাহী ডাটাবেস সিস্টেমের থেকে উল্লেখযোগ্যভাবে পৃথক হয় যা কখনও কখনও পৃষ্ঠা লক বা রোললক ধরে রাখার সময় I / O সম্পাদন করতে বাধ্য হয়।


আপনি দয়া করে ব্যাখ্যা করতে পারেন কেন এটি একযোগে বাড়ে? দুঃখিত যদি আমি এখানে স্পষ্ট অনুপস্থিত।
ব্যাটব্র্যাট

@ ব্যাটব্র্যাট: এমন দুটি ক্লায়েন্ট বিবেচনা করুন যারা একই ডাটাবেসে বিভিন্ন কালেকশন একই সাথে লেখার চেষ্টা করে। একটি ডেটাবেস লক দিয়ে, ক্লায়েন্টগুলির মধ্যে একটিটির অন্যটি লেখার আগেই এটি শেষ হওয়ার জন্য অপেক্ষা করতে হবে। একটি সংগ্রহ লক দিয়ে উভয় ক্লায়েন্ট একই সাথে লিখতে পারেন। এটিই বর্ধিত সম্মতি দ্বারা বোঝানো হচ্ছে। অবশ্যই, যদি উভয় ক্লায়েন্ট একই সংগ্রহে লেখার চেষ্টা করে তবে একজনকে অপেক্ষা করতে হবে।
jrullmann

2

"মঙ্গোডিবি-তে, একটি একটি নথির অপারেশন হল পারমাণবিক" - এটি অতীতের বিষয়

মোঙ্গোডিবি 4.0 এর নতুন সংস্করণে আপনি এটি করতে পারেন:

যাইহোক, একাধিক নথিতে আপডেটের জন্য একাধিক নথির আপডেট বা একাধিক নথির মধ্যে সামঞ্জস্যতার প্রয়োজনে এমন পরিস্থিতিতে, মঙ্গোডিবি প্রতিলিপি সেটগুলির বিরুদ্ধে মাল্টি-ডকুমেন্ট লেনদেন করার ক্ষমতা সরবরাহ করে। মাল্টি-ডকুমেন্ট লেনদেন একাধিক ক্রিয়াকলাপ, সংগ্রহ, ডাটাবেস এবং নথি জুড়ে ব্যবহার করা যেতে পারে। মাল্টি-ডকুমেন্ট লেনদেনগুলি একটি "সমস্ত বা কিছুই না" প্রস্তাব সরবরাহ করে। যখন কোনও লেনদেন কমিট করে, লেনদেনে করা সমস্ত ডেটা পরিবর্তনগুলি সংরক্ষণ করা হয়। লেনদেনের কোনও ক্রিয়াকলাপ ব্যর্থ হলে, লেনদেনটি বাতিল হয়ে যায় এবং লেনদেনে করা সমস্ত ডেটা পরিবর্তনগুলি দৃশ্যমান না হয়েই বাতিল করা হয়। কোনও লেনদেন কমিট না হওয়া পর্যন্ত লেনদেনের কোনও লিখিত ক্রিয়াকলাপ লেনদেনের বাইরে দৃশ্যমান নয়।

যদিও সেখানে কয়েক সীমাবদ্ধতা রয়েছে কিভাবে এবং কি অপারেশন সম্পাদন করা যায় ।

মঙ্গো ডক পরীক্ষা করুন। https://docs.mongodb.com/master/core/transactions/


1

আপনি যদি ক্লায়েন্টের পক্ষে প্রতি কী লিনিয়ারাইজিবিলিটি সমর্থন করেন এবং তুলনা এবং সেট (যা মোংগোডিবি-র ক্ষেত্রে সত্য) সমর্থন করে তবে আপনি ক্লায়েন্টের পক্ষে পারমাণবিক মাল্টি-কী আপডেট (সিরিয়ালাইজযোগ্য লেনদেন) বাস্তবায়ন করতে পারেন। এই পদ্ধতির ব্যবহার করা হয় গুগলের অনুস্রাবণযন্ত্র এবং CockroachDB কিন্তু কিছুই আপনি MongoDB সঙ্গে এটি ব্যবহার করতে বাধা দেয়।

আমি ধাপে ধাপে ভিজ্যুয়ালাইজেশন তৈরি করেছি জাতীয় লেনদেনের । আমি আশা করি এটি আপনাকে বুঝতে তাদের সহায়তা করবে।

যদি আপনি পড়ার প্রতিশ্রুতিবদ্ধ বিচ্ছিন্নতা স্তরের সাথে ভাল থাকেন তবে পিটার বেলিস দ্বারা র‌্যাম্পের লেনদেনগুলি একবারে বিবেচনা করা বুদ্ধিমানের কাজ। এগুলি ক্লায়েন্টের পক্ষে মঙ্গোডিবিতে প্রয়োগ করা যেতে পারে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.