【ArchSummit 】国内外100+顶尖专家齐聚 ,AI、云原生、数智化全面囊括! 了解详情
写点什么

RAM 是新的硬盘

  • 2008-07-08
  • 本文字数:1890 字

    阅读完需:约 6 分钟

Jim Gray 在过去 40 年中对技术发展有过巨大的贡献,“内存是新的硬盘,硬盘是新的磁带”是他的名言。“实时”Web 应用不断涌现,达到海量规模的系统越来越多,这种后浪推前浪的发展模式对软硬件又有何影响? Tim Bray 早在网格计算成为热门话题之前,就讨论过以 RAM 和网络为中心的硬件结构的优势,可以用这种硬件建立比磁盘集群速度更快的 RAM 集群。

对于数据的随机访问,内存的速度比硬盘高几个数量级(即使是最高端的磁盘存储系统也只是勉强达到 1,000 次寻道 / 秒)。其次, 随着数据中心的网络速度提高,访问内存的成本更进一步降低。通过网络访问另一台机器的内存比访问磁盘成本更低。就在我写下这段话的时候,Sun 的 Infiniband 产品线中有一款具备 9 个全互联非阻塞端口交换机,每个端口的速度可以达到 30Gbit/sec!Voltaire 产品的端口甚至更多;简直不敢想象。(如果你想了解这类超高性能网络的最新进展,请关注 Andreas Bechtolsheim 在 Standford 开设的课程。)

Tim 还指出 Jim Gray 的名言中后半句所阐述的真理:“对于随机访问,硬盘慢得不可忍受;但如果你把硬盘当成磁带来用,它吞吐连续数据的速率令人震惊;它天生适合用来给以 RAM 为主的应用做日志(logging and journaling)。” 时间闪到几年之后的今天,我们发现硬件的发展趋势在 RAM 和网络领域势头不减,而在硬盘领域则止步不前。Bill McColl 提到用于并行计算的海量内存系统已经出现

内存是新的硬盘!硬盘速度提高缓慢,内存芯片容量指数上升,in-memory 软件架构有望给各类数据密集的应用带来数量级的性能提升。小型机架服务器(1U、2U)很快就会具备 T 字节、甚至更大量的内存,这将会改变服务器架构中内存和硬盘之间的平衡。硬盘将成为新的磁带,像磁带一样作为顺序存储介质使用(硬盘的顺序访问相当快速),而不再是随机存储介质(非常慢)。这里面有着大量的机会,新产品的性能有望提高 10 倍、100 倍。

Dare Obsanjo 指出如果不把这句真言当回事,会带来什么样的恶劣后果—— 也就是Twitter 正面临的麻烦。论及Twitter 的内容管理,Obsanjo 说,“如果一个设计只是简单地反映了问题描述,你去实现它就会落入磁盘 I/O 的地狱。不管你用Ruby on Rails、Cobol on Cogs、C++ 还是手写汇编都一样,读写负载照样会害死你。”换言之,应该把随机操作推给RAM,只给硬盘留下顺序操作。 Tom White Hadoop Core 项目的提交者,也是 Hadoop 项目管理委员会的成员。他对 Gray 的真言中“硬盘是新的磁带”部分作了更深入地探讨。White 在讨论 MapReduce 编程模型的时候指出,为何对于 Hadloop 这类工具来说,硬盘仍然是可行的应用程序数据存储介质:

本质上,在 MapReduce 的工作方式中,数据流式地读出和写入硬盘,MapReduce 是以硬盘的传输速率不断地对这些数据进行排序和合并。 与之相比,访问关系数据库中的数据,其速率则是硬盘的寻道速率(寻道指移动磁头到盘面上的指定位置读取或写入数据的过程)。为什么要强调这一点?请看看寻道时间和磁盘传输率的发展曲线。寻道时间每年大约提高 5%,而数据传输率每年大约提高 20%。寻道时间的进步比数据传输率慢——因此采用由数据传输率决定性能的模型是有利的。MapReduce 正是如此。

虽然固态硬盘(SSD)能否改变寻道时间 / 传输率的对比还有待观察, White 文章的跟贴中,很多人都认为 SSD 会成为 RAM/ 硬盘之争中的平衡因素。 Nati Shalom 对内存和硬盘在数据库部署和使用中的角色作了一番有理有据的评述。 Shalom 着重指出用数据库集群和分区来解决性能和可伸缩性的局限。他说,“数据库复制和数据库分区都存在相同的基本问题,它们都依赖于文件系统 / 硬盘 的性能,建立数据库集群也非常复杂”。他提议的方案是转向 In-Memory Data Grid(IMDG),用 Hibernate 二级缓存或者 GigaSpaces Spring DAO 之类的技术作支撑,将持久化作为服务(Persistence as a Service)提供给应用程序。Shalom 解释说,IMDG

提供在内存中的基于对象的数据库能力,支持核心的数据库功能,诸如高级索引和查询、事务语义和锁。IMDG 还从应用程序的代码中抽象出了数据的拓扑。通过这样的方式,数据库不会完全消失,只是挪到了“正确的”位置。

IMDG 相比直接 RDBMS 访问的优势列举如下: - 位于内存中,速度和并发能力都比文件系统优越得多

  • 数据可通过引用访问
  • 直接对内存中的对象执行数据操作
  • 减少数据的争用
  • 并行的聚合查询
  • 进程内(In-process)的局部缓存
  • 免除了对象 - 关系映射(ORM)

你是否需要改变对应用和硬件的思维方式,最终取决于你要用它们完成的工作。但似乎公论认为,开发者解决性能和可伸缩性的思路已经到了该变一变的时候。

查看英文原文: RAM is the new disk…

公众号推荐:

跳进 AI 的奇妙世界,一起探索未来工作的新风貌!想要深入了解 AI 如何成为产业创新的新引擎?好奇哪些城市正成为 AI 人才的新磁场?《中国生成式 AI 开发者洞察 2024》由 InfoQ 研究中心精心打造,为你深度解锁生成式 AI 领域的最新开发者动态。无论你是资深研发者,还是对生成式 AI 充满好奇的新手,这份报告都是你不可错过的知识宝典。欢迎大家扫码关注「AI前线」公众号,回复「开发者洞察」领取。

2008-07-08 08:492634
用户头像

发布了 225 篇内容, 共 61.3 次阅读, 收获喜欢 50 次。

关注

评论

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

GitHub上14个屌炸天的Java进阶教程、面试真题项目,建议收藏

爱好编程进阶

Java 程序员 后端开发

2021 企业架构(EA)状态调查报告

涛哥 数字产品和业务架构

企业架构

复杂任务中,流程的解耦设计

架构 事件驱动 任务管理 异步设计

集成 ShenYu 网关实现 Dubbo 泛化调用

码农大熊

盘古开发框架 Dubbo网关 泛化调用 ShenYu网关

Nginx 的日志

HoneyMoose

GitHub持续霸榜!2021年Java核心知识:面试突击版

爱好编程进阶

Java 程序员 后端开发

C语言_语句与位运算练习

DS小龙哥

5月月更

百万级电商秒杀架构设计

晨亮

「架构实战营」

python之pythonic

AIWeker

Python 人工智能 5月月更

【愚公系列】2022年05月 二十三种设计模式(八)-组合模式(Composite Pattern)

愚公搬代码

5月月更

Nacos源码系列—服务端那些事儿

牧小农

源码 nacos

python使用 pywin32 模块操作 excel,Python 操作 excel 系列之五

梦想橡皮擦

5月月更

面向对象的系统分析

奔向架构师

信息系统 5月月更

Day433

爱好编程进阶

Java 程序员 后端开发

机器学习:真正的底层是什么?

海拥(haiyong.site)

5月月更

模块五作业

HZ

架构实战营 #架构实战营

java内存模型之happenbefore原则

急需上岸的小谢

5月月更

Day262

爱好编程进阶

Java 程序员 后端开发

ElasticSearch入门(三)Logstash实现MySQL数据同步至ElasticSearch

爱好编程进阶

Java 程序员 后端开发

Github已标星80

爱好编程进阶

Java 程序员 后端开发

全链路压测(十一):聊聊稳定性预案

老张

性能测试 全链路压测

八、高可用之故障隔离

穿过生命散发芬芳

5月月更 高可用设计

抖音严打虚假宣传滋补膳食内容广告主:必须严格监管信息流广告

石头IT视角

Docker容器重启慢?快来看看这些优雅终止方案

爱好编程进阶

Java 程序员 后端开发

ftp命令解决文件的上传和下载

爱好编程进阶

Java 程序员 后端开发

如何开发LAXCUS分布式应用软件(一):前言

LAXCUS分布式操作系统

集群 并行计算 分布式操作系统 分布式应用软件

模块5 作业

KennyQ

赫卡忒的眼眸:微光手机“夜视仪”是怎样炼成的?

脑极体

架构实战营总结

晨亮

「架构实战营」

模块五:作业

本人法海

「架构实战营」

【建议收藏】Mysql知识干货(mysql八股文)汇总

利志分享

面试 面试题 MySQL 数据库 面试问题 MySQL InnoDB

RAM是新的硬盘_数据库_Steven Robbins_InfoQ精选文章