模糊的边界:内存和存储以全新方式融合

 软件定义的存储刚刚开始形成,然而系统演进的步伐已经使得未来技术的创新越来越受到关注。

我们并非要在文中探讨磁盘存储池,也不是要讨论固态驱动器。存储的未来在于其与内存的融合。随着非线性双列直插式存储器模块(nonvolatile dual in-line memory modules, NVDIMM)的引入,系统内存在变得越来越复杂的同时,也将内存的速度与存储的持久质量结合到了一起。

这些产品已经问世。镁光(Micron)推出的首款全闪存的NVDIMM已经在产,并且几家(硬件)供应商都在服务器产品中提供该款硬件。当然,其优势在于数据在内存总线上移动时,比在外围组件互连Express(PCIe)上移动的速度要快得多,尽管NVDIMM闪存的速度仍然还要比动态RAM(DRAM)慢一些。

有些情况下,例如在军事系统或金融服务方面,对内存持久性需求更高。Viking Technology公司创建的NVDIMM的一种版本,其中包含了大量与闪存匹配的DRAM空间。当系统接通电源时,用户可以选择将数据从闪存加载到相应的DRAM之中。如果电源关闭或机器停止,DRAM的数据将会被备份到闪存之上。

Viking办法的优点是系统可以使用CPU寄存器-存储器命令将数据写入DRAM。这允许单字节的写入操作,而不是传统存储操作中使用的4KB文件形式的I/O区块和全闪存型NVDIMM。这种字节模式I/O比区块访问闪存快了数千倍。支持此功能的软件非常复杂,不仅涉及操作系统更改以处理异常,还涉及编译器扩展。由于这种类型的I/O不使用标准块方法,所以应用程序需要修改。

随着软件变化的出现,我们可以期待看到混合方法在现实中的应用。最有可能的是,数据库系统将成为第一批实例,其中所有的更改都由数据库供应商实现,为最终用户提供一个透明的平台。

闪存的替代品,如英特尔和镁光3D XPoint产品,惠普企业和SanDisk的Memristor产品,以及索尼和Viking科技的ReRAM将提高持久性和非持久性内存区段之间的速度比。即使如此,它们的速度仍然比现今的DRAM慢得多。

接受这些技术的关键是应用程序需要将其视为DRAM类型的可写寻址空间或块I/O驱动器。做不到这一点,额外的速度是在应用软件开销中浪费掉的。

事实上,这些都是需要多家公司共同努力,以克服将这些尖端技术推向市场所面临的挑战和复杂性,因此不要指望这些产品2017年底或2018年初就可以使用。

 

作者:任新勃 

 

来源:51CTO

时间: 2024-09-20 05:41:15

模糊的边界:内存和存储以全新方式融合的相关文章

内存与存储之边界迎来变革

延迟可以说是存储系统永远的痛.没人愿意等待,至少每一套虚拟机都渴望着能以多线程.多核心.多插槽方式在虚拟服务器中大量访问数据.然而随着摩尔定律的逐渐失效,处理器的发展速度已经明显放缓,这意味着改善IO延迟已经成为让昂贵的IT方案发挥更大力量的必由之路. 目前已经有两项新的技术成果得到应用,且二者都能够立足于两大主要存储边界点实现可观的延迟降低效果:其一为内存与存储之间,其二为内部与外部联网存储之间. 内部/外部边界的转移归功于NVMe-over-fabric(简称NVMeF)访问机制.那么这种变

PHP 直接在共享内存中存储数据集

共享内存是一种在相同机器中的应用程序之间交换数据的有效方式.一个进程可创建一个可供其他进程访问的内存段,只要它分配了正确的权限.每个内存段拥有一个惟一的 ID(称为 shmid),这个 ID 指向一个物理内存区域,其他进程可在该区域操作它.创建并提供了合适的权限之后,同一台机器中的其他进程就可以操作这些内存段:读取.写入和删除. 这表明使用 C 语言编写的应用程序可与使用其他语言(比如 Java 或 PHP)编写的应用程序共享信息.它们都可以共享信息,只要它们可访问和理解该信息.共享内存在针对大

java中static变量和static方法以及普通方法在那个内存中存储呢? 请高手指点,谢谢

问题描述 java中static变量和static方法以及普通方法在那个内存中存储呢? 请高手指点,谢谢 栈内存:局部变量和对象的引用变量: 堆内存:对象: 以上是我所知道的,那么static变量和static方法以及普通方法在那个内存中存储呢? 请高手指点,谢谢 解决方案 static和普通方法都存在堆内存中,堆内存有个永久区permgen,这里面会存类信息. 所以不断的加载类或jar包可能出现permgen oome的错误. static是在堆内存的数据区. 解决方案二: java stat

【C/C++学院】0819-/类的成员函数与const-mutable /构造与析构/拷贝构造deletedefault以及深浅拷贝/静态成员函数成员变量类在内存的存储默认参数/友元类以及友元函数

类的成员函数与const-mutable  成员函数 Fushu.h #pragma once #include <iostream> class fushu { public: int x; int y; public: fushu(); ~fushu(); void show(); inline void showall(int x, int y);//显式内联 void setxy(int x, int y);//编译器优化,默认隐式内联 void show(int x, int y);

基于小文件的内存云存储优化策略

基于小文件的内存云存储优化策略 英昌甜 于炯 鲁亮 刘建矿 由于内存云RAMCloud采用日志段的方式存储数据,因此当大量小文件存储于RAMCloud集群时,每个小文件独占整个段,会产生较多的段内碎片,从而导致内存的有效利用率较低以及大量的内存空间浪费.为了解决这个问题,提出基于文件分类的RAMCloud小文件存储优化策略.该策略首先根据文件的相关特性将小文件分为结构相关文件.逻辑相关文件以及相互独立文件三类;然后在存储时对结构相关的文件使用文件合并算法,逻辑相关和相互独立的小文件则使用分组算法

Android实战教程第七篇之如何在内存中存储用户名和密码

本文实例为大家分享了Android内存中存储用户名和密码的方法,供大家参考,具体内容如下 首先是配置文件: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layo

JVM堆内存监测的一种方式,性能调优依旧任重道远

上月,由极客邦.InfoQ和听云联合主办2016 APMCon中国应用性能管理大会圆满落下帷幕.会上,Java冠军Martijn Verburg进行了一场Java and the Machine的分享,讨论了为什么数据分析至关重要.他有着十多年Java经验,目前是创业公司jClarity的CEO,jClarity是一款采用统计和机器学习来探究性能问题根源的方案.会后,InfoQ还专访Martijn以进一步了解沟通. JVM堆内存及一种监测方式 在讨论Martijn的团队如何进行堆内存监测之前,我

电子商务改变生活 广告公司外包全新方式

硅谷网讯 1997年,电子商务在中国拉开序幕,给http://www.aliyun.com/zixun/aggregation/13342.html">中国消费指引了新的方向, 各类型企业逐渐向电子商务转型,人们的生活亦之发生了翻天覆地的变化.不论何种消费方式,广告公司都在整个过程中担任了不可或缺的角色.随着电子商务的发展,广告公司的经营模式也发生了新的变化,广告公司外包全新方式逐渐成为广告公司发展的一个重要增长点,支持广告公司走向另一片新天地. 电子商务的发展,为广告公司的经营模式从早前

RAMCloud:内存云存储的内存分配机制

现在全闪存阵列已经见怪不怪了,EMC的XtremIO,还有VNX- F(Rockies),IBM FlashSystem.全闪存真正为效率而生,重新定义存储速度.凭借极致性能,高可用性,为您极大提高企业级应用效率.提到闪存的优势,那么毋庸置疑的就是速度!而在速度优势背后,SSD则面临着价格.容量以及寿命等方面的限制. 当然随着技术的发展,成本的下降,SSD有可能会取代机械硬盘,成为下一代企业存储的主要介质.机械硬盘可能转变为磁带的角色. 但是,闪存速度的确就是现在存储系统的极限吗?现在有需要基于