持久内存编程指南—乱译连载 (6. libpmem: 低层次持久内存支持)
本章演示了libpmem提供的API的一个很小集。该库不会为你改变,不会提供电源失效-安全事务,不提供分配器。像libpmemobj库(下章描述)提供了所有这些任务,并内部使用libpmem以简单化flush和copy操作。
持久内存编程指南—乱译连载 (5. PMDK介绍)
本章给出了PMDK中可用的库和工具简要列表,以及简要说明了什么时候使用它们。现在你应该知道使用这些库和工具能干什么了。后面的章节,将介绍如何使用这些库和工具开发软件。
持久内存编程指南—乱译连载 (4. 持久内存编程基础概念)
本章是持久内存编程概念概览。当开发使用持久内存的应用时,必须考虑下面几方面:1) 原子更新;2) FLUSH不是事务的;3) 应用启动时的职责;4) 硬件配置调优。在一个产品级应用中应对好以上挑战,需要更复杂的编程、广泛的测试,以及性能分析。
持久内存编程指南—乱译连载 (3. 操作系统对持久内存的支持)
本章展示了操作系统持久内存接口完整视图。应用可以把持久内存当前快速SSD,直接通过持久内存感知文件系统,或者直通过DAX接映射到应用内存空间。DAX有效利用了操作系统的内存映射文件服务,并利用硬件能力直接映射持久内存到应用地址空间。这避免了在主存和存储之间移动数据。
持久内存编程指南—乱译连载 (2.持久内存架构)
本章定义了持久内存及其特性,概述了CPU缓存的工作方式,并描述了为什么直接访问持久内存的应用程序必须承担冲刷CPU缓存的责任。我们主要关注硬件实现。用户库(如随PMDK提供的用户库)承担体系结构和硬件特定操作的责任,并允许开发人员使用简单的API来实现它们。后面的章节将更详细地描述PMDK库,并展示如何在应用程序中使用它们。
持久内存编程指南—乱译连载 (1.持久内存编程介绍)
本章介绍如何使用libpmemkv这样的高级api进行持久内存编程,从而向应用程序开发人员隐藏持久内存的复杂细节。使用持久内存可以允许比基于块的存储更细粒度的访问和更高的性能。我们建议尽可能使用最高级别、最简单的API,并且只有在必要时才引入低层持久内存编程的复杂性。
持久内存编程指南—乱译连载 (序言)
这本书介绍了持久内存技术,并提供了关键问题的答案。对于软件开发人员来说,这些问题包括:什么是持久内存?我怎么用?有哪些API和库可用?它能为我的应用提供什么好处?我需要学习哪些新的编程方法?如何设计应用程序以使用持久内存?在哪里可以找到信息、文档和帮助?
持久内存编程指南—乱译连载 (开篇)
指南目的是指导编程人员更好地利用持久内存来开发应用程序。本文为自学之用,乱译了原文,不求精确,能为编程之用就好。谬误之处难免很多,当有不解之处务必以原文为准。
陈柯尧 2020.06.28