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
盘的写入放到效应。
(
图片来自于“
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分布式数据库技术概述 OceanBase分布式数据库技术概述是原生分布式数据库,具有良好的扩展性和容灾能力。 OceanBase给用户透明的体验,像使用单机数据库一样使用分布式数据库。没有分库分表的烦恼,支持...
"atma-io-middleware-base"是一个专注于前端IO操作的开源库,它属于ATMA.IO中间件库的一部分,主要负责提供IO操作的底层抽象和中间件处理机制。这个库的目标是帮助开发者更轻松地处理文件读写、网络请求等数据交换...
标题中的“platform-intel_mcs51-develop_PlatformIO_base_MCS51_”暗示了这是一个基于PlatformIO的开发平台,特别针对Intel的MCS51系列微控制器。PlatformIO是一个开源的集成开发环境(IDE),它允许开发者在各种...
"Oracle数据库优化之数据库磁盘IO" Oracle数据库优化之数据库磁盘IO是指数据库管理员和开发者对Oracle数据库进行优化,以提高数据库的性能和稳定性。数据库磁盘IO是影响数据库性能的重要因素之一,因此优化数据库...
数据库异地备份是保护数据安全的重要措施之一,尤其是在大型企业或关键业务系统中,确保数据的完整性和可恢复性至关重要。本篇文章将详细讲解如何利用C#编程语言和SQL Server数据库管理系统,实现将服务器上的数据库...
OceanBase 1.0是一款分布式数据库系统,以其可扩展性、高可用性和低成本而著称。该系统在数据存储、分布式查询以及高可用性方面展现出独特的优势,尤其适用于大规模、高并发的业务场景。 一、OceanBase数据存储架构...
在压缩包文件`jgraph-draw.io-49e1658`中,可能包含了以下内容: 1. **源代码**:可能是jgraph-draw.io应用程序的HTML、CSS和JavaScript文件,用于构建和运行Web应用。 2. **库文件**:jGraph库的JavaScript文件,...
在PROFINET网络配置时,若已经将CP343-1配置为IOController,PROFINET-IO-System设置就会使得CP343-1作为IOController工作,此时无法再选择IODevice功能,因为模块在同一时刻只能承担其中一个角色。当模块被设置为IO...
提供了在设计和实现高速串行I/O系统时可能会遇到的问题及其解决策略,帮助读者在实践中避免和克服常见困难。 8. **附录C:进一步学习资源** 为读者提供了扩展阅读和深入研究的资料,包括参考书籍、在线论坛、...
在本项目"JAVA-快递管理系统-无数据库-IO"中,我们主要关注的是使用Java编程语言构建一个不依赖于数据库的快递管理应用。这个系统利用Java的输入/输出(IO)功能来处理数据,而非存储在关系型数据库中。下面将详细...
Java高级教程涵盖了多个主题,包括Java的IO系统和数据库交互,特别是通过JDBC。Java的IO(输入/输出)框架是处理数据传输的核心组件,无论是从文件、网络还是内存。让我们详细探讨一下Java IO的主要内容。 1. **...
根据所提供的文件内容,下面将对OceanBase数据库的相关知识点进行详细阐述: ### OceanBase数据库概述 OceanBase数据库是由阿里巴巴集团研发的分布式关系数据库,旨在处理大规模的数据挑战。它能实现数千亿条记录、...
在本案例中,我们讨论的是"commons-io-2.4"版本,这个版本包含了完整的Apache Commons IO库的jar包和源代码,适用于JDK 1.6及以上版本。 Apache Commons IO 提供了许多实用工具类,使得开发者在处理输入/输出操作时...
在IT行业中,IO-Compress-Base是一个关键的模块,主要功能是提供文件的压缩和解压缩服务。这个模块使得开发者能够轻松地处理各种常见的压缩格式,如tar、zip和bzip2,这些都是数据存储和传输中广泛使用的压缩标准。 ...
1.建立索引的目的是( )。 A.加快数据库的打开速度 B.提高 SQL Server 数据检索的速度 C....使用 set statistics io 语句 B.使用 set statistics time 语句 C.使用 set statistics CPU 语句 D.使用 set statistics
### Oracle数据库服务器IO高的分析方案 #### 前言 在日常运维中,经常会遇到Oracle数据库服务器出现IO过高的情况,这种情况可能导致业务系统的响应速度变慢,甚至影响正常服务的提供。本文旨在深入探讨Oracle...
在压缩包中,除了`commons-io-2.4.jar`本身,还有其他URL文件,可能是提供额外资源的链接,如"去脚本之家看看.url"可能指向一个编程资源网站,"领取天猫淘宝内部优惠券.url"可能是促销信息,而"服务器软件.url"可能...
在“开源项目-dgraph-io-dgraph.zip”这个压缩包中,我们主要关注的是Dgraph的源代码,特别是版本v0.3的发布。 首先,Dgraph的核心特性包括ACID事务、水平扩展性以及强大的查询能力。它使用GraphQL-Like查询语言...
OceanBase是阿里巴巴集团自主研发的分布式关系型数据库,自2012年8月以来,它已经支持了如收藏夹、直通车报表、天猫评价等OLTP(在线事务处理)和OLAP(在线分析处理)业务,承载的数据量超过千亿条记录以及数百TB的...