Datenklassifikation (AppFabric 1.1-Cache)
Durch Auswählen der geeigneten Datentypen zum Zwischenspeichern in Ihrer Anwendung können Sie optimal von von den Cachefunktionen von Microsoft AppFabric 1.1 für Windows Server profitieren. Daten können verschiedene Formen annehmen und in verschiedenen Schichten der Anwendung vorliegen. Durch verteilte Caches können verschiedene Arten von Daten einfach verwaltet und abgerufen werden, trotz der Einschränkungen durch Dienstgrenzen und semantische Unterschiede.
Die meisten Anwendungen verwenden für alle Dateninstanzen eine einzelne Quelle. Beispielsweise erfordern die in der primären Datenbank einer Anwendung gespeicherten Daten ein hohes Maß an Datenkonsistenz und -integrität, und es werden Schritte unternommen, um sicherzustellen, dass jeder Datenpartikel eindeutig ist. Daten auf der mittleren Schicht und von Geschäftslogik gesteuerte Daten stellen normalerweise eine Kopie von Quelldaten dar und können mit anderen Informationspartikeln strukturiert werden, um auf der Darstellungsschicht nützlich zu sein. Insbesondere diese Kopien auf der mittleren Schicht eigenen sich für das Caching.
Ein Verständnis der verschiedenen Typen von Daten hilft, die möglichen Grade der Zwischenspeicherung (Caching) zu definieren. Wie aus der folgenden Tabelle ersichtlich, bestehen drei Arten von Daten, die sich für die verteilte Zwischenspeicherung eignen: Referenz, Aktivität und Ressource.
Datentyp | Zugriffsmuster |
---|---|
Referenz |
Freigegebenes Lesen |
Aktivität |
Exklusives Schreiben |
Ressource |
Freigegeben, paralleles Lesen und Schreiben aus der und in die Entität, Zugriff durch eine große Anzahl von Transaktionen |
Referenzdaten
Referenzdaten sind eine Version von Quelldaten, die sich nur selten ändern. Entweder eine direkte Kopie der Originaldaten oder aus mehreren Datenquellen aggregiert und transformiert. Referenzdaten werden regelmäßig aktualisiert, normalerweise zu konfigurierten Intervallen oder wenn sich Daten ändern.
Da sich Referenzdaten nicht häufig ändern, stellen Sie einen idealen Kandidaten für Zwischenspeicherung dar. Statt Berechnungsressourcen zum erneuten Aggregieren und Umwandeln von Referenzdaten bei jeder Anwendung aufzuwenden, können Referenzdaten im Cache gespeichert und für nachfolgende Anforderungen erneut verwendet werden. Das übergreifende Zwischenspeichern von Referenzdaten über mehrere Anwendungen oder Benutzer in dieser Weise kann helfen, die Skalierbarkeit und Leistung von Anwendungen zu verbessern.
Beispiele für Referenzdaten schließen Flugpläne und Kataloge ein. Betrachten Sie beispielsweise eine Kataloganwendung, die Produktinformationen über mehrere Anwendungen und Datenquellen zusammenfasst. Der häufigste Vorgang bei Katalogdaten ist ein freigegebener Lesezugriff: Navigation. Bei einem Navigationsvorgang in Katalogen wird über eine Vielzahl von Produktdaten iteriert. Die Daten werden gefiltert, personalisiert und schließlich in ausgewählter Form einer großen Benutzeranzahl präsentiert.
Da Navigationsvorgänge viel Ressourcen beanspruchen können, eignen sind Katalogdaten dieser Art ideal für die Zwischenspeicherung. Wenn sie nicht zwischengespeichert werden, können diese Vorgänge die Datenquelle unnötig belasten und Antwortzeit und Durchsatz der Anwendung erheblich beeinträchtigen.
Das Zwischenspeichern der Daten näher an der Anwendung kann Leistung und Skalierbarkeit erheblich verbessern. Zu diesem Zweck stellt AppFabric die lokale Cachefunktion bereit. Weitere Informationen finden Sie unter Cacheclients und lokaler Cache (AppFabric 1.1-Cache)
Aktivitätsdaten
Aktivitätsdaten werden als Teil einer Geschäftstransaktion durch eine ausführende Aktivität erzeugt. Die Daten entstehen im Rahmen einer Geschäftstransaktion. Beim Abschluss der Geschäftstransaktion werden die Daten inaktiv in der Datenquelle als Verlaufs- oder Protokollinformationen gespeichert.
Beispiele für Aktivitätsdaten schließen Bestellungen, Sitzungsstatus von Anwendungen oder Online-Einkaufswagen ein. Betrachten Sie als Beispiel die Einkaufswagendaten in einer Onlinebestellanwendung. Jeder Einkaufswagen ist für jede Online-Einkaufssitzung exklusiv und stellt seine eigene individuelle Datensammlung dar. Während der Einkaufssitzung wird der Einkaufswagen zwischengespeichert und mit den ausgewählten Produkten aktualisiert. Der Einkaufswagen ist nur im Kontext der Einkaufstransaktion sichtbar und verfügbar. Beim Auschecken wird der Einkaufswagen aus dem Cache zurückgezogen und für die weitere Verarbeitung an eine Datenquellenanwendung übergeben, sobald der Zahlvorgang abgeschlossen ist. Nach dem Verarbeiten der Geschäftstransaktion durch die Datenquellenanwendung werden die Einkaufswageninformationen zu Überwachungs- und Protokollzwecken protokolliert.
Während die Einkaufssitzung aktiv ist, erfolgen Zugriffe auf den Einkaufswagen sowohl für Lese- als auch für Schreibaktivitäten, jedoch wird der Einkaufswagen nicht freigegeben. Der exklusive Zugriff auf die Aktivitätsdaten macht sie für die verteilte Zwischenspeicherung geeignet.
Die Skalierungsanforderungen für einen verteilten Cache, der Aktivitätsdaten speichert, bestehen darin, dass er imstande sein muss, eine Vielzahl einzelner Datensammlungen zu verarbeiten und die Vorgänge zu unterstützen, die diese Sammlungen betreffen. Damit eine gute Skalierbarkeit der Anwendung unterstützt werden kann, müssen diese Datensammlungen im Cachecluster verteilt werden.
Da die Datensammlungen nicht freigegeben sind, können die einzelnen Datensammlungen über den verteilten Cache verteilt und auf separaten Cachehosts gespeichert sein. Durch dynamisches Erweitern des verteilten Caches um weitere Cachehosts kann die Anwendung skalieren, um einer erhöhten Nachfrage gerecht zu werden.
Mit den Cachefunktionen von AppFabric-Cache kann ein Bereich für jede der einzelnen Datensammlungen erstellt werden. Bereiche stellen eine umfangreiche Sammlung tagbasierter Vorgänge für das Arbeiten mit Datensammlungen bereit. Weitere Informationen finden Sie unter Tagbasierte Methoden.
AppFabric ermöglicht außerdem die Verwaltung des Sitzungsstatus von ASP.NET-Webanwendungen. Weitere Informationen finden Sie unter Vorgehensweise: Konfigurieren eines Sitzungsstatusanbieters (XML)
Ressourcendaten
Sowohl Referenzdaten (freigegebene Lesezugriffe) als auch Aktivitätsdaten (exklusive Schreibzugriffe) eignen sich ideal für die Zwischenspeicherung. Aber nicht alle Anwendungsdaten fallen in diese zwei Kategorien. Es gibt auch Daten, die freigegeben sind, auf die parallel lesend und schreibend und von einer Vielzahl von Transaktionen zugegriffen wird. Derartige Daten werden als Ressourcendaten bezeichnet.
Beispiele für Ressourcendaten schließen Benutzerkonten und Auktionselemente ein. Betrachten Sie als Beispiel ein Auktionselement. Das Auktionselement schließt die Beschreibung des Elements und die aktuellen Gebotsinformationen (wie etwa das aktuelle Gebot, die Person des Bieters usw.) ein. Die Gebotsinformationen sind flüchtig, für jedes Gebot eindeutig, und auf sie wird parallel von einer großen Benutzeranzahl für Lese- und Schreibvorgänge zugegriffen. Die Geschäftslogik wird nahe an den Ressourcendaten zwischengespeichert.
Zum Zweck der Nachverfolgung werden Ressourcendaten häufig in OLTP-Datenquellen (Online Transaction Processing, Onlinetransaktionsverarbeitung) gespeichert und in der Anwendungsschicht zwischengespeichert, um die Leistung zu verbessern und Berechnungsressourcen für die Datenquelle(n) freizugeben. Im Auktionsbeispiel wird durch die Zwischenspeicherung der Gebotsdaten auf einem einzelnen Computer eine gewisse Leistungsverbesserung realisiert, für umfangreiche Auktionen kann ein einzelner Cache jedoch nicht den erforderlichen Umfang oder die gewünschte Verfügbarkeit bereitstellen. Zu diesem Zweck können einige Typen von Daten partitioniert und in mehreren über den verteilten Gesamtcache verteilten Caches repliziert werden. Da jedoch bestimmte Arten von Daten freigegeben sind und parallel aktualisiert werden, muss die Cachekonsistenz innerhalb des gesamten Clusters aufrecht erhalten werden.
Verteilen Sie zum Optimieren der Skalierbarkeit die Ressourcendaten soweit wie möglich, und schränken Sie die Verwendung von Bereichen ein. Wenn Sie Bereiche verwenden, platzieren Sie Ihre Daten in verschiedenen Bereichen, um eine Verteilung der Daten im Cachecluster zu ermöglichen.
AppFabric unterstützt sowohl optimistische als auch pessimistische Parallelitätsvorgänge. Weitere Informationen finden Sie unter Parallelitätsmodelle (AppFabric 1.1-Cache).
Siehe auch
Konzepte
Diagramm der physischen Windows Server AppFabric-Cachearchitektur (AppFabric 1.1-Cache)
Diagramm der logischen Windows Server AppFabric-Cachearchitektur (AppFabric 1.1-Cache)
2012-03-05