อ่าน 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 ]
ตัวตรวจจับความล้มเหลว

Chandra และ Toueg อ้างว่าตัวตรวจจับความล้มเหลวที่ไม่น่าเชื่อถือยังคงสามารถตรวจจับข้อผิดพลาดที่เกิดขึ้นในระบบได้อย่างน่าเชื่อถือ[ 6 ]พวกเขาสรุปตัวตรวจจับความล้มเหลวที่ไม่น่าเชื่อถือไปยังตัวตรวจจับความล้มเหลวทุกรูปแบบ เนื่องจากตัวตรวจจับความล้มเหลวที่ไม่น่าเชื่อถือและตัวตรวจจับความล้มเหลวมีคุณสมบัติเดียวกัน นอกจากนี้ Chandra และ Toueg ยังชี้ให้เห็นข้อเท็จจริงที่สำคัญว่าตัวตรวจจับความล้มเหลวไม่สามารถป้องกันการหยุดทำงานของระบบได้ แม้ว่าโปรแกรมที่หยุดทำงานจะถูกสงสัยไว้ก่อนหน้านี้แล้วก็ตาม การสร้างตัวตรวจจับความล้มเหลวเป็นปัญหาที่สำคัญแต่ยากมากที่เกิดขึ้นในการพัฒนา ส่วนประกอบ ที่ทนต่อความผิดพลาดในระบบคอมพิวเตอร์แบบกระจาย ส่งผลให้มีการคิดค้นตัวตรวจจับความล้มเหลวขึ้นมาเนื่องจากความจำเป็นในการตรวจจับข้อผิดพลาดในการทำธุรกรรมข้อมูลจำนวนมากในระบบคอมพิวเตอร์แบบกระจาย[ 1 ] [ 3 ] [ 5 ]
คุณสมบัติ
คลาสของตัวตรวจจับความล้มเหลวจะแตกต่างกันด้วยคุณสมบัติสำคัญสองประการ ได้แก่ความสมบูรณ์และความถูกต้องความสมบูรณ์หมายความว่าตัวตรวจจับความล้มเหลวจะพบโปรแกรมที่เกิดข้อผิดพลาดในกระบวนการ ในขณะที่ความถูกต้องหมายความว่าตัวตรวจจับความล้มเหลวจะตัดสินใจได้อย่างถูกต้องในกระบวนการ[ 5 ]
ระดับความสมบูรณ์
ระดับความสมบูรณ์ขึ้นอยู่กับจำนวนกระบวนการที่ขัดข้องซึ่งตัวตรวจจับความล้มเหลวสงสัยในช่วงเวลาหนึ่ง[ 5 ]
- ความสมบูรณ์แบบที่แข็งแกร่ง: "กระบวนการ ที่ผิดพลาดทุกกระบวนการจะถูกสงสัยอย่างถาวรโดยกระบวนการที่ไม่ผิดพลาดทุกกระบวนการ" [ 6 ]
- ความสมบูรณ์ที่อ่อนแอ: " กระบวนการ ที่ผิดพลาด ทุก กระบวนการจะถูกสงสัยอย่างถาวรโดยกระบวนการที่ไม่ผิดพลาดบางกระบวนการ" [ 6 ]
ระดับความแม่นยำ
ระดับความแม่นยำขึ้นอยู่กับจำนวนข้อผิดพลาดที่เครื่องตรวจจับความล้มเหลวทำในช่วงเวลาหนึ่ง[ 5 ]
- ความแม่นยำสูง: "ไม่มีใครสงสัยกระบวนการใดๆ ก่อนที่จะเกิดการขัดข้อง" [ 6 ]
- ความแม่นยำต่ำ: "กระบวนการที่ไม่ผิดพลาดบางอย่างไม่เคยถูกสงสัย" [ 6 ]
- ความแม่นยำที่แข็งแกร่งในที่สุด: "ไม่มีกระบวนการที่ไม่ผิดพลาดใด ๆ ที่สงสัยหลังจากผ่านไประยะหนึ่งนับตั้งแต่สิ้นสุดช่วงเริ่มต้นของความวุ่นวาย นับตั้งแต่เวลาที่การชนครั้งสุดท้ายเกิดขึ้น" [ 6 ]
- ความแม่นยำที่อ่อนแอในที่สุด: "หลังจากช่วงเวลาแห่งความสับสนเบื้องต้น กระบวนการที่ไม่ผิดพลาดบางอย่างจะไม่ถูกสงสัยเลย" [ 6 ]
การจำแนกประเภท
ตัวตรวจจับความล้มเหลวสามารถจำแนกได้เป็น 8 ประเภทดังต่อไปนี้: [ 1 ] [ 7 ]
- เครื่องตรวจจับความล้มเหลวที่สมบูรณ์แบบ ( P)
- ในที่สุดเครื่องตรวจจับความล้มเหลวที่สมบูรณ์แบบ ( ♦P )
- ตัวตรวจจับความล้มเหลวที่มีประสิทธิภาพ ( S )
- ในที่สุด ตัวตรวจจับความล้มเหลวที่แข็งแกร่ง ( ♦S )
- ตัวตรวจจับความล้มเหลวที่อ่อนแอ ( W )
- ในที่สุด ตัวตรวจจับความล้มเหลวที่อ่อนแอ ( ♦W )
- ตัวตรวจจับความล้มเหลวแบบกึ่งสมบูรณ์แบบ ( Q )
- ในที่สุดเครื่องตรวจจับความล้มเหลวที่เกือบสมบูรณ์แบบ ( ♦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 ]
- มันรักษาความถูกต้องในที่สุด[ 1 ]
หากข้อโต้แย้งทั้งหมดข้างต้นเป็นไปตามเงื่อนไข การลดตัวตรวจจับความล้มเหลวที่อ่อนแอWให้เป็นตัวตรวจจับความล้มเหลวที่แข็งแกร่งSจะสอดคล้องกับอัลกอริทึมภายในระบบการประมวลผลแบบกระจาย[ 1 ]
ดูเพิ่มเติม
- การประมวลผลแบบกระจาย
- รายชื่อโครงการคอมพิวเตอร์แบบกระจาย
- โปรโตคอล SWIM
- อุบัติเหตุ (คอมพิวเตอร์)
- ความทนทานต่อความผิดพลาด
- ฉันทามติ
- การออกอากาศอะตอม
ลิงก์ภายนอก
- http://www.cs.yale.edu/homes/aspnes/pinewiki/FailureDetectors.html
- https://www.cs.cornell.edu/home/sam/FDpapers.html
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ ตัวตรวจจับความล้มเหลว
ในระบบ คอมพิวเตอร์แบบกระจาย ตัวตรวจจับความล้มเหลว คือ แอปพลิเคชันคอมพิวเตอร์ หรือ ระบบย่อย ที่รับผิดชอบในการตรวจจับความล้มเหลวหรือ การขัดข้องของ โหนด [ 1 ] ตัว...
ตัวตรวจจับความล้มเหลวที่ไม่น่าเชื่อถือ
Chandra และ Toueg ผู้ร่วมเขียนหนังสือ Unreliable Failure Detectors for Reliable Distributed System (1996) ได้เข้าถึงแนวคิดของการตรวจจับโหนดความล้มเหลวโดยการแนะนำตัวตรวจจับความล้มเหลวที่ไม่น่าเชื่อถือ [ 6 ]...
ตัวตรวจจับความล้มเหลว
Chandra และ Toueg อ้างว่าตัวตรวจจับความล้มเหลวที่ไม่น่าเชื่อถือยังคงสามารถตรวจจับข้อผิดพลาดที่เกิดขึ้นในระบบได้อย่างน่าเชื่อถือ [ 6 ] พวกเขาสรุปตัวตรวจจับความล้มเหลวที่ไม่น่าเชื่อถือไปยังตัวตรวจจับความล้มเหลวทุกรูปแบบ...
คุณสมบัติ
คลาสของตัวตรวจจับความล้มเหลวจะแตกต่างกันด้วยคุณสมบัติสำคัญสองประการ ได้แก่ ความสมบูรณ์ และ ความถูกต้อง ความสมบูรณ์หมายความว่าตัวตรวจจับความล้มเหลวจะพบโปรแกรมที่เกิดข้อผิดพลาดในกระบวนการ...