светлое будущее
Mike Potanin potan
Previous Entry Share
Транзакционная память и backtracking
Во многих задачах требуется модифицировать какую-то структуру, посмотреть что получилось, и, если не понравится, откатить все изменения.
Но транзакционная память делает почти то же самое. Ее можно слегка модифицировать, позволив при попытке завершения транзакции сравнить свою метрику с метриками других ожидающих завершения транзакций и выполнить только самую удачную.
Известны ли попытки так ее использовать?
По моему этот подход мог бы сделать более эффективными языки типа Prolog или LIFE.

чё-то даже википузия не знает про язык LIFE.. маловероятно, что им занимался хоть кто-то, кроме совсем крошечкой кучки (один-два) энтузязистов

Я только одного нашел. ;-)
Но все равно буду рад, если удасться его эффективнее реализовать, уж больно мне LIFE понравился.

(Deleted comment)
Ну да, по этому я и написал "почти". Надо будет "слегка" расширить.

Я давеча прочёл про такую память, она вроде именно это самое и делает, без почти - atomically + orelse + retry. Или не получится из этих кубиков сложить слово Вечность?

Для реализации бектрекинга нужна вложенность транзакций, а в известных аппаратных реализациях (про IBM BlueGene не знаю) ее нет.

Спасибо.

А то, что люди в Beautiful concurrency пишут, что реализуется блочная структура vs goto-like mutex'ы - это всё мечты или реальность? (я только читаю, совершенно не понимаю, что есть, а что - мечты).

Или я тут не рублю в другом месте - вам нужно, чтобы весь блок atomically был железный, а он софтовый?

?

Log in