In der Vergangenheit haben Experten versucht, Leistungsengpässe durch die Verwendung von System-Caches zu beseitigen, aber mit dem Anstieg des Benutzerverkehrs ist der Bedarf an Hochgeschwindigkeitsanwendungen relevant geworden. Daher sind In-Memory-, linear skalierbare, verteilte Caching-Lösungen wie z NCache wird immer beliebter und verbessert sich Die Systemleistung vielfach.
Im Allgemeinen sind Anwendungen mit einer zusätzlichen Caching-Ebene in Ihrer Systemarchitektur für die Aufrechterhaltung der Two-Hop-Datenintegrität verantwortlich – bei jeder Schreibanforderung müssen die Daten sowohl im Cache als auch in der Backend-Datenquelle aktualisiert werden. Wenn Sie also über mehrere Anwendungen verfügen, die auf denselben Cache und die gleiche Datenbank zugreifen, müssen Sie Ihren Persistenzcode für alle Anwendungen duplizieren. Dies erhöht die Komplexität des Codes auf Anwendungsebene.
NCache Details NCache Durchschreibdokumente NCache Durchschreibbarer Admin-Leitfaden
Was ist Durchschreiben?
Write-Through ist eine Caching-Technik, bei der Anwendungen, die Daten in den Cache schreiben und eine Sicherungsquelle konfiguriert ist, auch die Datensätze in der Datenbank aktualisiert.
NCache bietet ein IWriteThru Schnittstelle, die Sie implementieren können, indem Sie die gesamte Persistenzcodelogik hinzufügen, die andernfalls in Ihrer Clientanwendung vorhanden gewesen wäre. Sie müssen den Code über den auf allen Cache-Servern bereitstellen NCache Webmanager.
Auf diese Weise wird bei jedem Schreibvorgang im Cache der bereitgestellte Anbieter aufgerufen und die Datenbank entsprechend Ihrer Logik aktualisiert.
Informationen zum Konfigurieren eines Durchschreibanbieters finden Sie im offiziell NCache Dokumentation des Write-Through-Anbieters.
Manchmal können Ihre Durchschreibvorgänge fehlschlagen. Dies kann verschiedene Gründe haben, beispielsweise Probleme mit der Netzwerkverbindung oder einen Fehler in der Implementierungslogik Ihrer Schnittstelle. Da Write-Through synchron ist, NCache löst eine Ausnahme für die Anwendung aus. Sie finden den Fehler auch in den Cache-Protokollen.
Darüber hinaus seit NCache stellt auch den Betriebsstatus bereit – es gibt seinen Benutzern die Flexibilität, verschiedene vorgegebene Szenarien zu bewältigen. Falls der Vorgang beispielsweise fehlschlägt und Sie ihn erneut versuchen möchten, können Sie die entsprechende Option festlegen und NCache führt die Abhebungen für Sie durch.
Weitere Einzelheiten zu diesen Vorgängen finden Sie unter NCache Docs.
Die Write-Through-Provider-Schnittstelle
Wie bereits erwähnt, NCache entlarvt eine IWriteThru Schnittstelle, die der Benutzer implementieren und dann auf der Serverseite bereitstellen soll. Der folgende Codeausschnitt zeigt IWriteThuProvider-Methoden:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
public interface IWriteThruProvider { // Perform tasks associated with freeing, releasing, or resetting resources. void Dispose(); // Perform tasks like allocating resources or acquiring connections void Init(IDictionary parameters, string cacheId); //Responsible for write operations on data source. OperationResult WriteToDataSource(WriteOperation operation); ICollection WriteToDataSource(ICollection operations); ICollection WriteToDataSource(ICollection dataTypeWriteOperations); } |
Es gibt drei Überladungen von WriteToDataSource Methode. Einer ist für atomare Datenbankaktualisierungsanfragen zuständig, während der andere Massenschreibanfragen für die Datenbank bearbeitet. NCache stellt außerdem eine Methode bereit, mit der Sie der Aktualisierung Codelogik hinzufügen können NCache-unterstützte Datenstrukturen zur Hintergrundquelle.
NCache Details Write-Through-Caching-Dokumente Konfigurieren Sie den Durchschreibanbieter
Durchschreiben in der Bewerbung
Die Front-End-Anwendung muss für jeden Schreibvorgang nur mit der Option auf den Cache zugreifen WriteThru angegeben, damit der Cache diesen Vorgang über den Write-Through-Anbieter auf die Datenbank anwendet.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
// Pre-Condition: Cache is already connected // Fetch product with the given ProductID Product product = FetchProductByProductID(1001); // Specify the key of the item string key = $"product.ProductID"; product.UnitPrice = 200; // Create a new cacheItem with the product var cacheItem = new CacheItem(product); // Enable write through for the cacheItem created var writeThruOptions = new WriteThruOptions(); writeThruOptions.Mode = WriteMode.WriteThru; // Add the item in the cache with WriteThru enabled CacheItemVersion itemVersion = cache.Insert(key, cacheItem, writeThruOptions); |
Was ist Write-Behind-Cache?
Write-Behind in einem verteilten Cache entspricht dem Write-Through-Caching, außer dass die Datenbank asynchron aktualisiert wird. Dies bedeutet, dass die Anwendung nie auf die Aktualisierung der Datenquelle warten muss, was die Anwendungsleistung erhöht, da Aktualisierungen der Backend-Datenquellen die langsamsten Anwendungsvorgänge sind.
Bitte beachten Sie, dass zwar davon ausgegangen werden kann, dass die Daten in der Datenbank aktualisiert werden, wir jedoch die Option „Durchschreiben“ empfehlen, wenn Sie mit hochsensiblen Daten arbeiten. Da es sich außerdem um einen asynchronen Mechanismus handelt, werden Fehler beim Write-Behind als Ausnahmen und Fehler in den Cache-Protokollen protokolliert, aber nicht an die Anwendung weitergeleitet. NCache bietet Optionen zur Behandlung von Fehlern auf die gleiche Weise wie beim Durchschreiben, da es auch den Vorgangsstatus zurückgibt.
Siehe die NCache docs Einzelheiten zu diesen Vorgängen finden Sie hier.
Write-Behind in Anwendungen
Write-Behind ist eine schnellere Möglichkeit, Durchschreibvorgänge durchzuführen, da es denselben Durchschreibeanbieter verwendet, jedoch asynchron. Die einzige anwendungsbezogene Änderung besteht darin, dass die Write-Through-Option als WriteBehind anstelle von WriteThru angegeben wird.
Schauen Sie sich den folgenden Beispielcode an:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
// Pre-Condition: Cache is already connected // Fetch product with the given ProductID Product product = FetchProductByProductID(1001); // Specify the key of the item string key = $"product.ProductID"; product.UnitPrice = 200; // Create a new cacheItem with the product var cacheItem = new CacheItem(product); // Enable write through for the cacheItem created var writeThruOptions = new WriteThruOptions(); writeThruOptions.Mode = WriteMode.WriteBehind; // Add the item in the cache with WriteThru enabled CacheItemVersion itemVersion = cache.Insert(key, cacheItem, writeThruOptions); |
NCache Details Write-Through-Caching-Dokumente Verwenden von Write-Behind im Cache
Zusammenfassung
Mit verteilten Caching-Lösungen wie NCache Da es jetzt Funktionen wie Write-Through und Write-Behind bietet, sind Aktualisierungen der Backend-Datenbank einfacher und besser zu verwalten. Es kapselt die gesamte Persistenzcodelogik in einem einzigen Anbieter. Dadurch können Sie die Datenbankschicht auf Anbieterebene und die Caching-Schicht auf Anwendungsebene verwalten. Also, mit NCacheerhalten Sie das Beste aus beiden Welten. Sie erhalten Caching-Leistung für Lesevorgänge und Datenpflege für Schreibvorgänge. Steigern Sie daher die Leistung Ihres Systems mit Hilfe von Unternehmenslösungen wie NCache. Kontaktieren Sie uns und lassen Sie sich von unseren Experten helfen!