Die Windows Azure Caching Document sagtauf die neue Azure Caching Anschluss (DataCache-, DataCacheFactory & Connection Pooling)
Wenn möglich, speichern und die gleiche DataCacheFactory Objekt wiederverwenden Speicher zu sparen und die Leistung zu optimieren.“
Hat jemand irgendwelche Metriken oder eine Quantifizierung gesehen, wie teuer ist das?
"MaxConnectionsToServer Einstellung ... bestimmt die Anzahl der Chennels pro DataCacheFactory, die in den Cache-Cluster geöffnet werden."
Also, wenn MaxConnectionsToServer = 1 und DataCacheFactory ein Singleton in Ihrer Anwendung ist, dann Sie haben Synchronisiert effektiv alle Anfragen an Ihren Webserver!
Jedoch thereis alot der Hinweis, dass DataCacheFactory ein Singleton sein sollte (d. H. In Application_OnStart).
Dies ist kritisch und ich kann nicht glauben, dass es nicht in der Microsoft-Dokumentation ist. Wird die DataCacheFactory in AppFabric, Azure Shared Caching und Azure Caching gleich behandelt? Es fällt mir nur schwer zu glauben, dass Microsoft das Caching so konzipiert hat, dass ein Singleton-Factory-Objekt benötigt wird. Dies erfordert, dass jeder, der SqlConnection verwendet, ein Singleton-SqlConnectionFactory-Objekt in seiner Anwendung verwendet.
also einen relativ durchschnittlichen Web-App unter Berücksichtigung (zum Beispiel 1000e Anfragen pro Stunde, ~ 100 Objekte im Cache, die durchschnittliche Anforderung zuzugreift 5 zwischengespeicherten Objekte):
- standardmäßig (und Empfehlung) Wie viele Factory Objekte sollte es auf einmal geben?
- Wie lange dauert es, eine DataCacheFactory-Referenz zu erstellen?
- Wie lange dauert es, eine DataCache-Referenz zu erstellen?
- Sollte ihr nur 1 DataCacheFactory-Objekt pro App und nur 1 DataCache-Referenz pro Anfrage sein?
EDIT (Antworten in progress):
(1/2). Lassen Sie Azure Connection Pooling die Factory-Objekte behandeln
(3). Noch Test ...
(4). Versuchen Sie noch herauszufinden, ob ich DataCache-Referenzen wiederverwenden sollte
Gibt es irgendwelche Updates zu questin 3/4? Erstellen Sie für jede Anforderung einen DataCache? – Robar
Robar, wir fanden, dass das Erstellen einer DataCache-Referenz mit jeder Anfrage kostengünstig war, sobald wir zum Cache-Verbindungs-Pooling übergingen. – SemanticZen
Wir haben jedoch festgestellt, dass das Caching die zugrunde liegenden Probleme, die mit der SQL Azure-Leistung zusammenhingen, nicht löste, sodass wir Azure nicht mehr verwenden. Wenn Sie eine leistungsstarke Transaktionsdatenbank benötigen, erwarten Sie Probleme mit SQL Azure. Wenn Sie ein Content-Management-System haben (d. H. Meist liest), würde ich denken, Caching sollte Ihre Probleme lösen. – SemanticZen