Home

ssh绑定其他端口

首先修改/ssh/sshd_config,把Port 22解注释,然后加一行Port xx。之后修改 /etc/sysconfig/iptables,加入该端口的Rules: -A INPUT -m state --state NEW -m tcp -p tcp --dport xx -j ACCEPT 重启即可。 /etc/init.d/sshd restart 这么做的目的是如果出现问题,还有一个端口可以上去修改。登录的时候需要对应的指定一下端口: ssh -p xx user@host scp -P xx ... user@host 补充两个SSH技巧: 客户端配置中转,主要是通过跳板机登录: Host xx HostNam...

Read more

RBTools兼容的问题

某天ReviewBoard客户端突然用不了,使用 rbt post的时候报错: from six.moves.urllib.parse import quote ImportError: No module named urllib.parse 乍一看以为什么包被卸载了。于是pip install six –upgrade,无果。pip uninstall RBTools再重新安装RBTools,也无效。 查了一下six是python2、python3的兼容包,直接修改源码,不要兼容了,发现用到的地方好多,改不过来(ps,兼容python2、python3真不容啊)。 查看six的版本,发现跟本地一样的,本地没什么问题。说明不是six的问题。直接在命令行from six...

Read more

paxos的一些case分析

acceptor: a([epoc:4, value:n]) b[epoc:3,value:y] c[epoc:6,:value:y] proposor: x5, x7, (x4, x3, x6) prepare:x5[a, b], x7[b, c] commit:x[4,n] y[6, y] 一共有5个proposer, 1)初始时 x4 (prepare)-> a, x3 (prepare)-> b,x6 (prepare)-> c, 2) x4, x3, x6 挂掉 3)x5(prepare)-> a, b 4)x5(commit[epoc:4, value:n])->a, b 5) x7(prepare) ->b, c 6...

Read more

gitbook使用指导

gitbook是nodejs实现的用来帮助书写电子书的,很多开源的书籍项目是基于gitbook的。gitbook的编写语言是markdown,书籍遵循一定的格式完成之后可以通过gitbook发布为各种版本,比如pdf,mobi等电子书格式,或者发布为静态的website,挂到github pages上,对于一些开源项目来说,这是很方便的书写帮助文档的方式。gitbook同样有一个paas的平台,可以允许多人协作在线完成一部电子书 首先安装gitbook npm -g install gitbook npm -g install gitbook-cli npm -g install ebook-convert 第三个是安装生成电子书的插件,但是这里并不会安装bin...

Read more

工作周年总结

工作两周年了,感觉这两年走了不少弯路,也学到不少东西,最近看到日照的周年总结,觉得也应该写写。而且看看日照当时的情况,觉得跟我现在也差不多,同样处在职业的选择期,一个明确的规划还是很重要的。 总结 2013年进入支付宝Oceanbase组,待了一年半的时间吧,第一年主要在0.5上修修改改,第二年换到了UPS组,参与1.0的设计。从第一年的情况看,基本是完成了一个不错的职业素养培训,有了分布式的基本概念,处于了解熟悉的阶段。第二年开始对分布式协议有了一些认识,算是入门了吧。总结两年还是学到了一些东西,但是也算是付出了一些代价。出来之后看之前的组,觉得对应届生还是个不错的选择,ob有点像一个学校,闲的时候有不错的学习机会,就是加班太多了。 后来身体原因离职,来搜狐大数据中心,开始做推...

Read more

log4cxx安装

log4cxx是apache基金会的log开源项目,log4j的c++实现,安装的时候遇到一个小问题: 首先正常安装: wget http://mirrors.cnnic.cn/apache/logging/log4cxx/0.10.0/apache-log4cxx-0.10.0.tar.gz tar zxvf apache-log4cxx-0.10.0.tar.gz cd apache-log4cxx-0.10.0 ./configure make 报错libdb-4.3.so 格式错误。开始以为是文件损坏了,查了一下这个文件 yum provides */libdb-4.3.so 提示在db4里面,重新安装db4 yum reinstall db...

Read more

关于group commit

最近突然想到这个东西,以前Oceanbase的UpdateServer提交的时候是做了group commit的。基本思路如下: 并发小的时候,超过一个时间窗口就直接提交 并发大的时候,等请求填满一个buffer再一起提交。 实现上可以考虑如下伪代码: while true: start timer if buffer full or timer reach limit: commit reset timer else wait and receive 广泛运用在一些需要组合请求的地方,比如一些rpc因为历史原因(嗯)一直单条请求,不能改协议的情况下,可以考虑转发一下,做个缓冲。当然这种情况下一般是通过队列...

Read more

带小团队的一点思考

事实上我也只是带实习生而已。但是感觉上之前更多的是把自己的任务分出去,而现在是开始跟一些人一起完成一个任务。主要的不同是之前做的事情是在个人工作量里面,自己做也只是慢一点,有时候甚至自己做反倒比分出去更快。现在做的事情已经超过一个人工作量了,必须发挥团队的能动性了,而且之前也只是对自己的工作负责,现在你要负责的是一个团队的KPI了。 主要有几点感觉: 分配好工作。需要能力的,需要经验的,需要稳定细心的,每个人的风格不一样,应该做的工作也不一样。 规范流程。大部分加班或者事故都是能从流程上避免的,在设计开发测试上省下来的时间最终都会在上线修bug处理问题的过程中补回来。 做好计划和项目管理。做一个包含不确定性和风险的事情最重要的是路线图。实现的过程就是把抽象的东西一点点...

Read more