Merhaba sevgili e-bergi okurları;

Bu yazımda sizlere Büyük Tablo (BigTable)'dan bahsetmek istiyorum. Öncelikle Bigtable nedir,onu açıklayalım. Bigtable, Google arama motoru tarafından geliştirilen ve arama motoru tasarımında kullanılan sistemdir. Gelişimi 2004 yılında başlamıştır ve temel olarak amacı web sayfalarının daha hızlı ve daha başarılı bulunması , depolanması ve güncellenmesi içindir.Çalışma mantığına bakacak olursak, aranan herhangi bir veriye erişmek için aranan hücrenin zaman, satır ve kolon bilgisine ihtiyaç duyduğunu görürüz. İşlemler ise sadece satır seviyesinde yapılır. Böylelikle tablolar arasında birleştirme (join) işlemlerine gerek duyulmaz.

Bunun yanı sıra sunucuların tamamının erişebildiği ek bir işlem kütüğü (transaction log) vardır ve burda yapılan tüm işlemler depolanır. Bu, sunuculardan birinin bozulmasını önlemeye yönelik bir depolamadır. Herhangi bir sorun çıktığında diğer sunuculardan biri kütüğe erişim sağlayarak problem oluşturan sunucunun yerine çalışabilir.En önemli avantajlarından birisi de satır bazında bir sınırlamanın olmamasıdır.Yani her kayıt için sınırsız sayıda bağlantı tutabildiğini görüyoruz. Eğer bunun için herhangi bir limit belirlenmiş olsaydı 2 durum söz konusu olurdu. Birincisi, limiti aşmayan durumlarda hafızada gereksiz yer işgal edilecekti. Bir diğeri ise limit aşıldığında, bağlantıların hepsi tutulamayacak sadece bir kısmı tutulabilecekti. Böylelikle disk erişimi de azaltılmış oluyor, yani eğer ilişkisel veritabanı kullanılmış olsaydı,işlemler sadece satır seviyesinde yapılmayacak ve sınırlama da olmadığından site ile ilgili bilgilerin okunması ancak bütün tablolara erişildikten sonra mümkün olacaktı. Bigtable kullanımının bir diğer avantajlı özelliği ise özel bir sorgulama diline (query language) ihtiyaç duyulmaması ve dolayısıyla sorgulama dilinin iyileştirilmesi (query optimisation) gibi özel adımlara gerek olmamasıdır.

BigTable yaklaşımının karşılaştığı problemler ve dezavantajı sayılabilecek özellikleri de vardır.

Örneğin;

  • Aynı kaydın birden çok defa geçmesi bir risktir.
  • Aynı içeriğin bir kısmının yeni sürümlerinin çıkması,
  • Aynı içeriğin internet üzerinde içerik hırsızları tarafından kopyalanması,
  • Çalıntı içeriğin bulunması,
  • Çoklu gönderiler (spam, mass message) ile aynı içeriğin birden fazla forum ve tartışma sitelerinde bulunması veya kopya siteler bu tip içerik tekrarlarının başlıca sebepleridir.

Yapılan geniş kapsamlı birçalışma sonucu, dolaşılan sayfaların %30′luk bir bölümünün, geri kalan %70′lik bölüm içerisinde tam veya benzer içerikte kopyalar bulundurduğu saptanmıştır. Diğer bir deyişle sadece %40′lık bir kesimin benzeri veya tam kopyası bulunmamakta %60′lık kesim ise benzer veya tam kopya olarak internette bulunmaktadır. Bunun çözümü için ise tekrarların bulunması gerekir . Yani bu da duplicate detection dediğimiz işlemdir.

Duplicate detection işlemi iki şekilde yapılabilir: İlk olarak benzerliklerin bulunması ve belirli bir benzerlik seviyesinin üzerinde olan içeriklerin eşleştirilmesidir. İkincisi ise tam ekranın bulunmasıdır, yani amaç birebir kopyalamayı bulmaktır. Tam benzerliğin bulunması için checksum yöntemleri kullanılır. Benzer sitelerin bulunması için de geliştirilmiş algoritmalar vardır. Simhash algoritması buna örnektir ve Google tarafından da kullanılmaktadır.

Ben bu yazımda size genel özellikleriyle Bigtable’ı anlatmaya çalıştım. Ayrıntılı bilgi edinmek isterseniz kaynaklarımda da belirttiğim çeşitli websiteleri faydalı olacaktır.

Kaynakça: