Home

平凡之路

朴树的《后会无期》主题曲:平凡之路 </embed> 我曾经跨过山和大海 也穿过人山人海 我曾经拥有着一切 转眼都飘散如烟

Read more

后会无期

</embed> 当一艘船沉入海底 当一个人成了谜 你不知道 他们为何离去 那声再见竟是他最后的一句

Read more

c/c++的不定参数

c/c++可以通过va_arg等宏实现不定参数。一个例子如下(c++): void ar_cnt(int cnt,...); int main(int argc, char* argv[]) { ar_cnt(4,1,2,3,4); return 0; } void ar_cnt(int cnt,...) { int arg_cnt = cnt; va_list arg_ptr; va_start(arg_ptr, cnt); for(int i=0; i < cnt;i++) { int value=va_arg(arg_ptr,int); printf("posation %d=%d\...

Read more

java/c++变量作用域的一点小区别

偶然遇到一个问题,java里面这么写是有问题的 int x = 1; { int x = 2; } 作为一个写了多年C++的人,不能忍啊。java子域里的变量看样子不会覆盖父域。但是这样是没问题的,可见子域的生命周期还是局限于子域里面。 { int x = 2; } int x = 1; C++里面这样是没问题的 int x = 1 ; { int x = 2; } 相对于脚本语言,这种限制似乎就宽多了。这样都可以。 for i in range(1,10): pass print i

Read more

Ich war noch niemals in New York

</embed> 我从来没有去过纽约 从没有到过夏威夷 从未穿过牛仔衣淋着旧金山的雨 我从来没有去过纽约 我要感受那远方的空气 我想要挣脱过去释放我自己

Read more

命名空间和友元冲突

今天遇到一个问题,需要跨namespace定义友元,这种情况比较常见的是测试类需要访问源码类,gtest据说有个FRIEND_TEST宏,以前用过好像有问题。这里我们直接用友元: namespace oceanbase { namespace election { class ObElectionServer : public ObSingleServer { friend class ObElectionTester; ... } } } namespace oceanbase { namespace tests { namespace election { c...

Read more

两阶段提交协议的异常处理

两阶段提交的协议大家都比较熟悉了,解释一下每个阶段的异常处理。首先,我们需要持久化协议过程中的状态,这样如果server宕机,那么恢复的时候还能通过日志知道宕机前处于那个阶段。同时,所有对数据的修改都会先写write ahead log,保证宕机重启的之后数据也不会丢失。写日志的顺序假定为:写write ahead log-修改缓冲区-写commit/abort log。 在这个前提下,我们根据如下的时序图来讨论异常情况和处理方法。 过程a没有成功,即协调者没有收到部分参与者的回应。超时后,协调者发送abort消息给参与者取消事务。参与者存在两种情况: - 过程1失败,网络问题导致参与者没有收到vote request消息或者此时参与者宕机。参与者重启恢复后无需...

Read more