กลับไปหน้าบทความ

อ่าน 4 นาที

ตัวตรวจจับความล้มเหลว

ในระบบ คอมพิวเตอร์แบบกระจาย ตัวตรวจจับความล้มเหลว คือ แอปพลิเคชันคอมพิวเตอร์ หรือ ระบบย่อย ที่รับผิดชอบในการตรวจจับความล้มเหลวหรือ การขัดข้องของ โหนด [ 1 ] ตัว...

ตัวตรวจจับความล้มเหลว

ในระบบคอมพิวเตอร์แบบกระจายตัวตรวจจับความล้มเหลวคือแอปพลิเคชันคอมพิวเตอร์หรือระบบย่อยที่รับผิดชอบในการตรวจจับความล้มเหลวหรือการขัดข้องของโหนด[ 1 ] ตัวตรวจจับความล้มเหลวได้รับการแนะนำครั้งแรกในปี 1996 โดย Chandra และ Toueg ในหนังสือUnreliable Failure Detectors for Reliable Distributed Systemsหนังสือเล่มนี้แสดงให้เห็นว่าตัวตรวจจับความล้มเหลวเป็นเครื่องมือในการปรับปรุงความเห็นพ้อง (การบรรลุความน่าเชื่อถือ) และการกระจายเสียงแบบอะตอมิก (ลำดับข้อความเดียวกัน) ในระบบแบบกระจาย กล่าวอีกนัยหนึ่ง ตัวตรวจจับความล้มเหลวจะค้นหาข้อผิดพลาดในกระบวนการและระบบจะรักษาระดับความน่าเชื่อถือในทางปฏิบัติ หลังจากที่ตัวตรวจจับความล้มเหลวตรวจพบการขัดข้อง ระบบจะแบนกระบวนการที่ทำผิดพลาดเพื่อป้องกันการขัดข้องหรือข้อผิดพลาดร้ายแรงเพิ่มเติม[ 2 ] [ 3 ]

ในศตวรรษที่ 21 ตัวตรวจจับความล้มเหลวถูกนำมาใช้กันอย่างแพร่หลายในระบบคอมพิวเตอร์แบบกระจายเพื่อตรวจจับข้อผิดพลาดของแอปพลิเคชันเช่นแอปพลิเคชันซอฟต์แวร์หยุดทำงานอย่างถูกต้อง เนื่องจากโครงการคอมพิวเตอร์แบบกระจาย (ดูรายชื่อโครงการคอมพิวเตอร์แบบกระจาย ) ได้รับความนิยมมากขึ้นเรื่อยๆ การใช้งานตัวตรวจจับความล้มเหลวจึงมีความสำคัญและจำเป็นอย่างยิ่ง[ 4 ] [ 5 ]

ต้นทาง

ตัวตรวจจับความล้มเหลวที่ไม่น่าเชื่อถือ

Chandra และ Toueg ผู้ร่วมเขียนหนังสือUnreliable Failure Detectors for Reliable Distributed System (1996) ได้เข้าถึงแนวคิดของการตรวจจับโหนดความล้มเหลวโดยการแนะนำตัวตรวจจับความล้มเหลวที่ไม่น่าเชื่อถือ[ 6 ]พวกเขาอธิบายพฤติกรรมของตัวตรวจจับความล้มเหลวที่ไม่น่าเชื่อถือในระบบคอมพิวเตอร์แบบกระจายดังนี้: หลังจากแต่ละกระบวนการในระบบเข้าสู่ส่วนประกอบตัวตรวจจับความล้มเหลวในพื้นที่แล้วส่วนประกอบ ในพื้นที่แต่ละส่วน จะตรวจสอบส่วนหนึ่งของกระบวนการทั้งหมดภายในระบบ[ 5 ]นอกจากนี้ แต่ละกระบวนการจะต้องมีโปรแกรมที่ตัวตรวจจับความล้มเหลวสงสัยอยู่ด้วย[ 5 ]

ตัวตรวจจับความล้มเหลว

ภาพนี้แสดงถึงพฤติกรรมของอุปกรณ์ตรวจจับความล้มเหลว (FD) ทั่วไป

Chandra และ Toueg อ้างว่าตัวตรวจจับความล้มเหลวที่ไม่น่าเชื่อถือยังคงสามารถตรวจจับข้อผิดพลาดที่เกิดขึ้นในระบบได้อย่างน่าเชื่อถือ[ 6 ]พวกเขาสรุปตัวตรวจจับความล้มเหลวที่ไม่น่าเชื่อถือไปยังตัวตรวจจับความล้มเหลวทุกรูปแบบ เนื่องจากตัวตรวจจับความล้มเหลวที่ไม่น่าเชื่อถือและตัวตรวจจับความล้มเหลวมีคุณสมบัติเดียวกัน นอกจากนี้ Chandra และ Toueg ยังชี้ให้เห็นข้อเท็จจริงที่สำคัญว่าตัวตรวจจับความล้มเหลวไม่สามารถป้องกันการหยุดทำงานของระบบได้ แม้ว่าโปรแกรมที่หยุดทำงานจะถูกสงสัยไว้ก่อนหน้านี้แล้วก็ตาม การสร้างตัวตรวจจับความล้มเหลวเป็นปัญหาที่สำคัญแต่ยากมากที่เกิดขึ้นในการพัฒนา ส่วนประกอบ ที่ทนต่อความผิดพลาดในระบบคอมพิวเตอร์แบบกระจาย ส่งผลให้มีการคิดค้นตัวตรวจจับความล้มเหลวขึ้นมาเนื่องจากความจำเป็นในการตรวจจับข้อผิดพลาดในการทำธุรกรรมข้อมูลจำนวนมากในระบบคอมพิวเตอร์แบบกระจาย[ 1 ] [ 3 ] [ 5 ]

คุณสมบัติ

คลาสของตัวตรวจจับความล้มเหลวจะแตกต่างกันด้วยคุณสมบัติสำคัญสองประการ ได้แก่ความสมบูรณ์และความถูกต้องความสมบูรณ์หมายความว่าตัวตรวจจับความล้มเหลวจะพบโปรแกรมที่เกิดข้อผิดพลาดในกระบวนการ ในขณะที่ความถูกต้องหมายความว่าตัวตรวจจับความล้มเหลวจะตัดสินใจได้อย่างถูกต้องในกระบวนการ[ 5 ]

ระดับความสมบูรณ์

ระดับความสมบูรณ์ขึ้นอยู่กับจำนวนกระบวนการที่ขัดข้องซึ่งตัวตรวจจับความล้มเหลวสงสัยในช่วงเวลาหนึ่ง[ 5 ]

ระดับความแม่นยำ

ระดับความแม่นยำขึ้นอยู่กับจำนวนข้อผิดพลาดที่เครื่องตรวจจับความล้มเหลวทำในช่วงเวลาหนึ่ง[ 5 ]

  • ความแม่นยำสูง: "ไม่มีใครสงสัยกระบวนการใดๆ ก่อนที่จะเกิดการขัดข้อง" [ 6 ]
  • ความแม่นยำต่ำ: "กระบวนการที่ไม่ผิดพลาดบางอย่างไม่เคยถูกสงสัย" [ 6 ]
  • ความแม่นยำที่แข็งแกร่งในที่สุด: "ไม่มีกระบวนการที่ไม่ผิดพลาดใด ๆ ที่สงสัยหลังจากผ่านไประยะหนึ่งนับตั้งแต่สิ้นสุดช่วงเริ่มต้นของความวุ่นวาย นับตั้งแต่เวลาที่การชนครั้งสุดท้ายเกิดขึ้น" [ 6 ]
  • ความแม่นยำที่อ่อนแอในที่สุด: "หลังจากช่วงเวลาแห่งความสับสนเบื้องต้น กระบวนการที่ไม่ผิดพลาดบางอย่างจะไม่ถูกสงสัยเลย" [ 6 ]

การจำแนกประเภท

ตัวตรวจจับความล้มเหลวสามารถจำแนกได้เป็น 8 ประเภทดังต่อไปนี้: [ 1 ] [ 7 ]

  1. เครื่องตรวจจับความล้มเหลวที่สมบูรณ์แบบ ( P)
  2. ในที่สุดเครื่องตรวจจับความล้มเหลวที่สมบูรณ์แบบ ( ♦P )
  3. ตัวตรวจจับความล้มเหลวที่มีประสิทธิภาพ ( S )
  4. ในที่สุด ตัวตรวจจับความล้มเหลวที่แข็งแกร่ง ( ♦S )
  5. ตัวตรวจจับความล้มเหลวที่อ่อนแอ ( W )
  6. ในที่สุด ตัวตรวจจับความล้มเหลวที่อ่อนแอ ( ♦W )
  7. ตัวตรวจจับความล้มเหลวแบบกึ่งสมบูรณ์แบบ ( Q )
  8. ในที่สุดเครื่องตรวจจับความล้มเหลวที่เกือบสมบูรณ์แบบ ( ♦Q )

คุณสมบัติของตัวตรวจจับความล้มเหลวเหล่านี้มีรายละเอียดดังต่อไปนี้: [ 1 ]

ความแม่นยำ
ความสมบูรณ์
ความแม่นยำ ถาวรที่แข็งแกร่งความแม่นยำ ถาวรที่อ่อนแอความแม่นยำขั้น สุดท้ายที่แข็งแกร่งความแม่นยำ ในที่สุดที่อ่อนแอ
ความสมบูรณ์แบบที่แข็งแกร่ง พีเอส♦พี♦ส
ความสมบูรณ์แบบที่อ่อนแอ คิว♦Q♦W

โดยสรุป คุณสมบัติของตัวตรวจจับความล้มเหลวขึ้นอยู่กับความเร็วในการตรวจจับความล้มเหลวที่เกิด ขึ้นจริง และประสิทธิภาพในการหลีกเลี่ยงการตรวจจับที่ผิดพลาด ตัวตรวจจับความล้มเหลวที่สมบูรณ์แบบจะพบข้อผิดพลาดทั้งหมดโดยไม่มีข้อผิดพลาดใดๆ ในขณะที่ตัวตรวจจับความล้มเหลวที่อ่อนแอจะไม่พบข้อผิดพลาดใดๆ และจะทำผิดพลาดมากมาย[ 3 ] [ 8 ]

แอปพลิเคชัน

สามารถสร้างตัวตรวจจับความล้มเหลวประเภทต่างๆ ได้โดยการเปลี่ยนคุณสมบัติของตัวตรวจจับความล้มเหลว[ 3 ] [ 6 ]ตัวอย่างแรกแสดงให้เห็นถึงวิธีการเพิ่มความสมบูรณ์ของตัวตรวจจับความล้มเหลว และตัวอย่างที่สองแสดงให้เห็นถึงวิธีการเปลี่ยนตัวตรวจจับความล้มเหลวประเภทหนึ่งไปเป็นอีกประเภทหนึ่ง

เพิ่มความสมบูรณ์

ต่อไปนี้เป็นตัวอย่างที่ดึงมาจากภาควิชาวิทยาการคอมพิวเตอร์ มหาวิทยาลัยเยล โดยทำงานโดยการเพิ่มความสมบูรณ์ของตัวตรวจจับความล้มเหลว[ 6 ]

ผู้ต้องสงสัยเบื้องต้น = ∅ ทำตลอดไป: สำหรับแต่ละกระบวนการ p: ถ้าตัวตรวจจับที่อ่อนแอของฉันสงสัย p ให้ส่ง p ไปยังทุกกระบวนการ เมื่อได้รับค่า p จากกระบวนการ q บางอย่าง: ผู้ต้องสงสัย := ผู้ต้องสงสัย + p - q 

จากตัวอย่างข้างต้น หาก p เกิดข้อผิดพลาด ตัวตรวจจับที่อ่อนแอจะสงสัยในที่สุด ตัวตรวจจับความล้มเหลวทั้งหมดในระบบจะสงสัย p ในที่สุดเนื่องจากลูปอนันต์ที่สร้างขึ้นโดยตัวตรวจจับความล้มเหลว ตัวอย่างนี้ยังแสดงให้เห็นว่าตัวตรวจจับความล้มเหลวความสมบูรณ์ที่อ่อนแอสามารถสงสัยข้อผิดพลาดทั้งหมดได้ในที่สุด[ 6 ]การตรวจสอบโปรแกรมที่เกิดข้อผิดพลาดไม่ขึ้นอยู่กับความสมบูรณ์[ 5 ]

ลดตัวตรวจจับความล้มเหลวWให้เป็นตัวตรวจจับความล้มเหลวS

ต่อไปนี้เป็นข้อโต้แย้งที่ถูกต้องเพื่อตอบสนองอัลกอริธึมของการเปลี่ยนตัวตรวจจับความล้มเหลวWเป็นตัวตรวจจับความล้มเหลวS [ 1 ] ตัวตรวจจับความ ล้มเหลว Wมีความสมบูรณ์ที่อ่อนแอ และตัวตรวจจับความล้มเหลวSมีความสมบูรณ์ที่แข็งแกร่ง ทั้งสองตัวมีความแม่นยำที่อ่อนแอ[ 6 ]

  1. มันเปลี่ยนความสมบูรณ์ที่อ่อนแอให้เป็นความสมบูรณ์ที่แข็งแกร่ง[ 1 ]
  2. รักษาความถูกต้องแม่นยำตลอดไป[ 1 ]
  3. มันรักษาความถูกต้องในที่สุด[ 1 ]

หากข้อโต้แย้งทั้งหมดข้างต้นเป็นไปตามเงื่อนไข การลดตัวตรวจจับความล้มเหลวที่อ่อนแอWให้เป็นตัวตรวจจับความล้มเหลวที่แข็งแกร่งSจะสอดคล้องกับอัลกอริทึมภายในระบบการประมวลผลแบบกระจาย[ 1 ]

ดูเพิ่มเติม

  • http://www.cs.yale.edu/homes/aspnes/pinewiki/FailureDetectors.html
  • https://www.cs.cornell.edu/home/sam/FDpapers.html
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Failure_detector&oldid=1315299462 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ ตัวตรวจจับความล้มเหลว

ในระบบ คอมพิวเตอร์แบบกระจาย ตัวตรวจจับความล้มเหลว คือ แอปพลิเคชันคอมพิวเตอร์ หรือ ระบบย่อย ที่รับผิดชอบในการตรวจจับความล้มเหลวหรือ การขัดข้องของ โหนด [ 1 ] ตัว...

ตัวตรวจจับความล้มเหลวที่ไม่น่าเชื่อถือ

Chandra และ Toueg ผู้ร่วมเขียนหนังสือ Unreliable Failure Detectors for Reliable Distributed System (1996) ได้เข้าถึงแนวคิดของการตรวจจับโหนดความล้มเหลวโดยการแนะนำตัวตรวจจับความล้มเหลวที่ไม่น่าเชื่อถือ [ 6 ]...

ตัวตรวจจับความล้มเหลว

Chandra และ Toueg อ้างว่าตัวตรวจจับความล้มเหลวที่ไม่น่าเชื่อถือยังคงสามารถตรวจจับข้อผิดพลาดที่เกิดขึ้นในระบบได้อย่างน่าเชื่อถือ [ 6 ] พวกเขาสรุปตัวตรวจจับความล้มเหลวที่ไม่น่าเชื่อถือไปยังตัวตรวจจับความล้มเหลวทุกรูปแบบ...

คุณสมบัติ

คลาสของตัวตรวจจับความล้มเหลวจะแตกต่างกันด้วยคุณสมบัติสำคัญสองประการ ได้แก่ ความสมบูรณ์ และ ความถูกต้อง ความสมบูรณ์หมายความว่าตัวตรวจจับความล้มเหลวจะพบโปรแกรมที่เกิดข้อผิดพลาดในกระบวนการ...