软件包 com.taobao.common.store.journal
的使用

使用 com.taobao.common.store.journal 的软件包
com.taobao.common.store.journal   
com.taobao.common.store.journal.impl   
com.taobao.metamorphosis.client.extension.storage   
 

com.taobao.common.store.journal 使用的 com.taobao.common.store.journal 中的类
IndexMap
          索引Map
JournalStore
          一个通过日志文件实现的key/value对的存储 key必须是16字节
1、数据文件和日志文件在一起,不记录索引文件
name.1 name.1.log
2、data为真正的数据,顺序存放,使用引用计数
3、log为操作+key+偏移量
4、添加数据时,先添加name.1,获得offset和length,然后记录日志,增加引用计数,然后加入或更新内存索引
5、删除数据时,记录日志,删除内存索引,减少文件计数,判断大小是否满足大小了,并且无引用了,就删除数据文件和日志文件
6、获取数据时,直接从内存索引获得数据偏移量
7、更新数据时,调用添加
8、启动时,遍历每一个log文件,通过日志的操作恢复内存索引
JournalStore.InflyWriteData
           
JournalStoreMBean
          日志方式存储的MBean
OpItem
          一个日志记录 操作+数据key+数据文件编号+偏移量+长度
 

com.taobao.common.store.journal.impl 使用的 com.taobao.common.store.journal 中的类
IndexMap
          索引Map
OpItem
          一个日志记录 操作+数据key+数据文件编号+偏移量+长度
 

com.taobao.metamorphosis.client.extension.storage 使用的 com.taobao.common.store.journal 中的类
JournalStore
          一个通过日志文件实现的key/value对的存储 key必须是16字节
1、数据文件和日志文件在一起,不记录索引文件
name.1 name.1.log
2、data为真正的数据,顺序存放,使用引用计数
3、log为操作+key+偏移量
4、添加数据时,先添加name.1,获得offset和length,然后记录日志,增加引用计数,然后加入或更新内存索引
5、删除数据时,记录日志,删除内存索引,减少文件计数,判断大小是否满足大小了,并且无引用了,就删除数据文件和日志文件
6、获取数据时,直接从内存索引获得数据偏移量
7、更新数据时,调用添加
8、启动时,遍历每一个log文件,通过日志的操作恢复内存索引
JournalStoreMBean
          日志方式存储的MBean
 



Copyright © 2010–2013. All rights reserved.