Подтвердить что ты не робот

Библиотека журнала транзакций

Мне нужна библиотека журнала транзакций со следующими функциями:

  • максимальная производительность. Никакой силы (флеш), пусть O/S записывает буферы по своему усмотрению. Размер файла увеличивается в больших кусках, чтобы свести к минимуму изменения метаданных. Мне все равно, потеряны ли какие-то последние записи.

    • чтение записей в обратном порядке (последнее из первых).

Проблема в том, как найти последнюю действительную запись при чтении файла журнала? Какую технику можно использовать или есть готовая библиотека с открытым исходным кодом?

4b9b3361

Ответ 1

Вы проверили, соответствует ли HOWL - высокоскоростной ObjectWeb Logger? Он довольно устаревший и, похоже, не позволяет произвольный доступ или чтение назад. Тем не менее, он поддерживает установку знака и воспроизведение событий с отметки. Поскольку он является открытым исходным кодом, он может быть адаптирован к вашим потребностям.

Вы также можете исследовать, если подходит каротажная часть JBoss Transaction.

Просьба указать, что вы имеете в виду "читать назад" через журнал транзакций . Журнал транзакций может содержать журналы из нескольких транзакций, каждая из которых состоит из последовательности событий.

Более подробную информацию о регистрации транзакций можно найти здесь (и в Интернете, конечно):

  • Обработка транзакций Java: проектирование и внедрение (ISBN 978-0130352903)
  • Основы транзакционных информационных систем: теория, алгоритмы и практика Concurrency Управление и восстановление (ISBN 978-1558605084)
  • Принципы обработки транзакций (ISBN 978-1558606234)
  • и в различных книгах о концепциях системы баз данных

Надеюсь, это поможет немного приблизиться к вашей цели.

Майкл

Ответ 2

Большинство известных систем ведения журналов (например, log4j и apache) поддерживают различные виды механизаций протоколирования, вам просто нужно их правильно настроить. Но, если вы хотите зайти в обратную сторону, это действительно ресурс, потому что потоки являются последовательными, и вы должны вводить новую запись в начало всех других записей. Также, вероятно, вы должны сделать большую часть кода регистрации самостоятельно.