Idea per sviluppare un server di caching tra IIS e SQL Server

1

Lavoro su alcuni siti Web ad alto traffico che condividono tutti lo stesso database e che sono tutti guidati da database. Il nostro server SQL è al massimo e, sebbene abbiamo già implementato molte modifiche che hanno aiutato ma il server sta ancora lavorando troppo duramente.

Utilizziamo alcuni tipi di memorizzazione nella cache nel nostro sito Web, ma il tipo di query che utilizziamo non utilizza la cache delle dipendenze SQL.

Abbiamo provato la replica SQL per provare e il tipo di bilanciamento del carico, ma questo non si è rivelato un successo perché il processo di replica è piuttosto impegnativo anche per i server e doveva essere fatto frequentemente poiché è importante che i dati siano aggiornati .

Utilizziamo un server di cache web di Varnish (basato su Linux) per rimuovere un po 'di carico sia dal server web che dal server di database, ma dato che molti siti sono personalizzati in base all'utente, possiamo fare così tanto.

Ad ogni modo, la ragione di questa domanda ... Varnish mi ha dato un'idea per una possibile applicazione che potrebbe aiutare in questa situazione.

Proprio come Varnish si trova tra un browser Web e il server Web e la risposta cache dal server web, mi chiedevo la possibilità di creare qualcosa che si trova tra il server web e il server di database.

Immagina che tutte le query SQL passino attraverso questo server di memorizzazione nella cache SQL. Se si tratta di una query per la prima volta, verrà registrata e il risultato richiesto dal server SQL e archiviato localmente sul server della cache. Se si tratta di una richiesta di ripetizione entro un tempo prestabilito, il risultato viene recuperato dalla copia locale senza che la query venga inviata al server SQL. Il server di memorizzazione nella cache potrebbe inoltre sfruttare le notifiche di memorizzazione nella cache delle dipendenze SQL.

Questa sembra una buona idea in teoria. C'è ancora la stessa quantità di dati che si spostano avanti e indietro dal server web, ma il server SQL è sollevato dal lavoro di elaborazione delle query ripetute.

Mi chiedo quanto sarebbe difficile costruire un servizio che emuli le richieste e le risposte dal server SQL, indipendentemente dal fatto che il caching del server SQL ne stia già facendo abbastanza che questo non sarebbe un vantaggio, o anche se qualcuno l'ha già fatto e non l'ho trovato? Sarei lieto di ricevere qualsiasi feedback o riferimento a qualsiasi progetto pertinente.

    
posta johna 13.12.2012 - 10:58
fonte

2 risposte

1

Citrix Netscaler fornisce questa funzionalità. link

Non sono un Citrix Rep, ma usiamo il Netscaler per bilanciamento del carico, failover e GSLB.

Amazon, credo che usi Netscalers per gestire il proprio servizio di hosting, quindi è certificato per le aziende.

Fondamentalmente, funziona come Squid tranne per SQL, oltre ad altre cose come puntare tutte le letture su uno svr SQL e scrivere su un altro. Cose interessanti.

Non so se esiste un prodotto equivalente open-source.

A lungo termine ... potrebbe voler esaminare Hadoop (http://hadoop.apache.org/) per risolvere il problema in un modo diverso.

    
risposta data 13.12.2012 - 18:09
fonte
1

Esistono soluzioni per ciò che desideri: cache AppFabric sopra menzionata (nome in codice "Velocity") o Memcached.

    
risposta data 13.12.2012 - 19:38
fonte

Leggi altre domande sui tag