Database Tutorials Streaming Replication এবং Asynchronous Replication গাইড ও নোট

307

PostgreSQL ডেটাবেসে replication হল একটি প্রক্রিয়া যার মাধ্যমে একটি সার্ভারের ডেটা অন্য একটি সার্ভারে কপি করা হয়। এটি মূলত ডেটাবেসের উচ্চ উপলব্ধতা এবং লোড ব্যালান্সিং নিশ্চিত করতে ব্যবহৃত হয়। PostgreSQL-এ বিভিন্ন ধরনের replication সমর্থিত, যার মধ্যে Streaming Replication এবং Asynchronous Replication দুটি গুরুত্বপূর্ণ কৌশল।

এখানে আমরা Streaming Replication এবং Asynchronous Replication এর ব্যাখ্যা এবং পার্থক্য আলোচনা করব।


1. Streaming Replication

Streaming Replication হল PostgreSQL এর একটি ফিচার যা মূল সার্ভার (primary server) থেকে ডেটা পরিবর্তন (WAL logs) রিয়েল টাইমে স্ট্রীমিং করে একটি বা একাধিক standby server তে পাঠায়। এটি একটি synchronous অথবা asynchronous পদ্ধতিতে কাজ করতে পারে। তবে, সাধারণভাবে এটি asynchronous replication হিসেবে ব্যবহৃত হয়।

How Streaming Replication Works:

  1. WAL (Write-Ahead Logs): PostgreSQL একটি ডেটাবেস ট্রানজেকশন চালানোর আগে পরিবর্তনগুলির একটি লগ তৈরি করে। এই লগকে WAL logs বলা হয়।
  2. Primary Server: প্রাইমারি সার্ভারে পরিবর্তনগুলি WAL logs এ লেখা হয়।
  3. Standby Server: স্ট্যান্ডবাই সার্ভার WAL logs স্ট্রীমিংয়ের মাধ্যমে প্রাইমারি সার্ভার থেকে সংগ্রহ করে এবং সেগুলিকে নিজের ডেটাবেসে সিঙ্ক্রোনাইজ করে।

Key Features of Streaming Replication:

  • Real-Time Data Replication: ডেটা পরিবর্তন স্ট্রীমিংয়ের মাধ্যমে রিয়েল টাইমে স্ট্যান্ডবাই সার্ভারে কপি হয়।
  • Continuous Syncing: স্ট্যান্ডবাই সার্ভার প্রাইমারি সার্ভারের সাথে অনবরত সিঙ্ক্রোনাইজড থাকে।
  • WAL Shipping: WAL logs স্ট্রীমিং এবং প্রেরণ একটি ইফেক্টিভ এবং রিয়েল টাইম পদ্ধতি।

Benefits of Streaming Replication:

  • High Availability: সার্ভার ডাউন হলে, স্ট্যান্ডবাই সার্ভার দ্রুত অ্যাক্টিভ হয়ে কাজ চালিয়ে যেতে পারে।
  • Load Balancing: স্ট্যান্ডবাই সার্ভার থেকে রিড-কুয়েরি পরিচালনা করা যায়, যাতে প্রাইমারি সার্ভারের ওপর লোড কমে।

Configuration Steps:

  1. Enable replication on Primary Server:
    • In postgresql.conf:

      wal_level = replica
      max_wal_senders = 5
      
    • In pg_hba.conf:

      host replication all 192.168.1.0/24 md5
      
  2. Setup Standby Server: Set up streaming replication on the standby server with restore_command and standby_mode settings.

2. Asynchronous Replication

Asynchronous Replication হল PostgreSQL এর একটি replication পদ্ধতি যেখানে প্রাইমারি সার্ভার ডেটা পরিবর্তন করার পর, সেই পরিবর্তনগুলি স্ট্যান্ডবাই সার্ভারে পাঠানো হয় তবে প্রাইমারি সার্ভার রিড-ওয়াইট অপারেশন সম্পন্ন করার সময় স্ট্যান্ডবাই সার্ভারের কাছে সেগুলি সিঙ্ক্রোনাইজ হতে অপেক্ষা করে না। এর মানে, প্রাইমারি সার্ভার স্ট্যান্ডবাই সার্ভারের সাথে সিঙ্ক্রোনাইজেশন না হওয়া সত্ত্বেও অব্যাহতভাবে কাজ চালিয়ে যেতে পারে।

How Asynchronous Replication Works:

  1. WAL Logs: প্রাইমারি সার্ভার তার WAL logs তৈরি করে এবং সেগুলি স্ট্যান্ডবাই সার্ভারে পাঠাতে শুরু করে।
  2. No Wait for Acknowledgement: প্রাইমারি সার্ভার ওয়েল লগ পাঠানোর পর কোন acknowledgment ছাড়াই তার অপারেশন চালিয়ে যায়।
  3. Eventual Consistency: স্ট্যান্ডবাই সার্ভার পরবর্তীতে প্রাইমারি সার্ভারের পরিবর্তনগুলো গ্রহণ করবে, তবে এটি সবসময় রিয়েল-টাইম বা সিঙ্ক্রোনাস হবে না। কিছু সময়ের জন্য ডেটা কিছুটা অসামঞ্জস্য থাকতে পারে।

Benefits of Asynchronous Replication:

  • Performance: প্রাইমারি সার্ভার দ্রুত তার কাজ সম্পন্ন করতে পারে, কারণ এটি স্ট্যান্ডবাই সার্ভারের সাথে সিঙ্ক্রোনাইজেশন জন্য অপেক্ষা করে না।
  • Minimal Impact on Primary Server: স্ট্যান্ডবাই সার্ভারের কনফিগারেশন এবং ডেটা সিঙ্ক্রোনাইজেশন প্রাইমারি সার্ভারের পারফরম্যান্সে খুব কম প্রভাব ফেলে।

Limitations of Asynchronous Replication:

  • Data Loss: যদি প্রাইমারি সার্ভার ক্র্যাশ করে এবং সেই সময় স্ট্যান্ডবাই সার্ভার পরিবর্তনগুলি সিঙ্ক্রোনাইজ না করে, তবে কিছু ডেটা হারানো যেতে পারে।
  • Eventual Consistency: ডেটা আস্তে আস্তে সিঙ্ক্রোনাইজ হয়, এবং কিছু সময় পর্যন্ত ডেটার মধ্যে অমিল থাকতে পারে।

Configuration Steps:

  1. Enable replication on Primary Server:
    • Same as in streaming replication.
  2. Configure Standby Server:
    • No waiting for acknowledgment from standby.

3. Key Differences Between Streaming and Asynchronous Replication

FeatureStreaming ReplicationAsynchronous Replication
Data ConsistencyHigh consistency; near real-time synchronizationEventual consistency; possible delay in sync
PerformanceSlight performance overhead due to real-time syncingHigher performance due to no wait for acknowledgment
Risk of Data LossLow risk of data loss due to real-time replicationHigher risk of data loss if primary crashes
Replication TypeSynchronous or Asynchronous (in PostgreSQL terms)Always asynchronous
Use CaseHigh availability, real-time applicationsApplications with higher tolerance for data delay
Primary Server ImpactModerate impact on performance due to sync delayMinimal impact, faster operations for primary server

4. Conclusion

  • Streaming Replication provides real-time synchronization between the primary and standby servers, ensuring high availability and minimal data loss risk. It's ideal for scenarios where real-time consistency is crucial, like in high-availability clusters.
  • Asynchronous Replication is more suitable when performance is a priority, and data consistency can be tolerated to some extent. It’s ideal for read-heavy applications, load balancing scenarios, and cases where performance is more important than immediate consistency.

In PostgreSQL, you can configure both of these replication types to meet different application requirements.

Content added By
Promotion

Are you sure to start over?

Loading...