Вопросы по теме '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 просмотров
schedule
23.06.2022
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