CN110245135A - 一种基于numa架构的大规模流式图数据更新方法 - Google Patents

一种基于numa架构的大规模流式图数据更新方法 Download PDF

Info

Publication number
CN110245135A
CN110245135A CN201910368729.7A CN201910368729A CN110245135A CN 110245135 A CN110245135 A CN 110245135A CN 201910368729 A CN201910368729 A CN 201910368729A CN 110245135 A CN110245135 A CN 110245135A
Authority
CN
China
Prior art keywords
vertex
update
cell
diagram data
update method
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
Application number
CN201910368729.7A
Other languages
English (en)
Other versions
CN110245135B (zh
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.)
Huazhong University of Science and Technology
Original Assignee
Huazhong University of Science and Technology
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 Huazhong University of Science and Technology filed Critical Huazhong University of Science and Technology
Priority to CN201910368729.7A priority Critical patent/CN110245135B/zh
Publication of CN110245135A publication Critical patent/CN110245135A/zh
Application granted granted Critical
Publication of CN110245135B publication Critical patent/CN110245135B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种基于NUMA架构的大规模流式图数据更新方法,属于大数据技术领域。本发明对度较小的顶点,直接采用batch update方法处理更新,对度较大的顶点,根据顶点的更新代价较小原则,自适应选择调用batch update方法或beap‑based update方法处理更新,降低了检索和插入复杂度;将度较小的顶点直接存储在完全连续的直接索引,将度较大的顶点存储在独立可扩展的间接索引结构,在更新时存储结构不需要频繁动态分配空间,间接索引结构的存储页是完全连续的;将完整图数据集中的各顶点按度数依次划分到不同的NUMA Node上,并分配各顶点被划分到的Node上的CPU来处理顶点的更新数据,使得本地Node上的CPU访问本地内存来处理更新数据,尽量减少更新过程中的远程访问,来提高访问效率。

Description

一种基于NUMA架构的大规模流式图数据更新方法
技术领域
本发明属于大数据技术领域,更具体地,涉及一种基于NUMA架构的大规模流式图数据更新方法。
背景技术
在大数据时代,流式图数据的大规模、高更新频率使得图计算技术领域面临巨大挑战。如何加快接收流式图数据更新量的速度,以维持最新图结构,成为了亟待解决的问题。近几年,大规模流式图处理系统有了一些成果——Stinger、Snap、DCSR、GPMA。这些成果极大地提高了接收流式图更新的速度,同时能够支撑图算法的执行性能。这些流式图处理的方式主要包括:基于服务器的流式图系统和基于GPU设备的流式图系统。
基于服务器的流式图系统,如Stinger,每个顶点都会有出边和入边邻居列表,邻居列表的数据结构是基于链接的block list结构,每个block可存储固定数目大小的出边或入边,其图更新的步骤是:初始化图结构、客户端给服务端以批次为单位发送更新数据、服务端接收图更新数据、服务端处理接收的图更新数据、服务端更新图结构。基于服务器的流式图系统随着图规模的扩大有很好的扩展性,但是系统处理效率难以提高。首先,在面临高更新频率的图数据时,其存储结构需要不断的分配和回收空间,时间开销大。其次,采用的数据结构在更新图数据时的检索和插入复杂度较高,特别是度数越高的顶点,邻居列表越长,检索时间越长,制约了系统的性能。最后,数据在内存中存放不连续,对于各类图算法的执行不利。
基于GPU设备的流式图系统,如GPMA,则是在GPU上提出存储方案,利用PMA结构,为树结构的每一层片段分配上下界密度阈值,根据密度范围来分配图数据。而基于GPU设备的图系统,主要是设备空间大小受限,系统能处理的图规模受限。
发明内容
针对现有技术的缺陷,本发明的目的在于解决现有技术大规模流式图数据更新时间开销大的技术问题。
为实现上述目的,第一方面,本发明实施例提供了一种基于NUMA架构的大规模流式图数据更新方法,该方法包括以下步骤:
S1.初始化服务器端的基础图数据,并将服务器端完整图数据各个顶点划分到不同的NUMA Node;
S2.服务器端接收客户端发送的更新批次,并依次将更新批次加入请求队列;
S3.服务器端从请求队列取出待处理更新批次,按照源节点将该更新批次划分为多个更新段,并将各个顶点的更新段分配给该顶点划分到的Node;
S4.依次处理该更新批次内的各个顶点的更新段,判断该顶点的度数是否大于阈值,若是,进入步骤S5,否则,进入步骤S6;
S5.根据顶点的更新代价较小原则,自适应选择调用batch update方法或beap-based update方法更新基础图数据,将更新数据存储到间接索引结构,该间接索引结构在该顶点划分到的Node上动态分配内存;
S6.调用batch update方法更新基础图数据,将更新数据存储到直接索引结构;
S7.重复步骤S3~S6,直至请求队列里所有更新批次处理完。
具体地,步骤S1包括以下子步骤:
步骤S11.初始化系统的基础图数据,并将完整图数据中各顶点按照当前度数从大到小排序;
步骤S12.将完整图数据中各顶点按序均分到所有NUMA Node,使得各NUMA Node负载均衡。
具体地,步骤S3包括以下子步骤:
步骤S31.从请求队列取出下一个待处理的更新批次;
步骤S32.根据该更新批次中源节点划分,得到更新批次中各个顶点的更新段;
步骤S33.获取各个顶点被分配的NUMA Node,将对应更新段分配给该Node上的空闲CPU。
具体地,步骤S5包括以下子步骤:
步骤S51.判断顶点v的间接索引结构是否已组织为beap形式,若是,则直接采用beap-based方法来处理当前顶点v的更新;否则,则根据顶点的更新段Bv,计算更新段长度lenb和顶点v的当前度数d(v),进入步骤S52;
步骤S52.根据更新段长度lenb和顶点v的当前度数d(v),分别计算batch update和beap-based update方法的更新成本costBU和costbeap
步骤S53.判断costBU是否小于costbeap,若是,则采用batch update方法来处理当前顶点v的更新;否则,则将顶点v的邻居列表重构为beap形式,再采用beap-based update方法来处理当前顶点v的更新。
具体地,
costBU=d(v)*log2lenb
具体地,间接索引结构存储模型具体包括:一个4KB的L1索引页,共包含512个指针项,前511个指针均可指向1KB大小的L1存储页,最后一个指针项可指向一个4KB的L2索引页,将索引扩展到第二级,类似地,L2索引页共包含512个指针项,所有的指针均可指向2MB大小的L2存储页。
具体地,在不断接收更新数据的过程中,如果一个顶点v的度数超过了阈值,为该顶点分配一个L1索引页和第一个L1存储页,然后将直接索引结构中顶点v所在的cell里面的所有邻居列表数据搬移到L1存储页,最后将该cell回收到直接索引结构中,将cell的标识单元s置为空闲状态;如果第一个L1存储页已满,为顶点v分配第二个L1存储页,依次在需要的时候才分配L1存储页;如果所有L1存储页都已存满,为顶点分配一个L2索引页和第一个L2存储页,L1索引页的最后一个指针项指向L2索引页。
具体地,直接索引结构存储模型具体包括:若干基础存储单元cell,每一基础存储单元cell用于存储一个顶点的邻居列表;每一基础存储单元cell包括:位置单元id、标识单元s以及数据单元list;位置单元id用于存储这个cell在cell pool中的位置;标识单元s用于存储cell的当前状态是已被分配占用还是未分配空闲;数据单元list用于存储一个顶点的所有邻居信息。
具体地,系统初始化的同时,为直接索引结构cell pool申请一块连续的M字节内存,初始化一个基础存储单元cell的大小为1字节,则cell pool中的cell数量为M,所有cell的id号集合为{1,2,….M};同时也初始化每个顶点的新属性cellid=-1,标识顶点在cell pool中占用的cell的位置;当传入新的更新数据时,先判断顶点的cellid是否为-1,若是,则说明该顶点是第一次出现,就在cell pool中为该顶点分配第一个空闲cell的预留空间,将顶点的cellid置为该cell的id号,并将该cell的标识单元s置为已占用状态。
第二方面,本发明实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述第一方面所述的基于NUMA架构的大规模流式图数据更新方法。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有以下有益效果:
1.本发明对度数不一样的点区分处理,对度较小的顶点,直接采用batch update方法处理更新,对度较大的顶点,根据顶点的更新代价较小原则,自适应选择调用batchupdate方法或beap-based update方法处理更新,降低了检索和插入复杂度。
2.本发明对度数不一样的点区分存储,将度较小的顶点直接存储在完全连续的直接索引,将度较大的顶点存储在独立可扩展的间接索引结构,由于现实世界图中大多数顶点都是度较小的顶点,在更新时存储结构不需要频繁动态分配空间;间接索引结构的存储页是完全连续的。
3.本发明将完整图数据集中的各顶点按度数依次划分到不同的NUMA Node上,并分配各顶点被划分到的Node上的CPU来处理顶点的更新数据,让各顶点的间接索引结构(如果存在)在本地Node上动态分配内存,使得本地Node上的CPU访问本地内存来处理更新数据,尽量减少更新过程中的远程访问,来提高访问效率。
附图说明
图1为本发明实施例提供的Beap结构示意图;
图2为本发明实施例提供的一种基于NUMA架构的大规模流式图数据更新方法流程图;
图3为本发明实施例提供的存储结构的框架图;
图4为本发明实施例提供的采用beap-based update方法来处理更新的过程示意图;
图5为本发明实施例提供的不同更新方法性能对比图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
首先,对本发明涉及到的一些术语进行解释。
流式图数据:Streaming Graph,在大规模流数据分析模型中,将图数据看作插入、删除和更新边的无限流。
Beap:Bi-parental heap,一种有效支持插入和搜索元素,同时又不需要额外辅助信息的数据结构。如图1所示,Beap进一步扩展了堆结构的思想,不同之处在于:通常情况下每个节点都有两个父节点。Beap组织成三角形网格(a triangular grid)形式,满足这三个特性:
1)除了最后一层以外,其余层的每个节点都有两个子节点;
2)除了第一层和每一层的第一个、最后一个节点,其余节点都有两个父节点;
3)父节点的值小于等于子节点的值。
如图2所示,一种基于NUMA架构的大规模流式图数据更新方法,该方法包括以下步骤:
S1.初始化服务器端的基础图数据,并将服务器端完整图数据各个顶点划分到不同的NUMA Node;
S2.服务器端接收客户端发送的更新批次,并依次将更新批次加入请求队列;
S3.服务器端从请求队列取出待处理更新批次,按照源节点将该更新批次划分为多个更新段,并将各个顶点的更新段分配给该顶点划分到的Node;
S4.依次处理该更新批次内的各个顶点的更新段,判断该顶点的度数是否大于阈值,若是,进入步骤S5,否则,进入步骤S6;
S5.根据顶点的更新代价较小原则,自适应选择调用batch update方法或beap-based update方法更新基础图数据,将更新数据存储到间接索引结构,该间接索引结构在该顶点划分到的Node上动态分配内存;
S6.调用batch update方法更新基础图数据,将更新数据存储到直接索引结构;
S7.重复步骤S3~S6,直至请求队列里所有更新批次处理完。
步骤S1.初始化服务器端的基础图数据,并将服务器端完整图数据各个顶点划分到不同的NUMA Node。
步骤S11.初始化系统的基础图数据,并将完整图数据中各顶点按照当前度数从大到小排序。
对服务器端运行系统中完整的图数据集以一定比例随机采样,作为更新前的基础图数据导入到系统中。用户自选比例,优选50%。度数是指顶点的出度和入度之和。
步骤S12.将完整图数据中各顶点按序均分到所有NUMA Node,使得各NUMA Node负载均衡。
例如,按度数排序之后的顶点ID分别是4,5,2,3,1,6,如果有两个NUMA Node,就按点依次均分到Node上,4、2、1分配到Node1上,5、3、6就分配到了Node2上,这种分配方式是为了保证NUMA Node负载均衡。
步骤S2.服务器端接收客户端发送的更新批次,并依次将更新批次加入请求队列。
客户端给服务器端以批次为单位发送更新数据,更新批次是指包含多条更新数据的集合。
步骤S3.服务器端从请求队列取出待处理更新批次,按照源节点将该更新批次划分为多个更新段,并将各个顶点的更新段分配给该顶点划分到的Node。
步骤S31.从请求队列取出下一个待处理的更新批次。
下一个待处理的更新批次始终为请求队列的队头元素。
步骤S32.根据该更新批次中源节点划分,得到更新批次中各个顶点的更新段。
更新段Bv表示包含在当前更新批次中所有以顶点v为源节点的更新。
步骤S33.获取各个顶点被分配的NUMA Node,将对应更新段分配给该Node上的空闲CPU。
NUMA Node上有多个CPU,将对应更新段分配给该Node上的空闲CPU。
步骤S4.依次处理该更新批次内的各个顶点的更新段,判断该顶点的度数是否大于阈值,若是,进入步骤S5,否则,进入步骤S6。
因为随着更新批次的处理,基础图数据的存储结构是在不断更新变化的,所以是图存储结构里的顶点度数是在不断增加的。如图3所示,假定度数区分的阈值T为100,顶点1,2,6的度数分别为50,30,200,图中度数小于100的点1,2的邻居节点将存储在图3存储模块的cell pool,度数大于100的点6将存储在存储模块的间接索引结构,按需申请并分配L1存储页的数目。
步骤S5.根据顶点的更新代价较小原则,自适应选择调用batch update方法或beap-based update方法处理更新,将更新数据存储到间接索引结构,该间接索引结构在该顶点划分到的Node上动态分配内存。
间接索引结构存储模型具体包括:一个4KB的L1索引页,共包含512个指针项,前511个指针均可指向1KB大小的L1存储页,为了可存储更长的邻居列表,最后一个指针项可指向一个4KB的L2索引页,将索引扩展到第二级。类似地,L2索引页共包含512个指针项,所有的指针均可指向2MB大小的L2存储页。
在不断接收更新数据的过程中,如果一个顶点v的度数超过了阈值T的大小,系统就为该顶点分配一个L1索引页和第一个L1存储页(L1索引页的第一个指针项指向这一个L1存储页)。然后将cell pool中顶点v所在的cell里面的所有邻居列表数据搬移到L1存储页,最后将该cell回收到cell pool中,将cell的标识单元s置为空闲状态。
如果第一个L1存储页已满,系统就为顶点v分配第二个L1存储页(L1索引页的第二个指针项指向第二个L1存储页),依次在需要的时候才分配L1存储页。如果511个L1存储页都已存满,系统就为顶点分配一个L2索引页(L1索引页的最后一个指针项指向这个L2索引页)和第一个L2存储页。
调用hybrid update方法对顶点v的更新段Bv进行检索、插入删除操作。如图4所示,hybrid update方法具体包括如下子步骤:
步骤S51.判断顶点v的间接索引结构是否已组织为beap形式,若是,则直接采用beap-based方法来处理当前顶点v的更新;否则,则根据顶点的更新段Bv,计算更新段长度lenb和顶点v的当前度数d(v),进入步骤S52。
间接索引结构里的L1存储页就是一个数组,如果里面的元素也满足这种规则,那么就叫做已组织为beap格式。
步骤S52.分别计算batch update和beap-based update方法的更新成本costBU和costbeap
costBU=d(v)*log2lenb
步骤S53.判断costBU是否小于costbeap,若是,则采用batch update方法来处理当前顶点v的更新;否则,则将顶点v的邻居列表重构为beap形式,再采用beap-based update方法来处理当前顶点v的更新。
batch update方法
1)对于顶点v的更新段Bv={b1,b2,…bi},顺序遍历点v的邻居列表,然后将列表中的一个元素作为要查找的目标元素,判断目标元素是否在Bv中已经存在,如果已经存在,则标记Bv中的该元素,进入步骤2);否则,直接进入步骤2)
到更新段Bv中执行二分查找。
2)重复1)直到邻居列表里的全部元素都查找完;
3)顺序遍历更新段Bv,如果当前的更新bi已经被标记,则跳过该更新,如果没有被标记,就将更新bi插入到点v的邻居列表的第一个空闲的位置;
4)重复3)直到更新段Bv里的全部更新bi都处理完。
beap-based update方法
1)对于顶点v的更新段Bv={b1,b2,…bi},每次取一个更新bi,然后到beap格式的邻居列表中查找更新bi是否存在,如果已经存在,则标记Bv中的该元素,如果不存在,则进入2);
1.1)取更新bi的目的节点的值dst作为待查找的值,从beap结构最左下角的节点开始查找;
1.2)判断当前节点的值是否等于dst,若是,则返回true,标记Bv中的该元素,若否,则判断当前节点的值是否小于dst,若是,则进入1.3),若否,则进入1.4);
1.3)判断当前节点的右子节点是否存在,若是,则移动到其右子节点处,进入1.2);若否,则判断当前节点的右兄弟节点是否存在,若是,则移动到其同一层的右兄弟节点处,进入1.2),若否,则返回false且结束查找,进入2);
1.4)判断当前节点的右父节点是否存在,若是,则移动到其右父节点处,进入1.2);若否,则返回false且结束查找,进入2);
2)将未被标记的更新bi插入到邻居列表中;
2.1)取未被标记的更新bi的目的节点的值dst作为待插入的值,先将dst添加到邻居列表的末尾位置;
2.2)判断当前位置的两个父节点中(如果只有一个父节点,那就与一个父节点比较)是否有大于dst的父节点,若是,则进入2.3),若否,则插入结束;
2.3)与较大的父节点交换位置,进入2.2)。
3)重复1)-2)直到更新段Bv里的全部更新bi都处理完。
如图4所示,采用beap-based update方法来处理当前顶点v的更新图1,新插入元素20。
步骤S6.调用batch update方法处理更新,将更新数据存储到直接索引结构(cellpool)。
直接索引结构存储模型具体包括:若干基础存储单元cell,每一基础存储单元cell用于存储一个顶点(度数不大于阈值T)的邻居列表;
每一基础存储单元cell包括:位置单元id、标识单元s以及数据单元list;位置单元id用于存储这个cell在cell pool中的位置;标识单元s用于存储cell的当前状态是已被分配占用还是未分配的空闲状态;数据单元list用于存储一个顶点的所有邻居信息。
系统初始化的同时,为直接索引结构cell pool申请一块连续的M字节内存,初始化一个基础存储单元cell的大小为1字节,则cell pool中的cell数量为M,所有cell的id号集合为{1,2,….M}。同时也初始化每个顶点的新属性cellid=-1,标识顶点在cell pool中占用的cell的位置。当传入新的更新数据时,先判断顶点的cellid是否为-1,若是,则说明该顶点是第一次出现,就在cell pool中为该顶点分配第一个空闲cell的预留空间,将顶点的cellid置为该cell的id号,并将该cell的标识单元s置为已占用状态。
步骤S7.重复步骤S3~S6,直至请求队列里所有更新批次处理完。
在部分现实图数据上,本处理模型得到了较高的运行效率,如图5所示,本实施例在多个现实图和合成图数据上的运行性能,其中,livejournal,rmat(2.0),rmat(1.8)和twitter分别有484万,2000万,2000万和6157万的顶点数,属于大规模图,和Stinger处理模型实现相比,本发明模型性能提升明显,最快可以达到几乎4倍于原有模型的性能提升。
以上,仅为本申请较佳的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。

Claims (10)

1.一种基于NUMA架构的大规模流式图数据更新方法,其特征在于,该方法包括以下步骤:
S1.初始化服务器端的基础图数据,并将服务器端完整图数据各个顶点划分到不同的NUMA Node;
S2.服务器端接收客户端发送的更新批次,并依次将更新批次加入请求队列;
S3.服务器端从请求队列取出待处理更新批次,按照源节点将该更新批次划分为多个更新段,并将各个顶点的更新段分配给该顶点划分到的Node;
S4.依次处理该更新批次内的各个顶点的更新段,判断该顶点的度数是否大于阈值,若是,进入步骤S5,否则,进入步骤S6;
S5.根据顶点的更新代价较小原则,自适应选择调用batch update方法或beap-basedupdate方法更新基础图数据,将更新数据存储到间接索引结构,该间接索引结构在该顶点划分到的Node上动态分配内存;
S6.调用batch update方法更新基础图数据,将更新数据存储到直接索引结构;
S7.重复步骤S3~S6,直至请求队列里所有更新批次处理完。
2.如权利要求1所述的大规模流式图数据更新方法,其特征在于,步骤S1包括以下子步骤:
步骤S11.初始化系统的基础图数据,并将完整图数据中各顶点按照当前度数从大到小排序;
步骤S12.将完整图数据中各顶点按序均分到所有NUMA Node,使得各NUMA Node负载均衡。
3.如权利要求1所述的大规模流式图数据更新方法,其特征在于,步骤S3包括以下子步骤:
步骤S31.从请求队列取出下一个待处理的更新批次;
步骤S32.根据该更新批次中源节点划分,得到更新批次中各个顶点的更新段;
步骤S33.获取各个顶点被分配的NUMA Node,将对应更新段分配给该Node上的空闲CPU。
4.如权利要求1至3任一项所述的大规模流式图数据更新方法,其特征在于,步骤S5包括以下子步骤:
步骤S51.判断顶点v的间接索引结构是否已组织为beap形式,若是,则直接采用beap-based方法来处理当前顶点v的更新;否则,则根据顶点的更新段Bv,计算更新段长度lenb和顶点v的当前度数d(v),进入步骤S52;
步骤S52.根据更新段长度lenb和顶点v的当前度数d(v),分别计算batch update和beap-based update方法的更新成本costBU和costbeap
步骤S53.判断costBU是否小于costbeap,若是,则采用batch update方法来处理当前顶点v的更新;否则,则将顶点v的邻居列表重构为beap形式,再采用beap-based update方法来处理当前顶点v的更新。
5.如权利要求1至4任一项所述的大规模流式图数据更新方法,其特征在于,
costBU=d(v)*log2lenb
6.如权利要求1至5任一项所述的大规模流式图数据更新方法,其特征在于,间接索引结构存储模型具体包括:一个4KB的L1索引页,共包含512个指针项,前511个指针均可指向1KB大小的L1存储页,最后一个指针项可指向一个4KB的L2索引页,将索引扩展到第二级,类似地,L2索引页共包含512个指针项,所有的指针均可指向2MB大小的L2存储页。
7.如权利要求1至6任一项所述的大规模流式图数据更新方法,其特征在于,在不断接收更新数据的过程中,如果一个顶点v的度数超过了阈值,为该顶点分配一个L1索引页和第一个L1存储页,然后将直接索引结构中顶点v所在的cell里面的所有邻居列表数据搬移到L1存储页,最后将该cell回收到直接索引结构中,将cell的标识单元s置为空闲状态;如果第一个L1存储页已满,为顶点v分配第二个L1存储页,依次在需要的时候才分配L1存储页;如果所有L1存储页都已存满,为顶点分配一个L2索引页和第一个L2存储页,L1索引页的最后一个指针项指向L2索引页。
8.如权利要求1至7任一项所述的大规模流式图数据更新方法,其特征在于,直接索引结构存储模型具体包括:若干基础存储单元cell,每一基础存储单元cell用于存储一个顶点的邻居列表;每一基础存储单元cell包括:位置单元id、标识单元s以及数据单元list;位置单元id用于存储这个cell在cell pool中的位置;标识单元s用于存储cell的当前状态是已被分配占用还是未分配空闲;数据单元list用于存储一个顶点的所有邻居信息。
9.如权利要求1至8任一项所述的大规模流式图数据更新方法,其特征在于,系统初始化的同时,为直接索引结构cell pool申请一块连续的M字节内存,初始化一个基础存储单元cell的大小为1字节,则cell pool中的cell数量为M,所有cell的id号集合为{1,2,….M};同时也初始化每个顶点的新属性cellid=-1,标识顶点在cell pool中占用的cell的位置;当传入新的更新数据时,先判断顶点的cellid是否为-1,若是,则说明该顶点是第一次出现,就在cell pool中为该顶点分配第一个空闲cell的预留空间,将顶点的cellid置为该cell的id号,并将该cell的标识单元s置为已占用状态。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至9任一项所述的基于NUMA架构的大规模流式图数据更新方法。
CN201910368729.7A 2019-05-05 2019-05-05 一种基于numa架构的大规模流式图数据更新方法 Active CN110245135B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910368729.7A CN110245135B (zh) 2019-05-05 2019-05-05 一种基于numa架构的大规模流式图数据更新方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910368729.7A CN110245135B (zh) 2019-05-05 2019-05-05 一种基于numa架构的大规模流式图数据更新方法

Publications (2)

Publication Number Publication Date
CN110245135A true CN110245135A (zh) 2019-09-17
CN110245135B CN110245135B (zh) 2021-05-18

Family

ID=67883699

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910368729.7A Active CN110245135B (zh) 2019-05-05 2019-05-05 一种基于numa架构的大规模流式图数据更新方法

Country Status (1)

Country Link
CN (1) CN110245135B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112631631A (zh) * 2020-12-29 2021-04-09 中国科学院计算机网络信息中心 一种针对gpu加速多步长前缀树的更新序列维护方法
CN113326125A (zh) * 2021-05-20 2021-08-31 清华大学 大规模分布式图计算端到端加速方法及装置
CN113419862A (zh) * 2021-07-02 2021-09-21 北京睿芯高通量科技有限公司 一种面向gpu卡群的图数据划分优化方法
CN115774800A (zh) * 2023-02-10 2023-03-10 之江实验室 基于numa架构的时变图处理方法、电子设备、介质

Citations (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040036912A1 (en) * 2002-08-20 2004-02-26 Shih-Ping Liou Method and system for accessing documents in environments with limited connection speed, storage, and screen space
US20060093044A1 (en) * 2004-08-24 2006-05-04 Brad Grantham Scalable method and system for streaming high-resolution media
CN101158927A (zh) * 2007-10-25 2008-04-09 中国科学院计算技术研究所 一种内存共享的系统和装置及方法
CN101408900A (zh) * 2008-11-24 2009-04-15 中国科学院地理科学与资源研究所 一种网格计算环境下的分布式空间数据查询优化方法
CN101477496A (zh) * 2008-12-29 2009-07-08 北京航空航天大学 基于分布式内存虚拟化的numa结构的实现方法
CN101808104A (zh) * 2009-02-12 2010-08-18 李冰 一种以流式方式运行的互联网建立方法
US20100262883A1 (en) * 2009-04-14 2010-10-14 International Business Machines Corporation Dynamic Monitoring of Ability to Reassemble Streaming Data Across Multiple Channels Based on History
CN102439570A (zh) * 2011-10-27 2012-05-02 华为技术有限公司 针对多步长非一致性内存访问numa架构的内存管理方法及装置
CN102520994A (zh) * 2011-12-06 2012-06-27 北京航空航天大学 流式加载虚拟文件方法及系统
CN103260030A (zh) * 2013-04-16 2013-08-21 东南大学 面向移动终端三维模型流式传输方法
CN103699435A (zh) * 2013-12-25 2014-04-02 龙芯中科技术有限公司 负载均衡方法及装置
CN104598629A (zh) * 2015-02-05 2015-05-06 北京航空航天大学 基于流式图模型的社交网络突发事件检测方法
CN104820705A (zh) * 2015-05-13 2015-08-05 华中科技大学 一种可扩展的面向关联的流式图数据划分方法
CN104952032A (zh) * 2015-06-19 2015-09-30 清华大学 图的处理方法、装置以及栅格化表示及存储方法
CN104954477A (zh) * 2015-06-23 2015-09-30 华中科技大学 一种基于并发改进的大规模图数据流式划分方法及系统
CN105005586A (zh) * 2015-06-24 2015-10-28 华中科技大学 一种基于度特征替换策略的流式图抽样方法
CN105245912A (zh) * 2015-10-21 2016-01-13 东方网力科技股份有限公司 一种缓存视频数据及读取视频数据的方法及装置
CN106100921A (zh) * 2016-06-08 2016-11-09 华中科技大学 基于点信息同步的动态流式图并行抽样方法

Patent Citations (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040036912A1 (en) * 2002-08-20 2004-02-26 Shih-Ping Liou Method and system for accessing documents in environments with limited connection speed, storage, and screen space
US20060093044A1 (en) * 2004-08-24 2006-05-04 Brad Grantham Scalable method and system for streaming high-resolution media
CN101158927A (zh) * 2007-10-25 2008-04-09 中国科学院计算技术研究所 一种内存共享的系统和装置及方法
CN101408900A (zh) * 2008-11-24 2009-04-15 中国科学院地理科学与资源研究所 一种网格计算环境下的分布式空间数据查询优化方法
CN101477496A (zh) * 2008-12-29 2009-07-08 北京航空航天大学 基于分布式内存虚拟化的numa结构的实现方法
CN101808104A (zh) * 2009-02-12 2010-08-18 李冰 一种以流式方式运行的互联网建立方法
US20100262883A1 (en) * 2009-04-14 2010-10-14 International Business Machines Corporation Dynamic Monitoring of Ability to Reassemble Streaming Data Across Multiple Channels Based on History
CN102439570A (zh) * 2011-10-27 2012-05-02 华为技术有限公司 针对多步长非一致性内存访问numa架构的内存管理方法及装置
CN102520994A (zh) * 2011-12-06 2012-06-27 北京航空航天大学 流式加载虚拟文件方法及系统
CN103260030A (zh) * 2013-04-16 2013-08-21 东南大学 面向移动终端三维模型流式传输方法
CN103699435A (zh) * 2013-12-25 2014-04-02 龙芯中科技术有限公司 负载均衡方法及装置
CN104598629A (zh) * 2015-02-05 2015-05-06 北京航空航天大学 基于流式图模型的社交网络突发事件检测方法
CN104820705A (zh) * 2015-05-13 2015-08-05 华中科技大学 一种可扩展的面向关联的流式图数据划分方法
CN104952032A (zh) * 2015-06-19 2015-09-30 清华大学 图的处理方法、装置以及栅格化表示及存储方法
CN104954477A (zh) * 2015-06-23 2015-09-30 华中科技大学 一种基于并发改进的大规模图数据流式划分方法及系统
CN105005586A (zh) * 2015-06-24 2015-10-28 华中科技大学 一种基于度特征替换策略的流式图抽样方法
CN105245912A (zh) * 2015-10-21 2016-01-13 东方网力科技股份有限公司 一种缓存视频数据及读取视频数据的方法及装置
CN106100921A (zh) * 2016-06-08 2016-11-09 华中科技大学 基于点信息同步的动态流式图并行抽样方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112631631A (zh) * 2020-12-29 2021-04-09 中国科学院计算机网络信息中心 一种针对gpu加速多步长前缀树的更新序列维护方法
CN112631631B (zh) * 2020-12-29 2021-11-16 中国科学院计算机网络信息中心 一种针对gpu加速多步长前缀树的更新序列维护方法
CN113326125A (zh) * 2021-05-20 2021-08-31 清华大学 大规模分布式图计算端到端加速方法及装置
CN113419862A (zh) * 2021-07-02 2021-09-21 北京睿芯高通量科技有限公司 一种面向gpu卡群的图数据划分优化方法
CN113419862B (zh) * 2021-07-02 2023-09-19 北京睿芯高通量科技有限公司 一种面向gpu卡群的图数据划分优化方法
CN115774800A (zh) * 2023-02-10 2023-03-10 之江实验室 基于numa架构的时变图处理方法、电子设备、介质
CN115774800B (zh) * 2023-02-10 2023-06-20 之江实验室 基于numa架构的时变图处理方法、电子设备、介质

Also Published As

Publication number Publication date
CN110245135B (zh) 2021-05-18

Similar Documents

Publication Publication Date Title
CN110245135A (zh) 一种基于numa架构的大规模流式图数据更新方法
Shi et al. Large-scale and scalable latent factor analysis via distributed alternative stochastic gradient descent for recommender systems
CN107122248B (zh) 一种存储优化的分布式图处理方法
CN105117497B (zh) 基于Spark云网络的海洋大数据主从索引系统及方法
CN106875320B (zh) 云环境下船舶航行数据的高效可视分析方法
Zhou et al. On achieving efficient data transfer for graph processing in geo-distributed datacenters
Zhou et al. Cost-aware partitioning for efficient large graph processing in geo-distributed datacenters
WO2017207049A1 (en) A node of a network and a method of operating the same for resource distribution
CN114356544A (zh) 面向边缘集群的并行计算方法和系统
CN107992358A (zh) 一种适用于核外图处理系统的异步io执行方法及系统
CN114817648A (zh) 一种高能效协同图计算方法及装置
CN107301094A (zh) 面向大规模动态事务查询的动态自适应数据模型
CN106980540A (zh) 一种分布式多维离散数据的计算方法
CN112597076B (zh) 一种面向Spark的基于数据感知的缓存替换方法及系统
Kumar et al. Graphsteal: Dynamic re-partitioning for efficient graph processing in heterogeneous clusters
KR101780534B1 (ko) 이미지 기반 검색을 위한 맵리듀스 기반의 이미지 특징 추출 방법 및 시스템
CN111581443B (zh) 分布式图计算方法、终端、系统及存储介质
WO2015055502A2 (en) Method of partitioning storage in a distributed data storage system and corresponding device
CN114546391A (zh) 一种算子处理方法、装置、设备、系统及存储介质
CN104965737A (zh) 更新数据的获取方法及装置
CN105912404B (zh) 一种基于磁盘的大规模图数据中寻找强连通分量的方法
CN112884157B (zh) 一种模型训练方法、模型训练节点及参数服务器
CN114035906A (zh) 虚拟机迁移方法、装置、电子设备及存储介质
CN113377523A (zh) 一种异构感知的流式图划分方法
CN113259263A (zh) 一种深度报文检测集群中的数据包调度方法

Legal Events

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