【问题标题】:Transaction log library事务日志库
【发布时间】:2012-09-22 00:54:38
【问题描述】:

我需要具有以下功能的事务日志库:

  • 最高性能。不强制(刷新),让 O/S 自行决定写入缓冲区。文件大小以大块的形式增加,以最大限度地减少元数据修改。我不在乎是否丢失了一些最后的记录。

    • 按倒序读取记录(最近的在前)。

问题是,如何在读取日志文件时找到最后一条有效记录?可以使用哪些技术,或者是否有现成的开源库?

【问题讨论】:

  • 您需要哪些系统的日志记录?你是在编程,还是在其他东西之上安装?
  • 系统为数据流执行引擎。日志记录类型有:任务开始、任务发送消息、任务结束。
  • 既然原贴说“不,这是一个调试日志库,我需要事务日志,能够可靠地写入二进制数据,并允许反向读取。” - 我无能为力。对不起。

标签: java transaction-log


【解决方案1】:

您是否检查过HOWL - High-speed ObjectWeb Logger 是否符合您的要求?它相当过时,似乎不允许随机访问或向后阅读。但是,它支持设置标记和从标记开始重播事件。因为它是开源的,所以它可能会适应您的需求。

JBoss Transaction 的日志记录部分是否合适,您也可以调查。

请通过事务日志具体说明“向后阅读”的含义。一个事务日志可能包含来自多个事务的日志,每个事务由一系列事件组成。

关于事务日志的更多信息可以在这里找到(当然也可以在网络上找到):

  • Java 事务处理:设计和实现 (ISBN 978-0130352903)
  • 事务信息系统基础知识:并发控制和恢复的理论、算法和实践 (ISBN 978-1558605084)
  • 交易处理原则 (ISBN 978-1558606234)
  • 以及有关数据库系统概念的各种书籍

希望这有助于您更接近您的目标

迈克尔

【讨论】:

  • “向后读取”意味着能够读取最后一个事务记录,而无需从日志开始进行扫描。阅读事件的顺序无关紧要 - 预计会有少量。
【解决方案2】:

大多数著名的日志系统(如 log4j 和 apache)都支持不同类型的日志机制,您只需正确配置它们即可。但是,如果你想向后记录,它真的很消耗资源,因为流是顺序的,你应该将一个新记录推到所有其他记录的顶部。也可能您应该自己完成大部分日志记录代码。

【讨论】:

猜你喜欢
  • 2019-07-13
  • 2013-07-14
  • 1970-01-01
  • 2023-03-10
  • 2017-11-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多