vim grep plugin

vim grep 插件

vim复制插件

vim复制的时候不发复制到c-v的复制缓冲区,很麻烦,自己动手,丰衣足食

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 描述符一样.