Skip to content

cache loading

Doychin edited this page May 24, 2015 · 1 revision

Cache Loading

В момента нещата от кеша не се зареждат при рестарт. Сървъра "забравя" за файловете, които са директорията му.

Ще трябва да направим нещо, кото при стартиране на сървъра да го зарежда в правилните структира в памета. Тези структури май са само в кеш модула. Тъй като вероятно ще има много файлове на диска това зареждане ще трябва да е "във фона". Рестартирайки сървъра той трябва да започне да работи веднага и да отговаря на клиентски заявки, докато върви фоновия процес и зарежда кеша.

Това създава един проблем: Какво ще стане ако потребител поиска файл/частичка, който вече го има в кеша, но още не е зареден? За да го решим предлагам да правим това, което прави и nginx:

  1. заявка за файл, който не е в кеша структурите
  2. изчислява се къде трябва да е този файл/парче на диска
  3. все пак се опитва се да се прочете от диска, въпреки че кеш модула е казал, че го няма 4а. ако го има - използва го и го добавя в кеш структурите 4б. ако не - файла го няма със сигурност и се прави ъпстрийм рикуест

Бележки към сегашната имплементация

Сега на диска за файловете се пазят само данните на файла. За да е успешно зареждането от диска, ще трябва да държим там и хедърите му. Например в директорията му, във файл headers. Файла трябва да е текстов за да може да се прави някакв диагностика по - лесно.