ವಿತರಣಾ ವ್ಯವಸ್ಥೆಗಳು, ಡೇಟಾಬೇಸ್ಗಳು ಮತ್ತು ವಿಶಿಷ್ಟ, ಕಾಲಕ್ರಮದಲ್ಲಿ ವರ್ಗೀಕರಿಸಬಹುದಾದ ಕೀಗಳನ್ನು ಅಗತ್ಯವಿರುವ ಅಪ್ಲಿಕೇಶನ್ಗಳಿಗೆ K-ವರ್ಗೀಕರಿಸಬಹುದಾದ ವಿಶಿಷ್ಟ ಗುರುತಿನ ಚಿಹ್ನೆಗಳನ್ನು (KSUIDs) ಉತ್ಪಾದಿಸಿ. KSUIDs ಕಾಲಚಿಹ್ನೆಯನ್ನು ಯಾದೃಚ್ಛಿಕ ಡೇಟಾದೊಂದಿಗೆ ಸಂಯೋಜಿಸುತ್ತವೆ, ಇದು ಘರ್ಷಣೆಗೆ ಪ್ರತಿರೋಧಕ, ವರ್ಗೀಕರಿಸಬಹುದಾದ ಗುರುತಿನ ಚಿಹ್ನೆಗಳನ್ನು ರಚಿಸುತ್ತದೆ.
ಒಂದು KSUID ಜನರೇಟರ್ ಸಮಯ ಆಧಾರಿತ ವರ್ಗೀಕರಣವನ್ನು ಕ್ರಿಪ್ಟೋಗ್ರಾಫಿಕ್ ವೈಶಿಷ್ಟ್ಯತೆಯೊಂದಿಗೆ ಸಂಯೋಜಿಸುವ K-ವರ್ಗೀಕರಿಸಬಹುದಾದ ವಿಶಿಷ್ಟ ಗುರುತಿಗಳನ್ನು ರಚಿಸುತ್ತದೆ. ಪರಂಪರागत UUID ಗಳಿಗೆ ಹೋಲಿಸಿದರೆ, KSUID ಗಳು ಕಾಲಕ್ರಮದಲ್ಲಿ ವರ್ಗೀಕರಿಸಬಹುದಾದವು ಮತ್ತು ಸರ್ವರ್ಗಳ ನಡುವಿನ ಸಮನ್ವಯವಿಲ್ಲದೆ ವಿಶಿಷ್ಟ ಗುರುತಿನ ಉತ್ಪಾದನೆ ಅಗತ್ಯವಿರುವ ವಿತರಣಾ ವ್ಯವಸ್ಥೆಗಳಿಗೆ ಪರಿಪೂರ್ಣವಾಗಿದೆ.
KSUID ಜನರೇಟರ್ ಬಳಸುವ ಪ್ರಮುಖ ಪ್ರಯೋಜನಗಳು:
ಒಂದು KSUID (K-ವರ್ಗೀಕರಿಸಬಹುದಾದ ವಿಶಿಷ್ಟ ಗುರುತಿನ) 20-ಬೈಟ್ ವರ್ಗೀಕರಿಸಬಹುದಾದ ಗುರುತಿಯಾಗಿದೆ, ಇದು ಒಳಗೊಂಡಿದೆ:
ಒಂದು ಸ್ಟ್ರಿಂಗ್ ರೂಪದಲ್ಲಿ ಪ್ರತಿನಿಧಿಸಿದಾಗ, KSUID ಅನ್ನು base62 ನಲ್ಲಿ ಕೋಡ್ ಮಾಡಲಾಗುತ್ತದೆ ಮತ್ತು ಇದು ನಿಖರವಾಗಿ 27 ಅಕ್ಷರ ಉದ್ದ ಹೊಂದಿದೆ.
KSUID ರಚನೆ ಮೂರು ಪ್ರಮುಖ ಘಟಕಗಳನ್ನು ಒಳಗೊಂಡಿದೆ:
ಟೈಮ್ಸ್ಟ್ಯಾಂಪ್ ಘಟಕ (4 ಬೈಟ್): KSUID ಯ ಎಪೋಚ್ (2014-05-13T16:53:20Z) ರಿಂದ ಸೆಕೆಂಡುಗಳನ್ನು ಪ್ರತಿನಿಧಿಸುತ್ತದೆ, ಉತ್ಪಾದಿತ ID ಗಳನ್ನು ಕಾಲಕ್ರಮದಲ್ಲಿ ವರ್ಗೀಕರಿಸಲು ಅನುಮತಿಸುತ್ತದೆ.
ಯಾದೃಚ್ಛಿಕ ಘಟಕ (16 ಬೈಟ್): ಬಹು KSUID ಗಳನ್ನು ಒಂದೇ ಸಮಯದಲ್ಲಿ ಉತ್ಪಾದಿಸಿದಾಗ ವಿಶಿಷ್ಟತೆ ಖಚಿತಪಡಿಸುವ ಕ್ರಿಪ್ಟೋಗ್ರಾಫಿಕ್ ದೃಷ್ಟಿಯಿಂದ ಸುರಕ್ಷಿತ ಯಾದೃಚ್ಛಿಕ ಸಂಖ್ಯೆ.
Base62 ಕೋಡಿಂಗ್: ಒಟ್ಟುಗೂಡಿಸಿದ 20 ಬೈಟ್ಗಳನ್ನು base62 (A-Z, a-z, 0-9) ಬಳಸಿಕೊಂಡು ಕೋಡ್ ಮಾಡಲಾಗುತ್ತದೆ, ಅಂತಿಮ 27-ಅಕ್ಷರ URL-ಸುರಕ್ಷಿತ ಸ್ಟ್ರಿಂಗ್ ಅನ್ನು ಉತ್ಪಾದಿಸುತ್ತದೆ.
KSUID ಅನ್ನು ಗಣಿತೀಯವಾಗಿ ಈ ರೀತಿಯಲ್ಲಿ ಪ್ರತಿನಿಧಿಸಬಹುದು:
ಇಲ್ಲಿ:
ಟೈಮ್ಸ್ಟ್ಯಾಂಪ್ ಅನ್ನು ಈ ರೀತಿಯಲ್ಲಿ ಲೆಕ್ಕಹಾಕಲಾಗುತ್ತದೆ:
T = \text{floor}(\text{current_time} - \text{KSUID_epoch})
ಇಲ್ಲಿ KSUID_epoch 1400000000 (2014-05-13T16:53:20Z) ಆಗಿದೆ.
KSUID ಗಳು ವರ್ಗೀಕರಿಸಬಹುದಾದ ವಿಶಿಷ್ಟ ಗುರುತಿಗಳನ್ನು ಅಗತ್ಯವಿರುವ ಆಧುನಿಕ ಅಪ್ಲಿಕೇಶನ್ಗಳಿಗೆ ಪರಿಪೂರ್ಣವಾಗಿದೆ. ಇಲ್ಲಿವೆ ಅತ್ಯಂತ ಸಾಮಾನ್ಯ ಬಳಕೆ ಪ್ರಕರಣಗಳು:
ಬಹು ಸರ್ವರ್ಗಳಲ್ಲಿ ವಿಶಿಷ್ಟ ID ಗಳನ್ನು ಸಮನ್ವಯ ಅಥವಾ ಕೇಂದ್ರ ಅಧಿಕಾರವಿಲ್ಲದೆ ಉತ್ಪಾದಿಸಿ. ಮೈಕ್ರೋಸರ್ವೀಸ್ ವಾಸ್ತುಶಿಲ್ಪಗಳಿಗೆ ಪರಿಪೂರ್ಣ.
ಕಾಲಕ್ರಮದ ಆದೇಶವು ಮುಖ್ಯವಾಗಿರುವ ಡೇಟಾಬೇಸ್ಗಳಲ್ಲಿ ಪ್ರಾಥಮಿಕ ಕೀಗಳಾಗಿ KSUID ಗಳನ್ನು ಬಳಸಿರಿ, ಪ್ರತ್ಯೇಕ ಟೈಮ್ಸ್ಟ್ಯಾಂಪ್ ಕಾಲಮ್ಗಳಿಗೆ ಅಗತ್ಯವಿಲ್ಲ.
ವೆಬ್ ಅಪ್ಲಿಕೇಶನ್ಗಳು, APIs ಮತ್ತು ಸಾರ್ವಜನಿಕ ಸಂಪತ್ತುಗಳಿಗೆ ಕೋಷ್ಟಕ, ವಿಶಿಷ್ಟ, URL-ಸುರಕ್ಷಿತ ಗುರುತಿಗಳನ್ನು ರಚಿಸಿ, ವಿಶೇಷ ಕೋಡಿಂಗ್ ಇಲ್ಲದೆ.
ವಿತರಣಾ ವ್ಯವಸ್ಥೆಗಳಲ್ಲಿ ವಿಭಿನ್ನ ಸೇವೆಗಳ ನಡುವಿನ ಲಾಗ್ ಎಂಟ್ರಿಗಳನ್ನು ಸಂಬಂಧಿಸಿ ಕಾಲಕ್ರಮವನ್ನು ಕಾಪಾಡಿ.
ಅನುಕೂಲತೆ ಮತ್ತು ಡಿಬಗ್ಗಿಂಗ್ ಉದ್ದೇಶಗಳಿಗಾಗಿ ನಿರ್ಮಿತ ಟೈಮ್ಸ್ಟ್ಯಾಂಪ್ಗಳೊಂದಿಗೆ ಘಟನೆಗಳನ್ನು ಕಾಲಕ್ರಮದಲ್ಲಿ ಹಿಂಡಿಕೊಳ್ಳಿ.
KSUIDs ಪರಂಪರागत ಗುರುತಿನ ವ್ಯವಸ್ಥೆಗಳ ಮೇಲೆ ಪ್ರಮುಖ ಪ್ರಯೋಜನಗಳನ್ನು ಒದಗಿಸುತ್ತವೆ:
UUIDs ಗೆ ಹೋಲಿಸಿದರೆ, KSUIDs ಕಾಲಕ್ರಮದಲ್ಲಿ ವರ್ಗೀಕರಿಸಬಹುದಾದವು, ಇದರಿಂದ ಡೇಟಾಬೇಸ್ ಸೂಚ್ಯಂಕ ಮತ್ತು ಲಾಗ್ ವಿಶ್ಲೇಷಣೆಗೆ ಪರಿಪೂರ್ಣವಾಗುತ್ತದೆ.
ಬಹು ಸರ್ವರ್ಗಳಲ್ಲಿ ಸ್ವಾಯತ್ತವಾಗಿ ವಿಶಿಷ್ಟ ಗುರುತಿಗಳನ್ನು ಉತ್ಪಾದಿಸಿ, ಸಂಘರ್ಷಗಳ ಅಪಾಯವಿಲ್ಲ ಅಥವಾ ಕೇಂದ್ರ ಸಮನ್ವಯವನ್ನು ಅಗತ್ಯವಿಲ್ಲ.
ಸ್ಟ್ರಿಂಗ್ಗಳ ರೂಪದಲ್ಲಿ UUIDs ಗೆ ಹೋಲಿಸಿದರೆ ಹೆಚ್ಚು ಸಂಕೋಚಿತ, ಸಂಗ್ರಹಣಾ ಸ್ಥಳವನ್ನು ಉಳಿಸುತ್ತದೆ ಮತ್ತು ಓದಲು ಸುಲಭವಾಗುತ್ತದೆ.
ನಿರ್ಮಿತ ಟೈಮ್ಸ್ಟ್ಯಾಂಪ್ ಕಾಲ ಆಧಾರಿತ ವರ್ಗೀಕರಣ ಮತ್ತು ಫಿಲ್ಟರಿಂಗ್ ಅನ್ನು ಪ್ರತ್ಯೇಕ ಟೈಮ್ಸ್ಟ್ಯಾಂಪ್ ಕ್ಷೇತ್ರಗಳಿಲ್ಲದೆ ಸಾಧ್ಯವಾಗಿಸುತ್ತದೆ.
Base62 ಕೋಡಿಂಗ್ KSUIDs ಅನ್ನು URL ಗಾಗಿ ಸುರಕ್ಷಿತ ಮಾಡುತ್ತದೆ, ಹೆಚ್ಚುವರಿ ಕೋಡಿಂಗ್ ಅಗತ್ಯವಿಲ್ಲ.
16-ಬೈಟ್ ಯಾದೃಚ್ಛಿಕ ಘಟಕವು ಸಂಘರ್ಷಗಳನ್ನು ವಾಸ್ತವವಾಗಿ ಅಸಾಧ್ಯ ಮಾಡುತ್ತದೆ, ಉನ್ನತ ಉತ್ಪಾದನಾ ದರದಲ್ಲಿ ಸಹ.
KSUIDs ಅನ್ನು ಆನ್ಲೈನ್ನಲ್ಲಿ ಉತ್ಪಾದಿಸಲು ಈ ಸರಳ ಹಂತಗಳನ್ನು ಅನುಸರಿಸಿ:
ಪ್ರೊ ಟಿಪ್: ಹೊಸ ವ್ಯವಸ್ಥೆಗಳನ್ನು ಸ್ಥಾಪಿಸುವಾಗ ಅಥವಾ ಹಳೆಯ ಡೇಟಾವನ್ನು ಸ್ಥಳಾಂತರಿಸುವಾಗ KSUID ಗಳನ್ನು ಬ್ಯಾಚ್ನಲ್ಲಿ ಉತ್ಪಾದಿಸಿ.
ನಿಮ್ಮ ಇಷ್ಟದ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಯಲ್ಲಿ KSUIDs ಅನ್ನು ಪ್ರೋಗ್ರಾಮ್ಯಾತ್ಮಕವಾಗಿ ಉತ್ಪಾದಿಸಲು ಹೇಗೆ ಕಲಿಯಿರಿ:
1## Python
2import ksuid
3
4new_id = ksuid.ksuid()
5print(f"Generated KSUID: {new_id}")
6
1// JavaScript
2const { ksuid } = require('ksuid')
3
4const newId = ksuid()
5console.log(`Generated KSUID: ${newId}`)
6
1// Java
2import com.github.ksuid.KsuidGenerator;
3
4public class KsuidExample {
5 public static void main(String[] args) {
6 String newId = KsuidGenerator.generate();
7 System.out.println("Generated KSUID: " + newId);
8 }
9}
10
1// C++
2#include <iostream>
3#include <ksuid/ksuid.hpp>
4
5int main() {
6 ksuid::Ksuid newId = ksuid::Ksuid::generate();
7 std::cout << "Generated KSUID: " << newId.string() << std::endl;
8 return 0;
9}
10
1## Ruby
2require 'ksuid'
3
4new_id = KSUID.new
5puts "Generated KSUID: #{new_id}"
6
1// PHP
2<?php
3require_once 'vendor/autoload.php';
4
5use Tuupola\KsuidFactory;
6
7$factory = new KsuidFactory();
8$newId = $factory->create();
9echo "Generated KSUID: " . $newId . "\n";
10?>
11
1// Go
2package main
3
4import (
5 "fmt"
6 "github.com/segmentio/ksuid"
7)
8
9func main() {
10 newId := ksuid.New()
11 fmt.Printf("Generated KSUID: %s\n", newId.String())
12}
13
1// Swift
2import KSUID
3
4let newId = KSUID()
5print("Generated KSUID: \(newId)")
6
KSUIDs ಕಾಲಕ್ರಮದಲ್ಲಿ ವರ್ಗೀಕರಿಸಬಹುದಾದವು ಆದರೆ UUIDs ಅಲ್ಲ. KSUIDs ಗೆ ಅಳವಡಿಸಿದ ಟೈಮ್ಸ್ಟ್ಯಾಂಪ್ಗಳು ಇವೆ ಮತ್ತು 27 ಅಕ್ಷರಗಳ ವಿರುದ್ಧ UUID ಯ 36 ಅಕ್ಷರಗಳಲ್ಲಿ ಹೆಚ್ಚು ಸಂಕೋಚಿತವಾಗಿದೆ.
KSUIDs ಗೆ ಅತ್ಯಂತ ಕಡಿಮೆ ಸಂಘರ್ಷದ ಸಂಭವನೀಯತೆ ಇದೆ, 16-ಬೈಟ್ ಯಾದೃಚ್ಛಿಕ ಘಟಕದ ಕಾರಣ. ಬಿಲಿಯನ್ಗಿಂತ ಹೆಚ್ಚು ID ಗಳನ್ನು ಉತ್ಪಾದಿಸಿದಾಗ ಸಂಘರ್ಷದ ಅವಕಾಶವು ವಾಸ್ತವವಾಗಿ ಶೂನ್ಯವಾಗಿದೆ.
ಹೌದು, KSUIDs ಡೇಟಾಬೇಸ್ ಪ್ರಾಥಮಿಕ ಕೀಗಳಿಗೆ ಅತ್ಯುತ್ತಮವಾಗಿದೆ, ವಿಶೇಷವಾಗಿ ಸ್ವಾಯತ್ತ-ವೃದ್ಧಿಸುತ್ತಿರುವ ಪೂರ್ಣಾಂಕಗಳು ಸೂಕ್ತವಾಗದ ವಿತರಣಾ ವ್ಯವಸ್ಥೆಗಳಲ್ಲಿ.
KSUID ಎಪೋಚ್ 2014-05-13T16:53:20Z (ಟೈಮ್ಸ್ಟ್ಯಾಂಪ್ 1400000000) ನಲ್ಲಿ ಪ್ರಾರಂಭವಾಗುತ್ತದೆ, ಇದು ಯುನಿಕ್ಸ್ ಎಪೋಚ್ ಗೆ ವಿಭಿನ್ನವಾಗಿದೆ.
ಹೌದು, KSUIDs base62 ಕೋಡಿಂಗ್ (A-Z, a-z, 0-9) ಅನ್ನು ಬಳಸುತ್ತವೆ, ಇದರಿಂದಾಗಿ ಹೆಚ್ಚುವರಿ ಕೋಡಿಂಗ್ ಇಲ್ಲದೆ ಸಂಪೂರ್ಣವಾಗಿ URL-ಸುರಕ್ಷಿತವಾಗುತ್ತದೆ.
KSUIDs ಅನ್ನು ಬಹಳ ವೇಗವಾಗಿ ಉತ್ಪಾದಿಸಬಹುದು ಏಕೆಂದರೆ ಅವು ವ್ಯವಸ್ಥೆಗಳ ನಡುವಿನ ಸಮನ್ವಯ ಅಥವಾ ಡೇಟಾಬೇಸ್ ಹುಡುಕಾಟಗಳನ್ನು ಅಗತ್ಯವಿಲ್ಲ.
ಹೌದು, ನೀವು ಯಾವುದೇ KSUID ನಿಂದ ಅಳವಡಿಸಿದ ಟೈಮ್ಸ್ಟ್ಯಾಂಪ್ ಅನ್ನು ತೆಗೆದುಹಾಕಬಹುದು ಇದು ಯಾವಾಗ ಉತ್ಪಾದಿತವಾಗಿದೆ ಎಂಬುದನ್ನು ನಿರ್ಧರಿಸಲು.
KSUIDs Python, JavaScript, Java, Go, PHP, Ruby ಮತ್ತು ಇತರ ಬಹಳಷ್ಟು ಜನಪ್ರಿಯ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಗಳಲ್ಲಿ ಬೆಂಬಲಿತವಾಗಿವೆ.
ನಿಮ್ಮ ಅಪ್ಲಿಕೇಶನ್ನಲ್ಲಿ ವರ್ಗೀಕರಿಸಬಹುದಾದ ವಿಶಿಷ್ಟ ಗುರುತಿಗಳನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಲು ಸಿದ್ಧವೇ? ನಿಮ್ಮ ವಿತರಣಾ ವ್ಯವಸ್ಥೆಗಳಿಗೆ, ಡೇಟಾಬೇಸ್ಗಳಿಗೆ ಮತ್ತು ಅಪ್ಲಿಕೇಶನ್ಗಳಿಗೆ ಕಾಲಕ್ರಮದಲ್ಲಿ ಆದೇಶಿತ, ಜಾಗತಿಕವಾಗಿ ವಿಶಿಷ್ಟ ಗುರುತಿಗಳನ್ನು ರಚಿಸಲು ನಮ್ಮ ಉಚಿತ KSUID ಜನರೇಟರ್ ಸಾಧನವನ್ನು ಬಳಸಿರಿ.
ನಿಮ್ಮ ಮೊದಲ KSUID ಅನ್ನು ಈಗ ಉತ್ಪಾದಿಸಿ ಮತ್ತು ಕಾಲಕ್ರಮದಲ್ಲಿ ವರ್ಗೀಕರಿಸಬಹುದಾದ ವಿಶಿಷ್ಟ ಗುರುತಿಗಳ ಪ್ರಯೋಜನಗಳನ್ನು ಅನುಭವಿಸಿ!
ನಿಮ್ಮ ಕೆಲಸದ ಹಂತಕ್ಕೆ ಉಪಯೋಗಿಸಬಹುದಾದ ಹೆಚ್ಚು ಉಪಕರಣಗಳನ್ನು ಹುಡುಕಿ ಹೊಸ ಉಪಕರಣಗಳನ್ನು ಕಂಡುಹಿಡಿಯಿರಿ