Ist eine GUID zu 100 % eindeutig?
Bleibt sie über mehrere Threads hinweg eindeutig?
Ist eine GUID zu 100 % eindeutig?
Bleibt sie über mehrere Threads hinweg eindeutig?
Von http://www.guidgenerator.com/online-guid-generator.aspx
Was ist eine GUID?
GUID (oder UUID) ist ein Akronym für "Globally Unique Identifier" (oder "Universally Unique Identifier"). Es handelt sich um eine 128-Bit-Ganzzahl, die zur Identifizierung von Ressourcen verwendet wird. Der Begriff GUID wird im Allgemeinen von Entwicklern verwendet, die mit Microsoft-Technologien arbeiten, während UUID überall sonst verwendet wird.
Wie eindeutig ist eine GUID?
128 Bits sind groß genug und der Generierungsalgorithmus ist einzigartig genug, dass bei der Generierung von 1.000.000.000 GUIDs pro Sekunde für ein Jahr die Wahrscheinlichkeit einer Duplikation nur 50% betragen würde. Oder wenn jeder Mensch auf der Erde 600.000.000 GUIDs erzeugen würde, läge die Wahrscheinlichkeit eines Duplikats bei nur 50 %.
Ist eine GUID zu 100% eindeutig?
Dies ist nicht garantiert, da es mehrere Möglichkeiten gibt, eine solche zu erstellen. Sie können jedoch versuchen, die Wahrscheinlichkeit zu berechnen, dass zwei GUIDs identisch sind, und Sie bekommen eine Vorstellung davon: Eine GUID hat 128 Bits, daher gibt es 2 128 eindeutige GUIDs - viel mehr als es Sterne im bekannten Universum gibt. Lesen Sie die Wikipedia-Artikel für weitere Einzelheiten.
MSDN :
Es besteht eine sehr geringe Wahrscheinlichkeit, dass der Wert der neuen Guid ausschließlich aus Nullen besteht oder mit einer anderen Guid übereinstimmt.
Ich habe eine doppelte GUID festgestellt.
Ich verwende den Desktop-Scanner Neat Receipts, der mit einer eigenen Datenbanksoftware ausgestattet ist. Die Software verfügt über eine Funktion zum Synchronisieren mit der Cloud, und ich erhielt beim Synchronisieren immer wieder einen Fehler. Ein Blick in die Protokolle offenbarte die großartige Zeile:
"errors":[{"code":1, "message": "creator_guid: ist bereits taken","guid":"C83E5734-D77A-4B09-B8C1-9623CAC7B167"}]}
Ich war etwas ungläubig, aber als ich einen Weg in meine lokale Neatworks-Datenbank fand und den Datensatz mit dieser GUID löschte, trat der Fehler nicht mehr auf.
Um also Ihre Frage mit anekdotischen Beweisen zu beantworten: Nein. Ein Duplikat ist möglich. Aber es ist wahrscheinlich, dass der Grund dafür nicht der Zufall war, sondern die Nichteinhaltung der Standardverfahren. (Ich habe einfach nicht so viel Glück.) Aber ich kann es nicht mit Sicherheit sagen. Es liegt nicht an meiner Software.
Der Kundensupport war außerordentlich höflich und hilfsbereit, aber sie hatten wohl noch nie mit diesem Problem zu tun, denn nach mehr als 3 Stunden am Telefon fanden sie keine Lösung. (FWIW, ich bin sehr beeindruckt von Neat, und diese Störung, auch wenn sie frustrierend ist, hat meine Meinung über ihr Produkt nicht geändert).
Wenn Ihre Systemuhr richtig eingestellt ist und sich nicht gedreht hat, und wenn Ihre Netzwerkkarte ihren eigenen MAC hat (d.h. Sie haben keinen benutzerdefinierten MAC eingestellt) und Ihr Netzwerkkartenhersteller keine MACs recycelt hat (was er nicht tun sollte, was aber bekanntlich vorkommt), und wenn die GUID-Erzeugungsfunktion Ihres Systems richtig implementiert ist, dann wird Ihr System niemals doppelte GUIDs erzeugen.
Wenn jeder auf der Welt, der GUIDs generiert, diese Regeln befolgt, werden Ihre GUIDs weltweit eindeutig sein.
In der Praxis ist die Zahl der Personen, die gegen die Regeln verstoßen, gering, und es ist unwahrscheinlich, dass ihre GUIDs "entkommen". Konflikte sind statistisch gesehen unwahrscheinlich.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.