H O K K A
2 Ekim 2016

Gerçek Zamanlı Veri Analizi Nasıl Sağlıyor? Elasticsearch

Elasticsearch kullanıcılarına sunmuş olduğu büyük artılarda biri olarak

Gerçek zamanlı yani real time arama yapma özelliğidir.

Bugünkü yazımızda  Elasticsearch’ın bu özel yönünü yakından anlamaya çalışacağız.

Gerçek zamanlı

Gerçek zamanlı ne demektir? Bilig giriş ve çıkış hızının birbirine eşdeğer olması olarak açıklamak mümkün. Bu zaman farkının minimum seviyelerde olduğu durumları eş zamanlı olarak nitelendirebiliriz.

Elasticsearch bu zaman mesafesi konusunda en büyük artılardan birine sahip olmaktadır.  Verilerin seri bir şekilde birikme yaşanmadan alınmasına ve hızlı bir şekilde işlenmesine olanak sağlamaktadır.

Son dönemlerde eş zamanlı arama için e en opopüler yöntem olarak

Elasticsearch tercih edilmektedir. Depolanmak amacıyla gönderilen bir kayır sadece 1 saniye içerisinde aranılabilir hale getirebilmektedir.

Nasıl?

Alınan verilerin her biri, I/O adımlarında diskler ve darboğaz riski oluşturmaktadır. Bazen verilern bu sırada ortadan kaybolması da yaşanabilmektedir.  Hem zaman kaybı gibi diğer olumsuz özellikler ile maliyetler oldukça artış göstermektedir.

Elasticsearch,  oluşan tüm bu sorunların üstesinden gelerek darboğaz riskini aşmış ve gönderilen bilgi kaydının gerçek zamanlı aranabilir olmasını sağlamaktadır. Bunu yaparken disk ile kendisi arasında bulunan doya sistemine bağlı  ön belleği kullanmaktadır.

Elasticsearch ile ortaya çıkan uygulama sayesinde yeni segment, ilk olarak dosya sistemi önbelleğine ve ardından ise diske yazılır. Buna hafif yani lightweight yeni segment açma ve yazma prosesini yenileme adı verilmektedir.

Elasticsearch ile her shard periyodik bir şekilde saniyede bir kez otomatikman yenilenir. Bu süreçten sonra Elasticsearch ile  gerçek zamanlı arama gerçekleşmiş olur.

Test zamanı

Shard’ların gereken yenilenme zamanlarına ait aklınıza birkaç soru takılabilir. Bu sorular;

Örneğin Elasticsearch’e aktarılan veriler gönderim zamanından 1 saniye geçmeden gelirse ne olur?

Elasticsearch ile otomatik yönetilen shard’ların yenilenme süresine bakılmaksızın gönderdiğimiz veri talep edilebilir mi?

Önce kısa cevaplar.

Elasticsearch gönderilen verilerin sonuçlarını size vermez.

Evet.

İsterseniz basit bir şekilde anlatalım.

Otomatik yenileme süresi değiştirilebilir.

Elasticsearch konfigürasyon  verisinde, index.refresh_interval parametresiyle tüm cluster’da geçerli olacak şekilde

Endeks ayarları güncellenir ve, endeks özelinde geçerli olmak kaydıyla ek olarak otomatik yenileme devre dışı olabilir.

Elasticsearch shardlarının yenilenme süresinde dikkat edilmesi gereken nokta, yenileme operasyonunun maliyetli oluşudur. Otomatik yenileme süresi ile ilgili bir değişiklik yapılmak istendiğinde bunu dikkate almalısınız.

Otomatik yenileme süresini uzatmak yada daha hızlı endeksleme performansı ile belirlenen süreler içerisinde yeni veri ve var olan veriler üzerinde değişimler  ve aramalar görünür olmaz.