Pengantar

Ketika aplikasi semakin besar, satu server database dapat menjadi bottleneck karena harus menangani permintaan baca, tulis, serta menjaga ketersediaan data. Salah satu solusi yang umum digunakan adalah database replication.

Dua pendekatan yang sering dibandingkan adalah Read Replica dan Master-Master Replication. Keduanya sama-sama membuat beberapa server memiliki salinan data, tetapi memiliki cara kerja dan tujuan yang berbeda.

Read replica umumnya digunakan untuk membagi beban query baca, sedangkan master-master memungkinkan lebih dari satu server menerima operasi tulis. PostgreSQL, misalnya, mendukung standby yang dapat menerima koneksi dan melayani query read-only melalui mekanisme hot standby (dikutip dari: PostgreSQL Documentation).


Apa Itu Read Replica?

Read replica adalah server database yang menerima salinan perubahan dari primary server dan digunakan terutama untuk menangani operasi baca.

Arsitekturnya sederhana:

              ┌──────────────┐
              │    Primary   │
              │   Read/Write │
              └──────┬───────┘
                     │
             Replication
              ┌──────┴───────┐
              ↓              ↓
        ┌──────────┐    ┌──────────┐
        │ Replica 1│    │ Replica 2│
        │   Read   │    │   Read   │
        └──────────┘    └──────────┘

Aplikasi dapat mengirim INSERT, UPDATE, dan DELETE ke primary, sementara query SELECT dapat diarahkan ke replica.

Pada PostgreSQL, streaming replication dapat mengirim WAL dari primary ke standby secara terus-menerus. Secara default, mekanisme tersebut bersifat asynchronous sehingga replica dapat mengalami sedikit keterlambatan dibandingkan primary (dikutip dari: PostgreSQL Streaming Replication).

baca juga : Multi-Factor Authentication (MFA) Fatigue Attack: Ancaman Push Bombing yang Mengecoh Pengguna


Apa Itu Master-Master Replication?

Master-master replication memungkinkan dua atau lebih server database menerima operasi tulis.

Contohnya:

        ┌──────────────┐
        │   Master A   │
        │  Read/Write  │
        └──────┬───────┘
               ↕
          Replication
               ↕
        ┌──────────────┐
        │   Master B   │
        │  Read/Write  │
        └──────────────┘

Keuntungannya adalah aplikasi tidak sepenuhnya bergantung pada satu server untuk operasi tulis.

Dalam MySQL Group Replication, misalnya, terdapat mode multi-primary yang memungkinkan seluruh server dalam group menerima update secara bersamaan (dikutip dari: MySQL Group Replication).


Perbedaan Utama Read Replica dan Master-Master

Aspek Read Replica Master-Master
Operasi baca Ya Ya
Operasi tulis Umumnya primary Beberapa node
Skalabilitas read Sangat baik Baik
Kompleksitas Lebih sederhana Lebih kompleks
Risiko konflik write Rendah Lebih tinggi
High availability Baik Sangat baik jika dirancang tepat
Cocok untuk Read-heavy workload Distributed write workload

Perbedaan paling penting adalah arah penulisan data.

Pada Read Replica, biasanya hanya primary yang menjadi sumber utama perubahan. Pada Master-Master, beberapa node dapat menerima perubahan sehingga sistem harus menangani potensi konflik dan konsistensi data.


Kapan Menggunakan Read Replica?

Cocok untuk Aplikasi Read-Heavy

Read replica sangat cocok ketika aplikasi memiliki jauh lebih banyak operasi baca dibandingkan operasi tulis.

Contohnya:

  • Website berita.
  • E-commerce.
  • Sistem dashboard.
  • Platform analitik.
  • Aplikasi dengan banyak pengguna yang melakukan pencarian data.

Misalnya:

100.000 SELECT
        ↓
Primary + Read Replicas

5.000 INSERT/UPDATE
        ↓
Primary

Beban query dapat dibagi ke beberapa replica sehingga primary dapat lebih fokus menangani operasi write.


Kapan Menggunakan Master-Master?

Cocok untuk High Availability

Master-master dapat digunakan ketika organisasi membutuhkan lebih dari satu node yang mampu menerima operasi write.

Contohnya:

User
 ↓
Load Balancer
 ↓
┌───────────┐
│ Master A  │ ←→ Replication ←→ Master B
└───────────┘

Jika Master A mengalami masalah, traffic dapat dialihkan ke Master B, tergantung desain dan mekanisme failover yang digunakan.

Namun, kemampuan menerima write pada banyak node juga membuat desain menjadi lebih kompleks.

baca juga : Linux eBPF (Extended Berkeley Packet Filter): Teknologi Kernel untuk Networking, Observability, dan Security Modern


Tantangan Master-Master Replication

Konflik Data

Masalah terbesar adalah write conflict.

Misalnya dua server mengubah data yang sama:

Master A:
UPDATE saldo = 500

Master B:
UPDATE saldo = 700

Jika kedua perubahan terjadi hampir bersamaan, sistem harus menentukan bagaimana konflik tersebut diselesaikan.

Karena itu, master-master membutuhkan mekanisme konsistensi, conflict resolution, serta monitoring yang lebih matang.


Bagaimana Memilihnya?

Gunakan Read Replica jika:

  • Mayoritas traffic adalah query baca.
  • Sistem membutuhkan peningkatan performa SELECT.
  • Arsitektur ingin tetap sederhana.
  • Write tetap terpusat pada satu primary.

Gunakan Master-Master jika:

  • Beberapa node memang perlu menerima write.
  • High availability menjadi kebutuhan utama.
  • Tim memiliki kemampuan mengelola distributed database.
  • Sistem memiliki strategi conflict handling yang jelas.

Untuk banyak aplikasi web, Read Replica biasanya menjadi pilihan awal yang lebih sederhana. Master-master lebih cocok ketika kebutuhan distributed write dan availability benar-benar membenarkan kompleksitas tambahannya.

baca juga : Shimcache Forensics: Membongkar Jejak Eksekusi Program di Windows untuk Investigasi Digital


Kesimpulan

Read Replica vs Master-Master Replication bukan sekadar perbandingan jumlah server database. Keduanya dirancang untuk kebutuhan yang berbeda.

Read replica unggul dalam scaling read workload dengan arsitektur yang relatif sederhana. Sementara itu, master-master menawarkan kemampuan multiple writable nodes dan dapat mendukung skenario high availability yang lebih kompleks.

Jika aplikasi Anda terutama mengalami beban query baca, Read Replica biasanya menjadi pilihan yang lebih praktis. Namun, jika sistem membutuhkan beberapa node yang dapat menerima write, Master-Master Replication dapat dipertimbangkan dengan konsekuensi kompleksitas dan risiko konflik yang lebih tinggi.

Pada akhirnya, pilihan terbaik harus mempertimbangkan workload, consistency, latency, availability, failover, serta kemampuan tim dalam mengelola database terdistribusi.