Ternary Search Trees 三分树

经常碰到要存一堆的string, 这个时候可以用hash tables, 虽然hash tables 查找很快,但是hash tables不能表现出字符串之间的联系.可以用binary search tree, 但是查询速度不是很理想. 可以用trie, 不过trie会浪费很多空间(当然你也可以用二个数组实现也比较省空间). 所以这里Ternary Search trees 有trie的查询速度快的优点,以及binary search tree省空间的优点.

Memcache initialization

1.signal(SIGINT, sig_handler);

Memcache stats mt 线上使用情况

美团网memcached的使用情况,线上有3个memcached服务器,默认的内存空间是256M.

Memcache 内存分配

内存分配主要在slab.c里面实现. slabclass 的数据结构

event + 线程池模型的 server 类似 Memcache线程池模型

/*
    main.h
    定义了三个数据结构 conn_queue_item,work_thread,dispatch_thread.
    conn_queue_item 只是存dispatch_thread accept 以后的描述符,然后
    dispatch_thread 将conn_queue_item 存入某一个work_thread.
    work_thread 真正负责work的thread.
    dispatch_thread 监听9877端口,并且将accept后的fd传给work_thread.
*/
#ifndef MAINH
#define MAINH

Memcache threads analysis

memcached 启动时线程处理流程

libevent demo

libevent 就是对select的封装.

network programming echo example

socket 描述符就跟 file 描述符一样.

Beanstalk 学习

看的Beanstalk第一版的代码,因为代码比较短.小组的分享

函数指针和指针函数

函数指针和指针函数区别. 指针函数. 返回值是指针的函数叫指针函数. 函数的返回值可以是int,char,double,struct,也可以是指针,指针函数就是返回值是指针的函数,也就是返回的是一个地址.比如: