Вопросы по теме 'stm'

Как мне сделать программу clojure STM постоянной?
Я пишу программу clojure, которая использует STM. На данный момент я заполняю STM (используя ссылки) при запуске из базы данных, а затем асинхронно обновляю базу данных всякий раз, когда транзакция dosync завершается успешно. Я понятия не имею,...
3064 просмотров
schedule 23.05.2022

Использование агентов для выполнения побочных эффектов в транзакциях STM
Я знаю, что, как правило, нежелательно размещать функции с побочными эффектами в транзакциях STM, поскольку они потенциально могут быть повторены и вызваны несколько раз. Однако мне приходит в голову, что вы можете использовать агенты, чтобы...
1293 просмотров
schedule 21.07.2023

Как я могу увидеть количество откатов в моем STM в Clojure?
Как я могу увидеть количество откатов в моем STM в Clojure?
460 просмотров
schedule 08.05.2023

Программная транзакционная память + Spring
Можно ли интегрировать Spring с программной транзакционной памятью, чтобы я мог откатить все транзакции объектов и БД вместе при вызове метода исключения. Мне нужны возможности Spring + Deuce STM или Spring + Multiverse STM. Моя конечная цель -...
524 просмотров
schedule 14.06.2022

Оптимистичное чтение и блокировка STM (программной транзакционной памяти) с помощью C / C ++
Я проводил некоторые исследования реализаций STM (программной транзакционной памяти), в частности алгоритмов, которые используют блокировки и не зависят от наличия сборщика мусора, чтобы поддерживать совместимость с неуправляемыми языками, такими как...
1033 просмотров
schedule 18.01.2023

Clojure: идиоматическое использование атома и ссылки?
Я разрабатываю немного кода Clojure, который будет ссылаться на карту и увеличивать пару значений ключа на карте. Я думаю, что правильно использую ref, но я не уверен насчет атома. Нужно ли использовать swap! быть более идиоматичным? Я новичок в...
2553 просмотров
schedule 06.06.2024

STM.NET против Clojure STM
Мне интересно, как это возможно, что Clojure реализовала транзакционную память программного обеспечения и не видит в этом никаких проблем, в то время как Microsoft не закончила свою работу над C# и заметила некоторые проблемы, которые делают...
1078 просмотров
schedule 12.06.2023

Остановить потоки от чередования вывода
Следующая программа создает два потока, работающих одновременно, каждый из которых приостанавливается в течение случайного промежутка времени, прежде чем вывести строку текста на стандартный вывод. import Control.Concurrent import Control.Monad...
450 просмотров
schedule 28.05.2022

Проверка в транзакциях STM, вложенных с orElse
Эта страница с комментариями описывает множество мелких деталей STM в GHC, но я хотел бы прояснить пару моментов. Во-первых , становится ли вложенная транзакция недействительной при изменении переменных, доступ к которым осуществляется в...
217 просмотров
schedule 02.01.2024

Как заставить долго выполняющиеся транзакции быстро завершаться сбоем в clojure
Предполагая, что ссылка в следующем коде изменена в других транзакциях, а также в приведенной ниже, я беспокоюсь о том, что эта транзакция будет выполняться до тех пор, пока не придет время фиксации, завершится ошибкой при фиксации, а затем повторно...
131 просмотров
schedule 28.11.2022

Состояние гонки в Clojure stm?
Здравствуйте, я читал книгу Joy of clojure, и в разделе о STM у них есть изображение двух транзакций, где A изначально получает то же значение из ссылки, что и B, а затем обе транзакции A и B выполняют свои вычисления, но завершает A сначала и делает...
227 просмотров
schedule 30.06.2023

Есть ли ошибка в системе Zookeeper Watches или это ограничение теоремы CAP?
Zookeeper Watches содержит документацию : «Клиент увидит событие просмотра для znode, за которым он наблюдает, прежде чем увидит новые данные, соответствующие этому znode». Кроме того, «Поскольку часы — это одноразовые триггеры, и между...
267 просмотров

STM с fclabels
Я создал небольшой игровой движок для управления доской из квадратов (в настоящее время используется для игры в жизнь Конвея). Доступ ко всем данным осуществляется через линзы из fclabels и State. Движок объединяет пользовательский ввод и...
93 просмотров
schedule 04.05.2022

Дружественный к STM список как журнал изменений
Мне нужен совет по структуре данных для использования в качестве атомарного журнала изменений. Я пытаюсь реализовать следующий алгоритм. Существует поток входящих изменений, обновляющих карту в памяти. В Haskell-подобном псевдокоде это...
157 просмотров
schedule 02.05.2022

Понимание свойств STM в Clojure
Я просматриваю книгу 7 concurrency models in 7 weeks . В нем философы представлены в виде числа ref : (def philosophers (into [] (repeatedly 5 #(ref :thinking)))) Состояние каждого философа переключается между :thinking и :eating с...
162 просмотров
schedule 30.09.2022

Странное поведение clojure ref
У меня есть 100 рабочих (агентов), которые совместно используют один ref , содержащий набор задач. Пока в этой коллекции есть задачи, каждый воркер получает одну задачу из этой коллекции (в блоке dosync ), распечатывает ее и иногда кладет обратно в...
203 просмотров
schedule 28.06.2022

Ожидание, пока файл перестанет модифицироваться
Я пытаюсь использовать hinotify и STM, чтобы создать простую концепцию: Блокировать поток выполнения до тех пор, пока отслеживаемый файл не прекратит изменяться. Продолжить, как только модификации прекратятся или их интервал превысит...
164 просмотров
schedule 17.01.2023

Clojure alter update-in возвращает nil, а dosync не позволяет повторяться
РЕДАКТИРОВАТЬ: dosync сам создает функцию, поэтому вызовы recur интерпретируются как вызовы, сделанные сгенерированной dosync функцией. Это след функции, которую я на самом деле сделал. Сделал как можно проще, я думаю. (defn...
110 просмотров
schedule 21.02.2023

Clojure: коммутация перед изменением в рамках одной транзакции приводит к сбою транзакции
Я новичок в Clojure и пытаюсь понять его модель транзакций. Играя с alter и commute , я заметил, что если я alter ref после commute , то транзакция ничего не зафиксирует (или ничего не изменит). Например: (def counter (ref 0)) (def i...
88 просмотров
schedule 06.06.2022

Пример перевода денег с банковского счета в clojure
Я новичок в clojure и пытаюсь реализовать классический пример параллелизма, также известный как bank account transfer . Я хочу реализовать это с помощью transactional memory . Вот пример в java static class Account { private double...
293 просмотров
schedule 04.01.2024