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

Edge for Private Cloud 4.18.05 sürümü

Cassandra replikasyon 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 replikasyon stratejisi, replikaların yerleştirildiği düğümleri belirler.

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

Her Edge anahtar alanı için replikasyon faktörünü gösteren Cassandra şemasını görüntülemek üzere 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;"

    $(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;

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

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

Örneğin, Cassandra düğümlerinin sayısını altıya çıkarır ancak replikasyon faktörünü üçte bırakırsanız tüm Cassandra düğümlerinde tüm verilerin bir kopyasının bulunmasını sağlayamazsınız. Bir düğüm devre dışı kalırsa daha yüksek bir replikasyon faktörü, düğümdeki verilerin kalan düğümlerden birinde bulunma olasılığının daha yüksek olduğu anlamına gelir. Yüksek replikasyon faktörünün dezavantajı, veri yazma işlemlerinde gecikmenin artmasıdır.

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

Cassandra tutarlılık düzeyi, bir okuma veya yazma işleminin başarılı sayılabilmesi için işlemi onaylaması gereken minimum Cassandra düğümü sayısı olarak tanımlanır. Farklı Edge anahtar 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, bir anahtar alanının tutarlılık düzeyini belirtmek için genellikle LOCAL_QUORUM Cassandra değerini kullanır. Ancak bazı anahtar alanları, bir tutarlılık düzeyi kullanacak şekilde tanımlanır.

Bir veri merkezinin LOCAL_QUORUM değerinin hesaplanması şu şekildedir:

LOCAL_QUORUM = (replication_factor/2) + 1

Yukarıda açıklandığı gibi, üç Cassandra düğümü içeren bir Edge üretim ortamı için varsayılan replikasyon 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. Üç düğümlü bir Cassandra kümesinde, küme her veri merkezinde bir düğümün devre dışı kalmasını tolere edebilir.

Edge, tutarlılık düzeyini LOCAL_QUORUM olarak belirterek birden fazla veri merkezinde işlemleri doğrulamanın neden olduğu 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.

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

  1. Bir Mesaj İşleyici düğümüne giriş yapın.
  2. /opt/apigee/edge-message-processor/conf dizinine geçin:
    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 geçin:
    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.