`
isiqi
  • 浏览: 16703888 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

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

阅读更多

from: http://blog.sina.com.cn/s/blog_3fc85e260100qwv8.html

磁盘随机 IO 性能常常是数据库性能的决定因素,即使是 15000RPM SAS 盘,单盘也很难超过 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 盘的写入放到效应。

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

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

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

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

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

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

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

分享到:
评论

相关推荐

    OceanBase分布式数据库技术概述.pdf

    OceanBase分布式数据库技术概述 OceanBase分布式数据库技术概述是原生分布式数据库,具有良好的扩展性和容灾能力。 OceanBase给用户透明的体验,像使用单机数据库一样使用分布式数据库。没有分库分表的烦恼,支持...

    前端开源库-atma-io-middleware-base

    "atma-io-middleware-base"是一个专注于前端IO操作的开源库,它属于ATMA.IO中间件库的一部分,主要负责提供IO操作的底层抽象和中间件处理机制。这个库的目标是帮助开发者更轻松地处理文件读写、网络请求等数据交换...

    platform-intel_mcs51-develop_PlatformIO_base_MCS51_

    标题中的“platform-intel_mcs51-develop_PlatformIO_base_MCS51_”暗示了这是一个基于PlatformIO的开发平台,特别针对Intel的MCS51系列微控制器。PlatformIO是一个开源的集成开发环境(IDE),它允许开发者在各种...

    Oracle数据库优化之数据库磁盘IO

    "Oracle数据库优化之数据库磁盘IO" Oracle数据库优化之数据库磁盘IO是指数据库管理员和开发者对Oracle数据库进行优化,以提高数据库的性能和稳定性。数据库磁盘IO是影响数据库性能的重要因素之一,因此优化数据库...

    数据库异地备份--将服务器数据库文件备份到本地电脑

    数据库异地备份是保护数据安全的重要措施之一,尤其是在大型企业或关键业务系统中,确保数据的完整性和可恢复性至关重要。本篇文章将详细讲解如何利用C#编程语言和SQL Server数据库管理系统,实现将服务器上的数据库...

    OceanBase 1.0:分布式技术架构.pdf

    OceanBase 1.0是一款分布式数据库系统,以其可扩展性、高可用性和低成本而著称。该系统在数据存储、分布式查询以及高可用性方面展现出独特的优势,尤其适用于大规模、高并发的业务场景。 一、OceanBase数据存储架构...

    jgraph-draw.io

    在压缩包文件`jgraph-draw.io-49e1658`中,可能包含了以下内容: 1. **源代码**:可能是jgraph-draw.io应用程序的HTML、CSS和JavaScript文件,用于构建和运行Web应用。 2. **库文件**:jGraph库的JavaScript文件,...

    西门子为什么CP343-1不能选择IO设备功能.pdf

    在PROFINET网络配置时,若已经将CP343-1配置为IOController,PROFINET-IO-System设置就会使得CP343-1作为IOController工作,此时无法再选择IODevice功能,因为模块在同一时刻只能承担其中一个角色。当模块被设置为IO...

    High-speed serial IO made simple 中文版

    提供了在设计和实现高速串行I/O系统时可能会遇到的问题及其解决策略,帮助读者在实践中避免和克服常见困难。 8. **附录C:进一步学习资源** 为读者提供了扩展阅读和深入研究的资料,包括参考书籍、在线论坛、...

    JAVA-快递管理系统-无数据库-IO

    在本项目"JAVA-快递管理系统-无数据库-IO"中,我们主要关注的是使用Java编程语言构建一个不依赖于数据库的快递管理应用。这个系统利用Java的输入/输出(IO)功能来处理数据,而非存储在关系型数据库中。下面将详细...

    Java高级教程课件 java数据库教程 JDBC教程 1-java-IO(1)(共47页).pptx

    Java高级教程涵盖了多个主题,包括Java的IO系统和数据库交互,特别是通过JDBC。Java的IO(输入/输出)框架是处理数据传输的核心组件,无论是从文件、网络还是内存。让我们详细探讨一下Java IO的主要内容。 1. **...

    OceanBase 0.4.1 描述.pdf

    根据所提供的文件内容,下面将对OceanBase数据库的相关知识点进行详细阐述: ### OceanBase数据库概述 OceanBase数据库是由阿里巴巴集团研发的分布式关系数据库,旨在处理大规模的数据挑战。它能实现数千亿条记录、...

    commons-io-2.4 包含了所有commons-io的jar包和源码

    在本案例中,我们讨论的是"commons-io-2.4"版本,这个版本包含了完整的Apache Commons IO库的jar包和源代码,适用于JDK 1.6及以上版本。 Apache Commons IO 提供了许多实用工具类,使得开发者在处理输入/输出操作时...

    IO-Compress-Base

    在IT行业中,IO-Compress-Base是一个关键的模块,主要功能是提供文件的压缩和解压缩服务。这个模块使得开发者能够轻松地处理各种常见的压缩格式,如tar、zip和bzip2,这些都是数据存储和传输中广泛使用的压缩标准。 ...

    1数据库题库2-数据库L1-1.doc

    1.建立索引的目的是( )。 A.加快数据库的打开速度 B.提高 SQL Server 数据检索的速度 C....使用 set statistics io 语句 B.使用 set statistics time 语句 C.使用 set statistics CPU 语句 D.使用 set statistics

    Oracle数据库服务器IO高的分析方案.docx

    ### Oracle数据库服务器IO高的分析方案 #### 前言 在日常运维中,经常会遇到Oracle数据库服务器出现IO过高的情况,这种情况可能导致业务系统的响应速度变慢,甚至影响正常服务的提供。本文旨在深入探讨Oracle...

    commons-io-2.4.jar包 官方免费版

    在压缩包中,除了`commons-io-2.4.jar`本身,还有其他URL文件,可能是提供额外资源的链接,如"去脚本之家看看.url"可能指向一个编程资源网站,"领取天猫淘宝内部优惠券.url"可能是促销信息,而"服务器软件.url"可能...

    开源项目-dgraph-io-dgraph.zip

    在“开源项目-dgraph-io-dgraph.zip”这个压缩包中,我们主要关注的是Dgraph的源代码,特别是版本v0.3的发布。 首先,Dgraph的核心特性包括ACID事务、水平扩展性以及强大的查询能力。它使用GraphQL-Like查询语言...

    OceanBase 0.4.2 描述.pdf

    OceanBase是阿里巴巴集团自主研发的分布式关系型数据库,自2012年8月以来,它已经支持了如收藏夹、直通车报表、天猫评价等OLTP(在线事务处理)和OLAP(在线分析处理)业务,承载的数据量超过千亿条记录以及数百TB的...

Global site tag (gtag.js) - Google Analytics