• 前面详细介绍了10天马来西亚自助游详细过程(一路风景机票预订酒店住宿),不过咨询的最多还是详细的旅费花费多少,这里详细介绍旅途各项费用。

    总述

    这次旅行在马来西亚12天11晚,我和老婆大人两人总计花费6201.65RM(折合人民币约13000,汇率按2.0968计算)。下图是各项分类花费(单位都是马来西亚币/MR):

    马来西亚自助游12天总话费

    (more…)

  • 这次到马来西亚十天的自助游,因为是第一次老婆大人一起出国旅游,就没有住床铺(mixed room),所以最大的开销应该是酒店住宿了。我们选择住的酒店大概是相当于国内”快捷酒店”(如家/汉庭)的标准,不同的城市、商圈价格各不相同,本文会把我们自己住的酒店环境、价格和我们酒店预订的一些细节记录下来,给各位准备中的驴友一个参考。 (more…)

  • 以前虽也想过出国旅行,但从不曾实践,感谢LallaNingoo的分享和鼓励,让我和Kiki在预算允许的情况下,好好享受了东南亚海岛的阳光。经历了出国前的忐忑,旅途中的惊喜,十天马来西亚旅程算是尽兴而归。打算写下整个历程,这会是一个系列文章,一则留念,再则也写给那些曾和我一样”担心”、”犹豫”的朋友:买好机票,一切就水到渠成了

    机票购买

    简单版本

    简单版本:打开亚航网站http://www.airasia.com/,搜索,预订,付款。

    详细版本

    本文是一个较复杂版本,如果你从未在亚航预订过机票,建议阅读。

    机票是在亚洲航空(亚航)预订的,亚航是一家马来西亚的廉价航空,从中国到东南亚各个国家都很方便,只要提前预订总能购买到非常便宜的机票,亚航的口号是:”Now everyone can fly”

    机场 (more…)

  • 以前虽也想过出国旅行,但从不曾实践,感谢LallaNingoo的分享和鼓励,让我和Kiki在预算允许的情况下,好好享受了东南亚海岛的阳光。经历了出国前的忐忑,旅途中的惊喜,十天马来西亚旅程算是尽兴而归。打算写下整个历程,会是一个系列文章,一则留念,再则也写给那些曾和我一样”担心”、”犹豫”的朋友:买好机票,一切就水到渠成了

    初到大马

    此次旅行主要目的地是兰卡威,先到吉隆坡(Kuala Lumpur),次日转机到兰卡威岛上,回城时也在吉隆坡住了一晚上,这两天也稍微逛了一下吉隆坡。

    吉隆坡夜景

    比起国内的城市,吉隆坡绿化率非常高,城市零散在植被中:

    吉隆坡夜晚
    (more…)

  • 这是早期(2011年底)在淘宝内部做的一次分享,主要是面向内部的研发人员介绍如何进行深度的数据库优化与问题排查。在本次分享中介绍了如下内容:

    • 淘宝的数据库监控系统是如何工作的
    • 如何使用数据库监控系统”天机”发现和诊断MySQL数据库的问题
    • 如何通过慢日志以及相关工具(mk-query-digest)发现数据库的问题
    • 如何使用orzdba (淘宝内部工具)诊断数据库问题
    • 如何使用gdb、tcpdump、oprofiled等Linux工具诊断MySQL问题

    (more…)
  • 今天发现Percona Release的Percona-Server-5-5-18-23-0已经完成了Group Commit工作,而且是用最优雅的方式(移植了MariaDB的实现,而不是workaround),心里难掩激动。

    这篇文章接前篇继续介绍一下问题的背景:什么是Group Commit,现在的官方版本Group Commit做到了什么程度?

    1. 什么是Group Commit

    MySQL/InnoDB在做事务的时候使用的日志先行(Write-ahead logging)的方式保证事务的快速和持久,所以每次事务完成都要求日志必须持久化到磁盘,在Linux上对应的操作就是“write and fsync”,write速度是很快的,一般对应的写Page Cache,而fsync则要求文件系统把对应文件的哦Page Cache必须持久化到磁盘上,而对于传统磁盘一次写操作大约需要1~3ms(不说BBU),这意味着对于传统磁盘1秒钟最多最多做333~1000个事务,这是不理想的,对硬件的利用率(吞吐量)也是非常低。

    所以,这里就有了Group操作的概念,即当好几个线程都要fsync同一个日志文件时,我们将这些fsync合并到一次来做。简单举例:我们让系统每2ms做一次fsync,这样如果这2ms内有100个线程都需要做fsync,那就赚到了,原本100个fsync都独立来做那耗时会非常多的。

    你肯定会说,难道这不是很简单的想法吗?是的,这就是原本是很简单、也很自然的想法。

    但对MySQL来说却变成了一种奢求(看看这个Bug讨论)。

    2. 为啥MySQL一直没有实现?

    MySQL是不是太弱了,这么简单的事情都搞不定?不是的。

    MySQL从开源到现在,成功的一个非常重要的原因,就是MySQL的插件式架构。如果MySQL只是MyISAM估计不会有现在的流行程度,插件式的架构让诸如Heikki Tuuri有了发挥空间,在InnoDB和MySQL一起时,MySQL才能算是一个真正的DBMS。再到后来,有Infobright、 FEDERATED、PBXT等等。

    插件式的架构给MySQL带来了活力,做出牺牲便是在上层(MySQL)和下层(存储引擎)交互时带来的额外消耗,有时甚至上层和下层需要做一些重复工作。无法做Group Commit就是这其中的牺牲之一。

    (more…)