Мохнатые уроды и моральные пёзды. Войти !bnw Сегодня Клубы
Есть у меня хранилище которое содержит кусок данных. Суть в том, что треды могут почитать эти данные или модифицировать эти данные. Считается что если данные изменились то это гарантировано навсегда^W^Wзаписано в лог и в случае перезапуска системы всё будет восстановлено. Также читатели не получают доступа к изменённой версии данных до тех пор пока изменения не будут зафиксированы в логе (чтобы не напринимать решений на основании событий, которые потом нельзя будет восстановить). Вопрос в том давать ли возможность читать старую версию структуры пока идёт запись транзакции в лог или притормаживать читателей до тех пор пока она не обновиться.
#CC2XLY / @ndtimofeev / 3066 дней назад

Сделай самый простой вариант, потом если что поправишь.
#CC2XLY/M4M / @l29ah / 3066 дней назад
@l29ah Этот момент корректируется гвардом в STM'е: в одном случае он в начале юзерской транзакции и просто блокирует её до тех пор пока не закончится запись, а в другом в конце и блокирует фиксацию если исходная и конечная структура различается.
#CC2XLY/EXA / @ndtimofeev --> #CC2XLY/M4M / 3066 дней назад
@ndtimofeev Кстати, где бы почитать про работу retry? В каких случаях оно дешёвое, а в каких дорогое? Типа, например, как это всё на фьютексы/сигналы ложится?
#CC2XLY/O82 / @l29ah --> #CC2XLY/EXA / 3066 дней назад
А нельзя отдать старую версию и намекнуть через сколько примерно за новой зайти?
#CC2XLY/W58 / @anarchy / 3066 дней назад
@l29ah В смысле дешёвое-дорогое? Работа retry простая как валенок: транзакция отменяется, тред лочится до тех пор пока кто-то из TVar'ов транзакции не будет изменён.
#CC2XLY/2Z7 / @ndtimofeev --> #CC2XLY/O82 / 3066 дней назад
@ndtimofeev То есть если у меня десять тыщ раз меняется нерелевантная конкретному retry, но участвующая в транзакции тварь, он будет попусту дрочиться?
#CC2XLY/WRR / @l29ah --> #CC2XLY/2Z7 / 3066 дней назад
@l29ah Насколько я понимаю — да. То есть я не уверен относительно того блокируется ли тред на изменение вообще всех транзакционных переменных в транзакции или только тех которые транзакция успела почитать прежде чем зафейлится, но то что тред будет избыточно просыпаться это точно.
#CC2XLY/96Z / @ndtimofeev --> #CC2XLY/WRR / 3066 дней назад
@anarchy Можно просовывать пометку что вот сейчас вот идёт транзакция и можно в принципе подождать пока она кончится, но почему-то коробит.
#CC2XLY/EU1 / @ndtimofeev --> #CC2XLY/W58 / 3066 дней назад
ipv6 ready BnW для ведрофона BnW на Реформале Викивач Котятки

Цоперайт © 2010-2016 @stiletto.