闪存和持久内存可能需要应用程序重写
需要进行重大的更改来优化企业软件,使其能够在闪存和持久内存上运行。
微软(Microsoft)、戴尔- emc等公司的专家表示,他们的公司已经在为转型准备主要产品,但他们也认为,还需要做更多的工作,其中一些尚未确定。
闪存已经在数据中心和个人电脑上确立了自己的地位。持久性内存——也称为存储类内存,它是一种计算机体系结构的概念,其中所有数据都位于非易失性RAM中,没有任何类型的硬盘——即将从实验室转向产品开发。
这两种技术都是颠覆性的。然而,闪存只是使数据读/写速度更快,而持久的内存挑战我们所知道的计算机架构。后一种变化将影响软件的开发方式、软件如何与操作系统交互以及数据库等应用程序如何在记录和硬件之间进行协调。
微软数据库系统总经理罗汉•库马尔(Rohan Kumar)表示:“这是一场可能会持续数小时的讨论,讨论细节就是其中之一。”
微软的数据库管理系统SQL Server在2014年获得了内存引擎,在2016年获得了内存日志功能。库马尔指出,到那个时候,存储管理已经从主要项目中分离出来。Windows Server 2016也收到了对持久内存转换的修改。
“想象一下,现在你的内存和你的flash阵列一样大,你会怎么做?”,”Kumar说。他承认,在某种程度上,应用程序可能需要大量重写,而不仅仅是修改。
“我们必须这样做,”库马尔说。但是,“如果每次有存储平台创新时,每个应用程序都必须改变,那么这是非常具有破坏性的,”他说,他指的是坏的破坏,而不是生产性的破坏。因此,任何构建自己的应用程序的公司都应该考虑尽可能多地处理操作系统抽象的数据平台,他建议。
库马尔说,他已经看到客户安装高端应用程序和数据库服务器,内存高达3-6TB,相当于不久前的传统硬盘存储水平。
戴尔- emc全球技术战略副总裁丹•科布表达了类似的观点。“这是一个很好的话题,值得深入探讨。我们知道,而且在某种程度上把它视为一种信念,即当基础设施变得更快时,我们可以期待工作负载能力出现类似的提升。”“我们现在有数十微秒级和数百微秒级可用。即使软件堆栈什么都不做,他们也受益于摩尔定律。
下一个阶段将是与硬件共同发展的新架构。我们将会有一个新的架构来适当地混合和匹配这些东西。他们会……更具有进化性的应用程序,将工作负载转移到性能更多由内存而不是性能决定的系统。”
这并不一定意味着软件会比现在更好的编程——“它可以在一半的时间内运行无限循环,”Cobb开玩笑说。“如果你决定积极地记忆,那么你需要一种不同的方式来确保一致性和连贯性以及诸如此类的东西。这不是新软件,”他说。
甚至用于开发现代软件的语言也可能需要改变,Cobb说。c++、Java等等——“这些语言从未真正考虑过数据的持久性。想象一下,在这些语言中,编译器会有一个新的子句‘pragma’persistent,”他说。“现在我可以给编译器提供指令,编译器可以把东西传递给相应的运行时库,库中说Danny刚刚定义的这个数据结构是一个持久化的东西。”
惠普(Hewlett-Packard)、英特尔(Intel)、SAP、存储网络行业协会(Storage Networking Industry Association),以及其他一些组织,也引领着向这样一个世界发起冲锋:在这个世界里,硬盘可能被限制在冷库中(或完全消失),内存永远不会被遗忘。一些参与的公司正在幕后进行相关的开源编程工作,而SNIA有一个完整的工作组来研究这个课题。
“我们只是在一个非常有趣的时间,”科布补充说。存储领域的应用程序已经习惯了无限存储。内存应用程序还没有做到这一点。”
至于开发人员本身,“让我来谈谈一个今天才真正开始职业生涯的程序员,”Cobb建议。她可能想做一个只在持久内存世界中运行的现代数据内存框架。这将是一个伟大的思想实验。”