Cassandra Mimirisine Ön Bakış

Reading Time: 3 minutes

Cassandra Apache tarafından geliştirilen NoSQL veritabanı mimarisini implemente etmek için geliştirilen açık kaynak kodlu bir veritabanıdır . Cassandra günümüzde sıkça kullanılmaktadır . Cassandra eBay , Twitter , Reddit gibi çok büyük veri yapısını saklayan ve yöneten firmalarda kullanılmaktadır .

Cassandra en basit haliyle column based nosql bir veritabanı olarak tanımlanır. Veriler RDBMSlerde olduğu gibi ilişkisel yöntemle tutulmaz. Büyük boyutta mission-critical olmayan verilerin tutulması için geliştirilmiştir.

Cassandra mimarisi yetkili bir userın herhangi bir datacenterda herhangi bir node veya dataya erişmesine izin verir. Dataya erişirken CQL kullanılır. Cqlsh aracı ile cql statementları yazılır.

Cassandra clusterdaki nodelar arasında datayı otomatik olarak dağıtır. Ekstra bir kod yazmaya,işlem yapmaya gerek duyulmaz. Replikasyon özelliği vardır. Cassandranın Lineer scaleability özelliği vardır. Yani bir clustera online olarak yeni nodelar eklenebilir. Ve kapasite lineer bir biçimde artar.

Neden Cassandra ?

RDBMS sistemleri veriler eklendikçe dikey olarak büyürken, NoSQL sistemlerinde veriler yatay olarak büyümektedir.  Master – slave yapısı yerine peer – to – peer modeli uygulanır.

Master sistem kullanan yapılarda fazla sayıda istek geldiğinde server bunu karşılayamazsa sistemde sıkıntılar yaşanır. Fakat Cassandra ile böyle bir problem yaşanmaz. Data center içerisine istediğimiz kadar cluster (server) ekleyebiliriz.

  • Gigabyte, petabyte boyutlarında ölçeklenebilirlik
  • Yeni node’lar eklenerek lineer olarak performans artışı
  • Kolay replication
  • Dağıtık mimari
  • Çoklu data center ve bulut çözümü sağlaması
  • Sistemden ayrı caching layer’larına ihtiyaç olmaması
  • Esnek şema (schema) tasarımı
  • Veri sıkıştırma (Google’ın Snappy algoritaması kullanılır)
  • CQL ile sorgu gerçekleme
  • Dil ve platform desteği
  • Özel olarak tasarlanmış yazılım ve donanım ihtiyacının olmaması

Üstteki resme baktığımızda bir master-slave yapısı yerine peer-to-peer model uygulanmış  . Master sistem kullanan yapılarda fazla sayıda request geldiği zaman  server bunu karşılayamazsa sistemde sıkıntılar yaşanır. Fakat Cassandra ile böyle bir problem yaşanmaz. Datacenter içerisine istediğimiz kadar cluster(server) ekleyebiliriz .

Temel Özelliklerindne Bazıları :

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.

 Kolay Gelsin.

Leave a Reply

Your email address will not be published. Required fields are marked *