SORU
22 Ocak 2011, CUMARTESİ


CouchDB çoğaltma protokol nedir? Git gibi bir şey mi?

Teknik belge iki Koltuk arasında çoğaltma nasıl çalıştığını anlatan var mı?

CouchDB çoğaltma temel bakış nedir? Ne bu konuda bazı dikkat çekici özellikleri?

CEVAP
22 Ocak 2011, CUMARTESİ


Ne yazık ki çoğaltma protokolü açıklayan ayrıntılı belgeler yok. Sadece referans uygulaması CouchDB yerleşik ve Filipe Manana muhtemelen gelecekte yeni implmentation olacak olan aynı şey yeniden oldu.

Ancak, bu genel bir fikir

Önemli noktalar

Eğer Gıt biliyorsanız, o zaman Kanepe çoğaltma işlerin nasıl yürüdüğünü biliyorsun.Çoğaltılıyorçokya da dağıtılmış kaynak yöneticileri ile çekerek benzer Gıt gibi.

CouchDB çoğaltma kendi protokolü yok.Çoğaltıcı sadece bir müşteri olarak iki DBs bağlanır, sonra bir okur ve yazar. İtmeli çoğaltma yerel veri okuma ve uzak DB güncelleme; çekme çoğaltma tam tersi.

  • İlginç gerçek 1: Kopyacı aslında bağımsız Ayrık bir uygulama, kendi sürecinde. Hem kanepe bağlanır, bir kayıt okur ve bunları diğer yazar.
  • Eğlenceli aslında 2: CouchDB vardırbunu bilmenin imkanı yoknormal bir istemci olan bir nokta vardır ki bırakın çoğaltma itme veya çekme olup) kim. Bu istemci bağlantıları gibi görünüyor. Bazıları kayıtlarını okuyun. Bazıları kayıtlarını yazmak.

Her şey veri modeli denir

Yineleme algoritması önemsiz, sıradan. Eğitimli bir maymun tasarım olabilir. Akıllılık bu yararlı özelliklere sahip olan veri modeli, çünkü çok basit:

  1. CouchDB her kaydı diğer tamamen bağımsız. Eğer JOIN yapmak istiyorsan veya bir işlem berbat bir şey, ama eğer bir çoğaltıcı yazmak istiyorsanız harika. Çoğaltmak için nasıl anlamayabirkaydedin ve sonra dabu tekrarlayınher kayıt için.
  2. Gıt gibi, kayıtların bağlantılı bir listesi revizyon geçmişi var. Bir kaydın revizyon KİMLİĞİ kendi veri sağlama. Sonraki Gözden Geçirme: yeni veriler, artı bir önceki sürüm NUMARASI.
  3. Uygulama verileri ({"name": "Jason", "awesome": true}) ek olarak, her kayıt önceki revizyon Kimliği evrimsel zaman çizelgesi kendisi kadar lider saklar.

    • Egzersiz: Sessiz yansıması için bir dakikanızı ayırın. Eğer Bir revizyon KİMLİĞİ B zaman çizelgesi, sonra görünürse, herhangi iki farklı kayıtların Bir düşünün ve kesinlikle A. B Şimdi Git ileri ... ... dikkate evrimleştiği B. birleştirir. Duyuyor musun? O aklını ses üfleniyor.
  4. Git gerçekten doğrusal bir liste değil. Bir veli birden çok çocuk varsa çatal vardır. CouchDB de vardır.

    • Egzersizİki farklı kayıtları karşılaştırmak, A ve B. Bir revizyon KİMLİĞİ B zaman çizelgesinde görünmüyor; ancak, bir revizyon KİMLİĞİ, C,her ikisi deA ve B zaman çizelgesi. Bir A. geliştirmediğini Ancak yerine B. B geliştirmediğini bu nedenle, A ve B de ortak bir atası var Git, bir "çatal" C. CouchDB, "çatışma."

    • Eğer çocuklar kendi zaman çizelgeleri bağımsız olarak geliştirmeye gidersen Git, sorun değil. Çatallar tamamen destekliyoruz.

    • Eğer çocuklar kendi zaman çizelgeleri bağımsız olarak geliştirmek için CouchDB, bu çok havalı. Çatışmalar tamamen destekliyoruz.
    • Eğlenceli gerçek 3:"Çatışmalar", "ihtilaflar." Gıt karşılık CouchDB Kanepede bir çatışma çağrıları "çatal" Git ne farklı bir değişiklik geçmişi. CouchDB topluluğu "" bir sessiz ile . çatışma telaffuz eder bu nedenle ^em>n: "co-fiske."
  5. Git de bir çocuğun birden fazla anne olduğunda birleşir. CouchDBbir bakımabu da vardır.

    • Veri modeli, birleştirme yok.İstemci sadece silinmiş olarak bir zaman çizelgesi işaretleri ve sadece kaybolmamış zaman çizelgesi ile çalışmaya devam ediyor.
    • Uygulamada, bir birleştirme gibi geliyor.Genellikle, istemci birleştirirveriuygulamaya özel bir şekilde her zaman. Yeni yazarverizaman çizelgesi için. Git, bu ve şube B şube A gelen değişiklikleri yapıştırarak, sonra B şube işlemek ve şube A. silinmesi gibiveribirleştirilmiş ama git merge vardı.
    • Bu davranışlar, Git, zaman çizelgesi kendisi önemlidir; ama CouchDB, verileri önemlidir ve zaman çizelgesi arızi-çünkü farklıdır;orada çoğaltma desteklemek için. Bu CouchDB-dahili revisioning bir wiki sayfasını Gözden geçirme gibi verileri saklamak için uygunsuz bir nedeni de budur.

Son notlar

Bu yazı en az bir cümle (muhtemelen bu) tam bir saçmalık.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Ciaran Blumenfeld

    Ciaran Blume

    20 NİSAN 2009
  • Jay Will

    Jay Will

    19 NİSAN 2006
  • MrChiCity3

    MrChiCity3

    14 NİSAN 2008