网站首页 软件下载 游戏下载 翻译软件 电子书下载 电影下载 电视剧下载 教程攻略
书名 | 持久内存编程/华章程序员书库 |
分类 | |
作者 | (美)史蒂夫·斯卡格尔 |
出版社 | 机械工业出版社 |
下载 | ![]() |
简介 | 内容推荐 本书共有19章,每章侧重于介绍不同的主题。全书由三个主要部分组成。第1~4章介绍持久内存架构、硬件和操作系统支持。第5~16章旨在帮助开发人员了解PMDK库以及如何在应用程序中使用这些库。最后,第17~19章介绍了部分高级主题,比如RAS以及使用RDMA复制数据等。附录部分单独提供了安装PMDK的步骤以及管理持久内存所需的程序,其中还介绍了Java更新和RDMA协议的未来。 作者简介 吴国安(Dennis),2005年硕十研究生毕业于上海交通大学,目前是英特尔持久内存工程部经理,在IA架构、性能优化、软件协同硬件开发方面有多年工作经验。目前主要支持客户应用英特尔数据中心级持久化内存进行软件开发和应用适配,提供IA架构上的客户方案技术咨询和支持。在2012年加入英特尔之前,任职意法半导体,负责数字电视软件开发和集成的工作。 目录 前言 致谢 作者简介 贡献者简介 技术评审者简介 译者简介 第1章 持久内存编程简介 1.1 高级示例程序 1.1.1 有何区别 1.1.2 性能差异 1.1.3 程序复杂性 1.1.4 libpmemkv如何运行 1.2 后文提要 1.3 总结 第2章 持久内存架构 2.1 持久内存的特性 2.2 持久内存的平台支持 2.3 缓存层级 2.4 电源故障保护域 2.5 刷新、排序和屏障操作的需求 2.6 数据可见性 2.7 用于持久内存的英特尔机器指令 2.8 检测平台功能 2.9 应用程序启动与恢复 2.10 后文提要 2.11 总结 第3章 持久内存的操作系统支持 3.1 内存和存储的操作系统支持 3.2 持久内存用作块存储 3.3 持久内存感知型文件系统 3.4 内存映射文件 3.5 持久内存直接访问 3.6 总结 第4章 持久内存编程的基本概念 4.1 有何区别 4.2 原子更新 4.3 事务 4.3.1 原子性 4.3.2 一致性 4.3.3 隔离性 4.3.4 持久性 4.4 刷新不具有事务性 4.5 启动时职责 4.6 针对硬件配置进行调优 4.7 总结 第5章 持久内存开发套件简介 5.1 背景 5.2 选择正确的语义 5.3 易失性库 5.3.1 libmemkind 5.3.2 libvmemcache 5.3.3 libvmem 5.4 持久性库 5.4.1 libpmem 5.4.2 libpmemobj 5.4.3 libpmemobj-cpp 5.4.4 libpmemkv 5.4.5 libpmemlog 5.4.6 libpmemblk 5.5 工具和命令程序 5.5.1 pmempool 5.5.2 pmemcheck 5.5.3 pmreorder 5.6 总结 第6章 libpmem:底层持久内存支持 6.1 使用库 6.2 映射文件 6.3 复制到持久内存 6.4 分解刷新步骤 6.5 总结 第7章 libpmemobj:原生事务性对象存储 7.1 什么是libpmemobj 7.2 为什么不使用malloc() 7.3 组合操作 7.4 内存池 7.4.1 创建内存池 7.4.2 池对象指针和根对象 7.4.3 打开内存池并从内存池中读取数据 7.5 内存池集 7.5.1 串联池集 7.5.2 副本池集 7.6 管理内存池和池集 7.7 类型化对象标识符 7.8 分配内存 7.9 持久保存数据 7.9.1 原子操作 7.9.2 保留/发布API 7.9.3 事务API 7.9.4 可选标记 7.9.5 持久保存数据总结 7.10 libpmemobj的API可提供保障 7.11 管理库操作 7.12 调试与错误处理 7.13 总结 第8章 libpmemobj-cpp:自适应语言C++和持久内存 8.1 简介 8.2 元编程 8.2.1 持久指针 8.2.2 事务 8.2.3 创建快照 8.2.4 分配 8.3 C++标准限制 8.3.1 对象的生命周期 8.3.2 平凡类型 8.3.3 对象布局 8.3.4 指针 8.3.5 限制总结 8.4 简化持久性 8.5 生态系统 8.5.1 持久容器 8.5.2 持久容器示例 8.6 总结 第9章 pmemkv:持久内存键值存储 9.1 pmemkv架构 9.2 电话簿示例 9.3 让持久内存更靠近云 9.4 总结 第10章 持久内存编程的易失性用途 10.1 简介 10.2 背景 10.2.1 内存分配 10.2.2 工作原理 10.2.3 支持的内存“类型” 10.3 memkind API 10.3.1 类型管理API 10.3.2 堆管理API 10.3.3 类型配置管理 10.3.4 更多memkind代码示例 10.4 面向PMEM类型的C++分配器 10.4.1 pmem::allocator方法 10.4.2 嵌套容器 10.5 C++示例 10.5.1 使用pmem::allocator 10.5.2 创建字符串向量 10.6 使用持久内存扩展易失性内存 10.7 libvmemcache:面向大容量持久内存的高效易失性键值缓存 10.7.1 libvmemcache概述 10.7.2 libvmemcache设计 10.7.3 使用libvmemcache 10.8 总结 第11章 设计适用于持久内存的数据结构 11.1 连续数据结构和碎片化 11.1.1 内部和外部碎片化 11.1.2 原子性和一致性 11.1.3 选择性持久化 11.1.4 示例数据结构 11.2 总结 第12章 调试持久内存应用程序 12.1 用于Valgrind的pmemcheck 12.1.1 栈溢出示例 12.1.2 内存泄漏示例 12.2 Intel Inspector—Persistence Inspector 12.2.1 栈溢出示例 12.2.2 内存泄漏示例 12.3 常见的持久内存编程问题 12.3.1 非持久存储 12.3.2 数据存储未添加到事务 12.3.3 将一个内存对象添加到两个不同的事务 12.3.4 内存覆写 12.3.5 非必要刷新 12.3.6 乱序写入 12.4 总结 第13章 实际应用程序中实现持久性 13.1 数据库示例 13.2 不同的持久内存实现方式 13.3 开发持久内存感知型MariaDB第存储引擎 13.3.1 了解存储层 13.3.2 创建存储引擎类 13.4 总结 第14章 并发和持久 |
随便看 |
|
霍普软件下载网电子书栏目提供海量电子书在线免费阅读及下载。