محتاجة معرّف فريد لكل سجل في نظامك، بدون رقم تسلسلي بسيط سهل التخمين ولا اعتماد على قاعدة بيانات مركزية تحسب آخر رقم؟ UUID الحل — معرّف عشوائي طويل، لكن احتمال تكراره شبه صفري.
UUID (اختصار Universally Unique Identifier) رقم بطول 128 بت بيُمثل عادة كسلسلة من 32 حرف سداسي عشري مقسّمة بشرطات لخمس مجموعات (زي 550e8400-e29b-41d4-a716-446655440000). الهدف الأساسي إعطاء معرّف فريد لأي كيان (سجل، ملف، جلسة) من غير الحاجة لتنسيق مركزي.
مساحة الاحتمالات الممكنة لـUUID ضخمة جدًا (2 أُس 128 احتمال تقريبًا) — رقم أكبر بكثير من عدد الذرات في الكون المرئي. حتى لو ملايين الأنظمة بتولّد UUID في نفس اللحظة بشكل مستقل تمامًا عن بعض، احتمال تصادم اتنين منهم في نفس القيمة ضئيل جدًا لدرجة إنه بيُعامل كمستحيل عمليًا.
فيه إصدارات متعددة من UUID، وكل واحد بيعتمد على معطيات مختلفة لتوليد القيمة. الإصدار الأول بيعتمد على الوقت وعنوان الجهاز، بينما الإصدار الرابع (الأشهر والأكتر استخدامًا) بيعتمد على عشوائية بحتة بدون أي معطى قابل للتتبع، وده بيخليه الخيار المفضّل لمعظم الاستخدامات العملية.
باستخدام مولّد UUID على فورا.tools:
نظريًا ممكن، لكن الاحتمال ضئيل جدًا لدرجة إنه بيُعتبر شبه مستحيل عمليًا.
الرقم التسلسلي بيحتاج مصدر مركزي، بينما UUID بيتولّد بشكل مستقل تمامًا ولسه بيفضل فريد.
لا، فيه إصدارات مختلفة (v1 لv8). الإصدار الرابع الأكتر شيوعًا لاعتماده على عشوائية بحتة.
نعم، شائع جدًا في الأنظمة الموزّعة لضمان عدم التصادم من غير تنسيق مركزي بين الخوادم.
UUID حل أنيق لمشكلة توليد معرّفات فريدة من غير تنسيق مركزي — مفيد بشكل خاص في الأنظمة الموزّعة الحديثة اللي بيها أكتر من خادم بيولّد بيانات بشكل مستقل عن بعض.