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

Private Cloud için Edge v. 4.17.01

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

Cassandra, güvenilirlik ve hatadan etkilenmeme özelliğini sağlamak için veri kopyaları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ümesinde bir anahtar alanı için toplam kopya sayısı, anahtar alanının çoğaltma faktörü olarak adlandırılır. 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 tuş 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 yönlendirilir. Alternatif olarak, $(Hostname -i) kısmını düğümün IP adresiyle değiştirebilirsiniz.

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;

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

Kümeye başka 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 kopyası olmasını sağlamamış olursunuz. Bir düğüm devre dışı kalırsa daha yüksek bir çoğaltma faktörü, 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 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ü olan bir Edge üretim ortamının 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 bir okuma/yazma işlemine yanıt vermesi gerekir. Bu nedenle küme, üç düğümlü Cassandra kümesi için veri merkezi başına bir düğümün çalışmamasına izin verebilir.

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

Edge Mesaj İşleyen veya Yönetim Sunucusu düğümleri tarafından kullanılan 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 dizininde değişiklik yapın:
    > cd /opt/gelir/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 ek Cassandra düğümleri eklerseniz tutarlılık düzeyi etkilenmez.