`
cryolite
  • 浏览: 578826 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Why Existing Databases (RAC) are So Breakable!

阅读更多
Why Existing Databases (RAC) are So Breakable!

核心观点:数据库之所以不可靠是因为磁盘不可靠。而数据库RAC可靠的前提是建立在磁盘非常可靠的基础上的。

该文认为磁盘不可靠的理由:
  1. 实际的每年磁盘出错率是3%,而不是大多数人认为的0.5-0.9%,两者相差6倍多;
  2. 磁盘出错率与磁盘类型无关,无论SCSI还是SATA,因此所谓的高端磁盘设备并不能保证一定比普通磁盘可靠更多;RAID呢,该文引用John Mitchell观点,认为既然RAID的磁盘都是在同一个“盒子”里(它们有着相同的存储模型、有着相同的数据负载并共享同一个电源,处于相同的温度),如果其中某块磁盘因为某种原因坏了,那么其它磁盘以同样的原因坏掉的可能性也很高
  3. 温度越高的硬盘反而比温度硬盘出错率低。DIY的同学小心了,降温的时候最好绕开硬盘直接给CPU降温。

结论:磁盘出错是不可避免的,因此数据库的设计要针对这一点。Amazon负责S3的资深工程师Jason McHugh他的演讲Amazon S3: Architecting For Resieliency In The Face Of Failures中也提到Amazon的Simple Storage的设计:不要试图阻止错误的发生,应该假设错误是不可避免的,然后针对这一点进行设计:容错而不是免错。

有趣的是TC的作者Mikio Hirabayashi在Is it Really Durable?一文中也有类似的结论,他在日本最大的网站之一mixi.jp工作,负责数据存储部分,该网站写的吞吐量超过 10,000 QPS,最常见的数据库当掉的原因是硬件故障(尤其是磁盘故障和RAID控制器故障)引起的,他们的解决方案是数据复制:每个数据库服务器至少有一个从数据库服务器,因此每份数据只是复制在两个地方,一个坏掉就替换为新服务器,相应的数据也复制到新服务器上。

耸人听闻的是该文“指出”:内存比磁盘要可靠
作者认为对于单个机器,内存确实是不可靠的,但是如果将数据的多个分布到一个机群中时,情况不同了。作者还引用RAM is the new disk

作者在GigaSpaces/Cisco工作,正在为Cisco UCS做相关的实验,据说实验结果比较鼓舞人心。


其他参考资料:
http://gashero.iteye.com/blog/416720

分享到:
评论

相关推荐

    Oraclelinux6.7+Oracle11.2.0.4+RAC安装文档

    用户需要选择“Install or upgrade an existing system”项,以开始安装过程。 3. 安装选项:系统会开始获取信息,之后用户可以选择“Skip”跳过对安装光盘的检查。 4. 语言选择:在安装向导中,需要选择语言,...

    Are Existing Maxwell’s Equations in Media Correct?

    Are Existing Maxwell’s Equations in Media Correct?,张涛,,It has been believed that the expression of Faraday’s law of induction of the existing Maxwell’s equations has the same form in media as ...

    mac os x将C文件编译成.so库

    在Mac OS X系统中,将C语言源代码编译成动态库(.so库)是开发者经常遇到的任务,尤其在跨平台开发或者与Unity等游戏引擎集成时。本篇文章将详细讲解如何在Mac环境下,利用GCC编译器将C文件转化为适用于Unix-like...

    Oracle RAC ACFS安装与卸载

    ### Oracle RAC ACFS安装与卸载 #### 一、在RAC上手动安装ACFS/ADVM模块 ##### 1、验证内存中是否存在 ACFS/ADVM 模块: 在进行任何安装步骤前,首先需要确认当前系统内存中是否已经安装了ACFS/ADVM模块。这一步...

    Refactoring Improving The Design Of Existing Code

    Refactoring Improving The Design Of Existing Code

    510(k)-for-a-Change-to-an-Existing-Device.pdf

    a Change to an Existing Device Guidance for Industry and Food and Drug Administration Staff Document issued on October 25, 2017. The draft of this document was issued on August 8, 2016. This ...

    Pro ActiveRecord Databases

    they go a long way toward getting you started with the library. However, because they are addressing a larger scope, all of the existing books also fall short in exposing the hidden features ...

    Refactoring: Improving the Design of Existing Code 第二版

    Martin大叔经典著作《重构》第二版,仅供交流学习之用。 This eagerly awaited new edition has been fully updated to reflect crucial changes in the programming landscape.Refactoring, Second Edition,...

    Refactoring Improving The Design of Existing Code

    Refactoring Improving The Design of Existing Code 重构已有代码

    Refactoring: Improving the Design of Existing Code

    《重构:改善既有代码的设计》是由马丁·福勒(Martin Fowler)、厄文·贝克(Erich Beck)、戴夫·布兰特(Dave Brant)和安德鲁·奥普迪克(Andreas Opdyke)以及约翰·罗伯茨(John Roberts)合著的一本经典软件...

    Refactoring Improving the Designof Existing Code(中英文版)

    《Refactoring: Improving the Design of Existing Code》是软件开发领域的一本经典著作,由Martin Fowler著述。这本书深入探讨了重构这一关键的软件工程实践,对于Java开发者来说尤其具有指导意义。重构是指在不...

    refactoring-improving the design of existing code.pdf

    《重构:改善既有代码的设计》是一本专注于软件开发领域的经典著作,由Martin Fowler著述,主要探讨了如何通过重构技术来提升现有代码的设计质量。重构是软件开发过程中的一个重要环节,它并不改变软件的外部行为,...

    ERStudio8.0UserGuide.pdf

    and optimize existing databases. Productivity gains and organizational standards enforcement can be achieved with ER/Studio's strong collaboration capabilities. ER/Studio offers: • Model-driven ...

    Deciding-When-to-Submit-a-510(k)-for-a-Software-Change-to-an-Existing-Device.pdf

    510(k) for a Software Change to an Existing Device ______________________________________________________________________________ Guidance for Industry and Food and Drug Administration Staff ...

    Refactoring(Improving the Design of Existing Code)

    标题《重构:改善既有代码的设计》指的是Martin Fowler等人撰写的一本软件工程领域的经典图书。这本书专注于一个非常重要的软件开发实践,即重构(Refactoring)。重构指的是在不改变外部功能的前提下,对软件的内部...

Global site tag (gtag.js) - Google Analytics