อัลกอริทึมของ Berkeley เป็นอัลกอริทึมที่ใช้สำหรับการซิงโครไนซ์นาฬิกาในระบบแบบกระจาย อัลกอริธึมนี้ใช้ในกรณีที่บางระบบหรือทั้งหมดของเครือข่ายแบบกระจายมีปัญหาเหล่านี้ -
-
A. เครื่องไม่มีแหล่งเวลาที่แม่นยำ
-
B. เครือข่ายหรือเครื่องไม่มีเซิร์ฟเวอร์ UTC
ระบบกระจาย มีหลายโหนดที่แยกจากกัน แต่เชื่อมโยงเข้าด้วยกันโดยใช้เครือข่าย
อัลกอริทึมของเบิร์กลีย์
ในอัลกอริธึมนี้ ระบบจะเลือกโหนดเป็นโหนดหลัก/โหนดผู้นำ ทำได้จากโหนดพูลในเซิร์ฟเวอร์
อัลกอริทึมคือ −
-
ขั้นตอนการเลือกตั้งจะเลือกโหนดหลักในเซิร์ฟเวอร์
-
จากนั้นผู้นำจะสำรวจผู้ติดตามที่ให้เวลาในลักษณะที่คล้ายกับอัลกอริธึมของคริสเตียน , สิ่งนี้จะทำเป็นระยะๆ.
-
จากนั้นผู้นำจะคำนวณเวลาสัมพัทธ์ที่โหนดอื่นต้องเปลี่ยนหรือปรับให้ตรงกันกับเวลานาฬิกาทั่วโลกซึ่งเป็นค่าเฉลี่ยของเวลาที่กำหนดให้กับโหนดผู้นำ
มาสรุปขั้นตอนที่ทำตามเพื่อซิงโครไนซ์นาฬิกาโดยใช้อัลกอริทึมของ Berkeley
โหนดในระบบแบบกระจายพร้อมเวลานาฬิกา -
N1 -> 14:00 (master node) N2 -> 13: 46 N3 -> 14: 15
ขั้นตอนที่ 1 − ผู้นำได้รับเลือก โหนด N1 เป็นมาสเตอร์ในระบบ
ขั้นตอนที่ 2 − ผู้นำร้องขอเวลาจากทุกโหนด
N1 -> time : 14:00 N2 -> time : 13:46 N3 -> time : 14:20
ขั้นตอนที่ 3 − ผู้นำจะเฉลี่ยเวลาและส่งเวลาแก้ไขกลับไปยังโหนด
N1 -> Corrected Time 14:02 (+2) N2 -> Corrected Time 14:02 (+16) N3 -> Corrected Time 14:02 (-18)
นี่แสดงให้เห็นว่าการซิงโครไนซ์โหนดของระบบแบบกระจายทำได้โดยใช้อัลกอริทึมของ Berkeley