Bu içeriğimizde uygulamalarımızda veri akışını güçlendirmek ve kullanıcılarla etkileşim sürecinde hız ve performans açısından maliyeti düşürmek için kullanılan Caching tekniğinin ne olduğunu ve çeşitlerinin neler olabileceğini inceleyeceğiz.
Caching Nedir?
Özellikle web olmak üzere günümüzdeki yazılım uygulamalarında erişimci sayısı arttıkça kullanılan kaynakların yetersizliği söz konusu olabilmekte ve böyle bir durumda sistem kaynaklarını arttırarak ekstra maliyetin getirisi olan ekstra bütçe gereksinimi ile karşılaşabilmekteyiz. Bu kaçınılmaz süreçte arttırılan kaynak kapasitelerinin yanında kullanıcılar ile gerçekleştirilen etkileşimler neticesinde ortaya çıkan maliyetleri de düşürmemiz gerekmektedir.
Bu maliyetlere sebep olabilen durumlar için verilebilecek onlarca örnekten sadece veritabanını ele alırsak eğer kullanıcıdan gelen istekler doğrultusunda milyarlarca veri yazılım ile veritabanı arasında transfer edilmekte ve böyle bir durumda inanılmaz bir enerji tüketimi gerçekleştirilmektedir. Bu tüketim zamanla veritabanının ihtiyaçları karşılamayacak hale gelmesine sebep olacak ve nihayetinde veritabanı sunucusuna ekstradan yapılacak yatırımla sonuçlanacaktır.
İşte böyle durumlarda, ekstradan yatırımlara gerek kalmaksızın veritabanlarındaki yükü azaltabilmek ve yapılan isteklerin büyük çoğunluğunu daha dinamik bir şekilde karşılayabilmek için Caching mekanizması kullanılmaktadır.
Caching, çok sık kullanılan dataların her talep neticesinde sistemi tekrar tekrar yormaksızın daha hızlı elde edilmesi ve işlenebilmesi için veritabanı dışındaki farklı alanlara kaydedilmesi tekniğidir.
Caching doğru yer ve zamanda kullanıldığı taktirde uygulama performansı açısından oldukça yüksek bir performans artışı ve ölçeklendirilebilirlik sağlamakta ve uygulamadaki trafik yoğunluğuna göre 100 kişide gösterilen performansı 1000000 kişide de orantısal farka aldırmaksızın aynı kullanıcı deneyimiyle sunmaktadır. Ve tüm bunları ekstradan bir kapasite takviyesine gerek kalmaksızın gerçekleştirmektedir.
Stabil bir şekilde ve sürekli veritabanından çekilen verileri her istekte tekrar tekrar veritabanından elde ederek sistemi yormaktansa, bu verileri ilk sorgu neticesinde elde ettikten sonra cachelemeli ve sonraki tüm isteklere bu cachelenmiş veriler gönderilmelidir. Bu işlem bir önceki cümlede de vurgulandığı gibi ‘stabil’ verinin söz konusu olduğu tüm operasyonlar için büyük performans artışı gösterecektir.
Caching Durumlarında Dikkat Edilmesi Gerekenler
İlk olarak bilmemiz gereken temel kural, cache edilmiş verilerin orjinal verilerin kopyası olduğudur. Süreçte veritabanındaki orjinal verilerde olabilecek modifikasyonlar elbette cachelenmiş verilerin bayatlamasına sebep olacaktırlar. Dolayısıyla, bu olası duruma istinaden cachede tutulan verilerin belli bir zamandan sonra imha edilmesi ve veritabanından tekrar elde edilmesi gerekmektedir. Aksi taktirde bu durumda uygulama bayat verilerle beslenmeye devam ederek, öngörülemez krizlere sebebiyet verebilir. Bunun için cachede tutulacak veriler için geçerlilik süresi(expiration time) tarafımızca konfigüre edilerek olası handikap kısırlaştırılabilir.
Caching Çeşitleri Nelerdir?
Caching, ‘Local Caching‘ ve ‘Global Caching‘ olmak üzere iki ana başlık altında değerlendirilmektedir.
- Local Caching(In-Memory Caching)
Uygulamanın bulunduğu bilgisayar üzerindeki hafıza alanında faaliyette bulunan caching sitemidir. Bu sistemlere ‘Private Caching‘de denmektedir. - Global Caching(Distributed Caching)
Birden fazla sunucu üzerine dağıtık olarak kurulmuş lakin bir bütün olarak çalışan caching sistemidir. Bu sistemlere ise ‘Public Caching‘ denmektedir.
Sonraki içeriğimizde caching çeşitlerinden In-Memory Caching’in ne olduğuna dair detaylı bir izahatte bulunacağız.
Yorum Yap