CN115729438A - 数据访问方法、装置及存储介质 - Google Patents

数据访问方法、装置及存储介质 Download PDF

Info

Publication number
CN115729438A
CN115729438A CN202111010014.8A CN202111010014A CN115729438A CN 115729438 A CN115729438 A CN 115729438A CN 202111010014 A CN202111010014 A CN 202111010014A CN 115729438 A CN115729438 A CN 115729438A
Authority
CN
China
Prior art keywords
application
cache
data
task
resource
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.)
Pending
Application number
CN202111010014.8A
Other languages
English (en)
Inventor
李秀桥
孙宏伟
丁肇辉
高帅
江喆
陈强
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
XFusion Digital Technologies Co Ltd
Original Assignee
XFusion Digital Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by XFusion Digital Technologies Co Ltd filed Critical XFusion Digital Technologies Co Ltd
Priority to CN202111010014.8A priority Critical patent/CN115729438A/zh
Priority to PCT/CN2022/095010 priority patent/WO2023029610A1/zh
Publication of CN115729438A publication Critical patent/CN115729438A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0871Allocation or management of cache space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一种数据访问方法:根据用户提交的针对第一应用的缓存策略为第一应用调度缓存资源,并根据用户提交的映射目录信息将数据预取至第一应用的缓存资源中。后续,在第一应用运行的过程中,根据该缓存策略来访问第一应用的缓存资源。由此实现感知用户的需求,进而根据用户的需求来控制应用的资源使用情况,从而提升应用性能。

Description

数据访问方法、装置及存储介质
技术领域
本申请涉及数据处理技术领域,特别涉及一种数据访问方法、装置及存储介质。
背景技术
在数据中心,通常采用大型的集群***为多个用户提供共享的应用执行环境。在该集群***中通常包括管理节点和多个计算节点。其中,对于所要运行的任一应用,管理节点可以为该应用分配对应的计算节点,之后,由该计算节点运行该应用。这样,用户无法控制应用对计算节点的资源的使用情况,从而导致应用性能无法满足用户需求。
发明内容
本申请提供了一种数据访问方法、装置及存储介质,可以根据用户的需求来控制应用的资源使用情况,以使应用性能满足用户需求。所述技术方案如下:
第一方面,提供了一种数据访问方法,所述方法包括:接收用户提交的针对第一应用的缓存配置请求,所述缓存配置请求包括缓存策略和映射目录信息,所述缓存策略用于指示所述第一应用的缓存需求,所述映射目录信息为存储***中存储的所述第一应用的应用数据所在的第一目录的信息;根据所述缓存策略,为所述第一应用调度缓存资源;根据所述映射目录信息,将所述第一应用的应用数据预取至所述第一应用的缓存资源中;在运行所述第一应用的过程中,根据所述缓存策略,访问所述第一应用的缓存资源。
由上述描述可知,根据用户提交的针对第一应用的缓存策略为第一应用调度缓存资源,并根据用户提交的映射目录信息将数据预取至第一应用的缓存资源中。后续,在第一应用运行的过程中,根据该缓存策略来访问第一应用的缓存资源。由此可见,本申请提供的数据访问方法可以感知用户的需求,进而根据用户的需求来控制应用的资源使用情况,从而提升应用性能。
在一种可能的实现方式中,所述根据所述缓存策略,为所述第一应用调度缓存资源的实现过程包括:根据所述缓存策略确定所述第一应用的多个任务中每个任务的资源需求信息,所述资源需求信息包括每个任务所需的缓存空间的大小和包括的存储介质的类型;根据每个任务的资源需求信息,为每个任务分配缓存空间。
在本申请中,第一应用可以被划分为多个任务,这样,用户可以指定第一应用的每个任务的资源需求信息,以控制集群***根据每个任务的资源需求信息为相应任务分配缓存空间。其中,不同任务的资源需求信息可以相同也可以不同。
在一种可能的实现方式中,所述映射目录信息包括所述第一目录的目录路径,所述根据所述映射目录信息,将所述第一应用的应用数据预取至所述第一应用的缓存资源中的实现过程包括:确定所述第一应用的多个任务中每个任务对应的子目录的目录标识;根据所述第一目录的目录路径和每个任务对应的子目录的目录标识,从所述存储***中获取所述第一目录下存储的每个任务对应的子目录下的数据;将每个任务对应的子目录下的数据存储至所述第一应用的缓存资源中。
通过用户指定的映射目录信息将第一应用的数据预取至为第一应用分配的缓存资源中,这样,无需用户自行进行显式的数据拷贝,降低了用户使用复杂度。
在一种可能的实现方式中,所述根据所述缓存策略,访问所述第一应用的缓存资源的实现过程包括:当所述缓存策略包括分级缓存策略时,根据所述分级缓存策略,将所述第一应用的每个任务的不同类型的任务数据缓存至所述第一应用的缓存资源中对应类型的存储介质中;当所述缓存策略包括数据一致性策略时,在访问任一缓存空间中的任务数据时,对所访问的任务数据执行加锁操作。
在本申请中,可以根据用户指定的缓存策略中的数据缓存和访问策略在第一应用的缓存资源中缓存并访问数据,例如,根据分级缓存策略缓存数据,以此来提高数据访问性能,节省缓存空间的资源消耗。根据数据一致性策略来访问数据,以此保证数据访问过程中数据的准确性。除此之外,用户还可以灵活的定制其他策略,以此来实现数据缓存和访问方式的灵活设置。
在一种可能的实现方式中,所述根据所述缓存策略,访问所述第一应用的缓存资源之前还包括:获取输入输出IO请求;如果所述IO请求所访问的数据为所述映射目录信息所指示的所述第一目录下的数据,则执行所述根据所述缓存策略,访问所述第一应用的缓存资源的步骤。
在本申请中,通过设置映射目录信息,可以将针对映射目录信息所指示的第一目录的访问直接截获,进而通过访问为第一应用分配的缓存资源来实现数据访问,提高了访问效率,并且整个过程用户无感知。
在一种可能的实现方式中,所述方法还包括:获取多个应用中每个应用的缓存资源中待迁移至所述存储***的数据的带宽需求,所述多个应用包括所述第一应用;根据所述带宽需求,为所述第一应用的缓存资源中的待迁移数据分配IO带宽;根据所述IO带宽,将所述第一应用的缓存资源中的待迁移数据存储至所述存储***中。
在本申请中,各个计算节点在检测到自身为应用分配的缓存资源中的数据量达到第二阈值时,可以向管理节点申请分配自身所运行的应用的待迁移数据的带宽需求。管理节点可以根据收集的各个计算节点的带宽需求,为各个计算节点所运行的应用分配用于迁移待迁移数据的IO带宽,以此来控制各个计算节点向存储***迁移数据的数据量,从而避免不同计算节点的应用数据访问量超过存储***的可用带宽进而产生I/O带宽竞争,实现了全局视图中各应用有序访问存储***,从而减少了因IO竞争导致的应用性能问题。并且,本申请实施例中根据用户指定的映射目录信息,集群***可以自动完成数据拷贝,无需用户自行操作来完成数据拷贝,降低了用户的操作复杂度。
第二方面,提供了一种数据访问方法,所述方法包括:管理节点接收用户提交的第一应用的缓存配置请求,所述缓存配置请求包括缓存策略和映射目录信息,所述缓存策略用于指示所述第一应用的缓存需求,所述映射目录信息为存储***中存储的所述第一应用的应用数据所在的第一目录的信息;所述管理节点根据所述缓存策略,从目标计算节点中为所述第一应用调度缓存资源;所述管理节点根据所述映射目录信息,控制所述目标计算节点将所述第一应用的应用数据预取至所述第一应用的缓存资源中,并通过所述缓存策略,控制所述目标计算节点在所述第一应用的运行过程中,访问所述第一应用的缓存资源。
在本申请中,管理节点根据用户提交的针对第一应用的缓存策略为第一应用调度缓存资源,并根据用户提交的映射目录信息控制计算节点将数据预取至第一应用的缓存资源中。后续,在第一应用运行的过程中,控制计算节点根据该缓存策略来访问第一应用的缓存资源。由此可见,本申请实施例可以感知用户的需求,进而根据用户的需求来控制应用的资源使用情况,从而提升应用性能。
在一种可能的实现方式中,所述管理节点根据所述缓存策略,从目标计算节点中为所述第一应用调度缓存资源,包括:所述管理节点从所述缓存策略中获取所述第一应用的多个任务中每个任务的资源需求信息,所述资源需求信息包括每个任务所需的缓存空间的大小和包括的存储介质的类型;所述管理节点根据所述资源需求信息分配执行所述第一应用的各个任务的目标计算节点;所述管理节点向所述目标计算节点发送所述缓存策略,以指示所述目标计算节点根据所述缓存策略中的资源需求信息,从自身的缓存空间中为相应任务分配缓存空间。
在本申请中,管理节点可以根据用户指定的缓存策略来控制第一应用对计算节点的资源使用情况,以此实现用户对计算节点的资源使用情况的控制,从而使得第一应用的应用性能能够更好的满足用户的需求。
在一种可能的实现方式中,所述映射目录信息包括所述第一目录的目录路径,所述管理节点根据所述映射目录信息,控制所述目标计算节点将所述第一应用的应用数据预取至所述第一应用的缓存资源中的实现过程可以为:所述管理节点向所述目标计算节点发送所述第一目录的目录路径,以指示所述目标计算节点根据所述第一目录的目录路径,从所述存储***中预取所述第一目录下存储的各个任务的子目录下的数据,并将获取的数据存储至所述第一应用的缓存资源中。
在本申请中,管理节点通过用户指定的映射目录信息控制计算节点将第一应用的数据预取至为第一应用分配的缓存资源中,这样,无需用户自行进行显式的数据拷贝,降低了用户使用复杂度。
在一种可能的实现方式中,所述方法还包括:所述管理节点接收多个计算节点发送的各个应用的缓存资源中待迁移至所述存储***的数据的带宽需求,所述多个计算节点包括所述目标计算节点;根据所述带宽需求,为所述第一应用的缓存资源中的待迁移数据分配IO带宽;向所述目标计算节点发送为所述第一应用分配的IO带宽,以指示所述目标计算节点根据为所述第一应用分配的IO带宽,将所述第一应用的缓存资源中的待迁移数据存储至所述存储***中。
在本申请中,管理节点可以根据收集的各个计算节点的带宽需求,为各个计算节点所运行的应用分配用于迁移待迁移数据的IO带宽,以此来控制各个计算节点向存储***迁移数据的数据量,从而避免不同计算节点的应用数据访问量超过存储***的可用带宽进而产生I/O带宽竞争,实现了全局视图中各应用有序访问存储***,从而减少了因IO竞争导致的应用性能问题。
第三方面,提供了一种数据访问方法,所述方法包括:计算节点接收用户指定的第一应用的缓存策略和映射目录信息,所述缓存策略用于指示所述第一应用的缓存需求,所述映射目录信息为存储***中存储的所述第一应用的应用数据所在的第一目录的信息;根据所述缓存策略,为所述第一应用分配缓存资源,根据所述映射目录信息,将所述第一应用的应用数据预取至所述第一应用的缓存资源中;在运行所述第一应用的过程中,根据所述缓存策略,访问所述第一应用的缓存资源。
在本申请中,计算节点能够根据用户指定的第一应用的缓存策略为第一应用分配对应的缓存资源,从而使得第一应用对计算节点的资源使用情况符合用户要求,进而使得第一应用的应用性能能够满足用户需求。在此基础上,在运行第一应用的过程中,可以直接在该计算节点为该第一应用分配的缓存资源中进行数据访问,减少了对存储***的访问,从而减少了计算节点之间的竞争。并且,在为第一应用分配缓存资源之后,计算节点可以根据映射目录信息将存储***中第一目录下的第一应用的应用数据预取至第一缓存空间中,无需用户进行人工数据拷贝,降低了操作复杂度。
在一种可能的实现方式中,在根据所述缓存策略,为所述第一应用分配缓存资源时,所述计算节点从所述缓存策略中获取所述第一应用的多个任务中每个任务的资源需求信息,所述资源需求信息包括每个任务所需的缓存空间的大小和包括的存储介质的类型;根据每个任务的资源需求信息,在自身的缓存资源中为自身所运行的第一任务分配缓存空间,所述第一任务为在所述计算节点上运行的所述多个任务中的任一个任务。
在一种可能的实现方式中,所述根据所述映射目录信息,将所述第一应用的应用数据预取至所述第一应用的缓存资源中的实现过程包括:确定所述第一任务对应的子目录的目录标识;根据所述第一目录的目录路径和所述第一任务对应的子目录的目录标识,从存储***中获取所述第一目录下存储的所述第一任务对应的子目录下的数据;将所述第一任务对应的子目录下的数据存储至所述第一任务的缓存空间中。
在一种可能的实现方式中,如果所述缓存策略包括分级缓存策略,则将所述第一任务对应的子目录下的数据存储至所述第一任务的缓存空间的实现过程包括:根据所述第一任务对应的子目录下的数据的数据类型,将不同的数据存储至不同类型的存储介质中。
在本申请中,根据分级缓存策略缓存数据,能够使得不同类型的数据存储在合适的存储介质中,从而提高数据访问性能,节省缓存空间的资源消耗。
在一种可能的实现方式中,所述在运行所述第一应用的过程中,根据所述缓存策略,访问所述第一应用的缓存资源的实现过程可以包括:获取IO请求,如果所述IO请求所访问的数据为所述映射目录信息所指示的所述第一目录下的数据,则根据所述IO请求和所述缓存策略,访问所述第一应用的缓存资源。
在本申请中,通过设置映射目录信息,可以将针对映射目录信息所指示的第一目录的访问直接截获,进而通过访问为第一应用分配的缓存资源来实现数据访问,提高了访问效率,并且整个过程用户无感知。
在一种可能的实现方式中,如果所述缓存策略包括数据一致性策略,则当所述计算节点对所述第一应用的缓存资源中的数据进行访问时,对所访问的数据执行加锁操作,以此来保证数据访问过程中数据的准确性。
在一种可能的实现方式中,当所述计算节点检测到自身为所述第一应用分配的缓存资源中的数据量达到参考阈值时,向管理节点发送所述第一应用的带宽需求,所述带宽需求用于指示将所述计算节点上所述第一应用的缓存资源中的待迁移数据迁移至存储***所需的带宽;接收所述管理节点为所述第一应用的缓存资源中的待迁移数据分配的IO带宽,根据分配的IO带宽,将所述第一应用的缓存资源中的待迁移数据迁移至存储***。
在本申请中,计算节点可以通过向管理节点发送第一应用的带宽需求来请求管理节点为第一应用分配IO带宽,由于管理节点能够同时收集到各个计算节点的带宽需求,因此,根据管理节点分配的IO带宽来迁移数据时能够各个计算节点产生I/O带宽竞争,实现了全局视图中各应用有序访问存储***,从而减少了因IO竞争导致的应用性能问题。
第四方面,提供了一种数据访问装置,所述数据访问装置具有实现上述第一方面中数据访问方法行为的功能。所述数据访问装置包括至少一个模块,该至少一个模块用于实现上述第一方面所提供的数据访问方法。
第五方面,提供了一种数据访问装置,所述数据访问装置具有实现上述第二方面中数据访问方法行为的功能,所述数据访问装置包括至少一个模块,该至少一个模块用于实现上述第二方面所提供的数据访问方法。
第六方面,提供了一种数据访问装置,所述数据访问装置具有实现上述第三方面中数据访问方法行为的功能,所述数据访问装置包括至少一个模块,该至少一个模块用于实现上述第三方面所提供的数据访问方法。
第七方面,提供了一种集群***,所述集群***包括管理节点和计算节点,所述管理节点和所述计算节点均包括处理器和存储器,所述存储器用于存储支持所述集群***执行上述第一方面所提供的数据访问方法的程序,以及存储用于实现上述第一方面所提供的数据访问方法所涉及的数据。所述处理器被配置为用于执行所述存储器中存储的程序。
第八方面,提供了一种管理节点,所述管理节点的结构中包括处理器和存储器,所述存储器用于存储支持所述管理节点执行上述第二方面所提供的数据访问方法的程序,以及存储用于实现上述第二方面所提供的数据访问方法所涉及的数据。所述处理器被配置为用于执行所述存储器中存储的程序。
第九方面,提供了一种计算节点,所述计算节点的结构中包括处理器和存储器,所述存储器用于存储支持所述计算节点执行上述第三方面所提供的数据访问方法的程序,以及存储用于实现上述第三方面所提供的数据访问方法所涉及的数据。所述处理器被配置为用于执行所述存储器中存储的程序。
第十方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面或第二方面或第三方面所述的数据访问方法。
第十一方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面或第二方面或第三方面所述的数据访问方法。
附图说明
图1是本申请实施例提供的一种数据中心的***架构图;
图2是本申请实施例提供的一种计算机设备的方法流程图;
图3是本申请实施例提供的一种数据访问方法的流程图;
图4是本申请实施例提供的一种数据访问装置的结构示意图;
图5是本申请实施例提供的另一种数据访问装置的结构示意图;
图6是本申请实施例提供的又一种数据访问装置的结构示意图。
具体实施方式
为了便于理解,首先对本申请实施例涉及的***架构予以介绍。
本申请提供的数据访问方法可以应用于数据中心,该数据中心可以为多个用户提供共享的应用执行环境。其中,该数据中心中运行的应用可以为诸如高性能计算应用、大数据应用等数据密集型应用。
示例性地,参见图1,该数据中心包括集群***10和存储***11,且该集群***10和存储***11建立有通信连接。其中,集群***10用于为多个应用的提供执行环境,存储***11用于存储该多个应用的应用数据。
参见图1,该集群***10可以包括管理节点101和多个计算节点102,且该管理节点101和每个计算节点102可以通过有线网络或者无线网络进行通信,并且,各个计算节点102之间也可以通过有线网络或者无线网络进行通信。在本申请实施例中,该管理节点101用于根据用户指定的某个应用的缓存策略,为该应用分配用于执行该应用的计算节点102,并将该缓存策略和用户指定的映射目录信息下发至该计算节点102。
计算节点102在接收到管理节点101下发的用户指定的缓存策略和映射目录信息之后,根据该缓存策略从自身的缓存资源中为该应用分配缓存资源,并根据该映射目录信息,将存储***11中存储的应用的数据预取至该应用的缓存资源中。之后,运行该应用,并在该应用的运行过程中,根据该缓存策略访问该应用的缓存资源。其中,计算节点102自身的缓存资源是指该计算节点102包括的存储介质。示例性地,该计算节点102自身的缓存资源可以包括自身的动态随机访问内存(dynamic random access memory,DRAM)、大容量存储级内存(storage class memory,SCM)、固态硬盘(solid storage disk,SSD)等类型的存储介质,本申请实施例对此不做限定。
需要说明的是,管理节点102为该应用分配的执行该应用的计算节点102的数量可以为多个,这样,每个计算节点102可以用于运行该应用的一个或多个任务。
通过上述方法,管理节点101可以根据用户需求为不同用户所要运行的各个应用调度计算节点102中缓存资源,从而控制相应的计算节点102运行对应的应用。
在计算节点102运行应用的过程中,当检测到某个应用的缓存资源中缓存的数据量达到第二阈值之后,计算节点102可以向管理节点101发送该应用的缓存资源中待迁移至存储***11中的数据的带宽需求,以请求管理节点101为该应用的待迁移数据分配IO带宽。
管理节点101在接收到一个或多个计算节点102发送的各个应用的带宽需求之后,可以根据该带宽需求为各个应用的待迁移数据分配IO带宽,并将分配的IO带宽下发至对应的计算节点102。相应地,计算节点102在接收到管理节点101为应用的待迁移数据分配的IO带宽之后,可以根据该IO带宽将应用的待迁移数据发送至存储***11进行存储。
其中,存储***11包括多个存储节点111。其中,各个存储节点111与各个计算节点102之间可以进行有线或者无线通信。各个存储节点111用于接收计算节点102的IO请求,其中,当该IO请求为计算节点102根据映射目录信息发送的读请求时,存储节点111根据该读请求获取应用的数据返回至计算节点102,以便计算节点102将应用的数据缓存至为应用分配的缓存资源中。当该IO请求为携带有应用的待迁移数据的写请求时,存储节点111可以根据该写请求对待迁移数据进行持久化存储。
需要说明的是,在一种可能实现方式中,存储节点111可以包括控制单元、网卡和多个存储设备。其中,控制单元用于通过网卡与计算节点102进行通信,并根据计算节点102的IO请求访问多个存储设备。其中,多个存储设备可以包括大容量存储级内存(storageclass memory,SCM)、固态硬盘(solid storage disk,SSD)等类型的存储设备,本申请实施例对此不做限定。
可选地,在本申请实施例中,该数据中心还可以为用户提供用于提交缓存策略和映射目录信息的登录节点。用户通过该登录节点将所要运行的应用的缓存策略和映射目录信息提交至管理节点101,以便管理节点101根据该应用的缓存策略和映射目录信息为该应用调度资源。
上述的管理节点101、计算节点102、存储节点111和登录节点中的每个节点可以为一台单独的计算机设备。其中,登录节点可以为终端设备,例如笔记本电脑、台式电脑、平板电脑、智能手机等。管理节点101和计算节点102可以为终端设备,也可以为服务器。存储节点111可以为服务器。
图2是本申请实施例提供的一种计算机设备的结构示意图。图1所示的***架构中的管理节点、计算节点均可以通过该计算机设备来实现。参见图2,该计算机设备可以包括一个或多个处理器201、通信总线202、主存储器203以及一个或多个通信接口204。
处理器201可以是一个通用中央处理器(central processing unit,CPU)、网络处理器(network processor,NP)、微处理器、或者可以是一个或多个用于实现本申请方案的集成电路,例如,专用集成电路(application-specific integrated circuit,ASIC)、可编程逻辑器件(programmable logic device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complex programmable logic device,CPLD)、现场可编程逻辑门阵列(field-programmable gate array,FPGA)、通用阵列逻辑(generic array logic,GAL)或其任意组合。
通信总线202用于在上述组件之间传送信息。通信总线202可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
主存储器203可以是只读主存储器(read-only memory,ROM),也可以是随机存取存储器(random access memory,RAM),或者是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其它介质,但不限于此。其中,当主存储器203为RAM时,该主存储器可以为动态随机存取存储器(Dynamic Random Access Memory,DRAM),或者SCM等。主存储器203可以是独立存在,并通过通信总线202与处理器201相连接。主存储器203也可以和处理器201集成在一起。
通信接口204使用任何收发器一类的装置,用于与其它设备或通信网络通信。通信接口204包括有线通信接口,还可以包括无线通信接口。其中,有线通信接口例如可以为以太网接口。以太网接口可以是光接口,电接口或其组合。无线通信接口可以为无线局域网(wireless local area networks,WLAN)接口,蜂窝网络通信接口或其组合等。
在一些实施例中,计算机设备还可以包括其他存储介质205,例如,其他存储介质205可以包括机械硬盘、固态硬盘等。
在一些实施例中,计算机设备可以包括多个处理器,如图2中所示的处理器201和处理器206。这些处理器中的每一个可以是一个单核处理器,也可以是一个多核处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(如计算机程序指令)的处理核。
在具体实现中,作为一种实施例,计算机设备还可以包括输出设备207和输入设备208。输出设备207和处理器201通信,可以以多种方式来显示信息。例如,输出设备207可以是液晶显示器(liquid crystal display,LCD)、发光二级管(light emitting diode,LED)显示设备、阴极射线管(cathode ray tube,CRT)显示设备或投影仪(projector)等。输入设备208和处理器201通信,可以以多种方式接收用户的输入。例如,输入设备208可以是鼠标、键盘、触摸屏设备或传感设备等。
在一些实施例中,主存储器203用于存储内核(kernel)、执行本申请方案的程序代码以及其他指令和数据,处理器201可以执行主存储器203中存储的程序代码。该程序代码中可以包括一个或多个软件模块,该计算机设备可以通过处理器201以及主存储器203中的程序代码,来实现下文图3实施例提供的数据访问方法。
在本申请提供的数据访问方法中,用户能够针对应用灵活定制缓存策略,集群***能够根据用户提交的缓存策略为应用调度缓存资源,也即,集群***能够感知用户的需求,进而根据用户的需求来控制应用的资源使用情况,从而达到提升应用性能的效果。并且,集群***可以根据用户提交的映射目录信息将数据预取至应用的缓存资源中,以此提升数据访问速度,降低了用户的使用复杂度。另外,集群***中的管理节点能够通过收集各个计算节点的带宽需求来为计算节点上运行的应用分配IO带宽,减少了因IO竞争导致的应用性能问题。下面将结合附图对本申请实施方式作进一步地详细描述。
图3是本申请实施例提供的一种数据访问方法的流程图。该方法可以应用于图1所示的数据中心中的集群***中,参见图3,该方法包括以下步骤:
步骤301:管理节点接收用户提交的针对第一应用的缓存配置请求,该缓存配置请求包括缓存策略和映射目录信息,缓存策略用于指示第一应用的缓存需求,映射目录信息为存储***中存储的第一应用的应用数据所在的第一目录的信息。
在本申请实施例中,用户在登录节点上输入针对第一应用的缓存策略和映射目录信息。登录节点根据用户输入的缓存策略和映射目录信息,生成第一应用的缓存配置请求,并向管理节点发送该缓存配置请求。其中,该缓存配置请求携带该缓存策略和映射目录信息,第一应用是指用户所要运行的应用。相应地,管理节点接收登录节点发送的第一应用的缓存配置请求。
示例性地,登录节点上部署有命令行工具,用户可以在登录节点显示的命令行工具的命令行界面中输入第一应用的缓存策略和映射目录信息。登录节点获取用户在命令行界面中输入的第一应用的缓存策略和映射目录信息。
可选地,登录节点上也可以部署有业务配置客户端,用户可以在登录节点显示的业务配置客户端的界面中输入第一应用的缓存策略和映射目录信息。相应的,登录节点可以通过该业务配置客户端获取第一应用的缓存策略和映射目录信息,进而生成第一应用的缓存配置请求。
需要说明的是,第一应用的缓存策略可以包括第一应用的资源需求信息和数据缓存和访问策略。
在本申请实施例中,第一应用可以被划分为多个任务由多个计算节点来执行。在这种情况下,用户指定的第一应用的资源需求信息可以包括第一应用的各个任务的资源需求信息。并且,第一应用的各个任务的资源需求信息可以相同,也可以不同。其中,资源需求信息可以包括计算资源需求信息和缓存资源需求信息。该计算资源需求信息用于指示第一应用的各个任务所需的计算资源,例如,运行第一应用的各个任务所需的处理器的核数、主频等。缓存资源需求信息包括第一应用的各个任务所需的缓存空间的大小,除此之外,还可以包括第一应用的各个任务所需的缓存空间包括的存储介质的类型,例如,第一应用的各个任务所需的缓存空间可以包括DRAM、SCM两种不同的存储介质。可选地,缓存资源需求信息还可以包括第一应用的各个任务所需的缓存空间的拓扑结构,也即,组成该缓存空间的各级存储介质在相应计算节点上的拓扑结构。
可选地,第一应用的资源需求信息也可以直接用于指示的第一应用的资源需求,也即,该资源需求信息非上述的任务粒度级别的资源需求信息,而是应用粒度级别的资源需求信息。
数据缓存和访问策略可以用于指示对第一应用的应用数据的缓存方式和访问策略。例如,该数据缓存和访问策略可以包括分级缓存策略,用于指示将第一应用的不同类型的应用数据缓存至不同类型的存储介质中。再例如,该数据缓存和访问策略可以包括数据一致性策略,用于指示在访问第一应用的缓存资源中的任一数据时,对所访问的数据执行加锁操作,以保证数据的一致性。再例如,该数据缓存和访问策略还可以包括安全级别策略,用于指示应用的缓存资源中的数据的访问权限。上述仅是本申请实施例给出的数据缓存和访问策略中可能包括的一些策略,除此之外,该数据缓存和访问策略中还可以包括其他由用户灵活定制的策略,以更好的满足用户需求,提高应用性能。
另外,映射目录信息是指存储***中存储的第一应用的应用数据所在的第一目录的信息。示例性地,该映射目录信息可以为存储***中第一目录的目录路径。或者,该映射目录信息也可以为其他能够用于指示存储***中第一应用的应用数据的存储位置的信息,本申请实施例对此不做限定。
步骤302:管理节点根据该缓存策略,分配执行第一应用的目标计算节点。
管理节点在接收到第一应用的缓存配置请求之后,根据该缓存配置请求中的缓存策略包括的资源需求信息,从多个计算节点中分配执行第一应用的目标计算节点。
示例性地,如果缓存策略中包括的是任务粒度级别的资源需求信息,则管理节点可以从缓存策略中获取第一应用的多个任务中每个任务的资源需求信息,根据该资源需求信息分配执行第一应用的各个任务的目标计算节点。
由步骤301中的介绍可知,每个任务的资源需求信息可以包括每个任务的计算资源需求信息和缓存资源需求信息。基于此,管理节点可以实时收集并更新各个计算节点的计算资源和缓存资源的使用情况,进行根据每个任务的计算资源需求信息和最近一次更新的各个计算节点的计算资源的使用情况,从多个计算节点中确定能够满足第一应用的任务运行所需的计算资源需求的候选计算节点。之后,根据每个任务的缓存资源需求信息和最近一次更新的各个候选计算节点的缓存资源的使用情况,从候选计算节点中进一步确定能够满足第一应用的任务的缓存资源需求的计算节点,将最终确定出的计算节点作为目标计算节点。
例如,管理节点可以根据最近一次更新的各个计算节点上运行的应用所占用的资源,确定各个计算节点上剩余的计算资源,进而从多个计算节点中确定剩余的计算资源满足第一应用的任务的计算资源需求的候选计算节点。之后,根据最近一次更新的各个候选计算节点的剩余缓存空间的大小以及组成剩余缓存空间的存储介质的类型,从候选计算节点中确定剩余缓存空间大于第一应用的任务所需的缓存空间大小、且剩余缓存空间包含有第一应用的任务所需的存储介质的计算节点,以得到目标计算节点。
可选地,管理节点也可以向根据各个任务的缓存资源需求信息从多个计算节点中确定出候选计算节点,然后再根据第一应用的各个任务的计算资源需求信息从候选计算节点中确定出目标计算节点,本申请实施例在此不再赘述。
值得注意的是,通过上述方法,管理节点可以确定出运行第一应用的每个任务的计算节点。其中,运行每个任务的计算节点可以不同,这样,目标计算节点将有多个。可选地,运行每个任务的计算节点也有可能为同一个目标计算节点,这样,目标计算节点将为一个。或者,部分任务可以通过一个目标计算节点来执行,部分任务可以通过另一个目标计算节点来执行,这样,目标计算节点也将有多个。
在另一种实现方式中,如果缓存策略包括的是应用粒度级别的资源需求信息,则管理节点可以直接根据该第一应用的资源需求信息,为该第一应用分配目标计算节点,实现方式可以参考前文中为每个任务分配目标计算节点的实现方式,本申请实施例在此不再赘述。
可选地,管理节点也可以根据第一应用的资源需求信息以及第一应用的任务划分原则,确定第一应用的多个任务中每个任务的资源需求信息,通过前文中介绍的分配目标计算节点的方法为每个任务分配目标计算节点。
步骤303:管理节点向目标计算节点发送该缓存策略和映射目录信息。
在确定出执行第一应用的各个任务的目标计算节点之后,管理节点可以向目标计算节点下发第一应用的各个任务的缓存策略和映射目录信息,以控制目标计算节点根据该缓存策略为第一应用的各个任务分配缓存资源,并根据该映射目录信息和缓存策略来访问第一应用的缓存资源。
可选地,当目标计算节点有多个,且各个任务的缓存策略相同时,管理节点可以向每个目标计算节点下发该缓存策略和映射目录信息。当目标计算节点有多个,且缓存策略中包含的各个任务的资源需求信息不相同时,则管理节点可以将缓存策略中包含的数据缓存和访问策略以及每个任务的资源需求信息作为相应任务的缓存策略,然后将映射目录信息和每个任务的缓存策略下发至任务对应的目标计算节点,其中,任务对应的目标计算节点运行该任务的目标计算节点。
可选地,管理节点在向目标计算节点下发缓存策略和映射目录信息的同时,还可以向每个目标计算节点下发所要运行的任务的标识,以指示目标计算节点所要运行的是第一应用的哪个任务。其中,任务的标识能够唯一标识任务。
当各个目标计算节点接收到管理节点发送的缓存策略和映射目录信息之后,即可以通过下述步骤304至306来运行第一应用。
步骤304:目标计算节点根据该缓存策略,为第一应用分配缓存资源。
目标计算节点在接收到管理节点下发的缓存策略和映射目录信息之后,首先根据该缓存策略,为第一应用分配缓存资源。
其中,目标计算节点可以从接收到的缓存策略中获取缓存资源需求信息,进而根据该缓存资源需求信息为自身所要执行的第一应用的任务分配缓存资源。接下来,以一个目标计算节点为例来进行说明,为了方便说明,将该目标计算节点称为第一目标计算节点。
示例性地,例如,第一目标计算节点上运行有第一任务,则第一目标计算节点从接收到的缓存策略中获取第一任务的缓存资源需求信息,进而根据第一任务的缓存资源需求信息,在自身的缓存资源中为第一任务分配满足该缓存资源需求的缓存空间。
可选地,当各个任务的缓存资源需求信息相同且一个目标计算节点上运行第一应用的一个任务时,该第一目标计算节点可以根据该缓存资源需求信息从自身的缓存资源中分配与该缓存资源需求信息所指示的大小相同的缓存空间作为第一应用的缓存空间,此时,分配的第一应用的缓存空间可能是第一目标计算节点上运行的第一应用的第一任务的缓存空间,也即,用于存储第一任务的任务数据,也可能为其他目标计算节点上运行的第一应用的其他任务的缓存空间,也即,用于存储其他任务的任务数据。
各个目标计算节点根据管理节点下发的缓存策略为第一应用的各个任务分配缓存空间,这样,位于各个目标计算节点上的第一应用的各个任务的缓存空间即组成了第一应用的缓存资源。
可选地,如果缓存策略中的资源需求信息是应用粒度级别的资源需求信息,且管理节点直接将该第一应用的资源需求信息下发至了目标计算节点,则目标计算节点将有一个,在这种情况下,该目标计算节点在接收到第一应用的缓存资源需求信息之后,可以根据该缓存资源需求信息从自身的缓存资源中为第一应用分配缓存空间。这样,第一应用的缓存资源将位于一个计算节点上。
步骤305:目标计算节点根据映射目录信息,将第一应用的应用数据预取至第一应用的缓存资源中。
在为第一应用分配对应的缓存资源之后,目标计算节点可以根据映射目录信息,从存储***中获取第一应用的应用数据,进而将该应用数据缓存至第一应用的缓存资源中。接下来仍以第一目标计算节点为例进行说明。
在第一种可能的情况中,如果第一目标计算节点为自身所执行的第一应用的第一任务分配了缓存空间,且映射目录信息为存储***中第一目录的目录路径,则第一目标计算节点可以确定第一任务对应的子目录的目录标识,根据该第一目录的目录路径和第一任务对应的子目录的目录标识,从存储***中获取第一目录下存储的第一任务对应的子目录下的数据,进而将获取到的第一任务对应的子目录下的数据存储至为第一任务分配的缓存空间中。
其中,第一目标计算节点可以根据第一任务的任务标识,从预设的任务标识与子目录的目录标识中获取第一任务对应的子目录的目录标识。或者,第一目标计算节点也可以根据第一任务的任务标识,采用预设的规则生成第一任务对应的子目录的目录标识。例如,第一任务的任务编号为1,生成任务对应的子目录的目录标识的预设规则为processor+任务编号,则根据该预设规则可以得到第一任务对应的子目录的目录标识为processor 1。
之后,第一目标计算节点可以按照第一目录的目录路径,从存储***存储的第一目录下获取与第一任务对应的子目录的目录标识相同的子目录下的数据,也即,第一任务的任务数据,之后,将该第一任务的任务数据存储至第一任务的缓存空间中。
需要说明的是,在将第一任务的任务数据存储至第一任务的缓存空间时,如果缓存策略中还包括数据缓存和访问策略,且数据缓存和访问策略中包含分级缓存策略时,第一目标计算节点还可以根据第一任务的任务数据的数据类型,将不同的数据存储至不同类型的存储介质中。
例如,将第一任务的任务数据中访问频次高于第一阈值的热点数据存储至性能较高的存储器(也可以称为存储介质)中,而将访问频次比较低的数据存储至性能相对较弱的存储介质中。例如,可以将元数据和除元数据之外的其他数据存储至不同类型的存储介质中。其中,第一阈值可以根据业务需求设置,可以根据任务数据的处理效率设定,也可以为经验值,还可以是根据***处理能力进行设置。
另外,上述第一目标计算节点所执行的第一应用的任务可能为一个,也可能为多个,当第一目标计算节点执行第一应用的多个任务时,则可以参考上述方式将每个要执行的任务对应的子目录下的数据预取至相应任务对应的缓存空间中。
在第二种可能的情况中,如果各个任务的缓存资源需求信息相同,各个目标计算节点从自身的缓存资源中分配了与该缓存资源需求信息所指示的空间大小相同的缓存空间,则第一目标计算节点可以从存储***中获取映射目录信息所指示的第一目录下的数据,之后,对获取到的数据的目录路径执行哈希运算,得到数据对应的哈希值。从多个目标计算节点中确定节点标识与该哈希值相匹配的目标计算节点。如果节点标识与该哈希值相匹配的目标计算节点为自身,则将该数据存储至自身为第一应用分配的缓存空间中。如果节点标识与该哈希值相匹配的目标计算节点为其他目标计算节点,例如,为第二目标计算节点,则第一目标计算节点可以将该数据发送至与第二目标计算节点,第二目标计算节点在接收到该数据之后,将该数据存储至自身为第一应用分配的缓存空间中。
其中,在将数据存储至为第一应用分配的缓存空间中时,同样可以参考前述介绍的方法,按照数据缓存和访问策略中包含的分级缓存策略,将该数据存储至对应类型的存储介质中。
在第三种可能的情况中,如果目标计算节点根据应用粒度级别的第一应用的缓存资源信息为第一应用分配了缓存空间,则该目标计算节点可以直接从存储***中获取该映射目录信息所指示的第一目录下的数据,并将该数据存储至为第一应用分配的缓存空间中。
上述是本申请实施例给出的几种预取第一应用的应用数据的可能实现方式。可选地,目标计算节点还可以采用多副本机制预取第一应用的各个任务的任务数据,或者,采用其他实现方式来预取第一应用的数据,本申请实施例对此不做限定。
另外,值得注意的是,上述从存储***的第一目录中预取到的数据可以是第一目录中的全部数据,也可以是第一目录中的部分数据。对于各个任务而言,预取到的可能是任务的全部数据,也可能是任务的部分数据,本申请实施例对此也不做限定。其中,当预取的是部分数据时,可以根据数据的访问频次或者是其他能够指示数据重要程度的信息来预取较为重要的数据。
步骤306:目标计算节点在运行第一应用的过程中,根据缓存策略,访问第一应用的缓存资源。
通过步骤304和步骤305为第一应用分配缓存资源,并将第一应用的应用数据预取至第一应用的缓存资源中之后,目标计算节点启动第一应用的运行脚本,从而开始运行第一应用。
其中,仍以第一目标计算节点为例来进行说明。第一目标计算节点启动第一应用的运行脚本,执行自身分配到的第一应用的第一任务。
在执行第一任务的过程中,第一目标计算节点可能需要读取第一应用的应用数据,或者是将执行任务过程中产生的数据写入至第一应用的缓存资源中。基于此,第一目标计算节点可以根据所要执行的操作生成IO请求,其中,该IO请求可能为读请求,也可能为写请求。并且,该IO请求可以包括所访问的目标数据所在目录的目录路径。
在得到IO请求之后,第一目标计算节点首先可以将所访问的目标数据的目录路径与映射目录信息进行比较,如果所访问的目标数据的目录路径包含有该映射目录信息,则可以确定当前所要访问的目标数据为第一目录下的数据。在这种情况下,由于在步骤305中预取了第一目录下的数据至第一应用的缓存资源中,所以,第一目标计算节点可以直接访问第一应用的缓存资源。
其中,如果各个目标计算节点是通过步骤305中第一种可能的情况中介绍的方法预取的数据,则在确定IO请求所要访问的数据为第一目录下的数据之后,第一目标计算节点根据该IO请求访问第一应用的缓存资源。
需要说明的是,如果IO请求为读请求,则第一目标计算节点首先可以从第一任务的缓存空间中查找目标数据,如果在第一任务的缓存空间中命中该目标数据,则获取该目标数据。如果未能在第一任务的缓存空间中命中该目标数据,则将该IO请求发送至其他目标计算节点。其他目标计算节点在接收到该IO请求之后,从自身为第一应用分配的任务的缓存空间中查找目标数据,如果命中该目标数据,则将目标数据返回至第一目标计算节点,如果未能命中该目标数据,则向第一目标计算节点返回通知消息以通知第一目标计算节点获取数据失败。如果其他各个目标计算节点均未能命中该目标数据,则第一目标计算节点可以从存储***中获取该目标数据。可选地,如果IO请求为写请求,则第一目标计算节点可以将该目标数据写入至第一任务的缓存空间中。
由上述介绍可知,当第一目标计算节点根据该IO请求未能在第一任务的缓存空间中命中目标数据时,可以将该IO请求发送至其他目标计算节点。同理,其他目标计算节点在生成IO请求之后,如果未能在自身为第一应用分配的缓存空间中命中所要访问的数据,也可以向第一目标计算节点发送IO请求。在这种情况下,第一目标计算节点也可以接收其他目标计算节点发送的IO请求,并根据该IO请求对第一任务的缓存空间进行访问。可选地,计算节点之间可以通过远程内存直接访问(remote direct memory access,RDMA)技术来发送IO请求以访问对方的缓存空间。
可选地,如果各个目标计算节点是通过步骤305中第二种可能的情况中介绍的方法预取的数据,则第一目标计算节点可以对IO请求所要访问的目标数据的目录路径进行哈希运算,以得到该目标数据对应的哈希值,确定节点标识与该目标数据对应的哈希值相匹配的目标计算节点,如果确定出的目标计算节点为自身,则第一目标计算节点访问自身为第一应用分配的缓存空间,以实现目标数据的读取或写入。
可选地,如果确定出的目标计算节点为其他目标计算节点,则第一目标计算节点将IO请求发送至确定出的目标计算节点,由确定出的目标计算节点通过访问自身为第一应用分配的缓存空间来实现目标数据的读取或写入。
其中,对于在第一应用的缓存空间中未能命中目标数据的情况,相应的目标计算节点同样可以从存储***中获取该目标数据。
可选地,如果目标计算节点是通过步骤305中第三种可能的情况中介绍的方法预取的数据,则由于目标计算节点为一个,所以,该目标计算节点可以根据该IO请求访问自身为第一应用分配的缓存空间中。其中,访问方式参考前述实现方式,本申请实施例在此不再赘述。
可选地,如果缓存策略中的数据缓存和访问策略还包括数据一致性策略,则在本步骤中,当某个目标计算节点根据IO请求在第一应用的缓存资源中修改、删除或写入目标数据时,该目标计算节点还可以对该目标数据执行加锁操作,以此来避免其他目标计算节点访问该目标数据,保证数据的一致性。
步骤307:多个计算节点向管理节点发送自身运行的应用的缓存资源中待迁移至存储***的数据的带宽需求,多个计算节点包括目标计算节点,多个应用包括第一应用。
在本申请实施例中,当计算节点检测到自身为某个应用分配的缓存空间中缓存的数据量达到第二阈值时,即可以向管理节点发送该应用的带宽需求。相应地,管理节点可以实时接收各个计算节点发送的各个应用的带宽需求。其中,该带宽需求用于指示将相应计算节点上相应应用的缓存资源中的待迁移数据迁移至存储***所需的带宽。示例性地,该带宽需求可以包括计算节点上相应应用的缓存资源中的待迁移数据的数据量。可选地,还可以包括应用标识等其他信息,本申请实施例对此不做限定。另外,第二阈值可以根据该计算节点上为该应用分配的缓存空间的大小来预先设定,例如,该第二阈值可以是为该应用分配的缓存空间的总容量的预设比例,例如,可以是为该应用分配的缓存空间的80%,或者是其他数值,本申请实施例对此不做限定。
其中,该多个计算节点中包括目标计算节点,也即,当目标计算节点检测到自身为第一应用分配的缓存空间中缓存的数据量达到第二阈值时,即可以向管理节点发送第一应用的带宽需求。此时,该第一应用的带宽需求用于指示将目标计算节点上第一应用的缓存空间中的待迁移数据迁移至存储***所需的带宽。
步骤308:管理节点根据该带宽需求,为第一应用的缓存资源中的待迁移数据分配IO带宽。
管理节点在接收到包括目标计算节点在内的多个计算节点发送的各个应用的带宽需求之后,可以根据每个应用的带宽需求所指示的相应应用的待迁移数据所需的带宽以及存储***当前的剩余带宽,为各个应用的待迁移数据分配对应的IO带宽。
示例性地,管理节点可以计算各个应用所需的带宽的比例,之后,根据该比例和存储***当前的剩余带宽,为各个应用分配的IO带宽。其中,如果存储***当前的剩余带宽不大于各个应用所需的总带宽,则为各个应用分配的IO带宽将小于其所需的带宽,如果存储***当前的剩余带宽大于各个应用所需的总带宽,则为各个应用分配的IO带宽可以等于其所需的带宽。
管理节点也可以采用其他原则来对各个应用的待迁移数据分配IO带宽,本申请实施例对此不做限定。
另外,为各个应用的待迁移数据分配的IO带宽能够指示出单位时间内允许各个应用所迁移的数据的最大数据量。例如,当为第一应用的待迁移数据分配的IO带宽为30MB/s时,则表示允许目标计算节点在每秒钟最多向存储***迁移30MB的第一应用的缓存数据。
由于多个应用中包括第一应用,所以管理节点通过上述方法可以为第一应用的缓存资源中的待迁移数据分配IO带宽。
步骤309:管理节点向目标计算节点发送为第一应用分配的IO带宽。
其中,管理节点为各个应用的缓存资源中的待迁移数据分配IO带宽之后,可以向对应的计算节点发送为相应应用分配的IO带宽。
例如,管理节点可以向目标计算节点发送为第一应用的缓存资源中的待迁移数据分配的IO带宽。
步骤310:目标计算节点根据为第一应用分配的IO带宽将第一应用的缓存资源中的待迁移数据存储至存储***中。
其中,为第一应用分配的IO带宽用于指示允许目标计算节点此次迁移的第一应用的缓存数据的数据量。基于此,目标计算节点根据管理节点为第一应用分配的IO带宽,从自身为第一应用分配的缓存空间中获取数量不大于该IO带宽的数据作为待迁移数据,之后,根据用户指定的映射目录信息将待迁移数据迁移至存储***进行持久化存储。其中,根据映射目录信息将数据迁移至存储***的操作为根据映射目录信息从存储***中预取数据的逆向操作,具体实现方式可以参考前文介绍,本申请实施例在此不再赘述。
在目标计算节点开始运行第一应用之后,每当检测到自身为第一应用分配的缓存空间中的数据量达到第二阈值时,均可以通过上述步骤307-310向管理节点申请IO带宽,以便根据该IO带宽将第一应用的缓存空间中的数据迁移至存储***中,直至第一应用结束运行且将第一应用的缓存空间中的数据全部迁移至存储***中为止,目标计算节点可以释放为该第一应用分配的缓存空间。
在本申请实施例中,根据用户提交的针对第一应用的缓存策略为第一应用调度缓存资源,并根据用户提交的映射目录信息将数据预取至第一应用的缓存资源中。后续,在第一应用运行的过程中,根据该缓存策略来访问第一应用的缓存资源。由此可见,本申请实施例可以感知用户的需求,进而根据用户的需求来控制应用的资源使用情况,从而提升应用性能。
其次,在本申请实施例中,可以根据用户指定的映射目录信息将存储***中存储的第一应用的数据预取至为第一应用分配的缓存资源中,这样,后续在运行第一应用的过程中,如果所要访问的数据为该映射目录信息所指示的目录下的数据,则可以直接访问为第一应用分配的缓存资源,提升数据访问速度。并且,通过用户指定映射目录信息来预取存储***中的数据,降低了用户的使用复杂度。
第三,在本申请实施例中,可以根据用户指定的缓存策略中的数据缓存和访问策略在第一应用的缓存资源中缓存并访问数据,例如,根据分级缓存策略缓存数据,以此来提高数据访问性能,节省缓存空间的资源消耗。根据数据一致性策略来访问数据,以此保证数据访问过程中数据的准确性。除此之外,用户还可以灵活的定制其他策略,以此来实现数据缓存和访问方式的灵活设置。
最后,在本申请实施例中,各个计算节点在检测到自身为应用分配的缓存资源中的数据量达到第二阈值时,可以向管理节点申请分配自身所运行的应用的待迁移数据的带宽需求。管理节点可以根据收集的各个计算节点的带宽需求,为各个计算节点所运行的应用分配用于迁移待迁移数据的IO带宽,以此来控制各个计算节点向存储***迁移数据的数据量,从而避免不同计算节点的应用数据访问量超过存储***的可用带宽进而产生I/O带宽竞争,实现了全局视图中各应用有序访问存储***,从而减少了因IO竞争导致的应用性能问题。并且,本申请实施例中根据用户指定的映射目录信息,集群***可以自动完成数据拷贝,无需用户自行操作来完成数据拷贝,降低了用户的操作复杂度。
需要说明的是,上述实施例中有关管理节点的步骤可以单独实现成为管理节点侧的数据访问方法,有关计算节点侧的步骤可以单独实现成为计算节点侧的数据访问方法。
上文中结合图1至图3详细描述了根据本申请实施例所提供的数据访问的方法,下面将结合图4至图6描述根据本申请实施例所提供的数据访问装置。
参见图4,本申请实施例提供了一种数据访问装置400,该装置可以应用于集群***中,该装置400包括:
接收模块401,用于执行上述实施例中的步骤301;
调度模块402,用于执行上述实施例中的步骤302-304;
预取模块403,用于执行上述实施例中的步骤305;
访问模块404,用于执行上述实施例中的步骤306。
应理解的是,本发明本申请实施例的数据访问装置400可以通过中央处理器(central processing unit,CPU)实现,也可以通过专用集成电路(application-specificintegrated circuit,ASIC)实现,或可编程逻辑器件(programmable logic device,PLD)实现,上述PLD可以是复杂程序逻辑器件(complex programmable logical device,CPLD),现场可编程门阵列(field-programmable gate array,FPGA),通用阵列逻辑(genericarray logic,GAL)或其任意组合。也可以通过软件实现图3所示的数据访问方法时,数据访问装置400及其各个模块也可以为软件模块。
可选地,调度模块402主要用于:
根据缓存策略确定第一应用的多个任务中每个任务的资源需求信息,资源需求信息包括每个任务所需的缓存空间的大小和包括的存储介质的类型;
根据每个任务的资源需求信息,为每个任务分配缓存空间。
可选地,映射目录信息包括第一目录的目录路径,预取模块403主要用于:
确定第一应用的多个任务中每个任务对应的子目录的目录标识;
根据第一目录的目录路径和每个任务对应的子目录的目录标识,从存储***中获取第一目录下存储的每个任务对应的子目录下的数据;
将每个任务对应的子目录下的数据存储至第一应用的缓存资源中。
可选地,访问模块404主要用于:
当缓存策略包括分级缓存策略时,根据分级缓存策略,将第一应用的每个任务的不同类型的任务数据缓存至第一应用的缓存资源中对应类型的存储介质中;
当缓存策略包括数据一致性策略时,在访问任一缓存空间中的任务数据时,对所访问的任务数据执行加锁操作。
可选地,该装置400还用于:
获取输入输出IO请求;
如果IO请求所访问的数据为映射目录信息所指示的第一目录下的数据,则执行根据缓存策略,访问第一应用的缓存资源的步骤。
可选地,该装置400还用于:
获取多个应用中每个应用的缓存资源中待迁移至存储***的数据的带宽需求,多个应用包括第一应用;
根据带宽需求,为第一应用的缓存资源中的待迁移数据分配IO带宽;
根据IO带宽,将第一应用的缓存资源中的待迁移数据存储至存储***中。
根据本发明本申请实施例的数据访问装置400可对应于执行本发明本申请实施例中描述的方法,并且数据访问装置400中的各个单元的上述和其它操作和/或功能分别为了实现图3中的各个方法中对应节点所执行的相应流程,为了简洁,在此不再赘述。
综上所述,在本申请实施例中,根据用户提交的针对第一应用的缓存策略为第一应用调度缓存资源,并根据用户提交的映射目录信息将数据预取至第一应用的缓存资源中。后续,在第一应用运行的过程中,根据该缓存策略来访问第一应用的缓存资源。由此可见,本申请实施例可以感知用户的需求,进而根据用户的需求来控制应用的资源使用情况,从而提升应用性能。
参见图5,本申请实施例提供了一种数据访问的装置500,该装置500可以应用于管理节点中,该装置500包括:
接收模块501,用于执行上述实施例中的步骤301;
调度模块502,用于执行上述实施例中的步骤302和步骤303中向目标计算节点发送缓存策略的操作,以控制目标计算节点执行步骤304至步骤306。
应理解的是,本发明本申请实施例的装置500可以通过中央处理器(centralprocessing unit,CPU)实现,也可以通过专用集成电路(application-specificintegrated circuit,ASIC)实现,或可编程逻辑器件(programmable logic device,PLD)实现,上述PLD可以是复杂程序逻辑器件(complex programmable logical device,CPLD),现场可编程门阵列(field-programmable gate array,FPGA),通用阵列逻辑(genericarray logic,GAL)或其任意组合。也可以通过软件实现图3所示的数据访问方法时,装置500及其各个模块也可以为软件模块。
可选地,调度模块502主要用于:
从缓存策略中获取第一应用的多个任务中每个任务的资源需求信息,资源需求信息包括每个任务所需的缓存空间的大小和包括的存储介质的类型;
根据资源需求信息分配执行第一应用的各个任务的目标计算节点;
向目标计算节点发送缓存策略,以指示目标计算节点根据缓存策略中的资源需求信息,从自身的缓存空间中为相应任务分配缓存空间。
可选地,映射目录信息包括第一目录的目录路径,调度模块502主要用于:
向目标计算节点发送第一目录的目录路径,以指示目标计算节点根据第一目录的目录路径,从存储***中预取第一目录下存储的各个任务的子目录下的数据,并将获取的数据存储至第一应用的缓存资源中。
可选地,该装置500还用于:
接收多个计算节点发送的各个应用的缓存资源中待迁移至存储***的数据的带宽需求,多个计算节点包括目标计算节点;
根据带宽需求,为第一应用的缓存资源中的待迁移数据分配IO带宽;
向目标计算节点发送为第一应用分配的IO带宽,以指示目标计算节点根据为第一应用分配的IO带宽,将第一应用的缓存资源中的待迁移数据存储至存储***中。
根据本发明本申请实施例的装置500可对应于执行本发明本申请实施例中描述的方法,并且装置500中的各个单元的上述和其它操作和/或功能分别为了实现图3中的各个方法中对应节点所执行的相应流程,为了简洁,在此不再赘述。
综上所述,在本申请实施例中,管理节点根据用户提交的针对第一应用的缓存策略为第一应用调度缓存资源,并根据用户提交的映射目录信息控制计算节点将数据预取至第一应用的缓存资源中。后续,在第一应用运行的过程中,控制计算节点根据该缓存策略来访问第一应用的缓存资源。由此可见,本申请实施例可以感知用户的需求,进而根据用户的需求来控制应用的资源使用情况,从而提升应用性能。
参见图6,本申请还提供了一种数据访问装置600,如图6所示,该数据访问装置600可以应用于计算节点中,该数据访问装置600包括:
接收模块601,用于接收用户指定的第一应用的缓存策略和映射目录信息,缓存策略用于指示第一应用的缓存需求,映射目录信息为存储***中存储的第一应用的应用数据所在的第一目录的信息;
分配模块602,用于执行前述实施例中的步骤304;
预取模块603,用于执行前述实施例中的步骤305;
访问模块604,用于执行前述实施例中的步骤306。
应理解的是,本发明本申请实施例的数据访问装置600可以通过中央处理器(central processing unit,CPU)实现,也可以通过专用集成电路(application-specificintegrated circuit,ASIC)实现,或可编程逻辑器件(programmable logic device,PLD)实现,上述PLD可以是复杂程序逻辑器件(complex programmable logical device,CPLD),现场可编程门阵列(field-programmable gate array,FPGA),通用阵列逻辑(genericarray logic,GAL)或其任意组合。也可以通过软件实现图3所示的数据访问方法时,数据访问装置600及其各个模块也可以为软件模块。
可选地,分配模块602主要用于:
从缓存策略中获取第一应用的多个任务中每个任务的资源需求信息,资源需求信息包括每个任务所需的缓存空间的大小和包括的存储介质的类型;
根据每个任务的资源需求信息,在自身的缓存资源中为自身所运行的第一任务分配缓存空间,第一任务为在计算节点上运行的多个任务中的任一个任务。
可选地,预取模块603主要用于:
确定第一任务对应的子目录的目录标识;
根据第一目录的目录路径和第一任务对应的子目录的目录标识,从存储***中获取第一目录下存储的第一任务对应的子目录下的数据;
将第一任务对应的子目录下的数据存储至第一任务的缓存空间中。
可选地,如果缓存策略包括分级缓存策略,则预取模块还用于:根据第一任务对应的子目录下的数据的数据类型,将不同的数据存储至不同类型的存储介质中。
可选地,访问模块604主要用于:
获取IO请求;
如果IO请求所访问的数据为映射目录信息所指示的第一目录下的数据,则根据IO请求和缓存策略,访问第一应用的缓存资源。
可选地,如果缓存策略包括数据一致性策略,则访问模块主要用于:
当对第一应用的缓存资源中的数据进行访问时,对所访问的数据执行加锁操作。
可选地,该装置600还用于:当检测到自身为第一应用分配的缓存资源中的数据量达到参考阈值时,向管理节点发送第一应用的带宽需求,带宽需求用于指示将计算节点上第一应用的缓存资源中的待迁移数据迁移至存储***所需的带宽;接收管理节点为第一应用的缓存资源中的待迁移数据分配的IO带宽,根据分配的IO带宽,将第一应用的缓存资源中的待迁移数据迁移至存储***。
根据本发明本申请实施例的装置600可对应于执行本发明本申请实施例中描述的方法,并且装置600中的各个单元的上述和其它操作和/或功能分别为了实现图3中的各个方法中对应节点所执行的相应流程,为了简洁,在此不再赘述。
在本申请实施例中,计算节点能够根据用户指定的第一应用的缓存策略为第一应用分配对应的缓存资源,从而使得第一应用对计算节点的资源使用情况符合用户要求,进而使得第一应用的应用性能能够满足用户需求。在此基础上,在运行第一应用的过程中,可以直接在该计算节点为该第一应用分配的缓存资源中进行数据访问,减少了对存储***的访问,从而减少了计算节点之间的竞争。并且,在为第一应用分配缓存资源之后,计算节点可以根据映射目录信息将存储***中第一目录下的第一应用的应用数据预取至第一缓存空间中,无需用户进行人工数据拷贝,降低了操作复杂度。
本申请还提供一种数据访问***,该***包括管理节点和计算节点,其中,管理节点和计算节点之间的连接方式可以参考图1所示的***中管理节点和计算节点之间的连接方式,管理节点和计算节点的结构可以参考图2所示的计算机设备的结构。在该数据访问***中,管理节点用于实现图3所示的数据访问方法中的管理节点的功能,计算节点用于实现图3所示的数据访问方法中的计算节点的功能,本申请实施例在此不再赘述。
需要说明的是:上述实施例提供的数据访问装置在进行数据读写时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的数据访问装置与数据访问方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意结合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如:同轴电缆、光纤、数据用户线(Digital Subscriber Line,DSL))或无线(例如:红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如:软盘、硬盘、磁带)、光介质(例如:数字通用光盘(Digital Versatile Disc,DVD))、或者半导体介质(例如:固态硬盘(Solid State Disk,SSD))等。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述并不用以限制本申请实施例,凡在本申请实施例的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请实施例的保护范围之内。

Claims (13)

1.一种数据访问方法,其特征在于,所述方法包括:
接收用户提交的针对第一应用的缓存配置请求,所述缓存配置请求包括缓存策略和映射目录信息,所述缓存策略用于指示所述第一应用的缓存需求,所述映射目录信息为存储***中存储的所述第一应用的应用数据所在的第一目录的信息;
根据所述缓存策略,为所述第一应用调度缓存资源;
根据所述映射目录信息,将所述第一应用的应用数据预取至所述第一应用的缓存资源中;
在运行所述第一应用的过程中,根据所述缓存策略,访问所述第一应用的缓存资源。
2.根据权利要求1所述的方法,其特征在于,所述根据所述缓存策略,为所述第一应用调度缓存资源,包括:
根据所述缓存策略确定所述第一应用的多个任务中每个任务的资源需求信息,所述资源需求信息包括每个任务所需的缓存空间的大小和包括的存储介质的类型;
根据每个任务的资源需求信息,为每个任务分配缓存空间。
3.根据权利要求1所述的方法,其特征在于,所述映射目录信息包括所述第一目录的目录路径,所述根据所述映射目录信息,将所述第一应用的应用数据预取至所述第一应用的缓存资源中,包括:
确定所述第一应用的多个任务中每个任务对应的子目录的目录标识;
根据所述第一目录的目录路径和每个任务对应的子目录的目录标识,从所述存储***中获取所述第一目录下存储的每个任务对应的子目录下的数据;
将每个任务对应的子目录下的数据存储至所述第一应用的缓存资源中。
4.根据权利要求2或3所述的方法,其特征在于,所述根据所述缓存策略,访问所述第一应用的缓存资源,包括:
当所述缓存策略包括分级缓存策略时,根据所述分级缓存策略,将所述第一应用的每个任务的不同类型的任务数据缓存至所述第一应用的缓存资源中对应类型的存储介质中;
当所述缓存策略包括数据一致性策略时,在访问任一缓存空间中的数据时,对所访问的任务数据执行加锁操作。
5.根据权利要求1-4任一所述的方法,其特征在于,所述根据所述缓存策略,访问所述第一应用的缓存资源之前,还包括:
获取输入输出IO请求;
如果所述IO请求所访问的数据为所述映射目录信息所指示的所述第一目录下的数据,则执行所述根据所述缓存策略,访问所述第一应用的缓存资源的步骤。
6.根据权利要求1-5任一所述的方法,所述方法还包括:
获取多个应用中每个应用的缓存资源中待迁移至所述存储***的数据的带宽需求,所述多个应用包括所述第一应用;
根据所述带宽需求,为所述第一应用的缓存资源中的待迁移数据分配IO带宽;
根据所述IO带宽,将所述第一应用的缓存资源中的待迁移数据存储至所述存储***中。
7.一种数据访问装置,其特征在于,所述装置包括:
接收模块,用于接收用户提交的针对第一应用的缓存配置请求,所述缓存配置请求包括缓存策略和映射目录信息,所述缓存策略用于指示所述第一应用的缓存需求,所述映射目录信息为存储***中存储的所述第一应用的应用数据所在的第一目录的信息;
调度模块,用于根据所述缓存策略,为所述第一应用调度缓存资源;
预取模块,用于根据所述映射目录信息,将所述第一应用的应用数据预取至所述第一应用的缓存资源中;
访问模块,用于在运行所述第一应用的过程中,根据所述缓存策略,访问所述第一应用的缓存资源。
8.根据权利要求7所述的装置,其特征在于,所述调度模块主要用于:
根据所述缓存策略确定所述第一应用的多个任务中每个任务的资源需求信息,所述资源需求信息包括每个任务所需的缓存空间的大小和包括的存储介质的类型;
根据每个任务的资源需求信息,为每个任务分配缓存空间。
9.根据权利要求7所述的装置,其特征在于,所述映射目录信息包括所述第一目录的目录路径,所述预取模块主要用于:
确定所述第一应用的多个任务中每个任务对应的子目录的目录标识;
根据所述第一目录的目录路径和每个任务对应的子目录的目录标识,从所述存储***中获取所述第一目录下存储的每个任务对应的子目录下的数据;
将每个任务对应的子目录下的数据存储至所述第一应用的缓存资源中。
10.根据权利要求8或9所述的装置,其特征在于,所述访问模块主要用于:
当所述缓存策略包括分级缓存策略时,根据所述分级缓存策略,将所述第一应用的每个任务的不同类型的任务数据缓存至所述第一应用的缓存资源中对应类型的存储介质中;
当所述缓存策略包括数据一致性策略时,在访问任一缓存空间中的任务数据时,对所访问的任务数据执行加锁操作。
11.根据权利要求7-10任一所述的装置,其特征在于,所述装置还用于:
获取输入输出IO请求;
如果所述IO请求所访问的数据为所述映射目录信息所指示的所述第一目录下的数据,则执行所述根据所述缓存策略,访问所述第一应用的缓存资源的步骤。
12.根据权利要求7-11任一所述的装置,所述装置还用于:
获取多个应用中每个应用的缓存资源中待迁移至所述存储***的数据的带宽需求,所述多个应用包括所述第一应用;
根据所述带宽需求,为所述第一应用的缓存资源中的待迁移数据分配IO带宽;
根据所述IO带宽,将所述第一应用的缓存资源中的待迁移数据存储至所述存储***中。
13.一种计算机可读存储介质,其特征在于,所述存储介质存储有指令,当所述指令在计算机上执行时,使得所述计算机执行上述权利要求1-6任一项所述的数据访问方法。
CN202111010014.8A 2021-08-31 2021-08-31 数据访问方法、装置及存储介质 Pending CN115729438A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202111010014.8A CN115729438A (zh) 2021-08-31 2021-08-31 数据访问方法、装置及存储介质
PCT/CN2022/095010 WO2023029610A1 (zh) 2021-08-31 2022-05-25 数据访问方法、装置及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111010014.8A CN115729438A (zh) 2021-08-31 2021-08-31 数据访问方法、装置及存储介质

Publications (1)

Publication Number Publication Date
CN115729438A true CN115729438A (zh) 2023-03-03

Family

ID=85291204

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111010014.8A Pending CN115729438A (zh) 2021-08-31 2021-08-31 数据访问方法、装置及存储介质

Country Status (2)

Country Link
CN (1) CN115729438A (zh)
WO (1) WO2023029610A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118034613B (zh) * 2024-04-11 2024-06-11 深圳市铨兴科技有限公司 一种存储空间数据智能调度方法、***及存储器

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6185659B1 (en) * 1999-03-23 2001-02-06 Storage Technology Corporation Adapting resource use to improve performance in a caching memory system
US10541940B2 (en) * 2017-05-03 2020-01-21 International Business Machines Corporation Quality of service (QoS) stored procedures
US11055225B2 (en) * 2019-10-01 2021-07-06 Microsoft Technology Licensing, Llc Cache and I/O management for analytics over disaggregated stores
CN113127380A (zh) * 2019-12-31 2021-07-16 华为技术有限公司 部署实例的方法、实例管理节点、计算节点和计算设备

Also Published As

Publication number Publication date
WO2023029610A1 (zh) 2023-03-09

Similar Documents

Publication Publication Date Title
US11349940B2 (en) Server side data cache system
US10303646B2 (en) Memory sharing for working data using RDMA
US10657101B2 (en) Techniques for implementing hybrid flash/HDD-based virtual disk files
US11392428B2 (en) Fork handling in application operations mapped to direct access persistent memory
US10235047B2 (en) Memory management method, apparatus, and system
US8639658B1 (en) Cache management for file systems supporting shared blocks
KR20120068454A (ko) 원격 페이지 폴트 처리 장치 및 그 방법
JP2022539950A (ja) ストレージシステム、メモリ管理方法、および管理ノード
JP2019057151A (ja) メモリシステムおよび制御方法
US11836087B2 (en) Per-process re-configurable caches
US8543770B2 (en) Assigning memory to on-chip coherence domains
US11157191B2 (en) Intra-device notational data movement system
WO2023029610A1 (zh) 数据访问方法、装置及存储介质
CN113138851B (zh) 一种数据管理方法、相关装置及***
CN115562871A (zh) 内存分配管理的方法和装置
US11334496B2 (en) Method and system for providing processor-addressable persistent memory to guest operating systems in a storage system
KR20120124743A (ko) 멀티-코어 기반의 가상화 환경에서 캐쉬 일관성을 제어하는 장치 및 방법
US11940917B2 (en) System and method for network interface controller based distributed cache
US20130318534A1 (en) Method and system for leveraging performance of resource aggressive applications
CN117271107A (zh) 数据处理方法、装置、电子设备以及计算机可读存储介质
CN116982023A (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