Kezdőoldal » Számítástechnika » Programozás » Találkoztatok már UUID-ütközés...

Találkoztatok már UUID-ütközéssel?

Figyelt kérdés

Olyan, amikor két generált UUID ugyanaz lesz. Azt igéri, hogy világszinten egyedi, de matematikailag ez egy véges halmaz, elképzelhető, hogy lesz ütközés.


Szoktatok ilyenre készülni?


Én most egy adatbázba generálok egyedi UUID-vel sorokat. Ezzel lehet majd egy weboldalon megímezni az adott részt. Tehát az UUID bekerül az url-be majd. És ugyan már megcsináltam az előzetes ellenőrzést, csak az merült fel bennem, hogy egyáltalán van ennek értelme? Fordult már elő ilyen bárkivel is, hogy két legenerált UUID ütközzön egy rendszeren belül?


Illetve nem fog ez a program belassulni idővel?


Ilyen a kódom pszeudokódban egyébként:


- generálok egy uuid-t

- lekérdezem a meglévőek között van-e ilyen

- ha van már ilyen akkor újrakezdem az egészet

- ha nincs akkor kész vagyunk, mehet a program többi része



2021. dec. 28. 13:30
1 2
 1/19 anonim ***** válasza:
100%
Felesleges vizsgalni, ugyanazon a hardveren soha nem lesz utkozes.
2021. dec. 28. 13:38
Hasznos számodra ez a válasz?
 2/19 A kérdező kommentje:
De hát ez egy véges hosszú string, akkor ennek az értékkészlete is véges kell, hogy legyen. És ha véges, akkor egy idő után már nem lehet újabbat generálni, csak olyat, ami már volt. Vagy rosszul gondolom?
2021. dec. 28. 15:37
 3/19 anonim ***** válasza:
78%
Igen, veges, de ha masodpercenkent tobb milliot generalsz eleted vegeig, akkor sem ersz a vegere.
2021. dec. 28. 15:43
Hasznos számodra ez a válasz?
 4/19 A kérdező kommentje:
Oké, köszi, akkor szerintem ki is szedem a kódomból, hogy egyszerűbb maradjon!
2021. dec. 28. 15:50
 5/19 anonim ***** válasza:
31%

"Szoktatok ilyenre készülni?"

Nem. Ugyanis annak a valószínűsége, hogy két véletlenszerűen generált UUID megegyezzen, kisebb, mint annak, hogy egy éven át minden héten megnyered a lottóötöst.

2021. dec. 28. 16:58
Hasznos számodra ez a válasz?
 6/19 anonim ***** válasza:
78%

#5: azért ez nagyon nem igaz.

A guid az 128 bites, kb 3*10^38 lehetőség

Az 5-ös lottón kb 44 millió kombináció van, 44 milliü az 52-en kb 3*10^397, azaz JÓVAL valószínűtlenebb. Kb 5 alkalommal történő nyeréssel egyedik meg, nem egy egész évvel.

Persze ez akkor igaz, ha egyetlen szelvényt veszel minden héten. Ha nincs a szelvényekre korlát, akár midnen héten nyerhetsz, csak az sokba kerül :)


Illetve még azt is hozzá kéne tenni, hogy a guid azért nem egy sima random érték általában telejs egészében, hanem van benne egy időbélyeg rész is. Ami csökkebti jóval a véletlenszerű bitek számát.

2021. dec. 28. 20:38
Hasznos számodra ez a válasz?
 7/19 anonim ***** válasza:

egy stackoverflow kommentben olvastam ezt a kifejezést a problémára: "UUID generation guarantees uniqueness across time and space"

a UUID generalás téren és időn ár garantálja az egyediséget


annyira kicsi az ütközés valószínűsége, hogy kvázi halott kód lenne az újragenerálás


több pénz/idő/energia lenne lekezelni azt mint elfogadni hogy egyszer majd valamikor 1500 éven belül talán lesz 2 közel hasonló érték

2021. dec. 29. 01:20
Hasznos számodra ez a válasz?
 8/19 anonim ***** válasza:

"the number of UUIDs generated to have at least 1 collision is 2.71 quintillion. This is equivalent to generating around 1 billion UUIDs per second for about 85 years."

[link]


Vagyis egy UUID ütközéshez ~85 évig kéne másodpercenként 1 milliárdot generálni.

2021. dec. 29. 03:17
Hasznos számodra ez a válasz?
 9/19 anonim ***** válasza:
64%

De ezek csak esélyek. Hasonlóan ahhoz - bár nyilván sok nagyságrenddel másabb valószínűségekkel dolgozva - hogy dobókockával is egyenletes eloszlásod lesz nagy átlagban. De azért nagyritkán belefér az hogy valaki 5 egymást követő alkalommal hatost dobjon.


A lottón is hibába játszanék 43-44 millió hétig, az sem garantálná, hogy ezalatt pontosan egyszer ötösöm lesz. Ahogy azt sem, hogy nem lesz véletlenül kétszer egymás után ötösöm.


Lényeg, hogy ezek nem mondják el, hogy nálad mi fog történni. Csak azt mondják el, hogy általában mi szokott történni.


Ha már kész a kódod, akkor ne töröld, elfér. Valószínűleg sosem vog végrehajtódni, de ha mégis a sokmilliárd ember közül éppen neked fog egyetlen egyszer is lefutni, akkor sok fejvakarástól és reprodukálhatatlan hibától tud megóvni.

2021. dec. 29. 07:52
Hasznos számodra ez a válasz?
 10/19 anonim ***** válasza:
23%

Egyetértek azokkal, akik a rá-ellenőrzésre teszik a voksukat. Én is ellenőrzöm az UUID létezését mentés előtt. Jobb félni, mint megijedni alapon.

Ha prod környezetben fekszik meg e miatt, mert nem gondoltál rá, az rengeteg hiba jelentéstől ment meg.

2021. dec. 29. 14:24
Hasznos számodra ez a válasz?
1 2

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!