Rrd 文档 总结 (三) 深入研究一下

2010年1月19日 星期二
 
 * 研究一下JRobin的实现原理

 * JRobin它自己扩展了数据类型,如RrdString、RrdInt、RrdLong、RrdDouble等!这些数据类型类型都是从RrdPrimitive这个类继承的。

 * 在RrdPrimitive中的成员变量中有一个RrdBackend类的实例和一个pointer。

 * 我们可以认为RrdBackend中包含了整个Rrd文件的所有信息,pointer 则是指向数据位置。
 
 * 我们可以根据 pointer 和 RrdBackend 去读和写数据到rrd文件。

 * *****************************************************************
 
 * RrdBackend 现在有两种真正的具体实现,一个是RrdMemoryBackend,一个是RrdNioBackend
 * RrdMemoryBackend 是将数据都存到内存中,RrdNioBackend 是将数据写到磁盘中。
 * RrdMemoryBackend 用一个byte[] buffer数据存储信息,rrd文件的所有信息都通过RrdDef的定义算出所占用的Byte,这个数目就是buffer的下标。再将数据以Byte的形式写到buffer中。 
 
 * 我们可以通过参考RrdMemoryBackend 的实现,扩展出一种新的RrdBackend,如数据库的存储方式,这样就能将rrd数据存到数据库中了。

 * 具体是,参考RrdMemoryBackend 将他的成员变量 buffer 提供出 Setter和getter方法,这样我们就能取到byte[]数组,再参考他的RrdMemoryBackendFactory类,更改他其中的方法,open exists delete 方法,将数据存到数据库中,并对其操作。
 * 大概的就是这种方式思路,具体实现请仔细研究源码。

 * ******************************************************************

 * 以上 仅仅是我个人看JRobin源码了解到的,如有什么理解错误请指出!谢谢!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值