জিইউইডি সর্বদা স্বতন্ত্র হবে তা ধরে নেওয়া কি নিরাপদ?


123

আমি জানি যে সংঘর্ষের এক মিনিট সম্ভাবনা রয়েছে তবে আমি যদি 1000 টি জিইউইডি (উদাহরণস্বরূপ) একটি ব্যাচ তৈরি করি তবে কী প্রতিটিটি পরীক্ষার সংরক্ষণের জন্য তারা সমস্ত অনন্য বলে ধরে নেওয়া নিরাপদ হবে?

বোনাস প্রশ্ন

স্বতন্ত্রতার জন্য কোনও জিইউডি পরীক্ষা করার সর্বোত্তম উপায়? ব্লুম ফিল্টার হতে পারে?



29
যদি আমরা সকলেই এই সাইটে পুনরায় লোড বোতামটি ম্যাশ
মিপাদি

12
আমি আমার সমস্ত বাগটিকে জিইউডি সংঘর্ষের জন্য দোষ দিই। এটা ঠিক কিছু সময় ঘটতে হবে?
মাইকেল

8
এটি অনেক বেশি সম্ভাবনা রয়েছে যে একটি সুন্দর প্লেড-প্যাটার্নযুক্ত রঙযুক্ত একটি হাঙ্গর আকাশ থেকে পড়ে এবং আপনার কম্পিউটারকে বিটস্-তে টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো পরিকল্পনা।
ডেভিড গ্লাডফেল্টার

4
@ মিপাডি: দুর্দান্ত লিঙ্ক! আমি কোথাও কোথাও কিছু বিকাশকারীকে "গুউইউইয়স! জিইউইডিগুলি নষ্ট করা বন্ধ করুন! আমার সেগুলি দরকার !"
হতাশ

উত্তর:


360

হ্যা, তুমি পারো. যেহেতু জিইউইডিগুলি 128 বিট দীর্ঘ, তাই সংঘর্ষের এক মিনিটের সম্ভাবনা অবশ্যই রয়েছে — তবে "মিনিট" শব্দটি কোথাও যথেষ্ট শক্তিশালী নয়। আছে অনেক GUIDs যে আপনি যদি উৎপন্ন বিভিন্ন ট্রিলিয়ন তাদের এলোমেলোভাবে, আপনি কি এখনও আরও একটি উল্কার দ্বারা আঘাত করতে চেয়ে (থেকেও এক সংঘর্ষের হওয়ার সম্ভাবনা করছি উইকিপিডিয়া )। এবং যদি আপনি এলোমেলোভাবে এগুলি উত্পন্ন না করে থাকেন তবে উদাহরণস্বরূপ ম্যাক-ঠিকানা-এবং-সময়-স্ট্যাম্প অ্যালগরিদম ব্যবহার করে থাকেন, তবে সেগুলিও অনন্য হতে চলেছে, কারণ ম্যাকের ঠিকানাগুলি কম্পিউটারের মধ্যে অনন্য এবং টাইম স্ট্যাম্পগুলি আপনার অনন্য কম্পিউটার।

সম্পাদনা 1: আপনার বোনাস প্রশ্নের উত্তর দেওয়ার জন্য, স্বতন্ত্রতার জন্য জিইউইডিগুলির একটি সেট পরীক্ষা করার সর্বোত্তম উপায়টি কেবলমাত্র অনুমান করা উচিত যে এগুলি সমস্তই অনন্য। কেন? কারণ, আপনি যে জিইউইডিগুলি তৈরি করছেন তার সংখ্যার ভিত্তিতে, একটি জিইউইডি সংঘর্ষের প্রতিক্রিয়াগুলি আপনার কম্পিউটারের স্মৃতিতে কিছুটা উল্টানো এবং আপনার যত্ন নিতে চাইছেন এমন কোনও "সঠিক" অ্যালগরিদম দ্বারা প্রদত্ত উত্তরটি খুঁজে পেতে কোনও মহাজাগতিক রশ্মির প্রতিক্রিয়াগুলির তুলনায় ছোট are চালানোর জন্য. ( গণিতের জন্য এই স্ট্যাকওভারফ্লো উত্তরটি দেখুন ))

সেখানে প্রচুর সংখ্যক জিইউইডি রয়েছে। গ্যালাক্সিতে ডগলাস অ্যাডামসের হিচিকারের গাইডের উদ্ধৃতি দিতে :

"স্পেস," এটি বলে, "বড়ো। সত্যিই বড়। আপনি কেবল বিশ্বাস করতে পারবেন না যে এটি কতটা বিশালভাবে মস্তিষ্কবিহীনভাবে বড় হয় I আমার অর্থ আপনি মনে করতে পারেন যে এটি রসায়নবিদটির রাস্তা থেকে অনেক দূরে রয়েছে, তবে এটি কেবলমাত্র চিনাবাদামটি মহাকাশে পৌঁছেছে শুনুন… "

এবং যেহেতু মহাবিশ্বে প্রায় 7 × 10 22 নক্ষত্র রয়েছে , এবং কেবল 2 128 টি জিইউইডি'র নীচে রয়েছে, তারপরে প্রতিটি একক নক্ষত্রের জন্য প্রায় 4.86 — 10 15 — প্রায় পাঁচ কোয়াড্রিলিয়ন UID জিইডি রয়েছে। যদি সেই তারকাদের প্রত্যেকেরই যদি আমাদের মতো সমৃদ্ধ জনসংখ্যার বিশ্ব থাকে তবে প্রতিটি তারার চারপাশে, প্রতিটি মানুষ বা এলিয়েন যাঁরা বেঁচে ছিলেন তারা পঁয়তাল্লিশ হাজারেরও বেশি জিইউইডি পাওয়ার অধিকারী হবে। মহাবিশ্বের প্রতিটি তারাতে ইতিহাসের প্রতিটি ব্যক্তির জন্য। জিআইইডি স্পেস পুরো মহাবিশ্বের আকারের মতো বিশালতার একই স্তরে। আপনাকে যা না চিন্তা করতে হবে।

( সম্পাদনা 2: এটির প্রতিফলন: বাহ! আমি এর অর্থ কী তা আমি নিজেকে বুঝতে পারি নি The জিইউডি স্পেসটি বোধগম্যভাবে বিশাল।


1
এছাড়াও, ওল্ফ্রামআল্ফার প্রতিবেদনে বলা হয়েছে যে, যে ব্যক্তি কখনও বেঁচে আছে তার প্রতিটি কোষের জন্য এখানে ৩ tr ট্রিলিয়ন ইউইউডি রয়েছে। আপনার কাছে আরো আছে 10^14আপনার শরীরের কোষ, এবং 106,5 বিলিয়ন মানুষ কি কখনো জীবনযাপন করছি। ' বা, 2.385 * 10^23মার্কিন পাবলিক inণের প্রতি শতাংশের জন্য ইউইউডিগুলি।
new123456

5
যদিও সংখ্যাগুলি এখনও বেশি, একটি জিইউডি সংঘর্ষের সম্ভাবনা 2 ^ 64 জিইউইডিজে 50% এরও বেশি।
নুল ইউজারএক্সেপশন

1
২ ^ G৪ টি জিইউইডি-তে, এটি সর্বজনীন বা তারকালের জন্য বসবাসকারী প্রতিটি মানুষ বা এলিয়েনের জন্য 2 10 10 ^ (- 15) এর তুলনায় ইউনিভার্সের তারা প্রতি এক থেকে কম (0.00026) এবং 2 * 10 ^ (- 15) কে কমিয়ে দেবে। এটি এখনও বেঁচে থাকা প্রতিটি মানুষের জন্য ১ 170০ মিলিয়নেরও বেশি জিইউইডির অনুমতি পাবে , তাই আমি মনে করি আমরা এখনও ভাল আছি।
নাল ইউজার এক্সসেপশন

12
জিইউইডের সংঘর্ষের বিষয়টি একই ব্যবসায়ের জায়গায় থাকলে কেবল এটিই গুরুত্বপূর্ণ। সফটওয়্যারটির টুকরোয় একটি উপাদান সনাক্ত করার জন্য আমি যে জিইউডি ব্যবহার করি তা হ'ল কোনও জিইউইডের মতো হতে পারে যা আপনি নিজের অ্যাপ্লিকেশনটিতে একটি ডাটাবেস সারিতে ব্যবহার করেন কোনও সমস্যা ছাড়াই
জেমস থর্প

1
এখানে 2 ^ 128 জিইউডিএস রয়েছে তা অপ্রাসঙ্গিক এবং আপনি 50% সংঘর্ষের সম্ভাবনায় "এখনও ভাল" নন, আপনি 0.0000001%
তেও

40

সংক্ষিপ্ত উত্তর: বাস্তব উদ্দেশ্যে, হ্যাঁ।

তবে আপনাকে জন্মদিনের প্যারাডক্সটি বিবেচনা করতে হবে!

আমি কয়েকটি প্রতিনিধি সংঘর্ষের সম্ভাবনা গণনা করেছি। উইকিপিডিয়া নিবন্ধে উল্লিখিত 122-বিট ইউআইইউডের সাথে , আপনি কমপক্ষে 2.71492e18ইউআইডিগুলি উত্পন্ন করলে সংঘর্ষের সম্ভাবনা 1/2 । 10 ^ 19 ইউআইডি সহ, সম্ভাব্যতা 0.999918। 10 ^ 17 ইউআইউডি সহ, 0.000939953।

তুলনার জন্য কয়েকটি সংখ্যা উইকিপিডিয়ায় পাওয়া যাবে। সুতরাং আপনি বেঁচে থাকা প্রতিটি মানুষের, পর্যবেক্ষণযোগ্য মহাবিশ্বের প্রতিটি গ্যালাক্সি, সমুদ্রের প্রতিটি মাছ এবং পৃথিবীর প্রতিটি পৃথক পিঁপড়ে নিরাপদে একটি ইউইউডি নির্ধারণ করতে পারেন। তবে , আপনি যদি এক বছরে প্রতিটি ট্রানজিস্টর মানবতার জন্য পৃথিবীর প্রতিটি পোকা, পৃথিবীতে প্রতিটি বালাই, পর্যবেক্ষণযোগ্য মহাবিশ্বের প্রতিটি তারা বা তার চেয়েও বড় কিছু তৈরি করে তবে সংঘর্ষগুলি প্রায় নিশ্চিত।

আপনি যদি প্রতি সেকেন্ডে 1 বিলিয়ন ইউইউডি উত্পন্ন করেন তবে 10% এর সংঘর্ষের সম্ভাবনা পেতে প্রায় 36 বছর সময় লাগবে

অবশেষে, মানব ইতিহাসের ধীরে ধীরে উত্পন্ন ইউইউডিগুলির সেটগুলির মধ্যে সম্ভবত একটি সংঘর্ষ হবে। তবুও, সংঘর্ষিত ইউআইডিগুলিতে একই উদ্দেশ্যে ব্যবহৃত হওয়ার সম্ভাবনাটি অদৃশ্যভাবে ছোট, সুতরাং অনুশীলনে কোনও সমস্যা নেই।


13
এভাবেই মহাবিশ্বটি শেষ হয় ... কিছু প্রোগ্রামার কেবল ধরে
নিয়েছেন যে

যেহেতু ইউআইডিগুলি অ-র্যান্ডম ডেটা ভিত্তিক, 36 বছর হ'ল - আপনাকে কেবল প্রতিটি মিলিসেকেন্ডের জন্য পৃথকভাবে চিন্তা করতে হবে।
mjaggard

@mjaggard ইউইউডিগুলি এলোমেলো তথ্যের উপর ভিত্তি করে। যে কোনও আধুনিক সাজান, যাইহোক।
ট্রেজকাজ

8

সংঘর্ষের সম্ভাবনার একটি বিশ্লেষণ উইকিপিডিয়ায় পাওয়া যায়: http://en.wikedia.org/wiki/Uuid# র্যান্ডম_উইউইডি_প্রবণতা_অফ_লিপি

লিঙ্কে উল্লিখিত হিসাবে, এটি এলোমেলো নম্বর জেনারেটরের বৈশিষ্ট্য দ্বারা প্রভাবিত হবে।

জিইউইডি জেনারেটর কোডে একটি বাগ হওয়ার সম্ভাবনাও রয়েছে; সম্ভাবনা কম থাকলেও এগুলি সম্ভবত অঙ্কের ভিত্তিতে সংঘর্ষের সম্ভাবনার চেয়ে বেশি।

একটি ব্লুম ফিল্টার উপযুক্ত হতে পারে; এটি কোনও GID অনন্য কিনা তা তাড়াতাড়ি আপনাকে বলতে পারে তবে সংঘর্ষের মিথ্যা ইঙ্গিত পাওয়ার সুযোগ রয়েছে। আপনি যদি কোনও সময়ে কোনও ব্যাচ পরীক্ষা করে থাকেন তবে একটি বিকল্প পদ্ধতি হ'ল ব্যাচটিকে বাছাই করা এবং প্রতিটি ক্রমাগত উপাদানটির তুলনা করা।


5

সাধারণভাবে, হ্যাঁ এটি ধরে নেওয়া নিরাপদ।

যদি আপনার জিইউডি জেনারেটরটি সত্যই এলোমেলো হয় তবে 1000 জিইউইডিএসের মধ্যে সংঘর্ষের সম্ভাবনাগুলি অসাধারণ।

অবশ্যই এটি একটি ভাল জিআইডি জেনারেটর ধরে নিয়েছে। সুতরাং প্রশ্নটি হ'ল জিইউইডি উত্পন্ন করার জন্য আপনি যে সরঞ্জামটি ব্যবহার করছেন তাতে আপনার কী পরিমাণ বিশ্বাস আছে এবং এর নিজস্ব পরীক্ষা আছে?


0

যদিও একটি সংঘর্ষ সম্ভব, এটি খুব কমই অসম্ভব। ( এখানে গণিত ।) এগুলি বাস্তবে স্বতন্ত্র বলে ধরে নেওয়া নিরাপদ।


আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.