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/cqlsh $(hostname -i) [-u cassuser -p casspass] -e "select keyspace_name, replication from system_schema.keyspaces;"

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

    cassuser: Jika Anda telah mengaktifkan autentikasi Cassandra, teruskan nama pengguna Cassandra. Langkah ini bersifat opsional dan dapat dilewati jika Anda tidak mengaktifkan autentikasi Cassandra.

    casspass: Jika Anda telah mengaktifkan autentikasi Cassandra, teruskan sandi Cassandra. Langkah ini bersifat opsional dan dapat dilewati jika Anda tidak mengaktifkan autentikasi Cassandra.

Anda akan melihat output seperti di bawah ini, dengan setiap baris mewakili satu keyspace:

  keyspace_name       | replication                                                                 
  kms                 | {'class': 'org.apache.cassandra.locator.NetworkTopologyStrategy', 'dc-1': '3'}
  system_distributed  | {'class': 'org.apache.cassandra.locator.SimpleStrategy', 'replication_factor': '3'}
  apprepo             | {'class': 'org.apache.cassandra.locator.NetworkTopologyStrategy', 'dc-1': '3'}
  

Anda dapat melihat bahwa untuk pusat data 1, dc-1, faktor replikasi default untuk keyspace km adalah tiga untuk instalasi dengan tiga node Cassandra. Untuk keyspace tertentu yang bersifat internal ke Cassandra (seperti system, system_schema, dll.), strategi replikasi dan faktor replikasi mungkin berbeda. Ini adalah perilaku sistem yang disengaja.

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

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 baca dan tulis:
    grep -ri "consistency.level" *
  4. Login ke node Server Pengelolaan.
  5. Ubah ke direktori /opt/apigee/edge-management-server/conf:
    cd /opt/apigee/edge-management-server/conf
  6. Ulangi langkah 3.

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