狄仁杰之神都龙王
抽空去看了一下。去看的原因倒是很简单,有人把它上升到中国大片的崛起的高度。大片看多了,崛起这事情,倒是值得去看一下。
坦白说比其他的拍的好多了,至少没什么硬伤,或者明显的硬伤,这让我很欣慰了,对的起票钱(折扣之后)。
我不理解的是,这几年过去了,武侠怎么已经上升到法术的高度了,更让我不能理解的是,这么牛逼的一只蝠鲼(fú fèn,原谅我的猜测,那只怪物或许真是什么变异物种也说不定,比如随便从山海经里面拿一只出来就足够吓尿观众了),怎么就死在几只毒鱼下了呢,这是告诉我们食品安全刻不容缓么?
话说这么险恶的环境,狄大人能活下来真的是奇迹啊。为了救美女拿人头打赌的都是亡命徒啊,果然只有不怕死的才命大…
顺便逛了一下侨福芳草地,好象是芳草地一周年还是怎么的,里面布满了各种艺术雕塑。...
oceanbase的库依赖问题
今天遇到一个问题: 写测试用例的时候发现总是找不到符号undefined refrence, 第一反应是我去有个没编译的吧, 但是打印了所有的符号,发现其实编译生成库文件里面完全有对应的符号,命名空间也没有错误。这就是很诡异的问题了,刚好手头另一份代码可以编译链接成功,于是对比了一下午结果,发现最后一个函数在类里实现就能编译,类外实现就不能编译,这个问题就太毁三观了。
最后请教了 解伦师兄 , 发现其实是库依赖的问题, Libtool制定的链接库列表是有相互依赖关系的,比如:
LDADD = libtest2.a \
libtest2.a
或者gcc命令
gcc –o test main.c libtest2.a libtest1.a
这里编译的时候会认为lib...
oceanbase源码分析-root_table_manager相关
记录一下root_table_manager相关类的阅读和心得。
###ObTableNameIterator
一个Iterator, 用于获取所有的TableName
init
初始化并调用scan_tables执行查询表名的sql语句
scan_tables
执行sql语句 “select table_name, table_id from __all_table” 来得到所有表的表名
get_next
获取下一个表名, 如果 table_idx_ < 3 获取的是内部表的信息, 否则从sql执行结果中迭代返回普通表名
table_idx_对应的表名分别是:
…...
防止通过rm误删文件
相信大家都有通过rm误删文件的经历, 而且Linux下又貌似没有Final Data之类的工具. 相对于Windows或者Nautilus里的删除机制, rm虽然高效, 但是很危险.
为了防止误删文件, 我们可以把删除的文件先转移到/tmp下, /tmp下的文件会被系统定时清除, 也就起到了回收站的作用.
这里我们首先建立如下脚本:
#!/bin/sh
dirpath=/tmp/recycle_$USER # find a place for recycle
now=`date +%Y%m%d_%H_%M_%S_`
arg=$1
if [ "$arg" = "-rf" ] || [ "$arg" = "-fr" ] || [ "$arg" = "-r" ]; then # ...
oceanbase源码分析-Rowkey相关
这里分析一下ObRowkey相关的源码.
引用晓楚师兄的一段话:
Rowkey是OceanBase诞生之初就引入的概念,最终被确立是在OceanBase 0.3。
为了便于理解,不妨把OceanBase想象成一个Key-Value系统,Rowkey就是Key,Value就是返回的行数据。
如果你对mysql数据库熟悉,那么不妨把Rowkey理解成primary key,它就是那几个主键列的组合,列的顺序与primary key中定义的顺序一致。
###ObObjType
定义了OceanBase中支持的基本数据类型,我们可以在ob_obj_type.h中看到其定义
###ObRowkeyColumn
定义了RowKey中的每个列Column
###O...
oceanbase源码分析-RootServer主要框架
这里记录一下RootServer主要框架的阅读和心得。
###BaseMain
BaseMain的逻辑从start开始,首先定义了日志格式(ob_easy_log_format),具体定义在ob_easy_log.cpp中
日志格式如何使用需要跟到Libeasy里去看了.
之后parse_cmd_line解析命令行参数.既然继承自同一个基类,那么这几个server的启动函数就非常相似
之后是一些启动琐事,建立pid文件,建立log文件,设置log级别等.有些地方引用到了TBsys和libeasy,如果需要了解的话可以跟进去看看.
start的最后注册了signal ,并调用do_work开始逻辑.do_work需要子类重载实现.
restart处理了重启的问题.
###...
506 post articles, 64 pages.