Bellek içi veritabanı, veri depolama için öncelikle dahili belleğe bağlı olan, amaca yönelik veritabanıdır. Standart disk sürücülerine (SSD'ler) erişme ihtiyacını ortadan kaldırarak minimum yanıt süreleri sağlar. Bellek içi veritabanları; oyun skor tabloları, oturum depoları ve gerçek zamanlı veri analizi gibi mikrosaniyelik yanıt süreleri gerektiren veya trafikte büyük artışlara sahip uygulamalar için idealdir. Ana bellek veritabanı (MMDB), bellek içi veritabanı sistemi (IMDS) ve gerçek zamanlı veritabanı sistemi (RTDB) terimleri de bellek içi veritabanlarıyla ilgilidir.

Bellek içi veritabanlarının avantajları nelerdir?

Bir bellek içi veritabanı, aşağıda ayrıntılı olarak incelediğimiz çeşitli avantajlar sağlar.

Düşük gecikme süresi, gerçek zamanlı yanıtlar sağlar

Gecikme, verilere erişim isteği ile uygulamanın yanıtı arasındaki gecikmedir. Bellek içi veritabanları, ölçekten bağımsız olarak öngörülebilir düşük gecikmeler sunar. Mikrosaniyelik okuma gecikmesi, tek basamaklı milisaniye yazma gecikmesi ve yüksek aktarım hızı sağlarlar.

Sonuç olarak bellek içi depolama, kurumların gerçek zamanlı olarak verilere dayalı kararlar almasına olanak tanır. Verileri işleyen ve değişikliklere çok geç olmadan yanıt veren uygulamalar tasarlayabilirsiniz. Örneğin, sürücüsüz araçlardan gelen sensör verilerinin bellek içi bilgi işlemi, acil durum frenlemesi için istenen saniyelik tepki süresini verebilir.

Yüksek aktarım hızı

Bellek içi veritabanları, yüksek aktarım hızlarıyla bilinir. Aktarım hızı, belirli bir süre boyunca okuma (okuma aktarım hızı) veya yazma (yazma aktarım hızı) işlemlerinin sayısını ifade eder. Örnekler, bayt/dakika veya saniye başına işlemleri içerir.

Yüksek ölçeklenebilirlik

Değişen uygulama taleplerini karşılamak için bellek içi veritabanınızı ölçeklendirebilirsiniz. Performansı olumsuz yönde etkilemeden hem yazma hem de okuma ölçeklendirme mümkündür. Veritabanı çevrimiçi kalır ve yeniden boyutlandırma sırasında okuma ve yazma işlemlerini destekler.

Bellek içi veritabanlarının kullanım durumları nelerdir?

Bellek içi veritabanları bankacılık, telekomünikasyon, oyun ve mobil reklamcılık endüstrileri için iyi bir seçimdir. Aşağıda bazı bellek içi veritabanı kullanım örnekleri yer almaktadır.

Önbelleğe Alma

Önbellek, genellikle geçici verilerin bir alt kümesini depolayan yüksek hızlı bir veri depolama katmanıdır. Önbelleğin birincil amacı, altındaki daha yavaş depolama katmanına erişme ihtiyacını azaltarak veri alma performansını artırmaktır. Bu, ilgili verilere yönelik gelecekteki taleplerin, verilerin birincil depolama konumuna erişilerek mümkün olandan daha hızlı sunulacağı anlamına gelir.

Önbelleğe alma işlemi, önceden alınmış veya işlenmiş verileri yeniden etkili bir şekilde kullanmanızı sağlar. Bellek içi veri depolama alanı, önbelleğe alınan verilere daha hızlı erişim için kullanılabilir. Önbelleğe alma, yanıt süresi için dayanıklılıktan ödün verir. Veriler bellekten alındığı için yanıt süresi daha hızlıdır ancak önbelleğe alma bellekteki veri kaybına karşı koruma sağlamaz. Bu nedenle önbelleğe alma genellikle disk tabanlı dayanıklı bir veritabanıyla birlikte kullanılır.

Gerçek zamanlı teklif verme

Gerçek zamanlı teklif verme, çevrimiçi reklam gösterimlerinin alım satımını ifade eder. Genellikle, kullanıcı bir web sayfasını 100-120 milisaniyede ve bazen 50 milisaniye kadar kısa bir sürede yüklerken teklif yapılmalıdır. Bu süre zarfında, gerçek zamanlı teklif verme uygulamaları, reklam noktası için tüm alıcılardan teklif ister, birden çok kritere göre kazanan bir teklif seçer, teklifi görüntüler ve reklam görüntüleme sonrası bilgileri toplar. Bellek içi veritabanları, milisaniyenin altındaki gecikmeyle gerçek zamanlı verileri almak, işlemek ve analiz etmek için idealdir.

Oyun puan tabloları

İlgili bir oyun liderlik tablosu, bir oyuncunun benzer sıralamadaki diğer oyunculara göre konumunu gösterir. Bu puan tabloları, oyuncular arasında etkileşim kurmaya yardımcı olabilir ve oyuncuların en iyi oyunculara kıyasla motivasyonlarını düşürmelerini önleyebilir. Bellek içi veritabanları, milyonlarca oyuncuya sahip bir oyun için sıralama sonuçlarını hızlı bir şekilde sunabilir ve liderlik tablosunu gerçek zamanlı olarak güncelleyebilir.

Bellek içi önbellek nasıl çalışır?

Bellek içi önbellek, verileri depolamak için rastgele erişim belleği (RAM) kullanır. Teknoloji, veri tablolarını harici sürücüler yerine doğrudan RAM'de depolar. Özel veri yapıları, veri kayıtlarınızın dizine eklenmesine izin verir. Dizinler, belirli satırlara ve sütunlara doğrudan işaretçiler görevi görür. Bununla birlikte, gerçek fiziksel veriler sıkıştırılmıştır ve ilişkisel olmayan bir biçimdedir. Bir erişim isteğinde bulunduğunuzda, veritabanı dizini kullanarak tam veri değerine gider. Depolanan veriler her zaman doğrudan kullanılabilir bir biçimde tutulur.

64 bit bilgi işlem, daha düşük RAM fiyatları ve çok çekirdekli sunucular gibi gelişmeler, bellek içi depolamayı daha yaygın hale getirdi. Ayrıca bulut tabanlı veri depoları, RAM kaynaklarınızın ölçeğini gerektiği gibi artırmanıza veya azaltmanıza olanak tanıyarak bellek içi teknolojiyi daha esnek ve erişilebilir hale getirdi.

Bellek içi önbellek ve geleneksel disk tabanlı veritabanları arasındaki fark

Geleneksel bir veritabanı, tüm verileri harici disk sürücülerinde veya katı hal sürücülerinde tutar. Her bir okuma ve yazma işlemi disk erişimi gerektirir. Bunun aksine, bellek içi önbellek veri kalıcılığına öncelik vermez. Örneğin, önbellekler verileri yalnızca harici depolama ortamına düzenli olarak kaydedebilir. Bellek içi önbellekler ve geleneksel veritabanları arasındaki farkları aşağıda özetledik.

Bellek içi önbellek ile bellek içi veritabanı arasındaki fark nedir?

Yazma işlemleri kalıcı olmadığından verileri kalıcı hale getirmek için gereken ekstra zaman ortadan kalkar ve böylece bellek içi önbellekler daha iyi performans sağlar. Bellek içi veritabanı yazma işlemlerini kalıcı hale getirdiğinden veri değişiklikleri dayanıklı hale gelir. Bu dayanıklılık adına, yazma işlemleri için performanstan ödün verilir. Bununla birlikte, bellek içi veritabanları hâlâ disk tabanlı bir veritabanından daha iyi performans sağlar. Performans açısından bakıldığında, bellek içi önbellek ile disk tabanlı bir veritabanı arasında yer alırlar.

Bellek içi önbelleklerin sınırlamaları nelerdir?

Tüm veriler yalnızca bellekte depolandığından ve yönetildiğinden, bellek içi önbellekler bir işlem veya sunucu arızası durumunda veri kaybetme riski taşır. Dayanıklılığı artırmak için bellek içi önbellek, disk veritabanlarında düzenli olarak verileri kalıcı hale getirebilir. Aşağıda dayanıklılığı artıracak bazı mekanizmaları açıkladık.

Anlık görüntü dosyaları

Anlık görüntü dosyaları, belirli bir andaki veritabanı durumunu kaydeder. Bellek içi önbellek, düzenli olarak veya kontrollü bir kapatma sırasında anlık görüntüler oluşturur. Anlık görüntü alma işi dayanıklılığı bir dereceye kadar artırsa da anlık görüntüler arasında veri kaybı meydana gelebilir.

İşlem günlük kaydı

İşlem günlük kaydı, veritabanındaki değişiklikleri harici bir günlük dosyasına kaydeder. Günlük kaydı, veri okuma/yazma işleminden bağımsızdır ve performansı etkilemez. Günlük dosyası, bellek içi önbelleğin otomatik olarak kurtarılmasını kolaylaştırır.

Çoğaltma

Bazı bellek içi önbellekler, yüksek kullanılabilirlik sağlamak için yedeklilikten yararlanır. Aynı verilerin birden fazla kopyasını farklı bellek modüllerinde tutarlar. Modül hatası, yinelenen yedek kopyaya otomatik yük devretme ile sonuçlanır. Bu, bir önbellekle veri kaybı riskini azaltır.

AWS, bellek içi önbellek ve veritabanı gereksinimlerinizi nasıl destekleyebilir?

AWS, özel ihtiyaçlarınız için tam olarak yönetilen birkaç farklı bellek içi önbellek ve veritabanı hizmeti sunar.

Bellek içi veritabanı

Redis İçin Amazon MemoryDB

Redis İçin Amazon MemoryDB, ultra hızlı performans sunan, dayanıklı bir bellek içi veritabanı hizmetidir. Popüler bir açık kaynak veri deposu olan Redis ile uyumludur. Bu, müşterilerin bugün kullandıkları aynı esnek ve kullanıcı dostu Redis veri yapılarını, API'lerini ve komutlarını kullanarak hızlı bir şekilde uygulamalar oluşturmalarını sağlar. MemoryDB ayrıca hızlı yük devretme, veritabanı kurtarma ve düğüm yeniden başlatma işlemleri için bir Multi-AZ işlem günlüğü kullanarak verilerinizi birden fazla Erişilebilirlik Alanında (AZ) dayanıklı olacak şekilde depolar.

Bellek içi önbellekler

Redis İçin Amazon ElastiCache

Redis İçin Amazon ElastiCache, gerçek zamanlı internet ölçekli uygulamaları desteklemek için mikrosaniyelik gecikme süresi sağlayan son derece hızlı, bellek içi önbelleğe alma hizmetidir. Geliştiriciler, Redis İçin ElastiCache'i bellek içi önbellek olarak veya yüksek veri dayanıklılığı gerektirmeyen durumlarda kullanabilir. Redis İçin ElastiCache küme yapılandırması, müşterilerin tek bir kümede 6,1 TB'a kadar bellek içi kapasiteye sahip Redis iş yükleri çalıştırmasını destekler. Redis İçin ElastiCache ayrıca çalışan bir kümeden parça ekleme ve kaldırma özelliği sağlar. Talepteki değişikliklere uyum sağlamak için Redis kümesi iş yüklerinizin ölçeğini dinamik olarak daraltabilir veya genişletebilirsiniz.

Memcached İçin Amazon ElastiCache

Memcached İçin Amazon ElastiCache; Memcached ile uyumlu, bellek içi, anahtar-değer önbelleğe alma hizmetidir. Memcached ile aynı yüksek performansı, kullanım kolaylığını ve sadeliği sunar. Memcached İçin ElastiCache hızlı, tam olarak yönetilen, ölçeklenebilir ve güvenli bir hizmettir. Bu sayede sık erişilen verilerin bellek içinde tutulmasını gerektiren durumlar için idealdir.

Hemen ücretsiz bir hesap oluşturarak AWS'de bellek içi önbellekleri veya veritabanlarını kullanmaya başlayın.

Redis İçin Amazon MemoryDB'ye Giriş
Redis İçin Amazon ElastiCache'e Giriş