Witam,
Mam do zrobienia bardzo duży portal założenia zleceniodawcy są takie, że 90% wszystkich zapytań to pobieranie danych z bazy a tylko 10% to modyfikacje, dodawanie lub usuwanie rekordów. Baza ma posiadać ok. 5 mln rekordów na początek. Zleceniodawca przyjmuje ok. 50 tys. odsłon dziennie. Przy tak dużej ilości odsłon i ilości pobieranych danych warto zastosować cachowanie zapytań. Chciałbym zrobić to standardowo:
1. Sprawdzanie cache, jeśli zawiera aktualne dane to idź do 4
2. Pobranie treści z bazy
3. Zaktualizowanie cache
4. Zwrócenie danych
Nie chce się martwić o to czy zawartość cache jest aktualna i zamierzam czyścić ją za każdym razem gdy coś dodam, zmodyfikuje lub usunę w bazie. Oczywiście nie cały cache. Z takie rozwiązanie ma kilka wad:
1. Jeśli nie będzie nic w cache i nagle na stronę wejdzie 1000 osób w jednej chwili i każdy zacznie aktualizować cache, będzie to bardzo nieefektywne.
2. Podczas gdy chcę usuwać cache może się okazać, że ktoś właśnie go czyta i nie usunę go, wtedy zostanie stara, nieaktualna zawartość.
Przy tak dużej ilości odsłon nawet tak mało prawdopodobne akcje są możliwe. Czy macie jakieś pomysły jak to mogę rozwiązać?