Conservazione di una copia JSON di un database

2

Sono nuovo nella programmazione lato server e sto costruendo una piccola applicazione web "test" in NodeJS. Ogni volta che i client devono visualizzare i dati dal database PostgreSQL, NodeJS eseguirà una query "SELECT" e mi darà il risultato in JSON (che poi aggiungerò a una pagina Web e lo servirò a loro). Invece di eseguire una query "SELECT" ogni volta che volevo ottenere i dati, il server poteva mantenere una versione JSON delle tabelle e aggiornarle ogni volta che i dati vengono aggiunti, modificati o rimossi

Questo ha qualche svantaggio?

    
posta Peter Stone 30.05.2018 - 03:27
fonte

1 risposta

9

Svantaggi di base

Eccesso di complessità, ridondanza. Più possibilità di bug (più percorsi attraverso più codice), più tempo per sviluppare, testare e più costi da mantenere, per sempre.

Dati obsoleti

Nel momento in cui i dati nel database cambiano da un'altra fonte rispetto a questo servizio, il server inizia a restituire dati non corretti (o almeno obsoleti). È possibile sperimentare la cache che non è coerente con i dati persistenti. È abbastanza educativo.

Coefficiente di scalabilità e cache

Non appena l'app di test si ridimensiona a migliaia di utenti (la maggior parte delle app di test lo fa, giusto?) e si aggiungono più server, si avrà un problema di coerenza della cache, in cui ciascuno di questi server ha la propria copia di quel JSON cache, e le copie possono dare risultati diversi alle richieste.

Modifica simultanea

Che cosa succede quando arrivano molte richieste simultanee da più utenti? Come si assicura che ogni utente visualizzi informazioni aggiornate e che le modifiche dell'utente non vengano perse? È abbastanza risolvibile. Il database può fornire questo servizio. Come lo fornirai a JSON? È una grande opportunità di apprendimento, ma è questa la tua priorità ora?

Ma il caching è talvolta una buona idea

C'è un posto per il caching. A volte è necessario per le prestazioni. Se il tempo per recuperare i dati dal database è "abbastanza veloce", allora non c'è bisogno di cache.

Forse l'apprendimento è la tua priorità

Stai costruendo un'applicazione di test. È la tua sandbox. Se hai voglia di avere una cache JSON intermedia, non c'è bisogno di giustificarla.

Fallo e impara dall'esperienza.

    
risposta data 30.05.2018 - 05:43
fonte

Leggi altre domande sui tag