一种数据处理方法、装置及系统与流程

文档序号:12462613阅读:167来源:国知局
一种数据处理方法、装置及系统与流程

本发明涉及信息技术领域,特别涉及一种数据处理方法、装置及系统。



背景技术:

服务器中会插入若干个硬盘,如机械硬盘或固态硬盘(Solid State Disk,SSD)。服务器使用访问协议访问硬盘。通常,服务器访问硬盘中的数据,先要从硬盘中把数据读取到服务器的内存,再从内存中对数据进行处理,如查询、修改或删除。但上述操作过程中,服务器的输入输出(InputOutput,IO)和处理器容易成为性能瓶颈。



技术实现要素:

本发明第一方面公开了一种数据处理方案,应用于包含服务器和硬盘的系统中,具体实现方式如下:

硬盘接收服务器发送的调用指令;调用指令中包含待调用的函数的函数标识以及操作地址;硬盘根据函数标识调用硬盘中的函数;硬盘根据函数对操作地址对应的数据执行操作。其中,函数是指能够实现特定功能的计算机指令,如执行库函数。函数可以是硬盘通过接口(例如非易失性存储器高速接口)接收服务器发送的或第三方设备发送的,硬盘控制器存储该函数,其中,硬盘的接口接收的函数可以为源代码形式或目标代码形式。硬盘存储函数标识与该函数内存地址的对应关系,硬盘根据函数标识与该函数内存地址的对应关系以及接收到的函数标识,调用硬盘内存中该内存地址中的函数,对操作地址对应的数据执行操作。其中一种实现,函数在硬盘中的内存地址作为函数的标识。操作地址可以为硬盘呈现给服务器的逻辑地址,例如逻辑块地址。服务器可以为存储阵列控制器或应用服务器等,本实现方案减少了服务器与硬盘之间交互的数据量,减轻了服务器的IO压力以及服务器的处理器的处理压力,提升了服务器的性能。

可选的,调用指令还包含执行参数,函数是查询函数,执行参数为查询内容,硬盘根据函数对操作地址对应的数据执行操作具体包括:硬盘根据查询函数和执行参数查询操作地址对应的数据获得查询结果。

可选的,调用指令还包含执行参数,函数是修改函数,执行参数是修改数据,硬盘根据函数对操作地址对应的数据执行操作具体包括:硬盘根据修改函数和执行参数对操作地址对应的数据进行修改操作。

相应地,本发明第二方面还提供了一种数据处理设备(如硬盘),用于实现第一方面各种实现方式。其中,数据处理设备(如硬盘)包括实现本发明实现方案第一方面各种的实现方案的结构单元。

本发明第三方面提供了一种硬盘,包括接口、控制器以及非易失性存储介质,用于执行本发明实现方案第一方面各种的实现方式。

本发明第四方面还提供了一种数据处理系统,包括第一方面各种实现方式描述的硬盘及服务器。

相应地,本发明还提供了非易失性计算机可读存储介质和计算机程序产品,当本发明实现方案提供的数据处理设备(如硬盘)的内存加载非易失性计算机可读存储介质和计算机程序产品中包含的计算机指令,数据处理设备(如硬盘)中央处理单元(Central Processing Unit,CPU)执行存内存中的计算机指令时,分别使数据处理设备(如硬盘)执行本发明实现方案第一方面的各种可能实现方式。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍。

图1为本发明实施例系统结构示意图;

图2为本发明实施例硬盘结构示意图;

图3为本发明实施例数据处理流程图;

图4为本发明实施例数据处理装置结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述。

图1所示的为本发明实施例一种系统结构示意图,包括服务器101以及硬盘。服务器101与硬盘通信。其中,服务器101与硬盘可以通过网络连接(如交换设备、局域网、存储网络等),也可以直接连接,本发明实施例对此不作限定。具体实现中,硬盘可以为一块或多块。硬盘可以使用不同的接口,例如,串行高级技术附加(Serial Advanced Technology Attachment,SATA)接口、串行附加小型机系统接口(Serial Attached Small Computer System Interface,SAS)、外设组件高速互连(Peripheral Component Interconnect Express,PCIe)接口、非易失性存储器高速(Non-Volatile Memory Express,NVMe)接口或者以太(Ethernet)接口等,硬盘可以为不同介质的硬盘,如机械硬盘、SSD等。本发明实施例中的服务器101可以为通用服务器、大型机、小型机等作为应用服务器,也可以为存储阵列控制器,本发明实施例对此不作限定。

图1所示的系统中的硬盘,其结构如图2所示,包括接口201、控制器202和非易失性存储介质203。控制器202具体可以由中央处理单元(Central Processing Unit,CPU)和内存组成,CPU执行内存中的指令实现控制器202的功能。另外,为节省CPU的计算资源,现场可编程门阵列(Field Programmable Gate Array,FPGA)或其他硬件也可以用于执行本发明实施例中CPU全部操作,或者,FPGA或其他硬件与CPU分别用于执行本发明实施例CPU的部分操作,以实现本发明实施例描述的技术方案。为方便描述,本发明实施例统一描述为控制器用于实现本发明实施例的技术方案。另一种实现,内存中的计算机指令可以是固件的形式,CPU执行固件中的计算机指令实现控制器的功能。

本发明实施例中,服务器101将具有特定操作处理的功能以函数的形式缷载(Offload)到硬盘中。本发明实施例中的“缷载”是将本来由服务器执行的功能,以函数的形式安装到硬盘中,由硬盘执行函数,将执行结果返回给服务器,而不需要如下操作:服务器101先将待处理的操作地址对应的数据从硬盘读取到服务器101的内存中,然后服务器101对内存中的数据执行操作。本发明实施例中,函数是指能够实现特定功能的计算机指令,例如执行库函数。本发明实施例减少了服务器101与硬盘之间交互的数据量,减轻了服务器101的IO压力以及服务器101的处理器的处理压力,提升了服务器101的性能。

本发明实施例中,硬盘中的函数可以由服务器101发送给硬盘,也可以通过第三方设备(如管理设备)发送给硬盘。硬盘通过接口(例如NVMe接口、PCIe接口等)接收服务器101或第三方设备发送的函数,并存储该函数,如存储到非易失性存储介质中,硬盘在启动或接收到调用指令时从非易失性存储介质中加载到硬盘的内存中,也可以以固件的形式直接由硬盘调用。接口接收的函数可以为源代码形式或目标代码形式。本发明实施例对此不作限定。服务器101与硬盘通信,服务器101存储每一种函数对应的函数标识,以用于调用硬盘中的函数执行特定的功能。本发明实施例中,函数标识可以使用字母或数字代表相应的函数。例如,一种实现,用A代表执行查询功能的函数,用B代表执行修改功能的函数等,则服务器101存储函数标识与函数的对应关系。服务器101根据相应的操作需要查询函数标识与函数的对应关系,确定对应的函数标识,向硬盘发送函数标识以及操作地址。硬盘存储函数标识与该函数内存地址的对应关系,硬盘使用函数标识查询函数标识与该函数内存地址的对应关系,调用对应的硬盘内存地址中的函数,对操作地址对应的数据执行操作。另一种实现中,服务器101存储硬盘中不同函数的内存地址,即函数的内存地址作为函数标识,服务器101向硬盘发送函数内存地址以及操作地址,硬盘调用函数内存地址中的函数对操作地址对应的数据执行操作。其中函数内存地址是指硬盘内存中存储函数的内存地址。本发明实施例中,操作地址可以为硬盘呈现给服务器的逻辑地址,例如逻辑块地址(Logical Block Address,LBA)。操作地址还可以为对象地址,本发明实施例对此不作限定。硬盘中保存操作地址与硬盘的非易失性存储介质的物理地址的映射,硬盘根据操作地址与硬盘的非易失性存储介质的物理地址的映射,将操作地址对应的数据从硬盘的非易失性存储介质的物理地址读到硬盘的内存中。其中,服务器101向硬盘发送的函数标识以及操作地址可以携带在调用指令中。

本发明实施例数据处理流程如图3所示,包括:

301:硬盘接收服务器101发送的调用指令;调用指令中包含待调用的函数的函数标识以及操作地址;

如前面所述,硬盘解析调用指令,获得函数标识以及操作地址。

302硬盘根据函数标识调用硬盘中的函数;

硬盘根据函数标识调用该函数。

303硬盘根据函数对操作地址对应的数据执行操作。

硬盘根据函数,如执行查询功能、修改功能、插入、删除功能等函数,对操作地址对应的数据进行操作。其中,执行查询功能的函数称为查询函数、执行修改功能的函数称为修改函数,执行插入功能的删除称为插入函数,执行删除功能的函数称为删除函数。

接下来,本发明实施例以服务器101向硬盘的调用指令为调用查询函数为例进行描述,也就是调用指令中携带的待调用的函数的函数标识为查询函数的函数标识,操作地址为待查询数据对应的地址,调用指令中还携带执行参数,在调用指令中函数标识对应的函数为查询函数时,执行参数为查询内容,即要查询的对象。硬盘接收到调用指令后,根据待调用的函数的标识确定为查询函数,则硬盘调用查询函数。硬盘将操作地址对应的数据读取以硬盘的内存中。例如查询的对象为查询操作地址中1的数量,则硬盘使用查询函数根据执行参数查询操作地址中存储的1的数量,得到查询结果,并将查询结果返回给服务器101。本发明实施例中,硬盘不需要将操作地址对应的数据返回给服务器101,服务器101也不需要从服务器101的内存中进行查询操作,而是直接从硬盘中获得查询结果,因此,本发明实施例减少了服务器101与硬盘之间交互的数据量,减轻了服务器101的IO压力以及服务器101的处理器的处理压力,提升了服务器101的性能。

本发明实施例以服务器101向硬盘的调用指令为调用修改函数为例进行描述,也就是调用指令中携带的待调用的函数的函数标识为修改函数的函数标识,操作地址为待修改数据对应的地址。调用指令中还携带执行参数,在调用指令中函数标识对应的函数为修改函数时,执行参数为修改数据,即在特定地址长度上写入的新数据。硬盘接收到调用指令后,根据待调用的函数的函数标识确定为修改函数,则硬盘调用修改函数。硬盘将操作地址对应的数据读取到硬盘的内存中。例如修改数据为将操作地址中从操作地址的起始地址开始连续4Kb长度的内容全部写为1,则硬盘使用修改函数根据执行参数将操作地址中从操作地址的起始地址开始连续4Kb长度的内容全部写为1,硬盘将硬盘的内存缓存的操作地址对应的脏数据下盘,从而操作地址中的内容更新为修改后的内容。其中脏数据是指数据被读取到硬盘的内存后发生了修改但没有写入硬盘的介质的数据。本发明实施例中,硬盘不需要将操作地址对应的数据先返回给服务器101,服务器101也不需要从服务器101的内存中对操作地址对应的数据进行修改,然后写入硬盘,而是直接从硬盘中完成数据修改,因此,本发明实施例减少了服务器101与硬盘之间交互的数据量,减轻了服务器101的IO压力以及服务器101的处理器的处理压力,提升了服务器101的性能。

本发明实施例中,函数还可以是删除函数,即服务器101向硬盘的调用指令为调用删除函数,也就是调用指令中携带的待调用的函数的函数标识为删除函数的标识,操作地址为待删除数据对应的地址。硬盘调用删除函数,硬盘根据删除函数将硬盘内存中操作地址对应的数据的元数据置为无效,也就是将操作地址对应的数据删除。

本发明实施例中调用指令调用的函数还可以是插入函数等,本发明实施例不再一一列举。

本发明实施例描述的各种实现方式,结合图2,具体为硬盘的接口接收调用指令,硬盘的控制器根据函数标识调用硬盘中的函数,根据函数对操作地址对应的数据执行操作。

相应的,本发明实施例公开了如图2所示的数据处理装置,数据处理装置与服务器通信,数据处理装置包括接口单元401和处理单元402;接口单元401用于接收服务器发送的调用指令;调用指令中包含待调用的函数的函数标识以及操作地址;处理单元402用于根据函数标识调用硬盘中的函数,根据函数对操作地址对应的数据执行操作。可选的,接口单元401还用于接收服务器发送的函数。可选的,接口单元401是NVMe接口。可选的,调用指令还包含执行参数,函数是查询函数,执行参数为查询内容,处理单元402具体用于根据查询函数和执行参数查询操作地址对应的数据获得查询结果。可选的,调用指令还包含执行参数,函数是修改函数,执行参数是修改数据,处理单元402具体用于根据修改函数和执行参数对操作地址对应的数据进行修改操作。

如图4所示的数据处理装置,可以应用于硬盘中,执行本发明前述各实施例的内容,具体实施方式及效果请参见前面各实施例的详细描述,在此不再赘述。

如图4所示的数据处理装置,一种实现方式为数据处理装置上安装有上述单元,上述单元可被加载到数据处理装置的内存中,由数据处理装置中的CPU执行内存中的指令,实现本发明对应的实施例中的功能;另一种实现,数据处理装置中包含的单元可以由硬件来实现,或者由CPU执行内存中的指令与硬件组合实现。上述单元也称为结构单元。

本发明实施例,还提供了非易失性计算机可读存储介质和计算机程序产品,非易失性计算机可读存储介质和计算机程序产品中包含的计算机指令,CPU执行内存中加载的该计算机指令用于实现本发明各实施中数据处理装置(如硬盘)对应的功能。

在本发明所提供的几个实施例中,应该理解到,所公开的装置、方法,可以通过其它的方式实现。例如,以上所描述的装置实施例所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1