那谁的技术博客

感兴趣领域:高性能服务器编程,存储,算法,Linux内核
随笔 - 210, 文章 - 0, 评论 - 1183, 引用 - 0
数据加载中……

发布我的开源cache库ccache

ccache(common cache)是一个使用共享内存实现的cache静态库,在节点数据不足时采用LRU算法进行节点的淘汰.
与memcache的区别在于,首先memcache是一个完整的server程序,不仅有cache的处理操作,还需要监听及处理客户端的操作请求,而ccache只是一个静态库,只关心cache的处理操作;其次,memcache采用了内存去管理数据,程序一旦停止,其中的数据全部丢失,而ccache采用了mmap的方式去管理数据,也就是每个cache都用一个与之对应的文件,一定程度上保证了数据不至于在程序停止的时候丢失;第三,memcache实现了对不定长key和data的支持,而cache目前(version 0.1)只支持定长的key和data,也就是同一个cache只能管理一个类型的key和data.

当前的版本(version0.1)采用hash-list的形式管理数据,LRU算法在节点数据不足时进行淘汰数据.
今后的版本需要完成的主要功能:
1)实现对不定长key和data的处理支持.
2)降低锁粒度,目前ccache在对数据进行操作时,都是对cache全局加锁,以后希望能做到降低这个加锁的粒度,使效率更高.
3)加入hash-rbtree的形式管理数据.

test/testcache.c是一个演示如何使用ccache的程序,目前仅在多进程的情况下进行测试,由于我本人对多线程不太熟悉,所以没有做多线程情况下的测试.
另外,由于使用了线程锁,所以在编译的时候需要链接pthread库.

项目地址:http://code.google.com/p/commoncache/
(注:请下载其中的ccache0.1.rar文件包,原先的cache.rar有一些问题)

posted on 2008-03-24 11:20 那谁 阅读(5698) 评论(8)  编辑 收藏 引用 所属分类: Linux/Unixccache

评论

# re: 发布我的开源cache库ccache[未登录]  回复  更多评论   

我是一个初学者 ,下下来看看, 学习!
2008-03-24 12:24 | ngn999

# re: 发布我的开源cache库ccache  回复  更多评论   

顶下!
先下来慢慢研究,以后用的着,呵呵
2008-03-24 12:32 | cppexplore

# re: 发布我的开源cache库ccache  回复  更多评论   

缓存丢失关系不是很大吧,大家更关系性能,不知道有没有比较测试?呵呵
2008-03-24 13:13 | 酷勤网

# re: 发布我的开源cache库ccache  回复  更多评论   

开源请使用 zip, 7z 或者 gz,bz2 等格式提供源代码包,请勿使用转有格式 rar
2008-03-24 15:45 | tangfl

# re: 发布我的开源cache库ccache[未登录]  回复  更多评论   

@tangfl
谢谢建议!下个版本就转用这些格式.
2008-03-24 15:55 |

# re: 发布我的开源cache库ccache  回复  更多评论   

http://www.wmsifu.cn
2008-03-24 17:58 | 完美世界私服

# re: 发布我的开源cache库ccache  回复  更多评论   

svn里没内容啊,空文件夹
2008-07-31 11:17 | denny

# re: 发布我的开源cache库ccache[未登录]  回复  更多评论   

@denny
我没有用SVN管理代码,直接提交代码的.
2008-07-31 11:20 |

只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理