Apa Itu Synchronous Replication?
Synchronous replication adalah proses menyalin data melalui jaringan untuk membuat beberapa salinan data yang selalu diperbarui secara real-time.
Teknologi ini terutama digunakan dalam aplikasi transaksi kelas atas yang membutuhkan failover (failover) instan jika node utama gagal. Namun, synchronous replication jarang digunakan dalam sistem network-attached storage (NAS), kecuali jika perangkat NAS tersebut juga dapat berfungsi sebagai block-based storage untuk aplikasi yang membutuhkan performa tinggi.
Meskipun sering dimanfaatkan untuk disaster recovery, synchronous replication lebih disukai untuk aplikasi dengan recovery time objective (RTO) yang rendah, di mana kehilangan data sama sekali tidak dapat ditoleransi.
Namun, teknologi ini juga memiliki beberapa kekurangan. Synchronous replication lebih mahal dibandingkan metode replikasi lainnya, menambahkan latensi (latency) yang bisa memperlambat aplikasi utama, dan umumnya hanya dapat digunakan untuk jarak maksimal 300 kilometer antara pusat data primer dan sekunder.
Synchronous Replication vs. Asynchronous Replication
Dalam synchronous replication, data ditulis ke penyimpanan utama (primary storage) dan replikanya secara bersamaan. Dengan cara ini, data di kedua lokasi selalu sinkron.
Sebaliknya, dalam asynchronous replication, data terlebih dahulu ditulis ke penyimpanan utama, baru kemudian disalin ke replikasi sekunder setelah jeda waktu tertentu. Akibatnya, data di penyimpanan sekunder selalu sedikit tertinggal dari data utama.
Asynchronous replication lebih banyak digunakan dalam produk replikasi berbasis array, jaringan, dan host. Namun, synchronous replication adalah standar untuk penyimpanan berbasis blok kelas atas serta sebagian besar produk replikasi berbasis jaringan.
Untuk kedua teknik ini, penyimpanan di Site A akan mengirimkan acknowledgment (konfirmasi) transaksi ke host di Site A. Perbedaan utama antara synchronous dan asynchronous replication terletak pada urutan proses yang terjadi setelah host mengirim transaksi ke array penyimpanan (storage array) lokal.
Cara Kerja Asynchronous Replication
Pada asynchronous replication, urutannya adalah sebagai berikut:
- Host di Site A mengirim transaksi penulisan ke storage array di Site A.
- Storage array di Site A menyimpan transaksi di cache dan mengirimkan acknowledgment ke host.
- Storage array di Site A mengirim update ke storage array di Site B setelah jeda waktu tertentu.
- Storage array di Site B mengirim acknowledgment ke storage array di Site A.
Cara Kerja Synchronous Replication
Pada synchronous replication, host di Site A tetap mengirim transaksi penulisan ke storage array di Site A, tetapi langkah berikutnya berbeda dari asynchronous replication.
Urutannya adalah sebagai berikut:
- Storage array di Site A menyimpan transaksi di cache dan langsung mengirim update ke storage array di Site B.
- Storage array di Site B mengirim acknowledgment kembali ke storage array di Site A.
- Storage array di Site A mengirim acknowledgment ke host.
Dalam synchronous replication, kedua storage array harus memproses transaksi sebelum mengirim acknowledgment ke host. Ini memastikan bahwa kedua array selalu dalam kondisi sinkron.
Sebaliknya, dalam asynchronous replication, array sekunder biasanya tertinggal beberapa transaksi dibandingkan array utama.
Jika jarak antara pusat data primer dan sekunder terlalu jauh, waktu tunggu acknowledgment dalam synchronous replication bisa menjadi terlalu besar, sehingga tidak cocok untuk beberapa aplikasi yang memerlukan kecepatan tinggi.