July 14th, 2010
按照上一篇blog的记述,我们已经安全抵达鼓浪屿,并找到了著名的缘中园安顿下来,接着就是品尝各种各样的美食了。
鼓浪屿上的美食,主要分为海鲜和甜点、饮品。海鲜主要集中在龙头路的大排档和海滨浴场的沙滩边。甜点主要是台湾特色的凤梨酥、绿豆糕。饮品有冰椰子、鲜榨果汁,以及欧式奶茶。不得不提一下,我到了鼓浪屿之后深感肚皮之小,肠胃功能之弱。建议大家备好健胃消食片和止泻药,不然真的会饮恨当场。
Read the rest of this entry »
Tags: 八爪鱼, 冰镇椰子, 凤梨酥, 厦门, 土笋冻, 张三疯欧式奶茶, 沙茶酱, 海瓜子, 海蛎煎, 烧仙草, 烧烤, 秋刀鱼, 菲利宾腊肠, 西班牙腊肠, 赵小姐的店, 鲜榨果汁, 鸡脯肉, 鼓浪屿, 龙头
Posted in My Life | No Comments »
July 14th, 2010
Tags: 厦门, 娜雅, 旅馆, 火车, 缘中园, 船屋, 鼓浪屿
Posted in My Life | No Comments »
July 9th, 2010
很久之前看过Understanding MySQL Internals的一些片段。最近很烦,于是又翻了翻(纯发泄)。
handlerton提供的是存储引擎的一些特性。比如记录点、提交、回滚。同一个引擎跨表的操作需要在handlerton里面完成,比如说引擎的初始化,跨表的事务。
handler提供了表的基本操作。比如打开关闭表、扫描数据索引,都可以在handler里面找到相应的接口。每个handler的子类进行初始化对象的时候,必须向构造函数传递一个handlerton对象的引用。
handler类有很多纯虚函数,必须要在handler的子类里面实现。这些函数决定了存储引擎的底层io方式,包括数据存取和索引。
ha_example.h里可以很方便地找到这些纯虚函数:
int open(const char *name, int mode, uint test_if_locked); // required
int close(void); // required
int rnd_init(bool scan); //required
int rnd_next(uchar *buf); ///< required
int rnd_pos(uchar *buf, uchar *pos); ///< required
void position(const uchar *record); ///< required
int info(uint); ///< required
int external_lock(THD *thd, int lock_type); ///< required
ha_rows records_in_range(uint inx, key_range *min_key, key_range *max_key);
int create(const char *name, TABLE *form, HA_CREATE_INFO *create_info); ///< required
THR_LOCK_DATA **store_lock(THD *thd, THR_LOCK_DATA **to, enum thr_lock_type lock_type); ///< required
貌似有点困了。改日用GDB调试一下EXAMPLE引擎,再上来写一个~
Tags: handler, handlerton, MySQL
Posted in MySQL Internals | No Comments »
June 20th, 2010
自从MySQL成立了专门的团队去分配工作之后,我发现自己干得很累。
每天担心的事情很多,需要了解的东西也多,其中有些是技术方面的,而有些不是。
睡得少了,脾气也变得不耐烦了。如果持续以这样一种状态工作,不知道还能坚持多久。
今天的数据库大会上,认识了很多新朋友,也特地抽出时间跟几个老朋友吃饭聊天。尝试着去了解他们的想法,结合他们的想法去思考如何建设一个更加强健的MySQL团队。
一个团队的强弱与否,很大部分是取决于团队成员是否有明确的自我定位,以及这个自我定位是否符合团队发展的目标。简单的说,就是个人目标与团队目标的高度契合。淘宝MySQL DBA团队的目标很明确,就是成为国内首屈一指的技术团队。那么如何使得狼和羊都找到自己的位置,使得整个团队力往一处使?值得深思。
Read the rest of this entry »
Posted in Uncategorized | No Comments »