2010-03-25 6 views
6

wir haben einen Cache, den ich gerne einige Transaktionsbereiche herumlegen würde, so dass jeder Prozess die Änderungen, die er an den zwischengespeicherten Objekten vornehmen will, explizit "committen" muss und es möglich macht, Änderungen rückgängig zu machen, wenn der Prozess halb fehlschlägt Gut.Wie implementiert man einen Speicher Transaktionsbereich in C#?

Momentan klonen wir die gecachten Objekte auf get Anfragen, es funktioniert, aber es ist keine saubere Lösung und beinhaltet auch ein bisschen Wartung.

Ich erinnere mich an eine MTS (Memory Transaction Scope) -Lösung auf .NetRocks eine Weile zurück, aber kann mich nicht an den Namen erinnern! Kennt jemand ein gutes MTS-Framework da draußen? Alternativ, wenn ich meine eigene implementieren sollte, gibt es irgendwelche guten Richtlinien/Muster dafür, wie man das macht?

Danke,

EDIT: habe völlig falsch meine Abkürzung! Es sollte STM gewesen sein, Software Transaction Memory

Antwort

3

Es klingt, als ob Sie sich an die Diskussion von Software Transactional Memory von .NET Rocks erinnern.

Leider gibt es dafür (noch) kein freigegebenes, funktionierendes, brauchbares Framework. Dies ist noch ein Forschungsprojekt in DevLabs (STM.NET).

Zu diesem Zeitpunkt ist Ihre Klonierungsoption wahrscheinlich immer noch der beste Ansatz, zumindest für jede nicht forschende oder kommerzielle Anwendung.

+0

Danke, habe meine Abkürzung falsch herum! – theburningmonk

+0

@theburningmonk: Hoffentlich hilft das - es ist ein interessantes Projekt zum spielen, aber leider nicht ganz "da noch" ... –