星期一, 十一月 17, 2008

svnsync及其不爽之处

最近折腾trac和远程svn的整合,就要把远程svn sync到trac所在的服务器。
考虑两个方案:
1. SVK
2. svnsync

SVK装了一个,libneon引用libssl出现了一个错误。于是转试svnsync。

svnsync是svn自带了,不需再安装。

1. 准备目标目录
mkdir ~/target
svnadmin create ~/target

2. 制作hook
cd ~/target
echo '#!/bin/sh' > hooks/pre-revprop-change
chmod 777 hooks/pre-revprop-change #不要忘记了!

3. 设置镜像
svnsync init file:///home/xxx/target http://remote-svn-host/repos/proj1 --username=xxx --password=xxx

4. 同步
svn sync file://~/target

说说不爽的地方吧,就是不能单独同步http://remote-svn-host/repos/proj1下面的一个子目录!
如果这样:
svnsync init file://~/target http://remote-svn-host/repos/proj1/ourteam --username=xxx --password=xxx
那么就会报错:
svnsync: Session is rooted at 'http://remote-svn-host/repos/proj1/ourteam' but the repos root is 'http://remote-svn-host/repos/proj1'

我们和另外几个team合用了proj1这个目录,如果全部同步十分巨大。

只好放弃。再试试解决SVK的问题吧。

comments:
subversion 1.5版本以上所带的svnsync已经可以同步一个子目录了。
不过如果server端svn版本太低的话也是不行的。。。。

星期日, 十一月 16, 2008

解决ubuntu下python的setuptools版本0.6c8的NameError: global name 'log' is not defined问题

问题描述:
$ sudo apt-cache show python-setuptools
...
Version: 0.6c8-0ubuntu2
...
$ sudo easy_install http://trac-hacks.org/svn/customfieldadminplugin/0.11
...
NameError: global name 'log' is not defined

问题解决:
$ sudo apt-get remove python-setuptools
$ svn co 'http://svn.python.org/projects/sandbox/branches/setuptools-0.6/' setuptools-dev06
$ cd setuptools-dev06
$ sudo python setup.py
$ sudo easy_install http://trac-hacks.org/svn/customfieldadminplugin/0.11

问题解决!

星期二, 十一月 11, 2008

说两句分布式cache和CAP理论

今天有同事在internal maillist发布了两款自行研发的分布式cache系统。之余,讲到两套系统各有侧重,因为焦点是下面这个问题无法得到完善的解决:

    A、B、C、D四台Cache服务器,如果A宕机,所有Hash给A的请求自动切换到B;如果A恢复,这些请求切换回A。但如果A又宕机,那么这些请求又 将切换到B,这时就存在B中数据不是最新数据的可能。

我的理解和回复是:

根据分布式系统的CAP theorem,一致性、高可用性和可分割性(有人翻译成分区容忍性)三者永远不可兼得。分布式cache系统和其他分布式系统一样都受这个理论 的约束,也就是说,咱们这个系统首先肯定要满足高可用(持续服务能力),然后因为要应对网站的高负荷,必然要满足可分割性,这样一来,由CAP theorem可以推知,该系统必然要在一致性上有所损失,也就是你的邮件斜体字部分所提到的"存在不是最新数据的可能"。这个应该讲是无法消除的,只能 通过其他方法(一般是应用层的方案)去避免,因为这是理论上的极限。

在分布式数据仓库系统中,这个问题也是一样的:银行系统(以及支付宝这样的系统)应该讲是对这三者要求都十分苛刻的系统(相对而言,他们优选CA,所以银 行划账挺繁 琐的,哈哈),所以解决方案很贵、技术含量很高,哈哈。

理解不对的,欢迎大家共同探讨。

星期五, 十一月 07, 2008

thunderbird的邮件老被outlook误分到垃圾邮件里的问题

被这个问题困扰很久了,上午做了几十次测试,也没太猜透原因。不过最后发现了一点,就是如果我把thunderbird signature里面的网址url去掉,就不会被分到垃圾邮件里去了。我用的是plain text的signature。很奇怪。不知道有更好的解决方案么。

另外就是tb在account settings里可以设置在reply的时候把signature放到quoted message上面,比较方便;但是在forward的时候不行。据说tb团队还没有准备解决这个问题。

还有就是tb signature上面讨厌的两个hyphen(--),据说是无法通过配置tb去除的。-_-

btw, ghs又被g.f.w.了,干脆废掉独立域名,用回 hmisty.blogspot.com 得了。只是不知道也许忽然blogspot.com又会被封掉,呵呵。

星期四, 十一月 06, 2008

读读论语

看金克木文章的小集子《书读完了》,重温了几句孔子的话,竟有一番不同的滋味,心中一种难言的冲动想去把《论语》拿来好好读读(当然我不会去读于丹啦,哈 哈哈)。也许这就是伟大的著作吧,在你人生经历过不同阶段的时候,每每再读就会有一番更深的感受。

老赵说,半部论语治天下。咱们小民没治天下的能耐,还是拿来修身齐家品味人生吧。

这辈子,这三本书得反复读:《易经》,《老子》,《论语》。