阿里、微众、PingCAP专家分享如何解决可观测性带来的埋点成本上升、观测数据割裂等挑战。戳 了解详情
写点什么

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

  • 2012 年 3 月 01 日
  • 本文字数:1321 字

    阅读完需:约 4 分钟

深入的“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 年 3 月 01 日 20:102697
用户头像

发布了 479 篇内容, 共 137.7 次阅读, 收获喜欢 39 次。

关注

评论

发布
暂无评论
发现更多内容

我懵了,面试大厂被熟悉的App启动流程和RecycleView连环三问坑了

程序员 移动开发

我的Android 求职简历,二本渣校,靠这份简历拿下BATJ等15家大厂Offer

android 程序员 移动开发

手把手教你打通车载蓝牙与手机app的音频信息传输&车载反向控制手机app

android 程序员 移动开发

手把手讲解-一个复杂动效的自定义绘制2,html5移动端开发框架

android 程序员 移动开发

手撕专有钉钉Android面试题完全指南(1),2021年网易Android岗面试必问

android 程序员 移动开发

打造自己的Android常用知识体系,android音视频开发面试

android 程序员 移动开发

拥抱-Koin,放弃-Dagger吧!,android开发技术难点

android 程序员 移动开发

我敢打赌!你从未见过如此简单的Dagger-导航---基于-Android-Studio-4-1

android 程序员 移动开发

我是怎么把业务代码越写越复杂的 _ MVP - MVVM - Clean Architecture

android 程序员 移动开发

手把手讲解IPC框架,成为一名合格Android架构师

android 程序员 移动开发

技术迭代迷茫?Android资深架构师教你如何打破这个局面!

android 程序员 移动开发

插件化框架解读之Class文件与Dex文件的结构(一),Android详解

android 程序员 移动开发

我在阿里当Android面试官的这几年,这些通用问题你不避雷你就废了!

android 程序员 移动开发

我草-28岁就年薪百万??直到我看到这个Alibaba Android技术图谱

android 程序员 移动开发

拿来吧你,Compose尝鲜初体验!,Android开发真等于废人

android 程序员 移动开发

我怎么感觉全世界都在劝退学Android的程序员?,从外包月薪5K到阿里月薪15K

android 程序员 移动开发

我的副业已经成为了我的主业,Android软件开发面试题

android 程序员 移动开发

手撕专有钉钉Android面试题完全指南,安卓开发入门书籍

android 程序员 移动开发

掌握Android和Java线程原理上,跨平台移动开发工具

android 程序员 移动开发

插件化框架解读之Android-资源加载机制详解(二),kotlin语法印章类

android 程序员 移动开发

插件化库VirtualAPK详解,你头秃都没想到还能这样吧

android 程序员 移动开发

我是如何在一晚上拿到阿里巴巴Android研发offer的?,三年经验Android开发面经总结

android 程序员 移动开发

手把手讲解--性能优化案例(2)app卡顿优化,androidsdk开发封装

android 程序员 移动开发

换个姿势,带着问题看Handler,android应用程序开发的流程

android 程序员 移动开发

把Flutter扩展到微信小程序端的探索,androidstudio汉化

android 程序员 移动开发

抱着试一试的心态,没想到还真被录用了!年后我收到的第一个offer

android 程序员 移动开发

插件化框架解读之android系统服务实现原理(五),毕业工作5年被裁

android 程序员 移动开发

我对Flutter的第一次失望,websocketapp保活

android 程序员 移动开发

我把阿里、腾讯、字节跳动,flutter插件化

android 程序员 移动开发

拔刀金九银十:2020年最新BAT大厂 Android 面试知识点,安卓开发入门到精通

android 程序员 移动开发

插件化&热修复系列——ClassLoader方案设计,开源至上

android 程序员 移动开发

Techo Day 腾讯技术开放日「轻量级云开发与云应用」

Techo Day 腾讯技术开放日「轻量级云开发与云应用」

2012.03.02 微博热报:Linux异步I/O与Google vitess项目_Linux_郑柯_InfoQ精选文章