und der Status war: es muss eine gewaltige Menge sein, bevor die heutigen Filesysteme bei Direktzugriff auf einen Namen in die Knie gehen.
Also, meine sorgfältig nach Künster-Disk-Position-Titel.ogg von meinen CDs gegrappte Musiksammlung hat gereicht um (allerdings auf einem Raspi und einer 2,5-Zoll-Magnetplatte an USB-2) für unerträglich negative Performance zu sorgen. Ja: Das sind ein paar Tausend.
Nachdem ich diese (natürlich mit einem Skript) auf die Anfangsbuchstaben der Künstler/Künstler/CD/Titel.ogg verteilt hatte ging es…
aber es gibt dann noch die klitzekleine Chance, dass doch mal 2 Dateien den gleichen Hash haben. tempnam() ist definitiv sinnvoller.
Das dürfte eine Frage der Wichtung sein. MD5() liefert eine 32-stellige hexadezimale Zahl…
1:16^32 1:340282366920938463463374607431768211456
= 0.0000000000000000000000000000000000000029
sha1() eine mit 40 Stellen. Man kann natürlich auch hash('sha512',$string,0)
verwenden (128 Stellen, für "Hallo" kommt "2d0e4a42d260c2407281975322837e61c1362a3b18be38b71eb6f4dfd3e4f992d964c1bac6eec
4532064f69779b6014b3770891cf60c74f976e57588a6c976c9" heraus) wodurch die Wahrscheinlichkeit auf
1:16^128
1: 13407807929942597099574024998205846127479365820592393377723561443721
76403007354697680187429816690342769003185818648605085375388281194656
9946433649006084096
= 0.0000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000
000000000000000000075
verringert wird. So lange die Dateien zufällig sind (also nicht mit aufwenigen Verfahren zwei Dateien mit gleichem Hash aber verschiedenem Inhalt erzeugt und verschickt werden) sollte man sein Glück im Lotto versuchen, wenn man zwei Dateien bekommt, für die das zutrifft, weil wenn man diese klitzekleine Chance knackt, dann ist der Lottogewinn auch ein sehr wahrscheinliches Ereignis…
Man muss sich also zwischen einer sehr unwahrscheinlichen Ereignis und dem Speicherplatz entscheiden… Das ist eine Frage der Wichtung und natürlich der Umstände. Wenn ich erwarte, dass viele Nutzer die selbe Datei speichern, dann werde ich wohl eher das machen, was z.B. das ZFS-Dateisystem (bei Verfügbarkeit von reichlich RAM) auch mit Duplikaten anstellen kann…