เหตุใดปัญหาฉันทามติจึงสำคัญมากในการคำนวณแบบกระจาย


19

ในการคำนวณแบบกระจายปัญหาฉันทามติดูเหมือนจะเป็นหนึ่งในหัวข้อหลักที่ดึงดูดการวิจัยอย่างเข้มข้น โดยเฉพาะอย่างยิ่งกระดาษ "เป็นไปไม่ได้ของฉันทามติกระจายกับกระบวนการหนึ่งผิดพลาด" ที่ได้รับ2001 PODC มีอิทธิพลรางวัลกระดาษ

เหตุใดปัญหาฉันทามติจึงสำคัญมาก เราจะประสบความสำเร็จได้อย่างไรด้วยฉันทามติทั้งในทางทฤษฎีและในทางปฏิบัติ?

การอ้างอิงหรืองานแสดงสินค้าใด ๆ จะเป็นประโยชน์จริงๆ

คำตอบ:


18

กระดาษที่คุณพูดถึงมีความสำคัญด้วยเหตุผล 2 ประการ:

  1. มันแสดงให้เห็นว่าไม่มีอัลกอริทึมฉันทามติแบบอะซิงโครนัสกำหนดที่ยอมรับแม้แต่ความผิดพลาดความผิดพลาดเพียงครั้งเดียว โปรดทราบว่าในการตั้งค่าแบบซิงโครนัสจะมีอัลกอริทึมที่กำหนดขึ้นซึ่งจะสิ้นสุดในรอบเมื่อกระบวนการล้มเหลวf+1f
  2. มันแนะนำbivalenceและunivalenceของการกำหนดค่า (*) ซึ่งใช้ในขอบเขตที่ต่ำกว่ามากและพิสูจน์เป็นไปไม่ได้ในภายหลัง

การประยุกต์ใช้งาน

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

แอปพลิเคชันอื่นยังคงความสอดคล้องในเครือข่ายแบบกระจาย: สมมติว่าคุณมีโหนดเซ็นเซอร์ต่าง ๆ ที่ตรวจสอบสภาพแวดล้อมเดียวกัน ในกรณีที่บางส่วนของโหนดเซ็นเซอร์เหล่านี้ผิดพลาด (หรือแม้กระทั่งเริ่มส่งข้อมูลที่เสียหายเนื่องจากความผิดพลาดของฮาร์ดแวร์) โปรโตคอลความสอดคล้องจะช่วยให้มั่นใจถึงความทนทานต่อความผิดพลาดดังกล่าว


(*) การรันอัลกอริธึมแบบกระจายเป็นลำดับของการกำหนดค่า การกำหนดค่าเป็นเวกเตอร์ของสถานะโลคัลของกระบวนการ แต่ละกระบวนการดำเนินการเครื่องรัฐที่กำหนดไว้ อัลกอริทึมฉันทามติที่ถูกต้องใด ๆ จะต้องถึงการกำหนดค่าในที่สุดซึ่งทุกกระบวนการได้ตัดสินใจ (เอาคืนไม่ได้) ในค่าอินพุตเดียวกัน การกำหนดค่าคือ - valentถ้าว่าสิ่งที่ฝ่ายตรงข้ามจะไม่มีส่วนขยายไปได้ทั้งหมดของนำไปสู่การตัดสินใจของมูลค่า1Analogously เราสามารถกำหนด - จุ การกำหนดค่าเป็นไบวาเลนซ์หากการตัดสินใจทั้งสองสามารถเข้าถึงได้จาก1110(ซึ่งหนึ่งในสองนั้นขึ้นอยู่กับปฏิปักษ์) เห็นได้ชัดว่าไม่มีกระบวนการใดสามารถตัดสินใจได้ในการกำหนดค่าไบวาเลนซ์เช่นเดียวกับที่เราเห็นด้วยกับข้อตกลง! ดังนั้นหากเราสามารถสร้างลำดับอนันต์ของการกำหนดค่าไบวาเลนต์ดังกล่าวเราได้แสดงให้เห็นว่าไม่มีอัลกอริธึมที่สอดคล้องกันในการตั้งค่านี้


2
@AJed เป็นส่วนเสริม: ฉันเหลือบมองไปที่การประสานกระดาษโดย Maurice Herlihy และตอนนี้สามารถนำเสนอผลกระทบเชิงทฤษฎีที่ยอดเยี่ยมเพิ่มเติมของปัญหาฉันทามติ การใช้แนวคิดของฉันทามติจำนวนหนึ่งสามารถแสดงให้เห็นว่ามีลำดับชั้นที่ไม่มีที่สิ้นสุดของการซิงโครไนซ์ดั้งเดิมเช่นที่ไม่มีดั้งเดิมในระดับหนึ่งสามารถใช้สำหรับการใช้งานแบบไม่มีการรอคอยของดั้งเดิมใด ๆ ในระดับที่สูงขึ้น กล่าวอย่างง่ายๆว่าปัญหาความสอดคล้องกันเป็นส่วนหนึ่งของทฤษฎีที่เป็นเอกภาพในการกำหนดพลังสัมพัทธ์ของการปฏิบัติการซิงโครไนซ์ดั้งเดิม มันเป็นสง่า
hengxin

1
ฉันมีความยากลำบากในการทำความเข้าใจหลักฐานของผลลัพธ์ที่เป็นไปไม่ได้ของ FLP คุณสามารถให้คำแนะนำกับฉันได้ไหม โปรดอ้างอิงถึง [การพิสูจน์ FLP] ( stackoverflow.com/q/15131730/1833118 ) ขอบคุณ
hengxin

"ที่ทุกกระบวนการตัดสินใจ" อาจจะเป็น "ที่ทุกกระบวนการตัดสินใจถูกต้อง "?
nbro

คุณควรอธิบายว่าใครคือปฏิปักษ์ใน "ไม่ว่าศัตรูจะทำอะไร"
nbro

"ส่วนขยายที่เป็นไปได้ทั้งหมดของ C" คุณหมายถึงอะไรโดย "ส่วนขยายของ C" ส่วนขยายของการกำหนดค่าโดยทั่วไปคืออะไร
nbro

7

มันแสดงให้เห็นว่าไม่มีอัลกอริธึมที่กำหนดความทนทานต่อความผิดพลาด ค่อนข้างมีผลทางทฤษฎีที่แข็งแกร่งซึ่งบังคับให้นักออกแบบจัดการกับความผิดพลาดที่แตกต่างกันซึ่งบางส่วนเป็นการประสานและการสุ่ม

ความคิดเห็น: ในความคิดของฉันการประสานเป็นข้อสันนิษฐานเพิ่มเติมของระบบที่พบได้ยากในการใช้งานจริง

สำหรับการอ้างอิงตรวจสอบการเชื่อมโยงวิกิพีเดีย ตรวจสอบบล็อกนี้สำหรับการใช้งานจริง


1
ใช่ฉันชอบการสุ่มเพื่อซิงโครไนซ์ สภาพแวดล้อมที่เล่นการคำนวณแบบกระจายนั้นแย่มากในแง่ของการซิงโครไนซ์การหน่วงเวลาที่ไม่ได้ จำกัด ความล้มเหลวที่ไม่คาดคิด ตราบใดที่มันไม่สมบูรณ์แบบทำไมเราไม่ใช้การสุ่มตัวอย่างบรรลุการรับประกันบางอย่างในขณะที่หลีกเลี่ยงความซับซ้อนมากเกินไป
hengxin

1
การพูดของการประสานฉันเพียงแค่ไม่ชอบสมมติฐานในทฤษฎี อย่างไรก็ตามในอุตสาหกรรมมีการใช้การซิงโครไนซ์หรือการซิงโครไนซ์บางส่วนบ่อยครั้ง ตัวอย่างเช่น Spanner ของ Google เป็นฐานข้อมูลที่จำลองแบบกระจายทั่วโลก มันทำให้ฉันแตกหักน้อยลง ความคิดเห็นของคุณคืออะไร?
hengxin

ฉันเดาว่าจะเป็นการดีกว่าที่จะเห็นว่ามีการใช้งานการซิงโครไนซ์อย่างไร แต่มันเป็นข้อมูลอ้างอิงที่น่าสนใจมาก - สิ่งที่ฉันหมายถึงมันไม่ได้เป็นคุณสมบัติตามธรรมชาติของระบบ มันจะต้องเพิ่มเข้าไป
AJed

โดยทั่วไปคุณไม่ควรให้ข้อมูลอ้างอิงเป็น Wikipedia ฉันเพิ่งอ่านบทความ Wikipedia: มันค่อนข้างไม่สมบูรณ์และไม่มีการรวบรวมกัน มันอาจทำให้สับสน
nbro

5

เหตุผลข้อหนึ่งของปัญหาฉันทามติมีความสำคัญคือมันง่ายมากและเป็นปัญหาสากลสำหรับระบบคอมพิวเตอร์แบบกระจาย

หากเราสามารถแก้ไขฉันทามติในระบบกระจาย async เราสามารถใช้มันเป็นเส้นตรงการกระทำบนวัตถุที่ใช้ร่วมกันและรับ linearizability สำหรับวัตถุที่ใช้ร่วมกัน

สำหรับความเรียบง่ายคุณสามารถคิดได้ว่ามีปัญหาอะไรบ้างที่ง่ายกว่าการยอมรับคุณค่า

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

นี่คือเหตุผลที่ว่าทำไมในขั้นตอนวิธีการปฏิบัติที่แก้ฉันทามติเช่น Lamax's Paxos, Chubby ของ Google, Apache ZooKeeper และ Raft เมื่อเร็ว ๆ นี้เป็นหัวใจสำคัญของระบบกระจายที่เรามักต้องการจำลองสถานะระหว่างเซิร์ฟเวอร์


0

ฉันจะเพิ่มว่าธรรมชาติของการคำนวณนั้นเริ่มมีการกระจายเพิ่มมากขึ้นในสแต็ก: ซีพียูจำนวนมาก, กระบวนการจำนวนมากบนเครื่อง, เครื่องจำนวนมากที่เชื่อมต่อด้วย LAN, LAN จำนวนมากเชื่อมต่อด้วยอินเตอร์เน็ต

สิ่งนี้ทำให้เกิดปัญหาที่พบบ่อยที่สุด (กระจาย / ทั่วโลก) รัฐ - อัลกอริธึมแต่ละอย่างสมมติว่ามีสถานะที่แน่นอนและหากการคำนวณจะต้องดำเนินการมากกว่าหนึ่งแห่งแล้วรัฐจะต้องมีการกระจายเกินไป

เอกสารที่มีอิทธิพล ( Paxosและแพเร็ว ๆ นี้) ในโดเมนนี้เผยแพร่หลังจากกระดาษที่คุณอ้างถึง ทั้งคู่กล่าวถึงประเด็นของฉันทามติเมื่อมีความล้มเหลวบางอย่าง

สามารถหลีกเลี่ยงข้อผิดพลาด Byzantine ในระบบกระจายได้โดยใช้วิธีการไม่กี่วิธี

มีลักษณะที่รายการวิกิพีเดียไบเซนไทน์ Fault Tolerance


ผลลัพธ์ที่เป็นไปไม่ได้ของ FLP จะถูกนำไปใช้แม้ในการตั้งค่าความล้มเหลวขั้นพื้นฐานที่สุด (เกิดความผิดพลาด) ดังนั้นฉันจึงไม่แน่ใจว่าประเด็นในวรรคเกี่ยวกับการหลีกเลี่ยงความล้มเหลวของไบแซนไทน์คืออะไร โปรดทราบว่าหากเราไม่มีความล้มเหลวฉันทามติค่อนข้างง่าย: กระบวนการคงที่หนึ่งจะเผยแพร่ค่าของมันและแต่ละกระบวนการจะตัดสินมูลค่านั้นทันทีที่ได้รับ
Kaveh
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.