本申请涉及分布式系统领域,尤其涉及一种存储节点及系统。
背景技术:
在分布式系统中,计算节点可以根据数据的存储位置将数据密集型(data-intensive)任务拆分为多个数据处理子任务,并将每个数据处理子任务发送至对应的存储节点上。从而,利用存储节点的计算能力就近处理数据,避免在网络和输入输出(inputandoutput,io)总线上传输数据,有效地降低了传输数据对网络资源和io总线资源的占用率和数据处理的时延。数据密集型任务是指需要处理器频繁访问存储器的数据处理任务。
但是,由于下推到各存储节点的数据处理子任务存在频繁而大量的内存访问操作,增加了存储节点中的处理器处理数据的时延,而且,还导致存储节点中的内存总线资源竞争,增加了其它任务访问内存的时延,产生了“内存墙”问题。因此,如何降低存储节点处理数据密集型任务的时延是一个亟待解决的问题。
技术实现要素:
本申请提供了一种存储节点及系统,解决了如何降低存储节点处理数据密集型任务的时延的问题。
为达到上述目的,本申请采用如下技术方案:
第一方面,本申请提供了一种存储节点,该存储节点包括处理器和内存,内存包括处理单元和存储器。其中,处理器接收到应用服务器发送的数据处理请求后,根据数据处理请求从存储节点的存储器读取数据至内存的存储器;并且,处理器还向内存的处理单元发送至少一条指令,指示处理单元对数据进行处理;处理单元接收到指令后,从内存的存储器中读取数据,并对数据进行处理,并将处理后的数据反馈给存储节点的处理器;最后,处理器将处理后的数据发送给应用服务器。
本申请的实施例提供的存储节点,通过在内存中增加处理单元,存储节点的处理器指示内存中的处理单元处理数据密集型的任务,避免了数据在内存总线上的移动,从而,解决了“内存墙”问题,有效地降低了存储节点处理数据密集型的任务时的处理数据时延。
在一种可能的实现方式中,每条指令包含数据位于存储器中的地址和操作类型。
在另一种可能的实现方式中,内存还包括内存控制器,内存控制器不同于处理单元。
在另一种可能的实现方式中,内存还包括缓存,缓存用于存储至少一条指令。
在另一种可能的实现方式中,存储节点包括n个内存,n为整数,n≥1,其中,处理器还用于根据n个内存的剩余存储容量确定满足存储容量要求的至少一个内存;处理器还用于从至少一个内存中确定满足计算要求的内存。
在另一种可能的实现方式中,内存包括m个处理单元,m为整数,m≥1,内存还包括状态寄存器,状态寄存器用于指示内存包括的m个处理单元的使用状态,其中,处理器用于根据每个内存的状态寄存器的指示信息从至少一个内存中确定满足计算要求的内存。
从而,存储节点的处理器根据每个内存中状态寄存器指示的处理单元的状态,选择合适的内存分配内存来卸载数据密集型程序段,避免因无法感知内存状态而导致的内存拥塞和等待,保证了数据密集型程序段卸载的有效性。
第二方面,本申请提供了一种分布式系统,分布式系统包括应用服务器和存储节点,存储节点包括处理器和内存,内存包括处理单元和存储器,其中:应用服务器用于向存储节点发送数据处理请求;处理器用于接收应用服务器发送的数据处理请求,根据数据处理请求读取数据至内存的存储器;处理器还用于向处理单元发送至少一条指令,指令用于指示处理单元对数据进行处理;处理器还用于将处理后的数据发送给应用服务器;应用服务器用于接收存储节点发送的处理后的数据。
本申请的实施例提供的分布式系统,将数据密集型子任务从计算节点转移到存储节点,利用存储节点的计算能力,直接在存储节点中完成对数据的计算,从而避免了网络传输所造成的性能瓶颈。而且,通过在内存中增加处理单元,存储节点的处理器指示内存中的处理单元处理数据密集型的任务,避免了数据在内存总线上的移动,从而,解决了“内存墙”问题,有效地降低了存储节点处理数据密集型的任务时的处理数据时延。
第三方面,本申请提供了一种处理数据的方法,该方法应用于存储节点,存储节点包括处理器和内存,内存包括处理单元和存储器,方法包括:处理器接收应用服务器发送的数据处理请求,根据数据处理请求读取数据至内存的存储器;处理器向处理单元发送至少一条指令,指令用于指示处理单元对数据进行处理;处理器将处理后的数据发送给应用服务器。
处理数据的方法同第一方面中相应的描述,这里不再赘述。
本申请的实施例提供的存储节点,通过在内存中增加处理单元,存储节点的处理器指示内存中的处理单元处理数据密集型的任务,避免了数据在内存总线上的移动,从而,解决了“内存墙”问题,有效地降低了存储节点处理数据密集型的任务时的处理数据时延。
第四方面,本申请还提供了一种计算机可读存储介质,包括:计算机软件指令;当计算机软件指令在通信装置中运行时,使得通信装置执行上述第一方面所述的方法。
第五方面,本申请还提供了一种包含指令的计算机程序产品,当计算机程序产品在通信装置中运行时,使得通信装置执行上述第一方面所述的方法。
第六方面,本申请提供了一种芯片系统,该芯片系统包括处理器,还可以包括存储器,用于实现上述方法中内存的功能。该芯片系统可以由芯片构成,也可以包含芯片和其他分立器件。
另外,上述任意方面的设计方式所带来的技术效果可参见第一方面中不同设计方式所带来的技术效果,此处不再赘述。
本申请中,存储节点的名字对设备本身不构成限定,在实际实现中,这些设备可以以其他名称出现。只要各个设备的功能和本申请类似,属于本申请权利要求及其等同技术的范围之内。
附图说明
图1为本实施例提供的一种分布式系统的架构示例图;
图2为本申请提供的一种内存墙的示意图;
图3为本申请实施例提供的一种分布式系统的架构示例图;
图4为本申请实施例提供的一种dp-dimm的结构示例图;
图5为本申请实施例提供的一种近数据处理的示意图;
图6为本申请实施例提供的一种处理数据的方法流程图。
具体实施方式
本申请说明书和权利要求书及上述附图中的术语“第一”、“第二”和“第三”等是用于区别不同对象,而不是用于限定特定顺序。
在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
本申请中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b的情况,其中a,b可以是单数或者复数。在本申请的文字描述中,字符“/”,一般表示前后关联对象是一种“或”的关系;在本申请的公式中,字符“/”,表示前后关联对象是一种“相除”的关系。
为了下述各实施例的描述清楚简洁,首先给出相关技术的简要介绍:
通常情况下,处理器将数据通过io总线或网络从存储器加载到内存,然后处理器再从内存中读取数据进行处理。然而,在大数据时代,需要处理的数据量呈爆炸式的增长,这种传统的数据处理架构需要传输大量的数据。在分布式系统中,对于像数据库这种数据密集型的应用,查询处理首先需要大量的io操作,将数据加载到计算节点的内存中,使得io总线或网络成为系统的性能瓶颈,带来极大的性能问题:1)大量的数据移动,增加了数据处理的延迟;2)数据传输造成io总线或网络资源竞争,影响系统中其它应用数据访问,影响其它应用的性能。因此,对于数据密集型应用,应该尽量避免数据的传输,减少数据的移动开销。
近数据处理(neardataprocessing/computing,ndp/ndc)是一种处理数据的方法或概念,即将对数据的处理和计算移动到靠近数据的地方。从而,尽量的减少甚至避免数据的移动,提升数据处理的效率。按照处理模式的不同,ndp可以分为存储内计算(in-storageprocessing,isp)、盘内计算(on-diskdataprocessing,oddp)和内存内计算(processing-inmemory,pim)三种类型。
isp通常是指在计算和存储分离的系统架构中,将数据密集型的任务从计算节点转移到存储节点,利用存储节点的计算能力,直接在存储节点中完成对数据的计算,从而避免了网络传输所造成的性能瓶颈。
oddp是指将计算任务从主机侧转移到具体的存储设备中。例如,固态驱动器(solidstatedisk或solidstatedrive,ssd)中,利用存储设备中控制器或专用处理逻辑的计算能力对数据进行就近处理。
pim则是在内存模块中增加计算逻辑单元,在内存模块内进行计算,避免了数据在内存总线上的移动。
图1为本实施例提供的一种分布式系统的架构示例图。该分布式系统采用了计算和存储分离的共享磁盘(sharedisk)架构,包括数据处理层、网络层和存储层。数据处理层包括至少一个计算节点101。计算节点101主要负责对数据进行计算处理。例如,与数据库相关的计算。存储层包括至少一个存储节点102。存储节点102用于存储数据。网络层可以是无限带宽(infiniband,ib)网络103。计算节点和存储节点之间使用ib网络互联传输数据。
在一些实施例中,可以采用一个数据库服务器实现计算节点的功能,也可以由多个数据库服务器实现计算节点的功能,本申请不予限定。存储节点可以采用一个存储服务器(storageserver)实现存储节点的功能,也可以由多个存储服务器实现存储节点的功能,本申请不予限定。
该分布式系统可以采用isp类型的近数据处理技术处理数据密集型的任务。计算节点101主要处理计算密集型的任务,而将部分数据密集型的任务下推到存储节点中。例如,存储节点102可以实现结构化查询语言(structuredquerylanguage,sql)查询中的where谓词过滤,列过滤,join连接过滤等操作。在存储节点中对表数据进行特定的处理,从而,减少了从存储节点到计算节点的数据传输量。
所谓计算密集型的任务可以是指需要对数据进行大量的运算的任务。
所谓数据密集型的任务可以是指需要读取大量的数据并对数据进行运算的任务。
在存储节点处理数据密集型的任务时,处理器需要通过内存总线,使用加载(load)/存储(store)指令对内存进行频繁的访问。
如图2所示,在过去的20多年中,处理器的性能以每年大约60%的速度快速提升,而内存性能的提升速度只有大约7%,导致当前内存的速度严重落后于处理器的速度。内存和处理器之间存在严重的性能鸿沟,难以充分发挥处理器的优势,导致内存系统成为计算系统的性能瓶颈。特别是在内存密集(memoryintensive)的高性能计算(highperformancecomputing,hpc)场景中,内存速度严重限制着系统性能。此外,内存和处理器之间的内在总线也面临着带宽低,延迟高等问题,数据传输的代价高,严重影响计算系统的性能。这种限制系统性能的内存瓶颈通常称为“内存墙(memorywall)”。
因此,内存总线带宽和处理数据时延成为存储节点处理数据密集型的任务的性能瓶颈。此外,大量的内存访问还将造成内存系统的内存总线资源竞争,增加了其它任务的访问内存时延,这种“内存墙”问题制约着存储节点中数据处理的性能。
本申请的实施例提供的存储节点,通过在内存中增加处理单元,存储节点的处理器指示内存中的处理单元处理数据密集型的任务,避免了数据在内存总线上的移动,从而,解决了“内存墙”问题,有效地降低了存储节点处理数据密集型的任务的时延。
下面将结合附图对本申请实施例的实施方式进行详细描述。
图3为本申请实施例提供的一种分布式系统的架构示例图。该分布式系统包括计算节点301和存储节点302。计算节点301包含处理器3011、存储器3012、数据分析模块3013和子任务分发(subtaskdispatcher)模块3014等。在一些实施例中,数据分析模块3013和子任务分发模块3014可以是一种逻辑单元。数据分析模块3013的功能和子任务分发模块3014的功能由处理器3011执行。存储节点302包含处理器3021、内存3022、内存控制器3023、存储介质3024(如:硬盘驱动器(harddiskdrive,hdd)或ssd)和io控制器3025等组件。内存3022包括双列直插式存储模块(dual-inline-memory-modules,dimm)和数据处理双列直插式存储模块(dataprocessingdual-inline-memory-modules,dp-dimm)。dimm与dp-dimm的区别在于,dp-dimm包含处理单元,dimm不包含处理单元。
计算节点301主要用于处理计算密集型的任务,运行大数据分析程序(如:联机分析处理(onlineanalyticalprocessing,olap))。在一些实施例中,计算节点301可以是应用服务器(如:数据库服务器等)。分布式系统中可以包含多个计算节点301,共同进行数据处理,共享一套存储系统。存储系统主要负责存储数据,响应上层计算节点的数据读写请求。存储系统可以包含多个存储节点302。
存储节点302用于运行存储处理逻辑软件,负责数据的持久化保存,保障数据的可靠性和可用性。
图3只是示意图,该分布式系统中还可以包括其它网络设备(如:交换机或路由器),用于计算节点和存储节点之间传输数据,在图3中未画出。本申请的实施例对该分布式系统中包括的计算节点和存储节点的数量不做限定。
对于大数据分析型应用,计算节点301需要从存储节点302读取海量数据,并对该海量数据进行处理,因此,计算节点301处理大数据分析型应用时包含了数据密集型的任务,例如,olap应用中的全表扫描操作。为了避免由于海量数据在计算节点与存储节点之间的网络中传输增大数据处理的时延,计算节点301的数据分析模块3013可以对大数据分析型应用进行分析,筛选出数据密集型的任务,通过子任务分发模块3014根据数据的存储位置将数据密集型的任务拆分为多个数据处理子任务(subtask)(或称为数据密集型子任务(data-intensivesubtask)),将每个数据密集型子任务发送至对应的存储节点302上。
在一些实施例中,计算节点301可以向存储节点302发送数据处理请求。数据处理请求用于指示存储节点302执行数据密集型子任务。需要说明的是,该数据处理请求不是io请求。该数据处理请求是将数据密集型子任务下推到存储节点的消息。数据处理请求可以包括处理类型、数据位置信息、数据计算信息和描述信息。处理类型可以是指数据密集型。数据位置信息用于指示存储数据密集型子任务的数据的位置信息。例如,如果数据密集型子任务的数据存储在文件系统中,数据位置信息包括文件名等信息。如果数据密集型子任务的数据存储在k-v存储系统中,数据位置信息包括k值(key)。数据计算信息包括数据密集型子任务的计算指令。描述信息包括处理数据密集型子任务的数据的格式信息。
示例的,假设数据密集型子任务为数据压缩任务。数据计算信息包括与数据压缩相关的指令。描述信息包括对数据进行压缩的压缩格式。压缩格式可以是rar。
存储节点302的处理器3021接收到计算节点301发送的数据处理请求后,处理器3021根据数据位置信息向io控制器3025发送读请求,控制io控制器3025从本地存储介质3024(如:磁盘)中读取数据密集型子任务的数据存储到内存3022。在一些实施例中,如果处理器3021确定数据密集型子任务的数据需要由内存3022处理,可以将数据存储到dp-dimm中。在另一些实施例中,如果处理器3021确定数据密集型子任务的数据由自身处理,可以将数据存储到dimm或dp-dimm中。处理器3021控制内存控制器3023再从内存3022读取数据传输至处理器3021,处理器3021根据数据计算信息对数据进行相应的计算,将最后的计算结果返回给计算节点301。从而,利用存储节点的计算能力就近处理数据,避免在网络和io总线上传输数据,有效地降低了数据传输过程中对网络资源和io总线资源的占用率和数据处理的时延。
存储节点302的处理器3021在处理数据密集型子任务时,不仅需要大量的io总线操作,而且还需要大量的内存访问,因此,“内存墙”问题成为存储节点处理数据密集型子任务的性能瓶颈。
在另一些实施例中,存储节点302的处理器3021在处理数据密集型子任务时,为了避免“内存墙”问题,处理器3021可以将数据密集型子任务中的数据密集型程序段(data-intensivekernel)(或称为内存密集型程序段(memory-intensivekernel))卸载到dp-dimm,dp-dimm处理数据密集型程序段,从而,避免处理器3021频繁的访问内存3022,减少数据在内存总线上的传输。
在本实施例中,dp-dimm是指在dimm中集成了处理单元的内存。dp-dimm中的处理单元可以对数据进行特定的计算,大量地减少了存储节点302中处理器3021对内存3022的访问。每个存储节点302中可配备多个dp-dimm。dp-dimm可以插在内存插槽上,直接和内存总线相连。
如图4所示,为本申请实施例提供的一种dp-dimm的结构示例图。dp-dimm包括处理单元401和存储器402。在一些实施例中,存储器402可以是指内存单元,内存单元上集成有至少一个内存颗粒(如:动态随机存取存储器(dynamicrandomaccessmemory,dram)或同步动态随机存取内存(synchronousdynamicrandom-accessmemory,sdram))。根据dp-dimm中内存单元的存储容量的大小,在dp-dimm中可集成一个或多个处理单元401。处理单元401可以接收处理器3021发送的至少一条指令(如:数据密集型程序段),该指令用于指示处理单元401对数据密集型程序段的数据进行处理。每条指令包含数据位于存储器中的地址和操作类型。操作类型包括但不限于加、减、乘和除。在另一些实施例中,处理单元401接收到指令,从存储器402中读取数据,对数据进行处理后,可以将处理后的数据反馈给处理器3021,或者将处理后的数据存在存储器402中,待处理器3021从存储器402中获取处理后的数据。处理器3021可以将处理后的数据发送给计算节点301。
在一些实施例中,存储节点302还包括网卡,网卡可以从内存中读取数据,通过远程直接数据存取(remotedirectmemoryaccess,rdma)方式将处理后的数据发送给计算节点301。
进一步的,dp-dimm还可以包括缓存403和内存控制器404。缓存用于存储处理器3021发送的至少一条指令。内存控制器404用于根据至少一条指令确定数据在存储器402中的物理地址,根据物理地址从存储器402中获取数据,将数据传输至处理单元401。
在一些实施例中,内存控制器404可以集成于dp-dimm中,但是内存控制器404和处理单元401是两个不同的组件。
在一些实施例中,存储节点302可以包括n个dp-dimm,每个dp-dimm包括m个处理单元,n和m均为整数,n≥1,m≥1。处理器3021在接收到数据密集型子任务后,确定处理数据密集型子任务所需的存储容量要求和计算要求,处理器3021可以根据n个dp-dimm的剩余存储容量确定满足存储容量要求的至少一个dp-dimm,然后,处理器3021从至少一个dp-dimm中确定满足计算要求的dp-dimm。
在另一些实施例中,dp-dimm还可以包括状态寄存器405,状态寄存器405用于指示dp-dimm包括的m个处理单元的使用状态。处理器3021可以根据每个dp-dimm的状态寄存器的指示信息从至少一个dp-dimm中确定满足计算要求的dp-dimm。
在本实施例中,可以将m个处理单元401、内存控制器404、状态寄存器405和缓存403集成在一起,称为一个片上处理器。
例如,对于具有4个处理单元的片上处理器,“1111”表示每个处理单元都被占用,“1001”表示处理单元1和处理单元4被占用,处理单元2和处理单元3可用。
需要说明的是,一个dp-dimm可以包括多个片上处理器,本申请对片上处理器的个数不予限定。每个片上处理器可以与存储器402相连。
本申请的实施例提供的可插拔的基于dimm的dp-dimm,即在dimm中集成多核处理器或者单指令多数据流(singleinstructionmultipledata,simd)处理器,直接在dimm中完成数据密集型程序段的计算。如果使用simd处理器,可同时使用多个处理单元,实现并行计算。相比oracleexadata能将存储节点的处理器占用情况降低20%,为其它存储业务预留更多的处理器资源,同时数据密集型子任务的执行时间减少50%以上。
在一些实施例中,如果处理器3021没有确定到可以使用的dp-dimm,为了避免因等待dp-dimm而造成的处理数据延迟,数据密集型程序段将不会被卸载到dp-dimm上,而是使用传统的处理器计算方式处理数据密集型程序段。
如图5所示,为本申请实施例提供的一种近数据处理的示意图。应用服务器将数据密集型子任务下推给存储对应数据的存储节点,存储节点在处理数据密集型子任务时,将数据密集型程序段又下推给dp-dimm,dp-dimm对数据密集型程序段进行处理。
为了便于存储节点的处理器使用dp-dimm,本申请提供了一种针对dp-dimm的编程接口。例如,dp-dimm的编程接口可以是createpimcontext()。存储节点的处理器执行到语句createpimcontext()时,选择一个合适的dp-dimm卸载数据密集型程序段,同时将数据密集型程序段的数据存储到选择的dp-dimm中。如果没有合适的dp-dimm,将不会进行卸载。需要卸载到dp-dimm上执行的数据密集型程序段可以使用pimkernelbegin()和pimkernelend()定义。
示例的,如下所述为一个卸载神经网络算法中的卷积操作到dp-dimm上执行的例子。
图6为本申请实施例提供的一种处理数据的方法流程图。在这里以图3中所示的计算节点301和存储节点302为例进行说明。计算节点301可以是指应用服务器。存储节点302包括处理器3021和内存3022。内存3022包括dimm和dp-dimm。内存3022包含的dp-dimm包括处理单元和存储器。内存3022包含的dp-dimm可以是如图4所示的dp-dimm。处理单元可以是图4所示的处理单元401。存储器可以是图4所示的存储器402。如图6所述,该方法包括以下步骤。
s601、应用服务器向存储节点发送数据处理请求。
s602、存储节点的处理器接收数据处理请求。
s603、处理器根据数据处理请求读取数据至内存的存储器。
在一些实施例中,处理器根据数据处理请求从存储节点的存储介质(如:磁盘)中读取数据,再将数据存储到内存的存储器中。在这里假设内存是指上述实施例中所述的dp-dimm。
s604、处理器向处理单元发送至少一条指令。
指令用于指示处理单元对数据进行处理。
s605、处理单元从内存的存储器中读取数据。
s606、处理单元对数据进行处理。
s607、处理单元向处理器反馈处理后的数据。
s608、处理器接收处理单元反馈的处理后的数据。
s609、处理器向应用服务器发送处理后的数据。
关于处理数据的具体实现方式可以参考上述各实施例的阐述,不予赘述。
从而,通过在内存中增加处理单元,存储节点的处理器指示内存中的处理单元处理数据密集型的任务,避免了数据在内存总线上的移动,有效地提高了存储节点处理数据密集型子任务的处理速度,降低了数据处理的时延。极大地减少存储节点和计算节点之间的数据传输量,提升应用性能。对于数据密集型任务,例如olap,能将计算节点和存储节点之间的数据传输量减少5倍以上,性能提升5-10倍。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
1.一种存储节点,其特征在于,所述存储节点包括处理器和内存,所述内存包括处理单元和存储器,其中:
所述处理器用于接收应用服务器发送的数据处理请求,根据所述数据处理请求读取数据至所述内存的存储器;
所述处理器还用于向所述处理单元发送至少一条指令,所述指令用于指示所述处理单元对所述数据进行处理;
所述处理器还用于将处理后的数据发送给所述应用服务器。
2.根据权利要求1所述的存储节点,其特征在于,每条所述指令包含所述数据位于所述存储器中的地址和操作类型。
3.根据权利要求1或2所述的存储节点,其特征在于,所述内存还包括内存控制器,所述内存控制器不同于所述处理单元。
4.根据权利要求1-3中任一项所述的存储节点,其特征在于,所述内存还包括缓存,所述缓存用于存储所述至少一条指令。
5.根据权利要求1-4中任一项所述的存储节点,其特征在于,所述存储节点包括n个内存,n为整数,n≥1,其中,
所述处理器还用于根据所述n个内存的剩余存储容量确定满足存储容量要求的至少一个内存;
所述处理器还用于从所述至少一个内存中确定满足计算要求的内存。
6.根据权利要求5所述的存储节点,其特征在于,内存包括m个处理单元,m为整数,m≥1,所述内存还包括状态寄存器,所述状态寄存器用于指示所述内存包括的m个处理单元的使用状态,其中,
所述处理器用于根据每个所述内存的状态寄存器的指示信息从所述至少一个内存中确定满足计算要求的内存。
7.一种分布式系统,其特征在于,所述分布式系统包括应用服务器和存储节点,所述存储节点包括处理器和内存,所述内存包括处理单元和存储器,其中:
所述应用服务器用于向所述存储节点发送数据处理请求;
所述处理器用于接收应用服务器发送的数据处理请求,根据所述数据处理请求读取数据至所述内存的存储器;
所述处理器还用于向所述处理单元发送至少一条指令,所述指令用于指示所述处理单元对所述数据进行处理;
所述处理器还用于将处理后的数据发送给所述应用服务器;
所述应用服务器用于接收所述存储节点发送的处理后的数据。
8.一种处理数据的方法,其特征在于,该方法应用于存储节点,所述存储节点包括处理器和内存,所述内存包括处理单元和存储器,所述方法包括:
所述处理器接收应用服务器发送的数据处理请求,根据所述数据处理请求读取数据至所述内存的存储器;
所述处理器向所述处理单元发送至少一条指令,所述指令用于指示所述处理单元对所述数据进行处理;
所述处理器将处理后的数据发送给所述应用服务器。
9.根据权利要求7所述的分布式系统或权利要求8所述的方法,其特征在于,每条所述指令包含所述数据位于所述存储器中的地址和操作类型。
10.根据权利要求7所述的分布式系统或权利要求8所述的方法,其特征在于,所述内存还包括内存控制器,所述内存控制器不同于所述处理单元。
11.根据权利要求7所述的分布式系统或权利要求8所述的方法,其特征在于,所述内存还包括缓存,所述缓存用于存储所述至少一条指令。
12.一种计算机可读存储介质,其特征在于,包括:计算机软件指令;
当所述计算机软件指令在计算机设备或内置在计算机设备的芯片中运行时,使得所述计算机设备执行如权利要求8-11中任一项所述的方法。
技术总结