06 2011 档案

摘要:bumblebee是一个托管在github的开源项目,最近这个项目代码有一次commit,引起了民工们的轰动,见https://github.com/MrMEEE/bumblebee/commit/a047be85247755cdbe0acce6#diff-1真是一个空格引发的惨案。项目代码的测试,是非常重要的环节,看看package要进入Debian stable的难度,就知道了。至少从这点来看,这个项目做的不够好。一些评论太搞笑了,摘一点放到这里。1,where's the 'like' button?2,Nooo! Everything was faster in 阅读全文
posted @ 2011-06-18 12:27 qsort 阅读(11131) 评论(4) 推荐(2)
摘要:用过C的都知道#include,写hello world之前不都得#include <stdio.h>么。不过#include这种东西,会有很多花样,有些是常用的正规用法,有些就是很evil的用法了。1,条件包含例如,由于vc没有提供C99的stdint.h,所以跨平台的代码可能会有这样的语句:#ifdef _MSC_VER typedef __int64 int64_t#else #include <stdint.h>#endif这是常见的正规做法。2,包含非头文件譬如有些.c文件里面会写,#include "inc/aes_impl.c",这种做 阅读全文
posted @ 2011-06-09 13:36 qsort 阅读(882) 评论(0) 推荐(0)
摘要:IPVS简介IPVS是LVS项目重要组成部分,目前包含于官方Linux Kernel。IPVS依赖于netfilter框架,位于内核源码的net/netfilter/ipvs/目录。值得一提的是LVS项目是由国人发起的较有影响的开源项目之一,其发起人为章文嵩博士(毕业于国防科大)。LVS的logo如下图,这个logo很形象地说明了LVS项目的目标。IPVS通常与keepalived配合使用,后者也是LVS项目的子项目之一,用于检测服务器的状态。IPVS的三种工作模式为LVS/NAT、LVS/TUN、LVS/DR,简介如下。IPVS的LVS/NAT工作模式就是传统的NAT,进出流量都经过调度器, 阅读全文
posted @ 2011-06-08 18:02 qsort 阅读(2033) 评论(0) 推荐(0)
摘要:LoadbalancingDNSLoad Balancing最老的办法了,略。Layer-2Load Balancing即链路层的负载均衡,又称作link aggregation。Link aggregation是将多个物理链路汇聚成一个虚拟的更高带宽的链路,这样一方面可以通过组合多个物理链路来得到所需的带宽(以太网链路只有10、100、1G、10G,如果要得到4G的,则可以将四根1G的组合起来,形成一个虚拟的4G链路),一方面也提供了failover。相关的标准是802.3ad(802.3就是以太网,802.3下面有许多以太网相关的标准)。定义的协议是Link Aggregation Con 阅读全文
posted @ 2011-06-08 17:28 qsort 阅读(1542) 评论(0) 推荐(0)
摘要:一致性哈希要解决的问题很常见:如何将许多键值(譬如md5的值域空间)分布到多个服务器节点。直接的做法是一个普通的哈希(譬如取模),但如果服务器节点可能会动态变化,每次节点的变化都会导致绝大多数映射的失效,不好。一致性哈希的做法是,将key的值域看做是一个环,每个服务器映射为多个环上的点(virtual node),所有服务器的点的集合将环分成多个区段,key->server的映射过程是:根据key找到对应的点,然后顺时针(逆时针也行,但要统一顺或者逆)找到最近的虚拟节点,该vnode对应的server,将用来处理这个key。值得注意的是,一个服务器要映射为多个virtual node(例 阅读全文
posted @ 2011-06-06 23:11 qsort 阅读(393) 评论(0) 推荐(0)
摘要:数据库table的index是建立在一个或多个column上的一个数据结构, 选定的一个或若干个column称作index的key, 用来加快相应key所对应的record(tuple)的定位.从数据结构的角度来看, 索引是一个map, 将key映射到对应的record的指针. 索引能提供更好的查找性能, 关键之处在于, 一个block可以存储的(key, pointer_to_record)是可以很多的, 要远大于一个block存储的record的个数, 这意味着查找过程中磁盘io可以大大减少.索引可以分为dense index和sparse index, 前者对于每个record都建立索引 阅读全文
posted @ 2011-06-02 00:44 qsort 阅读(710) 评论(0) 推荐(0)