首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于持久消息的kaha db消息存储区

用于持久消息的kaha db消息存储区
EN

Stack Overflow用户
提问于 2012-10-10 09:26:50
回答 2查看 3.6K关注 0票数 1

我知道db-xx.log是日志文件,db.redo是引用文件?

db-xx.log存储尚未使用的消息。这些消息将在使用后从db-xx.log中删除。db.redo通过消息id存储消息引用(这些消息存储在db-xx.log中)。

  1. 但是,db.data和db.free是什么?
  2. 他们的职能是什么?

我的理解是,代理首先将消息存储在缓存中(这是易失性内存),然后当检查点或缓存大小满时,这些消息被移动(附加)到db-xx.log。

  1. 对吗?

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-10-10 14:16:15

db.data保存引用未消耗消息的btree页面。db.redo是要对db.data执行的更新的重做日志。db.free跟踪db.data中的空闲页面。

票数 5
EN

Stack Overflow用户

发布于 2013-02-10 05:28:12

db.redo是索引(db.data)的恢复文件。在activemq开始时,db.free被读取并加载到内存中。一旦空闲列表加载到内存中,文件就会被删除。卸载消息数据库后,空闲列表将被写回db.free。

删除消息后,队列/主题的行为就不同了。

  • 如果是队列,它将从索引文件中删除。B-树结构将相应修改。
  • 在主题的情况下,只有当消息被所有的子类确认时,它才会被删除。
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12816098

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档