Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to implement a memory transaction scope in C#?

we have a cache which I would like to put some transaction scopes around so that any process have to explicitly 'commit' the changes it wants to do to the cached objects and make it possible to rollback any changes when the process fails halfway as well.

Right now, we're deep cloning the cached objects on get requests, it works but it's not a clean solution and involves a fair bit of maintenance too.

I remember hearing about some MTS (memory transaction scope) solution on .NetRocks a while back but can't remember the name of it! Does anyone know of a good MTS framework out there? Alternatively, if I was to implement my own, are there any good guidelines/patterns on how to do this?

Thanks,

EDIT : got my abbreviation completely wrong! It should have been STM, Software Transaction Memory

like image 904
theburningmonk Avatar asked Mar 25 '10 17:03

theburningmonk


1 Answers

It sounds like you're remembering the discussion of Software Transactional Memory from .NET Rocks.

Unfortunately, there isn't a released, working, usable framework for this (yet). This is still a research project in DevLabs (STM.NET).

At this point in time, your cloning option is probably still the best approach, at least for any non-research or commercial application.

like image 118
Reed Copsey Avatar answered Oct 25 '22 01:10

Reed Copsey