- 博客(3)
- 收藏
- 关注
原创 ObjectCacher分析概述(Ceph 14.2.10)
Object通常保存其中的一些部分在缓存里(见下文图片《ObjectCacher、Object和BufferHead的关系》),这些部分称为。在分布式系统中,为了提高性能和减少网络开销,缓存是至关重要的,因为它允许客户端快速访问数据,而无需每次都从远程存储节点获取。客户端提供基于LRU算法的缓存,缓存的基本单位是。也就是说,判断缓存是否命中的基本单位是BufferHead。表示此Object的数据,key是该BufferHead在Object里的偏移,value为指向BufferHead的指针。
2023-10-26 17:25:48
165
原创 Ceph (14.2.10)中LRU设计分析
如果最近访问了某个元素,且这个元素在缓存队列中,就将这个元素提升至队列头部;否则就将其添加到队列头部,处于队列末尾的元素将被淘汰。Ceph中设置midpoint为0.6,即top占总长度的60%,bottom占40%。读写和更新的效率需要达到O(1),可以使用HashMap+双向链表实现。Ceph里使用双向链表实现,并记录链表头和尾部。LRU至少需要两个部分,一是双向链表list(即Ceph中的。类),二是LRU算法的封装(即Ceph中的。,用于划分两个链表,前者为。需要注意的是,通常设置。
2023-10-26 17:22:54
128
原创 Win32的程序框架(VC6.0)
win32程序的框架一个完整的winmain函数,课本里的说法是WinMain函数实现的是以下四个功能1. 定义窗口类,设置窗口的各种属性2. 注册窗口类,建立窗口及执行其他必要的初始化工作3. 进入消息循环,根据从应用程序消息队列接受的消息,调用相应的处理过程4. 当消息循环检索到WM_QUIT消息时终止程序运行话说遇到一个API函
2013-01-30 16:44:10
291
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人