11 2011 档案

摘要:大概用一个礼拜的时间把memlink的源代码读了一边,也对缓存系统的做法有了一个大概的了解,如果现在去实现一个key-value的话应该用不了多长时间。但是这些东西重在设计。因为很多时候这些方法做起来都是有利有弊,比如其中的块计数:虽然省下来一些空间,但是如果写入操作变的多的时候可能会有较多的数据复制,这样性能也就下来了。具体不同结构的取舍在与具体业务的读写比例吧(在努力想一个更加牛掰的方式)。 其中日志的不同,在一定的时间点之后会调用dump来保存hashtable,而在两次dump之间的操作也会被记录到SyncLog中,这样不会因为在两次dump之间宕机而导致操作丢失。但是这里有个问... 阅读全文
posted @ 2011-11-22 13:32 GG大婶 阅读(1147) 评论(5) 推荐(0)
摘要:memlink按照天涯的人说是一个灰常牛的key-List系统,比Redis要快很多倍,下面就来一点点看它的代码。在内存中的Block也是通过一个池来管理的,用到的数据结构大致有三个DataBlock、MemItem、MemPool。MemPool的结构如下:typedef struct _mempool{ MemItem *freemem; // 数组 int size; // 数组的大小 int used; // 正在用的MemItem的大小 int blocks; // 内存池中的... 阅读全文
posted @ 2011-11-11 15:55 GG大婶 阅读(321) 评论(0) 推荐(0)
摘要:信号是软件中断所提供的用于处理异步时间的一种机制,它有一个非常精确的生命周期。首先是一个时间引发一个信号,然后内核将该信号存储起来,直到被传递出去,最后内核在适当的时候处理该信号。内核处理信号有三种方式:忽略,但是SIGKILL和SIGSTOP是不能被忽略的。捕获并处理,内核暂停当前程序的执行,跳跃到一个先前注册的一个函数,进程执行该函数,然后返回到暂停的地方。执行默认操作,具体的操作取决有信号类型,默认操作通常是终止进程。static void sigwinch_handler(int signo){ printf("window size has been changed\n&q 阅读全文
posted @ 2011-11-03 14:33 GG大婶 阅读(1713) 评论(2) 推荐(0)
摘要:应该用设计模式的眼观来看设计模式,不然一定会让你失望的。在开发中会遇到一方去调用另一方,甲具有决定权,知道什么时候该行动。而乙虽然不知道什么时候行动,但是他很清楚怎么做。 好了,现在看起来这个代码写起来非常清楚,甲去调用乙中的方法就可以了。但是不能用静态的眼观来看程序,尤其是这种调用关系中。如果哪一天甲抛弃了乙该投丙了(当然丙也是知道该怎么做但是不知道该什么时候做),这下麻烦来了。需要把甲中与乙有关的部分用丙的替换掉,当然这是简单调用的情况,那如果甲和乙之间的关系千丝万缕的时候怎么办呢?重写甲吧。 但是,如果你的程序使用了命令模式就大不一样了。甲只需要傻傻地调用execte就可以了(当... 阅读全文
posted @ 2011-11-02 14:57 GG大婶 阅读(228) 评论(0) 推荐(0)
摘要:以前对压缩算法一无所知,只是知道哈弗曼编码能做这种事情,但是感觉这样的方法奇慢无比。昨天下午看了下号称世界上最快的压缩算法Quicklz,对压缩的基本思路有了一定的了解。一般的压缩程序的要求读入文件之后以便压缩一边输出,而不是去先分析整个文件中的情况之后才做决定采取哪种算法。 Quicklz也不例外也是争取利用文件中重复出现的字节来进行压缩,管理结构如下:在压缩的过程中不断地读入3个字节,然后根据这3个字节得到一个hash值,根据这个hash值就可以找到offset,这个offset就是上次这个hash值出现的位置,而通过cache可以判断出这次出现的和最近一次出现相同hash值的时候的... 阅读全文
posted @ 2011-11-02 10:09 GG大婶 阅读(4979) 评论(2) 推荐(1)
摘要:int main(){ char *ptr; // alloc a memory area. ptr = (char*)malloc(10); free(ptr); // alloc an array. ptr = (char*)calloc(10, 1); printf("%u\n", (unsigned)ptr); // realloc. ptr = (char*)realloc(ptr, 20); printf("%u\n", (unsigned)ptr); free(ptr); return 0;} re... 阅读全文
posted @ 2011-11-01 11:06 GG大婶 阅读(359) 评论(0) 推荐(0)