-
-
Notifications
You must be signed in to change notification settings - Fork 9
cache loading
В момента нещата от кеша не се зареждат при рестарт. Сървъра "забравя" за файловете, които са директорията му.
Ще трябва да направим нещо, кото при стартиране на сървъра да го зарежда в правилните структира в памета. Тези структури май са само в кеш модула. Тъй като вероятно ще има много файлове на диска това зареждане ще трябва да е "във фона". Рестартирайки сървъра той трябва да започне да работи веднага и да отговаря на клиентски заявки, докато върви фоновия процес и зарежда кеша.
Това създава един проблем: Какво ще стане ако потребител поиска файл/частичка, който вече го има в кеша, но още не е зареден? За да го решим предлагам да правим това, което прави и nginx:
- заявка за файл, който не е в кеша структурите
- изчислява се къде трябва да е този файл/парче на диска
- все пак се опитва се да се прочете от диска, въпреки че кеш модула е казал, че го няма 4а. ако го има - използва го и го добавя в кеш структурите 4б. ако не - файла го няма със сигурност и се прави ъпстрийм рикуест
Сега на диска за файловете се пазят само данните на файла. За да е успешно зареждането от диска, ще трябва да държим там и хедърите му. Например в директорията му, във файл headers
. Файла трябва да е текстов за да може да се прави някакв диагностика по - лесно.