พิสูจน์ความถูกต้องของ Paxos คลาสสิคและ Fast Paxos


13

ฉันกำลังอ่านกระดาษ "Fast Paxos"โดย Leslie Lamport และติดอยู่กับบทพิสูจน์ความถูกต้องของทั้ง Paxos คลาสสิคและ Fast Paxos

สำหรับความสอดคล้องค่าเลือกโดยผู้ประสานงานในขั้นตอนที่ 2ในรอบฉันควรตอบสนองความv2ai

สำหรับรอบใด ๆ J < ฉันไม่มีค่าอื่นที่ไม่ใช่วีได้รับหรืออาจจะยังไม่ได้รับการคัดเลือกในรอบที่ jCP(v,i):j<ivj


สำหรับ Paxos แบบคลาสสิกการพิสูจน์ (หน้า 8) จะแบ่งออกเป็นสามกรณี: , j = k , และj < kโดยที่kเป็นจำนวนรอบที่ใหญ่ที่สุดซึ่งผู้ตอบรับบางคนรายงานผู้ประสานงานโดยเฟส1 bข่าวสาร ฉันไม่เข้าใจอาร์กิวเมนต์สำหรับกรณีที่สาม:k<j<ij=kj<kk1b

กรณี k เราสามารถสมมติโดยอุปนัยว่าทรัพย์สินC Pจัดขึ้นเมื่อใบเสร็จ0โหวตให้โวลต์ในรอบk นี่ก็หมายความว่าไม่มีค่าอื่น ๆ กว่าโวลต์ได้รับหรืออาจจะยังไม่ได้รับการคัดเลือกในรอบที่ jj<kCPa0vkvj

คำถามของฉันคือ:

  1. ทำไมเราสามารถสันนิษฐานได้ว่าทรัพย์สินที่จัดขึ้นเมื่อใบเสร็จ0โหวตให้โวลต์ในรอบk ?CPa0vk

ดูเหมือนว่าเรากำลังใช้การเหนี่ยวนำทางคณิตศาสตร์ดังนั้นพื้นฐานของสมมติฐานอุปนัยและขั้นตอนอุปนัยคืออะไร


สำหรับ Fast Paxosอาร์กิวเมนต์เดียวกัน (หน้า 18) จะดำเนินต่อไป มันบอกว่า,

กรณี k สำหรับการใด ๆโวลต์ในVไม่มีค่าอื่นที่ไม่ใช่วีได้รับหรืออาจจะยังไม่ได้รับการคัดเลือกในรอบที่ jj<kvVvj

คำถามของฉันคือ:

  1. สิ่งนี้ได้รับอย่างไร โดยเฉพาะทำไม "สำหรับใด ๆในV " ที่นี่vV

ในความคิดของหลักฐานที่ถูกต้องของกรณีที่อาศัย (ซ้ำ) ในบรรดาของกรณีของk < J < ฉันและJ = k j<kk<j<ij=k

ดังนั้นเราจะสรุปได้อย่างไรว่ากรณีโดยไม่ต้องพิสูจน์j = kเป็นครั้งแรกโดยสมบูรณ์ (กล่าวคือไม่มีส่วนย่อยของj = kโดยที่Vมีค่ามากกว่าหนึ่งค่า)j<kj=kj=kV

คำตอบ:


10

เหตุใดเราจึงสามารถสันนิษฐานได้ว่า CP อสังหาริมทรัพย์นั้นมีไว้เมื่อตัวรับ a0 โหวตสำหรับ v ในรอบ k ดูเหมือนว่าเรากำลังใช้การเหนี่ยวนำทางคณิตศาสตร์ดังนั้นพื้นฐานของสมมติฐานอุปนัยและขั้นตอนอุปนัยคืออะไร

คุณกำลังมองหาที่ตัวอย่างของการเหนี่ยวนำที่แข็งแกร่ง ในการเหนี่ยวนำง่ายๆที่คุณถือว่าคุณสมบัติถือสำหรับและพิสูจน์มันถือสำหรับn = M + 1 ในการเหนี่ยวนำที่แข็งแกร่งคุณถือว่าคุณสมบัติถือสำหรับn : n < เมตรและพิสูจน์มันถือสำหรับn = M + 1n=mn=m+1n:n<mn=m+1

พื้นฐาน (ผมเชื่อว่า): 0 นั่นคือรอบว่าง (ตั้งแต่รอบเริ่มต้นที่ 1) นี่เป็นเรื่องจริงเล็กน้อยซึ่งอาจเป็นเหตุผลว่าทำไมมันไม่ได้ระบุไว้อย่างชัดเจนj=0

ขั้นตอนอุปนัย : สมมติ ; พิสูจน์C P ( วี; J + 1 )ที่เจ<ฉันn,nj:CP(v;n)CP(v;j+1)j<i

เชื่อหรือไม่ว่านี่เป็นเพียงภาพร่างที่พิสูจน์ได้ หลักฐานที่แท้จริงอยู่ในPart Time รัฐสภากระดาษ (บางคนคิดว่าเป็นความลับกระดาษบางคนคิดว่ามันตลก)


สิ่งนี้ได้รับอย่างไร

ในความคิดของหลักฐานที่ถูกต้องของกรณีที่อาศัย (ซ้ำ) ในบรรดาของกรณีของk < J < ฉันและJ = kj<kk<j<ij=k

ดังนั้นเราจะสรุปได้อย่างไรว่ากรณีโดยไม่ต้องพิสูจน์j = kเป็นครั้งแรกโดยสมบูรณ์ (กล่าวคือไม่มีส่วนย่อยของj = kโดยที่Vมีค่ามากกว่าหนึ่งค่า)j<kj=kj=kV

j<kk<jj=k


คำแนะนำทั่วไปสำหรับบทพิสูจน์ของ Lamport

Lamport ใช้เทคนิคการพิสูจน์แบบลำดับชั้น ตัวอย่างเช่นโครงสร้างของการพิสูจน์ในหน้า 7-8 มีลักษณะดังนี้:

  • n,nj:CP(v;n)CP(v;j+1)j<i
    1. การสังเกต 1
    2. การสังเกต 2
    3. การสังเกต 3
    4. k=argmax(...)
    5. กรณี k = 0
    6. เคส k> 0
      • กรณี k <j
      • กรณี k = j
      • กรณี j <k

Lamport มีแนวโน้มที่จะใช้ลำดับชั้นชนิดอื่น เขาจะพิสูจน์อัลกอริธึมที่ง่ายกว่าและจากนั้นพิสูจน์ว่าอัลกอริทึมที่ซับซ้อนยิ่งกว่านั้นแมปลงบน (หรือ"ขยาย" ) อัลกอริทึมที่ง่ายกว่า สิ่งนี้ดูเหมือนจะไม่เกิดขึ้นในหน้า 18 แต่มันเป็นสิ่งที่ควรระวัง (การพิสูจน์ในหน้า 18 ดูเหมือนจะเป็นการดัดแปลงการพิสูจน์หน้า 7-8 ไม่ใช่ส่วนขยาย )

Lamport อาศัยอย่างหนักในการเหนี่ยวนำที่แข็งแกร่ง ; เขามีแนวโน้มที่จะคิดในแง่ของเซตแทนที่จะเป็นตัวเลข ดังนั้นคุณอาจได้เซตว่างเปล่าที่คนอื่นจะมีศูนย์หรือโมฆะ; หรือตั้งสหภาพที่คนอื่นจะมีนอกจากนี้

ij<i

a

rnd[a]iai

มันเป็นเครื่องมือที่ช่วยยืดสมองเพื่อพิสูจน์ระบบเหล่านี้

(อัปเดต) : แสดงรายการค่าคงที่; แลมพอร์ตใช้ค่าคงที่จำนวนมากเมื่อพัฒนาและพิสูจน์ของเขา บางครั้งพวกเขาก็กระจัดกระจายไปทั่วพิสูจน์; บางครั้งพวกเขาจะปรากฏในหลักฐานการตรวจสอบเครื่อง เหตุผลเกี่ยวกับค่าคงที่แต่ละค่า ทำไมถึงมี มันมีปฏิสัมพันธ์กับคนที่ไม่แปรเปลี่ยนได้อย่างไร แต่ละขั้นตอนในระบบรักษาค่าคงที่นี้ได้อย่างไร


การเปิดเผยอย่างสมบูรณ์ : ฉันไม่ได้อ่านFast Paxosจนกว่าฉันจะถูกขอให้ตอบคำถามนี้ และดูเฉพาะหน้าที่อ้างถึงเท่านั้น ฉันเป็นวิศวกรไม่ใช่นักคณิตศาสตร์ แปรงของฉันกับงานของ Lamport นั้นขึ้นอยู่กับความจำเป็นในการคิดค้นและบำรุงรักษาระบบการกระจายขนาดใหญ่อย่างถูกต้อง

คำตอบของฉันต้องอาศัยประสบการณ์ของฉันกับงานของ Lamport มาก ฉันได้อ่านโปรโตคอลและบทพิสูจน์หลายอันของแลมพอร์ตแล้ว ฉันรักษาระบบที่ใช้ paxos อย่างมืออาชีพ ฉันได้เขียนและพิสูจน์โพรโทคอลฉันทามติความเร็วสูงและรักษาระบบอย่างมืออาชีพอีกครั้งโดยใช้มาตรฐาน (ฉันพยายามทำให้ บริษัท ของฉันอนุญาตให้ฉันเผยแพร่เอกสาร) ฉันได้ร่วมมือกับกระดาษที่ไม่มีนัยสำคัญกับ Lamport ซึ่งฉันได้พบกับเขาสามครั้ง (กระดาษยังอยู่ระหว่างการตรวจสอบโดยเพื่อน)


ik=max()CP(v,i)k<j<ij=kCP(v,k)CP(v,k)k=max()k<j<kj=kCP(v,k)kn=0ks ฉันมีความยากลำบากในการแปลลงในการเหนี่ยวนำที่แข็งแกร่งกับเวลาไหลไปข้างหน้า
hengxin

1
i=0i=1

P18vV,CP(v,i)j<kP18P17vVCP(v,i)

ในที่สุดฉันก็รู้ว่าค่าคงที่คืออะไรและการเหนี่ยวนำที่แข็งแกร่งทำงานอย่างไร ขอบคุณอีกครั้ง. 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 algorithmดังนั้นคุณช่วยกรุณาแสดงตัวอย่างหรืออ้างอิงบทความที่เกี่ยวข้องได้ไหม นอกจากนี้เอกสารของคุณมีฉบับที่ไม่ได้จัดประเภทล่วงหน้าหรือไม่
hengxin

1
แลมพออธิบายชนิดแรกของลำดับชั้นในกระดาษของเขาวิธีการเขียนหลักฐานและให้ตัวอย่างของสองในที่Byzantizing Paxos โดยการปรับแต่ง โดยทั่วไปแล้วลำดับชั้นที่สองเรียกว่าการปรับแต่งหรือการจับคู่
Michael Deardeuff
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.