qstore 的 chunk重构小记
摘要:解决老chunk的若干问题,包括:failover问题。以前支持两个进程的时候,如果其中一个挂掉,则另外一个要接管所有的数据请求,当失败进程重启的时候,又要把所有数据发回去。扫描过期文件问题。以前处理过期数据的方法是:每隔一定时间,启动一个扫描脚本,把一个进程上的所有记录扫面一遍,删除过期的。扩展时的负载均衡问题。 以前只能是成倍扩展,两台机器添加一台机器后,只有一台机器的压力能够被缓解,如果已经是4个进程 ,则要加到8个才可以。相比以前的关键改动在于:参与一致性哈希的对象变了,以前的时候是node,现在变成了node里面的chunk文件。带来的一些列变化包括:master不光要维持node信
阅读全文
posted @
2011-07-25 13:46
welkinwalker
阅读(348)
推荐(0)
小脚本,统计一个目录下满足特定条件文件的代码行数
摘要:find -regex .*cc -o -regex .*h | xargs wc -lfind也自带了执行命令的方法:find -regex .*cc -o -regex .*h -exec wc -l '{}' \;这种方法的结果不太对,只能统计到满足 -regex .*h 的文件注明一下: find默认从当前目录递归的查找;-o 表示条件或;-regex表示正则表达式条件;{}使用来替换满足条件的结果的,要用’‘括起来;-exec执行命令需要加分号;,不过要使用反斜杠转移;也可以指定文件类型,用-type 指定,方法如下:-typecFile is of typec:bb
阅读全文
posted @
2011-07-20 14:10
welkinwalker
阅读(522)
推荐(0)
一句话打通所有机器,小脚本
摘要:for arg in 10.20.150.{91..93} ;do scp ~/.ssh/id_rsa.pub admin@$arg:~/.ssh && ssh admin@$arg "cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys" ;done
阅读全文
posted @
2011-07-19 17:47
welkinwalker
阅读(270)
推荐(0)
select(poll)效率,与异步网络IO,AIO, libevent, epoll
摘要:But we’re still not done. Because generating and reading the select()bit arraystakes time proportional to the largest fd that you provided for select(), the select() call scales terribly when the number of sockets is high.Different operating systems have provided different replacement functions for
阅读全文
posted @
2011-07-15 17:15
welkinwalker
阅读(2615)
推荐(0)
level trigger 与 edge trigger 的区别
摘要:Level Trigger:1) The input signal is sampled when the clock signal is either HIGH or LOW.2) It is sensitive to Glitches.Example: Latch.Edge Trigger:1) The input signal is sampled at the RISING EDGE or FALLING EDGE of the clock signal.2) It is not-sensitive to Glitches.Example: Flipflop.翻译过来一个叫做条件触发(
阅读全文
posted @
2011-07-15 15:33
welkinwalker
阅读(2652)
推荐(0)
使用ifstream时碰到的一个小问题
摘要:下面这段代码:#include<iostream>#include<fstream>usingnamespacestd;main(){char*filename=(char*)malloc(40);strcpy(filename,"/home/admin/local/apache/logs/access_log");ifstreamifs(filename);if(ifs.good()){cout<<"opensuccess"<<endl;stringtemp;getline(ifs,temp);cout&
阅读全文
posted @
2011-07-12 11:21
welkinwalker
阅读(362)
推荐(0)
在acinclude.m4中增加用于覆盖率的宏
摘要:AC_MSG_CHECKING(for test)AC_ARG_ENABLE([test], [AS_HELP_STRING([--enable-test], [compile for test@<:@default=no@:>@])])if test "$enable_test" == "yes" ; then enable_test="yes" CFLAGS="${CFLAGS} -fPIC -fprofile-arcs -ftest-coverage"; CXXFLAGS="${CXXF
阅读全文
posted @
2011-07-08 10:38
welkinwalker
阅读(427)
推荐(0)
搜索引擎、相关性算法的测试
摘要:1,对于不易重现问题的应对思路。可以为每一个起始的处理过程都分配一个traceid,然后分析与这个traceid相关的所有log,来还原整个处理过程。2,测试旁路。引入线上流量到线下的测试环境,用以验证线下功能有没有大的问题,这一部分处理结果会被抛弃。3,快速搭建依赖mock环境的实践。这个是用ICE这样的中间件就可以比较轻松的达到这个目标,这样就可以在单机上模拟一个真实的环境。4,数据采集(应用监控)的定制框架。每个service上线前都要落实要采集哪些数据,并把他们在代码中实现。这块对于后面搜索相关性的测试,还有重要作用,后面会提到。5,服务自治,松散的结构。这个有点像是现在的iproce
阅读全文
posted @
2011-07-07 19:50
welkinwalker
阅读(1451)
推荐(0)
挂载硬盘
摘要:1. 切换到root2. 运行命令 “fdisk /dev/hdb”3. 根据提示,依次输入 “n”, “p”, “1”4. 按两次回车5. 输入 “w”, 当提示Syncing disks.时,表示已成功完成分区6. 输入 “mkfs.ext3 /dev/hdb3” 格式化分区; 此过程时间很长,大概10分钟,等待即可7. 使用mount /dev/hdb3 [目录名]挂载分区后即可使用。 8. 修改/etc/fstab分区表,加入 /dev/hdb3 /[目录名] defaults 1 2 这样每次启动后系统会自动挂载该分区。
阅读全文
posted @
2011-07-01 17:07
welkinwalker
阅读(289)
推荐(0)