动态随机访问内存是计算机系统的核心部件,用来暂时保存计算所需的数据和中间结果。动态随机访问内存的访问延时远远小于硬盘甚至固态硬盘,微处理器需要先把访问的数据从硬盘读取到内存中,然后在内存中直接对数据进行处理,最后再将数据写回硬盘中。如果大部分数据都不在内存中,那么程序的性能将受限于硬盘的读取速度;同时,为了防止意外断电造成的数据丢失或者数据完整性被破坏,数据需要以阻塞的方式频繁写入硬盘,减少程序并发性并降低性能。持久内存的出现可以从根本上解决上述问题,常用的数据可以常驻在持久内存中,微处理器可以直接访问及处理,不需要频繁地向磁盘写入。持久内存最先在存储等场景获得广泛关注,2019年英特尔发布的傲腾持久内存把该技术的应用进一步拓展到云计算的各个细分领域。
持久内存技术是内存领域革命性的技术,从根本上改变了内存和存储设备的界限。持久内存技术对产业界和学术界产生了深远影响,涉及计算机微架构、系统硬件、固件、操作系统、开发库和应用软件等众多领域。我们在推动持久内存在互联网行业应用时发现,即便资深计算机行业从业者也需要花费几个月阅读大量的文献并进行大量的实践,才能充分掌握持久内存技术的核心概念并将其应用到自身的领域中。尽管国外的学术会议陆续有相关的研究发表,且发布了持久内存编程库的英文在线书籍,但仍然缺乏对持久内存系统性的介绍和应用实践的总结,而且中文的资源基本处于空白状态。与此相对的是,中国的云计算用户和厂商对该技术的兴趣非常高,一些早期应用原型甚至处于世界的前列。基于此,我们萌发了系统性地总结持久内存技术和应用实践的想法,以推动持久内存应用技术在中国更快、更广泛的传播,促进更多的创新。
本书作者均就职于英特尔公司,从事持久内存的开发、验证和应用等前沿工作,具备丰富的理论知识和一线实战经验,并与相关产业合作伙伴有着密切的合作。
第1章由胡寅玮负责,桂丙武参与编写;第2章由李翔负责,周瑜锋、李军、李志明参与编写;第3章由杜凡负责,任磊、杨伟参与编写;第4章由吴国安编写;第5章由束文辉编写;第6章由斯佩峰负责,吴国安、周雨馨参与编写;第7章由徐铖负责,张建、杜炜、双琳娜、刘献阳等参与编写;第8章由李志明编写。全书由李志明统稿。
本书共包括8章,可以分为三部分:
● 架构基础。第1章介绍持久内存产生的背景及技术的分类;第2章介绍持久内存的硬件、固件架构和性能。
● 软件、编程和优化。第3章介绍操作系统和虚拟化下的驱动实现;第4章介绍编程模型和开发库;第5章介绍性能优化方法和工具。
● 应用实践。第6章介绍数据库应用;第7章介绍大数据应用;第8章介绍其他领域的应用。第6章、第7章中的案例多数由本书作者开发,第8章中的案例来自公开文献或经合作伙伴授权发布。
感谢英特尔数据平台事业部副总裁阿尔珀·伊尔克巴哈(Alper Ilkbahar)先生,他在非易失存储领域耕耘多年,对持久内存在英特尔及产业界的推动发挥了巨大的作用。自2017年起,阿尔珀·伊尔克巴哈就对持久内存在中国的技术发展和客户合作给予了充分支持,促进了一大批人才的培养。感谢英特尔公司院士Naga Gurumoorthy,资深首席工程师Lily Looi、Andy Rudoff、Arafa、Mohamed Arafa、Ian Steiner、Min Liu,首席工程师Kaushik Balasubramanian、Jane Xu等人在持久内存技术发展中做出的巨大贡献。以上人才和知识储备是本书得以写成的基础。感谢英特尔资深总监周翔对持久内存在中国发展的推动,他的激励直接促成了本书的写作。
感谢百度公司的系统部高级经理张家军在百忙中为本书作序,他的团队对持久内存在信息流和搜索等领域的应用起到了行业示范作用。
感谢本书所有作者在繁忙工作之余完成了本书的写作。感谢阿里巴巴的付秋雷(花名漠冰)、严春宝(花名叶目),百度的胡剑阳,快手的张新杰、任恺、王靖、徐雷鸣和刘富聪,以及英特尔公司的王宝临、朱大义、张志杰、王晨光、王超提供的宝贵案例。感谢何飞龙、唐浩栋、刘景奇、潘丽娜、张骏、彭翔宇、龚海峰、梁晓国、应蓓蓓、Simin Xiong、Ren Wu、John Wither等人为本书提供宝贵意见。感谢余志东、翟纲对本书的大力支持。
感谢电子工业出版社博文视点的宋亚东编辑在本书构架、写作过程中给予我们的持续帮助,他专业负责的态度让我们获益匪浅。
由于作者水平有限,书中不足之处在所难免,敬请专家和读者给予批评指正。
李志明
2021年1月
微信扫码回复:40126
● 加入读者交流群,与更多读者互动。
● 获取博文视点学院在线课程、电子书20元代金券。
轻松注册成为博文视点社区(www.broadview.com.cn)用户,您对书中内容的修改意见可在本书页面的“提交勘误”处提交,若被采纳,将获赠博文视点社区积分。在您购买电子书时,积分可用来抵扣相应金额。