Cassandra, büyük verileri işlemek için tasarlanmıştır. Cassandra'nın ana özelliği, verileri tek bir hata noktası olmadan birden çok düğümde depolamaktır.
Bu tür Cassandra mimarisinin nedeni, donanım arızasının her an ortaya çıkabilmesiydi. Herhangi bir düğüm çökebilir. Arıza durumunda başka bir düğümde saklanan veriler kullanılabilir. Bu nedenle Cassandra, dağıtılmış mimarisi ile tasarlanmıştır.
Cassandra, verileri uçtan uca dağıtılmış moda mimarisiyle farklı düğümlerde depolar.
Tüm düğümler, Gossip protokolünü kullanarak birbirleriyle bilgi alışverişinde bulunur . Dedikodu, Cassandra'da düğümlerin birbirleriyle iletişim kurabildiği bir protokoldür.
Bu eğitimde öğreneceksiniz-
- Cassandra Bileşenleri
- Veri Çoğaltma
- Yazma İşlemi
- İşlemi Oku
Cassandra Bileşenleri
Cassandra'da aşağıdaki bileşenler bulunmaktadır;
- Düğüm
Düğüm, verilerin depolandığı yerdir. Cassandra'nın temel bileşenidir.
- Veri merkezi
Bir düğüm koleksiyonuna veri merkezi denir. Birçok düğüm bir veri merkezi olarak kategorize edilir.
- Küme
Küme, birçok veri merkezinin koleksiyonudur.
- Kaydetme Günlüğü
Her yazma işlemi Commit Log'a yazılır. Kaydetme günlüğü, çökme kurtarma için kullanılır.
- Mem-tablo
Veriler Commit günlüğüne yazıldıktan sonra Mem-tabloya yazılır. Veriler geçici olarak Mem-tabloya yazılır.
- SSTable
Mem-table belirli bir eşiğe ulaştığında, veriler bir SSTable disk dosyasına boşaltılır.
Veri Çoğaltma
Veri işlemi sırasında herhangi bir zamanda donanım sorunu oluşabileceğinden veya bağlantı kesilebileceğinden, sorun oluştuğunda bir yedekleme sağlamak için bir çözüm gereklidir. Böylece veriler, tek bir hata noktası olmadığından emin olmak için çoğaltılır.
Cassandra veri kopyalarını bu iki faktöre göre farklı düğümlere yerleştirir.
- Bir sonraki eşlemenin nereye yerleştirileceğini Çoğaltma Stratejisi belirler .
- Farklı düğümlere yerleştirilen toplam çoğaltma sayısı Çoğaltma Faktörü tarafından belirlenir .
Bir Çoğaltma faktörü, verilerin yalnızca tek bir kopyası olduğu anlamına gelirken, üç çoğaltma faktörü, verilerin üç farklı düğümde üç kopyası olduğu anlamına gelir.
Tek bir hata noktası olmadığından emin olmak için, çoğaltma faktörü üç olmalıdır.
Cassandra'da iki tür çoğaltma stratejisi vardır.
SimpleStrategy
SimpleStrategy, yalnızca bir veri merkeziniz olduğunda kullanılır. SimpleStrategy, ilk kopyayı bölümleyici tarafından seçilen düğüme yerleştirir. Bundan sonra, kalan kopyalar Düğüm halkasında saat yönünde yerleştirilir.
İşte SimpleStrategy'nin resimli temsili.
NetworkTopologyStrateji
NetworkTopologyStrategy, ikiden fazla veri merkeziniz olduğunda kullanılır.
NetworkTopologyStrategy'de her veri merkezi için replikalar ayrı ayrı ayarlanır. NetworkTopologyStrategy, kopyaları başka bir raftaki ilk düğüme ulaşana kadar halkada saat yönünde yerleştirir.
Bu strateji, kopyaları aynı veri merkezindeki farklı raflara yerleştirmeye çalışır. Bunun nedeni, bazen rafta arıza veya sorun oluşabilmesidir. Daha sonra diğer düğümlerdeki kopyalar veri sağlayabilir.
İşte Ağ topolojisi stratejisinin resimli temsili
Yazma İşlemi
Koordinatör, kopyalara bir yazma isteği gönderir. Tüm kopyalar doluysa, tutarlılık seviyelerine bakılmaksızın yazma isteği alacaklar.
Tutarlılık düzeyi , başarı onayıyla kaç düğümün yanıt vereceğini belirler.
Veriler, commit günlüğüne ve memTable'a başarıyla yazılırsa, düğüm başarı onayı ile yanıt verir.
Örneğin, çoğaltma faktörü üçe eşit olan tek bir veri merkezinde, üç eşleme yazma isteği alır. Tutarlılık düzeyi bir ise, yalnızca bir kopya başarı onayıyla yanıt verir ve kalan ikisi hareketsiz kalır.
Kalan iki eşlemenin düğüm kesintileri veya başka bir sorundan dolayı veri kaybetmesi durumunda Cassandra'nın satırı Cassandra'daki yerleşik onarım mekanizmasıyla tutarlı hale getireceğini varsayalım.
Cassandra'da yazma sürecinin nasıl gerçekleştiği burada anlatılıyor,
- Düğüme yazma isteği geldiğinde, öncelikle commit günlüğünde oturum açar.
- Sonra Cassandra verileri mem tablosuna yazar. Her yazma isteğinde mem-tablosuna yazılan veriler ayrıca commit günlüğüne ayrı olarak yazılır. Mem-table, hafızada geçici olarak saklanan bir veridir ve Commit günlüğü, yedekleme amacıyla işlem kayıtlarını günlüğe kaydeder.
- Mem-table dolduğunda, veriler SSTable veri dosyasına boşaltılır.
İşlemi Oku
Bir koordinatörün eşlemelere gönderdiği üç tür okuma isteği vardır.
- Doğrudan istek
- Özet isteği
- Onarım talebini okuyun
Koordinatör, kopyalardan birine doğrudan istek gönderir. Bundan sonra, koordinatör özet talebini tutarlılık seviyesi tarafından belirtilen kopya sayısına gönderir ve döndürülen verilerin güncellenmiş bir veri olup olmadığını kontrol eder.
Bundan sonra, koordinatör kalan tüm kopyalara özet isteği gönderir. Herhangi bir düğüm tarihi geçmiş bir değer verirse, bir arka planda okuma onarım isteği bu verileri güncelleyecektir. Bu işleme okuma onarım mekanizması denir.
Özet
Bu eğitici, Cassandra'nın iç mimarisini ve Cassandra'nın farklı aşamalarda verileri nasıl kopyaladığını, yazdığını ve okuduğunu açıklar. Ayrıca burada Cassandra'nın süreç boyunca tutarlılık seviyesini nasıl koruduğunu açıklıyor.