Multi-master Replication

Database Tutorials - কাউচডিবি (CouchDB) CouchDB Replication এবং Clustering |
230
230

Multi-master replication হল একটি রেপ্লিকেশন কৌশল যেখানে একাধিক সার্ভারের মধ্যে ডেটা একে অপরের সাথে সিঙ্ক্রোনাইজ করা হয় এবং প্রতিটি সার্ভার স্বাধীনভাবে ডেটা লিখতে এবং পড়তে সক্ষম। এর মানে হল যে কোনো সার্ভারে ডেটা পরিবর্তন করা হলে, সেই পরিবর্তন সমস্ত সার্ভারে রেপ্লিকেট হবে।

CouchDB একটি multi-master replication সমর্থন করে, যার মাধ্যমে একাধিক সার্ভার একে অপরের সাথে ডেটা সিঙ্ক্রোনাইজ করে এবং উচ্চ availability এবং fault tolerance নিশ্চিত করা হয়। এটি বিশেষভাবে ডিস্ট্রিবিউটেড সিস্টেম এবং ক্লাস্টারিংয়ের জন্য উপযুক্ত।


Multi-master Replication এর মূল বৈশিষ্ট্য

  1. ডেটা সিঙ্ক্রোনাইজেশন:
    • যখন এক সার্ভারে ডেটা আপডেট হয়, তখন সেই পরিবর্তন অন্যান্য সার্ভারে স্বয়ংক্রিয়ভাবে সিঙ্ক্রোনাইজ হয়।
    • প্রতিটি সার্ভার স্বাধীনভাবে রিড/রাইট অপারেশন করতে পারে, এবং সেগুলি পরবর্তীতে একে অপরের সাথে সিঙ্ক্রোনাইজ হবে।
  2. High Availability:
    • Multi-master replication ডিস্ট্রিবিউটেড সিস্টেমে high availability প্রদান করে। যদি একটি সার্ভার অফলাইনে চলে যায়, অন্য সার্ভারগুলি ডেটা অ্যাক্সেস এবং পরিবর্তন করতে সক্ষম থাকে।
    • সিস্টেমটি উচ্চ fault tolerance অর্জন করে, কারণ সার্ভারের মধ্যে ডেটা একাধিক কপি থাকে।
  3. ডেটা কনসিস্টেন্সি:
    • CouchDB eventual consistency মেনে চলে, যার মানে হল যে সমস্ত সার্ভার eventually একই ডেটা পাবে। তবে, কিছু সময়ের জন্য ডেটার মধ্যে সামান্য অমিল থাকতে পারে।
    • কনফ্লিক্টগুলি _rev (রিভিশন) ফিল্ড ব্যবহার করে সঠিকভাবে সমাধান করা হয়। যখন দুটি সার্ভার একই ডকুমেন্টে পরিবর্তন করে, CouchDB স্বয়ংক্রিয়ভাবে কনফ্লিক্ট শনাক্ত করে এবং সেগুলিকে সমাধান করতে সাহায্য করে।
  4. Scalability:
    • Multi-master replication CouchDB কে horizontal scaling সক্ষম করে, যার মাধ্যমে আরো সার্ভার যোগ করে সিস্টেমের পারফরম্যান্স এবং স্টোরেজ ক্ষমতা বাড়ানো যায়।
    • এটা বড় ডেটাসেট এবং উচ্চ ট্রাফিকের জন্য উপযুক্ত।

CouchDB তে Multi-master Replication কিভাবে কাজ করে

a. রেপ্লিকেশন কনফিগারেশন:

CouchDB তে _replicator ডাটাবেস ব্যবহার করে multi-master replication কনফিগার করা হয়। এটি একটি বিশেষ ডাটাবেস যা রেপ্লিকেশন কাজের জন্য ব্যবহৃত হয়।

উদাহরণ:

ধরা যাক, দুইটি CouchDB সার্ভার রয়েছে: Server A এবং Server B। আমরা এই সার্ভারের মধ্যে রেপ্লিকেশন সেটআপ করতে চাই।

  1. Server A থেকে Server B তে রেপ্লিকেশন শুরু করা:

    POST /_replicate
    {
      "source": "http://serverA:5984/mydb",
      "target": "http://serverB:5984/mydb"
    }
    
  2. Server B থেকে Server A তে রেপ্লিকেশন শুরু করা:

    POST /_replicate
    {
      "source": "http://serverB:5984/mydb",
      "target": "http://serverA:5984/mydb"
    }
    

b. Conflict Management:

  • CouchDB ডেটা কনফ্লিক্ট ম্যানেজমেন্টের জন্য _rev ফিল্ড ব্যবহার করে, যাতে এটি সঠিকভাবে ডেটার বিভিন্ন সংস্করণ ট্র্যাক করতে পারে।
  • যদি দুটি সার্ভার একই ডকুমেন্টের উপর একযোগে কাজ করে, CouchDB স্বয়ংক্রিয়ভাবে কনফ্লিক্ট সনাক্ত করে এবং ডকুমেন্টের সর্বশেষ সংস্করণ নিয়ে কাজ করে। ব্যবহারকারীরা এই কনফ্লিক্টগুলি ম্যানুয়ালি সমাধানও করতে পারেন।

c. Replication Modes:

CouchDB তে দুই ধরনের রেপ্লিকেশন মোড রয়েছে:

  1. Continuous Replication:
    এই মোডে রেপ্লিকেশন চলমান থাকে এবং সার্ভারগুলির মধ্যে সমস্ত পরিবর্তন স্বয়ংক্রিয়ভাবে সিঙ্ক্রোনাইজ হয়। এটি প্রধানত ক্লাস্টারিং ও ডিস্ট্রিবিউটেড সিস্টেমে ব্যবহৃত হয়।
  2. One-time Replication:
    এই মোডে একবারে ডেটা সিঙ্ক্রোনাইজ করা হয়, যেমন ব্যাকআপ বা এক্সপোর্ট অপারেশন। এটা ক্লাস্টার এবং ফাল্ট টলারেন্স ব্যবস্থায় ব্যবহার করা হয় না, বরং একাধিক সার্ভারে ডেটা স্থানান্তরের জন্য।

Multi-master Replication এর সুবিধা

  1. Scalability and Load Balancing:
    • Multi-master replication সিস্টেমটি আরো সার্ভার যোগ করার মাধ্যমে স্কেল করা যায়, যা ডেটাবেসের লোড শেয়ার করতে সহায়ক। এটি পরিষেবা আরো দ্রুত এবং কার্যকরী করে তোলে।
  2. Fault Tolerance:
    • একটি সার্ভার যদি ডাউন হয়ে যায়, অন্য সার্ভারগুলি ডেটা সেবা চালিয়ে যেতে পারে, যা সার্ভারের fault tolerance নিশ্চিত করে।
  3. Geographically Distributed Systems:
    • একাধিক অঞ্চলে CouchDB সার্ভার থাকার কারণে, multi-master replication গ্লোবাল অ্যাপ্লিকেশনের জন্য কার্যকর। এটি বিভিন্ন অবস্থানে অবস্থিত সার্ভারের মধ্যে ডেটা সিঙ্ক্রোনাইজেশন এবং অ্যাক্সেসের সময় কমায়।
  4. High Availability:
    • Multi-master replication সিস্টেমের মাধ্যমে যে কোনও সার্ভার অফলাইনে চলে গেলে অন্য সার্ভারগুলি সেবা দিতে থাকে, যার ফলে high availability নিশ্চিত হয়।

Multi-master Replication এর সীমাবদ্ধতা

  1. Eventual Consistency:
    • Eventual consistency মডেল অনুসরণ করে, যার মানে হল যে কিছু সময়ের জন্য ডেটা কিছু সার্ভারে সাময়িকভাবে আলাদা থাকতে পারে।
  2. Conflict Resolution:
    • যদি দুটি সার্ভার একই ডকুমেন্টে পরিবর্তন করে, তবে কনফ্লিক্ট হতে পারে, যা সমাধান করতে সময় লাগতে পারে।
  3. Complexity:
    • বড় ডিস্ট্রিবিউটেড সিস্টেমে multi-master replication কনফিগারেশন এবং পরিচালনা কিছুটা জটিল হতে পারে।

সারাংশ

Multi-master replication CouchDB তে একটি শক্তিশালী বৈশিষ্ট্য, যা ডিস্ট্রিবিউটেড সিস্টেমে ডেটার সিঙ্ক্রোনাইজেশন এবং high availability নিশ্চিত করে। একাধিক সার্ভারকে independently রিড/রাইট অপারেশন করতে দেয় এবং ডেটা আপডেটের পরে সেই পরিবর্তনগুলো স্বয়ংক্রিয়ভাবে অন্যান্য সার্ভারে রেপ্লিকেট হয়। এটি বড়, উচ্চ পারফরম্যান্স এবং রিয়েল-টাইম অ্যাপ্লিকেশনগুলির জন্য উপযুক্ত।

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

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

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

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