词法分析利器:Flex介绍基础篇

September 22nd, 2011 Comments off

Categories: 数据库 Tags:

mysqld: Got error 514 from select

September 22nd, 2011 No comments

在线上一台MySQL机器遇到这样的问题:

MySQL无法连接,pstack 无法打印出MySQL的stack trace。在alert.log里仅有一条error:

110829 20:25:51 [ERROR] mysqld: Got error 514 from select

这条语句出现在监测到问题之前发生(精确的时间点我这没有拿到)。

查了下是select系统调用的一个bug。有这么一句解释:此错误是用户程序不应该看到的, 不幸被MySQL看到了:
errno 514 is ERESTARTNOHAND (restart if no handler), and is in a section marked as “should never be seen by user programs”.

对于的OS和MySQL版本信息如下:

$ uname -a
Linux dev031033.sqa.cm4 2.6.9-55.ELsmp #1 SMP Fri Apr 20 16:36:54 EDT 2007 x86_64 x86_64 x86_64 GNU/Linux
$ mysql –version
mysql Ver 14.14 Distrib 5.1.37, for unknown-linux-gnu (x86_64) using EditLine wrapper

那只能很不幸的说,在2.6.9版本中确实有这么一个bug,但这个bug在2.6.38中已经进行了处理,将ERESTARTNOHAND替换成EINTR: Read more…

Categories: 数据库 Tags:

mysql binlog的row模式数据解析

September 16th, 2011 No comments

drc-mysql是一种支持多master多slave的快速并行复制的解决方案,基于mysql的binlog,目前支持binlog的STATEMENT模式。为了实现drc-mysql对ROW模式的支持,本文对此展开研究,分析了binlog的事件格式,并针对不同的数据类型进行解析。

本文的目的是为了展示如何从row模式事件中解析数据,因此事件中一些记录其他信息的字节会直接略过,感兴趣的同学可以看看log_event.h以及log_event.cc两个文件。

 

获取Binlog事件:

Mysql对Binlog的处理是以事件为单位的,每一次DML操作可能会产生多次事件,例如对于innodb存储引擎,会额外产生一条QUERY_EVENT(事务的begin语句)以及XID_EVENT(事务提交)。

通过调用libmysql.so库中的cli_safe_read()函数可以获取一次binlog事件:

cli_safe_read(mm);   // mm类型为MYSQL*

net =  &mm->net;

buf = (const char*) net->read_pos + 1; Read more…

Categories: 数据库 Tags: ,

2011产品DBA全新招聘

July 21st, 2011 2 comments

2011年,淘宝产品DBA团队全新定位,现面向社会招聘,岗位要求如下:

产品DBA

1、熟悉MySQL数据库体系结构与性能优化
2、熟悉关系数据库原理与设计,有大型项目的数据库设计和支持经验优先
3、精通SQL调优
4、熟悉unix/linux操作系统的使用
5、熟悉shell&perl编程
6、大学本科以上,计算机相关专业

我们更希望你具有如下的能力或潜质:
1、良好的C,C++或者java编程能力
2、了解分布式Cache,或者一些NoSQL产品的源代码
3、对Hadoop大数据量计算,或者对HBase在线应用有一些尝试,或者对这方面感兴趣

如果你具有如下的能力,我们将更加欢迎:
1、良好的产品领悟能力,以及系统架构,分析能力
2、恰当合理的利用各种技术,解决业务系统瓶颈,以及未来发展问题

在淘宝,可以接触大量实际的业务需求,海量数据,高并发,每天都在面对挑战,至身这样的环境,你每天不得不去思考,每天去解决各种各样的问题,如果自己长时间解决不了,你可以寻求淘宝牛人的帮助。开放,相互帮助是淘宝的氛围。这是一条快速成长的捷径,快点加入我们吧。 简历请发送至 danchen(#)taobao.com ,将(#)换成@

Categories: 招聘 Tags: ,