ವಹಿವಾಟುಗಳು ಮತ್ತು ಅವುಗಳ ನಿಯಂತ್ರಣ ಕಾರ್ಯವಿಧಾನಗಳು

ವ್ಯವಹಾರಗಳು

ವ್ಯವಹಾರವು ಪ್ರಾರಂಭ ಮತ್ತು ಅಂತ್ಯವನ್ನು ಹೊಂದಿರುವ ಡೇಟಾದ ಮೇಲಿನ ಕಾರ್ಯಾಚರಣೆಗಳ ಅನುಕ್ರಮವಾಗಿದೆ.

ವಹಿವಾಟು ಎಂದರೆ ಓದುವ ಮತ್ತು ಬರೆಯುವ ಕಾರ್ಯಾಚರಣೆಗಳ ಅನುಕ್ರಮ ಕಾರ್ಯಗತಗೊಳಿಸುವಿಕೆ. ವಹಿವಾಟಿನ ಅಂತ್ಯವು ಬದಲಾವಣೆಗಳನ್ನು ಉಳಿಸುವುದು (ಬದ್ಧತೆ) ಅಥವಾ ಬದಲಾವಣೆಗಳನ್ನು ರದ್ದುಗೊಳಿಸುವುದು (ರೋಲ್‌ಬ್ಯಾಕ್). ಡೇಟಾಬೇಸ್‌ಗೆ ಸಂಬಂಧಿಸಿದಂತೆ, ವಹಿವಾಟು ಹಲವಾರು ವಿನಂತಿಗಳನ್ನು ಒಳಗೊಂಡಿರುತ್ತದೆ, ಅದನ್ನು ಒಂದೇ ವಿನಂತಿಯಾಗಿ ಪರಿಗಣಿಸಲಾಗುತ್ತದೆ.

ವಹಿವಾಟುಗಳು ACID ಗುಣಲಕ್ಷಣಗಳನ್ನು ಪೂರೈಸಬೇಕು

ಪರಮಾಣುತ್ವ. ವಹಿವಾಟು ಸಂಪೂರ್ಣವಾಗಿ ಪೂರ್ಣಗೊಂಡಿದೆ ಅಥವಾ ಇಲ್ಲವೇ ಇಲ್ಲ.

ಸ್ಥಿರತೆ. ವಹಿವಾಟನ್ನು ಪೂರ್ಣಗೊಳಿಸುವಾಗ, ಡೇಟಾದ ಮೇಲೆ ವಿಧಿಸಲಾದ ನಿರ್ಬಂಧಗಳನ್ನು (ಉದಾಹರಣೆಗೆ, ಡೇಟಾಬೇಸ್‌ನಲ್ಲಿನ ನಿರ್ಬಂಧಗಳು) ಉಲ್ಲಂಘಿಸಬಾರದು. ಸ್ಥಿರತೆಯು ವ್ಯವಸ್ಥೆಯನ್ನು ಒಂದು ಸರಿಯಾದ ಸ್ಥಿತಿಯಿಂದ ಮತ್ತೊಂದು ಸರಿಯಾದ ಸ್ಥಿತಿಗೆ ವರ್ಗಾಯಿಸುತ್ತದೆ ಎಂದು ಸೂಚಿಸುತ್ತದೆ.

ಪ್ರತ್ಯೇಕತೆ. ಸಮಾನಾಂತರವಾಗಿ ನಡೆಯುವ ವಹಿವಾಟುಗಳು ಪರಸ್ಪರ ಪ್ರಭಾವ ಬೀರಬಾರದು, ಉದಾಹರಣೆಗೆ, ಮತ್ತೊಂದು ವಹಿವಾಟು ಬಳಸುವ ಡೇಟಾವನ್ನು ಬದಲಿಸಿ. ಸಮಾನಾಂತರ ವಹಿವಾಟುಗಳನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುವ ಫಲಿತಾಂಶವು ವಹಿವಾಟುಗಳನ್ನು ಅನುಕ್ರಮವಾಗಿ ಕಾರ್ಯಗತಗೊಳಿಸಿದಂತೆಯೇ ಇರಬೇಕು.

ಸಮರ್ಥನೀಯತೆ. ಒಮ್ಮೆ ಬದ್ಧತೆ, ಬದಲಾವಣೆಗಳನ್ನು ಕಳೆದುಕೊಳ್ಳಬಾರದು.

ವಹಿವಾಟಿನ ಲಾಗ್

ಲಾಗ್ ವಹಿವಾಟುಗಳಿಂದ ಮಾಡಿದ ಬದಲಾವಣೆಗಳನ್ನು ಸಂಗ್ರಹಿಸುತ್ತದೆ, ಸಿಸ್ಟಮ್ ವೈಫಲ್ಯದ ಸಂದರ್ಭದಲ್ಲಿ ಡೇಟಾದ ಪರಮಾಣು ಮತ್ತು ಸ್ಥಿರತೆಯನ್ನು ಖಚಿತಪಡಿಸುತ್ತದೆ

ಲಾಗ್ ವಹಿವಾಟಿನಿಂದ ಬದಲಾಯಿಸಲ್ಪಟ್ಟ ಮೊದಲು ಮತ್ತು ನಂತರ ಡೇಟಾವನ್ನು ಹೊಂದಿರುವ ಮೌಲ್ಯಗಳನ್ನು ಒಳಗೊಂಡಿದೆ. ಬರೆಯುವ ಲಾಗ್ ತಂತ್ರವು ಪ್ರಾರಂಭದ ಮೊದಲು ಹಿಂದಿನ ಮೌಲ್ಯಗಳ ಬಗ್ಗೆ ಲಾಗ್ ನಮೂದನ್ನು ಸೇರಿಸುವ ಅಗತ್ಯವಿದೆ ಮತ್ತು ವಹಿವಾಟು ಪೂರ್ಣಗೊಂಡ ನಂತರ ಅಂತಿಮ ಮೌಲ್ಯಗಳ ಬಗ್ಗೆ. ಸಿಸ್ಟಮ್ನ ಹಠಾತ್ ನಿಲುಗಡೆಯ ಸಂದರ್ಭದಲ್ಲಿ, ಡೇಟಾಬೇಸ್ ಲಾಗ್ ಅನ್ನು ಹಿಮ್ಮುಖ ಕ್ರಮದಲ್ಲಿ ಓದುತ್ತದೆ ಮತ್ತು ವಹಿವಾಟುಗಳಿಂದ ಮಾಡಿದ ಬದಲಾವಣೆಗಳನ್ನು ರದ್ದುಗೊಳಿಸುತ್ತದೆ. ಅಡ್ಡಿಪಡಿಸಿದ ವಹಿವಾಟನ್ನು ಎದುರಿಸಿದ ನಂತರ, ಡೇಟಾಬೇಸ್ ಅದನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುತ್ತದೆ ಮತ್ತು ಅದರ ಬಗ್ಗೆ ಲಾಗ್‌ಗೆ ಬದಲಾವಣೆಗಳನ್ನು ಮಾಡುತ್ತದೆ. ವೈಫಲ್ಯದ ಸಮಯದಲ್ಲಿ ರಾಜ್ಯದಲ್ಲಿ ಇರುವುದರಿಂದ, ಡೇಟಾಬೇಸ್ ಲಾಗ್ ಇನ್ ಫಾರ್ವರ್ಡ್ ಆರ್ಡರ್ ಅನ್ನು ಓದುತ್ತದೆ ಮತ್ತು ವಹಿವಾಟುಗಳಿಂದ ಮಾಡಿದ ಬದಲಾವಣೆಗಳನ್ನು ಹಿಂತಿರುಗಿಸುತ್ತದೆ. ಈ ರೀತಿಯಾಗಿ, ಈಗಾಗಲೇ ಬದ್ಧವಾಗಿರುವ ವಹಿವಾಟುಗಳ ಸ್ಥಿರತೆ ಮತ್ತು ಅಡ್ಡಿಪಡಿಸಿದ ವಹಿವಾಟಿನ ಪರಮಾಣುತ್ವವನ್ನು ಸಂರಕ್ಷಿಸಲಾಗಿದೆ.

ವಿಫಲವಾದ ವಹಿವಾಟುಗಳನ್ನು ಮರು-ಕಾರ್ಯಗತಗೊಳಿಸುವುದು ಚೇತರಿಕೆಗೆ ಸಾಕಾಗುವುದಿಲ್ಲ.

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

ನಿರೋಧನ ಮಟ್ಟಗಳು

ಓದು ಬದ್ಧತೆ

ಡರ್ಟಿ ರೀಡ್ ಸಮಸ್ಯೆ ಎಂದರೆ ಒಂದು ವಹಿವಾಟು ಮತ್ತೊಂದು ವಹಿವಾಟಿನ ಮಧ್ಯಂತರ ಫಲಿತಾಂಶವನ್ನು ಓದಬಹುದು.

ಉದಾಹರಣೆ. ಆರಂಭಿಕ ಬ್ಯಾಲೆನ್ಸ್ ಮೌಲ್ಯವು $0 ಆಗಿದೆ. T1 ನಿಮ್ಮ ಬ್ಯಾಲೆನ್ಸ್‌ಗೆ $50 ಅನ್ನು ಸೇರಿಸುತ್ತದೆ. T2 ಬ್ಯಾಲೆನ್ಸ್ ಮೌಲ್ಯವನ್ನು ಓದುತ್ತದೆ ($50). T1 ಬದಲಾವಣೆಗಳನ್ನು ತಿರಸ್ಕರಿಸುತ್ತದೆ ಮತ್ತು ನಿರ್ಗಮಿಸುತ್ತದೆ. ತಪ್ಪಾದ ಬ್ಯಾಲೆನ್ಸ್ ಡೇಟಾದೊಂದಿಗೆ T2 ಕಾರ್ಯಗತಗೊಳಿಸುವಿಕೆಯನ್ನು ಮುಂದುವರಿಸುತ್ತದೆ.

ಸ್ಥಿರ ಡೇಟಾವನ್ನು ಓದುವುದು ಪರಿಹಾರವಾಗಿದೆ (ರೀಡ್ ಕಮಿಟೆಡ್), ಇದು ವಹಿವಾಟಿನಿಂದ ಬದಲಾದ ಡೇಟಾವನ್ನು ಓದುವುದನ್ನು ನಿಷೇಧಿಸುತ್ತದೆ. ವಹಿವಾಟು A ನಿರ್ದಿಷ್ಟ ಡೇಟಾವನ್ನು ಬದಲಾಯಿಸಿದ್ದರೆ, ವಹಿವಾಟು B, ಈ ಡೇಟಾವನ್ನು ಪ್ರವೇಶಿಸುವಾಗ, ವಹಿವಾಟು A ಪೂರ್ಣಗೊಳ್ಳುವವರೆಗೆ ಕಾಯಲು ಒತ್ತಾಯಿಸಲಾಗುತ್ತದೆ.

ಪುನರಾವರ್ತಿತ ಓದುವಿಕೆ

ಕಳೆದುಹೋದ ನವೀಕರಣಗಳ ಸಮಸ್ಯೆ. T1 ನ ಬದಲಾವಣೆಗಳ ಮೇಲೆ T2 ಬದಲಾವಣೆಗಳನ್ನು ಉಳಿಸುತ್ತದೆ.

ಉದಾಹರಣೆ. ಆರಂಭಿಕ ಬ್ಯಾಲೆನ್ಸ್ ಮೌಲ್ಯವು $0 ಮತ್ತು ಎರಡು ವಹಿವಾಟುಗಳು ಏಕಕಾಲದಲ್ಲಿ ಸಮತೋಲನವನ್ನು ಮರುಪೂರಣಗೊಳಿಸುತ್ತವೆ. T1 ಮತ್ತು T2 $0 ರ ಸಮತೋಲನವನ್ನು ಓದುತ್ತದೆ. T2 ನಂತರ $200 ರಿಂದ $0 ಗೆ ಸೇರಿಸುತ್ತದೆ ಮತ್ತು ಫಲಿತಾಂಶವನ್ನು ಉಳಿಸುತ್ತದೆ. T1 $100 ರಿಂದ $0 ಗೆ ಸೇರಿಸುತ್ತದೆ ಮತ್ತು ಫಲಿತಾಂಶವನ್ನು ಉಳಿಸುತ್ತದೆ. ಅಂತಿಮ ಫಲಿತಾಂಶವು $100 ಬದಲಿಗೆ $300 ಆಗಿದೆ.

ಮರುಕಳಿಸಲಾಗದ ಓದುವ ಸಮಸ್ಯೆ. ಒಂದೇ ಡೇಟಾವನ್ನು ಪದೇ ಪದೇ ಓದುವುದು ವಿಭಿನ್ನ ಮೌಲ್ಯಗಳನ್ನು ಹಿಂದಿರುಗಿಸುತ್ತದೆ.

ಉದಾಹರಣೆ. T1 $0 ರ ಬ್ಯಾಲೆನ್ಸ್ ಮೌಲ್ಯವನ್ನು ಓದುತ್ತದೆ. T2 ನಂತರ $50 ಅನ್ನು ಸಮತೋಲನಕ್ಕೆ ಸೇರಿಸುತ್ತದೆ ಮತ್ತು ಕೊನೆಗೊಳ್ಳುತ್ತದೆ. T1 ಡೇಟಾವನ್ನು ಮತ್ತೊಮ್ಮೆ ಓದುತ್ತದೆ ಮತ್ತು ಹಿಂದಿನ ಫಲಿತಾಂಶದೊಂದಿಗೆ ವ್ಯತ್ಯಾಸವನ್ನು ಕಂಡುಕೊಳ್ಳುತ್ತದೆ.

ಪುನರಾವರ್ತಿತ ಓದುವಿಕೆ ಎರಡನೇ ಓದುವಿಕೆ ಅದೇ ಫಲಿತಾಂಶವನ್ನು ನೀಡುತ್ತದೆ ಎಂದು ಖಚಿತಪಡಿಸುತ್ತದೆ. ವಹಿವಾಟು ಪೂರ್ಣಗೊಳ್ಳುವವರೆಗೆ ಒಂದು ವಹಿವಾಟಿನಿಂದ ಓದಲಾದ ಡೇಟಾವನ್ನು ಇತರರಲ್ಲಿ ಬದಲಾಯಿಸಲಾಗುವುದಿಲ್ಲ. ವಹಿವಾಟು A ನಿರ್ದಿಷ್ಟ ಡೇಟಾವನ್ನು ಓದಿದ್ದರೆ, ವಹಿವಾಟು B, ಈ ಡೇಟಾವನ್ನು ಪ್ರವೇಶಿಸುವಾಗ, ವಹಿವಾಟು A ಪೂರ್ಣಗೊಳ್ಳುವವರೆಗೆ ಕಾಯಲು ಒತ್ತಾಯಿಸಲಾಗುತ್ತದೆ.

ಆರ್ಡರ್ ಮಾಡಲಾದ ಓದುವಿಕೆ (ಧಾರಾವಾಹಿ ಮಾಡಬಹುದಾದ)

ಫ್ಯಾಂಟಮ್ ರೀಡ್ಸ್ ಸಮಸ್ಯೆ. ನಿರ್ದಿಷ್ಟ ಸ್ಥಿತಿಯ ಆಧಾರದ ಮೇಲೆ ಡೇಟಾವನ್ನು ಆಯ್ಕೆ ಮಾಡುವ ಎರಡು ಪ್ರಶ್ನೆಗಳು ವಿಭಿನ್ನ ಮೌಲ್ಯಗಳನ್ನು ಹಿಂತಿರುಗಿಸುತ್ತವೆ.

ಉದಾಹರಣೆ. $1 ಕ್ಕಿಂತ ಹೆಚ್ಚಿರುವ ಆದರೆ $0 ಕ್ಕಿಂತ ಕಡಿಮೆ ಇರುವ ಎಲ್ಲಾ ಬಳಕೆದಾರರ ಸಂಖ್ಯೆಯನ್ನು T100 ವಿನಂತಿಸುತ್ತದೆ. T2 $1 ರ ಸಮತೋಲನವನ್ನು ಹೊಂದಿರುವ ಬಳಕೆದಾರರಿಂದ $101 ಅನ್ನು ಕಡಿತಗೊಳಿಸುತ್ತದೆ. T1 ವಿನಂತಿಯನ್ನು ಮರುಹಂಚಿಕೆ ಮಾಡುತ್ತದೆ.

ಆರ್ಡರ್ ಮಾಡಲಾದ ಓದುವಿಕೆ (ಧಾರಾವಾಹಿ). ವಹಿವಾಟುಗಳನ್ನು ಸಂಪೂರ್ಣವಾಗಿ ಅನುಕ್ರಮವಾಗಿ ಕಾರ್ಯಗತಗೊಳಿಸಲಾಗುತ್ತದೆ. ವಿನಂತಿಯ ನಿಯಮಗಳೊಳಗೆ ಬರುವ ದಾಖಲೆಗಳನ್ನು ನವೀಕರಿಸಲು ಅಥವಾ ಸೇರಿಸಲು ಇದನ್ನು ನಿಷೇಧಿಸಲಾಗಿದೆ. ವಹಿವಾಟು A ಸಂಪೂರ್ಣ ಟೇಬಲ್‌ನಿಂದ ಡೇಟಾವನ್ನು ವಿನಂತಿಸಿದ್ದರೆ, ವಹಿವಾಟು A ಪೂರ್ಣಗೊಳ್ಳುವವರೆಗೆ ಸಂಪೂರ್ಣ ಟೇಬಲ್ ಅನ್ನು ಇತರ ವಹಿವಾಟುಗಳಿಗಾಗಿ ಫ್ರೀಜ್ ಮಾಡಲಾಗುತ್ತದೆ.

ಶೆಡ್ಯೂಲರ್

ಸಮಾನಾಂತರ ವಹಿವಾಟುಗಳ ಸಮಯದಲ್ಲಿ ಕಾರ್ಯಾಚರಣೆಗಳನ್ನು ನಿರ್ವಹಿಸಬೇಕಾದ ಕ್ರಮವನ್ನು ಹೊಂದಿಸುತ್ತದೆ.

ಒಂದು ನಿರ್ದಿಷ್ಟ ಮಟ್ಟದ ಪ್ರತ್ಯೇಕತೆಯನ್ನು ಒದಗಿಸುತ್ತದೆ. ಕಾರ್ಯಾಚರಣೆಗಳ ಫಲಿತಾಂಶವು ಅವರ ಆದೇಶವನ್ನು ಅವಲಂಬಿಸಿಲ್ಲದಿದ್ದರೆ, ಅಂತಹ ಕಾರ್ಯಾಚರಣೆಗಳು ಪರಿವರ್ತಕ (ಪರ್ಮ್ಯುಟಬಲ್) ಆಗಿರುತ್ತವೆ. ವಿಭಿನ್ನ ಡೇಟಾದ ಮೇಲೆ ಓದುವ ಕಾರ್ಯಾಚರಣೆಗಳು ಮತ್ತು ಕಾರ್ಯಾಚರಣೆಗಳು ಪರಿವರ್ತಿತವಾಗಿವೆ. ಓದಲು-ಬರೆಯಲು ಮತ್ತು ಬರೆಯಲು-ಬರೆಯುವ ಕಾರ್ಯಾಚರಣೆಗಳು ಪರಿವರ್ತಕವಲ್ಲ. ಶೆಡ್ಯೂಲರ್‌ನ ಕಾರ್ಯವು ಸಮಾನಾಂತರ ವಹಿವಾಟುಗಳಿಂದ ನಿರ್ವಹಿಸಲಾದ ಕಾರ್ಯಾಚರಣೆಗಳನ್ನು ಇಂಟರ್ಲೀವ್ ಮಾಡುವುದು, ಆದ್ದರಿಂದ ಮರಣದಂಡನೆಯ ಫಲಿತಾಂಶವು ವಹಿವಾಟುಗಳ ಅನುಕ್ರಮ ಮರಣದಂಡನೆಗೆ ಸಮನಾಗಿರುತ್ತದೆ.

ಸಮಾನಾಂತರ ಉದ್ಯೋಗಗಳನ್ನು ನಿಯಂತ್ರಿಸುವ ಕಾರ್ಯವಿಧಾನಗಳು (ಕಾನ್ಕರೆನ್ಸಿ ಕಂಟ್ರೋಲ್)

ಆಶಾವಾದವು ಘರ್ಷಣೆಗಳನ್ನು ಕಂಡುಹಿಡಿಯುವುದು ಮತ್ತು ಪರಿಹರಿಸುವುದನ್ನು ಆಧರಿಸಿದೆ, ನಿರಾಶಾವಾದವು ಸಂಘರ್ಷಗಳು ಉದ್ಭವಿಸದಂತೆ ತಡೆಯುವುದನ್ನು ಆಧರಿಸಿದೆ.

ಆಶಾವಾದಿ ವಿಧಾನದಲ್ಲಿ, ಬಹು ಬಳಕೆದಾರರು ತಮ್ಮ ವಿಲೇವಾರಿಯಲ್ಲಿ ಡೇಟಾದ ಪ್ರತಿಗಳನ್ನು ಹೊಂದಿದ್ದಾರೆ. ಸಂಪಾದನೆಯನ್ನು ಪೂರ್ಣಗೊಳಿಸಿದ ಮೊದಲ ವ್ಯಕ್ತಿ ಬದಲಾವಣೆಗಳನ್ನು ಉಳಿಸುತ್ತಾನೆ, ಆದರೆ ಇತರರು ಬದಲಾವಣೆಗಳನ್ನು ವಿಲೀನಗೊಳಿಸಬೇಕು. ಒಂದು ಆಶಾವಾದಿ ಅಲ್ಗಾರಿದಮ್ ಸಂಘರ್ಷ ಸಂಭವಿಸಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ, ಆದರೆ ಸಿಸ್ಟಮ್ ಸಂಘರ್ಷದಿಂದ ಚೇತರಿಸಿಕೊಳ್ಳಬೇಕು.

ನಿರಾಶಾವಾದಿ ವಿಧಾನದೊಂದಿಗೆ, ಡೇಟಾವನ್ನು ಸೆರೆಹಿಡಿಯುವ ಮೊದಲ ಬಳಕೆದಾರರು ಡೇಟಾವನ್ನು ಸ್ವೀಕರಿಸದಂತೆ ಇತರರು ತಡೆಯುತ್ತಾರೆ. ಘರ್ಷಣೆಗಳು ಅಪರೂಪವಾಗಿದ್ದರೆ, ಆಶಾವಾದಿ ಕಾರ್ಯತಂತ್ರವನ್ನು ಆಯ್ಕೆ ಮಾಡುವುದು ಬುದ್ಧಿವಂತವಾಗಿದೆ, ಏಕೆಂದರೆ ಇದು ಹೆಚ್ಚಿನ ಮಟ್ಟದ ಸಮನ್ವಯತೆಯನ್ನು ಒದಗಿಸುತ್ತದೆ.

ಲಾಕ್ ಮಾಡುವುದು

ಒಂದು ವಹಿವಾಟು ಡೇಟಾವನ್ನು ಲಾಕ್ ಮಾಡಿದ್ದರೆ, ಡೇಟಾವನ್ನು ಪ್ರವೇಶಿಸುವಾಗ ಇತರ ವಹಿವಾಟುಗಳು ಅನ್‌ಲಾಕ್ ಆಗುವವರೆಗೆ ಕಾಯಬೇಕು.

ಡೇಟಾಬೇಸ್, ಟೇಬಲ್, ಸಾಲು, ಅಥವಾ ಗುಣಲಕ್ಷಣದ ಮೇಲೆ ಬ್ಲಾಕ್ ಅನ್ನು ಅತಿಕ್ರಮಿಸಬಹುದು. ಹಂಚಿದ ಲಾಕ್ ಅನ್ನು ಹಲವಾರು ವಹಿವಾಟುಗಳ ಮೂಲಕ ಒಂದೇ ಡೇಟಾದ ಮೇಲೆ ಹೇರಬಹುದು, ಎಲ್ಲಾ ವಹಿವಾಟುಗಳನ್ನು (ಅದನ್ನು ವಿಧಿಸಿದ ಒಂದನ್ನು ಒಳಗೊಂಡಂತೆ) ಓದಲು ಅನುಮತಿಸುತ್ತದೆ, ಮಾರ್ಪಾಡು ಮತ್ತು ವಿಶೇಷ ಸೆರೆಹಿಡಿಯುವಿಕೆಯನ್ನು ನಿಷೇಧಿಸುತ್ತದೆ. ವಿಶೇಷ ಲಾಕ್ ಅನ್ನು ಕೇವಲ ಒಂದು ವಹಿವಾಟಿನಿಂದ ವಿಧಿಸಬಹುದು, ಭವ್ಯವಾದ ವಹಿವಾಟಿನ ಯಾವುದೇ ಕ್ರಮಗಳನ್ನು ಅನುಮತಿಸುತ್ತದೆ, ಇತರರ ಯಾವುದೇ ಕ್ರಿಯೆಗಳನ್ನು ನಿಷೇಧಿಸುತ್ತದೆ.

ಡೆಡ್‌ಲಾಕ್ ಎಂದರೆ ವಹಿವಾಟುಗಳು ಅನಿರ್ದಿಷ್ಟವಾಗಿ ಉಳಿಯುವ ಬಾಕಿ ಸ್ಥಿತಿಯಲ್ಲಿ ಕೊನೆಗೊಳ್ಳುವ ಪರಿಸ್ಥಿತಿ.

ಉದಾಹರಣೆ. ಮೊದಲ ವಹಿವಾಟು ಎರಡನೇಯಿಂದ ಸೆರೆಹಿಡಿಯಲಾದ ಡೇಟಾವನ್ನು ಬಿಡುಗಡೆ ಮಾಡಲು ಕಾಯುತ್ತದೆ, ಆದರೆ ಎರಡನೆಯದು ಮೊದಲನೆಯದು ಸೆರೆಹಿಡಿಯಲಾದ ಡೇಟಾವನ್ನು ಬಿಡುಗಡೆ ಮಾಡಲು ಕಾಯುತ್ತದೆ.

ಡೆಡ್‌ಲಾಕ್ ಸಮಸ್ಯೆಗೆ ಒಂದು ಆಶಾವಾದಿ ಪರಿಹಾರವು ಡೆಡ್‌ಲಾಕ್ ಸಂಭವಿಸಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ, ಆದರೆ ನಂತರ ಡೆಡ್‌ಲಾಕ್‌ನಲ್ಲಿ ಒಳಗೊಂಡಿರುವ ವಹಿವಾಟುಗಳಲ್ಲಿ ಒಂದನ್ನು ಹಿಂದಕ್ಕೆ ತಿರುಗಿಸುವ ಮೂಲಕ ಸಿಸ್ಟಮ್ ಅನ್ನು ಚೇತರಿಸಿಕೊಳ್ಳುತ್ತದೆ.

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

ಪ್ರತಿ ವಹಿವಾಟು T ಟೈಮ್‌ಸ್ಟ್ಯಾಂಪ್ ಅನ್ನು ನಿಗದಿಪಡಿಸಲಾಗಿದೆ TS ವಹಿವಾಟಿನ ಪ್ರಾರಂಭದ ಸಮಯವನ್ನು ಒಳಗೊಂಡಿರುತ್ತದೆ.

ನಿರೀಕ್ಷಿಸಿ-ಮರಣ.

ವೇಳೆ TS(Ti) < TS(Tj), ನಂತರ Ti ಕಾಯುತ್ತದೆ, ಇಲ್ಲದಿದ್ದರೆ Ti ಹಿಂದಕ್ಕೆ ಉರುಳುತ್ತದೆ ಮತ್ತು ಅದೇ ಟೈಮ್‌ಸ್ಟ್ಯಾಂಪ್‌ನೊಂದಿಗೆ ಮತ್ತೆ ಪ್ರಾರಂಭವಾಗುತ್ತದೆ.

ಯುವ ವಹಿವಾಟು ಸಂಪನ್ಮೂಲವನ್ನು ಪಡೆದುಕೊಂಡಿದ್ದರೆ ಮತ್ತು ಹಳೆಯ ವಹಿವಾಟು ಅದೇ ಸಂಪನ್ಮೂಲವನ್ನು ವಿನಂತಿಸಿದರೆ, ನಂತರ ಹಳೆಯ ವಹಿವಾಟನ್ನು ಕಾಯಲು ಅನುಮತಿಸಲಾಗುತ್ತದೆ. ಹಳೆಯ ವಹಿವಾಟು ಸಂಪನ್ಮೂಲವನ್ನು ಪಡೆದುಕೊಂಡಿದ್ದರೆ, ಆ ಸಂಪನ್ಮೂಲವನ್ನು ವಿನಂತಿಸುವ ಕಿರಿಯ ವಹಿವಾಟನ್ನು ಹಿಂತಿರುಗಿಸಲಾಗುತ್ತದೆ.

ಗಾಯ-ನಿರೀಕ್ಷಿಸಿ.

ವೇಳೆ TS(Ti) < TS(Tj), ನಂತರ Tj ಹಿಂದೆ ಸರಿಯುತ್ತದೆ ಮತ್ತು ಅದೇ ಟೈಮ್‌ಸ್ಟ್ಯಾಂಪ್‌ನೊಂದಿಗೆ ಮತ್ತೆ ಪ್ರಾರಂಭವಾಗುತ್ತದೆ, ಇಲ್ಲದಿದ್ದರೆ Ti ಕಾಯುತ್ತಿದೆ.

ಕಿರಿಯ ವಹಿವಾಟು ಸಂಪನ್ಮೂಲವನ್ನು ಪಡೆದುಕೊಂಡಿದ್ದರೆ ಮತ್ತು ಹಳೆಯ ವಹಿವಾಟು ಅದೇ ಸಂಪನ್ಮೂಲವನ್ನು ವಿನಂತಿಸಿದರೆ, ನಂತರ ಕಿರಿಯ ವ್ಯವಹಾರವನ್ನು ಹಿಂತಿರುಗಿಸಲಾಗುತ್ತದೆ. ಹಳೆಯ ವಹಿವಾಟು ಸಂಪನ್ಮೂಲವನ್ನು ಪಡೆದುಕೊಂಡಿದ್ದರೆ, ಆ ಸಂಪನ್ಮೂಲವನ್ನು ವಿನಂತಿಸುವ ಕಿರಿಯ ವಹಿವಾಟನ್ನು ಕಾಯಲು ಅನುಮತಿಸಲಾಗುತ್ತದೆ. ಪ್ರಾಶಸ್ತ್ಯ-ಆಧಾರಿತ ಬಲಿಪಶುವಿನ ಆಯ್ಕೆಯು ಡೆಡ್‌ಲಾಕ್‌ಗಳನ್ನು ತಡೆಯುತ್ತದೆ, ಆದರೆ ಡೆಡ್‌ಲಾಕ್ ಆಗದ ವಹಿವಾಟುಗಳನ್ನು ಹಿಂತಿರುಗಿಸುತ್ತದೆ. ಸಮಸ್ಯೆಯೆಂದರೆ ವಹಿವಾಟುಗಳನ್ನು ಹಲವು ಬಾರಿ ಹಿಂತಿರುಗಿಸಬಹುದು ಏಕೆಂದರೆ... ಹಳೆಯ ವಹಿವಾಟು ಸಂಪನ್ಮೂಲವನ್ನು ದೀರ್ಘಕಾಲದವರೆಗೆ ಹಿಡಿದಿಟ್ಟುಕೊಳ್ಳಬಹುದು.

ಡೆಡ್‌ಲಾಕ್ ಸಮಸ್ಯೆಗೆ ನಿರಾಶಾವಾದಿ ಪರಿಹಾರವು ಡೆಡ್‌ಲಾಕ್‌ನ ಅಪಾಯವಿದ್ದಲ್ಲಿ ವಹಿವಾಟನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಲು ಪ್ರಾರಂಭಿಸಲು ಅನುಮತಿಸುವುದಿಲ್ಲ.

ಡೆಡ್‌ಲಾಕ್ ಅನ್ನು ಪತ್ತೆಹಚ್ಚಲು, ಗ್ರಾಫ್ ಅನ್ನು ನಿರ್ಮಿಸಲಾಗಿದೆ (ವೇಟಿಂಗ್ ಗ್ರಾಫ್, ವೇಟ್-ಫಾರ್-ಗ್ರಾಫ್), ಅದರ ಶೃಂಗಗಳು ವಹಿವಾಟುಗಳಾಗಿವೆ ಮತ್ತು ಈ ಡೇಟಾವನ್ನು ಸೆರೆಹಿಡಿಯುವ ವಹಿವಾಟಿಗೆ ಡೇಟಾ ಬಿಡುಗಡೆಗಾಗಿ ಕಾಯುತ್ತಿರುವ ವಹಿವಾಟಿನಿಂದ ಅಂಚುಗಳನ್ನು ನಿರ್ದೇಶಿಸಲಾಗುತ್ತದೆ. ಗ್ರಾಫ್ ಲೂಪ್ ಹೊಂದಿದ್ದರೆ ಡೆಡ್‌ಲಾಕ್ ಸಂಭವಿಸಿದೆ ಎಂದು ಪರಿಗಣಿಸಲಾಗುತ್ತದೆ. ವಿಶೇಷವಾಗಿ ವಿತರಿಸಿದ ಡೇಟಾಬೇಸ್‌ಗಳಲ್ಲಿ ಕಾಯುವ ಗ್ರಾಫ್ ಅನ್ನು ನಿರ್ಮಿಸುವುದು ದುಬಾರಿ ವಿಧಾನವಾಗಿದೆ.

ಎರಡು-ಹಂತದ ಲಾಕಿಂಗ್ - ವಹಿವಾಟಿನ ಆರಂಭದಲ್ಲಿ ವಹಿವಾಟು ಬಳಸಿದ ಎಲ್ಲಾ ಸಂಪನ್ಮೂಲಗಳನ್ನು ವಶಪಡಿಸಿಕೊಳ್ಳುವ ಮೂಲಕ ಮತ್ತು ಕೊನೆಯಲ್ಲಿ ಅವುಗಳನ್ನು ಬಿಡುಗಡೆ ಮಾಡುವ ಮೂಲಕ ಡೆಡ್‌ಲಾಕ್‌ಗಳನ್ನು ತಡೆಯುತ್ತದೆ

ಎಲ್ಲಾ ನಿರ್ಬಂಧಿಸುವ ಕಾರ್ಯಾಚರಣೆಗಳು ಮೊದಲ ಅನ್‌ಲಾಕಿಂಗ್‌ಗೆ ಮುಂಚಿತವಾಗಿರಬೇಕು. ಇದು ಎರಡು ಹಂತಗಳನ್ನು ಹೊಂದಿದೆ - ಬೆಳವಣಿಗೆಯ ಹಂತ, ಈ ಸಮಯದಲ್ಲಿ ಹಿಡಿತಗಳು ಸಂಗ್ರಹಗೊಳ್ಳುತ್ತವೆ ಮತ್ತು ಕುಗ್ಗುವ ಹಂತ, ಈ ಸಮಯದಲ್ಲಿ ಹಿಡಿತಗಳು ಬಿಡುಗಡೆಯಾಗುತ್ತವೆ. ಸಂಪನ್ಮೂಲಗಳಲ್ಲಿ ಒಂದನ್ನು ಸೆರೆಹಿಡಿಯುವುದು ಅಸಾಧ್ಯವಾದರೆ, ವಹಿವಾಟು ಪ್ರಾರಂಭವಾಗುತ್ತದೆ. ಒಂದು ವಹಿವಾಟು ಅಗತ್ಯವಿರುವ ಸಂಪನ್ಮೂಲಗಳನ್ನು ಪಡೆಯಲು ಸಾಧ್ಯವಾಗುವುದಿಲ್ಲ, ಉದಾಹರಣೆಗೆ, ಹಲವಾರು ವಹಿವಾಟುಗಳು ಒಂದೇ ಸಂಪನ್ಮೂಲಗಳಿಗಾಗಿ ಸ್ಪರ್ಧಿಸಿದರೆ.

ಎರಡು-ಹಂತದ ಕಮಿಟ್ ಎಲ್ಲಾ ಡೇಟಾಬೇಸ್ ಪ್ರತಿಕೃತಿಗಳಲ್ಲಿ ಬದ್ಧತೆಯನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುವುದನ್ನು ಖಚಿತಪಡಿಸುತ್ತದೆ

ಪ್ರತಿಯೊಂದು ಡೇಟಾಬೇಸ್ ಲಾಗ್‌ಗೆ ಬದಲಾಗುವ ಡೇಟಾದ ಮಾಹಿತಿಯನ್ನು ನಮೂದಿಸುತ್ತದೆ ಮತ್ತು ಸಂಯೋಜಕರಿಗೆ ಸರಿ (ಮತದಾನ ಹಂತ) ಪ್ರತಿಕ್ರಿಯಿಸುತ್ತದೆ. ಎಲ್ಲರೂ ಸರಿ ಎಂದು ಪ್ರತಿಕ್ರಿಯಿಸಿದ ನಂತರ, ಸಂಯೋಜಕರು ಎಲ್ಲರಿಗೂ ಒಪ್ಪಿಗೆ ಸೂಚಿಸುವ ಸಂಕೇತವನ್ನು ಕಳುಹಿಸುತ್ತಾರೆ. ಒಪ್ಪಿಸಿದ ನಂತರ, ಸರ್ವರ್‌ಗಳು ಸರಿ ಎಂದು ಪ್ರತಿಕ್ರಿಯಿಸುತ್ತವೆ; ಕನಿಷ್ಠ ಒಬ್ಬರು ಸರಿ ಎಂದು ಪ್ರತಿಕ್ರಿಯಿಸದಿದ್ದರೆ, ಎಲ್ಲಾ ಸರ್ವರ್‌ಗಳಿಗೆ ಬದಲಾವಣೆಗಳನ್ನು ರದ್ದುಗೊಳಿಸಲು ಸಂಯೋಜಕರು ಸಂಕೇತವನ್ನು ಕಳುಹಿಸುತ್ತಾರೆ (ಮುಕ್ತಾಯ ಹಂತ).

ಟೈಮ್‌ಸ್ಟ್ಯಾಂಪ್ ವಿಧಾನ

ಕಿರಿಯ ವಹಿವಾಟು ಒಳಗೊಂಡಿರುವ ಡೇಟಾವನ್ನು ಪ್ರವೇಶಿಸಲು ಪ್ರಯತ್ನಿಸಿದಾಗ ಹಳೆಯ ವಹಿವಾಟನ್ನು ಹಿಂತಿರುಗಿಸಲಾಗುತ್ತದೆ

ಪ್ರತಿ ವಹಿವಾಟಿಗೆ ಟೈಮ್‌ಸ್ಟ್ಯಾಂಪ್ ನಿಗದಿಪಡಿಸಲಾಗಿದೆ TS ಮರಣದಂಡನೆಯ ಪ್ರಾರಂಭದ ಸಮಯಕ್ಕೆ ಅನುಗುಣವಾಗಿ. ಒಂದು ವೇಳೆ Ti ಹಳೆಯದು Tj, ನಂತರ TS(Ti) < TS(Tj).

ವಹಿವಾಟನ್ನು ಹಿಂತಿರುಗಿಸಿದಾಗ, ಅದಕ್ಕೆ ಹೊಸ ಟೈಮ್‌ಸ್ಟ್ಯಾಂಪ್ ಅನ್ನು ನಿಗದಿಪಡಿಸಲಾಗುತ್ತದೆ. ಪ್ರತಿಯೊಂದು ಡೇಟಾ ವಸ್ತು Q ವಹಿವಾಟಿನಲ್ಲಿ ತೊಡಗಿರುವ ಎರಡು ಲೇಬಲ್‌ಗಳೊಂದಿಗೆ ಗುರುತಿಸಲಾಗಿದೆ. W-TS(Q) - ದಾಖಲೆಯನ್ನು ಯಶಸ್ವಿಯಾಗಿ ಪೂರ್ಣಗೊಳಿಸಿದ ಅತ್ಯಂತ ಕಿರಿಯ ವಹಿವಾಟಿನ ಟೈಮ್‌ಸ್ಟ್ಯಾಂಪ್ Q. R-TS(Q) - ಓದಿದ ದಾಖಲೆಯನ್ನು ನಿರ್ವಹಿಸಿದ ಕಿರಿಯ ವಹಿವಾಟಿನ ಟೈಮ್‌ಸ್ಟ್ಯಾಂಪ್ Q.

ವಹಿವಾಟು ಯಾವಾಗ T ಡೇಟಾವನ್ನು ಓದಲು ವಿನಂತಿಸುತ್ತದೆ Q ಎರಡು ಆಯ್ಕೆಗಳಿವೆ.

ವೇಳೆ TS(T) < W-TS(Q), ಅಂದರೆ, ಕಿರಿಯ ವಹಿವಾಟಿನಿಂದ ಡೇಟಾವನ್ನು ನವೀಕರಿಸಲಾಗಿದೆ, ನಂತರ ವಹಿವಾಟು T ಹಿಂದಕ್ಕೆ ಉರುಳುತ್ತದೆ.

ವೇಳೆ TS(T) >= W-TS(Q), ನಂತರ ಓದುವಿಕೆಯನ್ನು ನಡೆಸಲಾಗುತ್ತದೆ ಮತ್ತು R-TS(Q) ಆಗುತ್ತಿದೆ MAX(R-TS(Q), TS(T)).

ವಹಿವಾಟು ಯಾವಾಗ T ಡೇಟಾ ಬದಲಾವಣೆಗಳನ್ನು ವಿನಂತಿಸುತ್ತದೆ Q ಎರಡು ಆಯ್ಕೆಗಳಿವೆ.

ವೇಳೆ TS(T) < R-TS(Q), ಅಂದರೆ, ಕಿರಿಯ ವಹಿವಾಟಿನಿಂದ ಡೇಟಾವನ್ನು ಈಗಾಗಲೇ ಓದಲಾಗಿದೆ ಮತ್ತು ಬದಲಾವಣೆಯನ್ನು ಮಾಡಿದರೆ, ಸಂಘರ್ಷ ಉಂಟಾಗುತ್ತದೆ. ವ್ಯವಹಾರ T ಹಿಂದಕ್ಕೆ ಉರುಳುತ್ತದೆ.

ವೇಳೆ TS(T) < W-TS(Q), ಅಂದರೆ, ವಹಿವಾಟು ಹೊಸ ಮೌಲ್ಯವನ್ನು ತಿದ್ದಿ ಬರೆಯಲು ಪ್ರಯತ್ನಿಸುತ್ತದೆ, ವಹಿವಾಟು T ಅನ್ನು ಹಿಂತಿರುಗಿಸಲಾಗುತ್ತದೆ. ಇತರ ಸಂದರ್ಭಗಳಲ್ಲಿ, ಬದಲಾವಣೆಯನ್ನು ಕೈಗೊಳ್ಳಲಾಗುತ್ತದೆ ಮತ್ತು W-TS(Q) ಸಮನಾಗುತ್ತಾನೆ TS(T).

ಯಾವುದೇ ದುಬಾರಿ ಕಾಯುವ ಗ್ರಾಫ್ ನಿರ್ಮಾಣ ಅಗತ್ಯವಿಲ್ಲ. ಹಳೆಯ ವಹಿವಾಟುಗಳು ಹೊಸದನ್ನು ಅವಲಂಬಿಸಿರುತ್ತದೆ, ಆದ್ದರಿಂದ ಕಾಯುವ ಗ್ರಾಫ್‌ನಲ್ಲಿ ಯಾವುದೇ ಚಕ್ರಗಳಿಲ್ಲ. ಯಾವುದೇ ಡೆಡ್‌ಲಾಕ್‌ಗಳಿಲ್ಲ ಏಕೆಂದರೆ ವಹಿವಾಟುಗಳನ್ನು ನಿರೀಕ್ಷಿಸಲಾಗುವುದಿಲ್ಲ ಆದರೆ ತಕ್ಷಣವೇ ಹಿಂತಿರುಗಿಸಲಾಗುತ್ತದೆ. ಕ್ಯಾಸ್ಕೇಡಿಂಗ್ ರೋಲ್ಬ್ಯಾಕ್ಗಳು ​​ಸಾಧ್ಯ. ಒಂದು ವೇಳೆ Ti ದೂರ ಉರುಳಿತು ಮತ್ತು Tj ನಾನು ಬದಲಾಯಿಸಿದ ಡೇಟಾವನ್ನು ನಾನು ಓದಿದ್ದೇನೆ Ti, ನಂತರ Tj ಹಿಂದೆ ಸರಿಯಬೇಕು. ಅದೇ ಸಮಯದಲ್ಲಿ ಇದ್ದರೆ Tj ಈಗಾಗಲೇ ಬದ್ಧವಾಗಿದೆ, ನಂತರ ಸ್ಥಿರತೆಯ ತತ್ವದ ಉಲ್ಲಂಘನೆ ಇರುತ್ತದೆ.

ಕ್ಯಾಸ್ಕೇಡಿಂಗ್ ರೋಲ್‌ಬ್ಯಾಕ್‌ಗಳಿಗೆ ಪರಿಹಾರಗಳಲ್ಲಿ ಒಂದಾಗಿದೆ. ವಹಿವಾಟು ಎಲ್ಲಾ ಬರವಣಿಗೆಯ ಕಾರ್ಯಾಚರಣೆಗಳನ್ನು ಕೊನೆಯಲ್ಲಿ ಪೂರ್ಣಗೊಳಿಸುತ್ತದೆ ಮತ್ತು ಇತರ ವಹಿವಾಟುಗಳು ಆ ಕಾರ್ಯಾಚರಣೆಯನ್ನು ಪೂರ್ಣಗೊಳಿಸಲು ಕಾಯಬೇಕು. ಓದುವ ಮೊದಲು ವಹಿವಾಟುಗಳು ಬದ್ಧವಾಗಲು ಕಾಯುತ್ತವೆ.

ಥಾಮಸ್ ರೈಟ್ ರೂಲ್ - ಟೈಮ್‌ಸ್ಟ್ಯಾಂಪ್ ವಿಧಾನದ ಬದಲಾವಣೆ, ಇದರಲ್ಲಿ ಕಿರಿಯ ವ್ಯವಹಾರದಿಂದ ನವೀಕರಿಸಿದ ಡೇಟಾವನ್ನು ಹಳೆಯವರಿಂದ ತಿದ್ದಿ ಬರೆಯುವುದನ್ನು ನಿಷೇಧಿಸಲಾಗಿದೆ

ವ್ಯವಹಾರ T ಡೇಟಾ ಬದಲಾವಣೆಗಳನ್ನು ವಿನಂತಿಸುತ್ತದೆ Q. ವೇಳೆ TS(T) < W-TS(Q), ಅಂದರೆ, ವಹಿವಾಟು ಹೊಸ ಮೌಲ್ಯವನ್ನು ತಿದ್ದಿ ಬರೆಯಲು ಪ್ರಯತ್ನಿಸುತ್ತದೆ, ಟೈಮ್‌ಸ್ಟ್ಯಾಂಪ್ ವಿಧಾನದಂತೆ ವಹಿವಾಟು T ಅನ್ನು ಹಿಂತಿರುಗಿಸಲಾಗುವುದಿಲ್ಲ.

ಮೂಲ: www.habr.com

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