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

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

Info

Publication number
CN110245135B
CN110245135B CN201910368729.7A CN201910368729A CN110245135B CN 110245135 B CN110245135 B CN 110245135B CN 201910368729 A CN201910368729 A CN 201910368729A CN 110245135 B CN110245135 B CN 110245135B
Authority
CN
China
Prior art keywords
vertex
updating
update
cell
graph data
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
CN201910368729.7A
Other languages
English (en)
Other versions
CN110245135A (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

Images

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
Figure BDA0002049127720000031
具体地,间接索引结构存储模型具体包括:一个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
Figure BDA0002049127720000091
步骤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 (8)

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

Families Citing this family (4)

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

Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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 李冰 一种以流式方式运行的互联网建立方法
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 华中科技大学 基于点信息同步的动态流式图并行抽样方法

Family Cites Families (3)

* 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
US7460126B2 (en) * 2004-08-24 2008-12-02 Silicon Graphics, Inc. Scalable method and system for streaming high-resolution media
US8266504B2 (en) * 2009-04-14 2012-09-11 International Business Machines Corporation Dynamic monitoring of ability to reassemble streaming data across multiple channels based on history

Patent Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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 李冰 一种以流式方式运行的互联网建立方法
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 华中科技大学 基于点信息同步的动态流式图并行抽样方法

Also Published As

Publication number Publication date
CN110245135A (zh) 2019-09-17

Similar Documents

Publication Publication Date Title
CN110245135B (zh) 一种基于numa架构的大规模流式图数据更新方法
CN109254733B (zh) 用于存储数据的方法、装置和***
CN108009008B (zh) 数据处理方法和***、电子设备
US9317519B2 (en) Storage system for eliminating duplicated data
JP2018518733A (ja) ファイル操作方法及び装置
CN106682215B (zh) 一种数据处理方法和管理节点
US10691601B2 (en) Cache coherence management method and node controller
KR20130020050A (ko) 로컬리티 센서티브 해시의 버킷 구간 관리 장치 및 그 방법
CN111506604A (zh) 访问数据的方法、装置和计算机程序产品
US9485309B2 (en) Optimal fair distribution among buckets of different capacities
CN104156321A (zh) 一种数据预取的方法以及装置
CN111338765B (zh) 基于猫群算法的虚拟机部署方法、装置、设备及存储介质
CN108319634B (zh) 分布式文件***的目录访问方法和装置
CN103778067A (zh) Java卡的对象处理方法、装置和Java卡
CN106980540B (zh) 一种分布式多维离散数据的计算方法
CN107209761B (zh) 一种数据访问方法、装置及***
CN111898276A (zh) 架空线路的模型处理方法、装置、计算机设备和介质
CN116737370A (zh) 一种多资源调度方法、***、存储介质及终端
CN115964002A (zh) 一种电能表终端档案管理方法、装置、设备及介质
CN111475424A (zh) 用于管理存储***的方法、设备和计算机程序产品
JP2018511131A (ja) オンライン媒体のための階層的なコストベースのキャッシング
CN115473895A (zh) 泛在环境下的数字对象仓库节点共识组划分方法和装置
CN115393382A (zh) 地图中体素查找方法、装置、计算机设备和存储介质
US11435926B2 (en) Method, device, and computer program product for managing storage system
CN112100446B (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