Il Windows Azure Caching Document diceCollegamento alla nuova Caching Azure (DataCache, DataCacheFactory, e il pool di connessioni)
Se possibile, conservare e riutilizzare lo stesso oggetto DataCacheFactory per conservare la memoria e ottimizzare le prestazioni."
qualcuno ha visto metriche o qualsiasi quantificazione di quanto costoso questo è?
"impostazione MaxConnectionsToServer ... determina il numero di chennels per DataCacheFactory che si aprono al cluster cache".
Quindi, se MaxConnectionsToServer = 1 e DataCacheFactory è un Singleton nella vostra app, allora hai efficacemente sincronizzato tutte le richieste al tuo web server!
Tuttavia, thereis alot di indicazione che DataCacheFactory deve essere un singleton (ad esempio, inserire Application_OnStart).
Questo è fondamentale e non posso credere che non sia nella documentazione di Microsoft. DataCacheFactory è trattato allo stesso modo in AppFabric, nella cache condivisa di Azure e nella cache di Azure? Ho solo difficoltà a credere che Microsoft abbia progettato il caching in un modo che richiede un oggetto factory singleton. È come richiedere a chiunque usi SqlConnection di avere un oggetto SqlConnectionFactory singleton nella propria applicazione.
Quindi, considerando una web app relativamente media (ad esempio, 1.000 s di richieste all'ora, ~ 100 oggetti nella cache, la richiesta media accede 5 oggetti memorizzati nella cache):
- Per impostazione predefinita (e la raccomandazione) quanti oggetti Factory dovrebbero esserci in una volta?
- Quanto tempo è necessario per creare un riferimento DataCacheFactory?
- Quanto tempo è necessario per creare un riferimento DataCache?
- Dovrebbero essere solo 1 oggetto DataCacheFactory per app e solo 1 riferimento DataCache per richiesta?
EDIT (risposte in corso):
(1/2). Consenti al pool di connessioni di Azure di gestire gli oggetti Factory
(3). Ancora test ...
(4). Sto ancora cercando di capire se dovrei riutilizzare i riferimenti DataCache
Ci sono aggiornamenti riguardo a questin 3/4? Crei un DataCache per ogni richiesta? – Robar
Robar, abbiamo scoperto che la creazione di un riferimento DataCache con ogni richiesta era poco costosa una volta passati al pooling delle connessioni della cache. – SemanticZen
Tuttavia, abbiamo rilevato che il caching non risolveva i nostri problemi sottostanti che erano correlati alle prestazioni di SQL Azure, quindi non usiamo più Azure. Se è necessario un database transazionale ad alte prestazioni, si dovrebbe avere problemi con SQL Azure. Se si dispone di un sistema di gestione dei contenuti (vale a dire soprattutto letture), suppongo che il caching dovrebbe risolvere i vostri problemi. – SemanticZen