Ci sono motivi per non memorizzare in modo permanente un intero sito?

3

Sto scrivendo una semplice piattaforma di blogger. L'applicazione legge un set di file statici che sono gli articoli nel blog e li serve.

Il tempo solo di qualsiasi contenuto del sito cambierà quando viene aggiunto un nuovo articolo o viene modificato un articolo esistente.

Intendo caricare il 100% del contenuto nella memoria delle applicazioni e aggiornarlo solo se i file statici vengono modificati. Cioè una cache permanente. Per un semplice blog, i file statici non supereranno mai più di pochi MB, quindi la memoria dell'applicazione non sarà un problema.

Ci sono dei motivi per non farlo? E perché le piattaforme di blogging (/ altre) con contenuti che cambiano solo a intervalli impostati non utilizzano questo metodo?

    
posta mrwooster 21.12.2011 - 06:37
fonte

2 risposte

9

"Ci sono dei motivi per non farlo?"

  1. La scalabilità. Certo, quando lo stai usando ora, i dati sono sotto pochi MB. Sarà sempre così? Io non la penso così Soprattutto se ti aspetti che altre persone usino questo sistema.

  2. Stai reinventando la ruota. Se il contenuto è archiviato in file, è sufficiente lasciare che Apache (o qualsiasi altro server Web che si sta utilizzando) li serva e gestisca la memorizzazione nella cache. Probabilmente farà un lavoro migliore di quello che ti viene in mente.

  3. Non è necessario. Se il set di dati è piccolo, dovresti essere in grado di ottenere prestazioni accettabili usando MySQL, o file statici serviti da Apache, o qualsiasi altro modo in cui le persone normalmente fanno questo. Se il set di dati è grande, lo schema di caching non funzionerà (vedi n. 1).

risposta data 21.12.2011 - 07:40
fonte
5

In cima alla mia testa, ho potuto pensare ad alcuni motivi per non tenere un intero sito in memoria:

  • Il sito potrebbe essere troppo grande per adattarsi interamente alla memoria.
  • Anche se tecnicamente potessi inserirlo nella memoria, potrebbe non essere economico farlo, se si accede regolarmente a un piccolo gruppo di pagine mentre il resto non viene mai visto.
  • Avere un gran numero di oggetti in memoria potrebbe anche rallentare la garbage collection (se stai programmando un linguaggio spazzato come Java o C #) perché ci sono tutti questi oggetti extra da controllare.
risposta data 21.12.2011 - 07:12
fonte

Leggi altre domande sui tag