ASP.NET – Umgang mit relationalen Daten in einem verteilten Cache

Von Iqbal Khan

Das Microsoft .NET Framework ist für die Entwicklung einer Reihe von Anwendungen mit hohem Transaktionsaufkommen beliebt geworden, darunter Web, serviceorientierte Architektur (SOA), Hochleistungs-Computing oder Grid-Computing und Cloud-Computing. Alle diese Anwendungsarchitekturen sind skalierbar. Ein großer Engpass tritt jedoch in der Datenspeicherung auf – normalerweise eine relationale Datenbank – die nicht in der Lage ist, die erhöhte Transaktionslast zu skalieren und zu bewältigen, die die Anwendungsebene bewältigen kann.

Infolgedessen wird das verteilte Caching immer beliebter, da es Ihnen ermöglicht, Daten in einem In-Memory-Cache zwischenzuspeichern, auf den viel schneller zugegriffen werden kann als auf jede Datenbank. Außerdem bietet das verteilte Caching eine lineare Skalierbarkeit über mehrere Cache-Server hinweg. Mit linearer Skalierbarkeit können Sie dem verteilten Cache-Cluster weitere Cache-Server hinzufügen, wenn Sie eine größere Transaktionslast bewältigen müssen. Der inkrementelle Gewinn an Transaktionskapazität nimmt nicht ab, wenn Sie weitere Server hinzufügen (es ist eine gerade Linie in einem XY-Diagramm, wobei X die Anzahl der Cache-Server und Y die Transaktionskapazität ist). Abbildung 1 zeigt, wie verteiltes Caching in eine typische ASP.NET- oder Windows Communication Foundation (WCF)-Anwendung passt und wie es lineare Skalierbarkeit bietet.

Den ganzen Artikel lesen

In diesem Artikel bespreche ich, wie Entwickler beim Zwischenspeichern ihrer Daten mit Datenbeziehungen umgehen sollten.

Obwohl verteiltes Caching großartig ist, stellt es eine Herausforderung dar, relationale Daten zwischenzuspeichern, die verschiedene Beziehungen zwischen Datenelementen aufweisen. Dies liegt daran, dass ein verteilter Cache Ihnen eine einfache, Hashtable-ähnliche Schnittstelle (Schlüssel, Wert) bietet, bei der der „Schlüssel“ ein zwischengespeichertes Element eindeutig identifiziert und der „Wert“ Ihre Daten oder Ihr Objekt sind. Ihre Anwendung verfügt jedoch wahrscheinlich über ein komplexes Domänenobjektmodell mit Vererbung, Aggregation und anderen Arten von Beziehungen.

Darüber hinaus speichert ein verteilter Cache einzelne zwischengespeicherte Elemente separat, was sich von der Datenbank unterscheidet, in der Beziehungen zwischen verschiedenen Tabellen bestehen. Normalerweise gibt es in einem typischen verteilten Cache keine Beziehungen zwischen den verschiedenen zwischengespeicherten Elementen. Das stellt .NET-Anwendungsentwickler vor eine Herausforderung. Mit anderen Worten: Sie stehen vor der Herausforderung, viele Beziehungsinformationen in Ihrer Anwendung zu verfolgen, um sicherzustellen, dass Sie Beziehungen im Cache korrekt verarbeiten und gleichzeitig die Vorteile des verteilten Caching nutzen können.

Den ganzen Artikel lesen
© Copyright Alachisoft 2002 - Alle Rechte vorbehalten NCache ist eine eingetragene Marke der Diyatech Corp.