自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ping

lighttpd,ttserver,tcpip

  • 博客(7)
  • 收藏
  • 关注

原创 tokyo cabinet源码分析-mdb设计和实现

  mdb - memory db mdb是cabinet的一种数据组织方式,其他还有hdb(hash)、bdb(btree)等,详见"tokyo cabinet源码分析"。由名字可知,mdb使用纯内存(不一定,见下面),速度最快。它是后面其他较高级的数据组织方式的基础,hdb、bdb的read cache都是直接使用mdb实现。而且mdb的实现最简单,所以先从mdb分析。 

2009-11-05 20:52:00 1501 2

原创 宏的一些副作用

1、优先级问题 1) 传入变量优先级 #define MULTI(a,b) a * b MULTI(1+2,3) => 1 + 2 * 3 其实是想要(1 + 2) * 3 2) 作为值返回时,类似1) #define ADD(a,b) (a) + (b) int c = ADD(a,b) * 3; => (a

2009-10-28 10:40:00 3073 1

原创 tokyo tyrant源码分析-编程小技巧

----------------1、内存分配---------------- char stack[TTIOBUFSIZ]; //65536char *buf = (rsiz  ...free((buf == stack) ? NULL : buf); rsiz是运行时才能确定的值。这种方法的思想是尽可能使用静态分配,因为动态分配有损效率。因为rsiz的未

2009-10-27 10:18:00 1032

原创 tokyo tyrant源码分析

目录> -总体设计 -主从复制实现 -日志系统实现 -编程小技巧 分析的tyrant版本为:1.1.18各节的标题已经清晰表明了其内容。各节的重点是尽可能简单的描述设计和实现,不会对函数或技术点做任何注释。基础知识还是通过书本系统的学习较好。另外描述的风格是剪裁过的源代码+文字解释,没有图片(画图比较浪费时间),而且我觉得图片除了给点直观的第一印象,

2009-10-27 09:35:00 938

原创 tokyo tyrant源码分析-日志系统实现

 enum {                                   /* enumeration for logging levels */  TTLOGDEBUG,                            /* debug */  TTLOGINFO,                             /* information */  TT

2009-10-24 22:18:00 931

原创 tokyo tyrant源码分析-主从复制实现

  "tyrant分析-总体设计"中已经提到,slave起一个线程(do_slave)做主从复制,它和master建立tcp连接,发送请求命令和起始时间rts +1(上次的更新时间加1秒)给master,然后循环的从master那里接收一条条的记录,更新自己db、ulog和rts file。do_slave是以1秒为频率执行的。(实际是等待一次do_slave执行完毕后,再等待1秒,然后进

2009-10-24 22:14:00 2151 7

原创 tokyo tyrant源码分析-总体设计

 ------------------------ 总体设计---------------------------------------结构:---------------多线程。三类线程:  主线程(1个): 监听socket,将接收到的请求sockfd分发给工作线程,以及信号处理。 worker线程(thnum个,参数指定,默认为8): 从

2009-10-15 18:49:00 1857 4

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除