ಪೆಟ್ಟಿಗೆಯಿಲ್ಲದ ಶ್ರೋಡಿಂಗರ್‌ನ ಬೆಕ್ಕು: ವಿತರಣಾ ವ್ಯವಸ್ಥೆಗಳಲ್ಲಿ ಒಮ್ಮತದ ಸಮಸ್ಯೆ

ಆದ್ದರಿಂದ ಊಹಿಸೋಣ. 5 ಬೆಕ್ಕುಗಳನ್ನು ಕೋಣೆಯಲ್ಲಿ ಲಾಕ್ ಮಾಡಲಾಗಿದೆ, ಮತ್ತು ಮಾಲೀಕರನ್ನು ಎಚ್ಚರಗೊಳಿಸಲು, ಅವರೆಲ್ಲರೂ ಇದನ್ನು ಒಟ್ಟಿಗೆ ಒಪ್ಪಿಕೊಳ್ಳಬೇಕು, ಏಕೆಂದರೆ ಅವುಗಳಲ್ಲಿ ಐದು ಅದರ ಮೇಲೆ ಒಲವು ತೋರುವ ಮೂಲಕ ಮಾತ್ರ ಅವರು ಬಾಗಿಲು ತೆರೆಯಬಹುದು. ಬೆಕ್ಕುಗಳಲ್ಲಿ ಒಂದು ಶ್ರೋಡಿಂಗರ್ನ ಬೆಕ್ಕು ಮತ್ತು ಇತರ ಬೆಕ್ಕುಗಳು ಅವನ ನಿರ್ಧಾರದ ಬಗ್ಗೆ ತಿಳಿದಿಲ್ಲದಿದ್ದರೆ, ಪ್ರಶ್ನೆ ಉದ್ಭವಿಸುತ್ತದೆ: "ಅವರು ಇದನ್ನು ಹೇಗೆ ಮಾಡಬಹುದು?"

ಈ ಲೇಖನದಲ್ಲಿ, ವಿತರಣಾ ವ್ಯವಸ್ಥೆಗಳ ಪ್ರಪಂಚದ ಸೈದ್ಧಾಂತಿಕ ಅಂಶ ಮತ್ತು ಅವರ ಕೆಲಸದ ತತ್ವಗಳ ಬಗ್ಗೆ ನಾನು ಸರಳ ಪದಗಳಲ್ಲಿ ಹೇಳುತ್ತೇನೆ. ಮತ್ತು ಮೇಲ್ನೋಟಕ್ಕೆ Paxos'a ಆಧಾರವಾಗಿರುವ ಮುಖ್ಯ ಕಲ್ಪನೆಯನ್ನು ಪರಿಗಣಿಸಿ.

ಪೆಟ್ಟಿಗೆಯಿಲ್ಲದ ಶ್ರೋಡಿಂಗರ್‌ನ ಬೆಕ್ಕು: ವಿತರಣಾ ವ್ಯವಸ್ಥೆಗಳಲ್ಲಿ ಒಮ್ಮತದ ಸಮಸ್ಯೆ

ಡೆವಲಪರ್‌ಗಳು ಕ್ಲೌಡ್ ಮೂಲಸೌಕರ್ಯಗಳನ್ನು, ವಿವಿಧ ಡೇಟಾಬೇಸ್‌ಗಳನ್ನು ಬಳಸಿದಾಗ, ಹೆಚ್ಚಿನ ಸಂಖ್ಯೆಯ ನೋಡ್‌ಗಳ ಕ್ಲಸ್ಟರ್‌ಗಳಲ್ಲಿ ಕೆಲಸ ಮಾಡುವಾಗ, ಡೇಟಾವು ಸ್ಥಿರವಾಗಿರುತ್ತದೆ, ಸುರಕ್ಷಿತವಾಗಿರುತ್ತದೆ ಮತ್ತು ಯಾವಾಗಲೂ ಲಭ್ಯವಿರುತ್ತದೆ ಎಂದು ಅವರು ವಿಶ್ವಾಸ ಹೊಂದಿದ್ದಾರೆ. ಆದರೆ ಖಾತರಿಗಳು ಎಲ್ಲಿವೆ?

ವಾಸ್ತವವಾಗಿ, ನಾವು ಹೊಂದಿರುವ ಖಾತರಿಗಳು ಪೂರೈಕೆದಾರರ ಖಾತರಿಗಳಾಗಿವೆ. ಅವುಗಳನ್ನು ಈ ರೀತಿಯ ದಸ್ತಾವೇಜನ್ನು ವಿವರಿಸಲಾಗಿದೆ: "ಈ ಸೇವೆಯು ಸಾಕಷ್ಟು ವಿಶ್ವಾಸಾರ್ಹವಾಗಿದೆ, ಇದು ನಿರ್ದಿಷ್ಟ SLA ಅನ್ನು ಹೊಂದಿದೆ, ಚಿಂತಿಸಬೇಡಿ, ನೀವು ನಿರೀಕ್ಷಿಸಿದಂತೆ ಎಲ್ಲವನ್ನೂ ವಿತರಿಸಲಾಗುತ್ತದೆ."

ನಾವು ಉತ್ತಮವಾದದ್ದನ್ನು ನಂಬುತ್ತೇವೆ, ಏಕೆಂದರೆ ದೊಡ್ಡ ಕಂಪನಿಗಳ ಸ್ಮಾರ್ಟ್ ಅಂಕಲ್‌ಗಳು ಎಲ್ಲವೂ ಚೆನ್ನಾಗಿರುತ್ತದೆ ಎಂದು ನಮಗೆ ಭರವಸೆ ನೀಡಿದರು. ನಾವು ಪ್ರಶ್ನೆಯನ್ನು ಕೇಳುವುದಿಲ್ಲ: ಏಕೆ, ವಾಸ್ತವವಾಗಿ, ಇದು ಕೆಲಸ ಮಾಡಬಹುದೇ? ಅಂತಹ ವ್ಯವಸ್ಥೆಗಳ ಸರಿಯಾದ ಕಾರ್ಯಾಚರಣೆಗೆ ಯಾವುದೇ ಔಪಚಾರಿಕ ಸಮರ್ಥನೆ ಇದೆಯೇ?

ನಾನು ಇತ್ತೀಚೆಗೆ ಹೋಗಿದ್ದೆ ಕಂಪ್ಯೂಟಿಂಗ್ ಶಾಲೆಯನ್ನು ವಿತರಿಸಲಾಯಿತು ಮತ್ತು ಈ ಥೀಮ್‌ನಿಂದ ಬಹಳ ಪ್ರೇರಿತವಾಯಿತು. ಶಾಲೆಯಲ್ಲಿನ ಉಪನ್ಯಾಸಗಳು ಕಂಪ್ಯೂಟರ್ ಸಿಸ್ಟಮ್‌ಗಳಿಗೆ ಸಂಬಂಧಿಸಿದ ಎಲ್ಲಕ್ಕಿಂತ ಹೆಚ್ಚಾಗಿ ಗಣಿತದ ವಿಶ್ಲೇಷಣೆಯ ತರಗತಿಗಳಂತೆಯೇ ಇರುತ್ತವೆ. ಆದರೆ ನಾವು ಪ್ರತಿದಿನ ಬಳಸುವ ಪ್ರಮುಖ ಅಲ್ಗಾರಿದಮ್‌ಗಳನ್ನು ಅನುಮಾನಿಸದೆಯೇ ಒಂದು ಸಮಯದಲ್ಲಿ ಸಾಬೀತುಪಡಿಸಲಾಗಿದೆ.

ಹೆಚ್ಚಿನ ಆಧುನಿಕ ವಿತರಣಾ ವ್ಯವಸ್ಥೆಗಳು ಪ್ಯಾಕ್ಸೋಸ್ ಒಮ್ಮತದ ಅಲ್ಗಾರಿದಮ್ ಮತ್ತು ಅದರ ವಿವಿಧ ಮಾರ್ಪಾಡುಗಳನ್ನು ಬಳಸುತ್ತವೆ. ತಂಪಾದ ವಿಷಯವೆಂದರೆ ಸಿಂಧುತ್ವ ಮತ್ತು ತಾತ್ವಿಕವಾಗಿ, ಈ ಅಲ್ಗಾರಿದಮ್ನ ಅಸ್ತಿತ್ವದ ಸಾಧ್ಯತೆಯನ್ನು ಪೆನ್ ಮತ್ತು ಪೇಪರ್ನೊಂದಿಗೆ ಸರಳವಾಗಿ ಸಾಬೀತುಪಡಿಸಬಹುದು. ಅದೇ ಸಮಯದಲ್ಲಿ, ಪ್ರಾಯೋಗಿಕವಾಗಿ, ಅಲ್ಗಾರಿದಮ್ ಅನ್ನು ಮೋಡಗಳಲ್ಲಿ ಬೃಹತ್ ಸಂಖ್ಯೆಯ ನೋಡ್ಗಳಲ್ಲಿ ಕಾರ್ಯನಿರ್ವಹಿಸುವ ದೊಡ್ಡ ವ್ಯವಸ್ಥೆಗಳಲ್ಲಿ ಬಳಸಲಾಗುತ್ತದೆ.

ಮುಂದೆ ಏನು ಚರ್ಚಿಸಲಾಗುವುದು ಎಂಬುದರ ಬೆಳಕಿನ ವಿವರಣೆ: ಎರಡು ಜನರಲ್ಗಳ ಸಮಸ್ಯೆಬೆಚ್ಚಗಾಗುವುದನ್ನು ನೋಡೋಣ ಎರಡು ಜನರಲ್ಗಳ ಕಾರ್ಯ.

ನಮಗೆ ಎರಡು ಸೈನ್ಯಗಳಿವೆ - ಕೆಂಪು ಮತ್ತು ಬಿಳಿ. ಮುತ್ತಿಗೆ ಹಾಕಿದ ನಗರದಲ್ಲಿ ಬಿಳಿಯ ಪಡೆಗಳು ನೆಲೆಗೊಂಡಿವೆ. ಜನರಲ್‌ಗಳು A1 ಮತ್ತು A2 ನೇತೃತ್ವದ ಕೆಂಪು ಪಡೆಗಳು ನಗರದ ಎರಡು ಬದಿಗಳಲ್ಲಿವೆ. ಬಿಳಿ ನಗರದ ಮೇಲೆ ದಾಳಿ ಮಾಡಿ ಗೆಲ್ಲುವುದು ರೆಡ್‌ಹೆಡ್‌ಗಳ ಕಾರ್ಯವಾಗಿದೆ. ಆದಾಗ್ಯೂ, ಪ್ರತಿ ಕೆಂಪು ಕೂದಲಿನ ಜನರಲ್ನ ಸೈನ್ಯವು ಪ್ರತ್ಯೇಕವಾಗಿ ಬಿಳಿಯರ ಸೈನ್ಯಕ್ಕಿಂತ ಚಿಕ್ಕದಾಗಿದೆ.

ಪೆಟ್ಟಿಗೆಯಿಲ್ಲದ ಶ್ರೋಡಿಂಗರ್‌ನ ಬೆಕ್ಕು: ವಿತರಣಾ ವ್ಯವಸ್ಥೆಗಳಲ್ಲಿ ಒಮ್ಮತದ ಸಮಸ್ಯೆ

ರೆಡ್‌ಹೆಡ್‌ಗಳಿಗೆ ವಿಜಯದ ಪರಿಸ್ಥಿತಿಗಳು: ಬಿಳಿಯರ ಮೇಲೆ ಸಂಖ್ಯಾತ್ಮಕ ಪ್ರಯೋಜನವನ್ನು ಹೊಂದಲು ಎರಡೂ ಜನರಲ್‌ಗಳು ಒಂದೇ ಸಮಯದಲ್ಲಿ ದಾಳಿ ಮಾಡಬೇಕು. ಇದನ್ನು ಮಾಡಲು, ಜನರಲ್ಗಳು A1 ಮತ್ತು A2 ಪರಸ್ಪರ ಒಪ್ಪಿಕೊಳ್ಳಬೇಕು. ಎಲ್ಲರೂ ಪ್ರತ್ಯೇಕವಾಗಿ ದಾಳಿ ಮಾಡಿದರೆ, ಕೆಂಪು ತಲೆಗಳು ಕಳೆದುಕೊಳ್ಳುತ್ತವೆ.

ಮಾತುಕತೆ ನಡೆಸಲು, ಜನರಲ್‌ಗಳು A1 ಮತ್ತು A2 ಬಿಳಿ ನಗರದ ಪ್ರದೇಶದ ಮೂಲಕ ಪರಸ್ಪರ ಸಂದೇಶವಾಹಕರನ್ನು ಕಳುಹಿಸಬಹುದು. ಮೆಸೆಂಜರ್ ಯಶಸ್ವಿಯಾಗಿ ಮಿತ್ರ ಜನರಲ್ ಅನ್ನು ತಲುಪಬಹುದು ಅಥವಾ ಶತ್ರುಗಳಿಂದ ಅಡ್ಡಿಪಡಿಸಬಹುದು. ಪ್ರಶ್ನೆ: ಕೆಂಪು ಕೂದಲಿನ ಜನರಲ್‌ಗಳ ನಡುವೆ ಅಂತಹ ಸಂವಹನಗಳ ಅನುಕ್ರಮವಿದೆಯೇ (A1 ನಿಂದ A2 ಗೆ ಮತ್ತು ಪ್ರತಿಯಾಗಿ A2 ನಿಂದ A1 ಗೆ ಸಂದೇಶವಾಹಕರನ್ನು ಕಳುಹಿಸುವ ಅನುಕ್ರಮ), ಇದರಲ್ಲಿ ಅವರು ಗಂಟೆ X ನಲ್ಲಿ ದಾಳಿಯನ್ನು ಒಪ್ಪಿಕೊಳ್ಳುವ ಭರವಸೆ ಇದೆ. ಇಲ್ಲಿ, ಗ್ಯಾರಂಟಿಗಳ ಮೂಲಕ, ಎರಡೂ ಜನರಲ್‌ಗಳು ನಿಸ್ಸಂದಿಗ್ಧವಾದ ದೃಢೀಕರಣವನ್ನು ಹೊಂದಿರುತ್ತಾರೆ ಎಂದು ತಿಳಿಯಲಾಗಿದೆ ಮಿತ್ರ (ಮತ್ತೊಂದು ಜನರಲ್) ನಿಗದಿತ ಸಮಯ X ನಲ್ಲಿ ನಿಖರವಾಗಿ ದಾಳಿ ಮಾಡುತ್ತಾರೆ.

A1 ಸಂದೇಶವಾಹಕವನ್ನು A2 ಗೆ ಕಳುಹಿಸುತ್ತದೆ ಎಂದು ಭಾವಿಸೋಣ: "ಇಂದು ಮಧ್ಯರಾತ್ರಿ ದಾಳಿ ಮಾಡೋಣ!". ಜನರಲ್ A1 ನಿಂದ ದೃಢೀಕರಣವಿಲ್ಲದೆ ಜನರಲ್ A2 ದಾಳಿ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ. A1 ರ ಸಂದೇಶವಾಹಕವು ತಲುಪಿದ್ದರೆ, ಸಾಮಾನ್ಯ A2 ಸಂದೇಶದೊಂದಿಗೆ ದೃಢೀಕರಣವನ್ನು ಕಳುಹಿಸುತ್ತದೆ: "ಹೌದು, ಇಂದು ಬಿಳಿಯರನ್ನು ಭರ್ತಿ ಮಾಡೋಣ." ಆದರೆ ಈಗ ಜನರಲ್ A2 ಗೆ ತನ್ನ ಮೆಸೆಂಜರ್ ತಲುಪಿದ್ದಾರೋ ಇಲ್ಲವೋ ಗೊತ್ತಿಲ್ಲ, ದಾಳಿ ಏಕಕಾಲದಲ್ಲಿ ಆಗಲಿದೆಯೇ ಎಂಬುದಕ್ಕೆ ಯಾವುದೇ ಗ್ಯಾರಂಟಿ ಇಲ್ಲ. ಈಗ ಜನರಲ್ A2 ಗೆ ಮತ್ತೊಮ್ಮೆ ದೃಢೀಕರಣದ ಅಗತ್ಯವಿದೆ.

ನಾವು ಅವರ ಸಂವಹನವನ್ನು ಮತ್ತಷ್ಟು ವಿವರಿಸಿದರೆ, ಅದು ಈ ಕೆಳಗಿನವುಗಳನ್ನು ತಿರುಗಿಸುತ್ತದೆ: ಎಷ್ಟೇ ಸಂದೇಶ ವಿನಿಮಯ ಚಕ್ರಗಳು ಇದ್ದರೂ, ಅವರ ಸಂದೇಶಗಳನ್ನು ಸ್ವೀಕರಿಸಲಾಗಿದೆ ಎಂದು ಎರಡೂ ಜನರಲ್‌ಗಳಿಗೆ ಖಾತರಿ ನೀಡಲು ಯಾವುದೇ ಮಾರ್ಗವಿಲ್ಲ (ಎರಡೂ ಸಂದೇಶವಾಹಕರನ್ನು ತಡೆಹಿಡಿಯಬಹುದು ಎಂದು ಊಹಿಸಿ).

ಎರಡು ಜನರಲ್‌ಗಳ ಸಮಸ್ಯೆಯು ಅತ್ಯಂತ ಸರಳವಾದ ವಿತರಣಾ ವ್ಯವಸ್ಥೆಯ ಉತ್ತಮ ವಿವರಣೆಯಾಗಿದೆ, ಅಲ್ಲಿ ವಿಶ್ವಾಸಾರ್ಹವಲ್ಲದ ಸಂವಹನದೊಂದಿಗೆ ಎರಡು ನೋಡ್‌ಗಳಿವೆ. ಆದ್ದರಿಂದ ಅವುಗಳನ್ನು ಸಿಂಕ್ರೊನೈಸ್ ಮಾಡಲಾಗಿದೆ ಎಂಬ 100% ಗ್ಯಾರಂಟಿ ನಮಗೆ ಇಲ್ಲ. ಇದೇ ರೀತಿಯ ಸಮಸ್ಯೆಗಳ ಬಗ್ಗೆ ನಂತರ ಲೇಖನದಲ್ಲಿ ದೊಡ್ಡ ಪ್ರಮಾಣದಲ್ಲಿ ಮಾತ್ರ.

ವಿತರಣಾ ವ್ಯವಸ್ಥೆಗಳ ಪರಿಕಲ್ಪನೆಯನ್ನು ಪರಿಚಯಿಸಲಾಗುತ್ತಿದೆ

ವಿತರಣೆ ವ್ಯವಸ್ಥೆಯು ಸಂದೇಶಗಳನ್ನು ವಿನಿಮಯ ಮಾಡಿಕೊಳ್ಳುವ ಕಂಪ್ಯೂಟರ್‌ಗಳ ಗುಂಪಾಗಿದೆ (ಇನ್ನು ಮುಂದೆ ನೋಡ್‌ಗಳು ಎಂದು ಉಲ್ಲೇಖಿಸಲಾಗುತ್ತದೆ). ಪ್ರತಿಯೊಂದು ನೋಡ್ ಕೆಲವು ಸ್ವಾಯತ್ತ ಘಟಕವಾಗಿದೆ. ಒಂದು ನೋಡ್ ತನ್ನದೇ ಆದ ಕಾರ್ಯಗಳನ್ನು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಬಹುದು, ಆದರೆ ಇತರ ನೋಡ್‌ಗಳೊಂದಿಗೆ ಸಂವಹನ ನಡೆಸಲು, ಅದು ಸಂದೇಶಗಳನ್ನು ಕಳುಹಿಸುವ ಮತ್ತು ಸ್ವೀಕರಿಸುವ ಅಗತ್ಯವಿದೆ.

ಸಂದೇಶಗಳನ್ನು ನಿರ್ದಿಷ್ಟವಾಗಿ ಹೇಗೆ ಕಾರ್ಯಗತಗೊಳಿಸಲಾಗುತ್ತದೆ, ಯಾವ ಪ್ರೋಟೋಕಾಲ್‌ಗಳನ್ನು ಬಳಸಲಾಗುತ್ತದೆ - ಇದು ಈ ಸಂದರ್ಭದಲ್ಲಿ ನಮಗೆ ಆಸಕ್ತಿಯಿಲ್ಲ. ವಿತರಿಸಿದ ವ್ಯವಸ್ಥೆಯ ನೋಡ್‌ಗಳು ಸಂದೇಶಗಳನ್ನು ಕಳುಹಿಸುವ ಮೂಲಕ ಪರಸ್ಪರ ಡೇಟಾವನ್ನು ವಿನಿಮಯ ಮಾಡಿಕೊಳ್ಳುವುದು ಮುಖ್ಯ.

ವ್ಯಾಖ್ಯಾನವು ತುಂಬಾ ಜಟಿಲವಾಗಿದೆ ಎಂದು ತೋರುತ್ತಿಲ್ಲ, ಆದರೆ ವಿತರಿಸಿದ ವ್ಯವಸ್ಥೆಯು ನಮಗೆ ಮುಖ್ಯವಾದ ಹಲವಾರು ಗುಣಲಕ್ಷಣಗಳನ್ನು ಹೊಂದಿದೆ ಎಂಬುದನ್ನು ನೆನಪಿನಲ್ಲಿಡಿ.

ವಿತರಿಸಿದ ವ್ಯವಸ್ಥೆಗಳ ಗುಣಲಕ್ಷಣಗಳು

  1. ಏಕಕಾಲೀನತೆ - ವ್ಯವಸ್ಥೆಯಲ್ಲಿ ಏಕಕಾಲಿಕ ಅಥವಾ ಸ್ಪರ್ಧಾತ್ಮಕ ಘಟನೆಗಳು ಸಂಭವಿಸುವ ಸಾಧ್ಯತೆ. ಇದಲ್ಲದೆ, ಈ ಘಟನೆಗಳು ಸಂಭವಿಸುವ ಸ್ಪಷ್ಟ ಕ್ರಮವನ್ನು ನಾವು ಹೊಂದುವವರೆಗೆ ಎರಡು ವಿಭಿನ್ನ ನೋಡ್‌ಗಳಲ್ಲಿ ಸಂಭವಿಸಿದ ಘಟನೆಗಳು ಸಂಭಾವ್ಯವಾಗಿ ಏಕಕಾಲದಲ್ಲಿ ಸಂಭವಿಸುತ್ತವೆ ಎಂದು ನಾವು ಪರಿಗಣಿಸುತ್ತೇವೆ. ಮತ್ತು ಸಾಮಾನ್ಯವಾಗಿ ನಾವು ಮಾಡುವುದಿಲ್ಲ.
  2. ಜಾಗತಿಕ ಗಡಿಯಾರವಿಲ್ಲ. ಜಾಗತಿಕ ಗಡಿಯಾರದ ಕೊರತೆಯಿಂದಾಗಿ ನಾವು ಘಟನೆಗಳ ಸ್ಪಷ್ಟ ಕ್ರಮವನ್ನು ಹೊಂದಿಲ್ಲ. ಜನರ ಸಾಮಾನ್ಯ ಜಗತ್ತಿನಲ್ಲಿ, ನಾವು ಸಂಪೂರ್ಣವಾಗಿ ಗಂಟೆಗಳು ಮತ್ತು ಸಮಯವನ್ನು ಹೊಂದಿದ್ದೇವೆ ಎಂಬ ಅಂಶಕ್ಕೆ ನಾವು ಬಳಸಲಾಗುತ್ತದೆ. ವಿತರಣಾ ವ್ಯವಸ್ಥೆಗಳಿಗೆ ಬಂದಾಗ ಎಲ್ಲವೂ ಬದಲಾಗುತ್ತದೆ. ಅಲ್ಟ್ರಾ-ನಿಖರವಾದ ಪರಮಾಣು ಗಡಿಯಾರಗಳು ಡ್ರಿಫ್ಟ್ ಅನ್ನು ಹೊಂದಿವೆ, ಮತ್ತು ಎರಡು ಘಟನೆಗಳಲ್ಲಿ ಯಾವುದು ಮೊದಲು ಸಂಭವಿಸಿದೆ ಎಂದು ನಾವು ಹೇಳಲಾಗದ ಸಂದರ್ಭಗಳಿವೆ. ಆದ್ದರಿಂದ, ನಾವು ಸಮಯವನ್ನು ಅವಲಂಬಿಸಲಾಗುವುದಿಲ್ಲ.
  3. ಸಿಸ್ಟಮ್ ನೋಡ್ಗಳ ಸ್ವತಂತ್ರ ವೈಫಲ್ಯ. ಇನ್ನೊಂದು ಸಮಸ್ಯೆ ಇದೆ: ನಮ್ಮ ನೋಡ್‌ಗಳು ಶಾಶ್ವತವಲ್ಲದ ಕಾರಣ ಏನಾದರೂ ತಪ್ಪಾಗಬಹುದು. ಹಾರ್ಡ್ ಡ್ರೈವ್ ವಿಫಲವಾಗಬಹುದು, ಕ್ಲೌಡ್‌ನಲ್ಲಿರುವ ವರ್ಚುವಲ್ ಯಂತ್ರವು ರೀಬೂಟ್ ಆಗಬಹುದು, ನೆಟ್‌ವರ್ಕ್ ಮಿಟುಕಿಸಬಹುದು ಮತ್ತು ಸಂದೇಶಗಳು ಕಳೆದುಹೋಗಬಹುದು. ಇದಲ್ಲದೆ, ನೋಡ್ಗಳು ಕೆಲಸ ಮಾಡುವಾಗ ಸಂದರ್ಭಗಳು ಇವೆ, ಆದರೆ ಅದೇ ಸಮಯದಲ್ಲಿ ಅವರು ಸಿಸ್ಟಮ್ ವಿರುದ್ಧ ಕೆಲಸ ಮಾಡುತ್ತಾರೆ. ಸಮಸ್ಯೆಗಳ ಕೊನೆಯ ವರ್ಗವು ಪ್ರತ್ಯೇಕ ಹೆಸರನ್ನು ಸಹ ಪಡೆದುಕೊಂಡಿದೆ: ಸಮಸ್ಯೆ ಬೈಜಾಂಟೈನ್ ಜನರಲ್ಗಳು. ಅಂತಹ ಸಮಸ್ಯೆಯೊಂದಿಗೆ ವಿತರಣಾ ವ್ಯವಸ್ಥೆಯ ಅತ್ಯಂತ ಜನಪ್ರಿಯ ಉದಾಹರಣೆಯೆಂದರೆ ಬ್ಲಾಕ್ಚೈನ್. ಆದರೆ ಇಂದು ನಾವು ಈ ವಿಶೇಷ ವರ್ಗದ ಸಮಸ್ಯೆಗಳನ್ನು ಪರಿಗಣಿಸುವುದಿಲ್ಲ. ಕೇವಲ ಒಂದು ಅಥವಾ ಹೆಚ್ಚಿನ ನೋಡ್‌ಗಳು ವಿಫಲಗೊಳ್ಳುವ ಸಂದರ್ಭಗಳಲ್ಲಿ ನಾವು ಆಸಕ್ತಿ ಹೊಂದಿರುತ್ತೇವೆ.
  4. ನೋಡ್‌ಗಳ ನಡುವೆ ಸಂವಹನ ಮಾದರಿಗಳು (ಸಂದೇಶ ಕಳುಹಿಸುವಿಕೆಯ ಮಾದರಿಗಳು).. ಸಂದೇಶಗಳನ್ನು ವಿನಿಮಯ ಮಾಡಿಕೊಳ್ಳುವ ಮೂಲಕ ನೋಡ್‌ಗಳು ಸಂವಹನ ನಡೆಸುತ್ತವೆ ಎಂದು ನಾವು ಈಗಾಗಲೇ ಕಂಡುಕೊಂಡಿದ್ದೇವೆ. ಎರಡು ಪ್ರಸಿದ್ಧ ಸಂದೇಶ ಕಳುಹಿಸುವಿಕೆಯ ಮಾದರಿಗಳಿವೆ: ಸಿಂಕ್ರೊನಸ್ ಮತ್ತು ಅಸಮಕಾಲಿಕ.

ವಿತರಿಸಿದ ವ್ಯವಸ್ಥೆಗಳಲ್ಲಿ ನೋಡ್ಗಳ ನಡುವಿನ ಸಂವಹನದ ಮಾದರಿಗಳು

ಸಿಂಕ್ರೊನಸ್ ಮಾದರಿ - ಸಂದೇಶವು ಒಂದು ನೋಡ್‌ನಿಂದ ಇನ್ನೊಂದಕ್ಕೆ ತಲುಪಲು ಖಾತರಿಪಡಿಸುವ ಸಮಯದ ಪರಿಮಿತವಾದ ಡೆಲ್ಟಾ ಇದೆ ಎಂದು ನಮಗೆ ಖಚಿತವಾಗಿ ತಿಳಿದಿದೆ. ಈ ಸಮಯ ಮುಗಿದಿದ್ದರೆ ಮತ್ತು ಸಂದೇಶವು ಬರದಿದ್ದರೆ, ನೋಡ್ ವಿಫಲವಾಗಿದೆ ಎಂದು ನಾವು ಸುರಕ್ಷಿತವಾಗಿ ಹೇಳಬಹುದು. ಅಂತಹ ಮಾದರಿಯಲ್ಲಿ, ನಾವು ಊಹಿಸಬಹುದಾದ ಕಾಯುವ ಸಮಯವನ್ನು ಹೊಂದಿದ್ದೇವೆ.

ಅಸಮಕಾಲಿಕ ಮಾದರಿ - ಅಸಮಕಾಲಿಕ ಮಾದರಿಗಳಲ್ಲಿ, ಕಾಯುವ ಸಮಯವು ಸೀಮಿತವಾಗಿದೆ ಎಂದು ನಾವು ಭಾವಿಸುತ್ತೇವೆ, ಆದರೆ ನೋಡ್ ವಿಫಲವಾಗಿದೆ ಎಂದು ಖಾತರಿಪಡಿಸುವ ಸಮಯದ ಡೆಲ್ಟಾ ಇಲ್ಲ. ಆ. ನೋಡ್‌ನಿಂದ ಸಂದೇಶಕ್ಕಾಗಿ ಕಾಯುವ ಸಮಯವು ನಿರಂಕುಶವಾಗಿ ದೀರ್ಘವಾಗಿರುತ್ತದೆ. ಇದು ಒಂದು ಪ್ರಮುಖ ವ್ಯಾಖ್ಯಾನವಾಗಿದೆ, ಮತ್ತು ನಾವು ಅದರ ಬಗ್ಗೆ ಮತ್ತಷ್ಟು ಮಾತನಾಡುತ್ತೇವೆ.

ವಿತರಣಾ ವ್ಯವಸ್ಥೆಗಳಲ್ಲಿ ಒಮ್ಮತದ ಪರಿಕಲ್ಪನೆ

ಒಮ್ಮತದ ಪರಿಕಲ್ಪನೆಯನ್ನು ಔಪಚಾರಿಕವಾಗಿ ವ್ಯಾಖ್ಯಾನಿಸುವ ಮೊದಲು, ನಮಗೆ ಅಗತ್ಯವಿರುವ ಪರಿಸ್ಥಿತಿಯ ಉದಾಹರಣೆಯನ್ನು ಪರಿಗಣಿಸಿ, ಅವುಗಳೆಂದರೆ - ರಾಜ್ಯ ಯಂತ್ರ ಪ್ರತಿಕೃತಿ.

ನಾವು ಕೆಲವು ವಿತರಿಸಿದ ಲಾಗ್ ಅನ್ನು ಹೊಂದಿದ್ದೇವೆ. ಇದು ಸ್ಥಿರವಾಗಿರಬೇಕು ಮತ್ತು ವಿತರಿಸಿದ ಸಿಸ್ಟಮ್‌ನ ಎಲ್ಲಾ ನೋಡ್‌ಗಳಲ್ಲಿ ಒಂದೇ ಡೇಟಾವನ್ನು ಹೊಂದಿರಬೇಕೆಂದು ನಾವು ಬಯಸುತ್ತೇವೆ. ನೋಡ್‌ಗಳಲ್ಲಿ ಒಂದು ಅದು ಲಾಗ್‌ಗೆ ಬರೆಯಲು ಹೊರಟಿರುವ ಹೊಸ ಮೌಲ್ಯವನ್ನು ಕಲಿತಾಗ, ಅದರ ಕಾರ್ಯವು ಈ ಮೌಲ್ಯವನ್ನು ಎಲ್ಲಾ ಇತರ ನೋಡ್‌ಗಳಿಗೆ ನೀಡುವುದು, ಇದರಿಂದಾಗಿ ಲಾಗ್ ಅನ್ನು ಎಲ್ಲಾ ನೋಡ್‌ಗಳಲ್ಲಿ ನವೀಕರಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಸಿಸ್ಟಮ್ ಹೊಸ ಸ್ಥಿರ ಸ್ಥಿತಿಗೆ ಬದಲಾಗುತ್ತದೆ. ಅದೇ ಸಮಯದಲ್ಲಿ, ನೋಡ್‌ಗಳು ತಮ್ಮ ನಡುವೆ ಒಪ್ಪಿಕೊಳ್ಳುವುದು ಮುಖ್ಯ: ಪ್ರಸ್ತಾವಿತ ಹೊಸ ಮೌಲ್ಯವು ಸರಿಯಾಗಿದೆ ಎಂದು ಎಲ್ಲಾ ನೋಡ್‌ಗಳು ಒಪ್ಪಿಕೊಳ್ಳುತ್ತವೆ, ಎಲ್ಲಾ ನೋಡ್‌ಗಳು ಈ ಮೌಲ್ಯವನ್ನು ಸ್ವೀಕರಿಸುತ್ತವೆ ಮತ್ತು ಈ ಸಂದರ್ಭದಲ್ಲಿ ಮಾತ್ರ ಪ್ರತಿಯೊಬ್ಬರೂ ಹೊಸ ಮೌಲ್ಯವನ್ನು ಲಾಗ್ ಮಾಡಬಹುದು.

ಬೇರೆ ರೀತಿಯಲ್ಲಿ ಹೇಳುವುದಾದರೆ: ಯಾವುದೇ ನೋಡ್‌ಗಳು ತಾವು ಹೆಚ್ಚು ನವೀಕೃತ ಮಾಹಿತಿಯನ್ನು ಹೊಂದಿದ್ದೇವೆ ಎಂದು ಆಕ್ಷೇಪಿಸಿಲ್ಲ ಮತ್ತು ಪ್ರಸ್ತಾವಿತ ಮೌಲ್ಯವು ತಪ್ಪಾಗಿದೆ. ನೋಡ್‌ಗಳ ನಡುವಿನ ಒಪ್ಪಂದ ಮತ್ತು ಒಂದೇ ಸರಿಯಾದ ಸ್ವೀಕೃತ ಮೌಲ್ಯದ ಮೇಲಿನ ಒಪ್ಪಂದವು ವಿತರಿಸಿದ ವ್ಯವಸ್ಥೆಯಲ್ಲಿನ ಒಮ್ಮತವಾಗಿದೆ. ಮುಂದೆ, ವಿತರಣಾ ವ್ಯವಸ್ಥೆಯು ಗ್ಯಾರಂಟಿಯೊಂದಿಗೆ ಒಮ್ಮತವನ್ನು ತಲುಪಲು ಅನುಮತಿಸುವ ಕ್ರಮಾವಳಿಗಳ ಬಗ್ಗೆ ನಾವು ಮಾತನಾಡುತ್ತೇವೆ.
ಪೆಟ್ಟಿಗೆಯಿಲ್ಲದ ಶ್ರೋಡಿಂಗರ್‌ನ ಬೆಕ್ಕು: ವಿತರಣಾ ವ್ಯವಸ್ಥೆಗಳಲ್ಲಿ ಒಮ್ಮತದ ಸಮಸ್ಯೆ
ಹೆಚ್ಚು ಔಪಚಾರಿಕವಾಗಿ, ನಾವು ಒಮ್ಮತದ ಅಲ್ಗಾರಿದಮ್ (ಅಥವಾ ಸರಳವಾಗಿ ಒಮ್ಮತದ ಅಲ್ಗಾರಿದಮ್) ಅನ್ನು ರಾಜ್ಯ A ನಿಂದ ರಾಜ್ಯ B ಗೆ ವಿತರಿಸಿದ ವ್ಯವಸ್ಥೆಯನ್ನು ತೆಗೆದುಕೊಳ್ಳುವ ಕೆಲವು ಕಾರ್ಯವೆಂದು ವ್ಯಾಖ್ಯಾನಿಸಬಹುದು. ಇದಲ್ಲದೆ, ಈ ಸ್ಥಿತಿಯನ್ನು ಎಲ್ಲಾ ನೋಡ್‌ಗಳು ಸ್ವೀಕರಿಸುತ್ತವೆ ಮತ್ತು ಎಲ್ಲಾ ನೋಡ್‌ಗಳು ಅದನ್ನು ದೃಢೀಕರಿಸಬಹುದು. ಅದು ಬದಲಾದಂತೆ, ಈ ಕಾರ್ಯವು ಮೊದಲ ನೋಟದಲ್ಲಿ ತೋರುವಷ್ಟು ಕ್ಷುಲ್ಲಕವಲ್ಲ.

ಒಮ್ಮತದ ಅಲ್ಗಾರಿದಮ್‌ನ ಗುಣಲಕ್ಷಣಗಳು

ವ್ಯವಸ್ಥೆಯು ಅಸ್ತಿತ್ವದಲ್ಲಿರಲು ಮತ್ತು ರಾಜ್ಯದಿಂದ ರಾಜ್ಯಕ್ಕೆ ಪರಿವರ್ತನೆಯಲ್ಲಿ ಸ್ವಲ್ಪ ಪ್ರಗತಿಯನ್ನು ಹೊಂದಲು ಒಮ್ಮತದ ಅಲ್ಗಾರಿದಮ್ ಮೂರು ಗುಣಲಕ್ಷಣಗಳನ್ನು ಹೊಂದಿರಬೇಕು:

  1. ಒಪ್ಪಂದ - ಸರಿಯಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುವ ಎಲ್ಲಾ ನೋಡ್‌ಗಳು ಒಂದೇ ಮೌಲ್ಯವನ್ನು ತೆಗೆದುಕೊಳ್ಳಬೇಕು (ಲೇಖನಗಳಲ್ಲಿ ಈ ಆಸ್ತಿಯನ್ನು ಸುರಕ್ಷತಾ ಆಸ್ತಿಯಾಗಿಯೂ ಕಾಣಬಹುದು). ಈಗ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತಿರುವ ಎಲ್ಲಾ ನೋಡ್‌ಗಳು (ಕ್ರಮದಲ್ಲಿಲ್ಲ ಮತ್ತು ಉಳಿದವುಗಳೊಂದಿಗೆ ಸಂಪರ್ಕವನ್ನು ಕಳೆದುಕೊಂಡಿಲ್ಲ) ಒಪ್ಪಂದಕ್ಕೆ ಬರಬೇಕು ಮತ್ತು ಕೆಲವು ಅಂತಿಮ ಸಾಮಾನ್ಯ ಮೌಲ್ಯವನ್ನು ಸ್ವೀಕರಿಸಬೇಕು.

    ನಾವು ಪರಿಗಣಿಸುತ್ತಿರುವ ವಿತರಣಾ ವ್ಯವಸ್ಥೆಯಲ್ಲಿನ ನೋಡ್‌ಗಳು ಒಪ್ಪಿಕೊಳ್ಳಲು ಬಯಸುತ್ತವೆ ಎಂಬುದನ್ನು ಇಲ್ಲಿ ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದು ಮುಖ್ಯವಾಗಿದೆ. ಅಂದರೆ, ನಾವು ಈಗ ಏನಾದರೂ ವಿಫಲಗೊಳ್ಳುವ ವ್ಯವಸ್ಥೆಗಳ ಬಗ್ಗೆ ಮಾತನಾಡುತ್ತಿದ್ದೇವೆ (ಉದಾಹರಣೆಗೆ, ಕೆಲವು ನೋಡ್ ವಿಫಲಗೊಳ್ಳುತ್ತದೆ), ಆದರೆ ಈ ವ್ಯವಸ್ಥೆಯಲ್ಲಿ ಖಂಡಿತವಾಗಿಯೂ ಇತರರ ವಿರುದ್ಧ ಉದ್ದೇಶಪೂರ್ವಕವಾಗಿ ಕೆಲಸ ಮಾಡುವ ಯಾವುದೇ ನೋಡ್‌ಗಳಿಲ್ಲ (ಬೈಜಾಂಟೈನ್ ಜನರಲ್‌ಗಳ ಕಾರ್ಯ). ಈ ಆಸ್ತಿಯಿಂದಾಗಿ, ವ್ಯವಸ್ಥೆಯು ಸ್ಥಿರವಾಗಿರುತ್ತದೆ.

  2. ಸಮಗ್ರತೆ - ಎಲ್ಲಾ ಸರಿಯಾಗಿ ಕೆಲಸ ಮಾಡುವ ನೋಡ್‌ಗಳು ಒಂದೇ ಮೌಲ್ಯವನ್ನು ನೀಡಿದರೆ v, ಆದ್ದರಿಂದ ಸರಿಯಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುವ ಪ್ರತಿಯೊಂದು ನೋಡ್ ಈ ಮೌಲ್ಯವನ್ನು ಒಪ್ಪಿಕೊಳ್ಳಬೇಕು v.
  3. ಮುಕ್ತಾಯ - ಎಲ್ಲಾ ಸರಿಯಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುವ ನೋಡ್‌ಗಳು ಅಂತಿಮವಾಗಿ ಕೆಲವು ಮೌಲ್ಯವನ್ನು (ಜೀವಂತ ಆಸ್ತಿ) ತೆಗೆದುಕೊಳ್ಳುತ್ತವೆ, ಇದು ಅಲ್ಗಾರಿದಮ್ ಸಿಸ್ಟಮ್‌ನಲ್ಲಿ ಪ್ರಗತಿ ಹೊಂದಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ. ಪ್ರತಿಯೊಬ್ಬ ವ್ಯಕ್ತಿಯು ಸರಿಯಾಗಿ ಕೆಲಸ ಮಾಡುವ ನೋಡ್ ಬೇಗ ಅಥವಾ ನಂತರ ಅಂತಿಮ ಮೌಲ್ಯವನ್ನು ಸ್ವೀಕರಿಸಬೇಕು ಮತ್ತು ಅದನ್ನು ದೃಢೀಕರಿಸಬೇಕು: "ನನಗೆ, ಈ ಮೌಲ್ಯವು ನಿಜವಾಗಿದೆ, ನಾನು ಇಡೀ ಸಿಸ್ಟಮ್ ಅನ್ನು ಒಪ್ಪುತ್ತೇನೆ."

ಒಮ್ಮತದ ಅಲ್ಗಾರಿದಮ್ ಹೇಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ ಎಂಬುದರ ಉದಾಹರಣೆ

ಅಲ್ಗಾರಿದಮ್‌ನ ಗುಣಲಕ್ಷಣಗಳು ಸಂಪೂರ್ಣವಾಗಿ ಸ್ಪಷ್ಟವಾಗಿಲ್ಲದಿರಬಹುದು. ಆದ್ದರಿಂದ, ಸಿಂಕ್ರೊನಸ್ ಮೆಸೇಜಿಂಗ್ ಮಾದರಿಯೊಂದಿಗೆ ಸಿಸ್ಟಮ್‌ನಲ್ಲಿ ಸರಳವಾದ ಒಮ್ಮತದ ಅಲ್ಗಾರಿದಮ್ ಯಾವ ಹಂತಗಳಲ್ಲಿ ಹಾದುಹೋಗುತ್ತದೆ ಎಂಬುದನ್ನು ನಾವು ಉದಾಹರಣೆಯೊಂದಿಗೆ ವಿವರಿಸುತ್ತೇವೆ, ಇದರಲ್ಲಿ ಎಲ್ಲಾ ನೋಡ್‌ಗಳು ನಿರೀಕ್ಷೆಯಂತೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತವೆ, ಸಂದೇಶಗಳು ಕಳೆದುಹೋಗುವುದಿಲ್ಲ ಮತ್ತು ಏನೂ ಒಡೆಯುವುದಿಲ್ಲ (ಇದು ನಿಜವಾಗಿಯೂ ಸಂಭವಿಸುತ್ತದೆಯೇ?).

  1. ಇದು ಎಲ್ಲಾ ಮದುವೆಯ ಪ್ರಸ್ತಾಪದಿಂದ ಪ್ರಾರಂಭವಾಗುತ್ತದೆ (ಪ್ರಪೋಸ್). ಕ್ಲೈಂಟ್ "ನೋಡ್ 1" ಎಂಬ ನೋಡ್‌ಗೆ ಸಂಪರ್ಕಿಸುತ್ತದೆ ಮತ್ತು ವಹಿವಾಟನ್ನು ಪ್ರಾರಂಭಿಸುತ್ತದೆ ಎಂದು ಭಾವಿಸೋಣ, ಹೊಸ ಮೌಲ್ಯವನ್ನು ನೋಡ್‌ಗೆ ರವಾನಿಸುತ್ತದೆ - O. ಇಂದಿನಿಂದ, ನಾವು "ನೋಡ್ 1" ಎಂದು ಕರೆಯುತ್ತೇವೆ. ಪ್ರಸ್ತಾಪಿಸಲು. ಪ್ರಪೋಸರ್ "ನೋಡ್ 1" ಈಗ ಅವರು ತಾಜಾ ಡೇಟಾವನ್ನು ಹೊಂದಿರುವ ಸಂಪೂರ್ಣ ಸಿಸ್ಟಮ್‌ಗೆ ಸೂಚಿಸಬೇಕು ಮತ್ತು ಅವರು ಇತರ ಎಲ್ಲಾ ನೋಡ್‌ಗಳಿಗೆ ಸಂದೇಶಗಳನ್ನು ಕಳುಹಿಸುತ್ತಾರೆ: "ನೋಡ್! ನಾನು "O" ಮೌಲ್ಯವನ್ನು ಸ್ವೀಕರಿಸಿದ್ದೇನೆ ಮತ್ತು ನಾನು ಅದನ್ನು ಬರೆಯಲು ಬಯಸುತ್ತೇನೆ! ನಿಮ್ಮ ಲಾಗ್‌ನಲ್ಲಿ ನೀವು "O" ಅನ್ನು ಸಹ ರೆಕಾರ್ಡ್ ಮಾಡುತ್ತೀರಿ ಎಂಬುದನ್ನು ದಯವಿಟ್ಟು ಖಚಿತಪಡಿಸಿ."

    ಪೆಟ್ಟಿಗೆಯಿಲ್ಲದ ಶ್ರೋಡಿಂಗರ್‌ನ ಬೆಕ್ಕು: ವಿತರಣಾ ವ್ಯವಸ್ಥೆಗಳಲ್ಲಿ ಒಮ್ಮತದ ಸಮಸ್ಯೆ

  2. ಮುಂದಿನ ಹಂತವು ಪ್ರಸ್ತಾವಿತ ಮೌಲ್ಯಕ್ಕೆ (ಮತದಾನ) ಮತದಾನವಾಗಿದೆ. ಇದು ಯಾವುದಕ್ಕಾಗಿ? ಇತರ ನೋಡ್‌ಗಳು ಹೆಚ್ಚು ಇತ್ತೀಚಿನ ಮಾಹಿತಿಯನ್ನು ಪಡೆದಿರಬಹುದು ಮತ್ತು ಅವುಗಳು ಒಂದೇ ವಹಿವಾಟಿನ ಡೇಟಾವನ್ನು ಹೊಂದಿವೆ.

    ಪೆಟ್ಟಿಗೆಯಿಲ್ಲದ ಶ್ರೋಡಿಂಗರ್‌ನ ಬೆಕ್ಕು: ವಿತರಣಾ ವ್ಯವಸ್ಥೆಗಳಲ್ಲಿ ಒಮ್ಮತದ ಸಮಸ್ಯೆ

    ನೋಡ್ "ನೋಡ್ 1" ಅದರ ಪ್ರಸ್ತಾವನೆಯನ್ನು ಕಳುಹಿಸಿದಾಗ, ಇತರ ನೋಡ್‌ಗಳು ಈ ಈವೆಂಟ್‌ನಲ್ಲಿ ಡೇಟಾಗಾಗಿ ತಮ್ಮ ಲಾಗ್‌ಗಳನ್ನು ಪರಿಶೀಲಿಸುತ್ತವೆ. ಯಾವುದೇ ಸಂಘರ್ಷವಿಲ್ಲದಿದ್ದರೆ, ನೋಡ್‌ಗಳು ಪ್ರಕಟಿಸುತ್ತವೆ: “ಹೌದು, ಈ ಈವೆಂಟ್‌ಗಾಗಿ ನನ್ನ ಬಳಿ ಬೇರೆ ಡೇಟಾ ಇಲ್ಲ. 'O' ಮೌಲ್ಯವು ನಮಗೆ ಅರ್ಹವಾದ ಅತ್ಯಂತ ನವೀಕೃತ ಮಾಹಿತಿಯಾಗಿದೆ."

    ಬೇರೆ ಯಾವುದೇ ಸಂದರ್ಭದಲ್ಲಿ, ನೋಡ್‌ಗಳು "ನೋಡ್ 1" ಗೆ ಪ್ರತಿಕ್ರಿಯಿಸಬಹುದು: "ಆಲಿಸಿ! ಈ ವಹಿವಾಟಿನ ಕುರಿತು ನನ್ನ ಬಳಿ ಇತ್ತೀಚಿನ ಡೇಟಾ ಇದೆ. "ಓಹ್" ಅಲ್ಲ, ಆದರೆ ಉತ್ತಮವಾದದ್ದು."

    ಮತದಾನದ ಹಂತದಲ್ಲಿ, ನೋಡ್‌ಗಳು ನಿರ್ಧಾರಕ್ಕೆ ಬರುತ್ತವೆ: ಒಂದೋ ಅವರೆಲ್ಲರೂ ಒಂದೇ ಮೌಲ್ಯವನ್ನು ಸ್ವೀಕರಿಸುತ್ತಾರೆ, ಅಥವಾ ಅವರಲ್ಲಿ ಒಬ್ಬರು ವಿರುದ್ಧವಾಗಿ ಮತ ಚಲಾಯಿಸುತ್ತಾರೆ, ಇದು ಇತ್ತೀಚಿನ ಡೇಟಾವನ್ನು ಹೊಂದಿದೆ ಎಂದು ಸೂಚಿಸುತ್ತದೆ.

  3. ಮತದಾನದ ಸುತ್ತು ಯಶಸ್ವಿಯಾದರೆ ಮತ್ತು ಎಲ್ಲರೂ ಪರವಾಗಿದ್ದರೆ, ವ್ಯವಸ್ಥೆಯು ಹೊಸ ಹಂತಕ್ಕೆ ಚಲಿಸುತ್ತದೆ - ಮೌಲ್ಯದ ಸ್ವೀಕಾರ (ಸ್ವೀಕರಿಸಿ). "ನೋಡ್ 1" ಇತರ ನೋಡ್‌ಗಳಿಂದ ಎಲ್ಲಾ ಪ್ರತಿಕ್ರಿಯೆಗಳನ್ನು ಸಂಗ್ರಹಿಸುತ್ತದೆ ಮತ್ತು ವರದಿ ಮಾಡುತ್ತದೆ: "ಎಲ್ಲರೂ 'O' ಮೌಲ್ಯವನ್ನು ಒಪ್ಪಿಕೊಂಡಿದ್ದಾರೆ! ಈಗ ನಾನು ಅಧಿಕೃತವಾಗಿ "ಓ" ನಮ್ಮ ಹೊಸ ಅರ್ಥ, ಎಲ್ಲರಿಗೂ ಒಂದೇ ಎಂದು ಘೋಷಿಸುತ್ತೇನೆ! ಅದನ್ನು ನಿಮ್ಮ ನೋಟ್‌ಬುಕ್‌ನಲ್ಲಿ ಬರೆಯಿರಿ, ಮರೆಯಬೇಡಿ. ನಿಮ್ಮ ಲಾಗ್‌ಗೆ ಬರೆಯಿರಿ!"

    ಪೆಟ್ಟಿಗೆಯಿಲ್ಲದ ಶ್ರೋಡಿಂಗರ್‌ನ ಬೆಕ್ಕು: ವಿತರಣಾ ವ್ಯವಸ್ಥೆಗಳಲ್ಲಿ ಒಮ್ಮತದ ಸಮಸ್ಯೆ

  4. ಉಳಿದ ನೋಡ್‌ಗಳು ದೃಢೀಕರಣವನ್ನು ಕಳುಹಿಸುತ್ತವೆ (ಸ್ವೀಕರಿಸಲಾಗಿದೆ) ಅವರು "O" ಮೌಲ್ಯವನ್ನು ಬರೆದಿದ್ದಾರೆ, ಈ ಸಮಯದಲ್ಲಿ ಹೊಸದನ್ನು ಸ್ವೀಕರಿಸಲಾಗಿಲ್ಲ (ಒಂದು ರೀತಿಯ ಎರಡು-ಹಂತದ ಬದ್ಧತೆ). ಈ ಮಹತ್ವದ ಘಟನೆಯ ನಂತರ, ವಿತರಿಸಿದ ವಹಿವಾಟು ಪೂರ್ಣಗೊಂಡಿದೆ ಎಂದು ನಾವು ಪರಿಗಣಿಸುತ್ತೇವೆ.
    ಪೆಟ್ಟಿಗೆಯಿಲ್ಲದ ಶ್ರೋಡಿಂಗರ್‌ನ ಬೆಕ್ಕು: ವಿತರಣಾ ವ್ಯವಸ್ಥೆಗಳಲ್ಲಿ ಒಮ್ಮತದ ಸಮಸ್ಯೆ

ಹೀಗಾಗಿ, ಸರಳ ಪ್ರಕರಣದಲ್ಲಿ ಒಮ್ಮತದ ಅಲ್ಗಾರಿದಮ್ ನಾಲ್ಕು ಹಂತಗಳನ್ನು ಒಳಗೊಂಡಿದೆ: ಪ್ರಸ್ತಾಪಿಸಿ, ಮತ (ಮತದಾನ), ಸ್ವೀಕಾರ (ಸ್ವೀಕರಿಸಿ), ಸ್ವೀಕಾರದ ದೃಢೀಕರಣ (ಸ್ವೀಕರಿಸಲಾಗಿದೆ).

ಕೆಲವು ಹಂತದಲ್ಲಿ ನಾವು ಒಪ್ಪಂದವನ್ನು ತಲುಪಲು ಸಾಧ್ಯವಾಗದಿದ್ದರೆ, ಉದ್ದೇಶಿತ ಮೌಲ್ಯವನ್ನು ದೃಢೀಕರಿಸಲು ನಿರಾಕರಿಸಿದ ನೋಡ್‌ಗಳು ಒದಗಿಸಿದ ಮಾಹಿತಿಯನ್ನು ಗಣನೆಗೆ ತೆಗೆದುಕೊಂಡು ಅಲ್ಗಾರಿದಮ್ ಅನ್ನು ಮರುಪ್ರಾರಂಭಿಸಲಾಗುತ್ತದೆ.

ಅಸಮಕಾಲಿಕ ವ್ಯವಸ್ಥೆಯಲ್ಲಿ ಒಮ್ಮತದ ಅಲ್ಗಾರಿದಮ್

ಅದಕ್ಕೂ ಮೊದಲು, ಎಲ್ಲವೂ ಸುಗಮವಾಗಿತ್ತು, ಏಕೆಂದರೆ ಇದು ಸಿಂಕ್ರೊನಸ್ ಸಂದೇಶ ಕಳುಹಿಸುವಿಕೆಯ ಮಾದರಿಯ ಬಗ್ಗೆ. ಆದರೆ ಆಧುನಿಕ ಜಗತ್ತಿನಲ್ಲಿ ನಾವು ಎಲ್ಲವನ್ನೂ ಅಸಮಕಾಲಿಕವಾಗಿ ಮಾಡಲು ಬಳಸುತ್ತೇವೆ ಎಂದು ನಮಗೆ ತಿಳಿದಿದೆ. ಅಸಮಕಾಲಿಕ ಸಂದೇಶ ಕಳುಹಿಸುವಿಕೆಯ ಮಾದರಿಯೊಂದಿಗೆ ಸಿಸ್ಟಮ್‌ನಲ್ಲಿ ಇದೇ ರೀತಿಯ ಅಲ್ಗಾರಿದಮ್ ಹೇಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ, ಅಲ್ಲಿ ನೋಡ್‌ನಿಂದ ಪ್ರತಿಕ್ರಿಯೆಗಾಗಿ ಕಾಯುವ ಸಮಯವು ನಿರಂಕುಶವಾಗಿ ದೀರ್ಘವಾಗಿರುತ್ತದೆ ಎಂದು ನಾವು ನಂಬುತ್ತೇವೆ (ಮೂಲಕ, ನೋಡ್ ವೈಫಲ್ಯವನ್ನು ಸಹ ಉದಾಹರಣೆಯಾಗಿ ಪರಿಗಣಿಸಬಹುದು ನಿರಂಕುಶವಾಗಿ ದೀರ್ಘವಾಗಿ ಪ್ರತಿಕ್ರಿಯಿಸಬಹುದು ).

ಒಮ್ಮತದ ಅಲ್ಗಾರಿದಮ್ ತಾತ್ವಿಕವಾಗಿ ಹೇಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ ಎಂಬುದು ಈಗ ನಮಗೆ ತಿಳಿದಿದೆ, ಈ ಹಂತವನ್ನು ತಲುಪಿದ ಜಿಜ್ಞಾಸೆಯ ಓದುಗರಿಗೆ ಪ್ರಶ್ನೆ: ಅಸಮಕಾಲಿಕ ಸಂದೇಶ ಮಾದರಿಯೊಂದಿಗೆ N ನೋಡ್‌ಗಳ ವ್ಯವಸ್ಥೆಯಲ್ಲಿ ಎಷ್ಟು ನೋಡ್‌ಗಳು ಕಡಿಮೆಯಾಗಬಹುದು ಇದರಿಂದ ಸಿಸ್ಟಮ್ ಇನ್ನೂ ಒಮ್ಮತವನ್ನು ತಲುಪಬಹುದು ?

ಸ್ಪಾಯ್ಲರ್‌ನ ಹಿಂದಿನ ಸರಿಯಾದ ಉತ್ತರ ಮತ್ತು ತಾರ್ಕಿಕತೆ.ಸರಿಯಾದ ಉತ್ತರವೆಂದರೆ: 0. ಅಸಮಕಾಲಿಕ ವ್ಯವಸ್ಥೆಯಲ್ಲಿ ಒಂದು ನೋಡ್ ಸಹ ಕಡಿಮೆಯಾದರೆ, ವ್ಯವಸ್ಥೆಯು ಒಮ್ಮತವನ್ನು ತಲುಪಲು ಸಾಧ್ಯವಾಗುವುದಿಲ್ಲ. ಈ ಹೇಳಿಕೆಯು ಸುಪ್ರಸಿದ್ಧ FLP ಪ್ರಮೇಯದಲ್ಲಿ ಸಾಬೀತಾಗಿದೆ (1985, ಫಿಷರ್, ಲಿಂಚ್, ಪ್ಯಾಟರ್ಸನ್, ಲೇಖನದ ಕೊನೆಯಲ್ಲಿ ಮೂಲಕ್ಕೆ ಲಿಂಕ್): "ಕನಿಷ್ಠ ಒಂದು ನೋಡ್ ವಿಫಲವಾದರೆ ವಿತರಿಸಿದ ಒಮ್ಮತವನ್ನು ತಲುಪುವ ಅಸಾಧ್ಯತೆ."
ಪೆಟ್ಟಿಗೆಯಿಲ್ಲದ ಶ್ರೋಡಿಂಗರ್‌ನ ಬೆಕ್ಕು: ವಿತರಣಾ ವ್ಯವಸ್ಥೆಗಳಲ್ಲಿ ಒಮ್ಮತದ ಸಮಸ್ಯೆ
ಗೈಸ್, ನಂತರ ನಮಗೆ ಸಮಸ್ಯೆ ಇದೆ, ಎಲ್ಲವೂ ನಮ್ಮೊಂದಿಗೆ ಅಸಮಕಾಲಿಕವಾಗಿದೆ ಎಂಬ ಅಂಶಕ್ಕೆ ನಾವು ಬಳಸಲಾಗುತ್ತದೆ. ಮತ್ತು ಅದು ಇಲ್ಲಿದೆ. ಬದುಕನ್ನು ಮುಂದುವರಿಸುವುದು ಹೇಗೆ?

ನಾವು ಕೇವಲ ಸಿದ್ಧಾಂತದ ಬಗ್ಗೆ, ಗಣಿತದ ಬಗ್ಗೆ ಮಾತನಾಡಿದ್ದೇವೆ. "ಒಮ್ಮತವನ್ನು ತಲುಪಲು ಸಾಧ್ಯವಿಲ್ಲ" ಎಂದರೆ ಗಣಿತದ ಭಾಷೆಯಿಂದ ನಮ್ಮದು - ಇಂಜಿನಿಯರಿಂಗ್ ಅನ್ನು ಅನುವಾದಿಸುವುದು? ಇದರರ್ಥ "ಯಾವಾಗಲೂ ಸಾಧಿಸಲಾಗುವುದಿಲ್ಲ", ಅಂದರೆ. ಒಮ್ಮತವನ್ನು ಸಾಧಿಸಲಾಗದ ಸಂದರ್ಭವಿದೆ. ಮತ್ತು ಈ ಪ್ರಕರಣ ಏನು?

ಇದು ನಿಖರವಾಗಿ ಮೇಲೆ ವಿವರಿಸಿದ ಜೀವಂತ ಆಸ್ತಿಯ ಉಲ್ಲಂಘನೆಯಾಗಿದೆ. ನಾವು ಸಾಮಾನ್ಯ ಒಪ್ಪಂದವನ್ನು ಹೊಂದಿಲ್ಲ, ಮತ್ತು ಎಲ್ಲಾ ನೋಡ್‌ಗಳಿಂದ ನಮಗೆ ಪ್ರತಿಕ್ರಿಯೆ ಇಲ್ಲದಿದ್ದಲ್ಲಿ ಸಿಸ್ಟಮ್ ಪ್ರಗತಿಯಾಗುವುದಿಲ್ಲ (ಸೀಮಿತ ಸಮಯದಲ್ಲಿ ಕೊನೆಗೊಳ್ಳುವುದಿಲ್ಲ). ಏಕೆಂದರೆ ಅಸಮಕಾಲಿಕ ವ್ಯವಸ್ಥೆಯಲ್ಲಿ ನಾವು ಊಹಿಸಬಹುದಾದ ಪ್ರತಿಕ್ರಿಯೆ ಸಮಯವನ್ನು ಹೊಂದಿಲ್ಲ ಮತ್ತು ನೋಡ್ ಡೌನ್ ಆಗಿದೆಯೇ ಅಥವಾ ಪ್ರತಿಕ್ರಿಯಿಸಲು ಬಹಳ ಸಮಯ ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆಯೇ ಎಂದು ನಮಗೆ ತಿಳಿದಿಲ್ಲ.

ಆದರೆ ಪ್ರಾಯೋಗಿಕವಾಗಿ, ನಾವು ಪರಿಹಾರವನ್ನು ಕಂಡುಕೊಳ್ಳಬಹುದು. ವೈಫಲ್ಯಗಳ ಸಂದರ್ಭದಲ್ಲಿ ನಮ್ಮ ಅಲ್ಗಾರಿದಮ್ ದೀರ್ಘಕಾಲ ಚಲಾಯಿಸಲು ಸಾಧ್ಯವಾಗಲಿ (ಇದು ಅನಿರ್ದಿಷ್ಟವಾಗಿ ಚಲಿಸಬಹುದು). ಆದರೆ ಹೆಚ್ಚಿನ ಸಂದರ್ಭಗಳಲ್ಲಿ, ಹೆಚ್ಚಿನ ನೋಡ್‌ಗಳು ಸರಿಯಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತಿರುವಾಗ, ನಾವು ವ್ಯವಸ್ಥೆಯಲ್ಲಿ ಪ್ರಗತಿಯನ್ನು ಹೊಂದಿದ್ದೇವೆ.

ಪ್ರಾಯೋಗಿಕವಾಗಿ, ನಾವು ಭಾಗಶಃ ಸಿಂಕ್ರೊನಸ್ ಸಂವಹನ ಮಾದರಿಗಳೊಂದಿಗೆ ವ್ಯವಹರಿಸುತ್ತಿದ್ದೇವೆ. ಭಾಗಶಃ ಸಿಂಕ್ರೊನಿಸಮ್ ಅನ್ನು ಈ ಕೆಳಗಿನಂತೆ ಅರ್ಥೈಸಿಕೊಳ್ಳಲಾಗಿದೆ: ಸಾಮಾನ್ಯ ಸಂದರ್ಭದಲ್ಲಿ, ನಾವು ಅಸಮಕಾಲಿಕ ಮಾದರಿಯನ್ನು ಹೊಂದಿದ್ದೇವೆ, ಆದರೆ ನಿರ್ದಿಷ್ಟ ಸಮಯದ "ಜಾಗತಿಕ ಸ್ಥಿರೀಕರಣ ಸಮಯ" ದ ಒಂದು ನಿರ್ದಿಷ್ಟ ಪರಿಕಲ್ಪನೆಯನ್ನು ಔಪಚಾರಿಕವಾಗಿ ಪರಿಚಯಿಸಲಾಗಿದೆ.

ಈ ಕ್ಷಣವು ಅನಿರ್ದಿಷ್ಟವಾಗಿ ಬರದಿರಬಹುದು, ಆದರೆ ಒಂದು ದಿನ ಅದು ಬರಲೇಬೇಕು. ವರ್ಚುವಲ್ ಅಲಾರಾಂ ಗಡಿಯಾರವು ರಿಂಗ್ ಆಗುತ್ತದೆ ಮತ್ತು ಆ ಕ್ಷಣದಿಂದ ನಾವು ಸಂದೇಶಗಳು ತಲುಪುವ ಸಮಯದ ಡೆಲ್ಟಾವನ್ನು ಊಹಿಸಬಹುದು. ಈ ಹಂತದಿಂದ, ಸಿಸ್ಟಮ್ ಅಸಮಕಾಲಿಕದಿಂದ ಸಿಂಕ್ರೊನಸ್ಗೆ ತಿರುಗುತ್ತದೆ. ಪ್ರಾಯೋಗಿಕವಾಗಿ, ನಾವು ಅಂತಹ ವ್ಯವಸ್ಥೆಗಳೊಂದಿಗೆ ವ್ಯವಹರಿಸುತ್ತೇವೆ.

Paxos ಅಲ್ಗಾರಿದಮ್ ಒಮ್ಮತದ ಸಮಸ್ಯೆಗಳನ್ನು ಪರಿಹರಿಸುತ್ತದೆ

ಪ್ಯಾಕ್ಸೋಸ್ ಭಾಗಶಃ ಸಿಂಕ್ರೊನಸ್ ಸಿಸ್ಟಮ್‌ಗಳಿಗೆ ಒಮ್ಮತದ ಸಮಸ್ಯೆಯನ್ನು ಪರಿಹರಿಸುವ ಅಲ್ಗಾರಿದಮ್‌ಗಳ ಕುಟುಂಬವಾಗಿದೆ, ಕೆಲವು ನೋಡ್‌ಗಳು ವಿಫಲವಾಗಬಹುದು. Paxos ನ ಲೇಖಕ ಲೆಸ್ಲಿ ಲ್ಯಾಂಪೋರ್ಟ್. ಅವರು 1989 ರಲ್ಲಿ ಅಲ್ಗಾರಿದಮ್‌ನ ಅಸ್ತಿತ್ವ ಮತ್ತು ಸರಿಯಾದತೆಯ ಔಪಚಾರಿಕ ಪುರಾವೆಯನ್ನು ಪ್ರಸ್ತಾಪಿಸಿದರು.

ಆದರೆ ಪುರಾವೆಯು ಕ್ಷುಲ್ಲಕವಾಗಿರಲಿಲ್ಲ. ಅಲ್ಗಾರಿದಮ್ ಅನ್ನು ವಿವರಿಸುವ ಮೊದಲ ಪ್ರಕಟಣೆಯನ್ನು 1998 ರಲ್ಲಿ (33 ಪುಟಗಳು) ಬಿಡುಗಡೆ ಮಾಡಲಾಯಿತು. ಅದು ಬದಲಾದಂತೆ, ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದು ತುಂಬಾ ಕಷ್ಟಕರವಾಗಿತ್ತು ಮತ್ತು 2001 ರಲ್ಲಿ ಲೇಖನಕ್ಕೆ ವಿವರಣೆಯನ್ನು ಪ್ರಕಟಿಸಲಾಯಿತು, ಅದು 14 ಪುಟಗಳನ್ನು ತೆಗೆದುಕೊಂಡಿತು. ವಾಸ್ತವವಾಗಿ ಒಮ್ಮತದ ಸಮಸ್ಯೆಯು ಸರಳವಾಗಿಲ್ಲ ಎಂದು ತೋರಿಸಲು ಪ್ರಕಟಣೆಗಳ ಸಂಪುಟಗಳನ್ನು ನೀಡಲಾಗಿದೆ ಮತ್ತು ಅಂತಹ ಕ್ರಮಾವಳಿಗಳ ಹಿಂದೆ ಸ್ಮಾರ್ಟೆಸ್ಟ್ ಜನರ ದೊಡ್ಡ ಕೆಲಸವಿದೆ.

ಲೆಸ್ಲಿ ಲ್ಯಾಂಪೋರ್ ಅವರ ಉಪನ್ಯಾಸದಲ್ಲಿ ಸ್ವತಃ ಎರಡನೇ ಲೇಖನ-ವಿವರಣೆಯಲ್ಲಿ ಒಂದು ಹೇಳಿಕೆ ಇದೆ, ಒಂದು ಸಾಲು (ಯಾವುದನ್ನು ಅವರು ನಿರ್ದಿಷ್ಟಪಡಿಸಲಿಲ್ಲ) ವಿಭಿನ್ನ ರೀತಿಯಲ್ಲಿ ವ್ಯಾಖ್ಯಾನಿಸಬಹುದು ಎಂದು ಗಮನಿಸಿದ್ದಾರೆ ಎಂಬುದು ಕುತೂಹಲಕಾರಿಯಾಗಿದೆ. ಮತ್ತು ಈ ಕಾರಣದಿಂದಾಗಿ, ಹೆಚ್ಚಿನ ಸಂಖ್ಯೆಯ ಆಧುನಿಕ ಪ್ಯಾಕ್ಸೋಸ್ ಅಳವಡಿಕೆಗಳು ಸರಿಯಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುವುದಿಲ್ಲ.

Paxos ನ ಕೆಲಸದ ವಿವರವಾದ ವಿಶ್ಲೇಷಣೆಯು ಒಂದಕ್ಕಿಂತ ಹೆಚ್ಚು ಲೇಖನಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ, ಆದ್ದರಿಂದ ನಾನು ಅಲ್ಗಾರಿದಮ್ನ ಮುಖ್ಯ ಕಲ್ಪನೆಯನ್ನು ಬಹಳ ಸಂಕ್ಷಿಪ್ತವಾಗಿ ತಿಳಿಸಲು ಪ್ರಯತ್ನಿಸುತ್ತೇನೆ. ನನ್ನ ಲೇಖನದ ಕೊನೆಯಲ್ಲಿ ಲಿಂಕ್‌ಗಳಲ್ಲಿ ಈ ವಿಷಯಕ್ಕೆ ಮತ್ತಷ್ಟು ಡೈವಿಂಗ್ ಮಾಡಲು ನೀವು ವಸ್ತುಗಳನ್ನು ಕಾಣಬಹುದು.

Paxos ನಲ್ಲಿ ಪಾತ್ರಗಳು

Paxos ಅಲ್ಗಾರಿದಮ್ ಪಾತ್ರಗಳ ಪರಿಕಲ್ಪನೆಯನ್ನು ಹೊಂದಿದೆ. ಮೂರು ಮುಖ್ಯವಾದವುಗಳನ್ನು ಪರಿಗಣಿಸಿ (ಹೆಚ್ಚುವರಿ ಪಾತ್ರಗಳೊಂದಿಗೆ ಮಾರ್ಪಾಡುಗಳಿವೆ):

  1. ಪ್ರತಿಪಾದಕರು (ನಿಯಮಗಳೂ ಇರಬಹುದು: ನಾಯಕರು ಅಥವಾ ಸಂಯೋಜಕರು). ಬಳಕೆದಾರರಿಂದ ಕೆಲವು ಹೊಸ ಅರ್ಥವನ್ನು ಕಲಿಯುವ ಮತ್ತು ನಾಯಕನ ಪಾತ್ರವನ್ನು ತೆಗೆದುಕೊಳ್ಳುವ ವ್ಯಕ್ತಿಗಳು ಇವರು. ಹೊಸ ಮೌಲ್ಯಕ್ಕಾಗಿ ಒಂದು ಸುತ್ತಿನ ಪ್ರಸ್ತಾಪಗಳನ್ನು ಪ್ರಾರಂಭಿಸುವುದು ಮತ್ತು ನೋಡ್‌ಗಳ ಮುಂದಿನ ಕ್ರಮಗಳನ್ನು ಸಂಘಟಿಸುವುದು ಅವರ ಕಾರ್ಯವಾಗಿದೆ. ಇದಲ್ಲದೆ, ಪ್ಯಾಕ್ಸೋಸ್ ಕೆಲವು ಸಂದರ್ಭಗಳಲ್ಲಿ ಹಲವಾರು ನಾಯಕರ ಉಪಸ್ಥಿತಿಯನ್ನು ಅನುಮತಿಸುತ್ತದೆ.
  2. ಸ್ವೀಕರಿಸುವವರು (ಮತದಾರರು). ಇವುಗಳು ನಿರ್ದಿಷ್ಟ ಮೌಲ್ಯವನ್ನು ಸ್ವೀಕರಿಸಲು ಅಥವಾ ತಿರಸ್ಕರಿಸಲು ಮತ ಚಲಾಯಿಸುವ ನೋಡ್ಗಳಾಗಿವೆ. ಅವರ ಪಾತ್ರವು ಬಹಳ ಮುಖ್ಯವಾಗಿದೆ, ಏಕೆಂದರೆ ನಿರ್ಧಾರವು ಅವರ ಮೇಲೆ ಅವಲಂಬಿತವಾಗಿರುತ್ತದೆ: ಒಮ್ಮತದ ಅಲ್ಗಾರಿದಮ್ನ ಮುಂದಿನ ಹಂತದ ನಂತರ ಸಿಸ್ಟಮ್ ಯಾವ ಸ್ಥಿತಿಗೆ ಹೋಗುತ್ತದೆ (ಅಥವಾ ಹೋಗುವುದಿಲ್ಲ).
  3. ಕಲಿಯುವವರು. ವ್ಯವಸ್ಥೆಯ ಸ್ಥಿತಿಯು ಬದಲಾದಾಗ ಹೊಸ ಸ್ವೀಕೃತ ಮೌಲ್ಯವನ್ನು ಸರಳವಾಗಿ ಸ್ವೀಕರಿಸುವ ಮತ್ತು ಬರೆಯುವ ನೋಡ್‌ಗಳು. ಅವರು ನಿರ್ಧಾರಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳುವುದಿಲ್ಲ, ಅವರು ಕೇವಲ ಡೇಟಾವನ್ನು ಸ್ವೀಕರಿಸುತ್ತಾರೆ ಮತ್ತು ಅದನ್ನು ಅಂತಿಮ ಬಳಕೆದಾರರಿಗೆ ನೀಡಬಹುದು.

ಒಂದು ನೋಡ್ ವಿವಿಧ ಸಂದರ್ಭಗಳಲ್ಲಿ ಹಲವಾರು ಪಾತ್ರಗಳನ್ನು ಸಂಯೋಜಿಸಬಹುದು.

ಕೋರಮ್ ಪರಿಕಲ್ಪನೆ

ನಾವು ಒಂದು ವ್ಯವಸ್ಥೆಯನ್ನು ಹೊಂದಿದ್ದೇವೆ ಎಂದು ನಾವು ಭಾವಿಸುತ್ತೇವೆ N ನೋಡ್ಗಳು. ಮತ್ತು ಅವುಗಳಲ್ಲಿ ಹೆಚ್ಚಿನವು F ನೋಡ್ಗಳು ವಿಫಲವಾಗಬಹುದು. ಎಫ್ ನೋಡ್‌ಗಳು ವಿಫಲವಾದರೆ, ನಾವು ಕನಿಷ್ಟ ಪಕ್ಷವನ್ನು ಹೊಂದಿರಬೇಕು 2F+1 ಸ್ವೀಕರಿಸುವ ನೋಡ್ಗಳು.

ಇದು ಅವಶ್ಯಕವಾಗಿದೆ ಆದ್ದರಿಂದ ನಾವು ಯಾವಾಗಲೂ, ಕೆಟ್ಟ ಪರಿಸ್ಥಿತಿಯಲ್ಲಿಯೂ ಸಹ, "ಒಳ್ಳೆಯದು", ಸರಿಯಾಗಿ ಕೆಲಸ ಮಾಡುವ ನೋಡ್ಗಳು ಬಹುಮತವನ್ನು ಹೊಂದಿರುತ್ತವೆ. ಅದು ಎಫ್ + 1 "ಒಳ್ಳೆಯ" ನೋಡ್ಗಳು ಒಪ್ಪಿಕೊಂಡಿವೆ ಮತ್ತು ಅಂತಿಮ ಮೌಲ್ಯವನ್ನು ಸ್ವೀಕರಿಸಲಾಗುತ್ತದೆ. ಇಲ್ಲದಿದ್ದರೆ, ವಿವಿಧ ಸ್ಥಳೀಯ ಗುಂಪುಗಳು ವಿಭಿನ್ನ ಅರ್ಥಗಳನ್ನು ಪಡೆದುಕೊಳ್ಳುವ ಮತ್ತು ತಮ್ಮಲ್ಲಿಯೇ ಒಪ್ಪಿಕೊಳ್ಳಲು ಸಾಧ್ಯವಾಗದ ಪರಿಸ್ಥಿತಿ ಉಂಟಾಗಬಹುದು. ಹಾಗಾಗಿ ಮತ ಗೆಲ್ಲಲು ನಮಗೆ ಸಂಪೂರ್ಣ ಬಹುಮತ ಬೇಕು.

ಪ್ಯಾಕ್ಸೋಸ್ ಒಮ್ಮತದ ಅಲ್ಗಾರಿದಮ್ನ ಸಾಮಾನ್ಯ ಕಲ್ಪನೆ

Paxos ಅಲ್ಗಾರಿದಮ್ ಎರಡು ದೊಡ್ಡ ಹಂತಗಳನ್ನು ಊಹಿಸುತ್ತದೆ, ಪ್ರತಿಯಾಗಿ ಎರಡು ಹಂತಗಳಾಗಿ ವಿಂಗಡಿಸಲಾಗಿದೆ:

  1. ಹಂತ 1a: ತಯಾರು. ತಯಾರಿ ಹಂತದಲ್ಲಿ, ನಾಯಕ (ಪ್ರಪೋಸರ್) ಎಲ್ಲಾ ನೋಡ್‌ಗಳಿಗೆ ತಿಳಿಸುತ್ತಾರೆ: “ನಾವು ಹೊಸ ಮತದಾನದ ಹಂತವನ್ನು ಪ್ರಾರಂಭಿಸುತ್ತಿದ್ದೇವೆ. ನಾವು ಹೊಸ ಸುತ್ತನ್ನು ಹೊಂದಿದ್ದೇವೆ. ಈ ಸುತ್ತಿನ ಸಂಖ್ಯೆ ಎನ್. ನಾವು ಈಗ ಮತದಾನವನ್ನು ಪ್ರಾರಂಭಿಸುತ್ತೇವೆ. ” ಇಲ್ಲಿಯವರೆಗೆ, ಇದು ಹೊಸ ಚಕ್ರದ ಪ್ರಾರಂಭವನ್ನು ವರದಿ ಮಾಡುತ್ತದೆ, ಆದರೆ ಹೊಸ ಮೌಲ್ಯವನ್ನು ವರದಿ ಮಾಡುವುದಿಲ್ಲ. ಈ ಹಂತದ ಕಾರ್ಯವು ಹೊಸ ಸುತ್ತನ್ನು ಪ್ರಾರಂಭಿಸುವುದು ಮತ್ತು ಅದರ ವಿಶಿಷ್ಟ ಸಂಖ್ಯೆಯನ್ನು ಎಲ್ಲರಿಗೂ ತಿಳಿಸುವುದು. ಸುತ್ತಿನ ಸಂಖ್ಯೆಯು ಮುಖ್ಯವಾಗಿದೆ, ಇದು ಹಿಂದಿನ ಎಲ್ಲಾ ನಾಯಕರ ಹಿಂದಿನ ಎಲ್ಲಾ ಮತದಾನದ ಸಂಖ್ಯೆಗಳಿಗಿಂತ ಹೆಚ್ಚಾಗಿರಬೇಕು. ಸುತ್ತಿನ ಸಂಖ್ಯೆಗೆ ಧನ್ಯವಾದಗಳು ಆಗಿರುವುದರಿಂದ ಸಿಸ್ಟಮ್‌ನಲ್ಲಿನ ಇತರ ನೋಡ್‌ಗಳು ನಾಯಕನ ಡೇಟಾ ಎಷ್ಟು ತಾಜಾವಾಗಿದೆ ಎಂಬುದನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುತ್ತದೆ. ಬಹುಶಃ ಇತರ ನೋಡ್‌ಗಳು ಈಗಾಗಲೇ ಹೆಚ್ಚಿನ ನಂತರದ ಸುತ್ತುಗಳಿಂದ ಮತದಾನದ ಫಲಿತಾಂಶಗಳನ್ನು ಹೊಂದಿವೆ ಮತ್ತು ನಾಯಕನಿಗೆ ಅವನು ಸಮಯದ ಹಿಂದೆ ಇದ್ದಾನೆ ಎಂದು ಸರಳವಾಗಿ ಹೇಳುತ್ತದೆ.
  2. ಹಂತ 1b: ಭರವಸೆ. ಅಂಗೀಕಾರಕ ನೋಡ್‌ಗಳು ಹೊಸ ಮತದಾನ ಹಂತದ ಸಂಖ್ಯೆಯನ್ನು ಪಡೆದಾಗ, ಎರಡು ಫಲಿತಾಂಶಗಳು ಸಾಧ್ಯ:
    • ಹೊಸ ಮತದ ಸಂಖ್ಯೆ n, ಸ್ವೀಕರಿಸುವವರು ಭಾಗವಹಿಸಿದ ಹಿಂದಿನ ಯಾವುದೇ ಮತಗಳ ಸಂಖ್ಯೆಗಿಂತ ಹೆಚ್ಚಾಗಿರುತ್ತದೆ. ನಂತರ ಸ್ವೀಕರಿಸುವವರು n ಗಿಂತ ಕಡಿಮೆ ಸಂಖ್ಯೆಯ ಯಾವುದೇ ಮತಗಳಲ್ಲಿ ಇನ್ನು ಮುಂದೆ ಭಾಗವಹಿಸುವುದಿಲ್ಲ ಎಂಬ ಭರವಸೆಯನ್ನು ನಾಯಕನಿಗೆ ಕಳುಹಿಸುತ್ತಾರೆ. ಸ್ವೀಕರಿಸುವವರು ಈಗಾಗಲೇ ಯಾವುದನ್ನಾದರೂ ಮತ ಚಲಾಯಿಸಿದ್ದರೆ (ಅಂದರೆ, ಅದು ಈಗಾಗಲೇ ಎರಡನೇ ಹಂತದಲ್ಲಿ ಕೆಲವು ಮೌಲ್ಯವನ್ನು ಸ್ವೀಕರಿಸಿದೆ), ನಂತರ ಅದು ಸ್ವೀಕರಿಸಿದ ಮೌಲ್ಯ ಮತ್ತು ಅದರ ಭರವಸೆಗೆ ಭಾಗವಹಿಸಿದ ಮತದ ಸಂಖ್ಯೆಯನ್ನು ಸೇರಿಸುತ್ತದೆ.
    • ಇಲ್ಲದಿದ್ದರೆ, ಸ್ವೀಕರಿಸುವವರಿಗೆ ಈಗಾಗಲೇ ಹೆಚ್ಚಿನ ಸಂಖ್ಯೆಯ ಮತಗಳ ಬಗ್ಗೆ ತಿಳಿದಿದ್ದರೆ, ಅದು ಸರಳವಾಗಿ ಸಿದ್ಧಪಡಿಸುವ ಹಂತವನ್ನು ನಿರ್ಲಕ್ಷಿಸಬಹುದು ಮತ್ತು ನಾಯಕನಿಗೆ ಪ್ರತಿಕ್ರಿಯಿಸುವುದಿಲ್ಲ.
  3. ಹಂತ 2a: ಸ್ವೀಕರಿಸಿ. ನಾಯಕನು ಕೋರಮ್‌ನಿಂದ ಪ್ರತಿಕ್ರಿಯೆಗಾಗಿ ಕಾಯಬೇಕಾಗುತ್ತದೆ (ಸಿಸ್ಟಮ್‌ನಲ್ಲಿನ ಹೆಚ್ಚಿನ ನೋಡ್‌ಗಳು) ಮತ್ತು, ಅಗತ್ಯವಿರುವ ಸಂಖ್ಯೆಯ ಪ್ರತಿಕ್ರಿಯೆಗಳನ್ನು ಸ್ವೀಕರಿಸಿದರೆ, ಈವೆಂಟ್‌ಗಳ ಅಭಿವೃದ್ಧಿಗೆ ಅವನಿಗೆ ಎರಡು ಆಯ್ಕೆಗಳಿವೆ:
    • ಕೆಲವು ಸ್ವೀಕರಿಸುವವರು ಈಗಾಗಲೇ ಮತ ಹಾಕಿದ ಮೌಲ್ಯಗಳನ್ನು ಸಲ್ಲಿಸಿದ್ದಾರೆ. ಈ ಸಂದರ್ಭದಲ್ಲಿ, ನಾಯಕನು ಹೆಚ್ಚಿನ ಸಂಖ್ಯೆಯ ಮತದಿಂದ ಮೌಲ್ಯವನ್ನು ಆರಿಸಿಕೊಳ್ಳುತ್ತಾನೆ. ನಾವು ಈ ಮೌಲ್ಯವನ್ನು x ಎಂದು ಕರೆಯೋಣ ಮತ್ತು ಎಲ್ಲಾ ನೋಡ್‌ಗಳಿಗೆ ಈ ರೀತಿಯ ಸಂದೇಶವನ್ನು ಕಳುಹಿಸೋಣ: "ಸ್ವೀಕರಿಸಿ (n, x)", ಅಲ್ಲಿ ಮೊದಲ ಮೌಲ್ಯವು ತನ್ನದೇ ಆದ ಪ್ರಪೋಸ್ ಹಂತದಿಂದ ಮತದಾನದ ಸಂಖ್ಯೆಯಾಗಿದೆ ಮತ್ತು ಎರಡನೆಯ ಮೌಲ್ಯವು ಎಲ್ಲರೂ ಒಟ್ಟುಗೂಡಿದೆ, ಅಂದರೆ. ಮೌಲ್ಯದ, ವಾಸ್ತವವಾಗಿ, ನಾವು ಮತ.
    • ಸ್ವೀಕರಿಸುವವರಲ್ಲಿ ಯಾರೂ ಯಾವುದೇ ಮೌಲ್ಯಗಳನ್ನು ಕಳುಹಿಸದಿದ್ದರೆ, ಆದರೆ ಅವರು ಈ ಸುತ್ತಿನಲ್ಲಿ ಮತ ಚಲಾಯಿಸುವುದಾಗಿ ಭರವಸೆ ನೀಡಿದರೆ, ನಾಯಕನು ಅವರ ಮೌಲ್ಯಕ್ಕಾಗಿ ಮತ ಚಲಾಯಿಸಲು ಅವರನ್ನು ಆಹ್ವಾನಿಸಬಹುದು, ಅದಕ್ಕಾಗಿ ಅವನು ನಾಯಕನಾದನು. ಅದನ್ನು ವೈ ಎಂದು ಕರೆಯೋಣ. ಇದು ಎಲ್ಲಾ ನೋಡ್‌ಗಳಿಗೆ ಫಾರ್ಮ್‌ನ ಸಂದೇಶವನ್ನು ಕಳುಹಿಸುತ್ತದೆ: "ಸ್ವೀಕರಿಸಿ (n, y)", ಹಿಂದಿನ ಫಲಿತಾಂಶದೊಂದಿಗೆ ಸಾದೃಶ್ಯದ ಮೂಲಕ.
  4. ಹಂತ 2b: ಸ್ವೀಕರಿಸಲಾಗಿದೆ. ಇದಲ್ಲದೆ, ಸ್ವೀಕರಿಸುವವರ ನೋಡ್‌ಗಳು, ನಾಯಕರಿಂದ "ಸ್ವೀಕರಿಸಿ (...)" ಸಂದೇಶವನ್ನು ಸ್ವೀಕರಿಸಿದ ನಂತರ, ಅದನ್ನು ಒಪ್ಪಿಕೊಳ್ಳುತ್ತಾರೆ (ಹೊಸ ಮೌಲ್ಯದೊಂದಿಗೆ ಅವರು ಒಪ್ಪುವ ಎಲ್ಲಾ ನೋಡ್‌ಗಳಿಗೆ ದೃಢೀಕರಣವನ್ನು ಕಳುಹಿಸಿ) ಅವರು ಕೆಲವು (ಇತರ) ಭರವಸೆ ನೀಡದಿದ್ದರೆ ಮಾತ್ರ ಸುತ್ತಿನ ಸಂಖ್ಯೆಯೊಂದಿಗೆ ಮತದಾನದಲ್ಲಿ ಭಾಗವಹಿಸಲು ನಾಯಕ n' > nಇಲ್ಲದಿದ್ದರೆ ಅವರು ದೃಢೀಕರಣ ಪ್ರಾಂಪ್ಟ್ ಅನ್ನು ನಿರ್ಲಕ್ಷಿಸುತ್ತಾರೆ.

    ಬಹುಪಾಲು ನೋಡ್‌ಗಳು ನಾಯಕನಿಗೆ ಉತ್ತರಿಸಿದರೆ ಮತ್ತು ಅವರೆಲ್ಲರೂ ಹೊಸ ಮೌಲ್ಯವನ್ನು ದೃಢಪಡಿಸಿದರೆ, ಹೊಸ ಮೌಲ್ಯವನ್ನು ಸ್ವೀಕರಿಸಲಾಗಿದೆ ಎಂದು ಪರಿಗಣಿಸಲಾಗುತ್ತದೆ. ಹುರ್ರೇ! ಬಹುಪಾಲು ಟೈಪ್ ಮಾಡದಿದ್ದರೆ ಅಥವಾ ಹೊಸ ಮೌಲ್ಯವನ್ನು ಸ್ವೀಕರಿಸಲು ನಿರಾಕರಿಸಿದ ನೋಡ್ಗಳು ಇದ್ದರೆ, ನಂತರ ಎಲ್ಲವೂ ಪ್ರಾರಂಭವಾಗುತ್ತದೆ.

ಪ್ಯಾಕ್ಸೋಸ್ ಅಲ್ಗಾರಿದಮ್ ಈ ರೀತಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ. ಈ ಪ್ರತಿಯೊಂದು ಹಂತವು ಅನೇಕ ಸೂಕ್ಷ್ಮತೆಗಳನ್ನು ಹೊಂದಿದೆ, ನಾವು ಪ್ರಾಯೋಗಿಕವಾಗಿ ವಿವಿಧ ರೀತಿಯ ವೈಫಲ್ಯಗಳು, ಬಹು ನಾಯಕರ ಸಮಸ್ಯೆಗಳು ಮತ್ತು ಹೆಚ್ಚಿನದನ್ನು ಪರಿಗಣಿಸಲಿಲ್ಲ, ಆದರೆ ಈ ಲೇಖನದ ಉದ್ದೇಶವು ಉನ್ನತ ಮಟ್ಟದಲ್ಲಿ ವಿತರಣಾ ಕಂಪ್ಯೂಟಿಂಗ್ ಜಗತ್ತಿಗೆ ಓದುಗರನ್ನು ಪರಿಚಯಿಸುವುದು ಮಾತ್ರ.

ಗಮನಿಸಬೇಕಾದ ಸಂಗತಿಯೆಂದರೆ, ಪ್ಯಾಕ್ಸೋಸ್ ಈ ರೀತಿಯ ಒಂದೇ ಅಲ್ಲ, ಇತರ ಅಲ್ಗಾರಿದಮ್‌ಗಳಿವೆ, ಉದಾಹರಣೆಗೆ, ರಾಫ್ಟ್, ಆದರೆ ಇದು ಮತ್ತೊಂದು ಲೇಖನದ ವಿಷಯವಾಗಿದೆ.

ಹೆಚ್ಚಿನ ಅಧ್ಯಯನಕ್ಕಾಗಿ ವಸ್ತುಗಳಿಗೆ ಲಿಂಕ್‌ಗಳು

ಅನನುಭವಿ ಮಟ್ಟ:

ಲೆಸ್ಲಿ ಲ್ಯಾಂಪೋರ್ಟ್ ಮಟ್ಟ:

ಮೂಲ: www.habr.com

ಕಾಮೆಂಟ್ ಅನ್ನು ಸೇರಿಸಿ