การทำเช็คพอยต์และการกู้คืนระบบ
การทำเช็คพอยต์คือการบันทึกสถานะของระบบเป็นระยะ เพื่อให้หลังจากเกิดความล้มเหลว ระบบสามารถย้อนกลับไปยังจุดที่สอดคล้องกันและดำเนินการต่อได้ แทนที่จะต้องเริ่มต้นใหม่ทั้งหมด
Definition
การทำเช็คพอยต์คือการบันทึกสถานะของกระบวนการหนึ่งหรือหลายกระบวนการลงในหน่วยเก็บข้อมูลที่เสถียร; การกู้คืนระบบแบบย้อนกลับใช้เช็คพอยต์เหล่านี้ ซึ่งอาจรวมถึงข้อความที่บันทึกไว้ เพื่อกู้คืนระบบให้กลับสู่สถานะทั่วโลกที่สอดคล้องกัน—เส้นทางการกู้คืน—หลังจากเกิดความล้มเหลว และเล่นซ้ำไปข้างหน้าจากจุดนั้น
Scope
หัวข้อนี้ครอบคลุมการกู้คืนระบบแบบย้อนกลับโดยใช้เช็คพอยต์และบันทึกข้อมูล: การทำเช็คพอยต์แบบไม่ประสานงาน, แบบประสานงาน, และแบบที่เกิดจากการสื่อสาร; ผลกระทบโดมิโนที่อาจเกิดจากการทำเช็คพอยต์แบบไม่ประสานงาน; และการบันทึกข้อความแบบมองในแง่ร้าย, มองในแง่ดี, และแบบเชิงสาเหตุที่ช่วยให้สามารถกู้คืนได้เกินกว่าเช็คพอยต์ล่าสุด นอกจากนี้ยังเชื่อมโยงกับทฤษฎี consistent-cut ของสแนปช็อตแบบทั่วโลก
Core questions
- จะรวมเช็คพอยต์จากหลายกระบวนการเข้าเป็นเส้นทางการกู้คืนที่สอดคล้องกันได้อย่างไร?
- ผลกระทบโดมิโนคืออะไร และการประสานงานป้องกันได้อย่างไร?
- เมื่อใดที่การบันทึกข้อความช่วยให้สามารถกู้คืนได้เกินกว่าเช็คพอยต์ล่าสุด?
Key theories
- การทำเช็คพอยต์แบบประสานงาน
- กระบวนการต่างๆ ประสานงานกันเพื่อให้เช็คพอยต์ของพวกมันรวมกันเป็นสถานะทั่วโลกที่สอดคล้องกัน รับประกันเส้นทางการกู้คืนที่ใช้งานได้และหลีกเลี่ยงการย้อนกลับแบบต่อเนื่อง โดยมีค่าใช้จ่ายในการซิงโครไนซ์
- การทำเช็คพอยต์แบบไม่ประสานงานและผลกระทบโดมิโน
- หากกระบวนการต่างๆ ทำเช็คพอยต์อย่างอิสระ การกู้คืนอาจต้องย้อนกลับแต่ละกระบวนการเพื่อค้นหาชุดที่สอดคล้องกัน ซึ่งอาจส่งผลให้เกิดการย้อนกลับต่อเนื่องไปจนถึงจุดเริ่มต้น (ผลกระทบโดมิโน) ซึ่งการประสานงานหรือการบันทึกข้อมูลถูกออกแบบมาเพื่อหลีกเลี่ยง
- การบันทึกข้อความ
- การบันทึกข้อความที่กระบวนการได้รับ (แบบมองในแง่ร้าย, มองในแง่ดี, หรือเชิงสาเหตุ) ช่วยให้กระบวนการที่กำลังกู้คืนสามารถเล่นซ้ำข้อความเหล่านั้นได้อย่างเป็นระเบียบและดำเนินการต่อไปเกินกว่าเช็คพอยต์ล่าสุดของตน กู้คืนงานล่าสุดโดยไม่ต้องย้อนกลับทั่วโลก
Clinical relevance
การทำเช็คพอยต์/การเริ่มต้นใหม่ช่วยให้การคำนวณประสิทธิภาพสูงและทางวิทยาศาสตร์ที่ใช้เวลานานมีความยืดหยุ่นต่อความล้มเหลวของโหนด และการทำเช็คพอยต์แบบอะซิงโครนัสช่วยให้ระบบประมวลผลสตรีมสมัยใหม่มีการรับประกันการกู้คืนความผิดพลาดแบบ 'exactly-once'
History
จากทฤษฎี consistent-snapshot ของ Chandy และ Lamport, Koo และ Toueg ได้กำหนดรูปแบบการทำเช็คพอยต์แบบประสานงานในปี 1987 และงานวิจัยหลายทศวรรษเกี่ยวกับการบันทึกข้อมูลและแผนการที่ไม่ประสานงานได้ถูกรวบรวมไว้ในงานสำรวจของ Elnozahy และคณะในปี 2002 ซึ่งเป็นเอกสารอ้างอิงมาตรฐานเกี่ยวกับการกู้คืนระบบแบบย้อนกลับ
Debates
- การทำเช็คพอยต์แบบประสานงานเทียบกับแบบไม่ประสานงาน
- การทำเช็คพอยต์แบบประสานงานรับประกันเส้นทางการกู้คืนที่ชัดเจน แต่เพิ่มค่าใช้จ่ายในการซิงโครไนซ์และการประสานงานทั่วโลก; การทำเช็คพอยต์แบบไม่ประสานงานมีค่าใช้จ่ายน้อยกว่าในเวลาที่ทำเช็คพอยต์ แต่เสี่ยงต่อผลกระทบโดมิโนและการกู้คืนที่ซับซ้อน ดังนั้นการเลือกที่เหมาะสมขึ้นอยู่กับอัตราความล้มเหลวและขนาด
Key figures
- K. Mani Chandy
- Leslie Lamport
- Sam Toueg
- Lorenzo Alvisi
Related topics
Seminal works
- elnozahy2002
- koo1987
- chandy1985
Frequently asked questions
- ผลกระทบโดมิโนในการกู้คืนระบบแบบย้อนกลับคืออะไร?
- เมื่อกระบวนการต่างๆ ทำเช็คพอยต์โดยไม่มีการประสานงาน การย้อนกลับกระบวนการหนึ่งอาจบังคับให้กระบวนการที่ขึ้นต่อกันต้องย้อนกลับด้วย ซึ่งอาจส่งผลต่อเนื่องย้อนกลับไปตลอดการคำนวณ—อาจถึงจุดเริ่มต้นเลยทีเดียว การทำเช็คพอยต์แบบประสานงานหรือการบันทึกข้อความถูกนำมาใช้เพื่อป้องกันสิ่งนี้