使用存储中代码执行的数据处理卸载制造技术

技术编号:24254985 阅读:63 留言:0更新日期:2020-05-23 01:29
本发明专利技术公开了用于使用存储中代码执行来卸载数据处理任务的系统和方法。例如,数据存储系统,包括一个或多个处理器、非暂态存储介质以及可由所述一个或多个处理器执行以执行操作的存储逻辑,所述操作包括:接收被配置为执行数据处理卸载任务的可移植代码,所述可移植代码包括用于处理所述存储介质中存储的数据的一个或多个可翻译的、硬件中立指令,所述指令包括:使用设置在所述存储逻辑中的翻译和执行引擎来翻译和执行所述可移植代码的所述一个或多个可翻译的、硬件中立的指令,以执行所述数据处理卸载任务;确定所述可移植代码的使用已结束;以及响应于确定所述可移植代码的使用已结束来释放所述可移植代码。

Using data processing uninstallation performed by code in storage

【技术实现步骤摘要】
【国外来华专利技术】使用存储中代码执行的数据处理卸载
技术介绍
本公开涉及用于分布式数据处理的系统和方法。具体地,本公开涉及用于使用存储中代码执行来卸载数据处理任务的方法。有许多应用程序需要某种数据处理,例如,扫描数据集以查找某模式、数据排序、索引构建、数据压缩等。这些包括涉及MapReduce任务的“大数据”应用程序。执行此类应用程序的主机设备可能需要从存储设备读取整个数据集以用于数据处理,然后在数据处理完成之后将新生成的所得数据集写回存储装置。此类活动通常在主机与存储装置之间的总线或网络上生成大量流量,给主机造成不必要的负担,并且消耗显著量的电力。当前用于克服以上问题的方法可包括将数据处理任务从主机设备卸载到存储设备。在这种方法中,主机编译数据处理任务的源代码,并且向存储设备发送所得编译的二进制代码,以在存储设备内执行。然而,这种用于将数据处理任务卸载到存储设备的方法有很多缺陷。第一,数据处理任务可仅被卸载到具有与所编译的二进制代码兼容的特定硬件架构的有限范围的存储设备。第二,从主机发送至存储设备的二进制代码可能易受安全性问题的影响,该安全性问题需要在存储设备上使用复杂而资源密集的措施(例如,挖隧道、容器)以保护数据处理任务的完整性。第三,由于无法考虑到执行期间在存储设备上可能发生的实时操作条件,数据处理任务可能无法在存储设备上最佳地运行。因此,需要一种方法和系统,例如以提供最佳性能的灵活、安全和资源有效的方式将数据处理任务卸载到存储系统上。
技术实现思路
本公开涉及用于使用存储中代码执行来卸载数据处理任务的系统和方法。根据一个创新方面,一种数据存储系统包括一个或多个处理器、非暂态存储介质以及可由一个或多个处理器执行以执行操作的存储逻辑,该操作包括:接收被配置为执行数据处理卸载任务的可移植代码,可移植代码包括一个或多个可翻译的、硬件中立指令以用于处理存储介质上存储的数据;使用设置在存储逻辑中的翻译和执行引擎来翻译和执行可移植代码的一个或多个可翻译的、硬件中立指令,以执行数据处理卸载任务;确定可移植代码的使用已结束;以及响应于确定可移植代码的使用已结束来释放可移植代码。根据另一个创新方面,一种方法包括接收被配置为执行数据处理卸载任务的可移植代码,可移植代码包括一个或多个可翻译的、硬件中立指令以用于处理非暂态存储介质上存储的数据;使用设置在数据存储系统中的翻译和执行引擎来翻译和执行可移植代码的一个或多个可翻译的、硬件中立指令,以执行数据处理卸载任务;确定可移植代码的使用已结束;以及响应于确定可移植代码的使用已结束来释放可移植代码。根据另一个创新方面,一种数据存储系统包括一个或多个处理器,非暂态存储介质,用于接收被配置为执行数据处理卸载任务的可移植代码的装置,可移植代码包括一个或多个可翻译的、硬件中立指令以用于处理存储介质上存储的数据,用于翻译和执行可移植代码的一个或多个可翻译的、硬件中立指令以执行数据处理卸载任务的装置,用于确定可移植代码的使用已结束的装置,以及用于响应于确定可移植代码的使用已结束而释放可移植代码的装置。这些和其他具体实施可各自可选地包括一个或多个以下特征:翻译和执行一个或多个可翻译的、硬件中立指令包括使用翻译和执行引擎中的解译器分别和顺序地执行可移植代码的一个或多个可翻译的、机器中立指令中的每个;可移植代码的一个或多个可翻译的、机器中立指令包括源代码指令;可移植代码的一个或多个可翻译的、机器中立指令包括字节码指令,并且字节码指令被专门配置为执行数据处理卸载任务;翻译和执行一个或多个可翻译的、硬件中立指令包括:使用翻译和执行引擎中的编译器将可移植代码的一个或多个可翻译的、机器中立指令编译成数据存储系统本机的机器码,以及执行机器码;可移植代码包括被配置为执行数据处理卸载任务的过程;由存储逻辑执行的操作还包括确定可移植代码类型,基于所确定的可移植代码类型在翻译和执行引擎中选择翻译器,以及使用所选择的翻译器来翻译可移植代码的可翻译的、硬件中立指令;翻译和执行一个或多个可翻译的、硬件中立指令包括确定数据存储系统的当前操作条件,基于所确定的数据存储系统的当前操作条件来确定是否在翻译和执行期间执行某动作,以及以优化数据存储系统的数据处理卸载任务的性能的对应方式来翻译和执行一个或多个可翻译的、硬件中立指令;用于执行数据处理卸载任务的可移植代码以预编译格式存储在数据存储系统上;数据处理卸载任务包括对非暂态存储介质上存储的一个或多个数据项执行MapReduce、计数、过滤、压缩和加密类型的操作中的一者;一个或多个处理器包括执行存储逻辑的一个或多个操作的一个或多个可编程集成电路;数据存储系统还包括存储设备,该存储设备包括一个或多个处理器、非暂态存储介质、和存储逻辑、以及耦接到存储设备的主机系统,主机系统包括一个或多个第二处理器和可由一个或多个第二处理器执行以执行操作的第二逻辑,该操作包括:将可移植代码加载到存储设备中以供存储设备翻译和执行,检测由存储设备翻译和执行可移植代码的完成,以及从存储设备卸载可移植代码。本文所述的新型技术的各方面包括各种系统、方法、设备、非暂态存储介质、计算机实现的软件,而其他方面包括若干创新技术的特征和优势,包括但不限于:(1)数据处理系统的性能提高和功耗降低,(2)数据处理任务的可移植性,以及(3)数据处理任务执行中的安全性改善。例如,技术可通过在执行数据处理任务时有效而优化地使用系统资源来提高数据处理系统的性能并且降低其功耗。一些实施方案可利用存储设备的内部资源和带宽,这些内部资源和带宽在现有数据处理系统的数据处理期间一般未被充分利用。例如,固态驱动(SSD)的内部带宽通常比外部可用带宽大两倍或更多倍,以使得它们可更有效地执行内部垃圾回收活动。因此,如果将数据处理任务被卸载到存储设备中,则这些任务的性能可提高两倍或更多。此外,通过卸载数据处理任务,数据流量可从主机与存储设备之间的总线或网络大幅减少,从而进一步提高总体性能,因为在许多数据中心环境中,网络带宽是主要的性能限制因素。例如,在用于MapReduce类型的加载的“大数据”应用程序中,整个映射阶段可被完全卸载到存储设备中。在一些情况下,Shuffle/Reduce阶段也可被至少部分地卸载。减少数据流量可具有降低数据处理系统功耗的额外益处。此外,技术可通过平衡所卸载的数据处理任务的执行与由存储设备同时执行的其他活动来提高数据处理系统的性能,如下面进一步详细解释。在一些情况下,技术可提供数据处理任务的可移植性,以使得它们可被卸载到多种不同的存储平台和设备。数据处理任务的可移植性可通过以可移植代码(例如,源代码或字节码)的形式卸载数据处理过程来实现,该可移植代码可易于移植到多种硬件平台以用于执行。此外,技术可通过验证所卸载的数据处理过程中所接收的源代码和/或字节码在被执行之前未违反定义的安全性规则来提供数据处理任务执行中的安全性改善。这些方面中的一个或多个的其他实施方式包括对应的系统、装置和计算机程序,其被配置为执行编码在计算机存储设备上的方法的动作。应当理解,本公开中使用的语言主要是出于可读性和指导本文档来自技高网...

【技术保护点】
1.一种数据存储系统,包括:/n一个或多个处理器;/n非暂态存储介质;以及/n存储逻辑,所述存储逻辑可由所述一个或多个处理器执行以执行操作,所述操作包括:/n接收被配置为执行数据处理卸载任务的可移植代码,所述可移植代码包括一个或多个可翻译的、硬件中立指令以用于处理所述存储介质上存储的数据;/n使用设置在所述存储逻辑中的翻译和执行引擎来翻译和执行所述可移植代码的所述一个或多个可翻译的、硬件中立指令,以执行所述数据处理卸载任务;/n确定所述可移植代码的使用已结束;以及/n响应于确定所述可移植代码的使用已结束来释放所述可移植代码。/n

【技术特征摘要】
【国外来华专利技术】20171205 US 15/832,7281.一种数据存储系统,包括:
一个或多个处理器;
非暂态存储介质;以及
存储逻辑,所述存储逻辑可由所述一个或多个处理器执行以执行操作,所述操作包括:
接收被配置为执行数据处理卸载任务的可移植代码,所述可移植代码包括一个或多个可翻译的、硬件中立指令以用于处理所述存储介质上存储的数据;
使用设置在所述存储逻辑中的翻译和执行引擎来翻译和执行所述可移植代码的所述一个或多个可翻译的、硬件中立指令,以执行所述数据处理卸载任务;
确定所述可移植代码的使用已结束;以及
响应于确定所述可移植代码的使用已结束来释放所述可移植代码。


2.根据权利要求1所述的数据存储系统,其中翻译和执行所述一个或多个可翻译的、硬件中立指令包括:
使用所述翻译和执行引擎中的解译器分别和顺序地执行所述可移植代码的所述一个或多个可翻译的、机器中立指令中的每个。


3.根据权利要求2所述的数据存储系统,其中所述可移植代码的所述一个或多个可翻译的、机器中立指令包括源代码指令。


4.根据权利要求2所述的数据存储系统,其中:
所述可移植代码的所述一个或多个可翻译的、机器中立指令包括字节码指令;以及
所述字节码指令被专门配置为执行数据处理卸载任务。


5.根据权利要求1所述的数据存储系统,其中翻译和执行所述一个或多个可翻译的、硬件中立指令包括:
使用所述翻译和执行引擎中的编译器将所述可移植代码的所述一个或多个可翻译的、机器中立指令编译成所述数据存储系统本机的机器码;以及
执行所述机器码。


6.根据权利要求1所述的数据存储系统,其中所述可移植代码包括被配置为执行所述数据处理卸载任务的过程。


7.根据权利要求1所述的数据存储系统,其中由所述存储逻辑执行的所述操作还包括:
确定可移植代码类型;
基于所确定的可移植代码类型在所述翻译和执行引擎中选择翻译器;以及
使用所选择的翻译器来翻译所述可移植代码的可翻译的、硬件中立的指令。


8.根据权利要求1所述的数据存储系统,其中翻译和执行所述一个或多个可翻译的、硬件中立指令包括:
确定所述数据存储系统的当前操作条件;
基于所确定的所述数据存储系统的当前操作条件来确定在翻译和执行期间是否执行某动作;以及
以优化所述数据存储系统的所述数据处理卸载任务的性能的对应方式来翻译和执行所述一个或多个可翻译的、硬件中立指令。


9.根据权利要求1所述的数据存储系统,其中用于执行所述数据处理卸载任务的所述可移植代码以预编译格式存储在所述数据存储系统上。


10.根据权利要求1所述的数据存储系统,其中所述数据处理卸载任务包括:
对所述非暂态存储介质上存储的一个或多个所述数据项执行MapReduce、计数、过滤、压缩和加密类型的操作中的一者。


11.根据权利要求1所述的数据存储系统,其中所述一个或多个处理器包括执行所述存储逻辑的一个或多个所述操作的一个或多个可编程集成电路。


12.根据权利要求1所述的数据存储系统,还包括:
存储设备,所述存储设备包括所述一个或多个处理器、所述非暂态存储介质和所述存储逻辑;以及
主机系统,所述主机系统耦接到所述存储设备,所述主机系统包括一个或多个第二处理器和可由所述一个或多个第二处理器执行以执行操作的第二逻辑,所述操作包括:
将所述可移植代码加载到所述存储设备中以供所述存储设备翻译和执行;
检测所述存储设备对所...

【专利技术属性】
技术研发人员:V博尔霍维廷S芒南吉A罗伯茨
申请(专利权)人:西部数据技术公司
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1