UUID ಎಂದರೇನು?
UUID (Universally Unique Identifier) ಒಂದು 128-ಬಿಟ್ ಮೌಲ್ಯ 550e8400-e29b-41d4-a716-446655440000 ಮೊದಲಾದ 36-ಅಕ್ಷರ ಸ್ಟ್ರಿಂಗ್ ಆಗಿ ನಿರ್ಮಿಸಲ್ಪಡುತ್ತದೆ. ಫಾರ್ಮ್ಯಾಟ್ ಮತ್ತು ಆವೃತ್ತಿ ಅರ್ಥಶಾಸ್ತ್ರ v1 ರಿಂದ v5 ಗೆ RFC 4122 ನಿಂದ, ಮತ್ತು ಹೊಸ v6, v7 ಮತ್ತು v8 ಆವೃತ್ತಿಗಳಿಗೆ RFC 9562 ನಿಂದ ವ್ಯಾಖ್ಯಾನಿಸಲ್ಪಟ್ಟಿದೆ. ಈ ಸಾಧನ v4 (ಶುದ್ಧ ಯಾದೃಚ್ಛಿಕ), v1 (timestamp ಮತ್ತು ಯಾದೃಚ್ಛಿಕ node ID), ಮತ್ತು v7 (Unix-ಮಿಲಿಸೆಕೆಂಡ್ timestamp ಪ್ರಿಫಿಕ್ಸ್, ರಚನಾ ಸಮಯದ ಮೂಲಕ ಕ್ರಮಿಸಬಹುದಾದ) ರಚಿಸುತ್ತದೆ — ಎಲ್ಲ ನಿಮ್ಮ ಬ್ರೌಸರ್ನಲ್ಲಿ. ಯಾವ ಡೇಟಾ ಸರ್ವರ್ಗೆ ಕಳಿಸಲ್ಪಡುವುದಿಲ್ಲ.
UUID ರಚನೆ ಹೇಗೆ ಕಾರ್ಯ ನಿರ್ವಹಿಸುತ್ತದೆ?
ಪ್ರತಿ ಆವೃತ್ತಿ ನಿರ್ಣಾಯಕತೆ, ಕ್ರಮಿಸಬಹುದಾಗಿರುವಿಕೆ ಮತ್ತು ಎಂಟ್ರೊಪಿ ಭಿನ್ನವಾಗಿ ವಿನಿಮಯ ಮಾಡುತ್ತದೆ. ಸಾಧನ ನಿಮ್ಮ ಆಯ್ಕೆ ಆಧಾರದ ಮೇಲೆ ಸರಿಯಾದ ಅಲ್ಗಾರಿದಮ್ ಆಯ್ಕೆ ಮಾಡುತ್ತದೆ:
- v4 (ಯಾದೃಚ್ಛಿಕ) ಬ್ರೌಸರ್ನ
crypto.randomUUID()ಕರೆಯುತ್ತದೆ, ಇದು 6 ಸ್ಥಿರ ಬಿಟ್ಗಳೊಂದಿಗೆ (ಆವೃತ್ತಿ0100ಮತ್ತು10ವೇರಿಯಂಟ್) 122 ಬಿಟ್ ಕ್ರಿಪ್ಟೋಗ್ರಾಫಿಕ್ ಯಾದೃಚ್ಛಿಕತೆ ಹಿಂದಿರುಗಿಸುತ್ತದೆ. ಘರ್ಷಣೆ ಖಗೋಳ ಪ್ರಮಾಣದಲ್ಲಿ ಸಾಧ್ಯತೆ ಕಡಿಮೆ. - v1 (ಟೈಮ್ಸ್ಟ್ಯಾಂಪ್ + ನೋಡ್) 60-ಬಿಟ್ ಗ್ರೆಗೋರಿಯನ್ ಟೈಮ್ಸ್ಟ್ಯಾಂಪ್ (1582-10-15 ರಿಂದ 100-ನ್ಯಾನೊಸೆಕೆಂಡ್ ಟಿಕ್ಗಳು)
time_low/time_mid/time_hi_and_versionನಲ್ಲಿ ಪ್ಯಾಕ್ ಮಾಡಿ, ಆವೃತ್ತಿ nibble0001ಗೆ ಹೊಂದಿಸಿ, ವೇರಿಯಂಟ್ ಬಿಟ್ಗಳ ಸಮೇತ 14-ಬಿಟ್ ಗಡಿಯಾರ ಅನುಕ್ರಮ ಆಯ್ಕೆ ಮಾಡಿ, ಮತ್ತು ಯಾದೃಚ್ಛಿಕ 48-ಬಿಟ್ ನೋಡ್ ID ಬಳಸುತ್ತದೆ ಇದರಲ್ಲಿ ಬಹುಪ್ರಸಾರ ಬಿಟ್ ಬಲವಂತವಾಗಿ ಆನ್ ಆಗಿದೆ (RFC 4122 §4.5 ಸ್ಪಷ್ಟವಾಗಿ ಅನುಮತಿಸುತ್ತದೆ ಯಂತ್ರಾಂಶ MAC ಲಭ್ಯವಿಲ್ಲದಿರುವಾಗ ಯಾದೃಚ್ಛಿಕ ನೋಡ್ ID ಬಳಸಲು — ಬಹುಪ್ರಸಾರ ಬಿಟ್ ಅದನ್ನು ಗೈರು-MAC ಎಂದು ಗುರುತಿಸುತ್ತದೆ). - v7 (ಕ್ರಮಿಸಬಹುದಾದ timestamp), RFC 9562 §5.7 ಪ್ರಕಾರ, 48-ಬಿಟ್ big-endian Unix-ಮಿಲಿಸೆಕೆಂಡ್ timestamp, ನಂತರ 4-ಬಿಟ್ ಆವೃತ್ತಿ
0111, ನಂತರ 12 ಯಾದೃಚ್ಛಿಕ ಬಿಟ್ಗಳು, ನಂತರ 2-ಬಿಟ್ ವೇರಿಯಂಟ್10, ನಂತರ 62 ಹೆಚ್ಚಿನ ಯಾದೃಚ್ಛಿಕ ಬಿಟ್ಗಳು ವಿನ್ಯಾಸ ಮಾಡುತ್ತದೆ. timestamp ಅತ್ಯಂತ-ಮಹತ್ವದ ಬಿಟ್ಗಳಲ್ಲಿ ಇರುವ ಕಾರಣ v7 UUID ಗಳು ರಚನಾ ಕ್ರಮದಲ್ಲಿ ಶಬ್ದಕ್ರಮ ಕ್ರಮಿಸುತ್ತವೆ. - ಎಲ್ಲ ಯಾದೃಚ್ಛಿಕತೆ
crypto.getRandomValues()ನಿಂದ ಬರುತ್ತದೆ, ಬ್ರೌಸರ್ನ ಕ್ರಿಪ್ಟೋಗ್ರಾಫಿಕ್-ಸುರಕ್ಷಿತ RNG. v1 ಮತ್ತು v7 ಎರಡೂ ಇಂಟ್ರಾ-ಟಿಕ್ ಮೊನೊಟೋನಿಕ್ ಗಾರ್ಡ್ ಒಳಗೊಂಡಿದ್ದು ಒಂದೇ ಗಡಿಯಾರ ಟಿಕ್ನಲ್ಲಿ ಎರಡು ಸತತ ಕಾಲ್ಗಳು ಎರಡನೇ ಮೊದಲನೆಯ ಮೇಲೆ ಕ್ರಮಿಸುತ್ತವೆ. - ಫಾರ್ಮ್ಯಾಟ್ ಪೈಪ್ಲೈನ್ ರಚನೆ ನಂತರ ಚಲಾಯಿಸುತ್ತದೆ. ಹೈಫನ್ ತೆಗೆದುಹಾಕಿ, ಅಪ್ಪರ್ಕೇಸ್ಗೆ ಬದಲಿಸಿ, ಬ್ರೇಸ್ಗಳಲ್ಲಿ ಸುತ್ತಿ (
{…}— Microsoft GUID ಸಂಪ್ರದಾಯ), ಅಥವಾ ಕಚ್ಚಾ 16 ಬೈಟ್ಗಳನ್ನು base64 ಆಗಿ ನಿರ್ಮಿಸಬಹುದು.
ಈ UUID ಜನರೇಟರ್ ಏಕೆ ಬಳಸಬೇಕು?
- ನಿಮ್ಮ ಬ್ರೌಸರ್ ಬಿಡುವುದಿಲ್ಲ. Web Crypto API ಸ್ಥಳೀಯವಾಗಿ ಚಲಾಯಿಸುತ್ತದೆ; ಆರಂಭ ದಾಖಲೆ ಲೋಡ್ ನಂತರ ಪುಟ ಶೂನ್ಯ ನೆಟ್ವರ್ಕ್ ವಿನಂತಿ ಮಾಡುತ್ತದೆ. DevTools ತೆರೆದು Generate ಕ್ಲಿಕ್ ಮಾಡಿ — Network ಪ್ಯಾನೆಲ್ ಮೌನವಾಗಿ ಉಳಿಯುತ್ತದೆ.
- RFC-ಸರಿಯಾದ ಔಟ್ಪುಟ್. v4 RFC 4122 §4.4 ಅನುಸರಿಸುತ್ತದೆ, v1 §4.2 ಮತ್ತು §4.5 ಅನುಸರಿಸುತ್ತದೆ, ಮತ್ತು v7 RFC 9562 §5.7 ಅನುಸರಿಸುತ್ತದೆ. ಪ್ರತಿ UUID ಮಾನಕ ಆವೃತ್ತಿ regex ವಿರುದ್ಧ ಮೌಲ್ಯೀಕರಿಸುತ್ತದೆ.
- ಡೇಟಾಬೇಸ್ ಕೀಗಳಿಗೆ ಕ್ರಮಿಸಬಹುದಾದ v7. Postgres, MySQL ಅಥವಾ SQL Server ನಲ್ಲಿ ಕ್ಲಸ್ಟರ್ಡ್ ಪ್ರಾಥಮಿಕ ಕೀ ಆಗಿ ಬಳಸಿದ v7 UUID ಇಂಡೆಕ್ಸ್ನಲ್ಲಿ ಇನ್ಸರ್ಟ್ಗಳನ್ನು ಅನುಬಂಧ-ಮಾತ್ರ ಇರಿಸಿ ಪೇಜ್ ಸ್ಪ್ಲಿಟ್ ಮತ್ತು ಯಾದೃಚ್ಛಿಕ I/O ತಡೆಯುತ್ತದೆ.
- ದರ ಮಿತಿ ಇಲ್ಲದೆ ದೊಡ್ಡ ಪ್ರಮಾಣ ರಚನೆ. ಏಕಕಾಲದಲ್ಲಿ 1, 10, 100, ಅಥವಾ 1,000 UUID ರಚಿಸಿ. ಯಾವ ಕೋಟಾ ಇಲ್ಲ ಮತ್ತು ಸೈನ್ಅಪ್ ಇಲ್ಲ — ಸಾಧನ ನಿಮ್ಮ ಟ್ಯಾಬ್ನಲ್ಲಿ ಚಲಾಯಿಸುತ್ತದೆ.
UUID ಗಳ ಸಾಮಾನ್ಯ ಅನ್ವಯಗಳು ಯಾವುವು?
UUID ಗಳು ಕೇಂದ್ರ ಪ್ರಾಧಿಕಾರದೊಂದಿಗೆ ಸಮನ್ವಯ ಮಾಡದೆ ಸಿಸ್ಟಮ್ಗೆ ಜಾಗತಿಕವಾಗಿ-ಅನನ್ಯ ಗುರುತಿಕೆ ಅಗತ್ಯ ಎಲ್ಲ ಸ್ಥಳದಲ್ಲೂ ಕಾಣಿಸಿಕೊಳ್ಳುತ್ತವೆ:
- ಡೇಟಾಬೇಸ್ ಪ್ರಾಥಮಿಕ ಕೀಗಳು. ಸ್ವಯಂ-ಇಂಕ್ರಿಮೆಂಟ್ ಪೂರ್ಣಾಂಕಗಳು ಸಾಲು ಎಣಿಕೆ ಸೋರಿಕೆ ಮಾಡಿ ಶಾರ್ಡಿಂಗ್ ಭಾಂಗಿಸುತ್ತವೆ. UUID ಗಳು ಶಾರ್ಡ್ಗಳಾದ್ಯಂತ ಸ್ಥಿರ, ಪ್ರದೇಶಗಳಾದ್ಯಂತ ವಿಲೀನಿಸಲು ಸುರಕ್ಷಿತ, ಮತ್ತು (v7 ನೊಂದಿಗೆ) ಪೇಜ್ ಸ್ಪ್ಲಿಟ್ ಇಲ್ಲದೆ B-tree ಇನ್ಸರ್ಟ್ ಬಿಸಿಯಾಗಿ ಇರಿಸುತ್ತದೆ.
- ವಿನಂತಿ ಪರಸ್ಪರ ಸಂಬಂಧ ID ಗಳು. HTTP ಮಿಡಲ್ವೇರ್ v4 UUID ಅನ್ನು ಪ್ರತಿ ಒಳಬರುವ ವಿನಂತಿಗೆ ಜೋಡಿಸಿ ಪ್ರತಿ span ನಲ್ಲಿ ಲಾಗ್ ಮಾಡಿ ಡೌನ್ಸ್ಟ್ರೀಮ್ಗೆ ಹರಡುತ್ತದೆ (ಸಾಮಾನ್ಯವಾಗಿ
X-Request-Idಹೆಡರ್ ಆಗಿ). ಗ್ರಾಹಕ ಬಗ್ ವರದಿ ಮಾಡಿದಾಗ, ಬೆಂಬಲ ಇಂಜಿನಿಯರ್ ID ಅಂಟಿಸಿ ಸಂಪೂರ್ಣ ವಿನಂತಿ ಟ್ರೇಸ್ ತೋರಿಸುತ್ತದೆ. - Idempotency ಕೀಗಳು. ಪಾವತಿ API ಗಳು (Stripe, Razorpay, Adyen) `Idempotency-Key` ಹೆಡರ್ ಸ್ವೀಕರಿಸಿ ಮರುಪ್ರಯತ್ನ ವಿನಂತಿ ಗ್ರಾಹಕರನ್ನು ಎರಡು ಬಾರಿ ಶುಲ್ಕ ವಿಧಿಸದು ಎಂದು ಖಚಿತಪಡಿಸುತ್ತವೆ. ಕ್ಲೈಂಟ್-ರಚಿತ UUID ಕೀ ಪ್ರತಿ ತಾರ್ಕಿಕ ಕಾರ್ಯಾಚರಣೆಗೆ ಅನನ್ಯ ಎಂದು ಖಚಿತಪಡಿಸುತ್ತದೆ.
UUID ಉದಾಹರಣೆ ಹೇಗೆ ಕಾಣುತ್ತದೆ?
Node.js ಅಥವಾ ಆಧುನಿಕ ಬ್ರೌಸರ್ನಲ್ಲಿ, ಒಂದೇ ಸಾಲಿನ crypto.randomUUID() ತಾಜಾ v4 UUID ಹಿಂದಿರುಗಿಸುತ್ತದೆ — ಉದಾಹರಣೆಗೆ 3f50b5a8-2c54-4b9c-9c1f-3e5c7e2b8d12. ವಿನಂತಿ ID ಅಥವಾ idempotency ಕೀಗೆ ಇದನ್ನು ಬಳಸಿ. UUID ಕ್ಲಸ್ಟರ್ಡ್ ಪ್ರಾಥಮಿಕ ಕೀ ಆಗಲಿರುವ ಡೇಟಾಬೇಸ್ ಕಾಲಮ್ಗೆ ಹೋದಾಗ, ಬದಲಿಗೆ v7 ರಚಿಸಿ: ಒಂದು ಮಿಲಿಸೆಕೆಂಡ್ ಅಂತರದಲ್ಲಿ ಉತ್ಪಾದಿಸಿದ ಎರಡು v7 ಮೌಲ್ಯಗಳು ಶಬ್ದಕ್ರಮ ರಚನಾ ಕ್ರಮದಲ್ಲಿ ಕ್ರಮಿಸುತ್ತವೆ.
ಈ UUID ಜನರೇಟರ್ ಒಂದು ಕೆಲಸ ಮಾಡುತ್ತದೆ: ಒಂದು ಕ್ಲಿಕ್ ಅನ್ನು ಒಂದು ಅಥವಾ ಅನೇಕ RFC-ಅನುಸರಣಾ ಗುರುತಿಕೆಗಳಾಗಿ, ನಿಮಗೆ ಬೇಕಾದ ರೀತಿ ಫಾರ್ಮ್ಯಾಟ್ ಮಾಡಿ, ನಿಮ್ಮ ವಿನಂತಿ ಸರ್ವರ್ಗೆ ಕಳಿಸದೆ ತಿರುಗಿಸಿ. ಆವೃತ್ತಿ ಆಯ್ಕೆ ಮಾಡಿ, ಸಂಖ್ಯೆ ಆಯ್ಕೆ ಮಾಡಿ, ಫಾರ್ಮ್ಯಾಟ್ ಆಯ್ಕೆ ಮಾಡಿ — ರಚಿಸಿ, ನಕಲಿಸಿ, ಮುಂದುವರಿಯಿರಿ.