Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Как реализовать transaction log c чтением в обратном порядке? / 3 сообщений из 3, страница 1 из 1
01.10.2012, 14:20
    #37978562
rfq
rfq
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как реализовать transaction log c чтением в обратном порядке?
Для программы типа workflow engine. Есть ациклический dataflow граф, растущий во аремя исполнения. Узлы принимают и отправляют сообщения друг другу. У каждого узла несколько входов. Когда на каждом входе будет по сообщению, запускается задача, которая в процессе своего исполнения посылает сообщения другим узлам. Узлы одноразовые. Логирование необходимо, чтобы при перезапуске не повторять весь счет с самого начала. Восстановление счета надо сделать с точностью до задачи, то есть внутри задачи никаких контрольных точек не предусмотрено.
Надо протоколировать:
- помещение задачи в очередь исполнения
- посылку сообщения задачей
- факт завершение задачи
Требования :
- работает асинхронно, минимально загружая процессор и подсистему ввода-вывода. Сама исполнительная система не ждет окончания записи на диск очередного события. Из-за этого придется повторять некоторые совершившиеся, но не запротоколированные события, но это не страшно, главное - сохранить целостность, чтобы результат был одинаковый как с перезапуском, так и без него.
- удлинение файла происходит большими кусками, а не на каждую запись, чтобы не тратить время на обновление метаданных файла
- чтение производится в обратном порядке - первым читается сообщение, записанное последним. Сообщения могут быть длинными и при сбоях могут быть записаны не до конца.
Проблема найти последнее валидное сообщение в хвосте файла, чтобы начать с него восстановление.
Нужна идея, или готовая библиотека, желательно на Java.
...
Рейтинг: 0 / 0
02.10.2012, 12:45
    #37979987
Нахлобуч
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как реализовать transaction log c чтением в обратном порядке?
Посмотри, как в Ruote сделано
...
Рейтинг: 0 / 0
08.10.2012, 21:12
    #37989076
Новый Год
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как реализовать transaction log c чтением в обратном порядке?
rfqДля программы типа workflow engine. Есть ациклический dataflow граф, растущий во аремя исполнения. Узлы принимают и отправляют сообщения друг другу. У каждого узла несколько входов. Когда на каждом входе будет по сообщению, запускается задача, которая в процессе своего исполнения посылает сообщения другим узлам. Узлы одноразовые. Логирование необходимо, чтобы при перезапуске не повторять весь счет с самого начала. Восстановление счета надо сделать с точностью до задачи, то есть внутри задачи никаких контрольных точек не предусмотрено.
Надо протоколировать:
- помещение задачи в очередь исполнения
- посылку сообщения задачей
- факт завершение задачи
Требования :
- работает асинхронно, минимально загружая процессор и подсистему ввода-вывода. Сама исполнительная система не ждет окончания записи на диск очередного события. Из-за этого придется повторять некоторые совершившиеся, но не запротоколированные события, но это не страшно, главное - сохранить целостность, чтобы результат был одинаковый как с перезапуском, так и без него.
- удлинение файла происходит большими кусками, а не на каждую запись, чтобы не тратить время на обновление метаданных файла
- чтение производится в обратном порядке - первым читается сообщение, записанное последним. Сообщения могут быть длинными и при сбоях могут быть записаны не до конца.
Проблема найти последнее валидное сообщение в хвосте файла, чтобы начать с него восстановление.
Нужна идея, или готовая библиотека, желательно на Java.


почитайте, как работает система с сообщениями (message-oriented middleware)
она может восстанавливаться после сбоя
там транзакции есть, как в СУБД, есть persistent / non-persistent сообщения и т.д. и т.п.
двухфазные транзакции есть для синхронизации с внешними ресурсами

вот например WMQ
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Как реализовать transaction log c чтением в обратном порядке? / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]