Cassandra - Mimari

Cassandra'nın tasarım amacı, tek bir hata noktası olmadan birden çok düğümde büyük veri iş yüklerini ele almaktır. Cassandra, düğümleri arasında eşler arası dağıtılmış bir sisteme sahiptir ve veriler bir kümedeki tüm düğümler arasında dağıtılır.

  • Bir kümedeki tüm düğümler aynı rolü oynar. Her düğüm bağımsızdır ve aynı zamanda diğer düğümlerle birbirine bağlıdır.

  • Bir kümedeki her düğüm, verilerin kümede gerçekte nerede bulunduğuna bakılmaksızın okuma ve yazma isteklerini kabul edebilir.

  • Bir düğüm düştüğünde, okuma / yazma istekleri ağdaki diğer düğümlerden sunulabilir.

Cassandra'da Veri Çoğaltma

Cassandra'da, bir kümedeki bir veya daha fazla düğüm, belirli bir veri parçası için kopya görevi görür. Bazı düğümlerin güncel olmayan bir değerle yanıt verdiği tespit edilirse, Cassandra en son değeri istemciye döndürecektir. En son değeri döndürdükten sonra, Cassandra birread repair eski değerleri güncellemek için arka planda.

Aşağıdaki şekil, Cassandra'nın tek bir hata noktası olmamasını sağlamak için bir kümedeki düğümler arasında veri çoğaltmayı nasıl kullandığına dair şematik bir görünümü göstermektedir.

Note - Cassandra kullanır Gossip Protocol arka planda düğümlerin birbirleriyle iletişim kurmasına ve kümedeki hatalı düğümleri algılamasına izin verin.

Cassandra Bileşenleri

Cassandra'nın temel bileşenleri aşağıdaki gibidir -

  • Node - Verilerin saklandığı yerdir.

  • Data center - İlgili düğümlerin bir koleksiyonudur.

  • Cluster - Küme, bir veya daha fazla veri merkezi içeren bir bileşendir.

  • Commit log- Kaydetme günlüğü, Cassandra'daki bir çökme kurtarma mekanizmasıdır. Her yazma işlemi commit günlüğüne yazılır.

  • Mem-table- Mem-tablosu, bellekte yerleşik bir veri yapısıdır. Kaydetme günlüğünden sonra, veriler mem-tablosuna yazılacaktır. Bazen, tek sütunlu bir aile için birden çok mem tablosu olacaktır.

  • SSTable - İçeriği bir eşik değerine ulaştığında verilerin mem tablosundan boşaltıldığı bir disk dosyasıdır.

  • Bloom filter- Bunlar, bir öğenin bir kümenin üyesi olup olmadığını test etmek için hızlı, kesin olmayan algoritmalardan başka bir şey değildir. Bu özel bir tür önbellektir. Bloom filtrelerine her sorgudan sonra erişilir.

Cassandra Sorgu Dili

Kullanıcılar, Cassandra Sorgu Dili'ni (CQL) kullanarak düğümleri aracılığıyla Cassandra'ya erişebilir. CQL veritabanını ele alır(Keyspace)tablolardan oluşan bir kap olarak. Programcılar kullanırcqlsh: CQL veya ayrı uygulama dili sürücüleriyle çalışma istemi.

İstemciler okuma-yazma işlemleri için herhangi bir düğüme yaklaşır. Bu düğüm (koordinatör), müşteri ve verileri tutan düğümler arasında bir proxy çalar.

Yazma İşlemleri

Düğümlerin her yazma etkinliği, commit logsdüğümlerde yazılmıştır. Veriler daha sonra yakalanacak vemem-table. Mem-tablosu dolduğunda, veriler SStableveri dosyası. Tüm yazılar otomatik olarak bölümlenir ve küme içinde çoğaltılır. Cassandra, gereksiz verileri atarak SSTable'ları düzenli olarak birleştirir.

İşlemleri Okuyun

Okuma işlemleri sırasında Cassandra, mem-tablosundan değerleri alır ve gerekli verileri tutan uygun SSTable'ı bulmak için çiçek filtresini kontrol eder.