代码改变世界

C入门基础知识

2012-08-02 10:22 by ggzwtj, 315 阅读, 0 推荐, 收藏, 编辑
摘要:先看一些常用的的函数的实现: 1 void * __cdecl memcpy (void * dst,const void * src,size_t count) 2 { 3 void * ret = dst; 4 while (count--) { 5 *(char *)dst = *(char *)src; 6 dst = (char *)dst + 1; 7 src = (char *)src + 1; 8 } 9 return... 阅读全文

LevelDB概述

2012-06-30 17:21 by ggzwtj, 2171 阅读, 0 推荐, 收藏, 编辑
摘要:LevelDB是google开源的key-value,单机,持久化存储引擎:写操作:写Log的顺序磁盘写和内存中对memtable的操作;读操作:设计一系列策略保证读的效率;整体的架构如下:在写入操作的时候,会先把要写入的操作顺序地写到日志文件中。这样,就算是在memtable的操作中失败了,重新启动的时候也是会从日志文件中还原,这样可靠性就得到了保障。又因为日志文件时顺序的IO,这样也提高了写的效率。日志文件的格式如下:为了在重启db后可以恢复到退出前的状态,需要把db的状态保存在mainifest文件中:只在mainifest开始保存完整的状态信息,接下来只保存每次compact产生的操作 阅读全文