İçindekiler:
Video: Age of Civilizations 2 - Başlangıç Rehberi - 1 2024
Anahtar / değer depolarının hızlı okuma özellikleri, iyi tanımlanmış anahtarların kullanımından kaynaklanmaktadır. Bu anahtarlar genellikle hashed edilir; bu, hangi bölümün (ve dolayısıyla sunucunun) verilerin bulunduğu konusunda çok öngörülebilir bir şekilde bir anahtar / değer depolaması sağlar. Belirli bir sunucu, bir veya daha fazla bölümü yönetir.
İyi bir anahtar, bir sorguyu yanıtlayan tek bir kaydı, o kayıttaki herhangi bir değere bakmaksızın benzersiz bir şekilde tanımlamanıza olanak tanır. Kötü bir anahtar, uygulama kodunuzun kayıtlarınızı, aslında sorguyla eşleşip uyuşmadığını belirlemek için yorumlamasını gerektirir.
Anahtarınızı dizayn etmiyorsanız, diğer sunuculardan daha ağır olan bir sunucuyla sonuçlanarak performansı düşürebilirsiniz. Örneğin, geçerli sistem zamanını bir anahtar olarak kullanmak, tüm yeni verileri kümedeki son düğüme iter ve bu da yeniden dengeleme kabusuna dönüşür. Böyle Oracle NoSQL gibi bazı anahtar-değer depolar, bir küme oluşturulduktan sonra bölümlerin sayısı değiştirilmesine izin yok çünkü
Bölümleme
Bölme tasarımı önemlidir. Ancak sunuculardaki dağılımları değiştirilebilir. Gelecekte yayabileceğiniz çok sayıda bölümle başlayın.
Bölünme örneklerinden biri de Voldemort'un tutarlı karma yaklaşımıdır. Burada, başlangıçta üç sunucuda ve daha sonra dört sunucu arasında yayılan aynı bölümleri görüyorsunuz. Bölümlerin sayısı aynı kalır, ancak sunuculardaki ayırımı farklıdır. Aynı kopyaları için de geçerlidir.
Bölümlere ait verilere erişme
Anahtar / değer depolarının dağılımı, tek bir hata noktası olmaksızın dağılmıştır. Bu, ana koordinasyon düğümünün kümedeki sunucuları takip etmesine gerek olmadığı anlamına gelir. Küme yönetimi, sunucudaki düğümler arasındaki bir sohbet protokolüyle otomatik olarak yapılır.
Sen anahtarları ve değerleri almak ve saklamak dışarı maksimum performans sıkmak istemci sürücüsü bir hile kullanabilirsiniz - istemci sürücü sunucuları tuşların hangi dizi tutun hangi izler. Böylece, istemci sürücüsü hangi sunucunun konuşacağını hep biliyor.
NoSQL'in çoğu veritabanı, bir kümenin tüm üyelerine bir istek gönderir. Bu küme ya dahili olarak yazmayı kabul eder veya kaputun altındaki düğmeyi doğru düğüme gönderir. Bu kurulum, düğümler arasında fazladan bir şebeke arızasının mümkün olduğunu ve gecikmeye neden olabileceği anlamına gelir.
Keşif gecikmesinden kaçınmak için çoğu anahtar değerli mağazanın istemci sürücüleri, bir kümedeki mevcut düğümlerin bir meta veri listesini ve her bir başını saklamanın hangi bölüm anahtar aralıklarını yönettiğini tutar.Bu şekilde, istemci sürücüsü işlemleri doğru yapan sunucuya başvurabilir.
Yeni bir düğüm bir kümeye eklenir ve meta veriler güncelse, küme istemci sürücüsünü bilgilendirir ve bu daha sonra istemi doğru düğüme göndermeden önce en son küme meta verilerini indirir. Bu şekilde, azami verim, geliştirme aşamasında asgari maliyetle korunur. Başka bir avantaj da, bir yük dengeleyicisinin bir sonraki kullanılabilir veya en az meşgul, sunucuya yalnızca bir sunucuya (veya okunan yineleme sunucusuna) sorguları geçmesine hiç gerek yoktur, bu nedenle yük dengeleme ihtiyacı yoktur..