Klasik Paxos ve Fast Paxos'un doğruluğu kanıtları


13

Leslie Lamport'un "Fast Paxos" gazetesini okuyorum ve hem klasik Paxos'un hem de Fast Paxos'un doğruluğuna dair kanıtlarla takıldım.

Tutarlılık için değer fazı koordinatör tarafından çekilen turda tatmin etmelidirv2ai

CP(v,i): bir tur için , dışında bir değer veya henüz yuvarlak seçilebilir olabilir edilmiştir .j<ivj


Klasik Paxos için , kanıt (Sayfa 8) üç duruma ayrılmıştır: , ve ; burada , bazı alıcının faz mesajı ile koordinatöre rapor ettiği en büyük yuvarlak sayıdır. . Üçüncü dava için argümanı anlayamadım:k<j<ij=kj<kk1b

Durum . Biz yapabilirsiniz indüksiyon yoluyla varsayalım mülkiyet olduğu alıcı zaman düzenlenen için oy yuvarlak içinde . Bu, turunda dışında bir değer seçilmediğini veya henüz seçilemeyeceğini gösterir .j<kCPa0vkvj

Sorum şu:

  1. Neden alıcısı turunda için oy verdiğinde mülk tutulduğunu varsayabiliriz ?CPa0vk

Matematiksel tümevarım kullandığımız anlaşılıyor, bu nedenle temel, tümevarımsal hipotez ve tümevarımsal adımlar nelerdir?


Fast Paxos için aynı argüman (Sayfa 18) devam ediyor. Diyor ki,

Durum . herhangi bir için , turunda dışında bir değer seçilmemiş veya henüz seçilmemiş olabilir .j<kvVvj

Sorum şu:

  1. Bu nasıl elde edilir? Özellikle, neden " herhangi bir için " burada?vV

Kanımca, vakasının doğruluk kanıtı (tekrarlamalı olarak) ve vakalarına dayanmaktadır . j<kk<j<ij=k

Bu nedenle, nasıl dava sonuca varabiliriz ilk ispatı olmadan (bir subcase eksik, yani tamamen birden değerden içerir)?j<kj=kj=kV

Yanıtlar:


10

Kabul eden a0, k0 turunda v. Matematiksel tümevarım kullandığımız anlaşılıyor, bu nedenle temel, tümevarımsal hipotez ve tümevarımsal adımlar nelerdir?

Güçlü bir tümevarım örneğine bakıyorsunuz . Basit indüksiyonda, mülkün ve için olduğunu kanıtlarsınız . Güçlü indüksiyonda mülkün ve için olduğunu kanıtlarsınız .n=mn=m+1n:n<mn=m+1

Temel (inanıyorum): . Yani, sıfır tur (turlar 1'den başladığından beri). Bu önemsiz bir şekilde doğrudur, bu yüzden muhtemelen açıkça belirtilmemiştir.j=0

Endüktif adım : ; kanıtlayın, burada .n,nj:CP(v;n)CP(v;j+1)j<i

İster inanın ister inanmayın, bu sadece bir kanıttır . Gerçek kanıt Yarı Zamanlı Parlamento gazetesinde. (Bazıları kağıdın şifreli olduğunu düşünür, diğerleri mizahi olduğunu düşünür.)


Bu nasıl elde edilir?

Kanımca, vakasının doğruluk kanıtı (tekrarlamalı olarak) ve vakalarına dayanmaktadır .j<kk<j<ij=k

Bu nedenle, nasıl dava sonuca varabiliriz ilk ispatı olmadan (bir subcase eksik, yani tamamen birden değerden içerir)?j<kj=kj=kV

Bu yine güçlü bir indüksiyondur, bu nedenle , ve vakalarına dayanır , ancak indüksiyon hipotezi yoluyla , yani bir önceki Paxos turundan.j<kk<jj=k


Lamport kanıtları için genel ipuçları.

Lamport bir hiyerarşik kanıt tekniği kullanır. Örneğin, 7-8. Sayfalardaki ispatın yapısı şöyle görünür:

  • Diyelim ki ; kanıtlayın, burada . n,nj:CP(v;n)CP(v;j+1)j<i
    1. Gözlem 1
    2. Gözlem 2
    3. Gözlem 3
    4. k=argmax(...)
    5. durum k = 0
    6. durum k> 0
      • vaka k <j
      • durum k = j
      • vaka j <k

Lamport başka bir hiyerarşi türü kullanma eğilimindedir. Daha basit bir algoritmayı kanıtlayacak ve daha karmaşık bir algoritmanın daha basit algoritmaya eşlendiğini (veya "genişlettiğini" ) kanıtlayacaktır . Bu, sayfa 18'de görünmüyor, ancak dikkat edilmesi gereken bir şey. (Sayfa 18'deki kanıt, bir sayfanın uzantısı değil, sayfa 7-8'deki kanıtın bir değişikliği gibi görünmektedir .)

Lamport büyük oranda güçlü indüksiyona dayanır ; aynı zamanda sayılar yerine küme olarak düşünmeye eğilimlidir . Böylece başkalarının sıfır veya boş olduğu boş kümeler alabilirsiniz; veya sendikaların başkalarının ekleyeceği yerlere yerleştirmesi.

Zaman uyumsuz mesaj geçirme sistemlerinin doğruluğunu kanıtlamak, zamana göre sistemde her şeyi bilen bir görüş gerektirir . Örneğin, turundaki eylemleri değerlendirirken, bazı turlarının eylemlerinin geçici olarak gerçekleşmemiş olabileceğini unutmayın! . Ve yine de Lamport, potansiyel olarak gelecekteki bu olayları geçmiş zamanda ifade ediyor.ij<i

Lamports sistemleri ve kanıtları, yalnızca bir yönde gitmesine izin verilen bir değişken veya değişken grubuna sahip olma eğilimindedir; yalnızca sayıları artırır ve yalnızca kümelere ekler. Bu, kanıtlarında yaygın olarak kullanılmaktadır. Örneğin, sayfa 8 Lamport şovlarda o geleceği yeteneğini kısırlaştırılmış nasıl başka veto:a

... o set yana için bir mesaj gönderildiğinde, sonradan herhangi turda oy daha az sayılı döküm olamazdı ....rnd[a]iai

Bu tür sistemleri kanıtlamak kesinlikle bir beyin sedye.

(güncelleme) : Değişmezleri listeleyin; Lamport, geliştirirken birçok değişmez ve kanıtlarını kullanır. Bazen ispatlar boyunca dağılmışlardır; bazen sadece makine tarafından kontrol edilen kanıtta bulunurlar. Her değişmezin nedeni; neden orada Diğer değişmezlerle nasıl etkileşime giriyor? Sistemdeki her adım bu değişmezi nasıl tutar?


Tam açıklama : Bu soruya cevap vermem istenene kadar Fast Paxos'u okumamıştım ; ve sadece belirtilen sayfalara baktı. Ben bir mühendisim, matematikçi değilim; Lamport'un çalışmasıyla yaptığım fırçam tamamen büyük ölçekli dağıtılmış sistemleri doğru bir şekilde icat etme ve sürdürme ihtiyacına dayanıyor.

Cevabım, Lamport'un çalışmasıyla ilgili tecrübelerime dayanıyor. Lamport'un protokollerini ve kanıtlarını okudum; Profesyonel olarak bir paxos tabanlı sistem sürdürüyorum; Yüksek verimli bir konsensüs protokolü yazdım ve kanıtladım ve yine profesyonel olarak buna dayalı bir sistem sağladım (şirketimi bir kağıt yayınlamama izin vermeye çalışıyorum). Ben var onunla üç kez buluştu ettiği Lamport ile önemsiz bir kağıt, üzerinde işbirliği (kağıt hala eş inceleme beklemede.)


Zaman ayırdığınız, cevaplarınız ve Lamport'un kanıtları hakkındaki mükemmel yorumlarınız için teşekkür ederiz! Paxos için: Şimdi, Lamport'un kanıtının temel fikrini yakalayabilirim. Ancak, aklımdaki zaman akışı geri dönüyor : ve . Kanıtlamak için , biz vakalarını incelemek ve ve yinelemeli kanıtlamak . Yani başka bir , ve ve vakalarını içerir . Bu özyineleme değerinde sona ererik=max()CP(v,i)k<j<ij=kCP(v,k)CP(v,k)k=max()k<j<kj=kCP(v,k)kn=0. Bu şekilde, özyineleme s üzerinde olur. Zaman ileriye doğru akarken güçlü bir indüksiyona çevirmekte zorlanıyorum . k
hengxin

1
@hengxin Sistemim / kanıtım hakkında muhakeme yaparken; Bunu ilerleyen zaman olarak düşündüm. Ben ile başlar ve tüm değişmezlerin karşılandığından emin olun; Sonra ile gitmek ve tüm değişmezlerin karşılandığından emin olun; ve bunun gibi. Bu bana biraz daha Lamport işaretçisi eklememi hatırlatıyor. i=0i=1
Michael Deardeuff

Hızlı Paxos ( ) için, endüktif hipotez ' de " " dir ( deki durumuna bakın )? Bununla birlikte, alt , diyor Bir değer bulmalıyız içinde ye uyan . Peki, bu endüktif hipotez çok mu güçlü? P18vV,CP(v,i)j<kP18P17vC P ( v , i )VCP(v,i)
hengxin

Sonunda, değişmezin ne olduğunu ve güçlü indüksiyonun nasıl çalıştığını anlamaya başladım. Tekrar teşekkürler. BTW, Lamport tends to use another type of hierarchy. He'll prove a simpler algorithm, and then prove that a more complex algorithm maps onto (or "extends") the simpler algorithmbu nedenle, lütfen bir örnek gösterebilir veya ilgili bir makaleyi gösterebilir misiniz? Ayrıca, makalelerinizin önceden basılmış (ticari olarak) sınıflandırılmamış baskıları var mı?
hengxin

1
Lamport makalesinde ilk tür hiyerarşiyi açıklıyor Nasıl kanıt yazılır ve ikinci aşamaya Paxos'u Arıtma yoluyla örneklendirir . İkinci tür hiyerarşiye tipik olarak iyileştirme veya eşleme adı verilir .
Michael Deardeuff
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.