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 ditempatkan.

Jumlah total replika untuk keyspace di seluruh cluster Cassandra disebut sebagai faktor replikasi keyspace. Faktor replikasi satu berarti hanya ada satu salinan dari setiap baris di cluster Cassandra. Faktor replikasi dua berarti ada dua salinan untuk setiap baris, di mana setiap salinan berada di node 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, faktor replikasi default untuk keyspace Edge adalah tiga. Sebagai aturan 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 akan terpengaruh.

Tentang tingkat konsistensi Cassandra

Tingkat konsistensi Cassandra didefinisikan sebagai jumlah minimum node Cassandra yang harus mengonfirmasi operasi baca atau tulis sebelum operasi tersebut dapat dianggap berhasil. Tingkat konsistensi yang berbeda dapat ditetapkan ke keyspace Edge yang berbeda.

Saat terhubung ke Cassandra untuk operasi baca dan tulis, node Pemroses Pesan dan Server Pengelolaan biasanya menggunakan nilai Cassandra LOCAL_QUORUM untuk menentukan tingkat konsistensi untuk keyspace. Namun, beberapa keyspace ditentukan untuk menggunakan tingkat konsistensi satu.

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 node 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 di pusat data harus merespons operasi baca/tulis agar operasi berhasil. Untuk tiga node Cassandra, cluster dapat menoleransi satu node yang tidak aktif per pusat data.

Dengan menentukan tingkat konsistensi sebagai LOCAL_QUORUM, Edge menghindari latensi yang diperlukan dengan memvalidasi operasi di beberapa pusat data. Jika keyspace menggunakan nilai QUORUM Cassandra 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.