Cassandra çoğaltma faktörü ve tutarlılık düzeyi hakkında

Cassandra çoğaltma faktörü hakkında

Cassandra, güvenilirlik ve hatadan etkilenmemek için veri replikalarını birden fazla düğümde depolar. Her bir Edge anahtar alanının çoğaltma stratejisi, replikaların yerleştirileceği düğümleri belirler.

Cassandra kümesindeki bir anahtar alanının toplam replika sayısı, anahtar alanının çoğaltma faktörü olarak adlandırılır. Çoğaltma çarpanının bir olması, Cassandra kümesindeki her satırın yalnızca bir kopyasının olduğu anlamına gelir. Çoğaltma çarpanının iki olması, her satırın iki kopyası olduğu ve her kopyanın farklı bir düğümde bulunduğu anlamına gelir. Tüm replikalar eşit derecede önemlidir. Birincil veya ana replika yoktur.

Her veri merkezinde üç veya daha fazla Cassandra düğümü olan bir üretim sisteminde, Edge anahtar alanının varsayılan çoğaltma faktörü üçtür. Genel kural olarak, çoğaltma faktörü kümedeki Cassandra düğümlerinin sayısını aşmamalıdır.

Her bir Edge anahtar alanı için çoğaltma faktörünü gösteren Cassandra şemasını görüntülemek için aşağıdaki prosedürü kullanın:

  1. Bir Cassandra düğümüne giriş yapın.
  2. Aşağıdaki komutu çalıştırın:
    /opt/apigee/apigee-cassandra/bin/cassandra-cli -h $(hostname -i) <<< "show schema;"

    Burada $(hostname -i), Cassandra düğümünün IP adresine çözümlenir. Alternatif olarak $(hostname -i) kısmını düğümün IP adresiyle değiştirebilirsiniz.

Her tuş alanı için şu biçimde çıktı görürsünüz:

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

1 numaralı dc-1 veri merkezinde, üç Cassandra düğümü olan bir kurulumda kms anahtar alanının varsayılan çoğaltma faktörünün üç olduğunu görebilirsiniz.

Kümeye ilave Cassandra düğümleri eklerseniz varsayılan çoğaltma faktörü etkilenmez.

Örneğin, Cassandra düğümlerinin sayısını altıya çıkarıp çoğaltma faktörünü üçte bırakırsanız tüm Cassandra düğümlerinin tüm verilerin bir kopyasının olduğundan emin olamazsınız. Bir düğümün çökmesi durumunda, çoğaltma faktörünün yüksek olması, düğümdeki verilerin kalan düğümlerden birinde bulunma olasılığının daha yüksek olduğu anlamına gelir. Daha yüksek bir çoğaltma faktörünün olumsuz tarafı, veri yazma işlemlerinde artan gecikmedir.

Cassandra tutarlılık düzeyi hakkında

Cassandra tutarlılık düzeyi, işlemin başarılı olarak kabul edilebilmesi için okuma veya yazma işlemini onaylaması gereken minimum Cassandra düğümü sayısı olarak tanımlanır. Farklı Edge tuş alanlarına farklı tutarlılık düzeyleri atanabilir.

Okuma ve yazma işlemleri için Cassandra'ya bağlanırken, Mesaj İşleyici ve Yönetim Sunucusu düğümleri genellikle bir anahtar alanının tutarlılık düzeyini belirtmek için LOCAL_QUORUM Cassandra değerini kullanır. Bununla birlikte, bazı tuş alanları bir tutarlılık seviyesi kullanacak şekilde tanımlanır.

Bir veri merkezi için LOCAL_QUORUM değeri hesaplanır:

LOCAL_QUORUM = (replication_factor/2) + 1

Yukarıda açıklandığı gibi, üç Cassandra düğümü olan Edge üretim ortamı için varsayılan çoğaltma faktörü üçtür. Bu nedenle, varsayılan LOCAL_QUORUM değeri = (3/2) +1 = 2 (değer, bir tam sayıya yuvarlanır).

LOCAL_QUORUM = 2 olduğunda, işlemin başarılı olması için veri merkezindeki üç Cassandra düğümünden en az ikisinin okuma/yazma işlemine yanıt vermesi gerekir. Bu nedenle, üç düğümlü bir Cassandra kümesi için küme, veri merkezi başına bir düğümün devre dışı kalmasına tolerans gösterebilir.

Tutarlılık düzeyini LOCAL_QUORUM olarak belirleyen Edge, işlemleri birden fazla veri merkezinde doğrulayarak gereken gecikmeyi önler. Bir anahtar alanı, tutarlılık düzeyi olarak Cassandra QUORUM değerini kullandıysa okuma/yazma işlemlerinin tüm veri merkezlerinde doğrulanması gerekir.

Uç İleti İşleyici veya Yönetim Sunucusu düğümleri tarafından kullanılan tutarlılık düzeyini görmek için:

  1. Bir Message Processor düğümüne giriş yapın.
  2. /opt/Apigee/edge-message-processor/conf dizininde değişiklik yapın:
    cd /opt/apigee/edge-message-processor/conf
  3. Yazma tutarlılığı için:
    grep -ri "write.consistencylevel" *
  4. Okuma tutarlılığı için:
    grep -ri "read.consistencylevel" *
  5. Yönetim Sunucusu düğümüne giriş yapın.
  6. /opt/Apigee/edge-management-server/conf dizininde değişiklik:
    cd /opt/apigee/edge-management-server/conf
  7. 3. ve 4. adımları tekrarlayın.

Kümeye ilave Cassandra düğümleri eklerseniz tutarlılık düzeyi etkilenmez.