apache cassandra
Apache Cassandra, büyük veri işleme ve gerçek zamanlı uygulamalar için tasarlanmış bir NoSQL veritabanıdır. Netflix, Instagram gibi devlerin tercihi olan Cassandra, kesintisiz hizmet, yüksek performans ve ölçeklenebilirlik sunar.
Cassandra Nedir ve Ne İşe Yarar?
2008 yılında Facebook tarafından geliştirilip açık kaynak hale getirilen Cassandra, veriyi dünya çapında birden fazla veri merkezine dağıtma yeteneğiyle öne çıkar. Büyük miktarda veriyi yüksek hızda okuma ve yazma yeteneğiyle, IoT, sosyal medya analitiği ve e-ticaret gibi alanlarda kullanılır.
Mimari: Dağıtık ve Dayanıklı
Cassandra’nın mimarisi tamamen dağıtık olup merkezi bir kontrol noktası yoktur. Her düğüm eşit haklara sahiptir ve veriler düğümler arasında token ring mantığıyla paylaştırılır.
Temel Bileşenler
1. Cluster: Cassandra düğümlerinin bir araya gelerek oluşturduğu yapı.
2. Node: Veriyi depolayan bireysel bir Cassandra sunucusu.
3. Keyspace: Veritabanlarının üst düzey organizasyonu.
4. SSTable: Verinin kalıcı olarak saklandığı dosyalar.
Replikasyon: Verilerin Güvenliği
Cassandra’da veriler, birden fazla düğüme replike edilir. Bu sayede bir düğüm çöktüğünde veri kaybı yaşanmaz.
• Replikasyon Faktörü (RF): Bir verinin kaç kopyasının saklanacağını belirler. Örneğin, RF=3 ise veri üç düğüme yazılır.
Consistency Level: Verinin yazılma ve okunma doğruluğunu kontrol eder.
Veri Yazma Süreci
Cassandra’nın verileri işleme sırası oldukça etkili bir şekilde yapılandırılmıştır:
1. Commit Log: Tüm yazma işlemleri önce bu diske yazılır. Ani bir kesinti durumunda veri buradan geri yüklenebilir.
2. MemTable: RAM’de saklanan geçici bir yapı. Veriler buraya sıralı olarak yazılır.
3. SSTable: MemTable dolduğunda, veriler disk üzerinde SSTable formatında kalıcı hale gelir.
Örnek:
Bir müşteri siparişi {id: 101, ürün: “Kitap”, miktar: 2} kaydedilirken önce commit log, ardından MemTable’a yazılır ve son olarak SSTable’da depolanır.
Veri Okuma Süreci
Cassandra, okuma işlemlerinde hızlı sonuçlar için çeşitli önbellek mekanizmaları kullanır:
1. MemTable: Veri önce RAM’de aranır.
2. Bloom Filter: SSTable’daki verileri daha hızlı bulmak için kullanılır.
3. SSTable: Veri diskte aranır ve bulunduğunda birleştirilir.
Örnek: Bir kullanıcıya ait sipariş bilgisi istenildiğinde, Cassandra önce MemTable’ı, ardından SSTable’ı tarar.
Özet ve Kullanım Alanları
Cassandra, dağıtık mimarisiyle veri merkezleri arasında güçlü bir iş birliği sağlar. Hem ölçeklenebilirliği hem de dayanıklılığı sayesinde IoT cihazlarından sosyal medya uygulamalarına kadar geniş bir alanda kullanılır.
Kullanım Senaryoları:
• IoT: Cihazlardan gelen verilerin gerçek zamanlı işlenmesi.
• E-Ticaret: Kullanıcı sepetleri ve siparişlerin kesintisiz yönetimi.
• Sosyal Medya: Beğeni ve paylaşım verilerinin hızlı bir şekilde işlenmesi.
Cassandra, günümüzün büyük veri çağında güçlü bir çözüm sunuyor. Hem verimliliği hem de esnekliği sayesinde, ölçeklenebilir ve güvenilir bir veri yönetimi arayan herkes için ideal bir tercihtir.