CN110447019A - 存储器分配管理器及由其执行的用于管理存储器分配的方法 - Google Patents
存储器分配管理器及由其执行的用于管理存储器分配的方法 Download PDFInfo
- Publication number
- CN110447019A CN110447019A CN201780088590.XA CN201780088590A CN110447019A CN 110447019 A CN110447019 A CN 110447019A CN 201780088590 A CN201780088590 A CN 201780088590A CN 110447019 A CN110447019 A CN 110447019A
- Authority
- CN
- China
- Prior art keywords
- memory
- memory block
- information
- examples
- application
- 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.)
- Granted
Links
- 230000015654 memory Effects 0.000 title claims abstract description 432
- 238000000034 method Methods 0.000 title claims abstract description 53
- 238000012545 processing Methods 0.000 claims abstract description 28
- 238000004590 computer program Methods 0.000 claims description 24
- 230000008901 benefit Effects 0.000 description 17
- 230000008569 process Effects 0.000 description 14
- 230000006870 function Effects 0.000 description 9
- 230000009467 reduction Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 7
- 230000006855 networking Effects 0.000 description 7
- 238000000151 deposition Methods 0.000 description 3
- 238000000926 separation method Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000006073 displacement reaction Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000006116 polymerization reaction Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0284—Multiple user address space allocation, e.g. using different base addresses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0646—Configuration or reconfiguration
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/566—Grouping or aggregating service requests, e.g. for unified processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0813—Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1072—Decentralised address translation, e.g. in distributed shared memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1048—Scalability
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Memory System (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
提供了一种存储器分配管理器及由其执行的用于在数据中心内管理针对应用的存储器分配的方法。数据中心至少包括中央处理单元CPU池和至少一个存储器池。该方法包括:接收(210)与和将被启动的应用相关联的多个实例相关联的信息,其中,各个实例与各个存储器需求相关联,所述信息还包括关于实例之间的内部关系的信息;对于多个实例,基于所接收的信息,确定(230)所需的存储器块的最小数量和相关联的大小,这通过基于两个或更多个实例的各自的存储器需求和/或实例之间的内部关系而识别能够由两个或更多个实例共享的存储器块部分和相关联的大小来确定;以及基于所确定的存储器块的最小数量,向应用的实例分配(240)多个存储器块。
Description
技术领域
本公开涉及数据中心,并且尤其涉及在数据中心内管理存储器分配。
背景技术
分布式计算可被转换为使用多个服务器或处理器来解决问题的系统。分布式计算通过将问题/作业划分成多个子问题来完成作业,其中每个子问题被分配给计算资源集群内的不同处理器。分布式和并行处理被证明是用于处理/查询大规模数据集的最有效方法之一。大规模数据处理中的多个步骤是在多于一个的处理单元之间共享的数据集上完成的。在许多情况下,相同数据或共享数据集的子集被加载并本地保存在分布式和并行处理系统中的服务器中。映射-归约(Map-reduce)编程是这种系统的示例,其中,由映射操作产生的中间数据集在至少两个不同的归约器模块/进程之间共享。Map-reduce是一种公知的模型,用于以分布式方式使用异构并行系统来处理大量数据。
这种应用包括在分布式或共享磁盘中保存的相同内容上运行的一组进程/实例,并被加载到每个进程本地存储器以用于操作(参见图1b)。若干实例产生并耗费大量中间数据来完成特殊任务。一些实例写入/生成数据,这些数据将由只读取相同数据的其余实例使用。
在具有大量分布式服务器的常规数据中心/计算机系统中,所生成的内容通常被本地保存在存储层中,并且将通过联网层被复制到本地存储设备,然后被复制到读取数据以完成任务的消费者实例的存储器。这意味着将复制与需要读取数据的可用实例一样多的内容。
在共享存储设备用于共享数据集的情况下,中间数据需要从生产者(写入)实例缓存/存储器被传送到共享存储设备,共享存储设备本地位于网络中的一个或多个服务器上,并且消费者(读取)实例需要它们的本地缓存/存储器中获取数据副本以对其执行操作。
随着在数据中心内引入被称为“分离式架构”的新的架构设计,当前应用的作业方式可能急剧改变,并且它们可以用相同或者甚至更少量的硬件来实现更好的性能。分离式架构包括若干组件池,诸如一个或多个CPU池、一个或多个存储器池、一个或多个存储设备节点池以及通过非常快速的互连而连接的一个或多个NIC(网络接口卡)池(参见图1a)。这意味着现今的独特且预配置的服务器可能或多或少地在未来的数据中心架构中消失。作为交换,通过组合数据中心中或者甚至在若干地理上不同的数据中心内的可用硬件池的子集,可以动态且按需地创建逻辑服务器。
用于存储和获取中间数据(共享数据集)的已有方案受到常规数据中心的硬件设计的限制并且使用大量不必要的资源。相同的内容被复制了太多次并且对于每个作业,都可以在数据中心内的若干节点中查找到。例如,图1b中的D1将从实例1的缓存向它的本地存储器写入一次,然后写入存储设备。然后,它将在使用该组数据的若干消费者实例(诸如实例4)的本地存储器/缓存中被获取。此外,该事务将消耗大量I/O和网络带宽以将相同的数据发送到将要使用该数据的所有实例。这可能会限制作业处理的速度以及耗费过多不必要的网络带宽和存储器容量,从而可能导致池或服务器之间的互连的某些部分发生拥塞。另一个重要问题是由若干级别的存储器事务以及从存储设备节点获取数据比从RAM慢而引起的延迟。两者之间的联网也增加了这种延迟。
因此,可用的方案适合/匹配用于具有通过网络通信的单独的物理/虚拟服务器的架构,其中每个服务器具有CPU和本地缓存/存储器。服务器还可以具有任何类型的本地存储设备,或者被连接到驻留在内部或外部网络中的若干外部存储设备节点。这些方法对于所提出的新的数据中心硬件架构即分离式硬件类型的架构而言是次优的。分离使能更有效地实现这种应用以实现更好的性能。
发明内容
目的是消除以上概述的至少一些问题。特别地,目的是提供一种存储器分配管理器以及一种由存储器分配管理器执行的用于在数据中心内管理针对应用的存储器分配的方法。这些目的以及其它目的可以通过根据所附独立权利要求提供存储器分配管理器和由存储器分配管理器执行的方法来获得。
根据一方面,提供了一种由存储器分配管理器执行的用于在数据中心内管理针对应用的存储器分配的方法。数据中心至少包括中央处理单元CPU池和至少一个存储器池。该方法包括:接收与和将被启动的应用相关联的多个实例相关联的信息,其中,各个实例与各个存储器需求相关联,所述信息还包括关于实例之间的内部关系的信息;以及对于多个实例,基于所接收的信息,确定所需的存储器块的最小数量和相关联的大小,这通过基于两个或更多个实例的各自的存储器需求和/或实例之间的内部关系而识别能够由两个或更多个实例共享的存储器块部分和相关联的大小来确定。该方法还包括:基于所确定的存储器块的最小数量,向应用的实例分配多个存储器块。
根据一方面,提供了一种用于在数据中心内管理针对应用的存储器分配的存储器分配管理器。数据中心至少包括中央处理单元CPU池和至少一个存储器池。存储器分配管理器被配置为:接收与和将被启动的应用相关联的多个实例相关联的信息,其中,各个实例与各个存储器需求相关联,所述信息还包括关于实例之间的内部关系的信息;以及对于多个实例,基于所接收的信息,确定所需的存储器块的最小数量和相关联的大小,这通过基于两个或更多个实例的各自的存储器需求和/或实例之间的内部关系而识别能够由两个或更多个实例共享的存储器块部分和相关联的大小来确定。存储器分配管理器进一步被配置为:基于所确定的存储器块的最小数量,向应用的实例分配多个存储器块。
由存储器分配管理器执行的方法和存储器分配管理器具有若干优点。一个可能的优点是通过创建更少的相同数据的副本可以减少在新的数据中心环境中存储器资源的使用。另一个可能的优点是可以减少联网事务,这使得数据中心网络间/内的业务减少。再一个可能的优点是通过直接从共享RAM访问数据而不是从驻留在速度和容量受限的网络中的某处的存储设备节点中获取数据来减少延迟。又一个可能的优点是可以改进作业性能并且可以加速作业执行时间,这意味着可以用更少量的资源并且在更短的时间内执行更多的任务。
附图说明
现在将结合附图更详细地描述实施例,其中:
图1a是根据分离式硬件架构的数据中心的示意性图示。
图1b是对相同的内容进行操作的应用的实例的图示。
图2a是根据示例性实施例的由存储器分配管理器执行的用于管理存储器分配的方法的流程图。
图2b是根据另一个示例性实施例的由存储器分配管理器执行的用于管理存储器分配的方法的流程图。
图3a是本文公开的方案的示例性结构的图示。
图3b示出是来自应用管理器的请求的示例的表1。
图3c示出该示例的表2。
图3d示出该示例的表3。
图3e示出该示例的表4。
图3f是根据该示例的分配的图示。
图3g是示例性实现的流程图,其中示出由不同实体执行的步骤,并且因此不仅仅示出由存储器分配管理器执行的步骤。
图4是根据示例性实施例的用于管理存储器分配的存储器分配管理器的框图。
图5是根据另一个示例性实施例的用于管理存储器分配的存储器分配管理器的框图。
图6是根据示例性实施例的用于管理存储器分配的存储器分配管理器中的装置的框图。
具体实施方式
简而言之,提供了一种由存储器分配管理器执行的方法和一种存储器分配管理器以用于在数据中心内管理针对应用的存储器分配。存储器分配管理器可以分配存储器的共享部分(其被视为用于访问它的每个实例的本地存储器)以放置将在分布式和并行计算系统/应用中的多个实例或者甚至CPU(物理/虚拟)中使用的共享数据集。
存储器分配管理器使用关于将被启动的应用、关于与该应用相关联的各个实例以及实例之间的内部关系的信息。至少部分地基于这种信息,存储器分配管理器可以识别哪些实例将共享哪些存储器,并执行针对这些实例的存储器分配。
本文的实施例涉及一种由存储器分配管理器执行的用于在数据中心内管理针对应用的存储器分配的方法。数据中心至少包括中央处理单元CPU池和至少一个存储器池。现在将参考图2a和2b描述这种方法的实施例。
图2a示出了该方法,其包括:接收210与和将被启动的应用相关联的多个实例相关联的信息,其中,各个实例与各个存储器需求相关联,所述信息还包括关于实例之间的内部关系的信息;以及对于多个实例,基于所接收的信息,确定230所需的存储器块的最小数量和相关联的大小,这通过基于两个或更多个实例的各自的存储器需求和/或实例之间的内部关系而识别能够由两个或更多个实例共享的存储器块部分和相关联的大小来确定。该方法还包括:基于所确定的存储器块的最小数量,向应用的实例分配240多个存储器块。
数据中心可以包括如图1a中所示的多个不同的池。实例、主机或逻辑服务器被分配或包括至少来自相应的一个或多个存储器池和一个或多个CPU池的存储器资源和CPU资源。所分配的资源(例如,存储器资源)的量及它们的特性基于实例要求即实例属于应用而定义。存储器需求对于与应用相关联的不同实例可以是单独的,这意味着各个实例(以及应用)可能需要不同数量的存储器、不同类型的存储器和/或不同比率的不同类型和大小的存储器。
存储器分配管理器接收210与和将被启动的应用相关联的多个实例相关联的信息,其中,各个实例与各个存储器需求相关联,所述信息还包括关于实例之间的内部关系的信息。
实例具有内部关系。在非限制性、说明性且简化的示例中,实例A可以向将由实例C和E读取的存储器条写入信息;并且实例B可以在将由实例A、C和D读取的另一个存储器条上写入信息。这意味着一个或多个实例可以读取并且使用由一个或多个其它实例存储/写入的数据。通过接收关于实例之间的内部关系的信息,存储器分配管理器获得例如哪些实例需要单独的存储器条以写入/存储数据,以及哪些实例需要读取/使用哪些存储器条中的数据的概况。
然后,存储器分配管理器可以使用该信息,以对于多个实例,基于所接收的信息,确定220所需的存储器块的最小数量和相关联的大小,这通过基于两个或更多个实例的各自的存储器需求和/或实例之间的内部关系而识别能够由两个或更多个实例共享的存储器块部分和相关联的大小来确定。回到上述非限制性、说明性且简化的示例,实例A和B需要一定数量的存储器以写入/存储数据,而实例C、D和E只需要能够访问在与实例A和B相关联的存储器部分中写入/存储的数据。因此,存储器块的最小数量和相关联的大小取决于用于实例A和B的写入/存储数据所需的存储器数量。因此,与实例A相关联的存储器部分可以与实例A和E共享,与实例B相关联的存储器部分可以与实例A、C和D共享。因此,基于它们各自的存储器需求和/或实例之间的内部关系,存储器分配管理器识别可由两个或更多个实例共享的存储器块部分和相关联的大小。继续上述非限制性、说明性且简化的示例,存储器分配管理器例如可以确定总共需要两个存储器块,一个用于实例A以写入(相同的块用于C和E以读取),一个块用于实例B以写入(与C和D共享)。
然后,存储器分配管理器可以基于所确定的存储器块的最小数量,向应用的实例分配230多个存储器块。继续上述非限制性、说明性且简化的示例,存储器分配管理器因此可以向实例A、B、C、D和E分配2个存储器块。
由存储器分配管理器执行的方法具有若干优点。一个可能的优点是通过创建更少的相同数据的副本可以减少在新的数据中心环境中存储器资源的使用。另一个可能的优点是可以减少联网事务,这使得数据中心网络间/内的业务减少。再一个可能的优点是通过直接从共享RAM访问数据而不是从驻留在速度和容量受限的网络中的某处的存储设备节点中获取数据来减少延迟。又一个可能的优点是可以改进作业性能并且可以加速作业执行时间,这意味着可以用更少量的资源并且在更短的时间内执行更多的任务。
所接收的与多个实例相关联的信息还可以包括关于应用类型的信息,其中,确定220所需的存储器块的最小数量和相关联的大小还可以基于该应用类型的实例之间的已知关系。
不同的应用可以包括对存储器的类型和大小的不同需求的不同实例。通过了解应用的类型,存储器分配管理器可以使用关于应用的知识以及实例之间的关系,以确定所需的存储器块的最小数量和相关联的大小。
仅作为非限制性、简化且说明性的示例,“应用1”与8个实例相关联,每个实例需要x兆字节的可写入存储器,其中,需要分配8个大小为x的存储器块以写入/存储相关数据,13个实例需要读取和使用由这8个实例写入的所有数据,这意味着每个实例至少需要8x的存储器大小。这是存储器分配管理器如何获得与和将被启动的应用相关联的多个实例相关联的信息的示例,其中,各个实例与各个存储器需求相关联,所述信息还包括关于实例之间的内部关系的信息。因此,接收210与和将被启动的应用相关联的多个实例相关联的信息可以包括接收关于应用类型的信息。
在另一个示例中,回到上述非限制性、简化且说明性的示例,“应用1”可以具有基本版本和替代版本。进而,这可能意味着基本版本是在上面给出的版本,并且与和将被启动的应用相关联的多个实例相关联的信息(其中,各个实例与各个存储器需求相关联,所述信息还包括关于实例之间的内部关系的信息)还向存储器分配管理器通知关于“应用1”的版本。
因此,存储器分配管理器可以组合所接收的与和将被启动的应用相关联的多个实例相关联的信息,(其中,各个实例与各个存储器需求相关联,所述信息还包括关于实例之间的内部关系的信息)和关于应用类型的信息,以进一步基于该应用类型的实例之间的已知关系,确定220所需的存储器块的最小数量和相关联的大小。
确定220所需的存储器块的最小数量和相关联的大小还可以基于关于应用的先前知识。
可能有不同的因素在确定存储器块的最小数量和相关联的大小中起作用。如上所述,不同的应用可以包括不同的实例,因此,还需要向应用分配不同类型和大小的存储器。
存储器分配管理器可能在先前的时间点已经向同一应用分配了存储器块,并且可因此具有关于应用及其实例的先前知识。因此,存储器分配管理器可以在确定用于应用的所需的存储器块的最小数量和相关联的大小时使用这种信息。
向应用的实例分配230所需的存储器包括:向存储器管理控制器MMC通知所确定的所需的存储器块的最小数量和相关联的大小,以及接收针对所需的存储器块的最小数量的具有至少在存储器单元池中的地址的存储器块的分配。
MMC可以负责实际执行向实例的存储器块分配以及处理存储器池的性能。例如,通过直接向MMC发送关于所确定的所需的存储器的最小数量和相关联的大小的信息,或者通过向一个或多个中间节点或实体发送将信息以转发到MMC,存储器分配管理器可以直接或间接地通知MMC。
然后,MMC可以通过联系相关的存储器池(例如,与相应的池相关联的存储器管理器单元)来初始化/管理存储器分配,并且用每个被分配的块的位置和物理地址来回复存储器分配管理器。由于存储器块在多个实例间共享,因此,由应用请求的存储器块的数量远远大于存储器分配管理器所要求的数量。
如图2b中所示,该方法还可以包括存储249关于应用和所确定的所需的存储器块的最小数量和/或向应用分配的存储器块的信息。
通过关于应用和所确定的所需的存储器块的最小数量和/或向应用分配的存储器块的信息,存储器分配管理器可以在再次启动同一应用的稍后阶段访问该信息。
如上所述,存储器分配管理器可以在确定用于应用的所需的存储器块的最小数量和相关联的大小时时使用这种信息。
存储器需求可以至少与“只写入”、“只读取”和“读取和写入”类型以及存储器容量相关联。
不同的存储器可以与不同的能力和不同的需求相关联。例如,只读取”的存储器需求意味着实例只需要读取存储器的内容;“只写入”意味着实例只需要在存储器中写入/存储数据而无需在稍后的时间读取它;“读取和写入”的存储器需求意味着具有这种存储器需求的实例需要在存储器中写入/存储数据并且还在稍后的时间访问该数据(读取该数据)。
回到上述具有实例A、B、C、D和E的应用的非限制性、简化且说明性的示例,实例A具有“读取和写入”的存储器需求,实例B具有“只写入”的存储器需求,实例C、D和E具有“只读取”的存储器需求。
在一个示例中,需要写入类型的存储器的实例(其中,该实例被允许向该存储器写入信息)被分配根据所接收的与和将被启动的应用相关联的多个实例相关联的信息的大小的存储器块。
为了确定需要写入类型的存储器的实例被分配了足够且正确的存储器,这种实例被分配根据所接收的与和将被启动的应用相关联的多个实例相关联的信息的大小的存储器块。
回到上述具有实例A、B、C、D和E的应用的非限制性、简化且说明性的示例,实例A可能需要存储器以写入1.5兆字节,实例B可能需要存储器以写入2兆字节。如果是这样,则为实例A分配至少1.5兆字节的存储器块,其中实例A可写入数据;以及为实例B分配至少2兆字节的存储器块,其中实例B可写入数据。
在另一个示例中,需要读取与需要写入类型的存储器的一个或多个实例相关联的存储器块的内容的一个或多个实例被分配与需要写入类型的存储器的一个或多个实例相同的存储器块,而不是该存储器块或那些存储器块的单独副本。
为了不浪费存储器并且最小化将要分配的存储器的数量,需要从被分配给具有对它们的存储器块的写入权限的实例的存储器读取数据的实例可不被分配具有来自被分配给具有对它们的存储器块的写入权限的实例的存储器块的复制内容的单独的存储器块。相反,它们被分配与需要写入类型的存储器的一个或多个实例相同的存储器块。
再次回到上述具有实例A、B、C、D和E的应用的非限制性、简化且说明性的示例,实例A被分配至少1.5兆字节的存储器块,其中实例A可写入数据。然而,由于实例A还需要读取被分配给实例B的存储器块即其中实例B可写入数据的2兆字节的存储器块的数据,因此,实例A也被分配实例B的存储器块而不是被分配又一个具有从实例B的存储器块复制的相同信息的存储器块。类似地,实例B被分配至少2兆字节的存储器块,其中实例B可写入数据。由于实例C需要读取实例A的存储器块和实例B的存储器块两者的数据,因此,实例C被分配这两个存储器块(只具有读取权限)。需要读取实例B的存储器块的数据的实例D被分配实例B的存储器块。需要读取实例A的存储器块的数据的实例E被分配实例A的存储器块。
在又一个示例中,需要访问相同存储器块内容的两个或更多个实例被分配相同的存储器块,而不是该存储器块或那些存储器块的单独副本。
通过向只需要读取需要向存储器块写入数据的实例的存储器块的内容的实例分配需要向它们的存储器块写入数据的实例的存储器块,可以节省许多存储器容量。
例如,在上述非限制性、简化且说明性的示例中,不需要将实例A的存储器块复制两次(一次用于实例C,一次用于实例E,从而节省了2*1.5=3兆字节的存储器),以及不需要将实例B的存储器块复制三次(一次用于A,一次用于C,一次用于D,从而节省了3*2=6兆字节的存储器)。
然而,在一个示例中,实例A的存储器块可被复制一次成被分配给实例C和E两者的存储器块。由于并非所有各个实例都被分配了实例A的存储器块的单独副本,因此,在存储器方面仍然具有很大的节省。同样地,实例B的存储器块可被复制一次成被分配给实例A、C和D的存储器块。
现在将参考图3a-3g来描述实施例。本文公开的方案提供了一种用于通过为具有共享数据集的实例分配可被视为用于每个实例或进程的本地存储器的相同的存储器块来增强大数据分析算法的性能的方法及存储器分配管理器。这允许在任务执行期间减少计算资源之间的存储器和联网事务以及减少与每个应用相关的相同数据的副本数量。
新的数据中心硬件架构依赖于硬件资源分离的原理。硬件分离原则将CPU、存储器和网络资源视为单独的且模块化的组件。这些资源倾向于以基于池的方式组织,即,它们可以是CPU单元池、存储器单元池、以及网络接口池。在这个意义上,主机(也称为逻辑服务器或实例)由一个或多个池内的单元/资源的子集组成。
例如,对于分离式架构中的存储器池,每个存储器池可以服务多个主机(通过从池向每个主机提供专用存储器单元或存储器块),并且单个主机最终可消耗来自多个存储器池的存储器资源。
这种新架构使得有可能为各种应用提供新的实现方式,从而实现更高的效率和资源利用。在分布式系统中进行大规模数据处理的情况下,通常存在巨大数量的数据集,这些数据集在多于两个(许多)的处理单元之间共享。此外,还存在使用大型数据库的“大”数据应用,其对相同的数据集使用若干次迭代,这也可以受益于这种新的数据中心架构。
在本公开中公开的方案在本地存储器、存储量、I/O和联网事务以及数据中心联网间/内的业务负荷方面最小化了用于使用分离式概念和架构的大规模数据处理作业/应用的资源的使用。此外,本文描述的方案还可以经由绕过与各种存储器级别和存储设备节点的交互来减少运行与这种作业有关的任务的延迟。
共享存储器单元可以是随机存取存储器RAM或者可由多个主机/进程/VM/应用(通常也称为实例)访问的任何快速的存储器块的一部分。
存储器块复制品:基于例如与应用相关联的作业的大小、以及在每个任意时间点所涉及的并行任务和进程的数量,可以创建多于一个的共享存储器块,其中,它们的内容的全部或一部分彼此相似。
本文公开的方案包括被称为存储器分配管理器的实体,其负责转换应用要求和实例图以可被MMC理解以为具有公共数据集的实例/进程分配共享存储器块。共享存储器块从存储器(例如,RAM、高速非易失性存储器:NVMe等,其可以位于同一池中,或者位于数据中心内的若干池中)池中进行选择。该共享存储器被视为用于每个与实例相关联的CPU的本地存储器块,并且CPU与存储器块之间的通信可以通过使用各种协议的快速互连来完成,例如,高速外围组件互连、串行高级技术附件:SATA、Intel的快速路径互连、或任何其它适合的协议。
图1a示出了包括分离式架构的数据中心的示例。CPU池(210-x)、存储器池(220-x)、网络接口卡:NIC池(230-x)以及存储设备池(240-x)在主机(250)之间共享。每个池可以没有、具有一个或多个管理单元。例如,CPU池可包括一个或多个MMU。MMU负责转换存储器地址,并且它与CPU相关联(通过被实现为CPU的一部分,或者被实现为单独的电路)。存储器池可以与一个或多个MMC相关联,MMC负责处理存储器节点(221-x)的性能。NIC池(230-x)被用作用于池中的任何组件即在它们的执行期间需要外部通信的CPU、存储器、存储设备节点的网络接口。存储设备池(240)可以包括用于存储用户的抵抗数据(resistant data)的一组存储设备节点。快速互连(204)连接多个资源。
进而,不同的主机、逻辑服务器和/或进程负责运行包括在前面提及的硬件层上面的多个实例的各种应用(可以在硬件资源上面使用虚拟化层以用于分离应用和硬件,但它超出了本公开的范围)。
图3a示出了本文公开的方案的示例性结构,其主要侧重于负责处理同一应用的实例间的存储器共享的存储器分配管理器。应用管理器负责管理传入的作业,并且在可接受的时间窗口内完成作业。因此,当接收到新作业时,应用管理器可以向存储器分配管理器发送应启动的实例的列表包括实例的数量和特性以完成作业。
然后,基于来自应用的实例列表,基于在一段时间内学习的应用的先前知识或者在实例列表中包括的关于实例之间的内部关系的信息,存储器分配管理器可以构建共享存储器块的图。存储器分配管理器与MMC和MMU通信,MMC和MMU负责管理存储器地址,以及基于聚合要求在可用资源池中选择适合的存储器单元。
然后,存储器分配管理器可以将图映射到MMC可读的存储器块需求,以及向MMC发送关于需要分配用于应用及其实例的块的大小和数量的聚合要求。然后,MMC可以通过联系相关的存储器池(例如,每个池中的存储器管理器单元)来初始化/管理存储器分配,并且用每个被分配的块的位置和物理地址来回复存储器分配管理器。由于存储器块在多个实例间共享,因此,由应用及其实例请求的存储器块的数量远远大于存储器分配管理器所要求的数量。
此时,存储器分配管理器可以将共享/分配的存储器块映射到应用所要求的实例,这些实例将被发送到MMU以用于创建整个实例,并更新与每个实例相关的存储器地址。
存储器分配管理器用作应用管理器/调度器与硬件层管理功能之间的薄层(桥接实体),其中,在MMC、MMU和应用中不需要重大改变。
存储器块是写保护的,并且一次只可以由一个实例写入,但是可以被多个实例读取。如果读取相同数据/存储器的实例的数量增加或一些实例远离当前共享块的位置,则存储器分配管理器可以在某个其它位置创建所需存储器块的复制副本,并通过MMU更新实例的物理地址。由于只允许一个实例在指定的存储器块中写入,因此将保护数据不被覆盖,并且由于若干实例从同一位置进行读取,因此不存在数据同步的问题。
因此,本文公开的方案提供了一种实现更好的资源利用和更低的延迟的方法和存储器分配管理器,尤其是在具有共享数据集或使用相同数据集进行交互操作的大规模数据处理应用的情况下。在该上下文中,映射-归约功能是广泛用于分布式系统中以用于大数据集的并行处理的功能之一。服务链模型可以作为另一个广泛使用的示例,其中,实例使用链中的一些其它实例产生的数据集。现在将在映射-归约功能的情况下考虑其实现来描述本文公开的方案。然而,它可以用于任何类型的应用、算法、或者使用一组数据多于一次或使用多于两个的实例的一组数据的使用实例。
当应用管理器(或映射-归约情况下的主节点)接收到作业时,它计算所需要资源的数量(例如,用CPU数量和RAM数量定义的映射器和归约器的数量)。然后,它向存储器分配管理器发送所估计的资源以进行分配/启动。该请求可以与图3b的表1中所示的内容类似。
存储器分配管理器可以通过估计包含共享资源的存储器块的最小数量来聚合所请求的存储器(参见图3c的表2)。由于所有归约器都需要读取映射器所产生的相同的中间数据,因此,至少一个具有读取权限的共享存储器块对于归约器就足够了(如果归约器数量很高或者一些归约器远离当前数据副本,则可读块可被复制成多于一个,但仍然少于归约器的数量)。
然后,存储器分配管理器可以向MMC发送表2的内容,以分配/实例化所请求的块,并返回物理地址(参见图3d的表3)。
然后,存储器分配管理器可以将来自应用的实例请求映射到被分配的存储器块,并向MMC发送信息(图3e的表4),以分配CPU并实例化整个进程。MMC还负责存储器地址转换以用于使CPU能够执行应用。
在图3f中描绘了由这种分配产生的实例,其中,CPU1、2和N(在附图的顶部)与映射器相关,其余的(在附图的底部)与归约器相关。
图3g是示例性实现的流程图,其中示出了由不同实体执行的步骤并且因此不仅仅示出了由存储器分配管理器执行的步骤。
图3g在该示例中示出了应用管理器接收与多个单独的实例相关联的工作负荷,也称为作业。应用管理器向存储器分配管理器发送具有多个实例和相关资源的列表,存储器分配管理器在接收时通过定义(或识别)共享相同数据的实例来聚合一定数量的存储器块。然后,存储器分配管理器基于所识别的共享相同数据的实例,向MMC发送存储器分配请求。MMC依次实例化存储器块,并将存储器块的物理地址返回到存储器分配管理器。存储器分配管理器可将存储器块的物理地址映射到从应用管理器接收的列表上的实例,并将结果发送到MMU。这使得MMU能够实例化CPU进程,并更新用于CPU的存储器地址。一旦该操作被执行,就可以开始执行在应用管理器处接收的作业(例如,应用)。
本文的实施例还涉及用于在数据中心内管理针对应用的存储器分配的存储器分配管理器。数据中心包括至少一个CPU池和至少一个存储器池。存储器分配管理器具有与上述由存储器分配管理器执行的方法相同的技术特征、目标和优点。仅仅简要描述了存储器分配管理器以避免不必要的重复。现在将参考图4和5来描述这种存储器分配管理器的示例性实施例。
图4和图5示出了存储器分配管理器400,500,其被配置为:接收与和将被启动的应用相关联的多个实例相关联的信息,其中,各个实例与各个存储器需求相关联,所述信息还包括关于实例之间的内部关系的信息;以及对于多个实例,基于所接收的信息,确定所需的存储器块的最小数量和相关联的大小,这通过基于两个或更多个实例的各自的存储器需求和/或实例之间的内部关系而识别能够由两个或更多个实例共享的存储器块部分和相关联的大小来确定。存储器分配管理器400,500进一步被配置为:基于所确定的存储器块的最小数量,向应用的实例分配多个存储器块。
可以采用不同方式来实现或实践存储器分配管理器400,500。在图4中示出了示例性实现。图4示出了存储器分配管理器400包括处理器421和存储器422,存储器包括指令,例如采用计算机程序423,这些指令在由处理器421执行时使得存储器分配管理器400接收与和将被启动的应用相关联的多个实例相关联的信息,其中,各个实例与各个存储器需求相关联,所述信息还包括关于实例之间的内部关系的信息;以及对于多个实例,基于所接收的信息,确定所需的存储器块的最小数量和相关联的大小,这通过基于两个或更多个实例的各自的存储器需求和/或实例之间的内部关系而识别能够由两个或更多个实例共享的存储器块部分和相关联的大小来确定。存储器422还包括指令,例如采用计算机程序423,这些指令在由处理器421执行时使得存储器分配管理器400基于所确定的存储器块的最小数量,向应用的实例分配多个存储器块。
图4还示出了存储器分配管理器400包括存储器410。应当指出,图4仅仅是示例性图示,并且存储器410可以可选地是存储器422的一部分或者是在数据中心中可操作的存储器分配管理器400的另一个存储器。存储器例如可以包括与存储器分配管理器400有关、与存储器分配管理器400的操作的统计数据有关的信息,这只是给出一些说明性示例。图4还示出了存储器分配管理器400包括处理装置420,处理装置420包括存储器422和处理器421。此外,图4示出了存储器分配管理器400包括通信单元430。通信单元430可以包括接口,存储器分配管理器400通过该接口与数据中心的资源、装置或实体进行通信。图4还示出了存储器分配管理器400包括其它功能440。其它功能440可以包括存储器分配管理器400执行本文未公开的不同任务所需的软件的硬件。
在图5中示出了存储器分配管理器400,500的替代示例性实现。图5示出了存储器分配管理器500包括接收单元503,其用于接收与和将被启动的应用相关联的多个实例相关联的信息,其中,各个实例与各个存储器需求相关联,所述信息还包括关于实例之间的内部关系的信息;以及确定单元504,其用于对于多个实例,基于所接收的信息,确定所需的存储器块的最小数量和相关联的大小,这通过基于两个或更多个实例的各自的存储器需求和/或实例之间的内部关系而识别能够由两个或更多个实例共享的存储器块部分和相关联的大小来确定。图5还示出了存储器分配管理器500包括分配单元505,其用于基于所确定的存储器块的最小数量,向应用的实例分配多个存储器块。
在图5中还示出了存储器分配管理器500包括通信单元501。通过该单元,存储器分配管理器500适于与数据中心中的其它装置和/或实体通信。存储器分配管理器500还可以包括用于存储数据的非易失性存储器502。此外,存储器分配管理器500可以包括控制或处理单元(未示出),控制或处理单元又连接到不同的单元503-505。应当指出,这仅仅是说明性示例,并且存储器分配管理器500可以包括采用与图5中所示的单元相同的方式来执行存储器分配管理器500的功能的更多、更少或其它的单元或模块。
应当注意,图5仅仅在逻辑意义上示出了存储器分配管理器500中的各种功能单元。在实践中的功能可以使用任何适合的软件和硬件装置/电路等来实现。因此,实施例通常不限于所示的存储器分配管理器500和功能单元的结构。因此,可以采用许多方式来实现先前描述的示例性实施例。例如,一个实施例包括在其上存储有指令的计算机可读介质,这些指令可由控制或处理单元执行以用于在存储器分配管理器500中执行或由存储器分配管理器500执行方法步骤。可由计算系统执行并存储在计算机可读介质上的指令执行如权利要求中所述的存储器分配管理器500的方法步骤。
存储器分配管理器具有与由存储器分配管理器执行的方法相同的可能的优点。一个可能的优点是通过创建更少的相同数据的副本可以减少在新的数据中心环境中存储器资源的使用。另一个可能的优点是可以减少联网事务,这使得数据中心网络间/内的业务减少。再一个可能的优点是通过直接从共享RAM访问数据而不是从驻留在速度和容量受限的网络中的某处的存储设备节点中获取数据来减少延迟。又一个可能的优点是可以改进作业性能并且可以加速作业执行时间,这意味着可以用更少量的资源并且在更短的时间内执行更多的任务。
根据实施例,所接收的与多个实例相关联的信息还包括关于应用类型的信息,其中,存储器分配管理器400,500被配置为还基于该应用类型的实例之间的已知关系,确定所需的存储器块的最小数量和相关联的大小。
根据又一个实施例,存储器分配管理器400,500进一步被配置为:基于关于应用的先前知识,确定所需的存储器块的最小数量和相关联的大小。
根据再一个实施例,存储器分配管理器400,500进一步被配置为:通过以下操作向应用的实例分配所需的存储器:向存储器管理控制器MMC通知所确定的所需的存储器块的最小数量和相关联的大小,以及接收针对所需的存储器块的最小数量的具有至少在存储器单元池中的地址的存储器块的分配。
根据另一个实施例,存储器分配管理器400,500进一步被配置为:存储关于应用和所确定的所需的存储器块的最小数量和/或向应用分配的存储器块的信息。
根据再一个实施例,存储器需求至少与“只写入”、“只读取”和“读取和写入”类型以及存储器容量相关联。
根据又一个实施例,需要写入类型的存储器的实例被分配根据所接收的与和将被启动的应用相关联的多个实例相关联的信息的大小的存储器块,其中,实例被允许向存储器写入信息。
根据又一个实施例,需要读取与需要写入类型的存储器的一个或多个实例相关联的存储器块的内容的一个或多个实例被分配与需要写入类型的存储器的一个或多个实例相同的存储器块,而不是存储器块的单独副本。
根据另一个实施例,需要访问相同存储器块内容的两个或更多个实例被分配相同的存储器块,而不是存储器块的单独副本。
图6示意性地示出了在数据中心中可操作的存储器分配管理器500中的装置600的实施例。在存储器分配管理器500中的装置600中包括例如具有DSP的处理单元606。处理单元606可以是执行本文描述的过程的不同动作的单个单元或多个单元。存储器分配管理器500中的装置600还可以包括用于从其它实体或装置接收信号的输入单元602,以及用于向其它实体或装置提供信号的输出单元604。输入单元和输出单元可被设置为集成实体或者如图5的示例中所示的一个或多个接口501。
此外,存储器分配管理器500中的装置600包括至少一个采用非易失性存储器形式的计算机程序产品608,例如,EEPROM、闪存和硬盘驱动器。计算机程序产品608包括计算机程序610,计算机程序610包括代码,其在存储器分配管理器500中的装置600中的处理单元606中执行时使得存储器分配管理器500执行例如先前结合图2a和图2b描述的过程的动作。
计算机程序610可被配置为在计算机程序模块610a-610e中构造的计算机程序代码。因此,在示例性实施例中,存储器分配管理器500中的装置600的计算机程序中的代码包括接收单元或模块,其用于接收与和将被启动的应用相关联的多个实例相关联的信息,其中,各个实例与各个存储器需求相关联,所述信息还包括关于实例之间的内部关系的信息;以及确定单元或模块,其用于对于多个实例,基于所接收的信息,确定所需的存储器块的最小数量和相关联的大小,这通过基于两个或更多个实例的各自的存储器需求和/或实例之间的内部关系而识别能够由两个或更多个实例共享的存储器块部分和相关联的大小来确定。计算机程序还包括分配单元或模块,其用于基于所确定的存储器块的最小数量,向应用的实例分配多个存储器块。
计算机程序模块可以基本上执行图2a和图2b中所示的流程的动作,以模拟数据中心中的存储器分配管理器500。换句话说,当不同的计算机程序模块在处理单元606中执行时,它们可以对应于图5的单元503-505。
虽然在上面结合图5公开的相应实施例中的代码被实现为计算机程序模块,其在处理单元中执行时使得存储器分配管理器执行在上面结合上述附图而描述的动作,但在替代实施例中,代码中的至少一个可以至少部分地实现为硬件电路。
处理器可以是单个中央处理单元CPU,但也可以包括两个或更多个处理单元。例如,处理器可以包括通用微处理器;指令集处理器和/或相关的芯片组和/或专用微处理器,诸如专用集成电路ASIC。处理器还可以包括用于缓存目的的板卡存储器。计算机程序可由连接到处理器的计算机程序产品承载。计算机程序产品可以包括在其上存储有计算机程序的计算机可读介质。例如,计算机程序产品可以是闪存、随机存取存储器RAM、只读存储器ROM、或EEPROM,并且在替代实施例中,上述计算机程序模块可以采用存储器分配管理器内的存储器的形式分布在不同的计算机程序产品上。
应当理解,交互单元的选择以及本公开内的单元的命名仅用于示例性目的,并且适合于执行上述方法的任何实施例的节点可以采用多种替代方式来配置以便能够执行所建议的过程动作。
还应注意,本公开中描述的单元将被视为逻辑实体,并且不必作为单独的物理实体。
虽然已经根据若干实施例描述了实施例,但是可以预期在阅读说明书和研究附图时,其替代、修改、置换和等同物将变得显而易见。因此,所附权利要求旨在包括落入实施例的范围内并由未决权利要求限定的这样的替代、修改、置换和等同物。
Claims (20)
1.一种由存储器分配管理器执行的用于在数据中心内管理针对应用的存储器分配的方法(200),所述数据中心至少包括中央处理单元CPU池和至少一个存储器池,所述方法包括:
-接收(210)与和将被启动的应用相关联的多个实例相关联的信息,其中,各个实例与各个存储器需求相关联,所述信息还包括关于所述实例之间的内部关系的信息;
-对于多个实例,基于所接收的信息,确定(220)所需的存储器块的最小数量和相关联的大小,这通过基于两个或更多个实例的各自的存储器需求和/或所述实例之间的所述内部关系而识别能够由所述两个或更多个实例共享的存储器块部分和相关联的大小来确定;以及
-基于所确定的存储器块的最小数量,向所述应用的所述实例分配(230)多个存储器块。
2.根据权利要求1所述的方法(200),其中,所接收的与多个实例相关联的信息还包括关于应用类型的信息,其中,确定(220)所需的存储器块的最小数量和相关联的大小还基于所述应用类型的实例之间的已知关系。
3.根据权利要求1或2所述的方法(200),其中,确定(220)所需的存储器块的最小数量和相关联的大小还基于关于所述应用的先前知识。
4.根据权利要求1-3中任一项所述的方法(200),其中,向所述应用的所述实例分配(230)所需的存储器包括:向存储器管理控制器MMC通知所确定的所需的存储器块的最小数量和相关联的大小,以及接收针对所需的存储器块的最小数量的具有至少在存储器单元池中的地址的存储器块的分配。
5.根据权利要求1-4中任一项所述的方法(200),还包括:存储关于所述应用和所确定的所需的存储器块的最小数量和/或向所述应用分配的存储器块的信息。
6.根据权利要求1-5中任一项所述的方法(200),其中,所述存储器需求至少与“只写入”、“只读取”和“读取和写入”类型以及存储器容量相关联。
7.根据权利要求6所述的方法(200),其中,需要写入类型的存储器的实例被分配根据所接收的与和将被启动的所述应用相关联的所述多个实例相关联的所述信息的大小的存储器块,其中,所述实例被允许向所述存储器写入信息。
8.根据权利要求6或7所述的方法(200),其中,需要读取与需要所述写入类型的存储器的一个或多个实例相关联的存储器块的内容的一个或多个实例被分配与需要所述写入类型的存储器的一个或多个实例相同的存储器块,而不是所述存储器块的单独副本。
9.根据权利要求1-8中任一项所述的方法(200),其中,需要访问相同存储器块内容的两个或更多个实例被分配相同的存储器块,而不是所述存储器块的单独副本。
10.一种用于在数据中心内管理针对应用的存储器分配的存储器分配管理器(400,500),所述数据中心至少包括中央处理单元CPU池和至少一个存储器池,所述分配管理器(400,500)被配置为:
-接收与和将被启动的应用相关联的多个实例相关联的信息,其中,各个实例与各个存储器需求相关联,所述信息还包括关于所述实例之间的内部关系的信息;
-对于多个实例,基于所接收的信息,确定所需的存储器块的最小数量和相关联的大小,这通过基于两个或更多个实例的各自的存储器需求和/或所述实例之间的所述内部关系而识别能够由所述两个或更多个实例共享的存储器块部分和相关联的大小来确定,;以及
-基于所确定的存储器块的最小数量,向所述应用的所述实例分配多个存储器块。
11.根据权利要求10所述的存储器分配管理器(400,500),其中,所接收的与多个实例相关联的信息还包括关于应用类型的信息,其中,所述存储器分配管理器(400,500)被配置为还基于所述应用类型的实例之间的已知关系,确定所需的存储器块的最小数量和相关联的大小。
12.根据权利要求10或11所述的存储器分配管理器(400,500),进一步被配置为:基于关于所述应用的先前知识,确定所需的存储器块的最小数量和相关联的大小。
13.根据权利要求10-12中任一项所述的存储器分配管理器(400,500),进一步被配置为:通过以下操作向所述应用的所述实例分配所需的存储器:向存储器管理控制器MMC通知所确定的所需的存储器块的最小数量和相关联的大小,以及接收针对所需的存储器块的最小数量的具有至少在存储器单元池中的地址的存储器块的分配。
14.根据权利要求10-13中任一项所述的存储器分配管理器(400,500),进一步被配置为:存储关于所述应用和所确定的所需的存储器块的最小数量和/或向所述应用分配的存储器块的信息。
15.根据权利要求10-14中任一项所述的存储器分配管理器(400,500),其中,所述存储器需求至少与“只写入”、“只读取”和“读取和写入”类型以及存储器容量相关联。
16.根据权利要求15所述的存储器分配管理器(400,500),其中,需要写入类型的存储器的实例被分配根据所接收的与和将被启动的所述应用相关联的所述多个实例相关联的所述信息的大小的存储器块,其中,所述实例被允许向所述存储器写入信息。
17.根据权利要求15或16所述的存储器分配管理器(400,500),其中,需要读取与需要所述写入类型的存储器的一个或多个实例相关联的存储器块的内容的一个或多个实例被分配与需要所述写入类型的存储器的一个或多个实例相同的存储器块,而不是所述存储器块的单独副本。
18.根据权利要求10-17中任一项所述的存储器分配管理器(400,500),其中,需要访问相同存储器块内容的两个或更多个实例被分配相同的存储器块,而不是所述存储器块的单独副本。
19.一种计算机程序(610),包括计算机可读代码,所述计算机可读代码在根据权利要求10-18所述的存储器分配管理器(500)中的装置(600)中包括的处理单元(606)中运行时,使得所述存储器分配管理器(500)执行根据权利要求1-9所述的对应的方法。
20.一种计算机程序产品(608),包括根据权利要求19所述的计算机程序(610)。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/SE2017/050280 WO2018174758A1 (en) | 2017-03-23 | 2017-03-23 | A memory allocation manager and method performed thereby for managing memory allocation |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110447019A true CN110447019A (zh) | 2019-11-12 |
CN110447019B CN110447019B (zh) | 2023-11-17 |
Family
ID=58547768
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780088590.XA Active CN110447019B (zh) | 2017-03-23 | 2017-03-23 | 存储器分配管理器及由其执行的用于管理存储器分配的方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11687451B2 (zh) |
EP (1) | EP3602309B1 (zh) |
CN (1) | CN110447019B (zh) |
WO (1) | WO2018174758A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115412515A (zh) * | 2022-08-05 | 2022-11-29 | 北京天融信网络安全技术有限公司 | 一种基于fpga的存储空间分配方法 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110083465B (zh) * | 2019-04-26 | 2021-08-17 | 上海连尚网络科技有限公司 | 一种寄宿应用间的数据传递方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140068621A1 (en) * | 2012-08-30 | 2014-03-06 | Sriram Sitaraman | Dynamic storage-aware job scheduling |
US20140289739A1 (en) * | 2013-03-20 | 2014-09-25 | Hewlett-Packard Development Company, L.P. | Allocating and sharing a data object among program instances |
US20150134930A1 (en) * | 2013-11-09 | 2015-05-14 | Microsoft Corporation | Using Shared Virtual Memory Resources for Performing Memory-Mapping |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7650331B1 (en) | 2004-06-18 | 2010-01-19 | Google Inc. | System and method for efficient large-scale data processing |
US7814243B2 (en) * | 2007-06-01 | 2010-10-12 | Sonics, Inc. | Shared storage for multi-threaded ordered queues in an interconnect |
WO2013094156A1 (ja) * | 2011-12-19 | 2013-06-27 | 日本電気株式会社 | タスク配置最適化システム、タスク配置最適化方法、及びタスク配置最適化プログラム |
JP5554358B2 (ja) * | 2012-03-23 | 2014-07-23 | 株式会社東芝 | マルチプロセッサシステムおよび電力制御方法 |
US10073874B1 (en) * | 2013-05-28 | 2018-09-11 | Google Llc | Updating inverted indices |
US9785469B2 (en) | 2014-02-07 | 2017-10-10 | International Business Machines Corporation | Detection of time points to voluntarily yield resources for context switching |
WO2016122675A1 (en) | 2015-01-31 | 2016-08-04 | Hewlett Packard Enterprise Development Lp | Resource allocation |
US10402227B1 (en) * | 2016-08-31 | 2019-09-03 | Amazon Technologies, Inc. | Task-level optimization with compute environments |
-
2017
- 2017-03-23 WO PCT/SE2017/050280 patent/WO2018174758A1/en unknown
- 2017-03-23 EP EP17717517.1A patent/EP3602309B1/en active Active
- 2017-03-23 US US16/493,137 patent/US11687451B2/en active Active
- 2017-03-23 CN CN201780088590.XA patent/CN110447019B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140068621A1 (en) * | 2012-08-30 | 2014-03-06 | Sriram Sitaraman | Dynamic storage-aware job scheduling |
US20140289739A1 (en) * | 2013-03-20 | 2014-09-25 | Hewlett-Packard Development Company, L.P. | Allocating and sharing a data object among program instances |
US20150134930A1 (en) * | 2013-11-09 | 2015-05-14 | Microsoft Corporation | Using Shared Virtual Memory Resources for Performing Memory-Mapping |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115412515A (zh) * | 2022-08-05 | 2022-11-29 | 北京天融信网络安全技术有限公司 | 一种基于fpga的存储空间分配方法 |
Also Published As
Publication number | Publication date |
---|---|
EP3602309B1 (en) | 2023-08-09 |
US11687451B2 (en) | 2023-06-27 |
CN110447019B (zh) | 2023-11-17 |
WO2018174758A1 (en) | 2018-09-27 |
EP3602309A1 (en) | 2020-02-05 |
US20200117596A1 (en) | 2020-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11822491B2 (en) | Techniques for an efficient fabric attached memory | |
US9959337B2 (en) | Independent data processing environments within a big data cluster system | |
CN102289390B (zh) | 系统管理程序调度器 | |
CN104424013B (zh) | 在计算环境中部署虚拟机的方法和设备 | |
CN104520823B (zh) | 用于混合存储器管理的方法、系统和设备 | |
CN103970607B (zh) | 使用等价集合来计算优化虚拟机分配的方法和装置 | |
CN108694069A (zh) | 动态可组成的计算系统、数据中心和用于动态组成计算系统的方法 | |
CN102971724B (zh) | 与数据中心环境内的基于单元式虚拟资源的管理有关的方法和装置 | |
ES2581597T3 (es) | Método para crear una máquina virtual, monitor de máquinas virtuales y sistema de máquinas virtuales | |
CN104750559B (zh) | 跨多节点的存储器资源的池化 | |
TWI710912B (zh) | 記憶體系統及實施於記憶體系統中之方法,以及非暫時性電腦儲存媒體 | |
US9740438B2 (en) | Allocating memory on multiple types of main memory technologies from software application layer | |
CN108027747A (zh) | 在存储阵列系统中执行为单处理器环境设计的控制器固件的多处理 | |
CN108737325A (zh) | 一种多租户数据隔离方法、装置及系统 | |
EP2856313B1 (en) | Dynamically erectable computer system | |
CN107924328A (zh) | 选择虚拟机进行迁移的技术 | |
DE102013017511A1 (de) | Effiziente speichervirtualisierung in mehrsträngigen verarbeitungseinheiten | |
DE112020004181T5 (de) | Bereitstellen eines direkten datenzugriffs zwischen beschleunigern und speicher in einer datenverarbeitungsumgebung | |
González-Vélez et al. | Performance evaluation of MapReduce using full virtualisation on a departmental cloud | |
CN106066812A (zh) | 基于应用的历史信息管理资源 | |
CN110276454A (zh) | 用于机器学习的系统和控制该系统的方法以及电子系统 | |
CN110447019A (zh) | 存储器分配管理器及由其执行的用于管理存储器分配的方法 | |
Tudoran et al. | Adaptive file management for scientific workflows on the azure cloud | |
US20210132979A1 (en) | Goal-directed software-defined numa working set management | |
De Camargo et al. | A multi‐GPU algorithm for large‐scale neuronal networks |
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 |