Tom'un cevap yakalamak sen, sadece iki sunucu yazıyoruz kümenin her türlü çalıştıran olmamasıdır. Aralarındaki tutarlılığı sağlamak istiyorsanız bu bir sorundur. İstemciniz uzak sunucuya yazma işlemi başarısız olduğunda ne olacağını düşünün. Yazmayı yerel olarak geri alıyor musunuz? Uzak sunucuya yazamadığınız zaman uygulamaya ne olur? Yerelden okuyamadığınızda ne olur?
İkinci yakalama, Joshua'nın geliştirdiği temel fizik sorunudur. Bir gidiş-dönüş için, teorik olarak en az 38ms teorik bir maksimum işlem süresi bırakarak 12ms'lik iki ucunda (üç sistemden) bahsediyorsunuz. Beklentinin biraz fazla olduğunu ve bant genişliğinin bu durumda gecikme ile hiçbir ilgisi olmadığını söyleyebilirim. 10GB'lık bir borcun olabilir ve bu zamanlamalar hala var. Bununla birlikte, 12 ms'de kıtada 5k aktarılması da çok şey soruyor. 12 saatte 5 ms'lik veri aktarımı için bağlantı kapasitesine sahip olduğunuza emin misiniz? Kıtada özel kullanımsız devreler üzerinde çalıştım ve 50 ms'den fazla ping süreleri gördüm - ve ping 5k veri aktarmıyor.
İlişkilendirilmeyen iki sunucuyu eşitlemede nasıl saklarsınız? Kıtadaki 50 ms'lik gecikme süresine gerçekten ihtiyacınız varsa, yukarıdaki teorik en iyi durum, senkronizasyon algoritmalarını çalıştırmak için 12ms'in olduğu anlamına gelir. Diğer sunucudaki verileri kontrol etmek için bir sorgu bile, 50 ms pencerenin dışında olduğunuz anlamına gelir. Veriler senkronize değilse, bunu nasıl düzeltebilirsiniz? Yukarıdaki zamanlamalar göz önüne alındığında, 50 ms'nin altında senkronizasyonun nasıl mümkün olduğunu göremiyorum.
Temel tasarım gereksinimlerini yeniden gözden geçirmenizi öneririz. Spesifik olarak, neden bu gereksinimi? Kıtada 50 ms'lik gidiş gelişin gecikme gereksinimleri genellikle pazarlamanın ya da detaylara dikkat edilmemesinin işareti. Gereksiniminizi analiz ederseniz, bu 50 ms'lik pencerenin aşırı ve gereksiz olduğunu söylerim. Değilse ve veri senkronizasyonu aslında önemli (muhtemelen), birisi senkronizasyon kodunu yazmak için önemli bir çabanın değere veya 50 ms'lik pencerede kalmasına bile olanaklı olup olmadığını belirlemeye ihtiyaç duyacaktır. Kıtalar arası alt 50ms gecikme veri senkronizasyonu basit bir sorun değildir.
Senkronizasyona gerek yok, neden sadece bir sunucu çalıştırmıyorsunuz?Kıtanın diğer tarafındaki bir köleyi sadece iyileşme amacıyla kullanabilirsiniz. Tabii ki, bu hala en iyi durumda oradaki verileri geri almak için 12ms'iniz var demektir. Ben kıtada + gecikme + 5k/10k veri aktarım 50ms gidiş-dönüş operasyonları saymak olmaz. Söylemek istediğim
bütün bunlar yazmak için zaman ayırdığınız için teşekkür ederiz. Ben büyüdü soru belki yeni bir şey kullanma fikri uzak alabilmek için imkansız bir şey (emin değilim) sorulacak o sadece yapıldığını düşünüyorum. Sorun şu ki, birden fazla lokasyonumuz var ve kullanıcıların kendilerine en yakın bir master'a yazmasını istiyoruz, ardından iki site arasında gerçek zamanlı (mümkün olan en kısa sürede) tutarlılık olmasını sağlamak için bir süreç var. Bu senaryoya uyabilecek bir öneriniz var mı? Daha önemli bir yönü olan isteyeceğini – DvideBy0
, yakın tarafı yazar veya yakın tarafı okur. Mümkün olan en hızlı tek-ana ve yerel okuma köleleri olacaktır. Okuma-yoğun veya yoğun yazma mu, yoksa yaklaşık 50-50 mi? Veri merkezi sitelerine zaten sahipseniz, tek bir master kurar ve testleri çalıştırırdım. Çok usta, özellikle çapraz kıta çok basittir. Neyse ki, çoğu durumda, aslında gerekli değildir. Bir test seti kurar ve araştırmayı inceler. Daha basit bir yol varsa, multimaster'a odaklanmayın. 1Master'dan şüpheleniyorum ve dağıtılan köleler senin için çalışacak. –