CN104219279B - 用于超大规模分布式处理应用的模块化架构的系统和方法 - Google Patents

用于超大规模分布式处理应用的模块化架构的系统和方法 Download PDF

Info

Publication number
CN104219279B
CN104219279B CN201410243420.2A CN201410243420A CN104219279B CN 104219279 B CN104219279 B CN 104219279B CN 201410243420 A CN201410243420 A CN 201410243420A CN 104219279 B CN104219279 B CN 104219279B
Authority
CN
China
Prior art keywords
child node
internal memory
node
data
child
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
Application number
CN201410243420.2A
Other languages
English (en)
Other versions
CN104219279A (zh
Inventor
A·R·巴特
P·萨卡尔
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN104219279A publication Critical patent/CN104219279A/zh
Application granted granted Critical
Publication of CN104219279B publication Critical patent/CN104219279B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • G06F15/17331Distributed shared memory [DSM], e.g. remote direct memory access [RDMA]
    • 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
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • 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
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • 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
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • 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
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • 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
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • 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
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • 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
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals

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)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Multi Processors (AREA)

Abstract

本发明的实施例涉及用于超大规模分布式处理应用的模块化架构的系统和方法。在一个实施例中,提供了一种分布式处理节点,其包括多个子节点。每个子节点包括连接到内存的至少一个处理器核。第一互连装置连接多个子节点中的每一个。第二互连装置将每一个子节点连接到存储装置。进程在第一子节点上运行。进程向第一子节点的内存询问所请求的数据。如果在第一子节点的内存中未发现所请求的数据,则进程经由第一互连装置询问至少一个其他子节点的内存。如果在其他子节点的内存中发现所请求的数据,则进程将其拷贝到第一子节点的内存。如果在第一子节点的内存或至少一个其他子节点的内存中未发现所请求的数据,则进程经由第二互连装置询问存储装置。

Description

用于超大规模分布式处理应用的模块化架构的系统和方法
技术领域
本发明的实施例涉及分布式处理,并且更具体地涉及在分布式分析应用中提供高效处理的新数据中心架构。
发明内容
根据本发明的一个实施例,提供了一种分布式处理节点。节点包括多个子节点。每个子节点包括可操作地连接到内存的至少一个处理器核。第一互连装置可操作地连接节点内的多个子节点中的每一个。第二互连装置将多个子节点中的每一个可操作地连接到存储装置。进程在多个子节点中的第一子节点上运行,所述进程可操作地从第一子节点的内存检索数据。所述进程向第一子节点的内存询问所请求的数据。如果在第一子节点的内存中未发现所请求的数据,则所述进程经由第一互连装置询问多个子节点中的至少一个其他子节点的内存。如果在其他子节点的内存中发现所请求的数据,则所述进程将所请求的数据拷贝到第一子节点的内存。如果在第一子节点的内存或多个子节点中的至少一个子节点的内存中未发现所请求的数据,则所述进程经由第二互连装置询问存储装置。
根据本公开的另一个实施例,提供了一种用于操作分布式处理节点的方法和计算机程序产品。在该实施例中,在第一分布式处理节点接收任务。将任务分配给第一分布式处理节点的第一子节点。子节点包括可操作地连接到内存的至少一个处理器核。确定由任务请求的数据。向第一子节点的内存询问所请求的数据。如果在第一子节点的内存中未发现所请求的数据,则经由第一互连装置询问第一分布式处理节点的至少另一个子节点的内存。如果在其他子节点的内存中发现所请求的数据,则将所请求的数据从其他子节点的内存拷贝到第一子节点的内存。如果在第一子节点的内存或第一分布式处理节点的其他子节点的内存中未发现所请求的数据,则经由第二互连装置询问存储装置。然后在第一子节点的至少一个处理器核上处理所述任务。
附图说明
图1是根据本公开的实施例的分布式处理节点的示意图。
图2是根据本公开的实施例的分布式处理集群的示意图。
图3是根据本公开的实施例的分布式处理节点的示意图。
图4是根据本公开的实施例的分布式处理节点的替代性视图。
图5是根据本公开的实施例的分布式处理节点的逻辑视图。
图6示出操作根据本公开的实施例的分布式处理节点的方法。
具体实施方式
在“大数据”领域中要处理的数据量正以空前的速率增长,同时分析正变得更计算密集。为了支持新出现的分布式处理应用,需要超大规模的内存和提高的计算能力。这样的应用的复杂性和计算需求导致常规架构中的性能瓶颈。为了解决该需求,单块式的分布式处理节点可以转换成多个子节点,其中每个节点包括刀片服务器或其他模块计算单元。这些刀片服务器可以根据工作负荷需求来供应。给定节点内的多个基于刀片的子节点可以通过超大规模网络被连接以减轻数据局部性损失。另外,分层文件系统可以管理分布式数据,同时协同内存管理方案可以处理分布式处理节点内的子节点之间的内存。工作负荷趋势可以用于基于子节点的利用率配置和调谐基于刀片的子节点以实现高资源效率。
现在参考图1,其示出根据本公开的实施例的分布式处理节点。节点100可以是机架、刀片机柜或支持多个处理子单元的另一计算平台。在节点100内,是子节点101、102、103、104。在一些实施例中,子节点101、102、103、104包括刀片机柜内的刀片。在一些实施例中,节点内的子节点的数量可以根据给定应用的处理需求而更低或更高。在一些实施例中,动态地添加或从节点中去除子节点以容纳波动的需求。每个子节点包括至少一个处理器核111,和内存112。在一些实施例中,处理器核分布在若干离散的处理器上,而在一些实施例中,给定子节点中的所有核都在单个多核处理器内。具有从一个到超过一百个核的处理器在本领域是已知的。在一些实施例中,子节点具有在6和12之间的数量的核。在一些实施例中,每个子节点可以具有从1GB到超过24GB的内存。在一些实施例中,每个内存的一部分被用于I/O缓冲。在其他实施例中,使用固态驱动器(SSD)来代替内存进行I/O缓冲,或者除了内存之外还使用固态驱动器(SSD)进行I/O缓冲。
每个子节点通过互连装置105连接到每个其他子节点。每个子节点通过互连装置107连接到整合存储装置106。整合存储装置106可以包含任何数量的物理存储装置161、162、163、164。存储装置161、162、163、164可以是本领域已知的任何物理存储装置,包括磁介质和光学介质。在一些实施例中,存储装置161、162、163、164是硬盘驱动器(HDD)。在一些实施例中,整合存储装置106使用RAID或另一存储虚拟化方案。存储装置的数量可以基于成本和容量需求而变化。向整合存储装置106添加主轴(spindle)会提供更高的吞吐量,并且允许通常来自不同子节点的突发工作负荷的整合。节点100可以连接到附加的分布式处理节点108以经由互连装置109形成分布式处理集群。
在一些实施例中,分布式处理节点100是基于映射化简(MapReduce)的分布式处理系统(诸如Apache Hadoop)中的节点。映射化简系统通过映射步骤跨越集群中的多个处理节点分配工作。在化简步骤中组合来自每个分布式处理节点的结果。在Apache Hadoop中,部分地基于作业所需要的数据的位置,由作业跟踪器在节点之间分配作业。在一些实现方案中,把作业优先地指派给具有所需数据的节点,并且在无法这样做时,把作业指派给与所需数据处于相同机架中的节点。基于映射化简的系统可以包括分布式文件系统,诸如Hadoop分布式文件系统(HDFS)。HDFS跨越分布式处理集群中的多个节点分布数据,通过确保在若干位置中的若干节点上存在副本而提供数据可靠性。HDFS节点彼此通信以便使数据在节点之间重新平衡,移动副本,并且承受高可用度。通过确定所需数据在HDFS中的位置,工作调度器(诸如Hadoop作业跟踪器)可以把工作分配给可以在本地访问该数据的节点。
在图1的节点架构内,可以针对各种应用类型调谐硬件配置。对于I/O密集的应用,合乎需要的是在子节点上有较低的计算能力与内存的比率并且在子节点之间有高速网络互连装置。对于计算密集的应用,合乎需要的是有较高的计算能力与内存的比率并且在子节点之间有标准的网络互连装置。对于混合型应用,被不同地配置的子节点的混合是合乎需要的。当子节点配置的混合可用时,工作可以优先地调度给最适合于工作的特性的那些节点。另外,与预取高速缓存耦合的大内存在混合型应用中是合乎需要的以便吸收I/O突发。
每节点的子节点数量也可以针对给定的应用进行调谐。例如,对于更大的作业,每节点有更多子节点的配置是最优化的。对于更小的作业,每节点有更少的子节点的配置是最优化的。资源分段可以在每节点的子节点数量升高时发生。特别地,如果对每节点添加更多子节点,则一些子节点会保持空闲,如果作业不需要该可用资源的话。资源分段可以通过采用节点级别的多重租用(multi-tenancy)而被最小化。
图2示出分布式处理集群内的多个分布式处理节点的示例性配置。集群包含一个或多个机架200、203、204。机架200包含一个或多个分布式处理节点201-208。分布式处理节点208可以是诸如上面关于图1描述的节点100之类的节点,或者是诸如下面关于图3描述的节点。机架内的节点通过互连装置210连接。各自具有其自身的驻留节点的多个附加机架203、204通过互连装置202连接。机架200内和其他机架203、204内的节点可以是Hadoop节点。在一些实施例中,每机架200仅有一个节点208。在这样的实施例中,互连装置210可以被省略,并且多个机架上的节点可以通过互连装置202连接。在一些实施例中,节点201-208连接到机架200中的网络开关,并且多个机架200、203、204形成树形分层结构。在一些实施例中,通过在节点级别在所有磁盘上运行HDFS来管理数据。
图3示出缺少上面关于图1描述的子节点结构的示例性替代性节点。节点300包括一个或多个处理核301、302、303、304,内存305,和一个或多个物理存储装置306、307。当各个单独的分布式处理节点300上的需求增大时,每节点的内存、每节点的核、和每节点的磁盘必须增大以提供附加容量。另外,必须供应各种节点之间的互连装置以容纳更大的数据吞吐量。特别地,在节点300是Hadoop节点或利用Hadoop分布式文件系统(HDFS)的另一分布式处理节点的情况下,必须供应网络来支持I/O密集的洗牌(shuffle)阶段。其他分布式文件系统具有类似的容量需求。机架间和机架内网络必须不同地供应以便在不同的级别容纳不同的等待时间/带宽需求。在一些实施例中,分布式处理集群中的每个节点300具有类似的内存量、处理器数量和本地磁盘。
新出现的计算和数据密集型应用要求分布式处理节点上所需的资源快速增长。图1中示出的节点架构提供比图3中示出的节点架构更灵活的扩展。特别地,内存使用的增长会产生分布式处理系统(诸如Hadoop)中的瓶颈。对诸如图3中描绘的节点分配过多内存也会导致不合需要的每节点的成本。图3的节点100通过利用节点到节点带宽和内部网络速度最近的增大来克服这些问题。
节点100利用快速增长的网络带宽在单个分布式处理节点(诸如Hadoop节点)内产生分布式刀片服务器。子节点101、102、103、104之间的快速互连装置105可以用于跨越若干子节点产生较大的整合内存池,其能够由节点100内的子节点101、102、103、104中的任何一个以几乎本地内存访问速度访问。通过把每个子节点101、102、103、104分配给刀片或类似计算单元,节点100以商用硬件为基础并且避免定制部件。结果是减小的成本,提高的可维护性,和提高的灵活性。
通过在每个模块子节点101内提供单独的内存112,可以提供比单块式多核系统更好的计算能力与内存比。互连装置107可以被过度供应(over-provision)以支持对存储装置106的更快访问。互连装置105可以同样被过度供应以支持子节点101、102、103、104之间的快速内存访问。特别地,子节点可以经由互连装置105支持端对端内存交互。在一些实施例中,互连装置105和107是相同互连装置的分支,诸如刀片机柜或机架内的光纤网络。
图1的模块节点架构能够避免由诸如图3中描绘的有限容量的节点施加的约束。另外,当在Hadoop集群内操作时,节点100允许分布式处理,同时利用用于作业调度的标准映射化简实现方案和标准分布式文件系统(诸如HDFS)。
图4提供根据本公开的实施例的节点100的替代性视图。节点100包括4个子节点(刀片或其他计算单元)101、102、103、104。每个子节点包括八个处理器核111,并且每个子节点对于每个核包括4G字节内存112。每个子节点的内存112一起形成协同高速缓存401。每个子节点通过互连装置107访问磁盘161、162、163、164。在一些实施例中,磁盘161、162、163、164上的数据被条带化(striped)。仅仅举例提供特定的核、内存和磁盘数量,并且本领域已知的任何计算单元(或刀片)配置可以集成到所描述的架构中。存储装置106附加地包括SSD402。SSD402具有比磁盘161、162、163、164更低的访问时间和等待时间,形成用于通过互连装置107进行数据访问的I/O高速缓存。SSD402I/O高速缓存可以对内存112内的I/O高速缓存进行补充以形成多级高速缓存,或者可以替代基于内存的高速缓存而被使用。在多级高速缓存的情况下,通过作为缓冲器处理来自内存的溢出而不是作为存储装置,SSD被用于支持高吞吐量存储。在一些实施例中,SSD402提供预取高速缓存。在一些实施例中,高速缓存管理器管理SSD402上的高速缓存。高速缓存管理器可以是在处理器111上操作的内核模块。在一些实施例中,高速缓存管理器应用基于模式的高速缓存策略。在一些实施例中,高速缓存策略是在磁盘161、162、163、164上顺序地保留访问的数据,同时把访问的数据随机地拷贝到SSD402。节点100经由互连装置109与集群中的其他节点403、404、405通信,所述互连装置109在一些实施例中是双10Gbps链路。
图5描述根据本公开的实施例的用于Hadoop节点的逻辑架构。基于模式的存储子系统501在SSD上随机地保存访问的数据,并且指引对HDD的扫描访问。内存存储子系统502在内存中保存HDFS洗牌数据。拓扑感知Hadoop调度器503基于数据局部性和节点之间的网络拓扑,在Hadoop节点之间分配工作。在一些实施例中,拓扑感知Hadoop调度器503是Hadoop作业跟踪器。分层调度器504基于节点内的数据局部性,在节点的子节点之间分配工作。特别地,分层调度器504考虑数据在协同高速缓存或共享内存内的位置。
在分布式中处理系统(诸如实现映射化简的系统)中,任务工作负荷可能会变得偏斜。工作负荷的不均等分布可能会导致单独的节点内存变得不堪重负。通过在分布式处理节点内的子节点的内存之间提供协同高速缓存,内存被整合并且消耗被更均匀地分配在可用资源上。为了适应该方法,通过实现适当的缓存策略,将内存内容管理和内存架构分离。一种潜在的缓存策略会是全有或全无策略,其中用于所有工作(诸如Hadoop任务)的数据都可在内存中获得,这要以执行其他工作(或其他Hadoop任务)的能力为代价。
然而,维持过多内存会引起复杂的故障、数据一致性和鲁棒性问题、以及能量问题,并且可能会需要昂贵的专用部件。作为替代,分层HDFS可以用于以透明的方式管理子节点内存并且保持网络、内存和磁盘的平衡的利用率。针对存储I/O限制的内存内解决方案诸如弹性分布式数据集(RDD)、内存云(RamCloud)和memcached也会相当大地增大内存需求,导致许多相同的问题。
在常规系统中对每个节点添加更多的核会导致I/O的阻塞和距存储装置的增大距离。分布式处理应用可能要求每个核为1Gb/s,这会使到达远距离数据的互连装置饱和。这会使这样的配置中的存储墙(storage wall)加剧。本架构允许在节点中添加核,同时保持靠近存储装置。
图6示出操作根据本公开的实施例的分布式处理节点的方法。根据本公开的一个实施例,在分布式处理节点接收任务(501)。把任务分配给分布式处理节点的子节点用于在处理器上进行处理(502)。确定任务所请求的数据(503)。在一些实施例中,所请求的数据由子节点在运行时确定,而在一些实施例中,关于所请求的数据的信息是预先已知的,并且与任务一起被包括。在一些实施例中,步骤503在步骤502之前执行,并且所请求的数据确定任务被分配给的子节点。子节点向其内存询问所请求的数据(504)。如果发现所请求的数据(505),则任务被子节点的处理器处理(514)。如果在子节点的内存中未发现数据(505),则询问节点的其他子节点的内存(506)。如果在节点的其他子节点的内存中发现数据(509),则把数据拷贝到任务被指派给的子节点(510),并且子节点的处理器处理任务(514)。如果在其他子节点的内存中未发现数据(509),则子节点询问处于节点本地的存储装置(507)。如果发现数据,则把数据拷贝到任务被分配给的子节点的内存(512),并且处理器处理任务(514)。如果在本地存储装置中未发现数据,则从远程存储装置拷贝数据(513),并且处理器处理任务(514)。
尽管上面讨论的节点架构适合于在分布式处理系统(诸如Hadoop)中使用,但是本公开的节点架构提供了也适合于不同范围的额外应用的灵活且可扩展的计算/内存/存储方法。例如,所公开的节点架构可以用于:HPC工作负荷;数据后端服务;高性能虚拟化硬件;高能效的服务器设计,其中各个单独的子节点(刀片或其他计算单元)基于需求被选择性地开启或关闭;具有混合的应用的通用计算服务器,其中不同地供应的子节点(刀片或其他计算单元)能支持最好地适合于其需求的应用,例如通过用加速器、GPU和其他补充硬件对各个单独的子节点进行扩展。
所属领域的技术人员将理解的是,本发明的各个方面可以实施为系统、方法或计算机程序产品。因此,本发明的各个方面可以采取以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或软件和硬件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。此外,本发明的各个方面还可以采取用一个或多个计算机可读介质实施的计算机程序产品的形式,该计算机可读介质上包含有计算机可读程序代码。
可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线或半导体的系统、装置或器件,或者任意以上的适当组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机软盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件的上下文中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读信号介质可以包括例如在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读程序代码。这种传播的信号可以采用各种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明各方面的操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言(诸如Java、Smalltalk、C++等),还包括常规的过程式程序设计语言(诸如“C”程序设计语言或类似的程序设计语言)。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
下面将参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明的各方面。应当理解的是,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些计算机程序指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
也可以把这些计算机程序指令存储在计算机可读介质中,这些指令可以使得计算机、其它可编程数据处理装置、或其他设备以特定方式工作,使得存储在计算机可读介质中的指令产生包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品。
计算机程序指令还可以加载到计算机、其它可编程数据处理装置或其他设备上,以使一系列操作步骤在计算机、其它可编程装置或其他设备上被执行以产生计算机实现的过程,使得在计算机或其它可编程装置上执行的指令提供用于实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图使出根据本公开的各种实施例的系统、方法和计算机程序产品的可能实现的架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意的是,在有些替代性实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本公开的各种实施例的描述已经出于举例说明的目的给出,但是并非旨在是无遗漏的或限于所公开的实施例。在不脱离所描述的实施例的范围和精神的情况下,许多改型和变型对于本领域普通技术人员而言是显而易见的。本文中使用的术语被选择为最佳地解释实施例的原理、实际的应用或优于市场上发现的技术的技术改进,或者使本领域普通技术人员能够理解本文中公开的实施例。

Claims (16)

1.一种用于操作分布式处理节点的系统,包括:
包括多个子节点的分布式处理节点,每个子节点包括:
至少一个处理器核,其可操作地连接到内存;
第一互连装置,其可操作地连接到所述多个子节点中的每一个;
第二互连装置,其可操作地连接到所述多个子节点中的每一个并且可操作地连接到存储装置;
在所述多个子节点中的第一子节点上运行的进程,所述进程可操作以从所述第一子节点的内存检索数据;其中:
所述进程向所述第一子节点的内存询问所请求的数据;
如果在所述第一子节点的内存中未发现所请求的数据,则所述进程经由所述第一互连装置询问所述多个子节点中的至少一个其他子节点的内存;
如果在所述其他子节点的内存中发现所请求的数据,则所述进程将所请求的数据拷贝到所述第一子节点的内存;以及
如果在所述第一子节点的内存或者所述多个子节点的至少另一个子节点的内存中未发现所请求的数据,则所述进程经由所述第二互连装置询问所述存储装置,
其中所述存储装置包括硬盘驱动器和固态驱动器,并且所述系统还包括存储管理器,所述存储管理器可操作以基于访问模式在所述硬盘驱动器和所述固态驱动器之间分配数据,其中所述访问模式包括顺序访问,并且所述存储管理器优先地将非顺序访问的数据从所述硬盘驱动器重新放置到所述固态驱动器。
2.如权利要求1所述的系统,其中所述分布式处理节点是形成分布式处理集群的多个分布式处理节点中的一个,所述多个分布式处理节点中的每一个可操作地连接到第三互连装置。
3.如权利要求1所述的系统,其中所述存储装置包括硬盘驱动器和固态驱动器,所述硬盘驱动器包括顺序数据并且所述固态驱动器包括非顺序数据。
4.如权利要求1所述的系统,其中所述第一互连装置具有比所述第二互连装置更高的带宽。
5.如权利要求2所述的系统,其中所述第一互连装置具有比所述第三互连装置更高的带宽。
6.如权利要求1所述的系统,其中所述多个子节点中的每个子节点的内存形成协同高速缓存或共享内存。
7.如权利要求1所述的系统,其中经由Hadoop分布式文件系统访问所述存储装置。
8.如权利要求1所述的系统,其中所述分布式处理节点是Hadoop节点。
9.如权利要求2所述的系统,其中所述集群是Hadoop集群。
10.如权利要求1所述的系统,其中所述第一互连装置被过度供应。
11.如权利要求1所述的系统,其中所述多个子节点的内存通过Memcached管理。
12.如权利要求1所述的系统,其中如果在所述存储装置中发现所请求的数据,则所述进程将所请求的数据拷贝到所述第一子节点的内存。
13.如权利要求1所述的系统,其中所述进程还可操作以在所述多个子节点的内存和所述存储装置之间传播变更后的数据。
14.如权利要求1所述的系统,还包括任务调度器,所述任务调度器可操作以将所述进程分配给所述多个子节点中在其内存中具有最多被请求数据的子节点。
15.一种用于操作分布式处理节点的方法,包括:
在第一分布式处理节点接收任务;
将所述任务分配给所述第一分布式处理节点的第一子节点,所述子节点包括可操作地连接到内存的至少一个处理器核;
确定由所述任务请求的数据;
向所述第一子节点的内存询问所请求的数据;
如果在所述第一子节点的内存中未发现所请求的数据,则经由第一互连装置询问所述第一分布式处理节点的至少另一个子节点的内存;
如果在其他子节点的内存中发现所请求的数据,则将所请求的数据从所述其他子节点的内存拷贝到所述第一子节点的内存;
如果在所述第一子节点的内存或者所述第一分布式处理节点的至少另一个子节点的内存中未发现所请求的数据,则经由第二互连装置询问存储装置;以及
在所述第一子节点的所述至少一个处理器核上处理所述任务,
其中所述存储装置包括硬盘驱动器和固态驱动器,并且还包括存储管理器,所述存储管理器可操作以基于访问模式在所述硬盘驱动器和所述固态驱动器之间分配数据,其中所述访问模式包括顺序访问,并且所述存储管理器优先地将非顺序访问的数据从所述硬盘驱动器重新放置到所述固态驱动器。
16.如权利要求15所述的方法,其中所述第一分布式处理节点是形成分布式处理集群的多个分布式处理节点中的一个,所述多个分布式处理节点中的每一个可操作地连接到第三互连装置。
CN201410243420.2A 2013-06-04 2014-06-04 用于超大规模分布式处理应用的模块化架构的系统和方法 Active CN104219279B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/909,767 2013-06-04
US13/909,767 US9330055B2 (en) 2013-06-04 2013-06-04 Modular architecture for extreme-scale distributed processing applications

Publications (2)

Publication Number Publication Date
CN104219279A CN104219279A (zh) 2014-12-17
CN104219279B true CN104219279B (zh) 2018-01-23

Family

ID=51986413

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410243420.2A Active CN104219279B (zh) 2013-06-04 2014-06-04 用于超大规模分布式处理应用的模块化架构的系统和方法

Country Status (2)

Country Link
US (2) US9330055B2 (zh)
CN (1) CN104219279B (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10430338B2 (en) 2008-09-19 2019-10-01 Oracle International Corporation Selectively reading data from cache and primary storage based on whether cache is overloaded
US9659019B1 (en) * 2013-06-27 2017-05-23 EMC IP Holding Company LLC Burst buffer appliance with storage tiering control functionality based on user specification
US10229161B2 (en) * 2013-09-20 2019-03-12 Oracle International Corporation Automatic caching of scan and random access data in computing systems
US10298709B1 (en) * 2014-12-31 2019-05-21 EMC IP Holding Company LLC Performance of Hadoop distributed file system operations in a non-native operating system
CN104573119B (zh) * 2015-02-05 2017-10-27 重庆大学 云计算中面向节能的Hadoop分布式文件系统存储方法
US9986033B2 (en) * 2015-03-17 2018-05-29 Panzura, Inc. Facilitating access to remote cloud services
CN106445676B (zh) 2015-08-05 2019-10-22 杭州海康威视系统技术有限公司 一种分布式数据计算的任务分配方法和任务分配装置
US10331573B2 (en) 2016-11-04 2019-06-25 Oracle International Corporation Detection of avoidable cache thrashing for OLTP and DW workloads
US10572383B2 (en) 2017-04-12 2020-02-25 International Business Machines Corporation Caching a block of data in a multi-tenant cache storage device based on space usage boundary estimates
CN111104049B (zh) * 2018-10-26 2023-08-22 伊姆西Ip控股有限责任公司 管理冗余磁盘阵列的方法、设备和计算机可读存储介质
CN109614039B (zh) * 2018-11-26 2022-03-22 新华三大数据技术有限公司 数据迁移方法及装置
US12086446B2 (en) * 2019-10-21 2024-09-10 Intel Corporation Memory and storage pool interfaces
US11416166B2 (en) * 2020-06-26 2022-08-16 Western Digital Technologies, Inc. Distributed function processing with estimate-based scheduler

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6249802B1 (en) * 1997-09-19 2001-06-19 Silicon Graphics, Inc. Method, system, and computer program product for allocating physical memory in a distributed shared memory network
US6633891B1 (en) * 1998-11-24 2003-10-14 Oracle International Corporation Managing replacement of data in a cache on a node based on caches of other nodes
CN101577716A (zh) * 2009-06-10 2009-11-11 中国科学院计算技术研究所 基于InfiniBand网络的分布式存储方法和系统
CN101692227A (zh) * 2009-09-25 2010-04-07 中国人民解放军国防科学技术大学 大规模高可靠的归档存储系统构建方法
CN102143215A (zh) * 2011-01-20 2011-08-03 中国人民解放军理工大学 一种基于网络的pb级云存储系统及其处理方法

Family Cites Families (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4887076A (en) * 1987-10-16 1989-12-12 Digital Equipment Corporation Computer interconnect coupler for clusters of data processing devices
US5544342A (en) * 1993-06-30 1996-08-06 International Business Machines Corporation System and method for prefetching information in a processing system
JP3545906B2 (ja) * 1997-05-29 2004-07-21 富士通株式会社 ファイルシステム制御方法,パラレルファイルシステムおよびプログラム記憶媒体
US6353836B1 (en) * 1998-02-13 2002-03-05 Oracle Corporation Method and apparatus for transferring data from the cache of one node to the cache of another node
US6757698B2 (en) * 1999-04-14 2004-06-29 Iomega Corporation Method and apparatus for automatically synchronizing data from a host computer to two or more backup data storage locations
US7000011B1 (en) * 2000-11-06 2006-02-14 Hewlett-Packard Development Company, Lp. Designing interconnect fabrics
US8677505B2 (en) * 2000-11-13 2014-03-18 Digital Doors, Inc. Security system with extraction, reconstruction and secure recovery and storage of data
US20030084261A1 (en) * 2001-10-29 2003-05-01 Byrd James M. Method for reordering commands to a storage device
US20070177415A1 (en) * 2002-08-20 2007-08-02 Jeng-Jye Shau High performance mass storage systems
US6778504B2 (en) * 2002-12-13 2004-08-17 Alcatel Canada Inc. Dynamic soft permanent virtual circuit bulk connection tracing
US7467238B2 (en) * 2004-02-10 2008-12-16 Hitachi, Ltd. Disk controller and storage system
US20060053215A1 (en) * 2004-09-07 2006-03-09 Metamachinix, Inc. Systems and methods for providing users with access to computer resources
US8688780B2 (en) * 2005-09-30 2014-04-01 Rockwell Automation Technologies, Inc. Peer-to-peer exchange of data resources in a control system
US7631162B2 (en) * 2005-10-27 2009-12-08 Sandisck Corporation Non-volatile memory with adaptive handling of data writes
US20070220059A1 (en) * 2006-03-20 2007-09-20 Manyi Lu Data processing node
US20080109569A1 (en) * 2006-11-08 2008-05-08 Sicortex, Inc Remote DMA systems and methods for supporting synchronization of distributed processes in a multi-processor system using collective operations
US9632870B2 (en) * 2007-03-29 2017-04-25 Violin Memory, Inc. Memory system with multiple striping of raid groups and method for performing the same
US7788467B2 (en) * 2007-05-09 2010-08-31 Sony Computer Entertainment Inc. Methods and apparatus for latency control in a multiprocessor system
US9769177B2 (en) * 2007-06-12 2017-09-19 Syracuse University Role-based access control to computing resources in an inter-organizational community
US7818493B2 (en) * 2007-09-07 2010-10-19 Sandisk Corporation Adaptive block list management
US20090113160A1 (en) * 2007-10-25 2009-04-30 Disk Trix Incorporated, A South Carolina Corporation Method and System for Reorganizing a Storage Device
US9778882B2 (en) * 2008-06-30 2017-10-03 Hitachi Data Systems Engineering UK Limited Dynamic write balancing in a data storage system
US8370520B2 (en) * 2008-11-24 2013-02-05 Juniper Networks, Inc. Adaptive network content delivery system
US8219711B2 (en) * 2008-11-24 2012-07-10 Juniper Networks, Inc. Dynamic variable rate media delivery system
US8140817B2 (en) * 2009-02-24 2012-03-20 International Business Machines Corporation Dynamic logical partition management for NUMA machines and clusters
US8321645B2 (en) * 2009-04-29 2012-11-27 Netapp, Inc. Mechanisms for moving data in a hybrid aggregate
CN101562543B (zh) * 2009-05-25 2013-07-31 阿里巴巴集团控股有限公司 一种缓存数据的处理方法、处理系统和装置
US8400458B2 (en) * 2009-09-09 2013-03-19 Hewlett-Packard Development Company, L.P. Method and system for blocking data on a GPU
US20110103391A1 (en) * 2009-10-30 2011-05-05 Smooth-Stone, Inc. C/O Barry Evans System and method for high-performance, low-power data center interconnect fabric
US9876735B2 (en) * 2009-10-30 2018-01-23 Iii Holdings 2, Llc Performance and power optimized computer system architectures and methods leveraging power optimized tree fabric interconnect
US9648102B1 (en) * 2012-12-27 2017-05-09 Iii Holdings 2, Llc Memcached server functionality in a cluster of data processing nodes
US8712984B2 (en) * 2010-03-04 2014-04-29 Microsoft Corporation Buffer pool extension for database server
US9015783B2 (en) * 2010-03-05 2015-04-21 Time Warner Cable Enterprises Llc Bandwidth conservation
US8725951B2 (en) * 2010-04-12 2014-05-13 Sandisk Enterprise Ip Llc Efficient flash memory-based object store
US8260840B1 (en) * 2010-06-28 2012-09-04 Amazon Technologies, Inc. Dynamic scaling of a cluster of computing nodes used for distributed execution of a program
US8954863B2 (en) * 2010-11-15 2015-02-10 Cisco Technology, Inc. Intelligent social collaboration unified media
US8612688B2 (en) * 2010-12-30 2013-12-17 Facebook, Inc. Distributed cache for graph data
US8799916B2 (en) 2011-02-02 2014-08-05 Hewlett-Packard Development Company, L. P. Determining an allocation of resources for a job
US8689226B2 (en) 2011-05-11 2014-04-01 Hewlett-Packard Development Company, L.P. Assigning resources to processing stages of a processing subsystem
US9235443B2 (en) * 2011-11-30 2016-01-12 International Business Machines Corporation Allocation enforcement in a multi-tenant cache mechanism
US8656130B2 (en) * 2011-12-23 2014-02-18 International Business Machines Corporation Low latency and persistent data storage
US8751725B1 (en) * 2012-01-27 2014-06-10 Netapp, Inc. Hybrid storage aggregate
US20130227180A1 (en) * 2012-02-24 2013-08-29 Pradeep Bisht Method for input/output load balancing using varied performing storage devices
US9063938B2 (en) * 2012-03-30 2015-06-23 Commvault Systems, Inc. Search filtered file system using secondary storage, including multi-dimensional indexing and searching of archived files
US9043530B1 (en) * 2012-04-09 2015-05-26 Netapp, Inc. Data storage within hybrid storage aggregate
US10019371B2 (en) * 2012-04-27 2018-07-10 Hewlett Packard Enterprise Development Lp Data caching using local and remote memory
US20130290636A1 (en) * 2012-04-30 2013-10-31 Qiming Chen Managing memory
US9645917B2 (en) * 2012-05-22 2017-05-09 Netapp, Inc. Specializing I/O access patterns for flash storage
US9390055B2 (en) * 2012-07-17 2016-07-12 Coho Data, Inc. Systems, methods and devices for integrating end-host and network resources in distributed memory
US9223845B2 (en) * 2012-08-01 2015-12-29 Netapp Inc. Mobile hadoop clusters
US9582221B2 (en) * 2012-08-24 2017-02-28 Vmware, Inc. Virtualization-aware data locality in distributed data processing
US9152501B2 (en) * 2012-12-19 2015-10-06 International Business Machines Corporation Write performance in fault-tolerant clustered storage systems
US9189446B2 (en) * 2013-01-04 2015-11-17 Microsoft Technology Licensing, Llc Immutable sharable zero-copy data and streaming
US9323693B2 (en) * 2013-01-04 2016-04-26 Microsoft Technology Licensing, Llc Zero-copy caching
US9836462B2 (en) * 2013-03-14 2017-12-05 Microsoft Technology Licensing, Llc Extensibility model for document-oriented storage services

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6249802B1 (en) * 1997-09-19 2001-06-19 Silicon Graphics, Inc. Method, system, and computer program product for allocating physical memory in a distributed shared memory network
US6633891B1 (en) * 1998-11-24 2003-10-14 Oracle International Corporation Managing replacement of data in a cache on a node based on caches of other nodes
CN101577716A (zh) * 2009-06-10 2009-11-11 中国科学院计算技术研究所 基于InfiniBand网络的分布式存储方法和系统
CN101692227A (zh) * 2009-09-25 2010-04-07 中国人民解放军国防科学技术大学 大规模高可靠的归档存储系统构建方法
CN102143215A (zh) * 2011-01-20 2011-08-03 中国人民解放军理工大学 一种基于网络的pb级云存储系统及其处理方法

Also Published As

Publication number Publication date
US20140359050A1 (en) 2014-12-04
US9330055B2 (en) 2016-05-03
US20160202931A1 (en) 2016-07-14
CN104219279A (zh) 2014-12-17
US10248346B2 (en) 2019-04-02

Similar Documents

Publication Publication Date Title
CN104219279B (zh) 用于超大规模分布式处理应用的模块化架构的系统和方法
Wang et al. Characterization and optimization of memory-resident MapReduce on HPC systems
CN104750559B (zh) 跨多节点的存储器资源的池化
US10572383B2 (en) Caching a block of data in a multi-tenant cache storage device based on space usage boundary estimates
US11157457B2 (en) File management in thin provisioning storage environments
US9444905B2 (en) Allocating network bandwidth to prefetch requests to prefetch data from a remote storage to cache in a local storage
US11182322B2 (en) Efficient component communication through resource rewiring in disaggregated datacenters
JP7539202B2 (ja) コンピューティング環境におけるアクセラレータとストレージとの間のダイレクト・データ・アクセス
Tai et al. Improving flash resource utilization at minimal management cost in virtualized flash-based storage systems
JP2014175009A (ja) 仮想マシンをサポートするフラッシュ・ベースのキャッシング・ソリューションでの動的キャッシュ共有のためのシステム、方法、およびコンピュータ可読媒体
JP7546669B2 (ja) マルチコア・プロセッサ複合体の中の1コア当たりのスレッドの最適数の決定
Bai et al. RTRM: A response time-based replica management strategy for cloud storage system
US20200099586A1 (en) Dynamic grouping and repurposing of general purpose links in disaggregated datacenters
Krish et al. Venu: Orchestrating ssds in hadoop storage
Xu et al. Rethink the storage of virtual machine images in clouds
US11972148B2 (en) Proactive storage operation management using thermal states
Chen et al. Data prefetching and eviction mechanisms of in-memory storage systems based on scheduling for big data processing
US10802988B2 (en) Dynamic memory-based communication in disaggregated datacenters
CN104750614B (zh) 用于管理存储器的方法和装置
Montaner et al. Memscale™: A scalable environment for databases
Thaha et al. Hadoop in openstack: Data-location-aware cluster provisioning
US20200099664A1 (en) Maximizing resource utilization through efficient component communication in disaggregated datacenters
US20230266997A1 (en) Distributed scheduling in container orchestration engines
Chen et al. Scheduling-aware data prefetching for data processing services in cloud
Bang et al. Design and Implementation of Burst Buffer Over-Subscription Scheme for HPC Storage Systems

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant