2016-04-13 19 views
0

Dağıtılmış bir veri şebekesi için gereksinimlerimize uyup uymayacağını görmek için Hazelcast ile basit bir kıyaslama yapıyorum. Buradaki fikir, '> n/2' çoğaltmasıyla (örneğin 3) tek sayıda sunucuya (örneğin 5) sahip olmaktır. tüm sunucular ve benim yerel makine (hiçbir ağ gecikmesi) aşağıdaki sonuçlar elde üzerinde çalışan istemci ileHazelcast async write geçişli mi?

: Beklendiği gibi

5 x H/C server (sync backup = 2, async backup = 0); 100 Client Threads : 35,196 puts/second 

5 x H/C server (sync backup = 1, async backup = 1); 100 Client Threads : 41,918 puts/second 

5 x H/C server (sync backup = 0, async backup = 2); 100 Client Threads : 52,007 puts/second 

, zaman uyumsuz yedeklemeler senkron yedeklemeler daha yüksek verim sağlamaktadır. Kullanım durumumuz için, direnç ve performans arasında bize kabul edilebilir bir denge sağladığından, orta seçenek (1x senkronizasyon ve 1x eşzamansız) seçeneğini tercih edeceğiz.

Soruma şudur: Hazelcast 1x eşitleme ve 1x zaman uyumsuz olarak yapılandırılmışsa ve eşitleme yedeklemesi gerçekleştirildikten sonra düğüm çöküyorsa (sunucu, istemci ve istemci iş parçacığı için 'Tamam' değerini döndürür) ancak zaman uyumsuzluğu gerçekleştirilmeden önce (böylece veriler sadece bir çoğaltma yapılır ve ikincisi değil), senkronizasyon yedeklemesini alan düğüm async yedekleme görevini alır veya tüm kümenin yeniden dengelenmesini ve 'kayıp' verileri beklemesini bekler mi? Çöken düğümden kopyalardan yeniden dağıtılıyor? Ve eğer ikincisiyse, kümenin yeniden dengelenmesi durumunda, düğümün çökmemesi durumunda olabileceği gibi, verilerin toplam 3 kopyası olacak veya senkronize edilmiş düğüm varsayıldığı için yalnızca 2 kopya olacak mı? başka bir düğüm zaten onun kopyasını aldı?

cevap

1

Tüm yedeklemeleri oluşturmak için bölüm sahibi sorumludur. Başka bir deyişle: 1. yedekleme, 2. yedekleme için yeni bir yedekleme isteği OLMAMAKTIR. Bu, sahibinin tüm sorumluluğu altındadır.

Yedekleme yinelemesine sahip bir üye eskiyse, anti-entropi mekanizması devreye girer ve yedek bölüm, sahip ile eşleşecek şekilde güncelleştirilir.

Bir üye aşağı indiğinde, 1. (= sync) yedeklemesi sonunda yeni bir bölüm sahibi olacak şekilde yükseltilir. Yapılandırılmış bir artıklığın onurlandırıldığından emin olmak için yeni sahibin bir sorumluluğu var - yapılandırılmış haliyle 2 yedeklemenin var olduğundan emin olmak için yeni bir yedek oluşturulacak.