Re[5]: Software transactional memory
От: Cyberax Марс  
Дата: 10.01.07 22:15
Оценка:
palm mute wrote:
> C> Проблемы в том, что простое изменение
> C>одного узла в цикле может потребовать хранить в транзакции все узлы, на
> C>которые он ссылается.
> C>Я уже об этом писал: http://rsdn.ru/Forum/?mid=2209784
Автор: Cyberax
Дата: 11.11.06

> После беглого осмотра ссылки я не понял, как она связана с транзакциями.
К примеру, у нас есть цепь объектов:
A->B->C->D- - ->A (замкнутая цепь)


Мы создаем транзакцию и меняем в ней объект B (обозначу его B*).

То есть с точки зрения клиента в этой транзакции у нас будет такая ситуация:
A->B*->C->D - - ->A


Но как это сделать так, чтобы клиенты вне транзакции видели старое
состояние? Если мы просто создадим B*, то у нас будет:
    B*->C->D - - ->A
A->B---I


Надо как-то поменять ссылку с B на B* в A. Меняем:
A*->B*->C->D - - ->A
A-->B---I


Теперь точно так же придется поменять C и D. То есть мы склонируем весь
цикл.

Теперь понятнее?
Posted via RSDN NNTP Server 2.0
Sapienti sat!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.