İçindekiler:
Video: Web Chefs - Ders 1 - Web'e Giriş (Alihan KOÇ) 2024
İlişkisel bir veritabanında tutulan verilere anahtar-değer stili yüksek hızda erişim sağlamak istediğiniz zamanlar vardır. Bu veritabanı, örneğin Berkeley DB (Java Sürümü Voldemort) veya MySQL olabilir.
Verilere erişim gibi anahtar / değer çifti sağlamanın bir anahtar / değer mağazasının bu diğer veritabanlarının birinin üzerine doğrudan katmanlanması gerekir. Temel olarak, depolama için bir dosya sistemi ve ilişkisel bir veritabanından veri kopyalamak için bir içe aktarma boru hattı kombinasyonu yerine depolama katmanı olarak başka bir veritabanı kullanırsınız.
Bu süreç, depolama için geleneksel bir ilişkisel veritabanı kullanırken, yüksek hız anahtar / değerli bir mağazanın sağlanmasını basitleştirir.
Değişen depolama motorları
Farklı iş yükleri, farklı depolama motorları ve performans özellikleri gerektirir. Aerospike yüksek emilim için mükemmeldir; Redis, yüksek sayıda okuma yapmak için mükemmeldir. Her biri belirli bir kullanım durumu etrafında inşa edilmiştir.
Voldemort farklı bir yaklaşım benimsiyor. Voldemort, anahtar-değer deposunu ayrı bir veri yönetimi katmanı olarak ele almak yerine anahtar-değer deposunu bir API olarak değerlendirir ve bir bellek içi önbelleğe alma katmanı ekler; bu da, en mantıklı arka uça takabileceğiniz anlamına gelir özel ihtiyaçlarınız için.
Basit bir disk depolama katmanı istiyorsanız, Berkeley DB Java Sürümü depolama altyapısını kullanabilirsiniz. Bunun yerine ilişkisel verileri depolamak istiyorsanız, MySQL'i Voldemort için bir arka uç olarak kullanabilirsiniz.
Bu özellik, özel veri türleri ile birleştirildiğinde, farklı bir arka uç deposundaki bilgileri etkili bir şekilde geri çekme ve doğrudan önbellekleme için bir anahtar / değer depolarının basit depolama / alma API'sını kullanmanıza olanak tanır.
Bu yaklaşım, örneğin işlem verisi için Oracle, diğeri de anahtar-değer deponuzdaki (Riak) bir tane olmak üzere, ayrı veritabanlarına sahip olmak gibi olağan yaklaşımı ile zıtlık içindedir. Bu iki katmanlı yaklaşımla, önbelleğe alma işlemi için bir katmandan diğerine geçmek için kod geliştirmelisiniz. Voldemort ile, veri katmanınızdan oluşan bir katman var - bu yüzden fazladan kod gereksiz.
Verileri bellekte önbellekleme
Voldemort, bellek motoru üzerindeki yükü azaltan ve sorgu performansını artıran dahili bir bellek içi önbellek içerir. Redis veya Oracle'ın Coherence Java uygulaması veri önbellekleme ürünü gibi ayrı bir önbellek katmanı kullanmaya gerek yoktur.
Önbellekleme ile yüksek hızlı depolama katmanı sağlama özelliği LinkedIn'ın bazı yüksek performanslı kullanım durumlarında Voldemort'u kullanmasının nedenidir.
Voldemort ile, tam veri gereksinimleriniz için bir depolama motoru ve o motor üzerindeki yükü azaltmak için yüksek hızlı bellek içi önbellek olmak üzere iki dünyanın en iyisini elde edersiniz.Depolama altyapınızın üzerine basit anahtar / değerli mağaza mağazası / semantiği almak da elde edersiniz.
Voldemort'u Değerlendirmek
Harry Potter kitaplarında, Lord Voldemort, haydutları terörize etmek için kullanmasına rağmen onu hem iyi hem de kötülük yaptı. Voldemort veritabanı, çıktığında olduğu gibi çok miktarda veriyi de depolayabilir, ancak her yerde veri sihirbazları tarafından iyi kullanılabilir!
Voldemort halen gelişmekte olan bir üründür. Birçok parça hala eksik olduğundan, beklediğiniz çeşitli depolama motorlarını desteklemez. Voldemort'un geliştirme topluluğu için bu odağı muhtemelen Voldemort, çoğu C veya C ++ tabanlı veritabanına entegrasyon için oluşturulacak bir Java Anadil Arabirimi (JNI) konektörü gerektiren Java programlama dilinde oluşturulmuştur.
Voldemort seri hale getirme çerçeveleri ile iyi entegrasyona sahiptir. Desteklenen çerçeveler, Java seri hale getirme, Avro, Tasarruf ve Protokol Arabellekleri içerir. Bu, sağlanan API sarmalayıcıların, her bir programlama dilinin tanıdık seri hale getirme yöntemiyle eşleştiği ve uygulamaların geliştirilmesini sezgisel hale getirdiği anlamına gelir.
Voldemort, diğer sistemlerin yanı sıra tutarlılığı da ele almaz. Voldemort, aynı kayıt için tutarsız sürüm numaraları, yazma zamanında tutarlı tutulmak yerine, okuma zamanında sabitlendiği okuma onarım yaklaşımını kullanır.
Ayrıca ikincil dizin oluşturma veya sorgu desteği yoktur; Voldemort, bu kullanım durumuyla baş edebilmek için altta yatan depolama motorunun olanaklarını kullanmanızı bekliyor. Ayrıca, Voldemort'un yerel veritabanı tetikleyicileri ya da bir uyarı ya da olay işleme çerçevesi yoktu.
Son derece erişilebilir, bölümlere toleranslı, Java'da çalışan ve farklı saklama arka uçları kullanan bir anahtar / değerli mağazaya ihtiyacınız varsa Voldemort sizin için olabilir.