AFAIK, Memcached non supporta la sincronizzazione con il database (almeno SQL Server e Oracle). Stiamo progettando di utilizzare Memcached (è gratuito) con il nostro database OLTP.Come implementare Memcached sincronizzato con database
In alcuni processi aziendali eseguiamo alcune pesanti convalide che richiedono molti dati dal database, non possiamo mantenere una copia statica di questi dati poiché non sappiamo se i dati sono stati modificati in modo da recuperare i dati ogni volta che rallenta il processo.
Una possibile soluzione potrebbe essere
- Scrivi innesca il database per creare/aggiornare prefisso-postfissati (table-PK1-PK2-PK3-colonna) i file sul cambiamento di record
- Monitorare questo cambiamento di lima utilizzando
FileSystemWatcher
e scadenza la chiave (table-PK1-PK2-PK3-colonna) per ottenere i dati
Problema aggiornamento: ci sarebbero circa 100.000 utenti che utilizzano qualsiasi combinazione di dati per 10 ore. Quindi finiremo per avere un sacco di file, ad es. categ1-subcateg5-subcateg-78-data100, categ1-subcateg5-subcateg-78-data100, categ2-subcateg5-subcateg-78-data100, categ1-subcateg5-subcateg-33-data100, ecc.
Mi aspetto 5 almeno un milione di file. Ora sembra una soluzione patetica :(
Altre possibilità sono
- chiamata di un servizio Web in modo asincrono dal grilletto passando la chiave essere scaduto
- chiamata un exe da innesco senza aspettare che alla fine e allora questo exe sarebbe scaduto la chiave. (ho avuto un certo successo con questo approccio su SQL Server utilizzando xp_cmdsell per chiamare un exe, chiamare un exe da innesco di Oracle sembra un po 'difficile)
Ancora suoni patetici, non è vero?
Eventuali suggerimenti intelligenti per favore
Alcune domande. Questo è per Oracle o Sql Server, o deve essere entrambi? Le tabelle coinvolte cambiano rapidamente o lentamente? Hai qualche budget per questo? – tbone
@tbone Dovrebbe essere per entrambi, e dovrebbe funzionare anche per qualsiasi altro DB se pensiamo di supportare anche quello. Le modifiche sono rapide e in tempo reale. Per ora non ho budget perché sto proponendo questa soluzione da solo – bjan
Peccato tu abbia bisogno di una soluzione "generica" che deve funzionare con entrambe le piattaforme di database, ci sono certamente cose che puoi fare nella configurazione di Oracle che potrebbe aiutare (creare cache, usando SSD, ecc.). Inoltre, se si tratta di una tabella in rapida evoluzione, non sono sicuro che la cache lato app sia l'approccio migliore, poiché invalidere costantemente la cache e ricaricarla comunque. – tbone