Tentang faktor replikasi Cassandra dan level konsistensi

Tentang faktor replikasi Cassandra

Cassandra menyimpan replika data pada beberapa node untuk memastikan keandalan dan fault tolerance. Strategi replikasi untuk setiap keyspace Edge menentukan node tempat replika berada ditempatkan.

Jumlah total replika untuk keyspace di seluruh gugus Cassandra disebut sebagai faktor replikasi keyspace. Faktor replikasi satu berarti bahwa hanya ada satu salinan setiap baris di gugus Cassandra. Faktor replikasi dua berarti ada dua salinan dari setiap baris, di mana setiap salinan berada di {i>node<i} yang berbeda. Semua replika sama pentingnya; tidak ada replika utama atau master.

Dalam sistem produksi dengan tiga node Cassandra atau lebih di setiap pusat data, setelan default faktor replikasi untuk keyspace Edge adalah tiga. Secara umum, faktor replikasi tidak boleh melebihi jumlah node Cassandra dalam cluster.

Gunakan prosedur berikut untuk melihat skema Cassandra yang menunjukkan faktor replikasi untuk setiap keyspace Edge:

  1. Login ke node Cassandra.
  2. Jalankan perintah berikut:
    /opt/apigee/apigee-cassandra/bin/cassandra-cli -h $(hostname -i) <<< "show schema;"

    Tempat $(hostname -i) me-resolve ke alamat IP node Cassandra. Atau Anda dapat mengganti $(hostname -i) dengan alamat IP node tersebut.

Untuk setiap keyspace, Anda akan melihat output dalam bentuk:

create keyspace kms
  with placement_strategy = 'NetworkTopologyStrategy'
  and strategy_options = {dc-1 : 3}
  and durable_writes = true;

Anda dapat melihat bahwa untuk pusat data 1, dc-1, faktor replikasi default untuk Keyspace kms adalah tiga untuk instalasi dengan tiga {i>node<i} Cassandra.

Jika Anda menambahkan node Cassandra tambahan ke cluster, faktor replikasi default tidak terdampak.

Misalnya, jika Anda menambah jumlah node Cassandra menjadi enam, tetapi meninggalkan replikasi ketiga, Anda tidak memastikan bahwa semua {i>node<i} Cassandra memiliki salinan semua data. Jika node nonaktif, faktor replikasi yang lebih tinggi berarti makin tinggi kemungkinan data pada node ada di salah satu {i>node<i} yang tersisa. Kelemahan dari faktor replikasi yang lebih tinggi adalah meningkatnya terhadap penulisan data.

Tentang tingkat konsistensi Cassandra

Tingkat konsistensi {i>Cassandra<i} didefinisikan sebagai jumlah minimum {i>node<i} Cassandra yang harus mengakui operasi baca atau tulis sebelum operasi itu dapat dianggap berhasil. Tingkat konsistensi yang berbeda dapat ditetapkan ke keyspace Edge yang berbeda.

Saat terhubung ke Cassandra untuk operasi baca dan tulis, Pemroses Pesan, dan Pengelolaan Node server biasanya menggunakan nilai Cassandra LOCAL_QUORUM untuk menentukan tingkat konsistensi untuk keyspace. Namun, beberapa ruang kunci ditentukan untuk menggunakan tingkat konsistensi 1.

Penghitungan nilai LOCAL_QUORUM untuk pusat data adalah:

LOCAL_QUORUM = (replication_factor/2) + 1

Seperti dijelaskan di atas, faktor replikasi default untuk lingkungan produksi Edge dengan tiga {i>node<i} Cassandra adalah tiga. Oleh karena itu, nilai default LOCAL_QUORUM = (3/2) +1 = 2 (nilai dibulatkan ke bawah ke bilangan bulat).

Dengan LOCAL_QUORUM = 2, setidaknya dua dari tiga node Cassandra dalam data harus merespons operasi baca/tulis agar operasi berhasil. Untuk tiga node oleh cluster Cassandra, cluster dapat menoleransi satu node yang tidak berfungsi per pusat data.

Dengan menentukan tingkat konsistensi sebagai LOCAL_QUORUM, Edge menghindari latensi diperlukan dengan memvalidasi operasi di beberapa pusat data. Jika ruang kunci menggunakan Cassandra Nilai QUORUM sebagai tingkat konsistensi, operasi baca/tulis harus divalidasi di semua pusat data.

Untuk melihat tingkat konsistensi yang digunakan oleh node Pemroses Pesan Edge atau Server Pengelolaan:

  1. Login ke node Pemroses Pesan.
  2. Ubah ke direktori /opt/apigee/edge-message-processor/conf:
    cd /opt/apigee/edge-message-processor/conf
  3. Untuk konsistensi tulis:
    grep -ri "write.consistencylevel" *
  4. Untuk konsistensi baca:
    grep -ri "read.consistencylevel" *
  5. Login ke node Server Pengelolaan.
  6. Ubah ke direktori /opt/apigee/edge-management-server/conf:
    cd /opt/apigee/edge-management-server/conf
  7. Ulangi langkah 3 dan 4.

Jika Anda menambahkan node Cassandra tambahan ke cluster, tingkat konsistensi tidak akan terpengaruh.