Menambah Datacenter Baru ke Cassandra Cluster

Posting pertama untuk blog baru ini saya akan mulai dengan hal yang berkaitan dengan pekerjaan sehari – hari saja. Karena banyak datacenter yang harus di-join kan dengan existing cluster, maka kegiatan operasional yang tertulis di judul sering saya lakukan akhir – akhir ini. Secara umum versi cassandra 3.x juga dapat menggunakan step ini, tapi kali ini saya lakukan di versi 2.0.x hingga 2.1.x

Konfigurasi Client

Yang paling pertama adalah menghindari client (dari aplikasi yang sekarang digunakan) melakukan request ke DC (Datacenter) yang baru ini. Untuk itu kita harus memastikan consistency level untuk read dan write tidak sampai “menyentuh” nodes di DC yang baru :

  • Client menggunakan load balance policy semacam DCAwareRoundRobinPolicy
  • Memastikan client dikonfigurasi untuk terhubung hanya ke DC yang sudah ada (existing)
  • Menggunakan consistency level yang memastikan agar client tidak melakukan request ke DC baru misalkan LOCAL_QUORUM  (jika menginginkan quorum) atau LOCAL_ONE

 

Konfigurasi Cassandra

  • Pastikan semua keyspace menggunakan NetworkTopologyStrategy (kecuali system)
  • Tambahkan semua node pada DC baru ke topology file pada existing DC, pastikan ini sudah dilakukan sebelum melanjutkan ke deployment DC baru
  • Deploy DC baru dengan :
    • Ubah opsi auto_bootstrap: false  pada file cassandra.yaml
    • Pastikan topology file sudah diisi dengan semua nodes pada DC lama (existing) dan baru
  • Gunakan perintah ALTER KEYSPACE  untuk mengubah replication strategy ke NetworkTopologyStrategy  untuk keyspace berikut ini:
    • Keyspace yang dibuat oleh user
    • system: system_auth, system_distributed, system_traces
    • sebagai contoh DC1:3, DC2: 3 maka akan jadi ALTER KEYSPACE nama_keyspace WITH REPLICATION = { 'class': 'NetworkTopologyStrategy', 'DC1': 3, 'DC2': 3};
  • Jangan mengubah replication factor sebelum memastikan langkah sebelum ALTER ini selesai dilakukan
  • Setelah memastikan semua nodes pada DC baru sudah join ke cluster dengan aman, (bisa dilihat pada log atau perintah nodetool ring ), maka jalankan perintah nodetool rebuild nama_dc_existing
  • Setelah itu anda dapat mengembalikan nilai auto_bootstrap: false ke true atau hapus / comment line tersebut

 

Sekian, tararengkyu,

Incoming search terms:

  • buku replikasi database postgresql windows

Leave a Reply