কেএসইউআইডি জেনারেটর: সংঘর্ষ-প্রতিরোধী পরিচয়পত্র তৈরি করুন
বৈdistributed সিস্টেম, ডেটাবেস এবং অনন্য, সময়-সাজানো কী প্রয়োজন এমন অ্যাপ্লিকেশনের জন্য কেএস-সাজানো অনন্য পরিচয়পত্র (কেএসইউআইডি) তৈরি করুন। কেএসইউআইডি একটি টাইমস্ট্যাম্পের সাথে র্যান্ডম ডেটা সংমিশ্রণ করে সংঘর্ষ-প্রতিরোধী, সাজানো পরিচয়পত্র তৈরি করে।
কেএসইউআইডি জেনারেটর
ডকুমেন্টেশন
KSUID জেনারেটর
পরিচিতি
KSUID (K-Sortable Unique IDentifier) একটি অনন্য শনাক্তকারী ফরম্যাট যা প্রচলিত UUID (Universally Unique Identifier) এবং অন্যান্য শনাক্তকারী সিস্টেমের তুলনায় কয়েকটি সুবিধা প্রদান করে। এই টুলটি আপনাকে দ্রুত এবং সহজে KSUID তৈরি করতে দেয়।
KSUID কী?
একটি KSUID হল একটি 20-বাইটের সজ্জিত শনাক্তকারী যা নিম্নলিখিত বিষয়গুলির সমন্বয়ে গঠিত:
- একটি 32-বিটের টাইমস্ট্যাম্প (4 বাইট)
- 16 বাইটের এলোমেলোতা
স্ট্রিং হিসাবে উপস্থাপিত হলে, একটি KSUID বেস62-তে এনকোড করা হয় এবং এটি 27 অক্ষরের দীর্ঘ।
KSUID-এর গঠন
একটি KSUID-এর গঠন নিম্নলিখিতভাবে ভেঙে দেওয়া যেতে পারে:
-
টাইমস্ট্যাম্প (4 বাইট): এটি ইউনিক্স এপোক (1970 সালের 1 জানুয়ারি, 00:00 UTC) থেকে সেকেন্ডে সংখ্যা নির্দেশ করে। টাইমস্ট্যাম্প KSUID-কে উৎপাদনের সময় অনুযায়ী প্রায় সজ্জিত করতে দেয়।
-
এলোমেলো উপাদান (16 বাইট): এটি একটি ক্রিপ্টোগ্রাফিকভাবে নিরাপদ এলোমেলো সংখ্যা যা নিশ্চিত করে যে এক সেকেন্ডের মধ্যে একাধিক KSUID উৎপন্ন হলে তা অনন্য থাকবে।
-
বেস62 এনকোডিং: সম্মিলিত 20 বাইট (টাইমস্ট্যাম্প + এলোমেলো) পরে বেস62 (A-Z, a-z, 0-9) ব্যবহার করে এনকোড করা হয় যাতে চূড়ান্ত 27-অক্ষরের স্ট্রিং তৈরি হয়।
KSUID সূত্র
একটি KSUID গাণিতিকভাবে নিম্নলিখিতভাবে উপস্থাপন করা যেতে পারে:
যেখানে:
- হল 32-বিট টাইমস্ট্যাম্প
- হল 128-বিট এলোমেলো উপাদান
- সংযুক্তির নির্দেশ করে
টাইমস্ট্যাম্প হিসাব করা হয়:
T = \text{floor}(\text{current_time} - \text{KSUID_epoch})
যেখানে KSUID_epoch হল 1400000000 (2014-05-13T16:53:20Z)।
KSUID গঠন ডায়াগ্রাম
KSUID-এর ব্যবহার
KSUID বিশেষ করে নিম্নলিখিত পরিস্থিতিতে উপকারী:
-
বিতরণকৃত সিস্টেম: যখন আপনাকে একাধিক সার্ভার বা পরিষেবার মধ্যে সমন্বয় ছাড়াই অনন্য শনাক্তকারী প্রয়োজন।
-
সময়-সজ্জিত ডেটা: যখন আপনি একটি পৃথক টাইমস্ট্যাম্প সংরক্ষণ না করেই সৃষ্টির সময় অনুযায়ী ডেটা সাজাতে চান।
-
ডেটাবেস কী: ডেটাবেসে প্রাথমিক কী হিসাবে, বিশেষ করে বিতরণকৃত ডেটাবেসে যেখানে স্বয়ংক্রিয়ভাবে বৃদ্ধি পেয়েছে এমন পূর্ণসংখ্যা উপযুক্ত নয়।
-
URL-নিরাপদ শনাক্তকারী: ওয়েব অ্যাপ্লিকেশনের জন্য সংক্ষিপ্ত, অনন্য, URL-নিরাপদ শনাক্তকারী তৈরি করতে।
-
লগ সম্পর্কিত: মাইক্রোসার্ভিস আর্কিটেকচারে বিভিন্ন পরিষেবার মধ্যে লগ এন্ট্রিগুলি সম্পর্কিত করতে।
KSUID-এর সুবিধা
KSUID অন্যান্য শনাক্তকারী সিস্টেমের তুলনায় কয়েকটি সুবিধা প্রদান করে:
-
সজ্জনযোগ্যতা: UUID-এর তুলনায়, KSUID ক্রমাগতভাবে সাজানো যায়, যা ডেটাবেস সূচীকরণ এবং লগ বিশ্লেষণের জন্য উপকারী।
-
সমন্বয় প্রয়োজন নেই: স্বয়ংক্রিয়ভাবে বৃদ্ধি পাওয়া আইডির তুলনায়, KSUID বিভিন্ন সার্ভার দ্বারা স্বাধীনভাবে উৎপন্ন করা যেতে পারে যা সংঘর্ষের ঝুঁকি ছাড়াই।
-
সংক্ষিপ্ত উপস্থাপন: 27 অক্ষরে, KSUID স্ট্রিং হিসাবে উপস্থাপিত হলে UUID-এর তুলনায় আরও সংক্ষিপ্ত।
-
টাইমস্ট্যাম্প এমবেডেড: এমবেডেড টাইমস্ট্যাম্প সময় ভিত্তিক সাজানো এবং ফিল্টারিংয়ের জন্য আলাদা টাইমস্ট্যাম্প ক্ষেত্রের প্রয়োজন ছাড়াই সম্ভব করে।
-
URL-নিরাপদ: বেস62 এনকোডিং KSUID-কে URL-এ ব্যবহার করার জন্য নিরাপদ করে তোলে, কোনও অতিরিক্ত এনকোডিং ছাড়াই।
-
সংঘর্ষের সম্ভাবনা হ্রাস: 16-বাইটের এলোমেলো উপাদান সংঘর্ষের সম্ভাবনা অত্যন্ত কম করে, এমনকি উচ্চ উৎপাদন হারেও।
এই জেনারেটরটি কীভাবে ব্যবহার করবেন
- প্রয়োজন হলে যেকোনো অতিরিক্ত প্যারামিটার প্রবেশ করুন (যেমন, কাস্টম টাইমস্ট্যাম্প)।
- একটি নতুন KSUID তৈরি করতে "Generate KSUID" বোতামে ক্লিক করুন।
- উৎপন্ন KSUID আউটপুট ক্ষেত্রে প্রদর্শিত হবে।
- আপনি পদক্ষেপ 1-3 পুনরাবৃত্তি করে একাধিক KSUID তৈরি করতে পারেন।
- প্রতিটি KSUID এর পাশে "Copy" বোতামটি ব্যবহার করে এটি ক্লিপবোর্ডে কপি করুন।
- বিকল্পভাবে, উৎপন্ন KSUID-এর একটি তালিকা ডাউনলোড করতে "Export" বৈশিষ্ট্যটি ব্যবহার করুন।
মনে রাখবেন যে প্রতিটি KSUID অনন্য এবং একবারই ব্যবহার করা উচিত। একটি অনন্য শনাক্তকারী প্রয়োজন হলে প্রতিবার একটি নতুন KSUID তৈরি করুন।
কোড উদাহরণ
বিভিন্ন প্রোগ্রামিং ভাষায় KSUID উৎপন্ন করার উদাহরণ এখানে রয়েছে:
1## পাইথন
2import ksuid
3
4new_id = ksuid.ksuid()
5print(f"Generated KSUID: {new_id}")
6
1// জাভাস্ক্রিপ্ট
2const { ksuid } = require('ksuid')
3
4const newId = ksuid()
5console.log(`Generated KSUID: ${newId}`)
6
1// জাভা
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// সি++
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## রুবি
2require 'ksuid'
3
4new_id = KSUID.new
5puts "Generated KSUID: #{new_id}"
6
1// পিএইচপি
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// গো
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// সুইফট
2import KSUID
3
4let newId = KSUID()
5print("Generated KSUID: \(newId)")
6
রেফারেন্স
- সেগমেন্টের KSUID গিটহাব রিপোজিটরি: https://github.com/segmentio/ksuid
- "Generating good unique identifiers" পিটার বুরগনের দ্বারা: https://peter.bourgon.org/blog/2019/05/20/generating-good-unique-ids.html
- KSUID স্পেসিফিকেশন: https://github.com/segmentio/ksuid/blob/master/README.md
প্রতিক্রিয়া
এই টুল সম্পর্কে প্রতিক্রিয়া দিতে শুরু করতে প্রতিক্রিয়া টোস্টে ক্লিক করুন
সম্পর্কিত টুলস
আপনার কাজের প্রবাহের জন্য উপকারী হতে পারে এমন আরও টুল আবিষ্কার করুন