ಜಾಗತಿಕ ವಿತರಿತ ವ್ಯವಸ್ಥೆಗಳಲ್ಲಿ Paxos, Raft, PBFT ನಂತಹ ಒಮ್ಮತ ಅಲ್ಗಾರಿದಮ್ಗಳನ್ನು ಅರ್ಥಮಾಡಿಕೊಂಡು, ಕಾರ್ಯಗತಗೊಳಿಸಲು ಸಮಗ್ರ ಮಾರ್ಗದರ್ಶಿ, ಹೆಚ್ಚಿನ ವಿಶ್ವಾಸಾರ್ಹತೆ, ದೋಷ ಸಹಿಷ್ಣುತೆಗಾಗಿ.
ಕೇಂದ್ರೀಕೃತವಲ್ಲದ ವ್ಯವಸ್ಥೆಗಳು: ಒಮ್ಮತದ ಅಲ್ಗಾರಿದಮ್ಗಳ ಅನುಷ್ಠಾನದ ಸಂಕೀರ್ಣತೆಗಳನ್ನು ಅರ್ಥೈಸಿಕೊಳ್ಳುವುದು
ಆಧುನಿಕ ತಂತ್ರಜ್ಞಾನದ ವಿಶಾಲವಾದ, ಪರಸ್ಪರ ಸಂಪರ್ಕಿತ ಭೂದೃಶ್ಯದಲ್ಲಿ, ಕೇಂದ್ರೀಕೃತವಲ್ಲದ ವ್ಯವಸ್ಥೆಗಳು ನಾವು ಪ್ರತಿದಿನ ಬಳಸುವ ಪ್ರತಿಯೊಂದು ನಿರ್ಣಾಯಕ ಸೇವೆಗೂ ಬೆನ್ನೆಲುಬಾಗಿವೆ. ಜಾಗತಿಕ ಹಣಕಾಸು ಜಾಲಗಳು ಮತ್ತು ಕ್ಲೌಡ್ ಮೂಲಸೌಕರ್ಯದಿಂದ ನೈಜ-ಸಮಯದ ಸಂವಹನ ವೇದಿಕೆಗಳು ಮತ್ತು ಉದ್ಯಮ ಅಪ್ಲಿಕೇಶನ್ಗಳವರೆಗೆ, ಈ ವ್ಯವಸ್ಥೆಗಳು ಬಹು ಸ್ವತಂತ್ರ ಕಂಪ್ಯೂಟಿಂಗ್ ನೋಡ್ಗಳಲ್ಲಿ ಕಾರ್ಯನಿರ್ವಹಿಸಲು ವಿನ್ಯಾಸಗೊಳಿಸಲಾಗಿದೆ. ಅಸಮಾನವಾದ ಸ್ಕೇಲೆಬಿಲಿಟಿ, ಸ್ಥಿತಿಸ್ಥಾಪಕತ್ವ ಮತ್ತು ಲಭ್ಯತೆಯನ್ನು ನೀಡುತ್ತಿದ್ದರೂ, ಈ ವಿತರಣೆಯು ಒಂದು ಗಂಭೀರ ಸವಾಲನ್ನು ಪರಿಚಯಿಸುತ್ತದೆ: ಕೆಲವು ನೋಡ್ಗಳು ಅನಿವಾರ್ಯವಾಗಿ ವಿಫಲವಾದರೂ ಸಹ, ಎಲ್ಲಾ ಭಾಗವಹಿಸುವ ನೋಡ್ಗಳಾದ್ಯಂತ ಸ್ಥಿರ ಮತ್ತು ಒಪ್ಪಿದ ಸ್ಥಿತಿಯನ್ನು ನಿರ್ವಹಿಸುವುದು. ಇದು ಒಮ್ಮತದ ಅಲ್ಗಾರಿದಮ್ಗಳ ಕ್ಷೇತ್ರವಾಗಿದೆ.
ಒಮ್ಮತದ ಅಲ್ಗಾರಿದಮ್ಗಳು ವಿತರಿತ ಪರಿಸರದಲ್ಲಿ ದತ್ತಾಂಶದ ಸಮಗ್ರತೆ ಮತ್ತು ಕಾರ್ಯಾಚರಣೆಯ ನಿರಂತರತೆಯ ಮೌನ ರಕ್ಷಕರಾಗಿವೆ. ನೆಟ್ವರ್ಕ್ ವಿಳಂಬಗಳು, ನೋಡ್ ಕ್ರ್ಯಾಶ್ಗಳು ಅಥವಾ ದುರುದ್ದೇಶಪೂರಿತ ವರ್ತನೆಯ ಹೊರತಾಗಿಯೂ, ಒಂದೇ ಮೌಲ್ಯ, ಕಾರ್ಯಾಚರಣೆಗಳ ಕ್ರಮ ಅಥವಾ ಸ್ಥಿತಿಯ ಪರಿವರ್ತನೆಯ ಬಗ್ಗೆ ಯಂತ್ರಗಳ ಗುಂಪಿಗೆ ಒಪ್ಪಿಕೊಳ್ಳಲು ಅವು ಅನುವು ಮಾಡಿಕೊಡುತ್ತವೆ. ಅವುಗಳಿಲ್ಲದೆ, ನಮ್ಮ ಡಿಜಿಟಲ್ ಪ್ರಪಂಚದಿಂದ ನಾವು ನಿರೀಕ್ಷಿಸುವ ವಿಶ್ವಾಸಾರ್ಹತೆಯು ಕುಸಿದು ಬೀಳುತ್ತದೆ. ಈ ಸಮಗ್ರ ಮಾರ್ಗದರ್ಶಿಯು ಒಮ್ಮತದ ಅಲ್ಗಾರಿದಮ್ಗಳ ಸಂಕೀರ್ಣ ಜಗತ್ತನ್ನು ಪರಿಶೋಧಿಸುತ್ತದೆ, ಅವುಗಳ ಮೂಲಭೂತ ತತ್ವಗಳನ್ನು ಪರಿಶೀಲಿಸುತ್ತದೆ, ಪ್ರಮುಖ ಅನುಷ್ಠಾನಗಳನ್ನು ಪರಿಶೀಲಿಸುತ್ತದೆ ಮತ್ತು ನೈಜ-ಪ್ರಪಂಚದ ವಿತರಿತ ವ್ಯವಸ್ಥೆಗಳಲ್ಲಿ ಅವುಗಳ ನಿಯೋಜನೆಗೆ ಪ್ರಾಯೋಗಿಕ ಒಳನೋಟಗಳನ್ನು ಒದಗಿಸುತ್ತದೆ.
ಕೇಂದ್ರೀಕೃತವಲ್ಲದ ಒಮ್ಮತದ ಮೂಲಭೂತ ಸವಾಲು
ದೃಢವಾದ ಕೇಂದ್ರೀಕೃತವಲ್ಲದ ವ್ಯವಸ್ಥೆಯನ್ನು ನಿರ್ಮಿಸುವುದು ಸಹಜವಾಗಿ ಸಂಕೀರ್ಣವಾಗಿದೆ. ನೆಟ್ವರ್ಕ್ಗಳ ಅಸಮಕಾಲಿಕ ಸ್ವರೂಪದಲ್ಲಿ ಮೂಲಭೂತ ತೊಂದರೆ ಅಡಗಿದೆ, ಅಲ್ಲಿ ಸಂದೇಶಗಳು ವಿಳಂಬವಾಗಬಹುದು, ಕಳೆದುಹೋಗಬಹುದು ಅಥವಾ ಮರುಕ್ರಮಗೊಳಿಸಬಹುದು ಮತ್ತು ನೋಡ್ಗಳು ಸ್ವತಂತ್ರವಾಗಿ ವಿಫಲವಾಗಬಹುದು. ನಿರ್ದಿಷ್ಟ ವಹಿವಾಟು ಸಮರ್ಪಿತವಾಗಿದೆಯೇ ಎಂದು ಬಹು ಸರ್ವರ್ಗಳು ಒಪ್ಪಿಕೊಳ್ಳಬೇಕಾದ ಸನ್ನಿವೇಶವನ್ನು ಪರಿಗಣಿಸಿ. ಕೆಲವು ಸರ್ವರ್ಗಳು ಯಶಸ್ಸನ್ನು ವರದಿ ಮಾಡಿದರೆ, ಇತರವು ವಿಫಲತೆಯನ್ನು ವರದಿ ಮಾಡಿದರೆ, ಸಿಸ್ಟಮ್ನ ಸ್ಥಿತಿಯು ಅಸ್ಪಷ್ಟವಾಗುತ್ತದೆ, ಇದು ಡೇಟಾ ಅಸಂಗತತೆ ಮತ್ತು ಸಂಭಾವ್ಯ ಕಾರ್ಯಾಚರಣೆಯ ಗೊಂದಲಕ್ಕೆ ಕಾರಣವಾಗುತ್ತದೆ.
CAP ಸಿದ್ಧಾಂತ ಮತ್ತು ಅದರ ಪ್ರಸ್ತುತತೆ
ಕೇಂದ್ರೀಕೃತವಲ್ಲದ ವ್ಯವಸ್ಥೆಗಳಲ್ಲಿ ಒಂದು ಮೂಲಭೂತ ಪರಿಕಲ್ಪನೆಯೆಂದರೆ CAP ಸಿದ್ಧಾಂತ, ಇದು ವಿತರಿತ ದತ್ತಾಂಶ ಸಂಗ್ರಹವು ಏಕಕಾಲದಲ್ಲಿ ಈ ಕೆಳಗಿನ ಮೂರು ಗುಣಲಕ್ಷಣಗಳಲ್ಲಿ ಎರಡನ್ನು ಮಾತ್ರ ಖಾತರಿಪಡಿಸಬಹುದು ಎಂದು ಹೇಳುತ್ತದೆ:
- ಸ್ಥಿರತೆ (Consistency): ಪ್ರತಿ ಓದುವಿಕೆಯು ಇತ್ತೀಚಿನ ಬರವಣಿಗೆಯನ್ನು ಅಥವಾ ದೋಷವನ್ನು ಪಡೆಯುತ್ತದೆ.
- ಲಭ್ಯತೆ (Availability): ಪ್ರತಿ ವಿನಂತಿಯು ಪ್ರತಿಕ್ರಿಯೆಯನ್ನು ಪಡೆಯುತ್ತದೆ, ಅದು ಇತ್ತೀಚಿನ ಬರವಣಿಗೆಯಾಗಿದೆ ಎಂದು ಖಾತರಿಯಿಲ್ಲ.
- ವಿಭಾಗ ಸಹಿಷ್ಣುತೆ (Partition Tolerance): ಅನಿಯಂತ್ರಿತ ನೆಟ್ವರ್ಕ್ ವೈಫಲ್ಯಗಳು (ವಿಭಾಗಗಳು) ನೋಡ್ಗಳ ನಡುವೆ ಸಂದೇಶಗಳನ್ನು ಕೈಬಿಟ್ಟರೂ ಸಹ ವ್ಯವಸ್ಥೆಯು ಕಾರ್ಯನಿರ್ವಹಿಸುವುದನ್ನು ಮುಂದುವರಿಸುತ್ತದೆ.
ವಾಸ್ತವದಲ್ಲಿ, ಯಾವುದೇ ಸಾಕಷ್ಟು ದೊಡ್ಡ-ಪ್ರಮಾಣದ ಕೇಂದ್ರೀಕೃತವಲ್ಲದ ವ್ಯವಸ್ಥೆಯಲ್ಲಿ ನೆಟ್ವರ್ಕ್ ವಿಭಾಗಗಳು ಅನಿವಾರ್ಯ. ಆದ್ದರಿಂದ, ವಿನ್ಯಾಸಕರು ಯಾವಾಗಲೂ ವಿಭಾಗ ಸಹಿಷ್ಣುತೆ (P) ಯನ್ನು ಆರಿಸಿಕೊಳ್ಳಬೇಕು. ಇದು ಸ್ಥಿರತೆ (C) ಮತ್ತು ಲಭ್ಯತೆ (A) ನಡುವೆ ಆಯ್ಕೆಯನ್ನು ಬಿಡುತ್ತದೆ. ಒಮ್ಮತದ ಅಲ್ಗಾರಿದಮ್ಗಳು ಮುಖ್ಯವಾಗಿ ವಿಭಾಗಗಳ (P) ಎದುರಿನಲ್ಲಿಯೂ ಸ್ಥಿರತೆಯನ್ನು (C) ಎತ್ತಿಹಿಡಿಯಲು ವಿನ್ಯಾಸಗೊಳಿಸಲಾಗಿದೆ, ಆಗಾಗ್ಗೆ ನೆಟ್ವರ್ಕ್ ವಿಭಜನೆಗಳ ಸಮಯದಲ್ಲಿ ಲಭ್ಯತೆಯ (A) ವೆಚ್ಚದಲ್ಲಿ. ಹಣಕಾಸು ಖಾತೆಗಳು ಅಥವಾ ಸಂರಚನಾ ನಿರ್ವಹಣಾ ಸೇವೆಗಳಂತಹ ಡೇಟಾ ಸಮಗ್ರತೆಯು ಪ್ರಮುಖವಾಗಿರುವ ವ್ಯವಸ್ಥೆಗಳನ್ನು ವಿನ್ಯಾಸಗೊಳಿಸುವಾಗ ಈ ವಿನಿಮಯವು ನಿರ್ಣಾಯಕವಾಗಿದೆ.
ಕೇಂದ್ರೀಕೃತವಲ್ಲದ ವ್ಯವಸ್ಥೆಗಳಲ್ಲಿ ದೋಷ ಮಾದರಿಗಳು
ಒಂದು ವ್ಯವಸ್ಥೆಯು ಎದುರಿಸಬಹುದಾದ ದೋಷಗಳ ಪ್ರಕಾರಗಳನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದು ಪರಿಣಾಮಕಾರಿ ಒಮ್ಮತದ ಕಾರ್ಯವಿಧಾನಗಳನ್ನು ವಿನ್ಯಾಸಗೊಳಿಸಲು ನಿರ್ಣಾಯಕವಾಗಿದೆ:
- ಕ್ರ್ಯಾಶ್ ದೋಷಗಳು (Fail-Stop): ಒಂದು ನೋಡ್ ಸರಳವಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುವುದನ್ನು ನಿಲ್ಲಿಸುತ್ತದೆ. ಅದು ಕ್ರ್ಯಾಶ್ ಆಗಿ ಮರುಪ್ರಾರಂಭಿಸಬಹುದು, ಆದರೆ ಅದು ತಪ್ಪಾದ ಅಥವಾ ದಾರಿತಪ್ಪಿಸುವ ಸಂದೇಶಗಳನ್ನು ಕಳುಹಿಸುವುದಿಲ್ಲ. ಇದು ಅತ್ಯಂತ ಸಾಮಾನ್ಯ ಮತ್ತು ನಿಭಾಯಿಸಲು ಸುಲಭವಾದ ದೋಷವಾಗಿದೆ.
- ಕ್ರ್ಯಾಶ್-ಚೇತರಿಕೆ ದೋಷಗಳು (Crash-Recovery Faults): ಕ್ರ್ಯಾಶ್ ದೋಷಗಳಿಗೆ ಹೋಲುತ್ತದೆ, ಆದರೆ ನೋಡ್ಗಳು ಕ್ರ್ಯಾಶ್ನಿಂದ ಚೇತರಿಸಿಕೊಂಡು ವ್ಯವಸ್ಥೆಗೆ ಮರುಸೇರಬಹುದು, ಸರಿಯಾಗಿ ನಿರ್ವಹಿಸದಿದ್ದರೆ ಹಳೆಯ ಸ್ಥಿತಿಯೊಂದಿಗೆ ಇರಬಹುದು.
- ಲೋಪ ದೋಷಗಳು (Omission Faults): ಒಂದು ನೋಡ್ ಸಂದೇಶಗಳನ್ನು ಕಳುಹಿಸಲು ಅಥವಾ ಸ್ವೀಕರಿಸಲು ವಿಫಲಗೊಳ್ಳುತ್ತದೆ, ಅಥವಾ ಸಂದೇಶಗಳನ್ನು ಕೈಬಿಡುತ್ತದೆ. ಇದು ನೆಟ್ವರ್ಕ್ ಸಮಸ್ಯೆಗಳು ಅಥವಾ ಸಾಫ್ಟ್ವೇರ್ ದೋಷಗಳಿಂದಾಗಿ ಆಗಿರಬಹುದು.
- ಬೈಜಾಂಟೈನ್ ದೋಷಗಳು (Byzantine Faults): ಅತ್ಯಂತ ತೀವ್ರ ಮತ್ತು ಸಂಕೀರ್ಣ. ನೋಡ್ಗಳು ಅನಿಯಂತ್ರಿತವಾಗಿ ವರ್ತಿಸಬಹುದು, ದುರುದ್ದೇಶಪೂರಿತ ಅಥವಾ ದಾರಿತಪ್ಪಿಸುವ ಸಂದೇಶಗಳನ್ನು ಕಳುಹಿಸಬಹುದು, ಇತರ ದೋಷಪೂರಿತ ನೋಡ್ಗಳೊಂದಿಗೆ ಪಿತೂರಿ ಮಾಡಬಹುದು, ಅಥವಾ ವ್ಯವಸ್ಥೆಯನ್ನು ಹಾಳುಮಾಡಲು ಸಕ್ರಿಯವಾಗಿ ಪ್ರಯತ್ನಿಸಬಹುದು. ಈ ದೋಷಗಳನ್ನು ಸಾಮಾನ್ಯವಾಗಿ ಬ್ಲಾಕ್ಚೈನ್ ಅಥವಾ ಮಿಲಿಟರಿ ಅಪ್ಲಿಕೇಶನ್ಗಳಂತಹ ಅತಿ ಸೂಕ್ಷ್ಮ ಪರಿಸರದಲ್ಲಿ ಪರಿಗಣಿಸಲಾಗುತ್ತದೆ.
FLP ಅಸಾಧ್ಯತೆಯ ಫಲಿತಾಂಶ
ಒಂದು ಗಂಭೀರ ಸೈದ್ಧಾಂತಿಕ ಫಲಿತಾಂಶ, FLP ಅಸಾಧ್ಯತೆಯ ಸಿದ್ಧಾಂತ (Fischer, Lynch, Paterson, 1985), ಅಸಮಕಾಲಿಕ ಕೇಂದ್ರೀಕೃತವಲ್ಲದ ವ್ಯವಸ್ಥೆಯಲ್ಲಿ, ಒಂದು ಪ್ರಕ್ರಿಯೆಯು ಕ್ರ್ಯಾಶ್ ಆಗಬಹುದಾದರೂ ಒಮ್ಮತವನ್ನು ಖಾತರಿಪಡಿಸುವುದು ಅಸಾಧ್ಯ ಎಂದು ಹೇಳುತ್ತದೆ. ಈ ಸಿದ್ಧಾಂತವು ಒಮ್ಮತವನ್ನು ಸಾಧಿಸುವಲ್ಲಿನ ಅಂತರ್ಗತ ತೊಂದರೆಯನ್ನು ಎತ್ತಿ ತೋರಿಸುತ್ತದೆ ಮತ್ತು ಪ್ರಾಯೋಗಿಕ ಅಲ್ಗಾರಿದಮ್ಗಳು ನೆಟ್ವರ್ಕ್ ಸಿಂಕ್ರೋನಿ (ಉದಾಹರಣೆಗೆ, ಒಂದು ನಿರ್ದಿಷ್ಟ ಸಮಯದಲ್ಲಿ ಸಂದೇಶ ವಿತರಣೆ) ಬಗ್ಗೆ ಊಹೆಗಳನ್ನು ಏಕೆ ಮಾಡುತ್ತವೆ ಅಥವಾ ಎಲ್ಲಾ ಸನ್ನಿವೇಶಗಳಲ್ಲಿ ನಿರ್ಧರಿತವಾಗಿರುವುದಕ್ಕಿಂತ ಹೆಚ್ಚಾಗಿ ಪ್ರಗತಿಯನ್ನು ಸಂಭವನೀಯವಾಗಿಸಲು ಯಾದೃಚ್ಛೀಕರಣ ಮತ್ತು ಸಮಯಾವಧಿಗಳ ಮೇಲೆ ಏಕೆ ಅವಲಂಬಿತವಾಗಿವೆ ಎಂಬುದನ್ನು ಒತ್ತಿಹೇಳುತ್ತದೆ. ಇದರರ್ಥ ಒಂದು ವ್ಯವಸ್ಥೆಯನ್ನು ಬಹಳ ಹೆಚ್ಚಿನ ಸಂಭವನೀಯತೆಯೊಂದಿಗೆ ಒಮ್ಮತವನ್ನು ಸಾಧಿಸಲು ವಿನ್ಯಾಸಗೊಳಿಸಬಹುದಾದರೂ, ಸಂಪೂರ್ಣ ಅಸಮಕಾಲಿಕ, ದೋಷ-ಪೀಡಿತ ಪರಿಸರದಲ್ಲಿ ಸಂಪೂರ್ಣ ಖಚಿತತೆಯು ಸೈದ್ಧಾಂತಿಕವಾಗಿ ಅಸಾಧ್ಯವಾಗಿದೆ.
ಒಮ್ಮತದ ಅಲ್ಗಾರಿದಮ್ಗಳಲ್ಲಿನ ಪ್ರಮುಖ ಪರಿಕಲ್ಪನೆಗಳು
ಈ ಸವಾಲುಗಳ ಹೊರತಾಗಿಯೂ, ಪ್ರಾಯೋಗಿಕ ಒಮ್ಮತದ ಅಲ್ಗಾರಿದಮ್ಗಳು ಅನಿವಾರ್ಯವಾಗಿವೆ. ಅವು ಸಾಮಾನ್ಯವಾಗಿ ಮೂಲ ಗುಣಲಕ್ಷಣಗಳ ಗುಂಪಿಗೆ ಅಂಟಿಕೊಳ್ಳುತ್ತವೆ:
- ಒಪ್ಪಂದ (Agreement): ಎಲ್ಲಾ ದೋಷರಹಿತ ಪ್ರಕ್ರಿಯೆಗಳು ಅಂತಿಮವಾಗಿ ಒಂದೇ ಮೌಲ್ಯದ ಬಗ್ಗೆ ಒಪ್ಪಿಕೊಳ್ಳುತ್ತವೆ.
- ಮಾನ್ಯತೆ (Validity): ಒಂದು ಮೌಲ್ಯ
vಗೆ ಒಪ್ಪಿಗೆ ನೀಡಿದರೆ,vಅನ್ನು ಕೆಲವು ಪ್ರಕ್ರಿಯೆಯಿಂದ ಪ್ರಸ್ತಾಪಿಸಿರಬೇಕು. - ಅಂತ್ಯ (Termination): ಎಲ್ಲಾ ದೋಷರಹಿತ ಪ್ರಕ್ರಿಯೆಗಳು ಅಂತಿಮವಾಗಿ ಒಂದು ಮೌಲ್ಯದ ಬಗ್ಗೆ ನಿರ್ಧರಿಸುತ್ತವೆ.
- ಅಖಂಡತೆ (Integrity): ಪ್ರತಿ ದೋಷರಹಿತ ಪ್ರಕ್ರಿಯೆಯು ಗರಿಷ್ಠ ಒಂದು ಮೌಲ್ಯದ ಬಗ್ಗೆ ನಿರ್ಧರಿಸುತ್ತದೆ.
ಈ ಮೂಲಭೂತ ಗುಣಲಕ್ಷಣಗಳ ಆಚೆಗೆ, ಹಲವಾರು ಕಾರ್ಯವಿಧಾನಗಳನ್ನು ಸಾಮಾನ್ಯವಾಗಿ ಬಳಸಲಾಗುತ್ತದೆ:
- ನಾಯಕನ ಆಯ್ಕೆ (Leader Election): ಅನೇಕ ಒಮ್ಮತದ ಅಲ್ಗಾರಿದಮ್ಗಳು ಮೌಲ್ಯಗಳನ್ನು ಪ್ರಸ್ತಾಪಿಸಲು ಮತ್ತು ಒಪ್ಪಂದದ ಪ್ರಕ್ರಿಯೆಯನ್ನು ಆಯೋಜಿಸಲು 'ನಾಯಕ'ನನ್ನು ನೇಮಿಸುತ್ತವೆ. ನಾಯಕ ವಿಫಲವಾದರೆ, ಹೊಸದನ್ನು ಆಯ್ಕೆ ಮಾಡಬೇಕು. ಇದು ಸಮನ್ವಯವನ್ನು ಸರಳಗೊಳಿಸುತ್ತದೆ ಆದರೆ ದೃಢವಾಗಿ ನಿರ್ವಹಿಸದಿದ್ದರೆ ಸಂಭಾವ್ಯ ಏಕ ವೈಫಲ್ಯದ ಬಿಂದುವನ್ನು ಪರಿಚಯಿಸುತ್ತದೆ (ಪ್ರಸ್ತಾಪಿಸಲು, ಒಪ್ಪಿಕೊಳ್ಳಲು ಅಲ್ಲ).
- ಕೋರಂಗಳು (Quorums): ಪ್ರತಿ ನೋಡ್ ಒಪ್ಪಿಕೊಳ್ಳಬೇಕೆಂದು ಬೇಡುವ ಬದಲು, ನೋಡ್ಗಳ 'ಕೋರಂ' (ಬಹುಮತ ಅಥವಾ ನಿರ್ದಿಷ್ಟ ಉಪಗುಂಪು) ಒಂದು ಪ್ರಸ್ತಾಪವನ್ನು ಒಪ್ಪಿಕೊಂಡಾಗ ಒಮ್ಮತವು ಆಗಾಗ್ಗೆ ತಲುಪುತ್ತದೆ. ಕೆಲವು ನೋಡ್ಗಳು ಸ್ಥಗಿತಗೊಂಡಿದ್ದರೂ ಅಥವಾ ನಿಧಾನವಾಗಿದ್ದರೂ ಸಹ ವ್ಯವಸ್ಥೆಯು ಮುಂದುವರಿಯಲು ಇದು ಅನುಮತಿಸುತ್ತದೆ. ಯಾವುದೇ ಎರಡು ಛೇದಿಸುವ ಕೋರಂಗಳು ಯಾವಾಗಲೂ ಕನಿಷ್ಠ ಒಂದು ಸಾಮಾನ್ಯ ನೋಡ್ ಅನ್ನು ಹಂಚಿಕೊಳ್ಳುವುದನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು ಕೋರಂ ಗಾತ್ರಗಳನ್ನು ಎಚ್ಚರಿಕೆಯಿಂದ ಆಯ್ಕೆ ಮಾಡಲಾಗುತ್ತದೆ, ಇದು ಸಂಘರ್ಷದ ನಿರ್ಧಾರಗಳನ್ನು ತಡೆಯುತ್ತದೆ.
- ಲಾಗ್ ಪ್ರತಿಕೃತಿ (Log Replication): ಒಮ್ಮತದ ಅಲ್ಗಾರಿದಮ್ಗಳು ಸಾಮಾನ್ಯವಾಗಿ ಬಹು ಯಂತ್ರಗಳಲ್ಲಿ ಆಜ್ಞೆಗಳ ಅನುಕ್ರಮವನ್ನು (ಲಾಗ್) ಪ್ರತಿಕೃತಿ ಮಾಡುವ ಮೂಲಕ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತವೆ. ಪ್ರತಿ ಆಜ್ಞೆ, ಒಮ್ಮೆ ಒಮ್ಮತದಿಂದ ಒಪ್ಪಿದ ನಂತರ, ಲಾಗ್ಗೆ ಸೇರಿಸಲಾಗುತ್ತದೆ. ಈ ಲಾಗ್ ನಂತರ 'ಸ್ಟೇಟ್ ಮೆಷಿನ್' ಗೆ ನಿರ್ಧರಿತ ಇನ್ಪುಟ್ ಆಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ, ಎಲ್ಲಾ ಪ್ರತಿಕೃತಿಗಳು ಆಜ್ಞೆಗಳನ್ನು ಒಂದೇ ಕ್ರಮದಲ್ಲಿ ಪ್ರಕ್ರಿಯೆಗೊಳಿಸುವುದನ್ನು ಮತ್ತು ಒಂದೇ ಸ್ಥಿತಿಯನ್ನು ತಲುಪುವುದನ್ನು ಖಚಿತಪಡಿಸುತ್ತದೆ.
ಜನಪ್ರಿಯ ಒಮ್ಮತದ ಅಲ್ಗಾರಿದಮ್ಗಳು ಮತ್ತು ಅವುಗಳ ಅನುಷ್ಠಾನಗಳು
ಒಮ್ಮತದ ಸೈದ್ಧಾಂತಿಕ ಭೂದೃಶ್ಯವು ವಿಶಾಲವಾಗಿದ್ದರೂ, ಪ್ರಾಯೋಗಿಕ ಕೇಂದ್ರೀಕೃತವಲ್ಲದ ವ್ಯವಸ್ಥೆಗಳಲ್ಲಿ ಕೆಲವು ಅಲ್ಗಾರಿದಮ್ಗಳು ಪ್ರಬಲ ಪರಿಹಾರಗಳಾಗಿ ಹೊರಹೊಮ್ಮಿವೆ. ಪ್ರತಿಯೊಂದೂ ಸಂಕೀರ್ಣತೆ, ಕಾರ್ಯಕ್ಷಮತೆ ಮತ್ತು ದೋಷ ಸಹಿಷ್ಣುತೆ ಗುಣಲಕ್ಷಣಗಳ ವಿಭಿನ್ನ ಸಮತೋಲನವನ್ನು ನೀಡುತ್ತದೆ.
Paxos: ಕೇಂದ್ರೀಕೃತವಲ್ಲದ ಒಮ್ಮತದ ಗಾಡ್ಫಾದರ್
1990 ರಲ್ಲಿ ಲೆಸ್ಲಿ ಲ್ಯಾಂಪೋರ್ಟ್ ಅವರು ಮೊದಲು ಪ್ರಕಟಿಸಿದರು (ಆದರೂ ಬಹಳ ನಂತರ ಮಾತ್ರ ವ್ಯಾಪಕವಾಗಿ ಅರ್ಥೈಸಿಕೊಳ್ಳಲಾಯಿತು), Paxos ನಿಸ್ಸಂದೇಹವಾಗಿ ಅತ್ಯಂತ ಪ್ರಭಾವಶಾಲಿ ಮತ್ತು ವ್ಯಾಪಕವಾಗಿ ಅಧ್ಯಯನ ಮಾಡಿದ ಒಮ್ಮತದ ಅಲ್ಗಾರಿದಮ್ ಆಗಿದೆ. ಕ್ರ್ಯಾಶ್-ಪೀಡಿತ ಪ್ರಕ್ರಿಯೆಗಳೊಂದಿಗೆ ಅಸಮಕಾಲಿಕ ನೆಟ್ವರ್ಕ್ನಲ್ಲಿ ಒಮ್ಮತವನ್ನು ಸಾಧಿಸುವ ಸಾಮರ್ಥ್ಯಕ್ಕಾಗಿ ಇದು ಪ್ರಸಿದ್ಧವಾಗಿದೆ, ಹೆಚ್ಚಿನ ಪ್ರಕ್ರಿಯೆಗಳು ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತಿದ್ದರೆ. ಆದಾಗ್ಯೂ, ಅದರ ಔಪಚಾರಿಕ ವಿವರಣೆಯು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲು ಕುಖ್ಯಾತವಾಗಿ ಕಷ್ಟಕರವಾಗಿದೆ, ಇದು "Paxos ಸರಳವಾಗಿದೆ, ಒಮ್ಮೆ ನಿಮಗೆ ಅದು ಅರ್ಥವಾದರೆ" ಎಂಬ ಮಾತಿಗೆ ಕಾರಣವಾಯಿತು.
Paxos ಹೇಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ (ಸರಳೀಕೃತ)
Paxos ಮೂರು ರೀತಿಯ ಭಾಗವಹಿಸುವವರನ್ನು ವ್ಯಾಖ್ಯಾನಿಸುತ್ತದೆ:
- ಪ್ರಸ್ತಾಪಕರು (Proposers): ಒಪ್ಪಿಕೊಳ್ಳಬೇಕಾದ ಮೌಲ್ಯವನ್ನು ಪ್ರಸ್ತಾಪಿಸುತ್ತಾರೆ.
- ಅಂಗೀಕರಿಸುವವರು (Acceptors): ಪ್ರಸ್ತಾಪಿಸಿದ ಮೌಲ್ಯಗಳ ಮೇಲೆ ಮತ ಚಲಾಯಿಸುತ್ತಾರೆ. ಅವರು ತಾವು ನೋಡಿದ ಅತ್ಯಧಿಕ ಪ್ರಸ್ತಾಪ ಸಂಖ್ಯೆ ಮತ್ತು ಅವರು ಅಂಗೀಕರಿಸಿದ ಮೌಲ್ಯವನ್ನು ಸಂಗ್ರಹಿಸುತ್ತಾರೆ.
- ಕಲಿಯುವವರು (Learners): ಯಾವ ಮೌಲ್ಯವನ್ನು ಆಯ್ಕೆ ಮಾಡಲಾಗಿದೆ ಎಂಬುದನ್ನು ಕಂಡುಹಿಡಿಯುತ್ತಾರೆ.
ಅಲ್ಗಾರಿದಮ್ ಎರಡು ಮುಖ್ಯ ಹಂತಗಳಲ್ಲಿ ಮುಂದುವರಿಯುತ್ತದೆ:
-
ಹಂತ 1 (ಸಿದ್ಧತೆ - Prepare):
- 1a (ಸಿದ್ಧತೆ): ಒಬ್ಬ ಪ್ರಸ್ತಾಪಕ ಹೊಸ, ಜಾಗತಿಕವಾಗಿ ಅನನ್ಯ ಪ್ರಸ್ತಾಪ ಸಂಖ್ಯೆ
nನೊಂದಿಗೆ 'Prepare' ಸಂದೇಶವನ್ನು ಬಹುಮತದ Acceptors ಗೆ ಕಳುಹಿಸುತ್ತಾನೆ. - 1b (ಭರವಸೆ - Promise): ಒಂದು Acceptor, Prepare ಸಂದೇಶ
(n)ಅನ್ನು ಸ್ವೀಕರಿಸಿದ ನಂತರ,nಗಿಂತ ಕಡಿಮೆ ಸಂಖ್ಯೆಯ ಯಾವುದೇ ಭವಿಷ್ಯದ ಪ್ರಸ್ತಾಪಗಳನ್ನು ನಿರ್ಲಕ್ಷಿಸಲು 'Promise' ನೊಂದಿಗೆ ಪ್ರತಿಕ್ರಿಯಿಸುತ್ತದೆ. ಅದು ಹಿಂದಿನ ಪ್ರಸ್ತಾಪಕ್ಕಾಗಿ ಈಗಾಗಲೇ ಒಂದು ಮೌಲ್ಯವನ್ನು ಅಂಗೀಕರಿಸಿದ್ದರೆ, ಅದು ಅತ್ಯಧಿಕ ಸಂಖ್ಯೆಯ ಅಂಗೀಕೃತ ಮೌಲ್ಯ(v_accepted)ಮತ್ತು ಅದರ ಪ್ರಸ್ತಾಪ ಸಂಖ್ಯೆ(n_accepted)ಅನ್ನು ತನ್ನ ಪ್ರತಿಕ್ರಿಯೆಯಲ್ಲಿ ಸೇರಿಸುತ್ತದೆ.
- 1a (ಸಿದ್ಧತೆ): ಒಬ್ಬ ಪ್ರಸ್ತಾಪಕ ಹೊಸ, ಜಾಗತಿಕವಾಗಿ ಅನನ್ಯ ಪ್ರಸ್ತಾಪ ಸಂಖ್ಯೆ
-
ಹಂತ 2 (ಅಂಗೀಕಾರ - Accept):
- 2a (ಅಂಗೀಕಾರ): ಪ್ರಸ್ತಾಪಕನು ಬಹುಮತದ Acceptors ನಿಂದ Promises ಅನ್ನು ಸ್ವೀಕರಿಸಿದರೆ, ಅದು ತನ್ನ ಪ್ರಸ್ತಾಪಕ್ಕಾಗಿ ಮೌಲ್ಯ
vಅನ್ನು ಆಯ್ಕೆ ಮಾಡುತ್ತದೆ. ಯಾವುದೇ Acceptor ಹಿಂದಿನ ಅಂಗೀಕೃತ ಮೌಲ್ಯv_acceptedಅನ್ನು ವರದಿ ಮಾಡಿದ್ದರೆ, ಪ್ರಸ್ತಾಪಕನು ಅತ್ಯಧಿಕn_acceptedಗೆ ಸಂಬಂಧಿಸಿದ ಮೌಲ್ಯವನ್ನು ಆರಿಸಬೇಕು. ಇಲ್ಲದಿದ್ದರೆ, ಅದು ತನ್ನದೇ ಆದ ಮೌಲ್ಯವನ್ನು ಪ್ರಸ್ತಾಪಿಸಬಹುದು. ನಂತರ ಅದು ಪ್ರಸ್ತಾಪ ಸಂಖ್ಯೆnಮತ್ತು ಆಯ್ದ ಮೌಲ್ಯvಅನ್ನು ಒಳಗೊಂಡಿರುವ 'Accept' ಸಂದೇಶವನ್ನು ಅದೇ ಬಹುಮತದ Acceptors ಗೆ ಕಳುಹಿಸುತ್ತದೆ. - 2b (ಅಂಗೀಕರಿಸಲಾಗಿದೆ - Accepted): ಒಂದು Acceptor, Accept ಸಂದೇಶ
(n, v)ಅನ್ನು ಸ್ವೀಕರಿಸಿದ ನಂತರ,nಗಿಂತ ಕಡಿಮೆ ಸಂಖ್ಯೆಯ ಪ್ರಸ್ತಾಪಗಳನ್ನು ನಿರ್ಲಕ್ಷಿಸುವುದಾಗಿ ಭರವಸೆ ನೀಡದಿದ್ದರೆ ಮೌಲ್ಯvಅನ್ನು ಅಂಗೀಕರಿಸುತ್ತದೆ. ನಂತರ ಅದು Learners ಗೆ ಅಂಗೀಕೃತ ಮೌಲ್ಯದ ಬಗ್ಗೆ ತಿಳಿಸುತ್ತದೆ.
- 2a (ಅಂಗೀಕಾರ): ಪ್ರಸ್ತಾಪಕನು ಬಹುಮತದ Acceptors ನಿಂದ Promises ಅನ್ನು ಸ್ವೀಕರಿಸಿದರೆ, ಅದು ತನ್ನ ಪ್ರಸ್ತಾಪಕ್ಕಾಗಿ ಮೌಲ್ಯ
Paxos ನ ಅನುಕೂಲಗಳು ಮತ್ತು ಅನಾನುಕೂಲಗಳು
- ಅನುಕೂಲಗಳು: ಅತಿ ಹೆಚ್ಚು ದೋಷ-ಸಹಿಷ್ಣು (
2f+1ನೋಡ್ಗಳಲ್ಲಿfಕ್ರ್ಯಾಶ್ ವೈಫಲ್ಯಗಳನ್ನು ಸಹಿಸಿಕೊಳ್ಳಬಲ್ಲದು). ನೆಟ್ವರ್ಕ್ ವಿಭಾಗಗಳ ಸಮಯದಲ್ಲಿಯೂ ಸಹ ಸುರಕ್ಷತೆಯನ್ನು ಖಾತರಿಪಡಿಸುತ್ತದೆ (ತಪ್ಪಾಗಿ ನಿರ್ಧರಿಸುವುದಿಲ್ಲ). ನಿಶ್ಚಿತ ನಾಯಕನಿಲ್ಲದೆ ಪ್ರಗತಿ ಸಾಧಿಸಬಹುದು (ನಾಯಕನ ಆಯ್ಕೆಯು ಅದನ್ನು ಸರಳಗೊಳಿಸುತ್ತದೆ). - ಅನಾನುಕೂಲಗಳು: ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲು ಮತ್ತು ಸರಿಯಾಗಿ ಕಾರ್ಯಗತಗೊಳಿಸಲು ಅತಿ ಹೆಚ್ಚು ಸಂಕೀರ್ಣ. ನಿರ್ದಿಷ್ಟ ಆಪ್ಟಿಮೈಸೇಶನ್ಗಳಿಲ್ಲದೆ (ಉದಾಹರಣೆಗೆ, Multi-Paxos ನಲ್ಲಿ ಪ್ರಖ್ಯಾತ ನಾಯಕನನ್ನು ಬಳಸುವುದು) ಜೀವಂತಿಕೆಯ ಸಮಸ್ಯೆಗಳಿಂದ (ಉದಾಹರಣೆಗೆ, ಪುನರಾವರ್ತಿತ ನಾಯಕನ ಆಯ್ಕೆಗಳು, ಇದು ಬಳಲಿಕೆಗೆ ಕಾರಣವಾಗುತ್ತದೆ) ಬಳಲಬಹುದು.
ಪ್ರಾಯೋಗಿಕ ಅನುಷ್ಠಾನಗಳು ಮತ್ತು ರೂಪಾಂತರಗಳು
ಅದರ ಸಂಕೀರ್ಣತೆಯಿಂದಾಗಿ, ಶುದ್ಧ Paxos ಅನ್ನು ನೇರವಾಗಿ ಕಾರ್ಯಗತಗೊಳಿಸುವುದು ವಿರಳ. ಬದಲಾಗಿ, ವ್ಯವಸ್ಥೆಗಳು ಸಾಮಾನ್ಯವಾಗಿ Multi-Paxos ನಂತಹ ರೂಪಾಂತರಗಳನ್ನು ಬಳಸುತ್ತವೆ, ಇದು ಸ್ಥಿರ ನಾಯಕನು ಅನೇಕ ಮೌಲ್ಯಗಳನ್ನು ಅನುಕ್ರಮವಾಗಿ ಪ್ರಸ್ತಾಪಿಸುವ ಮೂಲಕ ಒಮ್ಮತದ ಬಹು ಸುತ್ತುಗಳಾದ್ಯಂತ ನಾಯಕನ ಆಯ್ಕೆಯ ಓವರ್ಹೆಡ್ ಅನ್ನು ಭರಿಸುತ್ತದೆ. Paxos (ಅಥವಾ ಅದರ ಉತ್ಪನ್ನಗಳು) ನಿಂದ ಪ್ರಭಾವಿತವಾದ ಅಥವಾ ನೇರವಾಗಿ ಬಳಸುವ ವ್ಯವಸ್ಥೆಗಳ ಉದಾಹರಣೆಗಳಲ್ಲಿ Google ನ Chubby ಲಾಕ್ ಸೇವೆ, Apache ZooKeeper (ZAB ಅನ್ನು ಬಳಸುತ್ತದೆ, Paxos-ನಂತಹ ಅಲ್ಗಾರಿದಮ್), ಮತ್ತು ವಿವಿಧ ಕೇಂದ್ರೀಕೃತವಲ್ಲದ ಡೇಟಾಬೇಸ್ ವ್ಯವಸ್ಥೆಗಳು ಸೇರಿವೆ.
Raft: ಸುಲಭವಾಗಿ ಅರ್ಥವಾಗುವ ಒಮ್ಮತ
Raft ಅನ್ನು ಸ್ಟ್ಯಾನ್ಫೋರ್ಡ್ ವಿಶ್ವವಿದ್ಯಾಲಯದಲ್ಲಿ ಡಿಯಾಗೋ ಒಂಗಾರೋ ಮತ್ತು ಜಾನ್ ಔಸ್ಟರ್ಹೌಟ್ ಅವರು 'ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲು ಸುಲಭ' ಎಂಬ ಸ್ಪಷ್ಟ ಗುರಿಯೊಂದಿಗೆ ಅಭಿವೃದ್ಧಿಪಡಿಸಿದರು. Paxos ಒಮ್ಮತಕ್ಕಾಗಿ ಸೈದ್ಧಾಂತಿಕ ಕನಿಷ್ಠದ ಮೇಲೆ ಕೇಂದ್ರೀಕರಿಸಿದರೆ, Raft ಹೆಚ್ಚು ಸಂರಚನಾತ್ಮಕ ಮತ್ತು ಅರ್ಥಗರ್ಭಿತ ವಿಧಾನಕ್ಕೆ ಆದ್ಯತೆ ನೀಡುತ್ತದೆ, ಇದು ಕಾರ್ಯಗತಗೊಳಿಸಲು ಮತ್ತು ತರ್ಕಿಸಲು ಗಣನೀಯವಾಗಿ ಸುಲಭವಾಗಿಸುತ್ತದೆ.
Raft ಹೇಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ
Raft ತನ್ನ ನೋಡ್ಗಳಿಗೆ ಸ್ಪಷ್ಟ ಪಾತ್ರಗಳನ್ನು ಮತ್ತು ಸರಳ ಸ್ಥಿತಿ ಪರಿವರ್ತನೆಗಳನ್ನು ವ್ಯಾಖ್ಯಾನಿಸುವ ಮೂಲಕ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ:
- ನಾಯಕ (Leader): ಎಲ್ಲಾ ಕ್ಲೈಂಟ್ ವಿನಂತಿಗಳನ್ನು ನಿರ್ವಹಿಸಲು, ಲಾಗ್ ನಮೂದುಗಳನ್ನು ಪ್ರಸ್ತಾಪಿಸಲು ಮತ್ತು ಅವುಗಳನ್ನು ಅನುಯಾಯಿಗಳಿಗೆ ಪ್ರತಿಕೃತಿ ಮಾಡಲು ಜವಾಬ್ದಾರಿಯುತ ಪ್ರಾಥಮಿಕ ನೋಡ್. ಒಂದೇ ಸಮಯದಲ್ಲಿ ಒಬ್ಬ ನಾಯಕ ಮಾತ್ರ ಇರುತ್ತಾನೆ.
- ಅನುಯಾಯಿ (Follower): ನಾಯಕನಿಂದ ವಿನಂತಿಗಳಿಗೆ ಪ್ರತಿಕ್ರಿಯಿಸುವ ಮತ್ತು ಅಭ್ಯರ್ಥಿಗಳಿಗೆ ಮತ ಚಲಾಯಿಸುವ ನಿಷ್ಕ್ರಿಯ ನೋಡ್ಗಳು.
- ಅಭ್ಯರ್ಥಿ (Candidate): ನಾಯಕ ವಿಫಲನಾಗಿದ್ದಾನೆ ಎಂದು ನಂಬಿದಾಗ ಅನುಯಾಯಿಯು ಬದಲಾಯಿಸುವ ಸ್ಥಿತಿ, ಹೊಸ ನಾಯಕನ ಆಯ್ಕೆಯನ್ನು ಪ್ರಾರಂಭಿಸುತ್ತದೆ.
Raft ಎರಡು ಪ್ರಮುಖ ಕಾರ್ಯವಿಧಾನಗಳ ಮೂಲಕ ಒಮ್ಮತವನ್ನು ಸಾಧಿಸುತ್ತದೆ:
- ನಾಯಕನ ಆಯ್ಕೆ (Leader Election): ಒಂದು ಅನುಯಾಯಿ ನಿರ್ದಿಷ್ಟ ಸಮಯದವರೆಗೆ ನಾಯಕನಿಂದ ಕೇಳದಿದ್ದಾಗ, ಅದು ಅಭ್ಯರ್ಥಿಯಾಗುತ್ತದೆ. ಅದು ತನ್ನ ಪ್ರಸ್ತುತ ಅವಧಿಯನ್ನು (ತಾರ್ಕಿಕ ಗಡಿಯಾರ) ಹೆಚ್ಚಿಸುತ್ತದೆ ಮತ್ತು ಸ್ವತಃ ಮತ ಚಲಾಯಿಸುತ್ತದೆ. ನಂತರ ಅದು ಇತರ ನೋಡ್ಗಳಿಗೆ 'RequestVote' RPC ಗಳನ್ನು ಕಳುಹಿಸುತ್ತದೆ. ಬಹುಮತದಿಂದ ಮತಗಳನ್ನು ಪಡೆದರೆ, ಅದು ಹೊಸ ನಾಯಕನಾಗುತ್ತದೆ. ಮತ್ತೊಂದು ನೋಡ್ ನಾಯಕನಾದರೆ ಅಥವಾ ವಿಭಜಿತ ಮತ ಸಂಭವಿಸಿದರೆ, ಹೊಸ ಚುನಾವಣಾ ಅವಧಿ ಪ್ರಾರಂಭವಾಗುತ್ತದೆ.
- ಲಾಗ್ ಪ್ರತಿಕೃತಿ (Log Replication): ಒಮ್ಮೆ ನಾಯಕನನ್ನು ಆಯ್ಕೆ ಮಾಡಿದ ನಂತರ, ಅದು ಕ್ಲೈಂಟ್ ಆಜ್ಞೆಗಳನ್ನು ಸ್ವೀಕರಿಸುತ್ತದೆ ಮತ್ತು ಅವುಗಳನ್ನು ತನ್ನ ಸ್ಥಳೀಯ ಲಾಗ್ಗೆ ಸೇರಿಸುತ್ತದೆ. ನಂತರ ಅದು ಈ ನಮೂದುಗಳನ್ನು ಪ್ರತಿಕೃತಿ ಮಾಡಲು ಎಲ್ಲಾ ಅನುಯಾಯಿಗಳಿಗೆ 'AppendEntries' RPC ಗಳನ್ನು ಕಳುಹಿಸುತ್ತದೆ. ನಾಯಕನು ತನ್ನ ಬಹುಮತದ ಅನುಯಾಯಿಗಳಿಗೆ ಅದನ್ನು ಪ್ರತಿಕೃತಿ ಮಾಡಿದ ನಂತರ ಲಾಗ್ ನಮೂದಿಯನ್ನು ಸಮರ್ಪಿಸಲಾಗುತ್ತದೆ. ಸಮರ್ಪಿತ ನಮೂದುಗಳನ್ನು ಮಾತ್ರ ಸ್ಟೇಟ್ ಮೆಷಿನ್ಗೆ ಅನ್ವಯಿಸಲಾಗುತ್ತದೆ.
Raft ನ ಅನುಕೂಲಗಳು ಮತ್ತು ಅನಾನುಕೂಲಗಳು
- ಅನುಕೂಲಗಳು: Paxos ಗಿಂತ ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲು ಮತ್ತು ಕಾರ್ಯಗತಗೊಳಿಸಲು ಗಣನೀಯವಾಗಿ ಸುಲಭ. ಪ್ರಬಲ ನಾಯಕನ ಮಾದರಿ ಕ್ಲೈಂಟ್ ಸಂವಹನ ಮತ್ತು ಲಾಗ್ ನಿರ್ವಹಣೆಯನ್ನು ಸರಳಗೊಳಿಸುತ್ತದೆ. ಕ್ರ್ಯಾಶ್ ವೈಫಲ್ಯಗಳ ಅಡಿಯಲ್ಲಿ ಸುರಕ್ಷತೆ ಮತ್ತು ಜೀವಂತಿಕೆಯನ್ನು ಖಾತರಿಪಡಿಸುತ್ತದೆ.
- ಅನಾನುಕೂಲಗಳು: ಪ್ರಬಲ ನಾಯಕನು ಬರವಣಿಗೆ-ಭಾರೀ ಕೆಲಸದ ಹೊರೆಗಳಿಗೆ (write-heavy workloads) ಬಾಟಲ್ನೆಕ್ ಆಗಿರಬಹುದು (ಆದರೂ ಇದು ಅನೇಕ ಬಳಕೆಯ ಸಂದರ್ಭಗಳಿಗೆ ಆಗಾಗ್ಗೆ ಸ್ವೀಕಾರಾರ್ಹ). ಪ್ರಗತಿಗಾಗಿ ಸ್ಥಿರ ನಾಯಕನ ಅಗತ್ಯವಿದೆ, ಇದು ಆಗಾಗ್ಗೆ ನೆಟ್ವರ್ಕ್ ವಿಭಾಗಗಳು ಅಥವಾ ನಾಯಕನ ವೈಫಲ್ಯಗಳಿಂದ ಪ್ರಭಾವಿತವಾಗಬಹುದು.
Raft ನ ಪ್ರಾಯೋಗಿಕ ಅನುಷ್ಠಾನಗಳು
Raft ನ ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವ ಸುಲಭತೆಯ ವಿನ್ಯಾಸವು ಅದರ ವ್ಯಾಪಕ ಅಳವಡಿಕೆಗೆ ಕಾರಣವಾಗಿದೆ. ಪ್ರಮುಖ ಉದಾಹರಣೆಗಳು ಸೇರಿವೆ:
- etcd: Kubernetes ನಿಂದ ಕ್ಲಸ್ಟರ್ ಸಮನ್ವಯ ಮತ್ತು ಸ್ಥಿತಿ ನಿರ್ವಹಣೆಗಾಗಿ ಬಳಸಲಾಗುವ ಕೇಂದ್ರೀಕೃತವಲ್ಲದ ಕೀ-ಮೌಲ್ಯ ಸಂಗ್ರಹ.
- Consul: ಸೇವಾ ಅನ್ವೇಷಣೆ ಮತ್ತು ಸಂರಚನೆಗಾಗಿ ತನ್ನ ಹೆಚ್ಚು ಲಭ್ಯವಿರುವ ಮತ್ತು ಸ್ಥಿರವಾದ ದತ್ತಾಂಶ ಸಂಗ್ರಹಕ್ಕಾಗಿ Raft ಅನ್ನು ಬಳಸುವ ಸೇವಾ ಮೆಶ್ ಪರಿಹಾರ.
- cockroachDB: ತನ್ನ ಆಧಾರವಾಗಿರುವ ಸಂಗ್ರಹಣೆ ಮತ್ತು ಪ್ರತಿಕೃತಿಗಾಗಿ Raft-ಆಧಾರಿತ ವಿಧಾನವನ್ನು ಬಳಸುವ ಕೇಂದ್ರೀಕೃತವಲ್ಲದ SQL ಡೇಟಾಬೇಸ್.
- HashiCorp Nomad: ತನ್ನ ಏಜೆಂಟ್ಗಳನ್ನು ಸಂಯೋಜಿಸಲು Raft ಅನ್ನು ಬಳಸುವ ಕೆಲಸದ ಹೊರೆ ಆರ್ಕೆಸ್ಟ್ರೇಟರ್.
ZAB (ZooKeeper Atomic Broadcast)
ZAB ಎಂಬುದು ಅಪಾಚೆ ಝೂಕೀಪರ್ನ ಹೃದಯದಲ್ಲಿರುವ ಒಮ್ಮತದ ಅಲ್ಗಾರಿದಮ್ ಆಗಿದೆ, ಇದು ವ್ಯಾಪಕವಾಗಿ ಬಳಸಲಾಗುವ ಕೇಂದ್ರೀಕೃತವಲ್ಲದ ಸಮನ್ವಯ ಸೇವೆಯಾಗಿದೆ. ಇದನ್ನು ಸಾಮಾನ್ಯವಾಗಿ Paxos ಗೆ ಹೋಲಿಸಿದರೂ, ZAB ಅನ್ನು ಝೂಕೀಪರ್ನ ರಾಜ್ಯ ಬದಲಾವಣೆಗಳಿಗೆ ಆದೇಶಿತ, ವಿಶ್ವಾಸಾರ್ಹ ಪ್ರಸಾರವನ್ನು ಒದಗಿಸುವ ಮತ್ತು ನಾಯಕನ ಆಯ್ಕೆಯನ್ನು ನಿರ್ವಹಿಸುವ ಅವಶ್ಯಕತೆಗಳಿಗಾಗಿ ನಿರ್ದಿಷ್ಟವಾಗಿ ವಿನ್ಯಾಸಗೊಳಿಸಲಾಗಿದೆ.
ZAB ಹೇಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ
ZAB ಎಲ್ಲಾ ಝೂಕೀಪರ್ ಪ್ರತಿಕೃತಿಗಳ ಸ್ಥಿತಿಯನ್ನು ಸಿಂಕ್ರೊನೈಸ್ ಆಗಿ ಇರಿಸಿಕೊಳ್ಳುವ ಗುರಿಯನ್ನು ಹೊಂದಿದೆ. ಇದು ಹಲವಾರು ಹಂತಗಳ ಮೂಲಕ ಇದನ್ನು ಸಾಧಿಸುತ್ತದೆ:
- ನಾಯಕನ ಆಯ್ಕೆ (Leader Election): ಝೂಕೀಪರ್ ಪರಮಾಣು ಪ್ರಸಾರ ಪ್ರೋಟೋಕಾಲ್ನ ಒಂದು ಮಾರ್ಪಾಡನ್ನು (ನಾಯಕನ ಆಯ್ಕೆಯನ್ನು ಒಳಗೊಂಡಿದೆ) ಬಳಸುತ್ತದೆ, ಒಂದೇ ನಾಯಕ ಯಾವಾಗಲೂ ಸಕ್ರಿಯನಾಗಿರುವುದನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು. ಪ್ರಸ್ತುತ ನಾಯಕ ವಿಫಲವಾದಾಗ, ಹೊಸ ನಾಯಕನಿಗಾಗಿ ನೋಡ್ಗಳು ಮತ ಚಲಾಯಿಸುವ ಚುನಾವಣಾ ಪ್ರಕ್ರಿಯೆ ಪ್ರಾರಂಭವಾಗುತ್ತದೆ, ಸಾಮಾನ್ಯವಾಗಿ ಅತ್ಯಂತ ನವೀಕೃತ ಲಾಗ್ ಹೊಂದಿರುವ ನೋಡ್.
- ಶೋಧನೆ (Discovery): ಒಮ್ಮೆ ನಾಯಕನನ್ನು ಆಯ್ಕೆ ಮಾಡಿದ ನಂತರ, ಅದು ತನ್ನ ಅನುಯಾಯಿಗಳಿಂದ ಇತ್ತೀಚಿನ ಸ್ಥಿತಿಯನ್ನು ನಿರ್ಧರಿಸಲು ಶೋಧನೆ ಹಂತವನ್ನು ಪ್ರಾರಂಭಿಸುತ್ತದೆ. ಅನುಯಾಯಿಗಳು ತಮ್ಮ ಅತ್ಯಧಿಕ ಲಾಗ್ ID ಗಳನ್ನು ನಾಯಕನಿಗೆ ಕಳುಹಿಸುತ್ತಾರೆ.
- ಸಿಂಕ್ರೊನೈಸೇಶನ್ (Synchronization): ನಾಯಕ ನಂತರ ತನ್ನ ಸ್ಥಿತಿಯನ್ನು ಅನುಯಾಯಿಗಳೊಂದಿಗೆ ಸಿಂಕ್ರೊನೈಸ್ ಮಾಡುತ್ತಾನೆ, ಅವುಗಳನ್ನು ನವೀಕರಿಸಲು ಯಾವುದೇ ಕಾಣೆಯಾದ ವಹಿವಾಟುಗಳನ್ನು ಕಳುಹಿಸುತ್ತಾನೆ.
- ಪ್ರಸಾರ (Broadcast): ಸಿಂಕ್ರೊನೈಸೇಶನ್ ನಂತರ, ವ್ಯವಸ್ಥೆಯು ಪ್ರಸಾರ ಹಂತವನ್ನು ಪ್ರವೇಶಿಸುತ್ತದೆ. ನಾಯಕನು ಹೊಸ ವಹಿವಾಟುಗಳನ್ನು (ಕ್ಲೈಂಟ್ ಬರವಣಿಗೆಗಳು) ಪ್ರಸ್ತಾಪಿಸುತ್ತಾನೆ, ಮತ್ತು ಈ ಪ್ರಸ್ತಾಪಗಳನ್ನು ಅನುಯಾಯಿಗಳಿಗೆ ಪ್ರಸಾರ ಮಾಡಲಾಗುತ್ತದೆ. ಬಹುಮತದ ಅನುಯಾಯಿಗಳು ಪ್ರಸ್ತಾಪವನ್ನು ಒಪ್ಪಿಕೊಂಡ ನಂತರ, ನಾಯಕನು ಅದನ್ನು ಸಮರ್ಪಿಸುತ್ತಾನೆ ಮತ್ತು ಸಮರ್ಪಣಾ ಸಂದೇಶವನ್ನು ಪ್ರಸಾರ ಮಾಡುತ್ತಾನೆ. ನಂತರ ಅನುಯಾಯಿಗಳು ಸಮರ್ಪಿತ ವಹಿವಾಟನ್ನು ತಮ್ಮ ಸ್ಥಳೀಯ ಸ್ಥಿತಿಗೆ ಅನ್ವಯಿಸುತ್ತವೆ.
ZAB ನ ಪ್ರಮುಖ ಗುಣಲಕ್ಷಣಗಳು
- ಸಂಪೂರ್ಣ ಆದೇಶದ ಪ್ರಸಾರದ ಮೇಲೆ ಕೇಂದ್ರೀಕರಿಸುತ್ತದೆ, ಎಲ್ಲಾ ಅಪ್ಡೇಟ್ಗಳನ್ನು ಎಲ್ಲಾ ಪ್ರತಿಕೃತಿಗಳಾದ್ಯಂತ ಒಂದೇ ಕ್ರಮದಲ್ಲಿ ಪ್ರಕ್ರಿಯೆಗೊಳಿಸುವುದನ್ನು ಖಚಿತಪಡಿಸುತ್ತದೆ.
- ಹೆಚ್ಚಿನ ಥ್ರೂಪುಟ್ ನಿರ್ವಹಿಸಲು ನಾಯಕನ ಸ್ಥಿರತೆಯ ಮೇಲೆ ಬಲವಾದ ಒತ್ತು.
- ನಾಯಕನ ಆಯ್ಕೆ ಮತ್ತು ಸ್ಥಿತಿ ಸಿಂಕ್ರೊನೈಸೇಶನ್ ಅನ್ನು ಪ್ರಮುಖ ಘಟಕಗಳಾಗಿ ಸಂಯೋಜಿಸುತ್ತದೆ.
ZAB ನ ಪ್ರಾಯೋಗಿಕ ಬಳಕೆ
ಅಪಾಚೆ ಝೂಕೀಪರ್ ಅಪಾಚೆ ಕಾಫ್ಕಾ, ಹಡೂಪ್, HBase, ಮತ್ತು ಸೊಲ್ರ್ ಸೇರಿದಂತೆ ಅನೇಕ ಇತರ ಕೇಂದ್ರೀಕೃತವಲ್ಲದ ವ್ಯವಸ್ಥೆಗಳಿಗೆ ಮೂಲಭೂತ ಸೇವೆಯನ್ನು ಒದಗಿಸುತ್ತದೆ, ಇದು ವಿತರಿತ ಸಂರಚನೆ, ನಾಯಕನ ಆಯ್ಕೆ ಮತ್ತು ಹೆಸರಿಸುವಿಕೆಯಂತಹ ಸೇವೆಗಳನ್ನು ನೀಡುತ್ತದೆ. ಇದರ ವಿಶ್ವಾಸಾರ್ಹತೆಯು ದೃಢವಾದ ZAB ಪ್ರೋಟೋಕಾಲ್ನಿಂದ ನೇರವಾಗಿ ಬರುತ್ತದೆ.
ಬೈಜಾಂಟೈನ್ ದೋಷ ಸಹಿಷ್ಣುತೆ (BFT) ಅಲ್ಗಾರಿದಮ್ಗಳು
Paxos, Raft ಮತ್ತು ZAB ಪ್ರಾಥಮಿಕವಾಗಿ ಕ್ರ್ಯಾಶ್ ದೋಷಗಳನ್ನು ನಿರ್ವಹಿಸಿದರೆ, ಕೆಲವು ಪರಿಸರಗಳು ಬೈಜಾಂಟೈನ್ ದೋಷಗಳ ವಿರುದ್ಧ ಸ್ಥಿತಿಸ್ಥಾಪಕತ್ವವನ್ನು ಬಯಸುತ್ತವೆ, ಅಲ್ಲಿ ನೋಡ್ಗಳು ದುರುದ್ದೇಶಪೂರಿತವಾಗಿ ಅಥವಾ ಅನಿಯಂತ್ರಿತವಾಗಿ ವರ್ತಿಸಬಹುದು. ಇದು ಸಾರ್ವಜನಿಕ ಬ್ಲಾಕ್ಚೈನ್ಗಳು ಅಥವಾ ಅತಿ ಸೂಕ್ಷ್ಮ ಸರ್ಕಾರಿ/ಮಿಲಿಟರಿ ವ್ಯವಸ್ಥೆಗಳಂತಹ ವಿಶ್ವಾಸರಹಿತ ಪರಿಸರಗಳಲ್ಲಿ ನಿರ್ದಿಷ್ಟವಾಗಿ ಪ್ರಸ್ತುತವಾಗಿದೆ.
ಪ್ರಾಯೋಗಿಕ ಬೈಜಾಂಟೈನ್ ದೋಷ ಸಹಿಷ್ಣುತೆ (PBFT)
1999 ರಲ್ಲಿ ಕ್ಯಾಸ್ಟ್ರೋ ಮತ್ತು ಲಿಸ್ಕೋವ್ ಪ್ರಸ್ತಾಪಿಸಿದ PBFT, ಅತ್ಯಂತ ಪ್ರಸಿದ್ಧ ಮತ್ತು ಪ್ರಾಯೋಗಿಕ BFT ಅಲ್ಗಾರಿದಮ್ಗಳಲ್ಲಿ ಒಂದಾಗಿದೆ. ಇದು ಕೇಂದ್ರೀಕೃತವಲ್ಲದ ವ್ಯವಸ್ಥೆಗೆ ಅದರ ನೋಡ್ಗಳಲ್ಲಿ ಮೂರನೇ ಒಂದು ಭಾಗದಷ್ಟು ಬೈಜಾಂಟೈನ್ (ದುರುದ್ದೇಶಪೂರಿತ ಅಥವಾ ದೋಷಪೂರಿತ) ಆಗಿದ್ದರೂ ಸಹ ಒಮ್ಮತವನ್ನು ತಲುಪಲು ಅನುಮತಿಸುತ್ತದೆ.
PBFT ಹೇಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ (ಸರಳೀಕೃತ)
PBFT ವೀಕ್ಷಣೆಗಳ ಸರಣಿಯಲ್ಲಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ, ಪ್ರತಿಯೊಂದೂ ಗೊತ್ತುಪಡಿಸಿದ ಪ್ರಾಥಮಿಕವನ್ನು (ನಾಯಕ) ಹೊಂದಿರುತ್ತದೆ. ಪ್ರಾಥಮಿಕ ವಿಫಲವಾದಾಗ ಅಥವಾ ದೋಷಪೂರಿತವೆಂದು ಶಂಕಿಸಿದಾಗ, ಹೊಸ ಪ್ರಾಥಮಿಕವನ್ನು ಆಯ್ಕೆ ಮಾಡಲು ವೀಕ್ಷಣೆ ಬದಲಾವಣೆ ಪ್ರೋಟೋಕಾಲ್ ಅನ್ನು ಪ್ರಾರಂಭಿಸಲಾಗುತ್ತದೆ.
ಕ್ಲೈಂಟ್ ವಿನಂತಿಯ ಸಾಮಾನ್ಯ ಕಾರ್ಯಾಚರಣೆಯು ಹಲವಾರು ಹಂತಗಳನ್ನು ಒಳಗೊಂಡಿರುತ್ತದೆ:
- ಕ್ಲೈಂಟ್ ವಿನಂತಿ (Client Request): ಒಬ್ಬ ಕ್ಲೈಂಟ್ ಪ್ರಾಥಮಿಕ ನೋಡ್ಗೆ ವಿನಂತಿಯನ್ನು ಕಳುಹಿಸುತ್ತಾನೆ.
- ಪೂರ್ವ-ಸಿದ್ಧತೆ (Pre-Prepare): ಪ್ರಾಥಮಿಕವು ವಿನಂತಿಗೆ ಅನುಕ್ರಮ ಸಂಖ್ಯೆಯನ್ನು ನಿಗದಿಪಡಿಸುತ್ತದೆ ಮತ್ತು 'Pre-Prepare' ಸಂದೇಶವನ್ನು ಎಲ್ಲಾ ಬ್ಯಾಕಪ್ (ಅನುಯಾಯಿ) ನೋಡ್ಗಳಿಗೆ ಮಲ್ಟಿಕಾಸ್ಟ್ ಮಾಡುತ್ತದೆ. ಇದು ವಿನಂತಿಗೆ ಆರಂಭಿಕ ಆದೇಶವನ್ನು ಸ್ಥಾಪಿಸುತ್ತದೆ.
- ಸಿದ್ಧತೆ (Prepare): Pre-Prepare ಸಂದೇಶವನ್ನು ಸ್ವೀಕರಿಸಿದ ನಂತರ, ಬ್ಯಾಕಪ್ಗಳು ಅದರ ದೃಢೀಕರಣವನ್ನು ಪರಿಶೀಲಿಸುತ್ತವೆ ಮತ್ತು ನಂತರ 'Prepare' ಸಂದೇಶವನ್ನು ಪ್ರಾಥಮಿಕ ಸೇರಿದಂತೆ ಎಲ್ಲಾ ಇತರ ಪ್ರತಿಕೃತಿಗಳಿಗೆ ಮಲ್ಟಿಕಾಸ್ಟ್ ಮಾಡುತ್ತವೆ. ಈ ಹಂತವು ಎಲ್ಲಾ ದೋಷರಹಿತ ಪ್ರತಿಕೃತಿಗಳು ವಿನಂತಿಗಳ ಕ್ರಮದ ಬಗ್ಗೆ ಒಪ್ಪಿಕೊಳ್ಳುವುದನ್ನು ಖಚಿತಪಡಿಸುತ್ತದೆ.
-
ಸಮರ್ಪಣೆ (Commit): ನಿರ್ದಿಷ್ಟ ವಿನಂತಿಗಾಗಿ
2f+1Prepare ಸಂದೇಶಗಳನ್ನು (ತನ್ನದೇ ಆದದನ್ನು ಒಳಗೊಂಡಂತೆ) ಒಂದು ಪ್ರತಿಕೃತಿ ಸ್ವೀಕರಿಸಿದ ನಂತರ (ಇಲ್ಲಿfದೋಷಪೂರಿತ ನೋಡ್ಗಳ ಗರಿಷ್ಠ ಸಂಖ್ಯೆ), ಅದು 'Commit' ಸಂದೇಶವನ್ನು ಎಲ್ಲಾ ಇತರ ಪ್ರತಿಕೃತಿಗಳಿಗೆ ಮಲ್ಟಿಕಾಸ್ಟ್ ಮಾಡುತ್ತದೆ. ಈ ಹಂತವು ವಿನಂತಿಯನ್ನು ಸಮರ್ಪಿಸಲಾಗುವುದು ಎಂದು ಖಚಿತಪಡಿಸುತ್ತದೆ. -
ಪ್ರತ್ಯುತ್ತರ (Reply):
2f+1Commit ಸಂದೇಶಗಳನ್ನು ಸ್ವೀಕರಿಸಿದ ನಂತರ, ಒಂದು ಪ್ರತಿಕೃತಿ ಕ್ಲೈಂಟ್ ವಿನಂತಿಯನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುತ್ತದೆ ಮತ್ತು 'Reply' ಅನ್ನು ಕ್ಲೈಂಟ್ಗೆ ಹಿಂದಕ್ಕೆ ಕಳುಹಿಸುತ್ತದೆ. ಕಾರ್ಯಾಚರಣೆಯು ಯಶಸ್ವಿಯಾಗಿದೆ ಎಂದು ಪರಿಗಣಿಸುವ ಮೊದಲು ಕ್ಲೈಂಟ್f+1ಒಂದೇ ರೀತಿಯ ಪ್ರತ್ಯುತ್ತರಗಳಿಗಾಗಿ ಕಾಯುತ್ತದೆ.
PBFT ನ ಅನುಕೂಲಗಳು ಮತ್ತು ಅನಾನುಕೂಲಗಳು
- ಅನುಕೂಲಗಳು: ಬೈಜಾಂಟೈನ್ ದೋಷಗಳನ್ನು ಸಹಿಸಿಕೊಳ್ಳುತ್ತದೆ, ದುರುದ್ದೇಶಪೂರಿತ ಭಾಗವಹಿಸುವವರಿದ್ದರೂ ಬಲವಾದ ಸುರಕ್ಷತಾ ಖಾತರಿಗಳನ್ನು ಖಚಿತಪಡಿಸುತ್ತದೆ. ನಿರ್ಧರಿತ ಒಮ್ಮತ (ಸಂಭವನೀಯ ಅಂತಿಮತೆ ಇಲ್ಲ).
- ಅನಾನುಕೂಲಗಳು: ಗಣನೀಯ ಸಂವಹನ ಓವರ್ಹೆಡ್ (ಪ್ರತಿ ಒಮ್ಮತದ ಸುತ್ತಿಗೆ
O(n^2)ಸಂದೇಶಗಳು ಬೇಕಾಗುತ್ತವೆ, ಇಲ್ಲಿnಪ್ರತಿಕೃತಿಗಳ ಸಂಖ್ಯೆ), ಇದು ಸ್ಕೇಲೆಬಿಲಿಟಿಯನ್ನು ಮಿತಿಗೊಳಿಸುತ್ತದೆ. ಹೆಚ್ಚಿನ ಸುಪ್ತತೆ (latency). ಸಂಕೀರ್ಣ ಅನುಷ್ಠಾನ.
PBFT ನ ಪ್ರಾಯೋಗಿಕ ಅನುಷ್ಠಾನಗಳು
ಅದರ ಓವರ್ಹೆಡ್ನಿಂದಾಗಿ ಮುಖ್ಯವಾಹಿನಿಯ ಮೂಲಸೌಕರ್ಯದಲ್ಲಿ ಕಡಿಮೆ ಸಾಮಾನ್ಯವಾಗಿದ್ದರೂ, ವಿಶ್ವಾಸವನ್ನು ಊಹಿಸಲಾಗದ ಪರಿಸರಗಳಲ್ಲಿ PBFT ಮತ್ತು ಅದರ ಉತ್ಪನ್ನಗಳು ನಿರ್ಣಾಯಕವಾಗಿವೆ:
- Hyperledger Fabric: ವಹಿವಾಟು ಆದೇಶ ಮತ್ತು ಅಂತಿಮತೆಗಾಗಿ PBFT ರೂಪವನ್ನು (ಅಥವಾ ಮಾಡ್ಯುಲರ್ ಒಮ್ಮತ ಸೇವೆಯನ್ನು) ಬಳಸುವ ಅನುಮತಿ ಪಡೆದ ಬ್ಲಾಕ್ಚೈನ್ ವೇದಿಕೆ.
- ವಿವಿಧ ಬ್ಲಾಕ್ಚೈನ್ ಯೋಜನೆಗಳು: ಅನೇಕ ಉದ್ಯಮ ಬ್ಲಾಕ್ಚೈನ್ ಮತ್ತು ಅನುಮತಿ ಪಡೆದ ವಿತರಿತ ಲೆಡ್ಜರ್ ತಂತ್ರಜ್ಞಾನಗಳು (DLT ಗಳು) ತಿಳಿದಿರುವ, ಆದರೆ ಸಂಭಾವ್ಯವಾಗಿ ವಿಶ್ವಾಸಾರ್ಹವಲ್ಲದ, ಭಾಗವಹಿಸುವವರ ನಡುವೆ ಒಮ್ಮತವನ್ನು ಸಾಧಿಸಲು BFT ಅಲ್ಗಾರಿದಮ್ಗಳು ಅಥವಾ ಅವುಗಳ ಮಾರ್ಪಾಡುಗಳನ್ನು ಬಳಸುತ್ತವೆ.
ಒಮ್ಮತವನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುವುದು: ಪ್ರಾಯೋಗಿಕ ಪರಿಗಣನೆಗಳು
ಒಮ್ಮತದ ಅಲ್ಗಾರಿದಮ್ ಅನ್ನು ಆಯ್ಕೆ ಮಾಡುವುದು ಮತ್ತು ಕಾರ್ಯಗತಗೊಳಿಸುವುದು ಒಂದು ಮಹತ್ವದ ಕಾರ್ಯವಾಗಿದೆ. ಯಶಸ್ವಿ ನಿಯೋಜನೆಗಾಗಿ ಹಲವಾರು ಪ್ರಾಯೋಗಿಕ ಅಂಶಗಳನ್ನು ಎಚ್ಚರಿಕೆಯಿಂದ ಪರಿಗಣಿಸಬೇಕು.
ಸರಿಯಾದ ಅಲ್ಗಾರಿದಮ್ ಅನ್ನು ಆರಿಸುವುದು
ಒಮ್ಮತದ ಅಲ್ಗಾರಿದಮ್ನ ಆಯ್ಕೆಯು ನಿಮ್ಮ ಸಿಸ್ಟಮ್ನ ನಿರ್ದಿಷ್ಟ ಅವಶ್ಯಕತೆಗಳನ್ನು ಹೆಚ್ಚು ಅವಲಂಬಿಸಿರುತ್ತದೆ:
- ದೋಷ ಸಹಿಷ್ಣುತೆಯ ಅವಶ್ಯಕತೆಗಳು: ನೀವು ಕೇವಲ ಕ್ರ್ಯಾಶ್ ದೋಷಗಳನ್ನು ಸಹಿಸಿಕೊಳ್ಳಬೇಕೇ, ಅಥವಾ ನೀವು ಬೈಜಾಂಟೈನ್ ವೈಫಲ್ಯಗಳನ್ನು ಸಹ ಪರಿಗಣಿಸಬೇಕೇ? ಹೆಚ್ಚಿನ ಉದ್ಯಮ ಅಪ್ಲಿಕೇಶನ್ಗಳಿಗೆ, Raft ಅಥವಾ Paxos ನಂತಹ ಕ್ರ್ಯಾಶ್-ದೋಷ ಸಹಿಷ್ಣು ಅಲ್ಗಾರಿದಮ್ಗಳು ಸಾಕಷ್ಟಿವೆ ಮತ್ತು ಹೆಚ್ಚು ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ನೀಡುತ್ತವೆ. ಹೆಚ್ಚು ಪ್ರತಿಕೂಲ ಅಥವಾ ವಿಶ್ವಾಸರಹಿತ ಪರಿಸರಗಳಿಗೆ (ಉದಾಹರಣೆಗೆ, ಸಾರ್ವಜನಿಕ ಬ್ಲಾಕ್ಚೈನ್ಗಳು), BFT ಅಲ್ಗಾರಿದಮ್ಗಳು ಅವಶ್ಯಕ.
- ಕಾರ್ಯಕ್ಷಮತೆ ವಿರುದ್ಧ ಸ್ಥಿರತೆಯ ವಿನಿಮಯಗಳು: ಹೆಚ್ಚಿನ ಸ್ಥಿರತೆಯು ಆಗಾಗ್ಗೆ ಹೆಚ್ಚಿನ ಸುಪ್ತತೆ (latency) ಮತ್ತು ಕಡಿಮೆ ಥ್ರೂಪುಟ್ನೊಂದಿಗೆ ಬರುತ್ತದೆ. ಅಂತಿಮ ಸ್ಥಿರತೆ (eventual consistency) ವಿರುದ್ಧ ಬಲವಾದ ಸ್ಥಿರತೆಗಾಗಿ ನಿಮ್ಮ ಅಪ್ಲಿಕೇಶನ್ನ ಸಹಿಷ್ಣುತೆಯನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಿ. Raft ಅನೇಕ ಅಪ್ಲಿಕೇಶನ್ಗಳಿಗೆ ಉತ್ತಮ ಸಮತೋಲನವನ್ನು ನೀಡುತ್ತದೆ.
- ಅನುಷ್ಠಾನ ಮತ್ತು ನಿರ್ವಹಣೆಯ ಸುಲಭತೆ: Raft ನ ಸರಳತೆಯು ಹೊಸ ಅನುಷ್ಠಾನಗಳಿಗೆ ಜನಪ್ರಿಯ ಆಯ್ಕೆಯಾಗಿದೆ. Paxos, ಶಕ್ತಿಶಾಲಿಯಾಗಿದ್ದರೂ, ಸರಿಯಾಗಿ ಪಡೆಯಲು ಕುಖ್ಯಾತವಾಗಿ ಕಷ್ಟ. ನಿಮ್ಮ ಎಂಜಿನಿಯರಿಂಗ್ ತಂಡದ ಕೌಶಲ್ಯ ಸೆಟ್ ಮತ್ತು ದೀರ್ಘಕಾಲೀನ ನಿರ್ವಹಣೆಯನ್ನು ಪರಿಗಣಿಸಿ.
-
ಸ್ಕೇಲೆಬಿಲಿಟಿ ಅಗತ್ಯಗಳು: ನಿಮ್ಮ ಕ್ಲಸ್ಟರ್ ಎಷ್ಟು ನೋಡ್ಗಳನ್ನು ಹೊಂದಿರುತ್ತದೆ? ಅವು ಭೌಗೋಳಿಕವಾಗಿ ಹೇಗೆ ಹರಡಿರುತ್ತವೆ?
O(n^2)ಸಂವಹನ ಸಂಕೀರ್ಣತೆಯನ್ನು (PBFT ನಂತಹ) ಹೊಂದಿರುವ ಅಲ್ಗಾರಿದಮ್ಗಳು ನೂರಾರು ಅಥವಾ ಸಾವಿರಾರು ನೋಡ್ಗಳಿಗೆ ಸ್ಕೇಲ್ ಆಗುವುದಿಲ್ಲ, ಆದರೆ ನಾಯಕ-ಆಧಾರಿತ ಅಲ್ಗಾರಿದಮ್ಗಳು ದೊಡ್ಡ ಕ್ಲಸ್ಟರ್ಗಳನ್ನು ಹೆಚ್ಚು ಪರಿಣಾಮಕಾರಿಯಾಗಿ ನಿರ್ವಹಿಸಬಹುದು.
ನೆಟ್ವರ್ಕ್ ವಿಶ್ವಾಸಾರ್ಹತೆ ಮತ್ತು ಸಮಯಾವಧಿಗಳು
ಒಮ್ಮತದ ಅಲ್ಗಾರಿದಮ್ಗಳು ನೆಟ್ವರ್ಕ್ ಪರಿಸ್ಥಿತಿಗಳಿಗೆ ಅತಿ ಹೆಚ್ಚು ಸಂವೇದನಾಶೀಲವಾಗಿವೆ. ಅನುಷ್ಠಾನಗಳು ದೃಢವಾಗಿ ನಿರ್ವಹಿಸಬೇಕು:
- ನೆಟ್ವರ್ಕ್ ಸುಪ್ತತೆ (Network Latency): ವಿಳಂಬಗಳು ಒಮ್ಮತದ ಸುತ್ತುಗಳನ್ನು ನಿಧಾನಗೊಳಿಸಬಹುದು, ವಿಶೇಷವಾಗಿ ಬಹು ಸಂವಹನ ಸುತ್ತುಗಳ ಅಗತ್ಯವಿರುವ ಅಲ್ಗಾರಿದಮ್ಗಳಿಗೆ.
- ಪ್ಯಾಕೆಟ್ ನಷ್ಟ (Packet Loss): ಸಂದೇಶಗಳು ಕೈಬಿಡಬಹುದು. ವಿಶ್ವಾಸಾರ್ಹ ಸಂದೇಶ ವಿತರಣೆಯನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು ಅಲ್ಗಾರಿದಮ್ಗಳು ಮರುಪ್ರಯತ್ನಗಳು ಮತ್ತು ಅಂಗೀಕಾರಗಳನ್ನು ಬಳಸಬೇಕು.
- ನೆಟ್ವರ್ಕ್ ವಿಭಾಗಗಳು (Network Partitions): ವ್ಯವಸ್ಥೆಯು ವಿಭಾಗಗಳನ್ನು ಪತ್ತೆಹಚ್ಚಲು ಮತ್ತು ಅವುಗಳಿಂದ ಚೇತರಿಸಿಕೊಳ್ಳಲು ಸಾಧ್ಯವಾಗಬೇಕು, ವಿಭಜನೆಯ ಸಮಯದಲ್ಲಿ ಸ್ಥಿರತೆಗಾಗಿ ಲಭ್ಯತೆಯನ್ನು ತ್ಯಾಗಮಾಡಬಹುದು.
- ಹೊಂದಾಣಿಕೆಯ ಸಮಯಾವಧಿಗಳು (Adaptive Timeouts): ನಿಶ್ಚಿತ ಸಮಯಾವಧಿಗಳು ಸಮಸ್ಯೆಯಾಗಬಹುದು. ಕ್ರಿಯಾತ್ಮಕ, ಹೊಂದಾಣಿಕೆಯ ಸಮಯಾವಧಿಗಳು (ಉದಾಹರಣೆಗೆ, ನಾಯಕನ ಆಯ್ಕೆಗಾಗಿ) ವಿಭಿನ್ನ ನೆಟ್ವರ್ಕ್ ಲೋಡ್ಗಳು ಮತ್ತು ಪರಿಸ್ಥಿತಿಗಳಲ್ಲಿ ವ್ಯವಸ್ಥೆಗಳು ಉತ್ತಮವಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸಲು ಸಹಾಯ ಮಾಡಬಹುದು.
ಸ್ಟೇಟ್ ಮೆಷಿನ್ ಪ್ರತಿಕೃತಿ (SMR)
ಒಮ್ಮತದ ಅಲ್ಗಾರಿದಮ್ಗಳನ್ನು ಆಗಾಗ್ಗೆ ಸ್ಟೇಟ್ ಮೆಷಿನ್ ಪ್ರತಿಕೃತಿ (SMR) ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಲು ಬಳಸಲಾಗುತ್ತದೆ. SMR ನಲ್ಲಿ, ಸೇವೆಯ ಎಲ್ಲಾ ಪ್ರತಿಕೃತಿಗಳು ಒಂದೇ ಆರಂಭಿಕ ಸ್ಥಿತಿಯಲ್ಲಿ ಪ್ರಾರಂಭವಾಗುತ್ತವೆ ಮತ್ತು ಕ್ಲೈಂಟ್ ಆಜ್ಞೆಗಳ ಅದೇ ಅನುಕ್ರಮವನ್ನು ಒಂದೇ ಕ್ರಮದಲ್ಲಿ ಪ್ರಕ್ರಿಯೆಗೊಳಿಸುತ್ತವೆ. ಆಜ್ಞೆಗಳು ನಿರ್ಧರಿತವಾಗಿದ್ದರೆ, ಎಲ್ಲಾ ಪ್ರತಿಕೃತಿಗಳು ರಾಜ್ಯಗಳ ಅದೇ ಅನುಕ್ರಮದ ಮೂಲಕ ಪರಿವರ್ತನೆಯಾಗುತ್ತವೆ, ಸ್ಥಿರತೆಯನ್ನು ಖಚಿತಪಡಿಸುತ್ತವೆ. ಸ್ಟೇಟ್ ಮೆಷಿನ್ಗೆ ಅನ್ವಯಿಸಬೇಕಾದ ಆಜ್ಞೆಗಳ ಸಂಪೂರ್ಣ ಕ್ರಮದ ಬಗ್ಗೆ ಒಪ್ಪಿಕೊಳ್ಳುವುದು ಒಮ್ಮತದ ಅಲ್ಗಾರಿದಮ್ನ ಪಾತ್ರವಾಗಿದೆ. ಈ ವಿಧಾನವು ಪ್ರತಿಕೃತಿ ಮಾಡಿದ ಡೇಟಾಬೇಸ್ಗಳು, ಕೇಂದ್ರೀಕೃತವಲ್ಲದ ಲಾಕ್ಗಳು ಮತ್ತು ಸಂರಚನಾ ಸೇವೆಗಳಂತಹ ದೋಷ-ಸಹಿಷ್ಣು ಸೇವೆಗಳನ್ನು ನಿರ್ಮಿಸಲು ಮೂಲಭೂತವಾಗಿದೆ.
ಮಾನಿಟರಿಂಗ್ ಮತ್ತು ಅವಲೋಕನ
ಒಮ್ಮತದ ಅಲ್ಗಾರಿದಮ್ಗಳನ್ನು ಹೊಂದಿರುವ ಕೇಂದ್ರೀಕೃತವಲ್ಲದ ವ್ಯವಸ್ಥೆಯನ್ನು ನಿರ್ವಹಿಸಲು ವ್ಯಾಪಕ ಮಾನಿಟರಿಂಗ್ ಅಗತ್ಯವಿದೆ. ಟ್ರ್ಯಾಕ್ ಮಾಡಬೇಕಾದ ಪ್ರಮುಖ ಮೆಟ್ರಿಕ್ಗಳು ಸೇರಿವೆ:
- ನಾಯಕನ ಸ್ಥಿತಿ (Leader Status): ಪ್ರಸ್ತುತ ನಾಯಕ ಯಾರು? ಎಷ್ಟು ಸಮಯದಿಂದ ಅದು ನಾಯಕನಾಗಿದೆ?
- ಲಾಗ್ ಪ್ರತಿಕೃತಿ ಪ್ರಗತಿ (Log Replication Progress): ಅನುಯಾಯಿಗಳು ನಾಯಕನ ಲಾಗ್ನಿಂದ ಹಿಂದೆ ಬೀಳುತ್ತಿದ್ದಾರೆಯೇ? ಪ್ರತಿಕೃತಿ ವಿಳಂಬ ಎಷ್ಟು?
- ಒಮ್ಮತದ ಸುತ್ತಿನ ಸುಪ್ತತೆ (Consensus Round Latency): ಹೊಸ ಪ್ರವೇಶವನ್ನು ಸಮರ್ಪಿಸಲು ಎಷ್ಟು ಸಮಯ ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ?
- ನೆಟ್ವರ್ಕ್ ಸುಪ್ತತೆ ಮತ್ತು ಪ್ಯಾಕೆಟ್ ನಷ್ಟ (Network Latency and Packet Loss): ಎಲ್ಲಾ ನೋಡ್ಗಳ ನಡುವೆ, ವಿಶೇಷವಾಗಿ ನಾಯಕ ಮತ್ತು ಅನುಯಾಯಿಗಳ ನಡುವೆ.
- ನೋಡ್ ಆರೋಗ್ಯ (Node Health): ಎಲ್ಲಾ ಭಾಗವಹಿಸುವವರಿಗೆ CPU, ಮೆಮೊರಿ, ಡಿಸ್ಕ್ I/O.
ಈ ಮೆಟ್ರಿಕ್ಗಳ ಆಧಾರದ ಮೇಲೆ ಪರಿಣಾಮಕಾರಿ ಎಚ್ಚರಿಕೆಗಳು ಸಮಸ್ಯೆಗಳನ್ನು ತ್ವರಿತವಾಗಿ ಪತ್ತೆಹಚ್ಚಲು ಮತ್ತು ಪರಿಹರಿಸಲು, ಒಮ್ಮತದ ವೈಫಲ್ಯಗಳಿಂದಾಗಿ ಸೇವಾ ಅಡಚಣೆಗಳನ್ನು ತಡೆಯಲು ನಿರ್ಣಾಯಕವಾಗಿವೆ.
ಭದ್ರತಾ ಪರಿಣಾಮಗಳು
ಒಮ್ಮತದ ಅಲ್ಗಾರಿದಮ್ಗಳು ಒಪ್ಪಂದವನ್ನು ಖಚಿತಪಡಿಸಿದರೂ, ಅವು ಅಂತರ್ಗತವಾಗಿ ಭದ್ರತೆಯನ್ನು ಒದಗಿಸುವುದಿಲ್ಲ. ಅನುಷ್ಠಾನಗಳು ಪರಿಗಣಿಸಬೇಕು:
- ದೃಢೀಕರಣ (Authentication): ಅಧಿಕೃತ ನೋಡ್ಗಳು ಮಾತ್ರ ಒಮ್ಮತದ ಪ್ರಕ್ರಿಯೆಯಲ್ಲಿ ಭಾಗವಹಿಸುವುದನ್ನು ಖಚಿತಪಡಿಸುವುದು.
- ಅಧಿಕಾರ (Authorization): ಪ್ರತಿ ನೋಡ್ಗೆ ಯಾವ ಕ್ರಿಯೆಗಳನ್ನು (ಉದಾಹರಣೆಗೆ, ಮೌಲ್ಯಗಳನ್ನು ಪ್ರಸ್ತಾಪಿಸುವುದು, ಮತ ಚಲಾಯಿಸುವುದು) ನಿರ್ವಹಿಸಲು ಅನುಮತಿಸಲಾಗಿದೆ ಎಂಬುದನ್ನು ವ್ಯಾಖ್ಯಾನಿಸುವುದು.
- ಎನ್ಕ್ರಿಪ್ಶನ್ (Encryption): ಕದ್ದಾಲಿಕೆ ಅಥವಾ ಹಾನಿಯನ್ನು ತಡೆಯಲು ನೋಡ್ಗಳ ನಡುವಿನ ಸಂವಹನವನ್ನು ರಕ್ಷಿಸುವುದು.
- ಅಖಂಡತೆ (Integrity): ಸಾಗಣೆಯಲ್ಲಿ ಸಂದೇಶಗಳನ್ನು ಬದಲಾಯಿಸಲಾಗಿಲ್ಲ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು ಡಿಜಿಟಲ್ ಸಹಿಗಳು ಅಥವಾ ಸಂದೇಶ ದೃಢೀಕರಣ ಕೋಡ್ಗಳನ್ನು ಬಳಸುವುದು, ವಿಶೇಷವಾಗಿ BFT ವ್ಯವಸ್ಥೆಗಳಿಗೆ ನಿರ್ಣಾಯಕ.
ಸುಧಾರಿತ ವಿಷಯಗಳು ಮತ್ತು ಭವಿಷ್ಯದ ಪ್ರವೃತ್ತಿಗಳು
ಕೇಂದ್ರೀಕೃತವಲ್ಲದ ಒಮ್ಮತದ ಕ್ಷೇತ್ರವು ನಿರಂತರವಾಗಿ ವಿಕಸನಗೊಳ್ಳುತ್ತಿದೆ, ನಡೆಯುತ್ತಿರುವ ಸಂಶೋಧನೆ ಮತ್ತು ಹೊಸ ಸವಾಲುಗಳು ಹೊರಹೊಮ್ಮುತ್ತಿವೆ.
ಕ್ರಿಯಾತ್ಮಕ ಸದಸ್ಯತ್ವ
ಅನೇಕ ಒಮ್ಮತದ ಅಲ್ಗಾರಿದಮ್ಗಳು ಭಾಗವಹಿಸುವ ನೋಡ್ಗಳ ಸ್ಥಿರ ಗುಂಪನ್ನು ಊಹಿಸುತ್ತವೆ. ಆದಾಗ್ಯೂ, ನೈಜ-ಪ್ರಪಂಚದ ವ್ಯವಸ್ಥೆಗಳಿಗೆ ಹೆಚ್ಚಾಗಿ ಕ್ರಿಯಾತ್ಮಕ ಸದಸ್ಯತ್ವ ಬದಲಾವಣೆಗಳು (ನೋಡ್ಗಳನ್ನು ಸೇರಿಸುವುದು ಅಥವಾ ತೆಗೆದುಹಾಕುವುದು) ಅಪ್ ಅಥವಾ ಡೌನ್ ಸ್ಕೇಲ್ ಮಾಡಲು, ಅಥವಾ ವಿಫಲವಾದ ಯಂತ್ರಾಂಶವನ್ನು ಬದಲಾಯಿಸಲು ಬೇಕಾಗುತ್ತದೆ. ಸ್ಥಿರತೆಯನ್ನು ಕಾಯ್ದುಕೊಳ್ಳುವಾಗ ಕ್ಲಸ್ಟರ್ ಸದಸ್ಯತ್ವವನ್ನು ಸುರಕ್ಷಿತವಾಗಿ ಬದಲಾಯಿಸುವುದು ಒಂದು ಸಂಕೀರ್ಣ ಸಮಸ್ಯೆಯಾಗಿದೆ, ಮತ್ತು Raft ನಂತಹ ಅಲ್ಗಾರಿದಮ್ಗಳು ಇದಕ್ಕಾಗಿ ಸು-ವ್ಯಾಖ್ಯಾನಿತ, ಬಹು-ಹಂತದ ಪ್ರೋಟೋಕಾಲ್ಗಳನ್ನು ಹೊಂದಿವೆ.
ಭೌಗೋಳಿಕವಾಗಿ ವಿತರಿತ ನಿಯೋಜನೆಗಳು (WAN ಸುಪ್ತತೆ)
ಭೌಗೋಳಿಕವಾಗಿ ಹರಡಿರುವ ಡೇಟಾ ಕೇಂದ್ರಗಳಾದ್ಯಂತ ಒಮ್ಮತದ ಅಲ್ಗಾರಿದಮ್ಗಳನ್ನು ನಿಯೋಜಿಸುವುದು ಗಮನಾರ್ಹವಾದ ವೈಡ್ ಏರಿಯಾ ನೆಟ್ವರ್ಕ್ (WAN) ಸುಪ್ತತೆಯನ್ನು ಪರಿಚಯಿಸುತ್ತದೆ, ಇದು ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಗಂಭೀರವಾಗಿ ಪರಿಣಾಮ ಬೀರಬಹುದು. WAN ಗಾಗಿ ಆಪ್ಟಿಮೈಸ್ ಮಾಡಿದ Paxos ಅಥವಾ Raft ರೂಪಾಂತರಗಳಂತಹ ತಂತ್ರಗಳನ್ನು (ಉದಾಹರಣೆಗೆ, ವೇಗದ ಓದುವಿಕೆಗಾಗಿ ಸ್ಥಳೀಯ ಪ್ರದೇಶಗಳಲ್ಲಿ ಸಣ್ಣ ಕೋರಂಗಳನ್ನು ಬಳಸುವುದು, ಅಥವಾ ನಾಯಕರನ್ನು ಎಚ್ಚರಿಕೆಯಿಂದ ಇಡುವುದು) ಅನ್ವೇಷಿಸಲಾಗುತ್ತಿದೆ. ಬಹು-ಪ್ರದೇಶ ನಿಯೋಜನೆಗಳು ಆಗಾಗ್ಗೆ ಜಾಗತಿಕ ಸ್ಥಿರತೆ ಮತ್ತು ಸ್ಥಳೀಯ ಕಾರ್ಯಕ್ಷಮತೆಯ ನಡುವಿನ ವಿನಿಮಯಗಳನ್ನು ಒಳಗೊಂಡಿರುತ್ತದೆ.
ಬ್ಲಾಕ್ಚೈನ್ ಒಮ್ಮತದ ಕಾರ್ಯವಿಧಾನಗಳು
ಬ್ಲಾಕ್ಚೈನ್ ತಂತ್ರಜ್ಞಾನದ ಏರಿಕೆಯು ಒಮ್ಮತದಲ್ಲಿ ಹೊಸ ಆಸಕ್ತಿ ಮತ್ತು ನಾವೀನ್ಯತೆಯನ್ನು ಹುಟ್ಟುಹಾಕಿದೆ. ಸಾರ್ವಜನಿಕ ಬ್ಲಾಕ್ಚೈನ್ಗಳು ವಿಶಿಷ್ಟ ಸವಾಲನ್ನು ಎದುರಿಸುತ್ತವೆ: ಕೇಂದ್ರ ಅಧಿಕಾರವಿಲ್ಲದೆ ದೊಡ್ಡ, ಕ್ರಿಯಾತ್ಮಕ, ಮತ್ತು ಸಂಭಾವ್ಯವಾಗಿ ಪ್ರತಿಕೂಲವಾದ ಅಪರಿಚಿತ ಭಾಗವಹಿಸುವವರ ನಡುವೆ ಒಮ್ಮತವನ್ನು ಸಾಧಿಸುವುದು. ಇದು ಹೊಸ ಒಮ್ಮತದ ಕಾರ್ಯವಿಧಾನಗಳ ಅಭಿವೃದ್ಧಿಗೆ ಕಾರಣವಾಗಿದೆ:
- ಪ್ರೂಫ್-ಆಫ್-ವರ್ಕ್ (PoW): (ಉದಾಹರಣೆಗೆ, Bitcoin, 'ದಿ ಮರ್ಜ್' ಮೊದಲು Ethereum) ಲೆಡ್ಜರ್ ಅನ್ನು ಸುರಕ್ಷಿತಗೊಳಿಸಲು ಕಂಪ್ಯೂಟೇಶನಲ್ ಪಜಲ್-ಪರಿಹಾರದ ಮೇಲೆ ಅವಲಂಬಿತವಾಗಿದೆ, ಇದು ದುರುದ್ದೇಶಪೂರಿತ ನಟರಿಗೆ ಇತಿಹಾಸವನ್ನು ಮರುಬರೆಯಲು ದುಬಾರಿಯನ್ನಾಗಿ ಮಾಡುತ್ತದೆ.
- ಪ್ರೂಫ್-ಆಫ್-ಸ್ಟೇಕ್ (PoS): (ಉದಾಹರಣೆಗೆ, 'ದಿ ಮರ್ಜ್' ನಂತರ Ethereum, Solana, Cardano) ತಮ್ಮ 'ಸ್ಟೇಕ್' ಮಾಡಿದ ಕ್ರಿಪ್ಟೋಕರೆನ್ಸಿ ಮೊತ್ತದ ಆಧಾರದ ಮೇಲೆ ವ್ಯಾಲಿಡೇಟರ್ಗಳನ್ನು ಆಯ್ಕೆ ಮಾಡಲಾಗುತ್ತದೆ, ಇದು ಪ್ರಾಮಾಣಿಕ ನಡವಳಿಕೆಯನ್ನು ಪ್ರೋತ್ಸಾಹಿಸುತ್ತದೆ.
- ಡೆಲಿಗೇಟೆಡ್ ಪ್ರೂಫ್-ಆಫ್-ಸ್ಟೇಕ್ (DPoS): (ಉದಾಹರಣೆಗೆ, EOS, TRON) ಪಾಲುದಾರರು ವಹಿವಾಟುಗಳನ್ನು ಮೌಲ್ಯೀಕರಿಸಲು ಸೀಮಿತ ಸಂಖ್ಯೆಯ ಪ್ರತಿನಿಧಿಗಳನ್ನು ಆಯ್ಕೆ ಮಾಡುತ್ತಾರೆ.
- ನಿರ್ದೇಶಿತ ಅಸೈಕ್ಲಿಕ್ ಗ್ರಾಫ್ಗಳು (DAGs): (ಉದಾಹರಣೆಗೆ, IOTA, Fantom) ವಿಭಿನ್ನ ದತ್ತಾಂಶ ರಚನೆಯು ವಹಿವಾಟುಗಳ ಸಮಾನಾಂತರ ಸಂಸ್ಕರಣೆಗೆ ಅನುಮತಿಸುತ್ತದೆ, ಸಾಂಪ್ರದಾಯಿಕ ಬ್ಲಾಕ್-ಆಧಾರಿತ ಒಮ್ಮತವಿಲ್ಲದೆ ಹೆಚ್ಚಿನ ಥ್ರೂಪುಟ್ ಅನ್ನು ನೀಡುವ ಸಾಮರ್ಥ್ಯವನ್ನು ಹೊಂದಿದೆ.
ಈ ಅಲ್ಗಾರಿದಮ್ಗಳು ಆಗಾಗ್ಗೆ ವಿಭಿನ್ನ ಗುಣಲಕ್ಷಣಗಳಿಗೆ (ಉದಾಹರಣೆಗೆ, ಸೆನ್ಸಾರ್ಶಿಪ್ ಪ್ರತಿರೋಧ, ವಿಕೇಂದ್ರೀಕರಣ, ಅಂತಿಮತೆ) ಆದ್ಯತೆ ನೀಡುತ್ತವೆ, ಸಾಂಪ್ರದಾಯಿಕ ಕೇಂದ್ರೀಕೃತವಲ್ಲದ ವ್ಯವಸ್ಥೆಯ ಒಮ್ಮತಕ್ಕೆ ಹೋಲಿಸಿದರೆ, ಇದು ವಿಶಿಷ್ಟವಾಗಿ ವಿಶ್ವಾಸಾರ್ಹ, ಸೀಮಿತ ನೋಡ್ಗಳ ಗುಂಪಿನೊಳಗೆ ಬಲವಾದ ಸ್ಥಿರತೆ ಮತ್ತು ಹೆಚ್ಚಿನ ಲಭ್ಯತೆಯ ಮೇಲೆ ಕೇಂದ್ರೀಕರಿಸುತ್ತದೆ.
ಆಪ್ಟಿಮೈಸೇಶನ್ಗಳು ಮತ್ತು ರೂಪಾಂತರಗಳು
ನಡೆಯುತ್ತಿರುವ ಸಂಶೋಧನೆಯು ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಅಲ್ಗಾರಿದಮ್ಗಳನ್ನು ಪರಿಷ್ಕರಿಸುವುದನ್ನು ಮತ್ತು ಹೊಸದನ್ನು ಪ್ರಸ್ತಾಪಿಸುವುದನ್ನು ಮುಂದುವರೆಸಿದೆ. ಉದಾಹರಣೆಗಳು ಸೇರಿವೆ:
- ಫಾಸ್ಟ್ Paxos (Fast Paxos): ಸಾಮಾನ್ಯ ಪರಿಸ್ಥಿತಿಗಳಲ್ಲಿ ಒಂದೇ ಸುತ್ತಿನ ಸಂವಹನದಲ್ಲಿ ಮೌಲ್ಯಗಳನ್ನು ಆಯ್ಕೆ ಮಾಡಲು ಅವಕಾಶ ನೀಡುವ ಮೂಲಕ ಸುಪ್ತತೆಯನ್ನು ಕಡಿಮೆ ಮಾಡಲು ವಿನ್ಯಾಸಗೊಳಿಸಲಾದ ಒಂದು ರೂಪಾಂತರ.
- ಸಮಾನತಾ Paxos (Egalitarian Paxos): ಕೆಲವು ಸನ್ನಿವೇಶಗಳಲ್ಲಿ ಸಮನ್ವಯವಿಲ್ಲದೆ ಬಹು ನಾಯಕರು ಅಥವಾ ಪ್ರಸ್ತಾಪಕರು ಏಕಕಾಲದಲ್ಲಿ ಕಾರ್ಯನಿರ್ವಹಿಸಲು ಅವಕಾಶ ನೀಡುವ ಮೂಲಕ ಥ್ರೂಪುಟ್ ಅನ್ನು ಸುಧಾರಿಸುವ ಗುರಿಯನ್ನು ಹೊಂದಿದೆ.
- ಸಾಮಾನ್ಯೀಕೃತ Paxos (Generalized Paxos): ಮೌಲ್ಯಗಳ ಅನುಕ್ರಮಗಳು ಮತ್ತು ಅನಿಯಂತ್ರಿತ ಸ್ಟೇಟ್ ಮೆಷಿನ್ ಕಾರ್ಯಾಚರಣೆಗಳ ಮೇಲೆ ಒಪ್ಪಂದಕ್ಕೆ ಅವಕಾಶ ನೀಡಲು Paxos ಅನ್ನು ವಿಸ್ತರಿಸುತ್ತದೆ.
ತೀರ್ಮಾನ
ಒಮ್ಮತದ ಅಲ್ಗಾರಿದಮ್ಗಳು ವಿಶ್ವಾಸಾರ್ಹ ಕೇಂದ್ರೀಕೃತವಲ್ಲದ ವ್ಯವಸ್ಥೆಗಳನ್ನು ನಿರ್ಮಿಸುವ ಅಡಿಪಾಯವಾಗಿವೆ. ಪರಿಕಲ್ಪನಾತ್ಮಕವಾಗಿ ಸವಾಲಿನದ್ದಾಗಿದ್ದರೂ, ಆಧುನಿಕ ಸಿಸ್ಟಮ್ ಆರ್ಕಿಟೆಕ್ಚರ್ನ ಸಂಕೀರ್ಣತೆಗಳಿಗೆ venture ಮಾಡುವ ಯಾವುದೇ ವೃತ್ತಿಪರರಿಗೆ ಅವುಗಳ ಪಾಂಡಿತ್ಯವು ಅತ್ಯಗತ್ಯ. Paxos ನ ಕಠಿಣ ಸುರಕ್ಷತಾ ಖಾತರಿಗಳಿಂದ Raft ನ ಬಳಕೆದಾರ ಸ್ನೇಹಿ ವಿನ್ಯಾಸದವರೆಗೆ, ಮತ್ತು PBFT ಯ ದೃಢವಾದ ದೋಷ ಸಹಿಷ್ಣುತೆಯವರೆಗೆ, ಪ್ರತಿ ಅಲ್ಗಾರಿದಮ್ ಅನಿಶ್ಚಿತತೆಯ ಮುಖದಲ್ಲಿ ಸ್ಥಿರತೆಯನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು ವಿಶಿಷ್ಟವಾದ ವಿನಿಮಯಗಳ ಗುಂಪನ್ನು ನೀಡುತ್ತದೆ.
ಈ ಅಲ್ಗಾರಿದಮ್ಗಳನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುವುದು ಕೇವಲ ಶೈಕ್ಷಣಿಕ ವ್ಯಾಯಾಮವಲ್ಲ; ಇದು ನೆಟ್ವರ್ಕ್ಗಳು ಮತ್ತು ಯಂತ್ರಾಂಶ ವೈಫಲ್ಯಗಳ ಅನಿರೀಕ್ಷಿತ ಸ್ವಭಾವವನ್ನು ತಡೆದುಕೊಳ್ಳುವ ವ್ಯವಸ್ಥೆಗಳನ್ನು ವಿನ್ಯಾಸಗೊಳಿಸುವುದು, ವಿಶ್ವಾದ್ಯಂತ ಬಳಕೆದಾರರಿಗೆ ಡೇಟಾ ಸಮಗ್ರತೆ ಮತ್ತು ನಿರಂತರ ಕಾರ್ಯಾಚರಣೆಯನ್ನು ಖಚಿತಪಡಿಸುವುದು. ಕ್ಲೌಡ್ ಕಂಪ್ಯೂಟಿಂಗ್, ಬ್ಲಾಕ್ಚೈನ್, ಮತ್ತು ಜಾಗತಿಕ-ಪ್ರಮಾಣದ ಸೇವೆಗಳಿಗೆ ನಿರಂತರವಾಗಿ ಹೆಚ್ಚುತ್ತಿರುವ ಬೇಡಿಕೆಯಿಂದ ಉತ್ತೇಜಿತವಾಗಿ ಕೇಂದ್ರೀಕೃತವಲ್ಲದ ವ್ಯವಸ್ಥೆಗಳು ವಿಕಸನಗೊಳ್ಳುತ್ತಲೇ ಇರುವುದರಿಂದ, ಒಮ್ಮತದ ಅಲ್ಗಾರಿದಮ್ಗಳ ತತ್ವಗಳು ಮತ್ತು ಪ್ರಾಯೋಗಿಕ ಅನ್ವಯವು ದೃಢವಾದ ಮತ್ತು ಸ್ಥಿತಿಸ್ಥಾಪಕ ವ್ಯವಸ್ಥೆಯ ವಿನ್ಯಾಸದ ಮುಂಚೂಣಿಯಲ್ಲಿ ಉಳಿಯುತ್ತದೆ. ಈ ಮೂಲಭೂತ ಕಟ್ಟಡ ಬ್ಲಾಕ್ಗಳನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದು ನಮ್ಮ ಪರಸ್ಪರ ಸಂಪರ್ಕಿತ ಜಗತ್ತಿಗೆ ಸೇವೆ ಸಲ್ಲಿಸುವ ಮುಂದಿನ ಪೀಳಿಗೆಯ ಹೆಚ್ಚು ಲಭ್ಯವಿರುವ ಮತ್ತು ಸ್ಥಿರವಾದ ಡಿಜಿಟಲ್ ಮೂಲಸೌಕರ್ಯಗಳನ್ನು ರಚಿಸಲು ಎಂಜಿನಿಯರ್ಗಳಿಗೆ ಅಧಿಕಾರ ನೀಡುತ್ತದೆ.