2012.03.02 微博热报:Linux异步I/O与Google vitess项目

深入的“linux异步IO浅析”

淘宝褚霸昨天推荐了一条博文:

这个同学写的linux异步IO浅析,是目前我见到的最准确和专业的: http://t.cn/zOqYBeR

这篇文章来自阿里系的向宇,褚霸认为:

如果能讲讲eventfd, io_submit批次对设备队列unplug以及aio对资源使用的限制等等就更完美了。

淘宝核心系统部内核组专家马涛(@淘伯瑜)在评论中说:

我们有计划修改内核代码,让aio变成真正的异步,目前还是有一些阻塞点让aio不是那么完美。

比如文件系统的元数据分配,再比如底层I/O系统的request分配,再比如发起I/O时的等待。

褚霸的回复是:

这应该属于vfs异步接口实现的问题,和aio框架应该关系不大。

马涛的回应:

那倒也是,但是由于aio最终到底层是direct io,所以还是会被阻塞呀,不了解这个是否会对应用产生多大的影响。

褚霸进一步说明:

我个人感觉还好,我们用aio其实是想利用批次提交,提高io电梯的合并率,同时减少没有同步系统调用等待的时间,做io这些操作反正在内核背景线程,堵下也没关系,反正应用也有心理准备。

马涛:

你是说EIOCBRETRY?这个其实真心没有几个人返回的,至少我说的那几个点都是没有返回EIOCBRETRY的,所以这只是一个美丽的神话。

褚霸:

EIOCBRETRY我翻了代码了,没几个地方实现,在实践中也没看到这个操作,确实是神话。 aio中的重试部分都白做的。

马涛:

恩,我们和社区讨论过这个EIOCBRETRY的事情,AIO的作者zach brown给出了一大堆理由,反正他认为返回EIOCBRETRY就是灾难,他以前在Oracle做了一套新方案,可惜离开后就没有继续了

褚霸:

内核开发也是各种力量角力呀。

@fengyuncrawl对这篇文章的评论是:

文章写得很详细,美中不足得是未对数据预取算法进行展开描述,数据预取的前提是对磁盘页进行顺序扫描(磁盘页邻近上下页提取),随机扫描没有预取功能。

@淘宝正明在评论中提到:

我们内核团队实现了使用page cache的内核aio,正在测试和完善中。

Google的开源vitess项目

丁香园CTO冯大辉(@Fenng)发布关于vitess项目的微博:

Google 今天开源的 vitess 项目的愿景很令人激动:「provide servers and tools to facilitate scaling of MySQL databases for the web」,特性中的绑定变量,连接池... http://t.cn/zOG1sfM

网易汪源在评论中说:

项目目标里提到Row cache,跟我们在自研存储引擎NTSE中的选择一致。NTSE的经验是,Row cache的效果好得出奇,关键是更新不会导致Cache失效且要处理好Checkpoint。

褚霸也有回复:

比我们目前在做的事情feature还多了点,我们也在跟进中。。。

何_登成有些疑问:

看了网页中的介绍,是否可以将vitess理解为MySQL的代理中间件,类似于Ameoba,或者网易的DDB。因为从其InstallHowto介绍 中,只需要用户有可运行的MySQL server即可,没提到修改MySQL内部代码。如果真是如此,那么vitess 绑定变量,连接池,甚至是row cache,难道都是在中间件层面实现的吗?How?

新浪云计算平台的DBA邱春武提到:

Fail-safes 中的查询合并、返回结果集限制、慢事物/查询处理、空闲连接回收等特性还是非常不错。

今日微博推荐

Laruence

推荐理由:百度PHP高级顾问,PHP语言开发组成员。PHP框架Yaf的作者,博客地址:风雪之隅。

你可能感兴趣的:(2012.03.02 微博热报:Linux异步I/O与Google vitess项目)