Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Ogarnąć tysiące małych plików, Jakie rozwiązanie będzie najlepsze?
farthing
post 18.12.2006, 20:34:42
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 18.12.2006

Ostrzeżenie: (0%)
-----


Witam,
borykam się ostatnio z pewnym problemem. Otóż posiadam stronę o bardzo dużej odwiedzalności, do której działania niezbędne jest oczywiście cache-owanie wszystkiego co tylko jest możliwe. Wynikiem tego powstaje masa małych plików. Oczywiście wszystkie te pliki są ładnie pokatalogowane w dwupoziomowej strukturze katalogów wg sumy md5 i póki co rozwiązanie to sprawdza się całkiem nieźle, ale martwi przyszłość... smile.gif
Na chwilę obecną jest to już kilkaset tysięcy plików o wielkości ok 5k. Obawiam się tutaj głównie o filesystem. Co prawda wszystko to działa na bardzo wydajnym sprzęcie pod kontrolą fbsd, ale mimo wszystko na dłuższą metę wydaje mi się że trzeba by tu przyjąć inne rozwiązanie.
To co mi przyszło do głowy, to grupowanie tych małych plików w kilku/dziesięciu/set plikach większych. Tylko problem w tym, że nie znalazłem póki co idealnego narzędzia do takich czarów.
Można by do tego wykorzystać SQLite, ale wydaje mi się to za bardzo rozbudowanym narzędziem jak na tak prostą rzecz...
Ja sobie rozkminiłem takie rozwiązanko:
256 dużych indeksowanych plików.
i pare funkcji do tego:
file_save($id, $data)
//$id to suma md5
pobierze dwie pierwsze litery, by wiedziec na jakim pliku operować
zapisze plik, zmodyfikuje indeks
file_load($id) - wiadomo
file_delete($id) - wiadomo
file_getlastmod($id) - zwróci ostatnią date modyfikacji, lub 0 gdy plik nie istnieje

Jeszcze lepszym wyjściem była by możliwość ustalania czasu życia pliku przy zapisywaniu. To już by było mega idealne.

Może ktoś spotkał się z odpowiednim modułem do takich zastosowań? Byłbym bardzo wdzięczny!
A może macie inne koncepcje na rozwiązanie tego zagadnienia?
Go to the top of the page
+Quote Post
heaven
post 19.12.2006, 14:36:00
Post #2





Grupa: Nieautoryzowani
Postów: 92
Pomógł: 15
Dołączył: 21.10.2006

Ostrzeżenie: (0%)
-----


a wszystkie pliki sa potrzebne? tzn czy istnieja scashowane pliki ktore reprezentuja nieistniejace juz strony?. Czy wszystkie strony sa rownie czesto uzywane?. moglbys za kazdym pobraniem cashu zautualizowac jego date utworzenia czy aktualizacji i kasowac co jakis czas pliki ktore nie byly odczytywane juz przez tydzien/miesiac. Drugie podejscie to dobra struktora podkatalogow. podejrzewam ze masz juz cos takiego, przykladowo jak skladowane sa zdjecia na allego photos.allegro.pl/photos/oryginal/15/1517/151745/15174560/151745601_1.jpg. A cache pobierany z bazy danych? wtedy latwo usuwac przestarzałe.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 14:23