C# Класс Platform.Data.Core.Pairs.UInt64Links.Transaction

Другие варианты реализации транзакций (атомарности): 1. Разделение хранения значения связи ((Source Target) или (Source Linker Target)) и индексов. 2. Хранение трансформаций/операций в отдельной Links базе данных, но дополнительно потребуется решить вопрос со ссылками на внешние идентификаторы, или как-то иначе решить вопрос с пересечениями идентификаторов. Где хранить промежуточный список транзакций? В оперативной памяти: Минусы: 1. Может усложнить систему, если она будет функционировать самостоятельно, так как нужно отдельно выделять память под список трансформаций. 2. Выделенной оперативной памяти может не хватить, в том случае, если транзакция использует слишком много трансформаций. -> Можно использовать жёсткий диск для слишком длинных транзакций. -> Максимальный размер списка трансформаций можно ограничить / задать константой. 3. При подтверждении транзакции (Commit) все трансформации записываются разом создавая задержку. На жёстком диске: Минусы: 1. Длительный отклик, на запись каждой трансформации. 2. Лог транзакций дополнительно наполняется отменёнными транзакциями. -> Это может решаться упаковкой/исключением дублирующих операций. -> Также это может решаться тем, что короткие транзакции вообще не будут записываться в случае отката. 3. Перед тем как выполнять отмену операций транзакции нужно дождаться пока все операции (трансформации) будут записаны в лог.
Наследование: DisposableBase
Показать файл Открыть проект

Открытые методы

Метод Описание
Commit ( ) : void
Transaction ( UInt64Links links ) : System

Защищенные методы

Метод Описание
DisposeCore ( bool manual ) : void

Приватные методы

Метод Описание
Revert ( ) : void

Описание методов

Commit() публичный Метод

public Commit ( ) : void
Результат void

DisposeCore() защищенный Метод

protected DisposeCore ( bool manual ) : void
manual bool
Результат void

Transaction() публичный Метод

public Transaction ( UInt64Links links ) : System
links UInt64Links
Результат System