CN110019004B - 一种数据处理方法、装置及系统 - Google Patents
一种数据处理方法、装置及系统 Download PDFInfo
- Publication number
- CN110019004B CN110019004B CN201710807451.XA CN201710807451A CN110019004B CN 110019004 B CN110019004 B CN 110019004B CN 201710807451 A CN201710807451 A CN 201710807451A CN 110019004 B CN110019004 B CN 110019004B
- Authority
- CN
- China
- Prior art keywords
- data
- index
- information
- pointer information
- processed
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/11—File system administration, e.g. details of archiving or snapshots
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
- G06F16/134—Distributed indices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例公开了一种数据处理方法、装置及系统,涉及存储技术领域,解决了加速处理数据的性能低的问题。具体方案为:数据处理系统包括加速控制模块和加速处理模块;加速控制模块根据待处理对象的名称获取待处理对象的索引号,并确定目标磁盘分区的标识;当确定存储有目标映射关系时,加速处理模块从目标映射关系中获取每个数据块的特征信息,数据块的特征信息包括数据块的起始物理地址信息,目标映射关系包括每个数据块的特征信息与指向该数据块的数据指针信息的起始逻辑地址信息之间的映射关系;加速处理模块根据获取到的数据块的特征信息,获取待处理对象的数据,并加速处理。
Description
技术领域
本申请实施例涉及存储技术领域,尤其涉及一种数据处理方法、装置及系统。
背景技术
应用程序在启动和运行过程中,通常需要将存储设备中的数据读取到内存中,然后利用处理器读取内存中的数据以实现该应用程序的功能。为了降低数据从存储设备传输到内存和处理器这一过程所引发的功耗较大的问题,业界提出了近数据处理(Near DataProcessing,NDP)技术。NDP技术在存储设备中添加了能够访问存储设备所保存的数据,并加速处理其获取到的数据的加速处理模块。NDP技术利用加速处理模块靠近数据的优势,减少了数据传输的功耗。
目前,利用NDP技术处理数据的方法为:对于某一待处理文件,应用程序获取文件系统解析到的待处理文件的物理存储位置信息,并向存储设备发送包括待处理文件的物理存储位置信息的加速处理请求;存储设备中的加速处理模块根据待处理文件的物理存储位置信息从该存储设备中获取待处理文件的数据,并加速处理其获取到的数据。
上述加速处理请求需要包括待处理文件的完整的物理存储位置信息。当待处理文件占用的存储空间较大时,该待处理文件的完整的物理存储位置信息也可能会较大,这样会降低加速处理数据的性能。
发明内容
本申请实施例提供一种数据处理方法、装置及系统,能够解决加速处理数据的性能低的问题。
为达到上述目的,本申请采用如下技术方案:
第一方面,提供一种数据处理系统,该数据处理系统包括应用程序执行模块、与应用程序执行模块连接的文件管理模块、存储介质、与应用程序执行模块连接的加速控制模块、以及与加速控制模块和存储介质连接的加速处理模块。具体的,上述加速控制模块,用于接收上述应用程序执行模块发送的通知消息,并根据通知消息携带的待处理对象的名称从文件管理模块中获取待处理对象的索引号,并确定目标磁盘分区的标识,待处理对象的数据被存储于存储介质的目标磁盘分区中的至少一个数据块中,索引号用于表征待处理对象的索引,待处理对象的索引包括至少一个第一级的数据指针信息和至少一个第一级的索引指针信息,第一级的索引指针信息用于指向一个第二级的数据指针信息或者第二级的索引指针信息,每一级的数据指针信息用于指向一个数据块,每一级的索引指针信息用于指向一个下一级的数据指针信息或下一级的索引指针信息,存储介质存储有至少一个对象的数据,待处理对象为至少一个对象中的一个,文件管理模块记录有每个对象的名称和索引号。上述加速控制模块,还用于向上述加速处理模块发送携带待处理对象的索引号加速处理请求,加速处理请求用于请求加速处理待处理对象的数据。上述加速处理模块,用于在接收到加速处理请求后,响应加速处理请求,当确定存储有目标映射关系时,从目标映射关系中获取至少一个数据块中每个数据块的特征信息,数据块的特征信息包括数据块的起始物理地址信息,目标映射关系包括每个数据块的特征信息与指向该数据块的数据指针信息的起始逻辑地址信息之间的映射关系。上述加速处理模块,还用于根据获取到的数据块的特征信息,从存储介质中获取待处理对象的数据,并加速处理待处理对象的数据。
加速处理模块存储有目标映射关系,该目标映射关系包括存储有待处理文件的数据的每个数据块的特征信息与指向该数据块的数据指针信息的起始逻辑地址信息之间的映射关系,数据块的特征信息包括数据块的物理存储地址信息,这样,加速处理模块在接收到携带有待处理文件的索引号的加速处理请求后,根据待处理文件的索引号所指示的索引获取到指向各个数据块的数据指针信息的起始逻辑地址信息,利用目标映射关系即可获取到该待处理文件的数据,进而加速处理获取到的数据。本申请实施例提供的数据处理系统中无需再传输待处理文件的物理存储位置信息,仅仅获取到待处理文件的索引号即可实现数据的加速处理,提高了加速处理的性能。
可选的,在本申请的一种可能的实现方式中,上述加速处理模块还用于:当确定未存储有目标映射关系时,从待处理对象的索引中获取所有数据指针信息的起始逻辑地址信息以及每个数据指针信息指向的数据块的特征信息,并根据所有数据指针信息的起始逻辑地址信息以及每个数据指针信息指向的数据块的特征信息,建立目标映射关系。
在加速处理模块未存储有目标映射关系的情况下,加速处理模块根据待处理对象的索引获取相关地址信息,建立目标映射关系,便于整个数据处理系统后续加速处理该待处理对象的数据,以提高加速处理数据的性能。
可选的,在本申请的另一种可能的实现方式中,本申请中待处理对象的索引中的每个指针信息存储于目标磁盘分区中的一个物理块中。相应的,上述加速处理模块,还用于获取所有目标物理块的起始物理地址信息和每个目标物理块存储的指针信息的有效长度,目标物理块为存储有待处理对象的索引中的指针信息的物理块。在这种情况下,本申请提供的数据处理系统还包括与文件管理模块、加速处理模块以及存储介质均连接的盘控制模块。上述加速处理模块,还用于向该盘控制模块发送所有目标物理块的起始物理地址信息和每个目标物理块存储的指针信息的有效长度。相应的,该盘控制模块,用于在接收到上述加速处理模块发送的所有目标物理块的起始物理地址信息和每个目标物理块存储的指针信息的有效长度后,生成包括至少一个索引信息集合的索引地址树,每个索引信息集合包括一个索引地址信息和一个索引长度,索引地址信息为一个物理块的起始物理地址信息,索引长度为存储于一个物理块中的指针信息的有效长度。
可选的,在本申请的另一种可能的实现方式中,上述盘控制模块还用于:接收文件管理模块发送的用于请求在目的物理地址执行写操作的写请求,响应于该写请求,在目的物理地址执行写操作,以及当确定目的物理地址位于索引地址树所标识的物理地址区域内时,向上述加速处理模块发送更新消息,更新消息用于通知加速处理模块更新目标映射关系和索引地址树。相应的,上述加速处理模块,还用于响应于更新消息,更新目标映射关系和索引地址树。
盘控制模块生成了索引地址树,该索引地址树用于标识与待处理文件对应的物理地址区域,这样,当盘控制模块确定待处理文件的物理存储位置发生变化时,加速处理模块可及时更新目标映射关系,以便于后续正确读取待处理文件的数据。本申请实施例中的数据处理系统可迅速、准确的读取待处理文件的数据,提高了整个系统处理数据的性能。
可选的,在本申请的另一种可能的实现方式中,上述数据块的特征信息还包括数据块存储的数据的有效长度。这样,加速处理模块在获取待处理对象的数据时,可避免在无效的地址信息中读取数据,提高了数据读取的速率,也提高了数据处理系统的性能。
第二方面,提供一种数据处理方法,存储设备在获取到携带待处理对象的索引号的加速处理请求后,响应该加速处理请求,该加速处理请求用于请求加速处理待处理对象的数据,待处理对象的数据被存储于目标磁盘分区中的至少一个数据块中,索引号用于表征待处理对象的索引,待处理对象的索引包括至少一个第一级的数据指针信息和至少一个第一级的索引指针信息,第一级的索引指针信息用于指向一个第二级的数据指针信息或者第二级的索引指针信息,每一级的数据指针信息用于指向一个数据块,每一级的索引指针信息用于指向一个下一级的数据指针信息或下一级的索引指针信息;当确定存储有目标映射关系时,存储设备从目标映射关系中获取至少一个数据块中每个数据块的特征信息,数据块的特征信息包括数据块的起始物理地址信息,该目标映射关系包括每个数据块的特征信息与指向该数据块的数据指针信息的起始逻辑地址信息之间的映射关系;存储设备根据获取到的数据块的特征信息,获取待处理对象的数据,并加速处理待处理对象的数据。
存储设备存储有目标映射关系,该目标映射关系包括存储有待处理文件的数据的每个数据块的特征信息与指向该数据块的数据指针信息的起始逻辑地址信息之间的映射关系,数据块的特征信息包括数据块的物理存储地址信息,这样,存储设备在接收到携带有待处理文件的索引号的加速处理请求后,根据待处理文件的索引号所指示的索引获取到指向各个数据块的数据指针信息的起始逻辑地址信息,利用目标映射关系即可获取到该待处理文件的数据,进而加速处理获取到的数据。本申请实施例提供的数据处理系统中无需再传输待处理文件的物理存储位置信息,仅仅获取到待处理文件的索引号即可实现数据的加速处理,提高了加速处理的性能。
可选的,在本申请的一种可能的实现方式中,当确定未存储有目标映射关系时,存储设备从待处理对象的索引中获取所有数据指针信息的起始逻辑地址信息以及每个数据指针信息指向的数据块的特征信息,并根据获取到的所有数据指针信息的起始逻辑地址信息以及每个数据指针信息指向的数据块的特征信息,建立目标映射关系。
在未存储有目标映射关系的情况下,存储设备根据待处理对象的索引获取相关地址信息,建立目标映射关系,便于后续加速处理该待处理对象的数据,以提高加速处理数据的性能。
可选的,在本申请的另一种可能的实现方式中,待处理对象的索引中的每个指针信息存储于目标磁盘分区中的一个物理块中,相应的,本申请中的存储设备还生成包括至少一个索引信息集合的索引地址树,每个索引信息集合包括一个索引地址信息和一个索引长度,索引地址信息为一个物理块的起始物理地址信息,索引长度为存储于一个物理块中的指针信息的有效长度。
可选的,在本申请的另一种可能的实现方式中,存储设备还获取用于请求在目的物理地址执行写操作的写请求;响应于写请求,该存储设备在目的物理地址执行写操作;当确定目的物理地址位于索引地址树所标识的物理地址区域内时,存储设备更新目标映射关系和索引地址树。
存储设备中的索引地址树用于标识与待处理文件对应的物理地址区域,这样,当确定待处理文件的物理存储位置发生变化时,存储设备可及时更新目标映射关系,以便于后续正确读取待处理文件的数据。本申请实施例提供的数据处理方法可迅速、准确的读取待处理文件的数据,提高了存储设备处理数据的性能。
可选的,在本申请的另一种可能的实现方式中,上述数据块的特征信息还包括数据块存储的数据的有效长度。这样,存储设备在获取待处理对象的数据时,可避免在无效的地址信息中读取数据,提高了数据读取的速率。
第三方面,提供一种存储设备,该存储设备包括第一获取单元、第一判断单元以及加速处理单元。具体的,上述第一获取单元,用于获取携带待处理对象的索引号的加速处理请求,该加速处理请求用于请求加速处理待处理对象的数据,待处理对象的数据被存储于目标磁盘分区中的至少一个数据块中,索引号用于表征待处理对象的索引,待处理对象的索引包括至少一个第一级的数据指针信息和至少一个第一级的索引指针信息,第一级的索引指针信息用于指向一个第二级的数据指针信息或者第二级的索引指针信息,每一级的数据指针信息用于指向一个数据块,每一级的索引指针信息用于指向一个下一级的数据指针信息或下一级的索引指针信息。上述第一判断单元,用于响应于上述第一获取单元获取到的加速处理请求,判断是否存储有目标映射关系。上述第一获取单元,还用于当上述第一判断单元确定存储有目标映射关系时,从目标映射关系中获取至少一个数据块中每个数据块的特征信息,数据块的特征信息包括数据块的起始物理地址信息,目标映射关系包括每个数据块的特征信息与指向该数据块的数据指针信息的起始逻辑地址信息之间的映射关系,以及用于根据获取到的数据块的特征信息,获取待处理对象的数据。上述加速处理单元,用于加速处理上述第一获取单元获取到的待处理对象的数据。
进一步地,在本申请的一种可能的实现方式中,上述第一获取单元还用于当上述第一判断单元确定未存储有目标映射关系时,从待处理对象的索引中获取所有数据指针信息的起始逻辑地址信息以及每个数据指针信息指向的数据块的特征信息。本申请提供的存储设备还包括建立单元,该建立单元用于根据上述第一获取单元获取到的所有数据指针信息的起始逻辑地址信息以及每个数据指针信息指向的数据块的特征信息,建立目标映射关系。
进一步地,在本申请的一种可能的实现方式中,上述第一获取单元还用于获取所有目标物理块的起始物理地址信息和每个目标物理块存储的指针信息的有效长度,目标物理块为存储有待处理对象的索引中的指针信息的物理块。上述待处理对象的索引中的每个指针信息存储于目标磁盘分区中的一个物理块中,相应的,本申请提供的存储设备还包括第一发送单元、第二获取单元和生成单元。该第一发送单元用于向第二获取单元发送第一获取单元获取到的所有目标物理块的起始物理地址信息和每个目标物理块存储的指针信息的有效长度。第二获取单元用于接收上述第一发送单元发送的所有目标物理块的起始物理地址信息和每个目标物理块存储的指针信息的有效长度。生成单元用于根据上述第二获取单元获取到的所有目标物理块的起始物理地址信息和每个目标物理块存储的指针信息的有效长度,生成包括至少一个索引信息集合的索引地址树,每个索引信息集合包括一个索引地址信息和一个索引长度,索引地址信息为一个物理块的起始物理地址信息,索引长度为存储于一个物理块中的指针信息的有效长度。
进一步地,在本申请的一种可能的实现方式中,上述第二获取单元还用于获取用于请求在目的物理地址执行写操作的写请求。存储设备还包括写处理单元、第二判断单元、第二发送单元以及更新单元。具体的,写处理单元还用于响应于上述第二获取单元获取到的写请求,在目的物理地址执行写操作。第二判断单元,还用于判断上述第二获取单元获取到的写请求携带的目的物理地址是否位于生成单元生成的索引地址树所标识的物理地址区域内。第二发送单元,用于当上述第二判断单元确定目的物理地址位于索引地址树所标识的物理地址区域内时,向上述第一获取单元发送更新消息,更新消息用于通知更新目标映射关系和索引地址树。上述第一获取单元,还用于接收上述第二发送单元发送的更新消息。更新单元,用于响应上述第一获取单元获取到的更新消息,更新目标映射关系和索引地址树。
进一步地,在本申请的一种可能的实现方式中,数据块的特征信息还包括数据块存储的数据的有效长度。
结合上述第一方面可知,上述加速处理模块进一步地包括本方面所涉及到的第一获取单元、第一判断单元、加速处理单元、建立单元、第一发送单元以及更新单元。上述盘控制模块进一步地包括本方面涉及到的第二获取单元、第二判断单元、第二发送单元、生成单元、写处理单元以及更新单元。上述加速控制模块可以集成在本申请实施例提供的存储设备中,也可以集成在与本申请实施例提供的存储设备相互独立的客户端设备中。
第四方面,还提供一种存储设备,该存储设备包括:一个或多个处理器、存储介质、通信接口。其中,存储介质、通信接口与一个或多个处理器耦合;存储介质用于存储计算机程序代码,计算机程序代码包括指令,当一个或多个处理器执行指令时,存储设备执行如上述第二方面及其各种可能的实现方式所述的数据处理方法。
第五方面,还提供一种计算机可读存储介质,该计算机可读存储介质中存储有指令;当其在上述第三方面或上述第四方面所述的存储设备上运行时,使得该存储设备执行如上述第二方面及其各种可能的实现方式的数据处理方法。
第六方面,还提供一种包含指令的计算机程序产品,当其在上述第三方面或第四方面所述的存储设备上运行时,使得该存储设备执行如上述第二方面及其各种可能的实现方式所述的数据处理方法。
在本申请中,上述装置的名字对设备或功能模块本身不构成限定,在实际实现中,这些设备或功能模块可以以其他名称出现。只要各个设备或功能模块的功能和本申请类似,属于本申请权利要求及其等同技术的范围之内。
本申请中第三方面、第四方面、第五方面、第六方面及其各种实现方式的具体描述,可以参考第二方面及其各种实现方式中的详细描述;并且,第三方面、第四方面、第五方面、第六方面及其各种实现方式的有益效果,可以参考第二方面及其各种实现方式中的有益效果分析,此处不再赘述。
附图说明
图1为现有技术中Linux操作系统中的分区结构示意图;
图2为现有技术中ext2文件系统中inode内容的索引结构示意图;
图3为本申请实施例提供的通用计算机设备的硬件结构示意图;
图4为本申请实施例提供的通用计算机设备的逻辑结构示意图;
图5为本申请实施例提供的数据处理系统的结构示意图一;
图6为本申请实施例提供的数据处理系统的结构示意图二;
图7为本申请实施例提供的数据处理方法的流程示意图一;
图8为本申请实施例提供的生成目标映射关系的结构示意图;
图9为本申请实施例提供的生成索引地址树的结构示意图;
图10为本申请实施例提供的数据处理方法的流程示意图二;
图11为本申请实施例提供的存储设备的结构示意图。
具体实施方式
在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
文件系统是一种存储和组织用户数据的方法,其使用文件和树形目录的抽象逻辑概念代替了硬盘、光盘等存储设备使用数据块的概念,为用户访问和查找文件提供了方便。为了管理目录下的子文件和子目录,目录的数据需要保存该目录下所有子文件的名字和索引(inode)号。其中,文件名是用户可见的,用户通过文件名来管理和访问文件;inode号是文件系统中文件的内部索引,用于关联该文件的元数据与该文件的数据。由于文件系统会记录文件所属的目录和文件名,因此,在文件系统的应用场景中,用户不需要关心文件中的数据存储在存储设备的哪些数据块上,只需要记住文件所属的目录和文件名就可以完成对文件中的数据的访问。
文件系统是计算机的操作系统中的重要组成部分,用于控制对计算机的存储介质(磁盘或硬盘)所保存的数据的存取。在计算机中,文件系统对应用程序呈现出一段连续的逻辑存储空间,应用程序可以在所述连续的逻辑空间中进行随机访问;文件系统将所述连续的逻辑存储空间分块,并且以块为单位将所述连续的逻辑存储空间映射到存储介质提供的物理存储空间。也就是说,文件系统的逻辑存储空间是对存储介质提供的物理存储空间的重新组织映射。计算机中存储有某一文件的逻辑存储空间与物理存储空间的映射关系。
一般的,存储介质所提供的存储空间包括多个分区(partition),所述多个分区均被挂载在一个或多个文件系统。每个文件的数据均被存入到存储介质的某个分区中。存储介质的每个分区被划分为多个块(block)。对于同一文件系统,每个block的大小相同。典型的,每个block的大小是1024字节(byte)或者4096字节。
如图1所示,Linux操作系统中,每个分区包含有启动区(Boot block)、超级区(Super block)、索引区和数据区。启动区的大小为1024字节,存储有用于实现操作系统的加载和启动的程序。超级区的大小为1024字节,存储有文件系统的相关信息,例如:文件系统的类型,block的数目、block的大小等信息。索引区存储有N(N≥1)个索引(inode)号,其中,inode是实现文件存储的关键。在Linux系统中,一个文件对应一个inode,每个inode可以用索引号表示,每个文件的数据被存储于至少一个真正用于存储数据的block中。文件的inode包括多个指针信息,指向存储有该文件的数据的各个block。当应用程序需要读取某一文件时,根据该文件的inode所包括的指针信息,即可确定出存储有该文件数据的各个block,进而从确定出的block中获取该文件的数据。数据区包括M(M≥1)个真正用于存储数据的block。为了便于描述,本申请实施例将真正用于存储文件的数据的block称为数据块,将存储有除文件的数据以外的信息的block称为物理块。
在Linux操作系统中,文件的访问均需要通过inode来索引,每个文件唯一对应一个inode。文件的inode包括文件的基本信息(例如文件名称、文件大小、文件创建时间、文件修改时间等)、以及直接或间接指向存储文件数据的数据块的指针信息。因此,读取到文件的inode后即可根据该inode获取到该文件的数据。不同文件系统中的inode索引结构不同。
以ext2文件系统为例进行说明。文件的inode包括该文件的基本信息(文件名称、文件大小、文件创建时间、文件修改时间),12个直接块指针信息,1个一次间接块指针信息,1个二次间接块指针信息以及1个三次间接块指针信息。直接块指针信息用于指向某个数据块。一次间接块指针信息用于指向一个包含有多个指针信息的物理块,所述多个指针信息中的每个指针信息指向一个数据块。二次间接块指针信息用于指向一个包含有多个指针信息的物理块,所述多个指针信息中的每个指针信息指向另一个包含有多个指针信息的物理块,所述另一个包含有多个指针信息的物理块中的每个指针信息用于指向一个数据块。可以看出,二次间接块指针信息与一次间接块指针信息类似,不同的是,二次间接块指针信息比一次间接指针信息多一次索引。同理,三次间接块指针信息与一次间接指针信息也类似,不同的是,二次间接块指针信息比一次间接指针信息多两次索引。需要说明的是,本申请实施例中的一次间接块指针信息也可以称为一次间接指针信息,二次间接块指针信息也可以称为二次间接指针信息,三次间接块指针信息也可以称为三次间接指针信息,本申请实施例对此不作具体限定。结合图1,图2示出了ext2文件系统中inode内容的索引结构。
为了便于理解,本申请实施例将指针信息按照上下级别以及指向的内容命名。例如,由于直接块指针信息直接指向数据块,且直接块指针信息为inode包括的信息,因此将直接块指针信息命名为第一级的数据指针信息;由于一次间接块指针信息指向一个包含有多个指针信息的物理块,而非数据块,因此,将一次间接块指针信息命名为第一级的索引指针信息,又由于所述多个指针信息中的每个指针信息直接指向数据块,因此,将所述多个指针信息中的每个指针信息命名为第二级的数据指针信息。同理,将二次间接块指针信息命名为第一级的索引指针信息,将二次间接块指针信息指向的物理块所包括的指针信息命名为第二级的索引指针信息,将所述第二级的索引指针信息指向的物理块所包括的指针信息命名为第三级的数据指针信息。同理,对于三次间接指针信息,存在第三级的索引指针信息和第四级的数据指针信息。
可以看出,对于某一文件而言,该文件的物理存储地址信息包括上述每一级别的指针信息。
NDP技术在计算机的存储介质中添加了能够访问计算机的存储介质所保存的数据,并加速处理其获取到的数据的加速处理模块。该技术利用加速处理模块靠近数据的优势,减少了数据传输的功耗。
上述计算机可以理解为计算机设备,该计算机设备为添加了加速处理模块的通用计算机设备。相应的,支持NDP技术的数据处理系统可视为添加了加速处理模块的通用计算机设备,上述文件系统为该计算机设备的文件系统,如图3所示,本申请实施例中添加了加速处理模块的通用计算机设备包括处理器30、存储器31以及通信接口32。处理器30、存储器31以及通信接口32通过总线33通信。该计算机设备通过通信接口32与其他设备通信。处理器30包括N个处理器内核(内核1、……、内核k、……、内核N),例如至少一个中央处理器(Central Processing Unit,CPU)等,每一个CPU可以是一个单核处理器(single-CPU),也可以是一个多核处理器(multi-CPU)。多个处理器内核可以分时,也可以同时读取存储器31中存储的数据。存储器31为上述存储介质,该存储器可以存储数据、软件程序以及模块等。存储器31可以为硬盘(Hard Disk Drive,HDD)、固态硬盘(Solid-State Drive,SSD)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由处理器30存取的任何其他介质,但不限于此。存储器31包括加速处理模块310、盘控制模块311以及加速控制模块312,加速处理模块310和加速控制模块312以程序代码的形式存储于存储器31中。当被载入并被处理器30执行时,加速控制模块312的程序代码指示处理器30执行加速处理模块311的程序代码。盘控制模块311可以以硬件形式内嵌于存储器31中,也可以以程序代码形式存储于存储器31中。加速控制模块用于向加速处理模块发送携带待处理对象的索引号的加速处理请求。加速处理模块310用于根据加速处理请求,读取存储器31中的数据,并加速处理读取到的数据。盘控制模块311用于初步处理数据读写请求。
基于上述图3示出的通用计算机设备的硬件结构,图3示出的通用计算机设备的操作系统可以为Linux操作系统,也可以为其他操作系统,本申请实施例对此不作具体限定。
图4示出了图3所示的通用计算机设备的逻辑结构示意图。如图4所示,图3中的通用计算机设备的操作系统包括文件系统,该通用计算机设备内置有至少一个应用程序,每个应用程序被安装在计算机设备的操作系统中。这里的应用程序可以是计算机设备自身内置的应用程序,也可以是用户自行安装的第三方服务商提供的应用程序,本申请实施例对此不作具体限定。每个应用程序可以在上述处理器30上运行。每个应用程序在运行中,通过文件系统访问存储器31中存储的数据。每个应用程序的运行会引发数据的加速处理流程。若某一应用程序在运行过程中需加速获取待处理文件的数据,该应用程序会触发其所运行的处理器向存储器31发送加速处理请求,存储器31中加速处理模块310根据接收到的加速处理请求读取数据,并加速处理。
此外,上述计算机也可视为上述支持NDP技术的数据处理系统。为了便于描述,后续内容均以数据处理系统表示支持NDP技术的数据处理系统。如图5所示,本申请实施例提供的数据处理系统包括应用程序执行模块50、与应用程序执行模块50连接的文件管理模块51、存储介质52、与应用程序执行模块50连接的加速控制模块53、与加速控制模块53和存储介质52连接的加速处理模块54、与文件管理模块51、加速处理模块54以及存储介质52均连接的盘控制模块55。
应用程序执行模块50通知加速控制模块53需加速处理待处理对象的数据,相应的,加速控制模块53根据待处理对象的名称从文件管理模块51中获取待处理对象的索引号,确定目标磁盘分区的标识,并向加速处理模块54发送携带待处理对象的索引号的加速处理请求。加速处理模块54在接收到所述加速处理请求后,当确定存储有目标映射关系时,从目标映射关系中获取至少一个数据块中每个数据块的特征信息,并根据获取到的数据块的特征信息,从存储介质52中获取待处理对象的数据,并加速处理待处理对象的数据。数据块的特征信息包括该数据块的起始物理地址信息,目标映射关系包括每个数据块的特征信息与指向该数据块的数据指针信息的起始逻辑地址信息之间的映射关系。
加速处理模块54存储有目标映射关系,该目标映射关系包括存储有待处理文件的数据的每个数据块的特征信息与指向该数据块的数据指针信息的起始逻辑地址信息之间的映射关系,数据块的特征信息包括数据块的物理存储地址信息,这样,加速处理模块54在接收到携带有待处理文件的索引号的加速处理请求后,根据待处理文件的索引号所指示的索引获取到指向各个数据块的数据指针信息的起始逻辑地址信息,利用目标映射关系即可获取到该待处理文件的数据,进而加速处理获取到的数据。本申请实施例提供的数据处理系统中无需再传输待处理文件的物理存储位置信息,仅仅获取到待处理文件的索引号即可实现数据的加速处理,提高了加速处理的性能。
实际应用中,上述图5示出的数据处理系统包括客户端设备以及存储设备。存储设备用于保存数据,客户端设备访问该存储设备所保存的数据。此外,客户端设备还可向存储设备发送加速处理请求,便于存储设备加速处理某一数据。客户端设备与存储设备通信,能够访问存储设备存储的数据,也可向存储设备发送加速处理请求。客户端设备与存储设备可以部署于同一设备上,也可以独立部署,本申请实施例对此不作具体限定。
特别的,若客户端设备与存储设备部署于同一设备,则该设备为图3示出的通用计算机设备。在这种情况下,图5示出的数据处理系统指通用计算机设备。结合图3、图4以及图5可知,应用程序执行模块50可以视为通用计算机设备中安装的应用程序,文件管理模块51可以视为通用计算机设备中的实现文件系统的软件程序。
现以客户端设备与存储设备独立部署为例进行说明。客户端设备可以为任一内置有至少一个应用程序的计算机设备,每个应用程序被安装在客户端设备的操作系统中。这里的应用程序可以是客户端设备自身内置的应用程序,也可以是用户自行安装的第三方服务商提供的应用程序,本申请实施例对此不作具体限定。每个应用程序在运行中,通过文件系统访问存储设备中存储的数据。存储设备可以为存储阵列,也可以为用于提供存储服务的其他任一设备,本申请实施例对此不作具体限定。该客户端设备的硬件结构与图3示出的通用计算机设备的硬件结构类似,此处不再进行详细赘述。
存储设备将数据、软件程序等存储于存储介质中。存储介质可以为磁盘存储介质或者其他存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由客户端设备存取的任何其他介质,但不限于此。
在这种情况下,图6示出了本申请提供的数据处理系统的另一结构示意图。如图6所示,客户端设备包括应用程序执行模块50以及加速控制模块53,存储设备包括文件管理模块51、存储介质52、加速处理模块54、以及盘控制模块55。各个模块的作用与上述描述相同,这里不再进行详细赘述。
基于上述图6示出的数据处理系统,图6示出的客户端设备的操作系统可以为Linux系统,也可以为其他操作系统,本申请实施例对此不作具体限定。
现有的利用NDP技术处理数据的方法为:对于某一待处理文件,应用程序获取文件系统解析得到的待处理文件的物理存储位置信息,并向存储设备发送包括待处理文件的物理存储位置信息的加速处理请求;存储设备中的加速处理模块根据待处理文件的物理存储位置信息该存储设备中获取待处理文件的数据,并加速处理其获取到的数据。当待处理文件占用的存储空间较大时,该待处理文件的物理存储位置信息也可能会较大,这样加速处理请求所占用的传输资源较大,降低了加速处理数据的性能。此外,当待处理文件的物理存储位置发生变化时,应用程序需要重新获取待处理文件的物理存储位置,并向存储设备发送包括其重新获取到的物理存储位置的加速请求,降低了整个系统处理数据的性能。
本申请实施例提供的数据处理方法中,存储设备存储有目标映射关系,该目标映射关系包括存储有待处理文件的数据的每个数据块的特征信息与指向该数据块的数据指针信息的起始逻辑地址信息之间的映射关系,数据块的特征信息包括数据块的物理存储地址信息,这样,存储设备在获取到携带有待处理文件的索引号的加速处理请求后,根据待处理文件的索引号所指示的索引获取到指向各个数据块的数据指针信息的起始逻辑地址信息,利用目标映射关系即可获取到该待处理文件的数据,进而加速处理获取到的数据。相比于现有的方法,本申请实施例提供的数据处理方法无需再传输待处理文件的物理存储位置信息,仅仅获取到待处理文件的索引号即可实现数据的加速处理,提高了计算机加速处理的性能。此外,本申请实施例中的存储设备还存储有索引地址树,该索引地址树用于标识与待处理文件对应的物理地址区域,这样,当存储设备确定待处理文件的物理存储位置发生变化时,该存储设备可及时更新目标映射关系,以便于正确读取待处理文件的数据。相比于现有的方法,本申请实施例提供的数据处理方法可迅速、准确的读取待处理文件的数据,提高了整个系统处理数据的性能。
为了便于描述,本申请实施例以客户端设备与存储设备独立部署,客户端设备的操作系统为Linux操作系统为例进行说明。
下面结合图1所示的Linux操作系统中的分区结构,图2所示的ext2文件系统中inode内容的索引结构,以及图6所示的数据处理系统的结构对本申请提供的数据处理方法进行详细描述。
具体的,请参见图7,图7为本申请实施例提供的一种数据处理方法的流程示意图。如图7所示,本实施例提供的数据处理方法中,步骤S600和S601由图6所示的客户端设备执行,具体可由图6所示的客户端设备中的加速控制模块53执行。另外,步骤S602~S607由图6所示的存储设备执行,具体可由图6所示的存储设备中的加速处理模块54执行。
为了便于理解,本申请实施例以客户端设备中的第一应用程序在目标处理器上运行,在运行过程中请求加速处理待处理文件的数据为例进行说明。如图7所示,本申请实施例提供的数据处理方法具体包括如下步骤。
S600、客户端设备获取待处理对象的索引号,并确定目标磁盘分区。
第一应用程序为客户端设备中内置的其中一个应用程序,且该第一应用程序在客户端设备中的目标处理器上运行。
从前面描述可知,文件系统中的数据结构为目录结构,目录的数据需保存该目录下所有子文件的名字和索引号。相应的,若第一应用程序需读取待处理对象的数据,则目标处理器根据待处理对象的名称,从存储设备的文件系统所记录的目录中查找与待处理对象的名称对应的索引号,以获取待处理对象的索引号。
此外,由于不同分区可挂载在不同的文件系统中,因此,每个文件系统对应的数据存储于存储设备的不同分区中。为了更加准确的确定待处理文件的物理存储位置,目标处理器还需确定与记录有待处理对象的名称的文件系统对应的存储设备的分区,本申请实施例将该分区称为目标磁盘分区。
具体的,待处理对象的数据被存储于目标磁盘分区中的至少一个数据块中,每个数据块存储的数据不同。待处理对象的索引号用于表征待处理对象的索引,待处理对象的索引包括至少一个第一级的数据指针信息和至少一个第一级的索引指针信息,第一级的索引指针信息用于指向一个第二级的数据指针信息或者第二级的索引指针信息,每一级的数据指针信息用于指向一个数据块,每一级的索引指针信息用于指向一个下一级的数据指针信息或下一级的索引指针信息。
S601、客户端设备向存储设备发送加速处理请求。
在客户端设备获取到待处理对象的索引号,并确定出目标磁盘分区后,该客户端设备的加速控制模块53向存储设备的加速处理模块54发送携带该待处理对象的索引号和目标磁盘分区的标识的加速处理请求,用于请求加速处理待处理对象的数据。
S602、存储设备确定解析逻辑。
从前面描述可知,不同文件系统中的inode内容的索引结构不同。本申请实施例的存储设备51中预先设置有多种inode解析逻辑,每种inode解析逻辑用于表征一种通过inode获取数据的方式。加速处理模块54在接收到加速处理请求后,根据该加速处理请求携带的目标磁盘分区的标识确定记录有待处理对象的名称的文件系统的类型。这样,加速处理模块54根据确定出的文件系统的类型,确定inode解析逻辑。
S603、响应加速处理请求,存储设备判断是否存储有目标映射关系。
目标映射关系包括存储待处理对象的每个数据块的特征信息与指向该数据块的数据指针信息的起始逻辑地址信息之间的映射关系。数据块的特征信息包括数据块的起始物理地址信息。可选的,数据块的特征信息还包括数据块存储的数据的有效长度。目标映射关系的具体表现形式可以参考后续介绍。
存储设备可在此次接收到加速处理请求之前已经生成目标映射关系,也可在此次接收到加速处理请求后生成目标映射关系,因此,存储设备需判断是否存储有目标映射关系。
具体的,若存储设备在此次接收到加速处理请求之前,已经生成目标映射关系,则该存储设备执行S604。若存储设备在此次接收到加速处理请求之前,未存储目标映射关系,则该存储设备执行S607。
S604、存储设备从目标映射关系中获取至少一个数据块中每个数据块的特征信息。
S605、存储设备根据获取到的数据块的特征信息,获取待处理对象的数据。
S606、存储设备加速处理待处理对象的数据,并向客户端设备发送。
由于目标映射关系中每个数据块的特征信息包括数据块的起始物理地址信息,因此,在已存储目标映射关系的场景中,该存储设备中的加速处理模块可直接根据每个数据块的特征信息获取待处理对象的数据。
S607、当未存储目标映射关系时,存储设备根据待处理文件的索引号生成目标映射关系。
具体的,存储设备中的加速处理模块54从待处理文件的索引号所表征的索引中获取所有数据指针信息的起始逻辑地址信息以及每个数据指针信息指向的数据块的特征信息,并根据获取到的所有数据指针信息的起始逻辑地址信息以及每个数据指针信息指向的数据块的特征信息,建立目标映射关系。
示例性的,如图8所示,若待处理对象的索引包括直接块指针信息、一次间接块指针信息等,直接块指针信息的起始逻辑地址为0,该直接块指针信息指向的数据块1的起始物理地址为1吉字节(GB),该数据块1存储的数据的有效长度为8千字节(KB),一次间接块指针信息指向的物理块1中存储的指针信息的起始逻辑地址为8KB,物理块1中存储的指针信息指向的数据块2的起始物理地址为2GB,该数据块2存储的数据的有效长度为4KB。存储设备51读取该索引,依次获取各参数,生成如表1所示的目标映射关系。
表1
起始逻辑地址 | 起始物理地址 | 有效长度 |
0 | 1GB | 8KB |
8KB | 2GB | 4KB |
…… | …… | …… |
需要说明的是,表1只是以表格的形式示意目标映射关系在存储设备中的存储形式,并不是对目标映射关系在存储设备中的存储形式的限定,当然,目标映射关系在存储设备中的存储形式还可以以其他的形式存储,本申请实施例对此不做限定。
此外,还需注意的是,图8所示的待处理对象的索引仅仅是为了说明目标映射关系的一个示例,实际应用中,待处理对象的索引还包括待处理对象的基本信息以及其他间接指针信息等。
存储设备在生成目标映射关系后,从该目标映射关系中获取每个数据块的起始物理地址信息,并根据获取到的起始物理地址信息获取待处理对象的数据,即执行S604。
本申请实施例中的存储设备在获取到携带有待处理文件的索引号的加速处理请求后,根据待处理文件的索引号所指示的索引获取到指向各个数据块的数据指针信息的起始逻辑地址信息,利用目标映射关系即可获取到该待处理文件的数据,进而加速处理获取到的数据。相比于现有的方法,本申请实施例提供的数据处理方法无需再传输待处理文件的物理存储位置信息,仅仅获取到待处理文件的索引号即可实现数据的加速处理,提高了计算机加速处理的性能。
此外,在存储设备生成目标映射关系的同时,该存储设备还生成包括至少一个索引信息集合的索引地址树,每个索引信息集合包括一个索引地址信息和一个索引长度,索引地址信息为一个物理块的起始物理地址信息,索引长度为存储于一个物理块中的指针信息的有效长度。这样,该索引地址树用于标识与待处理对象对应的物理存储区域。
具体的,加速处理模块54获取所有目标物理块的起始物理地址信息和每个目标物理块存储的指针信息的有效长度,该目标物理块为存储有待处理对象的索引中的指针信息的物理块,并在获取到这些信息后,向盘控制模块55发送所有目标物理块的起始物理地址信息和每个目标物理块存储的指针信息的有效长度。盘控制模块55在接收到所有目标物理块的起始物理地址信息和每个目标物理块存储的指针信息的有效长度后,生成包括至少一个索引信息集合的索引地址树。
示例性的,如图9所示,若待处理对象的索引包括直接块指针信息、一次间接块指针信息等,存储直接块指针信息的物理块1的起始物理地址为0,该直接块指针信息的有效长度为1千字节(KB),存储一次间接块指针信息的物理块2的起始物理地址为4KB,该一次性间接块指针信息的有效长度为3KB,一次间接块指针信息指向的物理块3的起始物理地址为8KB,物理块3存储的指针信息的有效长度为2KB。存储设备生成如表2所示的索引地址树。
表2
索引地址信息 | 索引长度 |
0 | 1KB |
4KB | 3KB |
8KB | 2KB |
…… | …… |
需要说明的是,表2只是以表格的形式示意索引地址树在存储设备中的存储形式,并不是对索引地址树在存储设备中的存储形式的限定,当然,索引地址树在存储设备中的存储形式还可以以其他的形式存储,本申请实施例对此不做限定。
存储设备在接收到写请求后,可判断该写请求携带的地址是否位于索引地址树所标识的物理存储区域中,以确定待处理对象的物理存储地址是否发生变化。在待处理对象的物理存储地址发生变化的情况下,存储设备及时更新目标映射关系以及索引地址树,以确保可准确的获取到待处理对象的数据。
具体的,请参见图10,图10为本申请实施例提供的另一种数据处理方法的流程示意图。如图10所示,本实施例提供的数据处理方法中,步骤S900由图6所示的客户端设备执行,具体可由图6所示的客户端设备中的应用程序执行模块53执行。另外,步骤S901~S903由图6所示的存储设备执行,具体的,步骤S901和S902可由图6所示的存储设备中的盘控制模块55执行,步骤S903可由图6所示的存储设备中的盘控制模块55和加速处理模块54执行。
如图10所示,本申请实施例提供的数据传输方法包括:
S900、客户端设备向存储设备发送用于请求在目的物理地址执行写操作的写请求。
S901、响应于写请求,存储设备在目的物理地址执行写操作。
具体的,存储设备中的盘控制模块55在确定其接收到的请求为写请求后,驱动该存储设备的内部电路完成写操作,并向客户端设备发送响应消息。
S902、存储设备判断目的物理地址是否位于索引地址树所标识的物理地址区域内。
目的物理地址可能位于索引地址树标识的物理地址区域内,因此,存储设备中的盘控制模块55在接收到请求后,需判断目的物理地址是否位于索引地址树所标识的物理地址区域内。
具体的,若目的物理地址位于索引地址树标识的物理地址区域内,则存储设备执行S903。若目的物理地址未位于索引地址树标识的物理地址区域内,则存储设备执行S901和S902后将不再执行其他步骤。
可选的,存储设备可以先执行S901,后执行S902,也可以先执行S902,后执行S901,还可以同时执行S901和S902,本申请实施例对此不作具体限定。
S903、存储设备更新目标映射关系和索引地址树。
由于目的物理地址位于索引地址树标识的物理地址区域内,因此,与待处理对象对应的物理块的起始物理地址信息可能发生变化。为了保证能够准确的获取到待处理对象的数据,存储设备更新目标映射关系和索引地址树。
具体的,存储设备中的盘控制模块55在确定待处理文件的物理存储位置发生变化后,向加速处理模块54发送更新消息,用于通知加速处理模块54更新目标映射关系。该更新消息可以携带与待处理对象对应的所有物理块在执行写操作之后的起始物理地址信息,也可以仅携带与待处理对象对应的在执行写操作之后位置发生变化的物理块的起始物理地址信息。这样。加速处理模块54在接收到更新消息后,可及时更新目标映射关系。
进一步地,加速处理模块54重新获取所有目标物理块的起始物理地址信息和每个目标物理块存储的指针信息的有效长度,并向盘控制模块55发送,便于盘控制模块55更新索引地址树。或者,加速处理模块重新获取地址发生变化的目标物理块的起始物理地址信息和该目标物理块存储的指针信息的有效长度,并向盘控制模块55发送,便于盘控制模块55更新索引地址树。
本申请实施例中的存储设备确定待处理文件的物理存储位置发生变化时,该存储设备可及时更新目标映射关系,以便于正确读取待处理文件的数据。相比于现有的方法,本申请实施例提供的数据处理方法可迅速、准确的读取待处理文件的数据,提高了整个系统处理数据的性能。
本申请实施例提供一种存储设备,该存储设备用于执行以上数据处理方法中的存储设备所执行的步骤。本申请实施例提供的存储设备可以包括相应步骤所对应的模块。
本申请实施例可以根据上述方法示例对存储设备进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
在采用对应各个功能划分各个功能模块的情况下,图11示出上述实施例中所涉及的存储设备的一种可能的结构示意图。如图11所示,存储设备包括第一获取单元110、第一判断单元111、加速处理单元112、建立单元113、第一发送单元114、第二获取单元115、第二判断单元116、第二发送单元117、生成单元118、写处理单元119以及更新单元120。第一获取单元110用于支持该存储设备执行图7所示实施例中的S601、S604和S605,和/或用于本文所描述的技术的其它过程;第一判断单元111用于支持该存储设备执行图7所示实施例中的S603,和/或用于本文所描述的技术的其它过程;加速处理单元112用于支持该存储设备执行上图7所示实施例中的S606,和/或用于本文所描述的技术的其它过程;建立单元113用于支持该存储设备执行图7所示实施例中的S607,和/或用于本文所描述的技术的其它过程;第一发送单元114用于发送第一获取单元110获取到的所有目标物理块的起始物理地址信息和每个目标物理块存储的指针信息的有效长度,和/或用于本文所描述的技术的其它过程;第二获取单元115用于支持该存储设备执行图10所示实施例中的S900,和/或用于本文所描述的技术的其它过程;第二判断单元116用于支持该存储设备执行图10所示实施例中的S902,和/或用于本文所描述的技术的其它过程;第二发送单元117用于发送更新消息,和/或用于本文所描述的技术的其它过程;生成单元118用于根据第二获取单元获取到的所有目标物理块的起始物理地址信息和每个目标物理块存储的指针信息的有效长度,生成索引地址树,和/或用于本文所描述的技术的其它过程;写处理单元119用于支持该存储设备执行图10所示实施例中的S901,和/或用于本文所描述的技术的其他过程;更新单元120用于支持该存储设备执行图10所示实施例中的S903,和/或用于本文所描述的技术的其他过程。其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。当然,本申请实施例提供的存储设备包括但不限于上述模块,例如存储设备还可以包括存储单元,该存储单元可以用于存储数据。
结合上述图6示出的存储设备可知,进一步地,上述加速处理模块54包括第一获取单元110、第一判断单元111、加速处理单元112、建立单元113、第一发送单元114以及更新单元120。上述盘控制模块55包括第二获取单元115、第二判断单元116、第二发送单元117、生成单元118、写处理单元119以及更新单元120。
当存储设备运行时,该存储设备执行如图7或图10所示的实施例的数据处理方法。数据处理方法可参见上述如图7或图10所示的实施例的相关描述,此处不再赘述。
本申请另一实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当指令在存储设备上运行时,该存储设备执行如图7或图10所示的实施例的数据处理方法中的存储设备的步骤S602~S606、S901~S903。
在本申请的另一实施例中,还提供一种计算机程序产品,该计算机程序产品包括计算机执行指令,该计算机执行指令存储在计算机可读存储介质中;存储设备的至少一个处理器可以从计算机可读存储介质读取该计算机执行指令,至少一个处理器执行该计算机执行指令使得存储设备实施执行图7或图10所示的数据处理方法中的存储设备的步骤S602~S606、S901~S903。
在上述实施例中,可以全部或部分的通过软件,硬件,固件或者其任意组合来实现。当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式出现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质,(例如,软盘,硬盘、磁带)、光介质(例如,DVD)或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (19)
1.一种数据处理系统,所述数据处理系统包括应用程序执行模块、与所述应用程序执行模块连接的文件管理模块、以及存储介质,其特征在于,所述数据处理系统还包括:与所述应用程序执行模块连接的加速控制模块、与所述加速控制模块和所述存储介质连接的加速处理模块;
所述加速控制模块,用于接收所述应用程序执行模块发送的通知消息,并根据所述通知消息携带的待处理对象的名称从所述文件管理模块中获取所述待处理对象的索引号,并确定目标磁盘分区的标识,所述待处理对象的数据被存储于所述存储介质的目标磁盘分区中的至少一个数据块中,所述索引号用于表征所述待处理对象的索引,所述待处理对象的索引包括至少一个第一级的数据指针信息和至少一个第一级的索引指针信息,所述第一级的索引指针信息用于指向一个第二级的数据指针信息或者第二级的索引指针信息,每一级的数据指针信息用于指向一个数据块,每一级的索引指针信息用于指向一个下一级的数据指针信息或下一级的索引指针信息,所述存储介质存储有至少一个对象的数据,所述待处理对象为所述至少一个对象中的一个,所述文件管理模块记录有每个对象的名称和索引号;
所述加速控制模块,还用于向所述加速处理模块发送携带所述待处理对象的索引号的加速处理请求,所述加速处理请求用于请求加速处理所述待处理对象的数据;
所述加速处理模块,用于在接收到所述加速处理请求后,响应所述加速处理请求,当确定存储有目标映射关系时,从所述目标映射关系中获取所述至少一个数据块中每个数据块的特征信息,所述数据块的特征信息包括所述数据块的起始物理地址信息,所述目标映射关系包括所述每个数据块的特征信息与指向该数据块的数据指针信息的起始逻辑地址信息之间的映射关系;
所述加速处理模块,还用于根据获取到的数据块的特征信息,从所述存储介质中获取所述待处理对象的数据,并加速处理所述待处理对象的数据。
2.根据权利要求1所述的数据处理系统,其特征在于,
所述加速处理模块,还用于当确定未存储有所述目标映射关系时,从所述待处理对象的索引中获取所有数据指针信息的起始逻辑地址信息以及每个数据指针信息指向的数据块的特征信息,并根据所述所有数据指针信息的起始逻辑地址信息以及每个数据指针信息指向的数据块的特征信息,建立所述目标映射关系。
3.根据权利要求1或2所述的数据处理系统,其特征在于,所述待处理对象的索引中的每个指针信息存储于所述目标磁盘分区中的一个物理块中,
所述加速处理模块,还用于获取所有目标物理块的起始物理地址信息和每个目标物理块存储的指针信息的有效长度,所述目标物理块为存储有所述待处理对象的索引中的指针信息的物理块;
所述数据处理系统还包括与所述文件管理模块、所述加速处理模块以及所述存储介质均连接的盘控制模块;
所述加速处理模块,还用于向所述盘控制模块发送所述所有目标物理块的起始物理地址信息和每个目标物理块存储的指针信息的有效长度;
所述盘控制模块,用于在接收到所述加速处理模块发送的所述所有目标物理块的起始物理地址信息和每个目标物理块存储的指针信息的有效长度后,生成包括至少一个索引信息集合的索引地址树,每个索引信息集合包括一个索引地址信息和一个索引长度,所述索引地址信息为所述一个物理块的起始物理地址信息,所述索引长度为存储于所述一个物理块中的指针信息的有效长度。
4.根据权利要求3所述的数据处理系统,其特征在于,
所述盘控制模块,还用于接收所述文件管理模块发送的写请求,所述写请求用于请求在目的物理地址执行写操作,响应于所述写请求,在所述目的物理地址执行写操作,以及当确定所述目的物理地址位于所述索引地址树所标识的物理地址区域内时,向所述加速处理模块发送更新消息,所述更新消息用于通知所述加速处理模块更新所述目标映射关系;
所述加速处理模块,还用于响应于所述更新消息,更新所述目标映射关系;
所述盘控制模块,还用于更新所述索引地址树。
5.根据权利要求1-2、4中任意一项所述的数据处理系统,其特征在于,所述数据块的特征信息还包括所述数据块存储的数据的有效长度。
6.根据权利要求3所述的数据处理系统,其特征在于,所述数据块的特征信息还包括所述数据块存储的数据的有效长度。
7.一种数据处理方法,其特征在于,包括:
获取加速处理请求,所述加速处理请求携带待处理对象的索引号,所述加速处理请求用于请求加速处理所述待处理对象的数据,所述待处理对象的数据被存储于目标磁盘分区中的至少一个数据块中,所述索引号用于表征所述待处理对象的索引,所述待处理对象的索引包括至少一个第一级的数据指针信息和至少一个第一级的索引指针信息,所述第一级的索引指针信息用于指向一个第二级的数据指针信息或者第二级的索引指针信息,每一级的数据指针信息用于指向一个数据块,每一级的索引指针信息用于指向一个下一级的数据指针信息或下一级的索引指针信息;
响应所述加速处理请求,当确定存储有目标映射关系时,从所述目标映射关系中获取所述至少一个数据块中每个数据块的特征信息,所述数据块的特征信息包括所述数据块的起始物理地址信息,所述目标映射关系包括所述每个数据块的特征信息与指向该数据块的数据指针信息的起始逻辑地址信息之间的映射关系;
根据获取到的数据块的特征信息,获取所述待处理对象的数据;
加速处理所述待处理对象的数据。
8.根据权利要求7所述的数据处理方法,其特征在于,所述数据处理方法还包括:
当确定未存储有所述目标映射关系时,从所述待处理对象的索引中获取所有数据指针信息的起始逻辑地址信息以及每个数据指针信息指向的数据块的特征信息;
根据所述所有数据指针信息的起始逻辑地址信息以及每个数据指针信息指向的数据块的特征信息,建立所述目标映射关系。
9.根据权利要求7或8所述的数据处理方法,其特征在于,所述待处理对象的索引中的每个指针信息存储于所述目标磁盘分区中的一个物理块中,所述数据处理方法还包括:
生成包括至少一个索引信息集合的索引地址树,每个索引信息集合包括一个索引地址信息和一个索引长度,所述索引地址信息为所述一个物理块的起始物理地址信息,所述索引长度为存储于所述一个物理块中的指针信息的有效长度。
10.根据权利要求9所述的数据处理方法,其特征在于,所述数据处理方法还包括:
获取写请求,所述写请求用于请求在目的物理地址执行写操作;
响应于所述写请求,在所述目的物理地址执行写操作;
当确定所述目的物理地址位于所述索引地址树所标识的物理地址区域内时,更新所述目标映射关系和所述索引地址树。
11.根据权利要求7-8、10中任意一项所述的数据处理方法,其特征在于,所述数据块的特征信息还包括所述数据块存储的数据的有效长度。
12.根据权利要求9所述的数据处理方法,其特征在于,所述数据块的特征信息还包括所述数据块存储的数据的有效长度。
13.一种存储设备,其特征在于,包括:
第一获取单元,用于获取加速处理请求,所述加速处理请求携带待处理对象的索引号,所述加速处理请求用于请求加速处理所述待处理对象的数据,所述待处理对象的数据被存储于目标磁盘分区中的至少一个数据块中,所述索引号用于表征所述待处理对象的索引,所述待处理对象的索引包括至少一个第一级的数据指针信息和至少一个第一级的索引指针信息,所述第一级的索引指针信息用于指向一个第二级的数据指针信息或者第二级的索引指针信息,每一级的数据指针信息用于指向一个数据块,每一级的索引指针信息用于指向一个下一级的数据指针信息或下一级的索引指针信息;
第一判断单元,用于响应于所述第一获取单元获取到的加速处理请求,判断是否存储有目标映射关系;
所述第一获取单元,还用于当所述第一判断单元确定存储有目标映射关系时,从所述目标映射关系中获取所述至少一个数据块中每个数据块的特征信息,所述数据块的特征信息包括所述数据块的起始物理地址信息,所述目标映射关系包括所述每个数据块的特征信息与指向该数据块的数据指针信息的起始逻辑地址信息之间的映射关系,以及用于根据获取到的数据块的特征信息,获取所述待处理对象的数据;
加速处理单元,用于加速处理所述第一获取单元获取到的所述待处理对象的数据。
14.根据权利要求13所述的存储设备,其特征在于,
所述第一获取单元,还用于当所述第一判断单元确定未存储有所述目标映射关系时,从所述待处理对象的索引中获取所有数据指针信息的起始逻辑地址信息以及每个数据指针信息指向的数据块的特征信息;
所述存储设备还包括建立单元;
所述建立单元,用于根据所述第一获取单元获取到的所述所有数据指针信息的起始逻辑地址信息以及每个数据指针信息指向的数据块的特征信息,建立所述目标映射关系。
15.根据权利要求13或14所述的存储设备,其特征在于,
所述第一获取单元,还用于获取所有目标物理块的起始物理地址信息和每个目标物理块存储的指针信息的有效长度,所述目标物理块为存储有所述待处理对象的索引中的指针信息的物理块;
所述待处理对象的索引中的每个指针信息存储于所述目标磁盘分区中的一个物理块中,所述存储设备还包括第一发送单元、第二获取单元和生成单元;
所述第一发送单元,用于向所述第二获取单元发送所述第一获取单元获取到的所述所有目标物理块的起始物理地址信息和每个目标物理块存储的指针信息的有效长度;
所述第二获取单元,用于接收所述第一发送单元发送的所述所有目标物理块的起始物理地址信息和每个目标物理块存储的指针信息的有效长度;
所述生成单元,用于根据所述第二获取单元获取到的所述所有目标物理块的起始物理地址信息和每个目标物理块存储的指针信息的有效长度,生成包括至少一个索引信息集合的索引地址树,每个索引信息集合包括一个索引地址信息和一个索引长度,所述索引地址信息为所述一个物理块的起始物理地址信息,所述索引长度为存储于所述一个物理块中的指针信息的有效长度。
16.根据权利要求15所述的存储设备,其特征在于,
所述第二获取单元,还用于获取写请求,所述写请求用于请求在目的物理地址执行写操作;
所述存储设备还包括写处理单元、第二判断单元、第二发送单元以及更新单元;
所述写处理单元,用于响应于所述第二获取单元获取到的所述写请求,在所述目的物理地址执行写操作;
所述第二判断单元,还用于判断所述第二获取单元获取到的所述写请求携带的所述目的物理地址是否位于所述生成单元生成的所述索引地址树所标识的物理地址区域内;
所述第二发送单元,用于当所述第二判断单元确定所述目的物理地址位于所述索引地址树所标识的物理地址区域内时,向所述第一获取单元发送更新消息,所述更新消息用于通知更新所述目标映射关系和所述索引地址树;
所述第一获取单元,还用于接收所述第二发送单元发送的所述更新消息;
所述更新单元,用于响应所述第一获取单元获取到的所述更新消息,更新所述目标映射关系和所述索引地址树。
17.根据权利要求13-14、16中任意一项所述的存储设备,其特征在于,所述数据块的特征信息还包括所述数据块存储的数据的有效长度。
18.根据权利要求15所述的存储设备,其特征在于,所述数据块的特征信息还包括所述数据块存储的数据的有效长度。
19.一种存储设备,其特征在于,所述存储设备包括:一个或多个处理器、存储介质、通信接口;
所述存储介质、所述通信接口与所述一个或多个处理器耦合;所述存储介质用于存储计算机程序代码,所述计算机程序代码包括指令,当所述一个或多个处理器执行所述指令时,所述存储设备执行如权利要求7-12中任意一项所述的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710807451.XA CN110019004B (zh) | 2017-09-08 | 2017-09-08 | 一种数据处理方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710807451.XA CN110019004B (zh) | 2017-09-08 | 2017-09-08 | 一种数据处理方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110019004A CN110019004A (zh) | 2019-07-16 |
CN110019004B true CN110019004B (zh) | 2021-02-26 |
Family
ID=67186301
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710807451.XA Active CN110019004B (zh) | 2017-09-08 | 2017-09-08 | 一种数据处理方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110019004B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110727604B (zh) * | 2019-08-26 | 2022-04-29 | 华为技术有限公司 | 一种数据处理方法及装置 |
CN111124554A (zh) * | 2019-12-23 | 2020-05-08 | 深圳市元征科技股份有限公司 | 一种数据处理方法及相关产品 |
EP4086781A4 (en) * | 2020-02-04 | 2022-12-28 | Huawei Technologies Co., Ltd. | FILE READING METHOD AND TERMINAL |
CN111414362B (zh) * | 2020-02-28 | 2023-11-10 | 平安科技(深圳)有限公司 | 数据读取方法、装置、设备及存储介质 |
CN114328501A (zh) * | 2020-09-29 | 2022-04-12 | 华为技术有限公司 | 一种数据处理方法、装置以及设备 |
CN112463077B (zh) * | 2020-12-16 | 2021-11-12 | 北京云宽志业网络技术有限公司 | 数据块处理方法、装置、设备及存储介质 |
CN113885785B (zh) * | 2021-06-15 | 2022-07-26 | 荣耀终端有限公司 | 一种数据去重方法及装置 |
CN113835622A (zh) * | 2021-08-25 | 2021-12-24 | 浙江大华存储科技有限公司 | 存储装置的处理方法、主机装置、存储装置及系统 |
CN113742149B (zh) * | 2021-08-25 | 2023-07-14 | 苏州浪潮智能科技有限公司 | 一种硬盘的分区识别方法、系统、设备及存储介质 |
CN115729845A (zh) * | 2021-08-30 | 2023-03-03 | 华为技术有限公司 | 数据存储装置和数据处理方法 |
CN113783742B (zh) * | 2021-11-10 | 2022-02-08 | 北京小鸟科技股份有限公司 | 分布式网络设备信息及设备间业务逻辑关系快速管理系统 |
CN117270789B (zh) * | 2023-10-25 | 2024-02-06 | 苏州元脑智能科技有限公司 | 一种基于分布式存储的数据控制方法、系统及电子设备 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103514249A (zh) * | 2013-06-20 | 2014-01-15 | 易乐天 | 一种数据自精简方法和系统及存储装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9811379B2 (en) * | 2015-06-01 | 2017-11-07 | Samsung Electronics Co., Ltd. | Highly efficient inexact computing storage device |
-
2017
- 2017-09-08 CN CN201710807451.XA patent/CN110019004B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103514249A (zh) * | 2013-06-20 | 2014-01-15 | 易乐天 | 一种数据自精简方法和系统及存储装置 |
Non-Patent Citations (1)
Title |
---|
《Near Data Processing: Impact and Optimization of 3D Memory System Architecture on the Uncore》;Syed Minhaj Hassan等;《MEMSYS "15: Proceedings of the 2015 International Symposium on Memory Systems》;20151031;第11-21页 * |
Also Published As
Publication number | Publication date |
---|---|
CN110019004A (zh) | 2019-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110019004B (zh) | 一种数据处理方法、装置及系统 | |
US11687488B2 (en) | Directory deletion method and apparatus, and storage server | |
CN104239575A (zh) | 一种虚拟机镜像文件存储、分发方法及装置 | |
CN109033360B (zh) | 一种数据查询方法、装置、服务器及存储介质 | |
CN106484820B (zh) | 一种重命名方法、访问方法及装置 | |
CN107679182B (zh) | 一种目录配置方法及装置 | |
KR20200122994A (ko) | 키 값 첨부 | |
CN103870202A (zh) | 一种块设备的分布式存储方法和系统 | |
CN109857723B (zh) | 基于可扩容数据库集群的动态数据迁移方法及相关设备 | |
CN111400334B (zh) | 数据处理方法、装置、存储介质及电子装置 | |
CN111857539B (zh) | 用于管理存储系统的方法、设备和计算机可读介质 | |
CN112912870A (zh) | 租户标识符的转换 | |
WO2019232932A1 (zh) | 节点处理方法及装置、计算机可读存储介质和电子设备 | |
CN115114232A (zh) | 一种历史版本对象列举方法、装置及其介质 | |
CN112306957A (zh) | 获取索引节点号的方法、装置、计算设备和存储介质 | |
CN110352410A (zh) | 跟踪索引节点的访问模式以及预提取索引节点 | |
CN110457307B (zh) | 元数据管理系统、用户集群创建方法、装置、设备和介质 | |
CN113853778B (zh) | 一种文件系统的克隆方法及装置 | |
US20150261524A1 (en) | Management pack service model for managed code framework | |
CN111309471B (zh) | 数据处理方法、装置及分布式系统 | |
US20200097573A1 (en) | Identification of records for post-cloning tenant identifier translation | |
CN111857556A (zh) | 管理存储对象的元数据的方法、装置和计算机程序产品 | |
JP7105718B2 (ja) | 情報処理装置、情報処理方法、およびプログラム | |
CN115904211A (zh) | 一种存储系统、数据处理方法及相关设备 | |
CN111782588A (zh) | 一种文件读取方法、装置、设备和介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |