Ölçeklendirilebilir olması, çok yüksek boyutlardaki veriyi saklayabilmesi, çok yüksek okuma ve yazma hızı, %80 e varan veri sıkıştırma özelliği, çoklu veri merkezini destekleyen dağıtık yapısı gibi teknik özellikleri nedeniyle yaygın olarak kullanılmaktadır. Kullanıcıları arasında Facebook, Twitter, Cisco, Rackspace, Digg, Cloudkick, Reddit, eBay, GitHub, GoDaddy, Instagram, Netflix gibi çok sayıda büyük firma vardır.
Cassandra’nın temel özellikleri
Yatay Ölçeklenebilirlik (Horizontal scalability): Kümeye (cluster) yeni sunucular ekleyerek kapasite artırımına izin verir. Doğrusala yakın ölçeklendirme performansına sahiptir. Bu sayede yüksek performans garanti edilir.
Tek Kırılma Noktasının Olmaması (No Single Point of Failure): Cassandra, sürekli erişilebilirliği sağlamak amacıyla tasarlandığı için bir sunucudaki hatadan dolayı kümenin çalışmaz duruma gelmesi mümkün değildir. Klasik veritabanlarındaki “master/slave” veya replikasyon yapılarını kullanmaz. Veri, küme içindeki sunuculara (node) dağıtılır. İstenilen sayıda (replication factor) sunucuya kopyalanır. Tüm sunucular, gelen isteklere cevap verebilecek şekilde tasarlandığı için sunuculardan birinde yaşanan sorun tüm kümeyi etkilemez.
Replikasyon (Replication): Küme içindeki tüm sunucular (node) gelen okuma ve yazma isteklerine cevap verebilirler. İsteğin ilk geldiği sunucu “kordinatör” olarak adlandırılır ve istenilen sayıda sunucuya kopyalanmasını sağlar. Kopya sayısı (replication factor) veritabanı (keyspace) bazında ayarlanabilir.
Çoklu Veri Merkezi Desteği: Veriler birden fazla veri merkezine kopyalanabilir. En yaygın kullanımı, uygulamaların en yakındaki veri merkezine yazması ve diğer veri merkezlerine kopyalanması şeklindedir. Çoklu veri merkezi kullanılması durumunda kopya sayısı, veritabanı ve veri merkezi bazında ayarlanabilir.
Ayarlanabilir Veri Tutarlılığı Seviyesi (Consistency Levels): Veri tutarlılığı seviyesi, okuma isteğinin kaç sunucudan veri alarak cevaplanacağını ve yazma isteğinin kaç sunucuya veri yazıldıktan sonra istemciye “tamamlandı” olarak dönüleceğini belirler. Örneğin kopya sayısı 10 olan bir kümeye gelen yazma isteğinin tutarlılık seviyesi 3 ise, gelen veri 3 sunucuya yazıldıktan sonra (kalan 7 sunucuya kopyalama devam ederken) istemciye “tamamlandı” olarak dönülecektir.
Cassandra veritabanında veri tutarlılığı seviyesi küme ve sorgu bazında ayarlanabilir. Yüksek veri tutarlılığı seviyesi performansı olumsuz etkilemektedir. Bu nedenle ihtiyaca uygun olarak ayarlamak doğru olacaktır.
Kolay Öğrenilebilir Sorgulama Dili: Cassandra veritabanında sorgulamalar Cassandra Query Language (CQL) adı verilen özel bir dil ile yapılmaktadır. SQL diline çok benzer yapıda olması ilişkisel veritabanlarından geçişi kolaylaştırmaktadır.
Ne Zaman Kullanılmalı?
Yukarıda değindiğim teknik özelliklerinden dolayı Cassandra, geniş bir kullanım alanına sahiptir. Kısaca özetlemek gerekirse Cassandra;
- Büyük verilerin saklaması
- Büyük veri üzerinde yüksek okuma yazma performansı
- Yüksek erişilebilirlik
- Değişken ve esnek veri yapısı
- Ölçeklenebilirlik ve replikasyon
ihtiyaçları için uygundur.

Yorumlar
Yorum Gönder