เหยื่อการหยุดชะงักคืออะไร?

เหยื่อการหยุดชะงักคือผู้ใช้คอมพิวเตอร์ซึ่งทำหน้าที่เป็นไคลเอนต์ที่เชื่อมต่อกับเซิร์ฟเวอร์ซึ่งการเชื่อมต่อที่โฮสต์เซิร์ฟเวอร์ได้เลือกที่จะยุติเพื่อแก้ไขการหยุดชะงัก การหยุดชะงักประเภทนี้มักเกิดขึ้นเมื่อกระบวนการที่ต่างกันสองกระบวนการกำลังพยายามใช้ทรัพยากรเดียวกันซึ่งทำให้กระบวนการทั้งสองถูกล็อค เพื่อแก้ไขปัญหานี้ระบบฐานข้อมูลเซิร์ฟเวอร์จำนวนมากสามารถตรวจพบเมื่อเกิดการชะงักงันและเลือกที่จะยุติการเชื่อมต่อของหนึ่งในสองกระบวนการ ผู้ที่ตกเป็นเหยื่อ Deadlock สามารถเลือกโปรแกรมได้เองแม้ว่าผู้ใช้จะถูกเลือกให้เป็นผู้ที่สามารถเชื่อมต่อกับระบบได้ง่ายที่สุด

โดยทั่วไปคำว่า“ เหยื่อการหยุดชะงัก” มักใช้ในข้อผิดพลาดหรือข้อความแสดงข้อยกเว้นที่ระบบแสดงต่อผู้ใช้เมื่อการเชื่อมต่อของเขาหรือเธอถูกยกเลิก ข้อผิดพลาดนี้เกิดขึ้นในสถานการณ์ที่มักเรียกว่าการหยุดชะงัก โดยทั่วไปแล้วการหยุดชะงักเกิดขึ้นเมื่อผู้ใช้สองคนที่เชื่อมต่อกับเซิร์ฟเวอร์พยายามเข้าถึงทรัพยากรเดียวกันในลักษณะที่สร้างการล็อคในระบบ ตัวอย่างเช่นหากผู้ใช้ A กำลังใช้ทรัพยากร 1 และจำเป็นต้องใช้ทรัพยากร 2 ในขณะที่ผู้ใช้ B กำลังใช้ทรัพยากร 2 และจำเป็นต้องใช้ทรัพยากร 1 เช่นกันการหยุดชะงักเกิดขึ้นเนื่องจากผู้ใช้ไม่สามารถทำกระบวนการของเขาให้เสร็จได้

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

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