هل من الممكن لخادم ASP.NET إنشاء نفس المعرف الفريد العمومي (GUID) لأكثر من مستخدم واحد؟

StackOverflow https://stackoverflow.com/questions/272169

  •  07-07-2019
  •  | 
  •  

سؤال

لقد رأيت تصادمات GUIDالمناقشات ولكن أردت فقط أفكارك حول ما إذا كان من الممكن أن يكون هناك تضارب للمعرف الفريد العمومي (GUID) إذا قام كلا العميلين بالوصول إلى نفس صفحة الويب التي تنشئ المعرف الفريد العمومي (GUID) في نفس الوقت تمامًا (- ربما وصولاً إلى جزء من الثانية الصغيرة)؟

هل كانت مفيدة؟

المحلول

ومن الممكن نظريا، ولكن من المستبعد جدا.

نصائح أخرى

ولا. وإذا حدث ذلك خرج مسرعا وشراء تذكرة اليانصيب!

في خادم واحد، لا، ليس من الممكن. الإصدار 4 مصنوعة المعرفات الفريدة العمومية حتى (بين أمور أخرى) من قيمة 54 بت شبه عشوائي، وكما فهمت تلك، فإنها تحول بين كل القيم قبل تكرار.

إذا خلق على اكثر من سيرفر، فمن الممكن أن يكون هناك صدام ارشد، على الرغم من أن هذا هو غاية المستبعد جدا.

RFC 4122 ، وتحديدا قسم 4.1.5. يستخدم Windows الحديثة UUIDs V4، على ما أعتقد.

من ويكيبيديا، الموسوعة الحرة

المعرف الفريد العالمي أو GUID (ينطق /ˈguːɪd/ أو /ˈgwɪd/) هو نوع خاص من المعرفات المستخدمة في التطبيقات البرمجية بالترتيب لتوفير رقم مرجعي فريد في أي سياق (وبالتالي "عالميًا")، على سبيل المثال، في تحديد المرجع الداخلي لنوع نقطة الوصول في تطبيق برمجي، أو لإنشاء مفاتيح فريدة في قاعدة بيانات. في حين أن كل معرف GUID تم إنشاؤه ليس مضمونًا أن يكون فريدًا، فإن العدد الإجمالي للمفاتيح الفريدة (2128 أو 3.4×1038) كبير جدًا بحيث يكون احتمال إنشاء نفس الرقم مرتين صغيرًا جدًا.على سبيل المثال، خذ بعين الاعتبار الكون المرئي، الذي يحتوي على حوالي 5×1022 نجمًا؛يمكن أن يحتوي كل نجم بعد ذلك على 6.8×1015 معرّفات GUID فريدة عالميًا.

إذا قمت بإنشاء الكثير والكثير من المعرفات الفريدة العمومية (GUIDs)، فإن احتمالية الاصطدام تصبح عالية جدًا بسبب مفارقة عيد الميلاد.من الناحية النظرية، يجب أن يكون تصادم GUID غير محتمل إلى حد كبير (حدس ساذج) ولكنه يحدث عمليًا من وقت لآخر.

بالتأكيد، يعد التعامل مع هذه التصادمات برمجيًا مضيعة للوقت، ولكن لا يزال يتعين عليك كتابة التعليمات البرمجية الخاصة بك بطريقة إذا حدث ذلك، فمن المفترض أن تفشل التعليمات البرمجية الخاصة بك بصوت عالٍ، وليس بهدوء ودون أن يتم اكتشافها.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top