Как реализовать объем транзакции памяти в C #? - PullRequest
6 голосов
/ 25 марта 2010

у нас есть кеш, который я хотел бы поместить в некоторые области транзакций, чтобы любой процесс должен был явно «зафиксировать» изменения, которые он хочет сделать, в кэшированных объектах и ​​сделать возможным откат любых изменений, когда процесс завершается с ошибкой на полпути а также.

В данный момент мы глубоко клонируем кешированные объекты при получении запросов, это работает, но это не чистое решение и требует значительного объема обслуживания.

Я помню, что слышал о каком-то решении MTS (объем транзакции памяти) на .NetRocks некоторое время назад, но не могу вспомнить его название! Кто-нибудь знает о хорошей структуре МТС там? В качестве альтернативы, если бы я должен был реализовать свои собственные, есть ли хорошие руководящие принципы / шаблоны, как это сделать?

Спасибо

РЕДАКТИРОВАТЬ: получил мою аббревиатуру совершенно неправильно! Это должен был быть STM, Software Transaction Memory

1 Ответ

3 голосов
/ 25 марта 2010

Похоже, вы помните обсуждение Программной транзакционной памяти от .NET Rocks.

К сожалению, пока нет выпущенной, работающей, пригодной для использования инфраструктуры. Это все еще исследовательский проект в DevLabs ( STM.NET ).

На данный момент ваш вариант клонирования, вероятно, все еще является лучшим подходом, по крайней мере для любого неисследовательского или коммерческого применения.

...