Apache Cassandra
Herkese Merhabalar ,Bu Yazımda Apache Cassandra’yı Anlatıyor Olacağım
Temel Mimarisinden Başlayıp Ubuntu 20.10 Üzerinde Kurulumunu ve Temel Cql dili ile İlgili Örnekler Verip Yazımı Bitireceğim
#come on, then what are we waiting for?
Apache Cassandra Nedir ?
Apache tarafından geliştirilen açık kaynaklı, yüksek ölçeklenebilirliğe sahip yüksek performanslı, column based yapısına sahip dağıtık bir NoSQL veritabanıdır
Kapasiteyisle Ünlüdür Yapısal veya Yapısal Olmayan Verileri Petabaytlarca Tutabilir
Gossip Protokolü İle Node’lar Arası Haberleşme Sağlanır
Google Snappy Algoritması İle Büyük Miktarda Veri Sıkıştırması Sağlanır
Ölçeklenebilir ve Replikasyon Özelliği Vardır
Consistency Level (Veri Tutarlığı) Verinin Bir Node’da Farklı Diğer Node’da Farklı Olması Sorunlar , Baş Ağrıları Yaratabilir Read\Write İşleminin Başarılı Olması Kaç Adet Node’nin İstek Aldığını Bildirilmesi Gerekir
Level One = Replica Nodelardan Bir Tanesinin Geri Bildirim Yapması Yeterlidir
Level Quorum = Nodelerin Neredeyse Hepsinin Geri Bildirim Yapması
Level Each Quorum = Her Bir Datacenter’da ki Nodeların Geri Bildirim Vermesi
Level ALL = Tüm Nodeların Geri Bildirim Vermesi
SQL Diline Benzeyen CQL Dilini Kullanır
Terminolojisi
Cluster = En Dış Katmandır Birden Fazla Datacenter Barındıran Kümedir
Datacenter = Birden Fazla Node’nin Birleşimiyle Oluşan Yapı
Node = Cassandranın Çalıştığı Sunucu Veriler Burada Saklanır
Rack = İki Node’nin Bir Biriyle Eşleşmesi Durumuna Rack Denir
Data Replicaton = Verinin Kopyasının Bir Çok Yerde Tutulmasıdır Keypspace Bazında Yapılır Replication Factor Stratejileri
SimpleStrategy = Cluster İçersinde ki nodelar replica factor sayısına göre sequentialy bir şekilde saat yönünde yazılıp devam eder, tek datacenter varsa tercih edilir
Network Topology = Multiple Datacenter varsa Tercih Ediliir Her Bir Data Center’da Ne Kadar Replicanın Tutulcagı Belirlenir
Commit Log = Cassandra Verinin Devamlılık Süreklilik Sağlamak için Verilerini İlk Önce Commit Loga Yazar Her Hangi Server Crush Durumuna Karşı Recovery Sağlar
Memtables = Veriler Commit Loga Yazıldıktan Sonra Memtable’lara Yazar Bellek Üzerinde Tutulurlar
SsTables = Memtables’daki Veriler Ayarlanmış Bir Değere Ulaştıktan Sonra SsTable Alınır Disk Üzerinde Tutulur
Cassandra Veri Modeli
Ubuntu Kurlum
Bir Sonraki Yazımda Devcenter İle CQLSHL Örneklerini Yazmaya Çalışcağım Umarım Faydalı Olmuştur Takipte Kalmayı Unutmayın :)