存储访问控制方法、装置、设备及存储介质
技术领域
本申请实施例涉及计算机技术领域,尤其涉及一种存储访问控制方法、装置、设备及存储介质。
背景技术
本部分旨在为权利要求书中陈述的本申请的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
在对称多处理器系统中,非对称内存架构解决了存储访问效率较低的问题。其中,对称多处理器系统指在一个计算设备上汇集了一组处理器,各处理器之间共享内存子系统以及总线结构。在该技术的支持下,一个设备系统可以同时运行多个处理器,并共享内存和其它的主机资源。
非对称内存架构应用于对称多处理器系统中,通过提供分离的存储器给各个处理器以提高存储访问效率,然而现有的存储访问模式存在设计缺陷,需要改进。
发明内容
本发明实施例提供了一种存储访问控制方法、装置、设备及存储介质,实现了高效的存储访问。
第一方面,本发明实施例提供了一种存储访问控制方法,该方法包括:
确定客户节点中的每个实例在访问存储节点时的性能等级,所述客户节点和所述存储节点为原生硬件依据不同模块类型划分的节点;
依据所述性能等级进行客户节点和存储节点的聚类分组,其中,每个分组至少包括每种客户节点类型的一个实例以及对应的至少一个存储节点;
获取待处理任务对应的客户节点,根据所述待处理任务的客户节点以及所述分组中的节点对应关系进行存储节点的缓冲区绑定,执行所述待处理任务。
第二方面,本发明实施例还提供了一种存储访问控制装置,该装置包括:
性能确定模块,用于确定客户节点中的每个实例在访问存储节点时的性能等级,所述客户节点和所述存储节点为原生硬件依据不同模块类型划分的节点;
分组模块,用于依据所述性能等级进行客户节点和存储节点的聚类分组,其中,每个分组至少包括每种客户节点类型的一个实例以及对应的至少一个存储节点;
绑定模块,用于获取待处理任务对应的客户节点,根据所述待处理任务的客户节点以及所述分组中的节点对应关系进行存储节点的缓冲区绑定,执行所述待处理任务。
第三方面,本发明实施例还提供了一种计算机设备,该计算机设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例所述的存储访问控制方法。
第四方面,本发明实施例还提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行本发明实施例所述的存储访问控制方法。
本发明实施例中,确定客户节点中的每个实例在访问存储节点时的性能等级,所述客户节点和所述存储节点为原生硬件依据不同模块类型划分的节点;依据所述性能等级进行客户节点和存储节点的聚类分组,其中,每个分组至少包括每种客户节点类型的一个实例以及对应的至少一个存储节点;获取待处理任务对应的客户节点,根据所述待处理任务的客户节点以及所述分组中的节点对应关系进行存储节点的缓冲区绑定,执行所述待处理任务,由此提高了数据运算效率。
附图说明
图1为本发明实施例提供的一种存储访问控制方法的流程图;
图2为本发明实施例提供的另一种存储访问控制方法的流程图;
图3为本发明实施例提供的另一种存储访问控制方法的流程图;
图4为本发明实施例提供的一种存储访问控制装置的结构框图;
图5为本发明实施例提供的一种计算机设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明实施例作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明实施例,而非对本发明实施例的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明实施例相关的部分而非全部结构。
图1为本发明实施例提供的一种存储访问控制方法的流程图,本实施例可适用于存储进行管理,该方法可以由设备如计算机来执行,具体包括如下步骤:
步骤S101、确定客户节点中的每个实例在访问存储节点时的性能等级,所述客户节点和所述存储节点为原生硬件依据不同模块类型划分的节点。
其中,原生硬件可以是未经修改的原有硬件设备,原生硬件中根据不同的模块功能类型可以划分为客户节点和存储节点,其中存储节点可用于进行数据的存储供其他设备或自身设备进行访问,客户节点可以实现相应的硬件功能,如简单的四则运算功能以及复杂的神经网络、人工智能算法等。
其中,每个客户节点可以包含多个实例,其中每个实例可以实现该客户节点对应的硬件功能,如客户节点1可包含实例1、实例2、实例3和实例4。客户节点中的每个实例在访问存储节点时存在性能的差异,如由于不同实例和存储节点的硬件位置关系的不同带来的访问速度快慢的不同。
在一个实施例中,确定客户节点中的每个实例在访问存储节点时的性能等级,其中,该性能等级可以表征实例访问存储节点时访问速度的不同,如分为高速、普通和慢速三个级别。示例性的,可通过对每个客户节点的实例访问不同的存储节点时的访问速度进行记录,其中,在进行性能等级确定时,针对同一客户节点的不同实例进行确定,如客户节点1包含4个实例,分别为实例1、实例2、实例3和实例4,划分得到的存储节点假设有8个,即存储节点1、存储节点2、存储节点3、存储节点4、存储节点5、存储节点6、存储节点7和存储节点8,针对客户节点1而言,确定其中的每个实例在分别访问存储节点1至存储节点8时的访问速度,并记录每个实例访问存储节点1至存储节点8的性能等级。示例性的,性能等级包括三级,分别为高速、普通和慢速,具体确定实例访问存储节点的性能等级的方式可以是:访问速度小于第一预设值则确定为慢速,访问速度在第一预设值至第二预设值之间确定为普通,访问速度大于第二预设值则确定为高速,其中,第一预设值小于第二预设值,由于不同类型客户节点访问存储节点的访问速度存在较大差异,故第一预设值和第二预设值的具体大小不做限定,可根据实际测试结果进行确定,仅用于对不同类型客户节点中的各个实例访问每个存储节点的性能进行划分。具体的,以客户节点包括客户节点类型1和客户节点类型2(其中,不同的客户类型对应实现不同的硬件功能),每个客户类型包括4个实例,存储节点8个为例给出每个实例在访问存储节点时的性能等级列表,如下表所示:
表1
步骤S102、依据所述性能等级进行客户节点和存储节点的聚类分组,其中,每个分组至少包括每种客户节点类型的一个实例以及对应的至少一个存储节点。
分组过程中,为了保证每个分组可以实现完整的硬件功能,每个分组中都至少包括每种客户节点类型的一个实例,如上表1中的客户节点类型1和客户节点类型2中的至少一个实例,同时分组中记录有实例访问的关联存储节点。
示例性的,以表1为例,以性能等级为高速作为分组划分依据,其中,不同分组允许包含相同客户节点,也允许包含相同的存储节点,最终分组情况为:【存储节点2,客户节点类型1实例1,客户节点类型2实例2】、【存储节点4,客户节点类型1实例4,客户节点类型2实例4】、【存储节点8,客户节点类型1实例3,客户节点类型2实例4】。
步骤S103、获取待处理任务对应的客户节点,根据所述待处理任务的客户节点以及所述分组中的节点对应关系进行存储节点的缓冲区绑定,执行所述待处理任务。
其中,在上述步骤S102的分组管理模式下,可通过向应用程序暴露任务调度接口的方式来支持用户指定任务使用的客户节点,通过该任务调度接口传递的参数来获取待处理任务对应的客户节点,该待处理任务可以是需要完成的具体计算任务。其中,每个待处理任务至少会使用一个客户节点,如确定出该待处理任务使用客户节点类型1,则相应的确定包含客户节点类型1的分组存储节点,以上述步骤S102中示例性的分组情况为例,确定出的可用分组关系为:【存储节点2,客户节点类型1实例1】、【存储节点4,客户节点类型1实例4】、【存储节点8,客户节点类型1实例3】,故该示例中可以绑定存储节点2、存储节点4和存储节点8中的任一存储节点至缓冲区以用于后续执行所述待处理任务。
由上述方案可知,通过确定客户节点中的每个实例在访问存储节点时的性能等级,所述客户节点和所述存储节点为原生硬件依据不同模块类型划分的节点,依据所述性能等级进行客户节点和存储节点的聚类分组,其中,每个分组至少包括每种客户节点类型的一个实例以及对应的至少一个存储节点,获取待处理任务对应的客户节点,根据所述待处理任务的客户节点以及所述分组中的节点对应关系进行存储节点的缓冲区绑定,执行所述待处理任务的技术方案,由于处理任务过程中使用依据性能等级进行分组的客户节点和存储节点,可以提高任务处理效率。
图2为本发明实施例提供的另一种存储访问控制方法的流程图,可选的,所述依据所述性能等级进行客户节点和存储节点的聚类分组包括:依据所述性能等级进行客户节点和存储节点的聚类分组得到第一分组和第二分组,其中,所述第一分组中的节点存储访问速度大于所述第二分组中的节点存储访问速度。所述根据所述待处理任务的客户节点以及所述分组中的节点对应关系进行存储节点的缓冲区绑定包括:依据所述待处理任务的客户节点依次确定所述第一分组和所述第二分组中满足条件的关联节点,将所述关联节点添加至任务分组列表中;依据所述任务分组列表中记录的关联节点进行存储节点的缓冲区绑定。如图2所示,技术方案具体如下:
步骤S201、确定客户节点中的每个实例在访问存储节点时的性能等级,所述客户节点和所述存储节点为原生硬件依据不同模块类型划分的节点。
步骤S202、依据所述性能等级进行客户节点和存储节点的聚类分组得到第一分组和第二分组,其中,所述第一分组中的节点存储访问速度大于所述第二分组中的节点存储访问速度。
在一个实施例中,以性能等级包括高速、普通和慢速为例,将性能等级为高速和普通节点关系确定为第一分组,将性能等级为慢速的节点关系确定为第二分组,以下表2为例,确定给出的第一分组包括:【存储节点1,存储节点2,客户类型节点1实例1,客户类型节点1实例3,客户类型节点2实例1,客户类型节点2实例2】、【存储节点3,存储节点4,客户类型节点1实例1,客户类型节点1实例4,客户类型节点2实例3,客户类型节点2实例4】、【存储节点5,存储节点6,客户类型节点1实例2,客户类型节点1实例4,客户类型节点2实例1,客户类型节点2实例2】、【存储节点7,存储节点8,客户类型节点1实例2,客户类型节点1实例3,客户类型节点2实例3,客户类型节点2实例4】,剩余组合关系为第二分组。
表2
步骤S203、依据所述待处理任务的客户节点依次确定所述第一分组和所述第二分组中满足条件的关联节点,将所述关联节点添加至任务分组列表中。
在一个实施例中,可通过向应用程序暴露任务调度接口的方式来支持用户指定任务使用的客户节点,通过该任务调度接口传递的参数来获取待处理任务对应的客户节点,该待处理任务可以是需要完成的具体计算任务。其中,每个待处理任务至少会使用一个客户节点,如确定出该待处理任务使用客户节点类型1,则相应的确定包含客户节点类型1的分组存储节点,以上述步骤S202中示例性的分组情况为例,确定出的和客户类型节点1相关的存储节点为:【存储节点1,存储节点2,客户类型节点1实例1,客户类型节点1实例3,客户类型节点2实例1,客户类型节点2实例2】、【存储节点3,存储节点4,客户类型节点1实例1,客户类型节点1实例4,客户类型节点2实例3,客户类型节点2实例4】、【存储节点5,存储节点6,客户类型节点1实例2,客户类型节点1实例4,客户类型节点2实例1,客户类型节点2实例2】、【存储节点7,存储节点8,客户类型节点1实例2,客户类型节点1实例3,客户类型节点2实例3,客户类型节点2实例4】,同理将第二分组也添加到任务分组列表中。
步骤S204、判断在所述任务分组列表中是否存在所述第一分组的关联节点,如果是,则执行步骤S205,否则执行步骤S206。
步骤S205、绑定任务引用的缓冲区至所述第一分组的关联节点。
步骤S206、绑定任务引用的缓冲区至所述第二分组的关联节点。
由上述可知,通过依据客户节点中的每个实例在访问存储节点时的性能等级进行分组,如得到第一分组和第二分组,其中所述第一分组中的节点存储访问速度大于所述第二分组中的节点存储访问速度,在进行存储节点的缓冲区绑定时,优先绑定第一分组中的存储节点,提高了任务执行过程中的运算速度。
图3为本发明实施例提供的另一种存储访问控制方法的流程图,可选的,在将所述关联节点添加至任务分组列表中之后,还包括:将全局分组中的关联节点添加至所述任务分组列表;相应的,所述依据所述任务分组列表中记录的关联节点进行存储节点的缓冲区绑定包括:如果在所述任务分组列表中不存在所述第一分组的关联节点也不存在所述第二分组的关联节点,则绑定任务引用的缓冲区至全局分组中的关联节点,其中,所述全局分组中包含和所述待处理任务的客户节点对应的所有关联节点。如图3所示,技术方案具体如下:
步骤S301、确定客户节点中的每个实例在访问存储节点时的性能等级,所述客户节点和所述存储节点为原生硬件依据不同模块类型划分的节点。
步骤S302、依据所述性能等级进行客户节点和存储节点的聚类分组得到第一分组和第二分组,其中,所述第一分组中的节点存储访问速度大于所述第二分组中的节点存储访问速度。
步骤S303、依据所述待处理任务的客户节点依次确定所述第一分组和所述第二分组中满足条件的关联节点,将所述关联节点添加至任务分组列表中。
步骤S304、将全局分组中的关联节点添加至所述任务分组列表。
其中,全局分组中的关联节点为所有可用的存储节点和客户节点的组合。
步骤S305、判断在所述任务分组列表中是否存在所述第一分组的关联节点,如果是,则执行步骤S306,否则执行步骤S307。
步骤S306、绑定任务引用的缓冲区至所述第一分组的关联节点。
步骤S307、判断在所述任务分组列表中是否存在所述第二分组的关联节点,如果是,则执行步骤S308,否则执行步骤S309。
步骤S308、绑定任务引用的缓冲区至所述第二分组的关联节点。
步骤S309、绑定任务引用的缓冲区至全局分组中的关联节点。
如果在第一分组和第二分组中均未找到可用的存储节点,则相应的使用全局分组中的关联节点作为客户节点对应的存储节点,进行缓冲区的绑定。
由上述可知,在执行待处理任务时,依次选择性能等级高的存储节点进行缓冲区绑定,提高了任务执行处理速度。
在上述技术方案的基础上,所述依据所述任务分组列表中记录的关联节点进行存储节点的缓冲区绑定包括:依据所述任务分组列表中记录的关联节点以及缓冲区空间大小进行存储节点的缓冲区绑定。示例性的,在确定第一分组的关联节点后,相应确定缓冲区是否有足够空间进行存储节点的缓冲,如果是,则将第一分组中的存储节点和缓冲区绑定,如果否,则确定第二分组中的关联节点是否足够空间进行缓冲,如果是则进行缓冲区的绑定,如果否则使用全局分组中的存储节点进行绑定。
在上述技术方案的基础上,所述性能等级包括第一等级、第二等级和第三等级,所述第一分组中节点存储访问速度的等级为第一等级,所述第二分组中节点存储访问速度的等级包括第一等级和第二等级。如上述示例性的给出的性能等级包括高速、普通和慢速,性能等级还可以划分为三级以上的任意等级,比如五级、十级等。
图4为本发明实施例提供的一种存储访问控制装置的结构框图,该装置用于执行上述实施例提供的存储访问控制方法,具备执行方法相应的功能模块和有益效果。如图4所示,该装置具体包括:性能确定模块101、分组模块102和绑定模块103,其中,
性能确定模块101,用于确定客户节点中的每个实例在访问存储节点时的性能等级,所述客户节点和所述存储节点为原生硬件依据不同模块类型划分的节点;
分组模块102,用于依据所述性能等级进行客户节点和存储节点的聚类分组,其中,每个分组至少包括每种客户节点类型的一个实例以及对应的至少一个存储节点;
绑定模块103,用于获取待处理任务对应的客户节点,根据所述待处理任务的客户节点以及所述分组中的节点对应关系进行存储节点的缓冲区绑定,执行所述待处理任务。
由上述方案可知,通过确定客户节点中的每个实例在访问存储节点时的性能等级,所述客户节点和所述存储节点为原生硬件依据不同模块类型划分的节点,依据所述性能等级进行客户节点和存储节点的聚类分组,其中,每个分组至少包括每种客户节点类型的一个实例以及对应的至少一个存储节点,获取待处理任务对应的客户节点,根据所述待处理任务的客户节点以及所述分组中的节点对应关系进行存储节点的缓冲区绑定,执行所述待处理任务的技术方案,由于处理任务过程中使用依据性能等级进行分组的客户节点和存储节点,可以提高任务处理效率。
在一个可能的实施例中,所述分组模块102具体用于:
依据所述性能等级进行客户节点和存储节点的聚类分组得到第一分组和第二分组,其中,所述第一分组中的节点存储访问速度大于所述第二分组中的节点存储访问速度。
在一个可能的实施例中,所述绑定模块103具体用于:
依据所述待处理任务的客户节点依次确定所述第一分组和所述第二分组中满足条件的关联节点,将所述关联节点添加至任务分组列表中;
依据所述任务分组列表中记录的关联节点进行存储节点的缓冲区绑定。
在一个可能的实施例中,所述绑定模块103具体用于:
如果在所述任务分组列表中存在所述第一分组的关联节点,则绑定任务引用的缓冲区至所述第一分组的关联节点;
如果在所述任务分组列表中不存在所述第一分组的关联节点,存在所述第二分组的关联节点,则绑定任务引用的缓冲区至所述第二分组的关联节点。
在一个可能的实施例中,所述分组模块102还用于:
在将所述关联节点添加至任务分组列表中之后,将全局分组中的关联节点添加至所述任务分组列表;
所述绑定模块103具体用于:
如果在所述任务分组列表中不存在所述第一分组的关联节点也不存在所述第二分组的关联节点,则绑定任务引用的缓冲区至全局分组中的关联节点,其中,所述全局分组中包含和所述待处理任务的客户节点对应的所有关联节点。
在一个可能的实施例中,所述绑定模块103具体用于:
依据所述任务分组列表中记录的关联节点以及缓冲区空间大小进行存储节点的缓冲区绑定。
在一个可能的实施例中,所述性能等级包括第一等级、第二等级和第三等级,所述第一分组中节点存储访问速度的等级为第一等级,所述第二分组中节点存储访问速度的等级包括第一等级和第二等级。
图5为本发明实施例提供的一种计算机设备的结构示意图,如图5所示,该计算机设备包括处理器201、存储器202、输入装置203和输出装置204;计算机设备中处理器201的数量可以是一个或多个,图5中以一个处理器201为例;计算机设备中的处理器201、存储器202、输入装置203和输出装置204可以通过总线或其他方式连接,图5中以通过总线连接为例。
存储器202作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的存储访问控制方法对应的程序指令/模块(例如,存储访问控制装置中的尺寸信息确定模块101、入库位置确定模块102和控制指令输出模块103)。处理器201通过运行存储在存储器202中的软件程序、指令以及模块,从而执行计算机设备的各种功能应用以及数据处理,即实现上述的存储访问控制方法。
存储器202可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器202可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器202可进一步包括相对于处理器201远程设置的存储器,这些远程存储器可以通过网络连接至计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置203可用于接收输入的数字或字符信息,以及产生与计算机设备的用户设置以及功能控制有关的键信号输入。输出装置204可包括显示屏等显示设备。
本发明实施例还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种存储访问控制方法,该方法包括:
确定客户节点中的每个实例在访问存储节点时的性能等级,所述客户节点和所述存储节点为原生硬件依据不同模块类型划分的节点;
依据所述性能等级进行客户节点和存储节点的聚类分组,其中,每个分组至少包括每种客户节点类型的一个实例以及对应的至少一个存储节点;
获取待处理任务对应的客户节点,根据所述待处理任务的客户节点以及所述分组中的节点对应关系进行存储节点的缓冲区绑定,执行所述待处理任务。
在一个可能的实施例中,所述依据所述性能等级进行客户节点和存储节点的聚类分组包括:
依据所述性能等级进行客户节点和存储节点的聚类分组得到第一分组和第二分组,其中,所述第一分组中的节点存储访问速度大于所述第二分组中的节点存储访问速度。
在一个可能的实施例中,所述根据所述待处理任务的客户节点以及所述分组中的节点对应关系进行存储节点的缓冲区绑定包括:
依据所述待处理任务的客户节点依次确定所述第一分组和所述第二分组中满足条件的关联节点,将所述关联节点添加至任务分组列表中;
依据所述任务分组列表中记录的关联节点进行存储节点的缓冲区绑定。
在一个可能的实施例中,所述依据所述任务分组列表中记录的关联节点进行存储节点的缓冲区绑定包括:
如果在所述任务分组列表中存在所述第一分组的关联节点,则绑定任务引用的缓冲区至所述第一分组的关联节点;
如果在所述任务分组列表中不存在所述第一分组的关联节点,存在所述第二分组的关联节点,则绑定任务引用的缓冲区至所述第二分组的关联节点。
在一个可能的实施例中,在将所述关联节点添加至任务分组列表中之后,还包括:
将全局分组中的关联节点添加至所述任务分组列表;
相应的,所述依据所述任务分组列表中记录的关联节点进行存储节点的缓冲区绑定包括:
如果在所述任务分组列表中不存在所述第一分组的关联节点也不存在所述第二分组的关联节点,则绑定任务引用的缓冲区至全局分组中的关联节点,其中,所述全局分组中包含和所述待处理任务的客户节点对应的所有关联节点。
在一个可能的实施例中,所述依据所述任务分组列表中记录的关联节点进行存储节点的缓冲区绑定包括:
依据所述任务分组列表中记录的关联节点以及缓冲区空间大小进行存储节点的缓冲区绑定。
在一个可能的实施例中,所述性能等级包括第一等级、第二等级和第三等级,所述第一分组中节点存储访问速度的等级为第一等级,所述第二分组中节点存储访问速度的等级包括第一等级和第二等级。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明实施例任意实施例所提供的存储访问控制方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明实施例可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory, ROM)、随机存取存储器(Random Access Memory, RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明实施例各个实施例所述的方法。
值得注意的是,上述存储访问控制装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明实施例的保护范围。
注意,上述仅为本发明实施例的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明实施例不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明实施例的保护范围。因此,虽然通过以上实施例对本发明实施例进行了较为详细的说明,但是本发明实施例不仅仅限于以上实施例,在不脱离本发明实施例构思的情况下,还可以包括更多其他等效实施例,而本发明实施例的范围由所附的权利要求范围决定。