淘宝海量数据库之六-克服随机IO难题

标签: 淘宝 量数 随机 | 发表时间:2011-05-28 14:00 | 作者:kern William
出处:http://blog.sina.com.cn/kern0612

磁盘随机IO性能常常是数据库性能的决定因素,即使是15000RPMSAS盘,单盘也很难超过300IOPS,对于传统关系数据库,磁盘随机IO是个多年的老大难问题,目前尚无令人满意的解决方案,风轻扬的博客(数据库如何抵抗随机IO:问题、方法与现实,http://wangyuanzju.blog.163.com/blog/static/13029201132154010987/)一文中提到了一些关于此问题进展。

 

与传统磁盘相比,SSD固态盘提供了非常好的随机读性能,单盘可达35000IOPS (4KB)甚至更高,并提供512MB/s或以上的读出带宽。但通常SSD盘的随机写性能甚至比一般磁盘更差,这是因为,尽管SSD的读和写都以4KB(page)为单位,但SSD写入前需要先擦除已有内容,而擦除以块(block)为单位,一个块(block)通常是128个连续的页(page),即512KB。假如写入的页(page)内有内容,即使是写入一个字节,SSD也需要把整个128(512KB)内容先读到内存,与要写入的内容融合,擦除这128页所在的块(block),然后再重新写入整个512KB数据,这就是SSD盘的写入放到效应。

 

 

(图片来自于“SSD的写入放大 - Write amplification”,

http://iqalantam.blog.163.com/blog/static/5393552201121481111304/)

 

假设每次随机写入1KB,即便SSD能够提供1K/秒的随机写入能力,根据上面的分析,对应的写入放大将把SSD512MB/s的读出带宽全部消耗掉,也就是说,这种情况下,SSD已经无法提供读服务。因此,在传统关系数据库中,普通SSD难以获得令人满意的性能。

 

淘宝海量数据库OceanBase采用与经典关系数据库不同的设计:OceanBase既实现了增删改在内的跨行跨表写事务,又完全摒弃了随机写,除了操作日志(commit log)总是顺序追加写入到普通SAS盘上,剩下的写请求就是对响应时间要求不是很高的批量顺序写,SSD盘完全可以轻松应对,而许多响应查询请求的随机读,更可以充分发挥SSD良好的随机读性能

 

从测试结果来看,OceanBase在一台装有多块SSD盘的服务器上获得了数万QPS的查询性能(大约是所有SSD盘的聚合QPS40%左右,因此还有提升空间),这使得一台装备SSD盘的服务器可以提供5-10台同样配置但装备15000RPM SAS盘的服务器。尽管SSD盘大约是同样容量的SAS盘价格的3~4倍,在OceanBase数据库环境下,由于机器数量的大幅度减少,不仅机器采购成本降低了,机架、网络带宽等运维费用更是大幅度降低,总体成本也降低很多。

 

此外,由于SSD盘的功耗(0.06W-3.5W)明显低于SAS(12W-15W3.5”),因此能源消耗的降低更多。

 

相关 [淘宝 量数 随机] 推荐:

淘宝海量数据库之六-克服随机IO难题

- William - 阳振坤的博客
与传统磁盘相比,SSD固态盘提供了非常好的随机读性能,单盘可达35000IOPS (4KB)甚至更高,并提供512MB/s或以上的读出带宽. 但通常SSD盘的随机写性能甚至比一般磁盘更差,这是因为,尽管SSD的读和写都以4KB页(page)为单位,但SSD写入前需要先擦除已有内容,而擦除以块(block)为单位,一个块(block)通常是128个连续的页(page),即512KB.

从淘宝网首页看内容随机展示应用

- - 互联网的那点事...
开始之前先解释下相关概念,当然都是按自己的理解杜撰的. 从下图可以看到,现在的网站,特别是电子商务网站,都有内容切换模块. 基本上分为两种,一种是tab内容切换/js轮转切换,都是用户可以手动点击切换或自动切换,用户可以查看所有内容,但一次只能查看一个单元内容,称之为“显性隐藏”;一种是没有切换按钮,后台有一个一定容量的内容池子,在当前模块区域内只能显示固定数量的内容,除非用户刷新网页,用户看不到其余的内容,称之为“隐形隐藏”.

正祥的淘宝海量数据库思考分享

- alex zhao - 淘宝核心系统团队博客
正祥(阳振坤老师)最近在个人新浪博客上发表了一系列针对淘宝分布式数据服务系统思考性文章,特此分享. 淘宝海量数据库之一:来自业务的挑战. 淘宝海量数据库之二:一致性选择. 淘宝海量数据库之三:事务的ACID. 淘宝海量数据库之四:系统架构与跨表事务. 淘宝海量数据库之五:数据结构.

淘宝自主研发的海量数据库OceanBase开源

- beralee - cnBeta.COM
OceanBase是一个支持海量数据的高性能分布式数据库系统,实现了数千亿条记录、数百TB数据上的跨行跨表事务,由淘宝核心系统研发部、运维、DBA、广告、应用研发等部门共同完成. 在设计和实现OceanBase的时候暂时摒弃了不紧急的DBMS的功能,例如临时表,视图(view),研发团队把有限的资源集中到关键点上,当前 OceanBase主要解决数据更新一致性、高性能的跨表读事务、范围查询、join、数据全量及增量dump、批量数据导入.

淘宝海量数据产品的技术架构 - Mainz

- - 博客园_Mainz's Blog
淘宝海量数据产品的技术架构是什么,又是如何应对双十一的海量访问的. 按照数据的流向来划分,我们把淘宝数据产品的技术架构分为五层(如图1所示),分别是数据源、计算层、存储层、查询层和产品层. 位于架构顶端的是我们的数据来源层,这里有淘宝主站的用户、店铺、商品和交易等数据库,还有用户的浏览、搜索等行为日志等.

淘宝“伤”城

- 品味视界 - FT中文网_英国《金融时报》(Financial Times)
秦苏为英国《金融时报》中文网撰稿. 中国互联网的野蛮生长,再次震惊了电子商务市场. 10月11日晚间,为抗议淘宝商城大幅提高技术服务年费和保证金,约7000家中小卖家通过YY网络语音等组织方式,对韩都衣舍、欧莎、七格格、优衣库等大卖家进行攻击,包括利用规则进行购物、给差评、到货付款或申请退款等. 通过集中拍下某商品,导致这些商家的大部分商品下架“被拍死”.

淘宝维权记

- loudly - 马日拉
我先是在八月上旬从淘宝卖家“偶遇燕燕”处购买了两张高凳. 货送到时仅用塑料气泡纸包装,无硬纸包装. 因为外包装并无破损,所以当时就签收了. 快递走后,拆开包装,发现其中一个凳子凳面完全裂成两半,一个凳脚连接处完全碎裂. 两张凳子平放在一起,高度有一公分以上的落差,说明:1.卖家为减小货物体积,省略了硬质外包装,虽然物品表面由于有气泡纸保护完全无损,但运送途中,一个外形不规则的货物用脚指头想想也知道会因为堆叠、搬运等等情况,造成结构性的损毁.

淘宝养活谁

- - 《商业价值》杂志
成长在互联网时代的我们恐怕无人不知淘宝了,淘宝网由于其巨大的用户群成为了中国电子商务领域的航母. 然而这艘航母在行进过程中,伴生了无数相关联行业的成长. 首先获利的当然是淘宝的600多万商家,凭借着成本优势,电子商务已经在很大程度上深入人心,过亿的日成交额让不少淘宝商家获利颇丰. 数据显示,2011年TMALL平台品牌电商进一步增加,品牌数达7万多个,相较上年的3万个,品牌数增幅超过1倍.

伪随机和真随机

- AWard - LinuxTOY
相信每个计算机相关专业的人都理解伪随机和真随机的差别,那么它们到底“看起来”有什么差别呢. 下面是来自 Random.org 的随机数位图:. 下面是在 Windows 系统上调用 PHP 的 rand() 方法生成的:. 同样这段代码在 Linux 系统上运行时并没有出现这样的规律,换用 Mersenne Twister 的 mt_rand() 方法也没有这样的规律.

马云致全淘宝同仁公开信:淘宝是大家的淘宝

- Yu - cnBeta.COM
针对近期淘宝更改新规所引发的争议和群体事件,网络上悄然出现了一封马云的公开信,以下为公开信内容. 全体淘宝亲们:大家下午好!首先我代表阿里巴巴及淘宝公司所有员工向大家表示衷心的感谢. 感谢大家九年来对淘宝及我马云本人自始至终的信任和大力支持,感谢你们把淘宝培养成了中国最好最强最受欢迎的网络商业零售圈.