[ mist @ 04.04.2006. 20:46 ] @
Problem je sledeci: Napravio sam skriptu za upload fajlova, sajt je tipa imageshack. Samo sto ovde ima i video klipova i flasheva i mp3-a. Radi na sledeci nacin: 1. Korisnik uploaduje fajl 2. Sistem generise random alfanumericki string duzine 15 znakova pomocu neke formule koju sam iskopao na netu. 3. fajl se snimi na server pod imenom tog generisanog stringa. 4. upise se u bazu gde je jedno od polja taj "jedinstveni" string. Kada korisnik zeli da vidi fajl on treba da poseti link www.imesajta.com/view?file=<jedinstveni_string> Medjutim, desava se da prilikom generisanja novog stringa sistem izgenerise string koji vec postoji. Naravno kada korisnik proba da poseti gore navedeni url sistem izvadi ranije uploadovani fajl sa istim jedinstvenim stringom. Na sajtu trenutno ima oko 25 hiljada fajlova. Ali ljudi, random string duzine 15 karaktera, pa verujem da je verovatnoca da se ponovi daleko manja od 1:25.000. Ovo je pocelo da se desava kada je bilo samo 1.000 fajlova na sistemu. Prvo sam probao da kada generisem novi random string prvo proverim da li isti postoji u bazi, pa ako postoji probam ponovo i tako ukrug, ali izgleda da je to zaglupljivalo sistem kada je broj fajlova porastao na 10.000, pa sam odustao od toga. E onda sam poceo da ispred ovog stringa dodajem unix microtime string i evo opet je pocelo da se desava, posle dva meseca. Moj jedini zakljucak je da postoji memory leak. Za pristup bazi koristim PEAR:DB bez permanentne konekcije. Ima li neko ideju, pomagajteeee!!!!! |