Cassandra Çoğaltma Faktörü ve Tutarlılık Düzeyi Hakkında

Edge for Private Cloud 4.18.01 sürümü

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

Cassandra, güvenilirlik ve hata toleransı sağlamak için veri replikalarını birden fazla düğümde depolar. Her Edge anahtar alanı için çoğaltma stratejisi, kopyaların yerleştirildiği düğümleri belirler.

Bir Cassandra kümesindeki bir anahtar alanının toplam replika sayısına, anahtar alanının çoğaltma faktörü denir. Bir olan çoğaltma faktörü, Cassandra kümesinde her satırın yalnızca bir kopyasının bulunduğu anlamına gelir. İki olan çoğaltma faktörü, her satırın iki kopyasının 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ü bulunan bir üretim sisteminde, Edge anahtar alanı için varsayılan çoğaltma faktörü üçtür. Genel bir kural olarak, çoğaltma faktörü, kümedeki Cassandra düğümlerinin sayısını aşmamalıdır.

Her Edge anahtar alanı için çoğaltma faktörünü gösteren Cassandra şemasını görüntülemek üzere aşağıdaki prosedürü uygulayı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. Dilerseniz $(hostname -i) yerine düğümün IP adresini de kullanabilirsiniz.

Her anahtar alanı için aşağıdaki biçimde bir çıkış görürsünüz:

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

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

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

Örneğin, Cassandra düğümlerinin sayısını altıya çıkarır ancak çoğaltma faktörünü üçte bırakırsanız tüm Cassandra düğümlerinde tüm verilerin bir kopyasının bulunduğundan emin olmazsınız. Bir düğüm bozulursa çoğaltma faktörü yükseldiğinde düğümdeki verilerin kalan düğümlerden birinde bulunma olasılığı da yükselir. Daha yüksek bir çoğaltma faktörünün dezavantajı, veri yazma işlemlerinde gecikme süresinin artmasıdır.

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

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

Mesaj İşleyen ve Yönetim Sunucusu düğümleri, okuma ve yazma işlemleri için Cassandra'ya bağlanırken genellikle bir anahtar alanı için tutarlılık düzeyini belirtmek üzere LOCAL_QUORUM Cassandra değerini kullanır. Ancak bazı anahtar alanları, bir tutarlılık düzeyi kullanacak şekilde tanımlanır.

Bir veri merkezi için LOCAL_QUORUM değerinin hesaplanması:

LOCAL_QUORUM = (replication_factor/2) + 1

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

LOCAL_QUORUM = 2 olduğunda, işlemin başarılı olması için veri merkezindeki üç Cassandra düğümünden en az ikisi bir okuma/yazma işlemine yanıt vermelidir. Üç düğümlü bir Cassandra kümesinde, küme her veri merkezi için bir düğümün kapalı olmasına izin verebilir.

Edge, tutarlılık düzeyini LOCAL_QUORUM olarak belirterek birden fazla veri merkezinde işlemleri doğrularken ihtiyaç duyulan gecikmeyi önler. Bir anahtar alanı, tutarlılık düzeyi olarak Cassandra QUORUM değerini kullanıyorsa okuma/yazma işlemlerinin tüm veri merkezlerinde doğrulanması gerekir.

Uç İleti İşlemci veya Yönetim Sunucusu düğümlerinin kullandığı tutarlılık düzeyini görmek için:

  1. Mesaj İşleyici düğümüne giriş yapın.
  2. /opt/apigee/edge-message-processor/conf dizinine gidin:
    > 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 dizinine gidin:
    > cd /opt/apigee/edge-management-server/conf
  7. 3. ve 4. adımları tekrarlayın.

Kümeye başka Cassandra düğümleri eklerseniz tutarlılık düzeyi etkilenmez.