ವಿತರಣಾ ವ್ಯವಸ್ಥೆಗಳು, ಡೇಟಾಬೇಸ್ಗಳು ಮತ್ತು ವೆಬ್ ಅಪ್ಲಿಕೇಶನ್ಗಳಿಗೆ ಗುರಿಯಾಗಿರುವ ಸಂಘರ್ಷ-प्रतिरोधಿತ ವಿಶಿಷ್ಟ ಗುರುತಿಗಳನ್ನು (CUID) ರಚಿಸಲು. ಈ ಸಾಧನವು CUIDಗಳನ್ನು ರಚಿಸುತ್ತದೆ, ಇದು ವಿಸ್ತಾರಗೊಳ್ಳುವ, ಕ್ರಮಬದ್ಧವಾಗುವ ಮತ್ತು ಸಂಘರ್ಷವಾಗುವ ಸಂಭವನೀಯತೆ ಕಡಿಮೆ.
ತೀವ್ರವಾದ ಡೇಟಾ ಹಕ್ಕುಗಳನ್ನು ತ್ವರಿತವಾಗಿ ಮತ್ತು ಸುಲಭವಾಗಿ ಉತ್ಪಾದಿಸಿ.
CUID (Collision-resistant Unique IDentifier) ಒಂದು ವಿಶಿಷ್ಟ ಗುರುತಿನ ಸಂಕೇತವಾಗಿದೆ, ಇದು ಝುಲಾಯಿತ್ತಿಲ್ಲದ, ಹಾರಿಜಾಂಟಲ್ ಸ್ಕೇಲಬಲ್ ಮತ್ತು ಕ್ರಮಬದ್ಧವಾಗಿ ವರ್ಗೀಕರಿಸಲು ವಿನ್ಯಾಸಗೊಳಿಸಲಾಗಿದೆ. CUIDಗಳು ವಿಶೇಷವಾಗಿ ವಿತರಣಾ ವ್ಯವಸ್ಥೆಗಳಲ್ಲಿ ಉಪಯುಕ್ತವಾಗಿವೆ, ಅಲ್ಲಿ ವಿಶಿಷ್ಟ ಗುರುತಿಗಳನ್ನು ನೋಡ್ಗಳ ನಡುವೆ ಸಂಯೋಜನೆ ಇಲ್ಲದೇ ಉತ್ಪಾದಿಸಲು ಅಗತ್ಯವಿದೆ.
CUID ಸಾಮಾನ್ಯವಾಗಿ ಕೆಳಗಿನ ಅಂಶಗಳನ್ನು ಒಳಗೊಂಡಿದೆ:
ನಿಖರವಾದ ರಚನೆ CUID ಕಾರ್ಯಗತಗೊಳಿಸುವಿಕೆಯ ಆಧಾರದಲ್ಲಿ ಬದಲಾಗಬಹುದು, ಆದರೆ ಈ ಅಂಶಗಳು ಒಟ್ಟಾಗಿ ವಿಶಿಷ್ಟ ಮತ್ತು ಕ್ರಮಬದ್ಧ ಗುರುತನ್ನು ರಚಿಸಲು ಕೆಲಸ ಮಾಡುತ್ತವೆ.
ಇಲ್ಲಿ ಸಾಮಾನ್ಯ CUID ರಚನೆಯ ದೃಶ್ಯ ಪ್ರತಿನಿಧಿಯಾಗಿದೆ:
CUIDಗಳು ಕಾಲ ಆಧಾರಿತ ಮತ್ತು ಯಾದೃಚ್ಛಿಕ ಅಂಶಗಳ ಸಂಯೋಜನೆಯೊಂದಿಗೆ ಉತ್ಪಾದಿಸುತ್ತವೆ. ಪ್ರಕ್ರಿಯೆ ಸಾಮಾನ್ಯವಾಗಿ ಈ ಕೆಳಗಿನಂತಿದೆ:
ಫಲಿತಾಂಶ CUID ಸಾಮಾನ್ಯವಾಗಿ ಅಕ್ಷರಗಳು ಮತ್ತು ಸಂಖ್ಯೆಗಳ ಶ್ರೇಣಿಯಾಗಿ ಪ್ರತಿನಿಧಿಸಲಾಗುತ್ತದೆ.
CUIDಗಳು ಇತರ ವಿಶಿಷ್ಟ ಗುರುತಿನ ವ್ಯವಸ್ಥೆಗಳಿಗೆ ಹೋಲಿಸಿದಾಗ ಹಲವಾರು ಲಾಭಗಳನ್ನು ಒದಗಿಸುತ್ತವೆ:
CUIDಗಳ ಸಾಮಾನ್ಯ ಬಳಕೆದಾರಿಕೆಗಳು:
ಇಲ್ಲಿ ವಿವಿಧ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಯಲ್ಲಿ CUIDಗಳನ್ನು ಉತ್ಪಾದಿಸುವ ಉದಾಹರಣೆಗಳಿವೆ:
1// ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ (cuid ಗ್ರಂಥಾಲಯವನ್ನು ಬಳಸಿಕೊಂಡು)
2const cuid = require('cuid');
3const id = cuid();
4console.log(id);
5
1## ಪೈಥಾನ್ (cuid ಗ್ರಂಥಾಲಯವನ್ನು ಬಳಸಿಕೊಂಡು)
2import cuid
3id = cuid.cuid()
4print(id)
5
1## ರೂಬಿ (cuid ಜೆಮ್ ಅನ್ನು ಬಳಸಿಕೊಂಡು)
2require 'cuid'
3id = Cuid::generate
4puts id
5
1// ಜಾವಾ (com.github.f4b6a3.cuid ಗ್ರಂಥಾಲಯವನ್ನು ಬಳಸಿಕೊಂಡು)
2import com.github.f4b6a3.cuid.Cuid;
3
4public class CuidExample {
5 public static void main(String[] args) {
6 String id = Cuid.createCuid();
7 System.out.println(id);
8 }
9}
10
1// C# (Cuid.Net NuGet ಪ್ಯಾಕೇಜ್ ಅನ್ನು ಬಳಸಿಕೊಂಡು)
2using Cuid;
3
4class Program
5{
6 static void Main(string[] args)
7 {
8 string id = CuidGenerator.Generate();
9 Console.WriteLine(id);
10 }
11}
12
1// PHP (endyjasmi/cuid ಪ್ಯಾಕೇಜ್ ಅನ್ನು ಬಳಸಿಕೊಂಡು)
2<?php
3require 'vendor/autoload.php';
4use Endyjasmi\Cuid\Cuid;
5
6$id = Cuid::make();
7echo $id;
8
1// ಗೋ (github.com/lucsky/cuid ಪ್ಯಾಕೇಜ್ ಅನ್ನು ಬಳಸಿಕೊಂಡು)
2package main
3
4import (
5 "fmt"
6 "github.com/lucsky/cuid"
7)
8
9func main() {
10 id := cuid.New()
11 fmt.Println(id)
12}
13
1// ಸ್ವಿಫ್ಟ್ (CUID ಪ್ಯಾಕೇಜ್ ಅನ್ನು ಬಳಸಿಕೊಂಡು)
2import CUID
3
4let id = CUID()
5print(id)
6
1// C++ (ಕಸ್ಟಮ್ ಕಾರ್ಯಗತಗೊಳಿಸುವಿಕೆಯನ್ನು ಬಳಸಿಕೊಂಡು)
2#include <iostream>
3#include <chrono>
4#include <random>
5#include <sstream>
6#include <iomanip>
7
8std::string generateCUID() {
9 auto now = std::chrono::system_clock::now();
10 auto now_ms = std::chrono::time_point_cast<std::chrono::milliseconds>(now);
11 auto value = now_ms.time_since_epoch();
12 long duration = value.count();
13
14 std::random_device rd;
15 std::mt19937 gen(rd());
16 std::uniform_int_distribution<> dis(0, 35);
17
18 std::stringstream ss;
19 ss << 'c';
20 ss << std::hex << std::setfill('0') << std::setw(8) << duration;
21 for (int i = 0; i < 8; i++) {
22 int r = dis(gen);
23 ss << (char)(r < 10 ? '0' + r : 'a' + r - 10);
24 }
25 return ss.str();
26}
27
28int main() {
29 std::string id = generateCUID();
30 std::cout << id << std::endl;
31 return 0;
32}
33
1% MATLAB (ಕಸ್ಟಮ್ ಕಾರ್ಯಗತಗೊಳಿಸುವಿಕೆಯನ್ನು ಬಳಸಿಕೊಂಡು)
2function id = generateCUID()
3 timestamp = dec2hex(round(posixtime(datetime('now'))*1000), 8);
4 random = '';
5 for i = 1:8
6 random = [random char(randi([48 57 97 122]))];
7 end
8 id = ['c' timestamp random];
9end
10
11% ಬಳಸುವುದು
12id = generateCUID();
13disp(id);
14
1## R (ಕಸ್ಟಮ್ ಕಾರ್ಯಗತಗೊಳಿಸುವಿಕೆಯನ್ನು ಬಳಸಿಕೊಂಡು)
2library(lubridate)
3
4generate_cuid <- function() {
5 timestamp <- format(as.numeric(now()) * 1000, scientific = FALSE)
6 timestamp <- substr(timestamp, 1, 8)
7 random <- paste0(sample(c(0:9, letters[1:6]), 8, replace = TRUE), collapse = "")
8 paste0("c", timestamp, random)
9}
10
11## ಬಳಸುವುದು
12id <- generate_cuid()
13print(id)
14
1' Excel VBA (ಕಸ್ಟಮ್ ಕಾರ್ಯಗತಗೊಳಿಸುವಿಕೆಯನ್ನು ಬಳಸಿಕೊಂಡು)
2Function GenerateCUID() As String
3 Dim timestamp As String
4 Dim random As String
5 Dim i As Integer
6
7 timestamp = Right("00000000" & Hex(CLng(CDbl(Now()) * 86400000)), 8)
8
9 For i = 1 To 8
10 random = random & Mid("0123456789abcdef", Int(Rnd() * 16) + 1, 1)
11 Next i
12
13 GenerateCUID = "c" & timestamp & random
14End Function
15
16' ಸೆಲ್ನಲ್ಲಿ ಬಳಸುವುದು
17'=GenerateCUID()
18
CUIDಗಳು 2012 ರಲ್ಲಿ ಎರಿಕ್ ಎಲಿಯಟ್ ಅವರಿಂದ ವಿತರಣಾ ವ್ಯವಸ್ಥೆಗಳಲ್ಲಿ ವಿಶಿಷ್ಟ ಗುರುತಿಗಳನ್ನು ಉತ್ಪಾದಿಸುವ ಸಮಸ್ಯೆಗೆ ಪರಿಹಾರವಾಗಿ ಅಭಿವೃದ್ಧಿಪಡಿಸಲಾಯಿತು. ಈ ಪರಿಕಲ್ಪನೆಯು ಟ್ವಿಟರ್ನ ಸ್ನೋಫ್ಲೇಕ್ ID ವ್ಯವಸ್ಥೆಯಿಂದ ಪ್ರೇರಿತವಾಗಿತ್ತು ಆದರೆ ವಿವಿಧ ವೇದಿಕೆಗಳಲ್ಲಿ ಸುಲಭವಾಗಿ ಕಾರ್ಯಗತಗೊಳಿಸಲು ಮತ್ತು ಬಳಸಲು ವಿನ್ಯಾಸಗೊಳಿಸಲಾಯಿತು.
CUIDಗಳ ಅಭಿವೃದ್ಧಿ ಕೇಂದ್ರ ಸಂಯೋಜನೆಯ ಅಗತ್ಯವಿಲ್ಲದೆ ಸರಳ, ಝುಲಾಯಿತ್ತಿಲ್ಲದ ID ವ್ಯವಸ್ಥೆಯನ್ನು ಉತ್ಪಾದಿಸಲು ಅಗತ್ಯದಿಂದ ಪ್ರೇರಿತವಾಗಿತ್ತು. ಎಲಿಯಟ್ ಅವರ ಗುರಿ ಸುಲಭವಾಗಿ ಕಾರ್ಯಗತಗೊಳಿಸಲು, ಕೇಂದ್ರ ಸಂಯೋಜನೆಯ ಅಗತ್ಯವಿಲ್ಲದ ಮತ್ತು ಹಾರಿಜಾಂಟಲ್ವಾಗಿ ಸ್ಕೇಲ್ ಆಗುವ ವ್ಯವಸ್ಥೆಯನ್ನು ರಚಿಸಲು ಆಗಿತ್ತು.
ಅದರ ಆರಂಭದಿಂದ, CUID ಹಲವಾರು ಹಂತಗಳನ್ನು ಮತ್ತು ಸುಧಾರಣಗಳನ್ನು ಅನುಭವಿಸಿದೆ:
CUIDಗಳ ಅಭಿವೃದ್ಧಿಯು ವಿತರಣಾ ವ್ಯವಸ್ಥೆಗಳ ಬದಲಾಯಿಸುತ್ತಿರುವ ಅಗತ್ಯಗಳನ್ನು ಮತ್ತು ವಿಶಿಷ್ಟ ಗುರುತಿನ ಉತ್ಪಾದನೆಯಲ್ಲಿ ಸರಳತೆ, ಭದ್ರತೆ ಮತ್ತು ಕಾರ್ಯಕ್ಷಮತೆಯ ನಡುವಿನ ಸಮತೋಲನವನ್ನು ಸಾಧಿಸಲು ನಿರಂತರ ಪ್ರಯತ್ನಗಳನ್ನು ಪ್ರತಿಬಿಂಬಿಸುತ್ತದೆ.
ಈ CUID ಜನರೇಟರ್ ಸಾಧನವು ನಿಮ್ಮ ಯೋಜನೆಗಳಿಗೆ ತ್ವರಿತವಾಗಿ CUIDಗಳನ್ನು ಉತ್ಪಾದಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ. ಹೊಸ CUID ಅನ್ನು ರಚಿಸಲು "ಜನರೇಟ್" ಬಟನ್ ಅನ್ನು ಕ್ಲಿಕ್ ಮಾಡಿ, ಮತ್ತು ನಿಮ್ಮ ಅಪ್ಲಿಕೇಶನ್ಗಳಲ್ಲಿ ಸುಲಭವಾಗಿ ಬಳಸಲು "ಕಾಪಿ" ಬಟನ್ ಅನ್ನು ಬಳಸಿರಿ.
ನಿಮ್ಮ ಕೆಲಸದ ಹಂತಕ್ಕೆ ಉಪಯೋಗಿಸಬಹುದಾದ ಹೆಚ್ಚು ಉಪಕರಣಗಳನ್ನು ಹುಡುಕಿ ಹೊಸ ಉಪಕರಣಗಳನ್ನು ಕಂಡುಹಿಡಿಯಿರಿ