CN111292225A - 对图形数据进行分区以进行大规模图形处理 - Google Patents
对图形数据进行分区以进行大规模图形处理 Download PDFInfo
- Publication number
- CN111292225A CN111292225A CN201911232269.1A CN201911232269A CN111292225A CN 111292225 A CN111292225 A CN 111292225A CN 201911232269 A CN201911232269 A CN 201911232269A CN 111292225 A CN111292225 A CN 111292225A
- Authority
- CN
- China
- Prior art keywords
- partition
- vertex
- destination
- data
- partitions
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2053—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
- G06F11/2056—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Quality & Reliability (AREA)
- Image Generation (AREA)
Abstract
发明性方面包括用于对大规模图形的图形数据进行分区和处理的方法、装置和系统。这可以包括在分区预处理步骤中,将多个目的顶点分配给多个分区,以使得多个目的顶点中的每个目的顶点被唯一地分配给多个分区当中的仅一个分区。这还可以包括,在外部图形处理步骤的主执行中,(i)将多个分区当中的目的顶点的给定分区从固态驱动器(SSD)加载到计算机器的主存储器中,(ii)将源顶点数据的一个或多个块从SSD流传输到计算机器的主存储器中,并且(iii)至少基于加载的目的顶点的给定分区和流传输的源顶点数据的一个或多个块来执行图形处理。
Description
技术领域
本发明构思涉及大规模图形处理,更具体地,涉及用于对大规模图形处理进行分区的图形数据协调器和方法。
背景技术
大规模图形处理被广泛用于社交网络分析、推荐系统以及从人类基因中提取特征。随着图形数据集大小随着时间的推移增长,将所有图形数据存储在主存储器中(例如,存储在易失性存储器(诸如,通常被称为DRAM的动态随机存取存储器)中)不再有效也不可行。因此,快速发展的图形数据集大小要求将图形数据存储在非易失性驱动器(诸如,固态驱动器(solid state drive,SSD))上。这会导致对SSD的许多细粒度(fine-grained)的随机访问,从而延迟图形分析应用的执行并缩短了SSD的寿命。在将所有图形数据存储在SSD上并将数据加载到主存储器以运行外部图形处理的一种类型的图形处理框架中,中间细粒度数据首先记录(log)在SSD上,在每次迭代后进行分类(sort),并且最后存储在SSD上。分类阶段会增加大量开销,并增加执行时间。此外,考虑到图形数据集大小正在增长,分类的成本会随着时间的推移而显著加重。
需要一种用于对图形数据进行分区以进行大规模图形处理的改进的图形数据协调器和方法。
发明内容
实施例可以包括用于对图形数据进行分区以进行大规模图形处理的计算机实施的方法。该方法可以包括,在分区预处理步骤中,将多个目的顶点分配(assign)给多个分区,使得多个目的顶点中的每个目的顶点被唯一地分配给多个分区当中的仅一个分区。该方法可以包括,在外部图形处理步骤的主执行(main execution)中,(i)将多个分区当中的目的顶点的给定分区从固态驱动器(SSD)加载到计算机器的主存储器中,(ii)将源顶点数据的一个或多个块从SSD流传输(stream)到计算机器的主存储器中,并且(iii)至少基于加载的目的顶点的给定分区和流传输的源顶点数据的一个或多个块来执行图形处理。
一些实施例包括一种计算机器,该计算机器包括图形数据协调器逻辑部分,该图形数据协调器逻辑部分被配置为执行分区预处理步骤,以将多个目的顶点分配给多个分区,使得多个目的顶点中的每个目的顶点被唯一地分配给多个分区当中的仅一个分区。该图形数据协调器逻辑部分被配置为执行外部图形处理步骤的主执行。该图形数据协调器逻辑部分被配置为将多个分区当中的目的顶点的给定分区从固态驱动器(SSD)加载到计算机器的主存储器中。该图形数据协调器逻辑部分被配置为将源顶点数据的一个或多个块从SSD流传输到计算机器的主存储器中。该图形数据协调器逻辑部分被配置为至少基于加载的目的顶点的给定分区和流传输的源顶点数据的一个或多个块来执行图形处理。
附图说明
通过参考附图进行的以下详细描述,本发明原理的前述和附加特征以及优点将变得更加清楚,其中:
图1是根据本文公开的实施例的包括各种分区的目的顶点表的示例图形,其中每个分区包括顶点。
图2是根据本文公开的实施例的包括各种分区的源顶点表的示例图形,其中每个分区包括顶点ID、值、关联索引和边数据。
图3A是示出根据本文公开的实施例的用于执行贪婪分区预处理步骤、并随后执行外部图形处理的主执行的技术的示例流程图。
图3B是示出根据本文公开的实施例的图3A的贪婪分区预处理步骤的附加细节的示例流程图。
图4A是根据本文公开的实施例的包括图形数据协调器逻辑部分的计算机器以及主存储器和SSD之间的数据的流程和处理的示例框图和流程图。
图4B是根据本文公开的实施例的包括图形数据协调器逻辑部分的图4A的计算机器以及主存储器和SSD之间的附加数据的流程和处理的示例框图和流程图。
图5是根据本文公开的实施例的目的顶点表、目的顶点的元数据以及多个源顶点表的示例框图和流程图。
图6是根据本文公开的实施例的包括图形数据协调器逻辑部分的计算机器以及主存储器和SSD之间的数据的更全面的流程和处理的示例框图和流程图。
图7是根据本文公开的实施例的包括图形数据协调器逻辑部分的计算系统的示例框图。
具体实施方式
现在将详细参考本发明构思的实施例,其示例在附图中示出。在下面的详细描述中,阐述了许多具体细节以使得能够全面理解本发明构思。然而,应当理解,本领域普通技术人员可以在没有这些具体细节的情况下实践本发明构思。在其他情况下,没有详细描述公知的方法、过程、组件、电路和网络,以免不必要地使实施例的各方面模糊。
应当理解,尽管术语第一、第二等在本文中可用于描述各种元件,但是这些元件不应被这些术语的限制。这些术语仅用于区分一个元件和另一个元件。例如,在不脱离本发明构思的范围的情况下,第一图形可以被称为第二图形,并且类似地,第二图形可以被称为第一图形。
在本发明构思的描述中使用的术语仅出于描述特定实施例的目的,并且不旨在限制本发明构思。如在本发明构思的描述和所附权利要求中所使用的,单数形式“一”、“一个”和“该”也旨在包括复数形式,除非上下文另外明确指出。还应理解,本文所使用的术语“和/或”是指并涵盖相关联的所列项目中的一个或多个的任何和所有可能的组合。还应理解,术语“包括”和/或“包含”在本说明书中使用时,指定所述特征、整数、步骤、操作、元件和/或组件的存在,但是不排除一个或多个其他特征、整数、步骤、操作、元件、组件和/或其组合的存在或添加。附图的组件和特征不一定按比例绘制。
为了有效地利用SSD的可用容量并加快图形应用的执行,本文公开的实施例对图形数据进行分区,使得与每个分区相关联的顶点数据适合(fit in)DRAM并被立即更新。一旦处理了每个分区,将其相关联的数据写回到SSD。因此,细粒度的访问发生在主存储器DRAM中而不是SSD中。这提供了对SSD的顺序粗粒度(coarse-grained)访问,并有助于减少大规模图形分析的执行时间。
本文公开的实施例包括用于顶点数据的贪婪分区机制,使得一组分区当中的每个分区中的目的顶点容易适合主存储器DRAM空间,因此消除对中间细粒度数据进行分类的需要。分区在执行之前作为预处理阶段进行。
顶点可以是基于目的顶点的分区数据。细粒度和慢速I/O访问可以取而代之地被转换为高速存储器访问。随机的细粒度I/O访问可以被合并,并被做成顺序的粗粒度访问。另一个优点是消除了对执行的每次迭代中生成的中间数据进行分类的通常需求。
图1是根据本文公开的实施例的目的顶点表100的示例图形,所述目的顶点表100包括各种分区(例如,分区0、分区1至分区N),其中每个分区包括顶点(例如,顶点“0”、顶点“1”等)。图2是根据本文公开的实施例的源顶点表200的示例图形,所述源顶点表200包括各种分区(例如,分区0、分区1至分区N),其中每个分区包括顶点ID&值205、关联索引210和边数据215。现在参考图1和图2。
本文公开的实施例包括当在非常大的图形数据集上运行时用于外部图形处理的贪婪分区机制。图形包括顶点集和连接那些顶点的边集。连接到每个顶点“v”的顶点称为“v”的邻接点(neighbor)。对于顶点“u”,边“e”(即,用“→”表示的,诸如“u→v”)称为“u”的“出边(out edge)”和“v”的“入边(in edge)”。为了处理图形,每个顶点都需要具有其邻接点的信息(例如,ID和值等)。
如图1和图2所示,目的顶点表100和源顶点表200可用于处理大规模图形。图形数据可以存储在两个部分中:(i)顶点ID和值205(例如,诸如其在PageRank中的秩)以及指示顶点的邻接点的开始偏移(例如,偏移A、偏移B至偏移N等)的索引210;以及(ii)边数据215,其包括每个顶点的邻接点集(例如,相邻顶点的ID)和任何边信息(例如,距源点的距离)。每个分区(例如,分区0、分区1等)的源顶点(例如,顶点“A”、顶点“B”等)可以被划分为镜像顶点(例如,225)和主顶点(例如,230),如下文进一步所述。
对于处理大规模图形,采用以顶点为中心的处理模型,以使得能够以分布式方式将外部图形处理执行并行化。优选地,使用单个离散机器(诸如,单个计算机服务器)来实现该处理模型。在一些实施例中,可以使用多个处理单元或处理线程来执行将图形处理并行化,使得每个顶点运行读取当前顶点信息及其相邻顶点的顶点程序。在运行(由图形处理技术指定的)一些计算之后,顶点可能需要对其自身进行更新和/或将更新发送到其邻接点。采用以顶点为中心的执行模型的图形处理架构可以将顶点数据存储在主存储器(例如,DRAM)上,并且将边数据存储在辅存储器(例如,SSD)上。按照惯例,对相邻顶点的更新需要许多细粒度的随机访问,因为每个相邻顶点的值可以小到4个字节的整数。根据本文公开的实施例,当将顶点数据存储在可字节寻址的主存储器中时,这些细粒度的随机更新发生在能够更好地处理它们的主存储器中。另一方面,对边数据的访问通常是顺序的,并且更粗粒度的,并且因此几乎可以被SDD很好地处理。
随着图形数据集大小的增长,即使将顶点数据存储在主存储器中也需要大量的DRAM空间,而DRAM空间比SSD空间更昂贵。因此,考虑到用于运行图形应用的DRAM空间的量是有限的,即使顶点数据也需要存储在SSD上,并以不同的时间间隔读入主存储器。当将顶点数据存储在SSD上时,由于访问粒度是SSD页面(例如,8KB),每个细粒度的随机更新(例如,4B)将另外强制整个SSD页面写入。否则,SSD页面大小和顶点值更新之间的不匹配将严重损害SSD的寿命和应用性能。相反,本文公开的实施例对顶点数据使用低成本的分区机制,该机制可以在预处理阶段离线进行,从而将对相邻顶点的细粒度随机更新转换为粗粒度顺序访问,以便有效地提高SSD的寿命和应用性能。
本文公开的实施例对顶点数据进行分区,并通过将其各自的顶点数据读入主存储器中、随后将边数据从辅存储装置(例如,SSD)流传输到主存储器,来处理每个分区。所公开的分区机制采用贪婪技术对顶点数据进行分区。由于在每次迭代中,更新发生在目的顶点上,因此本文公开的实施例(i)划分目的顶点(例如,顶点“0”、顶点“1”至顶点“N”)并将它们的每个子集分配给对应的分区(例如,分区“0”、分区“1”至分区“N”),以及(ii)分开存储与每个分区相关联的目的顶点的“入边”及其索引信息。因此,在执行预处理/分区图形数据步骤之后,如下文进一步所述,以下三个文件可以存储在SSD上并被连续处理:(i)目的顶点数据(例如,目的顶点表100),(ii)源顶点数据及其邻接点的索引信息(例如,源顶点表200),所述邻接点的ID被存储在(iii)边数据(例如,边数据215)中。
用于顶点数据的贪婪分区技术可以作为预处理步骤(例如,离线)执行。可以在SSD上对顶点数据进行分区,使得每个目的顶点被分配给仅仅一个分区。每个分区的目的顶点数据被传送到存储器,并一直保留在那里直到分区被处理。其余数据(例如,源顶点数据和边数据)可以按块从SDD流传输到主存储器中,如下文进一步描述。即使单个机器具有有限的量的主存储器,这也使得能够在单个离散机器上运行外部图形处理。
图3A是示出根据本文公开的实施例的用于执行贪婪分区预处理步骤305、并随后执行外部图形处理的主执行310的技术的示例流程图300。该技术始于305,其中执行贪婪分区预处理步骤305,下面将参考图3B对贪婪分区预处理步骤305进行详细描述。在贪婪分区预处理步骤305之后,在310执行外部图形处理的主执行,下面参考图4A、图4B、图5和图6进一步详细描述所述主执行。
图3B是示出根据本文公开的实施例的图3A的贪婪分区预处理步骤305的附加细节的示例流程图。经由该分区预处理步骤305,目的顶点(例如,顶点“0”、顶点“1”、顶点“2”等)被唯一地分配给每个分区(例如,分区“0”)。换句话说,可以在SSD上对顶点数据进行分区,使得每个目的顶点被分配给仅仅一个分区。然而,源顶点(例如,顶点“A”、顶点“B”、顶点“C”等)可以在不同分区(例如,分区1、分区N等)上具有重复项(duplicate)。该贪婪分区的目的是在保留目的顶点唯一性的同时,最小化重复顶点(即,在本文中通常称为“镜像”)的数量。
如315所指示的,对于每条边“e”(即,u→v):如320所指示的,当顶点“v”已经被分配给分区“P”时,如325所指示的,只要顶点“u”尚未存在于该分区上,则如330所指示的,顶点“u”被添加到同一分区“P”。换句话说,当顶点“u”尚未存在于分区“P”上时,顶点“u”被添加到分区“P”。
返回参考320,当顶点“v”尚未被分配给任何分区时,在335检查顶点“u”。在335,当顶点“u”已经被分配给分区集{P1,P2,…}时,则在340处选择包括最少数量的边的分区,并且顶点“v”可以被添加到该分区或以其他方式分配给该分区。否则,当在335处顶点“u”尚未被分配给任何分区时,在345处,顶点“u”和“v”可以被添加到或以其他方式分配给具有最少数量的边的分区。
这种贪婪分区预处理技术能够确保每个目的顶点都被唯一地分配给分区,并且它没有任何镜像。换句话说,尽管源顶点可能具有镜像,但可以保证目的顶点没有镜像。在这个阶段之后,目的顶点的标签可以根据其新次序而变化。这些变化也可以反映在相应的源顶点和边数据上。此外,当处理每个分区时,每个分区的目的顶点可以适合主存储器,并因此得到更新。当贪婪分区预处理步骤305完成时,则可以对分区后的图形数据执行图形处理技术310。贪婪分区可以离线执行并且作为预处理步骤执行,其延迟时间不会负面影响图形处理技术的执行时间的延迟。接下来,用于图形处理技术执行的执行模型被描述。
图4A是根据本文公开的实施例的包括图形数据协调器逻辑部分405的计算机器402以及主存储器410和SSD 415之间的数据的流程和处理的示例框图和流程图400。
可以连续地处理(例如,来自目的顶点表100的)分区。对于每个分区,可以执行一系列处理步骤。首先,与给定分区“P”相关联的目的顶点数据可以由图形数据协调器逻辑部分405在425处从诸如SSD 415的盘加载到主存储器410中。第二,取决于图形处理技术,源顶点数据的子集或整个源顶点数据430以源顶点数据430的流式块435的方式从SSD 415传送到主存储器410中,并随后被处理。更具体地说,源顶点数据的块435(例如,32MB)可以从SSD415传送到主存储器410,包括顶点值(例如,图2中的210)和索引(例如,图2的210)以定位其相邻顶点。在一些实施例中,所有或基本上所有的源顶点数据以32MB的块435的方式被流传输到主存储器410中。然而,将理解的是,在不脱离本文公开的发明构思的情况下,块435可以具有不同的大小,诸如16MB或64MB。这进一步提供了并行的机会。该步骤和下面的步骤可以并行(即,同时)运行。此外,可以即时地(即,实时地)或者在源顶点数据430被完全传送到主存储器410中时做出关于哪个顶点数据当前是活动的决定。因此,由图形数据协调器逻辑部分405、微处理器440或两者来确定活动源顶点数据的信息,并处理活动顶点集445。
可以按次序处理活动顶点列表450。对于活动顶点列表450中的每个源顶点,可以从顶点数据445中提取其邻接点的索引,所述索引指示边数据文件(例如,图2的215)中的其邻接点的字节偏移(例如,偏移A、偏移B等)。通过读取两个索引(即,两个连续顶点的开始索引),图形数据协调器逻辑部分405可以提取该顶点的邻接点的开始字节偏移和结束字节偏移,并将它们从SSD 415传送到主存储器410,如460所示。随后,对于存在于主存储器410中的源数据430的块(例如435),运行图形处理技术所需的所有信息都存在于主存储器410中,包括当前分区中的源顶点值、目的顶点以及与该源数据块435相关联的源顶点的相邻信息。这意味着对源顶点的相邻顶点的所有更新都可以发生在存在于主存储器410中的目的顶点集,并因而消除了当在SSD 415中执行这样的操作时对细粒度随机I/O访问或者可能另外需要的分类开销的需求。
接下来,在455处,可以对每个源顶点运行图形处理技术,并为目的顶点生成更新。作为示例,在PageRank算法中,每个源顶点的秩(即,值)被发送到目的顶点。秩在每个顶点数据中累积,并按为此算法指定的因子衰减(dampen)(例如,除以0.15)。当与当前分区相关联的源数据的处理(例如,455)完成时,该分区(例如,分区“P”)的更新后的目的顶点数据465可以存储在SSD 415上。
在执行的每次迭代中,对于给定的分区“P”,图形数据协调器逻辑部分405可以执行以下操作:i)将给定分区“P”的顶点数据425从SSD 415加载到主存储器410;ii)将给定分区“P”的源顶点数据430从SSD 415流传输到主存储器410中(例如,通过一次读取32MB的数据块来流传输);iii)通过从SSD 415访问边数据文件(例如,图2的215)来读取源顶点的每个块的相邻信息460。针对每个源顶点(例如,顶点“A”、顶点“B”等)的在边文件215中的邻接点的偏移(例如,偏移“A”、偏移“B”等)可以作为偏移存储在源顶点数据文件200中。图形数据协调器逻辑部分405可以运行图形处理技术,然后更新主存储器410中的分区“P”的目的顶点。当对分区“P”的处理完成时,图形数据协调器逻辑部分405可以在455处更新目的顶点,并将分区“P”的更新后的目的顶点存储在SSD 415上。图形数据协调器逻辑部分405可以遍历分区中的每一个,执行这些步骤中的每一个。当所有分区已经被处理时,图形数据协调器逻辑部分405可以读取每个分区的目的顶点数据并更新其他分区上的对应镜像,如下面参考图4B和图5进一步描述的。
图4B是根据本文公开的实施例的包括图形数据协调器逻辑部分405的图4A的计算机器402以及主存储器410和SSD 415之间的附加数据(例如,470和475)的流程和处理的示例框图和流程图404。图5是根据本文公开的实施例的目的顶点表100、目的顶点的元数据505以及多个源顶点表(例如,510和515)的示例框图和流程图500。现在参考图2、图4B和图5。
当所有分区(例如,图2的分区“0”、分区“1”至分区“N”)被处理时,如图4B所示,在485处每个顶点的镜像480(即,重复的顶点)被更新。通常,每个分区(例如,图2的分区“0”、分区“1”等)的源顶点(例如,图2的顶点“A”、顶点“B”等)被划分为镜像顶点(例如,图2的225)和主顶点(例如,图2的230),其中,镜像225按其分区ID的次序存储。因此,所有分区在对应于第二分区的镜像之前存储第一分区的镜像(例如,225)。这使得能够对镜像480进行顺序更新。为了更新不同分区上的镜像顶点480的值,可以从SSD 415读取每个分区的目的顶点数据(例如,470)。基于存储为元数据的针对每个分区的索引,图形数据协调器逻辑部分405可以确定目的顶点的每个部分的更新位置。为目的顶点(例如,图5的顶点“0”)维持的元数据505包括每个顶点的镜像480的分区ID(例如,520)和每个分区(例如,分区1、分区i等)的偏移(例如,图5的偏移A、偏移N等)。元数据505可以包括给定分区(例如,分区“P”)对于其他分区(例如,分区1、分区i等)中的每一个的镜像480的开始索引525和结束索引530。
图5展现了每个分区的元数据结构。注意,利用所公开的数据结构,由于数据被顺序地从目的顶点(例如,分区“P”的顶点“0”、顶点“1”等)读取并被存储在每个源顶点分区(例如,分区“1”、分区“i”等)的不同偏移上,因此更新其他分区(例如,图5的分区1至分区i)上的镜像480可以并行地进行。通过迭代本文公开的步骤,每个分区被处理,从而更新针对其他分区(例如,分区“1”、分区“i”等)的(例如,分区“P”的)镜像480。
因此,在读取给定分区“P”的目的顶点并读取给定分区“P”的元数据之后,可以确定在其他分区上的给定分区“P”的镜像的开始/结束索引。对于给定分区“P”中的顶点,图形数据协调器逻辑部分405可以确定所述顶点的镜像驻留在哪些分区中。作为一个实施例,由于源顶点被分类,因此对分区的更新是顺序的。
下面的表1说明了用于如图4A、图4B、图5和图6所示更新镜像的伪代码:
图6是根据本文公开的实施例的包括图形数据协调器逻辑部分405的计算机器402以及主存储器410和SSD 415之间的更全面的数据的流程和处理的示例框图和流程图600。上面详细讨论了一些组件和相关联的附图标记,因此,不必重复对这些组件的详细描述。特别值得注意的是,图6所示的过程将图4A和图4B的一些元素组合成单个更精简的(streamlined)过程。在先前的情况下,在将所有分区写入SSD 415之后,再次从SSD 415读取每个分区,生成镜像更新,然后将更新写回到SSD415。为减少I/O访问的数量,在将每个分区写入SSD 415之前,可以在685处即时完成对其他分区的镜像更新。具体而言,可以在将更新后的顶点数据写入SSD 415之前读取每个分区(例如,分区“P”)的元数据605。可以在685处生成与给定分区(例如,分区“P”)相关联的其他分区(例如,分区“1”、分区“i”等)的镜像更新,并且在移动到下一个分区以重复每个步骤之前,可以在465处将其他分区的包括镜像的所有更新后的顶点数据写入SSD 415。如图6所示,该方法不需要对与图4B所示的方案相关联的目的顶点数据(例如470)的额外读取。
本公开设计了用于外部图形处理中的顶点数据的贪婪分区技术。每个分区的顶点数据足够小以适合主存储器,因此仅需要将当前分区的目的顶点数据固定在存储器中。其余数据可以以流传输的方式在存储器中传输和处理。可以按分类的次序为每个分区存储源顶点。在更新镜像时,所有更新可以是顺序的。可以并行地进行对源顶点数据和边数据的访问(即,启用高级别的并行性),其中每个线程读取源顶点数据的不同块并更新目的顶点数据。分区可以在主过程执行之前被执行,从而导致一次性成本,因为它仅在预处理步骤中发生一次。本文提供了每个分区的数据结构,以使得能够进行顺序访问。镜像可以在每次迭代结束时进行更新。每个分区的元数据可用于提取镜像在其他分区上的位置。可以读取每个分区的目的顶点数据,并且可以并行更新镜像。
图7是根据本文公开的发明构思的实施例的包括图形数据协调器逻辑部分730的计算系统700的示例框图。图形数据协调器逻辑部分730可以与本文公开的图形数据协调器逻辑部分405相同,并且可以电连接到系统总线705。计算系统700还可以包括时钟710、随机存取存储器(RAM)和/或闪存715、存储器控制器745、用户接口720和/或调制解调器725(诸如,基带芯片组),它们中的任何一个或全部都可以电耦合到系统总线705。
如果计算系统700是移动设备,则它还可以包括电池740,该电池740为计算系统700供电。尽管图7中未示出,计算系统700还可以包括应用芯片组、相机图像处理器(cameraimage processor,CIS)、移动DRAM等。存储器控制器745和闪存715可以构成固态驱动器/盘(solid state drive/disk,SSD),其使用非易失性存储器来存储数据。
在示例实施例中,计算系统700可以用作计算机、便携式计算机,超移动PC(UltraMobile PC,UMPC)、工作站、上网本、PDA、网络平板计算机、无线电话、移动电话、智能电话、电子书、PMP(portable multimedia player,便携式多媒体播放器)、数码相机、数字音频记录器/播放器、数字图片/视频记录器/播放器、便携式游戏机、导航系统、黑匣子、3维电视机、能够在无线环境中发送和接收信息的设备、构成家庭网络的各种电子设备之一、构成计算机网络的各种电子设备之一、构成远程信息处理网络的各种电子设备之一、RFID或构成计算系统的各种电子设备之一。
上述方法的各种操作可以通过能够执行所述操作的任何合适的装置(诸如(多个)各种硬件和/或软件组件、电路和/或(多个)模块)来执行。
实施例可以包括用于对图形数据进行分区以进行大规模图形处理的计算机实施的方法。该方法可以包括,在分区预处理步骤中,将多个目的顶点分配给多个分区,使得多个目的顶点中的每个目的顶点被唯一地分配给多个分区当中的仅一个分区。该方法可以包括,在外部图形处理步骤的主执行中,(i)将多个分区当中的目的顶点的给定分区从固态驱动器(SSD)加载到计算机器的主存储器中,(ii)将源顶点数据的一个或多个块从SSD流传输到计算机器的主存储器中,以及(iii)至少基于加载的目的顶点的给定分区和流传输的源顶点数据的一个或多个块来执行图形处理。
所述计算机实施的方法还可以包括,至少基于流传输的源顶点数据的一个或多个块来更新加载的目的顶点的给定分区。该方法还可以包括将目的顶点的更新后的分区从主存储器写入SSD。该方法还可以包括将目的顶点的更新后的分区从SSD加载到主存储器。该方法还可以包括对于与给定分区相关联的多个其他分区,生成与目的顶点相关联的镜像的镜像更新。
生成镜像更新还可以包括基于分区标识符(ID)顺序地更新镜像。写入目的顶点的更新后的分区还可以包括将给定分区的镜像顺序地存储在多个其他分区中的每一个中。计算机器可以是单个离散机器。分区预处理步骤还可以包括:对于顶点“u”与顶点“v”以“u→v”关系相关联的边列表中的每条边“→”,确定顶点“v”是否已经被分配给分区“P”。响应于确定顶点“v”已经被分配给分区“P”,该方法可以包括确定顶点“u”是否已经存在于分区“P”上。响应于确定顶点“u”在分区“P”上尚不存在,该方法可以包括将顶点“u”添加到分区“P”。分区预处理步骤可以包括:响应于确定顶点“v”尚未被分配给分区“P”,确定顶点“u”是否已被分配给分区集{P1,P2,...至PN}。响应于确定顶点“u”已经被分配给分区集{P1,P2,…至PN},该方法可以包括从分区集中选择具有最少数量的边的分区,并将顶点“v”添加到所选分区。
分区预处理步骤还可以包括:响应于确定顶点“u”尚未被分配给分区集{P1,P2,...至PN},将顶点“u”分配给分区集中具有最少数量的边的分区,并将顶点“v”分配给分区集中具有最少数量的边的分区。该计算机器可以包括微处理器和图形数据协调器逻辑部分。分区预处理步骤可以由微处理器和图形数据协调器逻辑部分执行。外部图形处理步骤的主执行可以由微处理器和图形数据协调器逻辑部分执行。
一些实施例包括计算机器,所述计算机器包括图形数据协调器逻辑部分,所述图形数据协调器逻辑部分被配置为执行分区预处理步骤,以将多个目的顶点分配给多个分区,使得多个目的顶点中的每个目的顶点被唯一地分配给多个分区当中的仅一个分区。图形数据协调器逻辑部分被配置为执行外部图形处理步骤的主执行。图形数据协调器逻辑部分被配置为将多个分区当中的目的顶点的给定分区从固态驱动器(SSD)加载到计算机器的主存储器中。图形数据协调器逻辑部分被配置为将源顶点数据的一个或多个块从SSD流传输到计算机器的主存储器中。图形数据协调器逻辑部分被配置为至少基于加载的目的顶点的给定分区以及流传输的源顶点数据的一个或多个块来执行图形处理。
图形数据协调器逻辑部分被配置为至少基于流传输的源顶点数据的一个或多个块来更新加载的目的顶点的给定分区。图形数据协调器逻辑部分被配置为将目的顶点的更新后的分区从主存储器写入SSD。图形数据协调器逻辑部分被配置为将目的顶点的更新后的分区从SSD加载到主存储器,并且对于与给定分区相关联的多个其他分区,生成与目的顶点相关联的镜像的镜像更新。
图形数据协调器逻辑部分被配置为对于与给定分区相关联的多个其他分区,生成与目的顶点相关联的镜像的镜像更新,并将目的顶点的更新后的分区从主存储器写入SSD。图形数据协调器逻辑部分被配置为基于分区标识符(ID)顺序地更新镜像。图形数据协调器逻辑部分被配置为写入目的顶点的更新后的分区,并且将给定分区的镜像顺序地存储在多个其他分区中的每一个中。
结合本文公开的实施例描述的方法或算法和功能的块或步骤可以直接具体体现在硬件中、具体体现在由处理器执行的软件模块中或具体体现在两者的组合中。如果被实施在软件中,则所述功能可以作为一个或多个指令或代码存储在有形的非暂时性计算机可读介质上或作为一个或多个指令或代码通过有形的非暂时性计算机可读介质传输。软件模块可以驻留在随机存取存储器(Random Access Memory,RAM)、闪存、只读存储器(ReadOnly Memory,ROM)、电可编程ROM(Electrically Programmable ROM,EPROM)、电可擦除可编程ROM(Electrically Erasable Programmable ROM,EEPROM)、寄存器、硬盘、可移动盘、CD ROM或本领域已知的任何其他形式的存储介质中。
以下讨论旨在提供对其中能够实施本发明构思的某些方面的一个或多个合适的机器的简要、概括描述。通常,一个或多个机器包括:系统总线,处理器附接到所述系统总线;存储器,例如,RAM、ROM或其他状态保存介质;存储设备;视频接口;和输入/输出接口端口。可以至少部分地通过来自传统输入设备(诸如,键盘、鼠标等)的输入以及通过从另一机器接收的指令、与虚拟现实(virtual reality,VR)环境的交互、生物特征反馈或其他输入信号来控制所述一个或多个机器。如本文所使用的,术语“机器”旨在广泛地涵盖单个离散机器、虚拟机、或者通信耦合的机器、虚拟机或一起操作的设备的系统。示例性机器包括诸如个人计算机、工作站、服务器、便携式计算机、手持式设备、电话、平板计算机等的计算设备,以及诸如私人或公共交通工具(例如,汽车、火车、出租车等)的运输设备。
一个或多个机器可以包括嵌入式控制器,诸如,可编程或非可编程逻辑器件或阵列、专用集成电路(application specific integrated circuits,ASIC)、嵌入式计算机、智能卡等。一个或多个机器可以诸如通过网络接口、调制解调器或其他通信耦合,来利用到一个或多个远程机器的一个或多个连接。机器可以通过物理和/或逻辑网络(诸如内联网、因特网、局域网、广域网等)互连。本领域技术人员将理解,网络通信可以利用各种有线和/或无线短距离或长距离载波和协议,所述载波和协议包括射频(radio frequency,RF)、卫星、微波、电气和电子工程师协会(Institute of Electrical and ElectronicsEngineers,IEEE)545.11、光纤、红外、电缆、激光等。
可以参考或结合包括功能、程序、数据结构、应用程序等的关联数据来描述本发明构思的实施例,所述关联数据在被机器访问时导致机器执行任务或定义抽象数据类型或低级硬件上下文。例如,关联数据可以存储在易失性和/或非易失性存储器(例如,RAM、ROM等)中、或存储在其他存储设备及其相关联的存储介质(包括硬盘驱动器、软盘、光储存器、磁带、闪存、记忆棒、数字视频盘、生物储存器等)中。关联数据可以通过传输环境(包括物理和/或逻辑网络)以分组、串行数据、并行数据、传播信号等形式来传递,并且可以以压缩或加密格式使用。关联数据可以在分布式环境中使用,并且可以本地和/或远程存储以供机器访问。
已经参考所示的实施例描述和图示了本发明构思的原理,将认识到,所示的实施例可以在不脱离这些原理的情况下在布置和细节上进行修改,并且可以以任何期望的方式进行组合。尽管前述讨论已经集中于特定实施例,但是其他配置也被构想。具体地,即使在本文中使用诸如“根据本发明构思的实施例”的表达,这些短语也意在大体上引用实施例可能性,而不意图将本发明构思限于特定的实施例配置。如本文所使用的,这些术语可以引用可组合成其他实施例的相同或不同的实施例。
本发明构思的实施例可以包括一种非暂时性机器可读介质,所述非暂时性机器可读介质包括可由一个或多个处理器执行的指令,所述指令包括用于执行本文所描述的本发明构思的元素的指令。
前述说明性实施例不应解释为限制其发明构思。尽管已经描述了一些实施例,但是本领域技术人员将容易理解,在不实质脱离本公开的新颖教导和优点的情况下,可以对那些实施例进行许多修改。因此,所有这样的修改旨在被包括在如权利要求书所限定的本发明构思的范围内。
Claims (20)
1.一种用于对图形数据进行分区以进行大规模图形处理的计算机实施的方法,所述方法包括:
在分区预处理步骤中,将多个目的顶点分配给多个分区,使得所述多个目的顶点中的每个目的顶点被唯一地分配给所述多个分区中的仅一个分区;以及
在外部图形处理步骤的主执行中,(i)将所述多个分区当中的目的顶点的给定分区从固态驱动器SSD加载到计算机器的主存储器中,(ii)将源顶点数据的一个或多个块从所述SSD流传输到所述计算机器的主存储器中,以及(iii)至少基于加载的目的顶点的给定分区和流传输的源顶点数据的一个或多个块来执行图形处理。
2.根据权利要求1所述的计算机实施的方法,还包括至少基于流传输的源顶点数据的一个或多个块来更新目的顶点的给定分区。
3.根据权利要求2所述的计算机实施的方法,还包括将目的顶点的更新后的分区从所述主存储器写入所述SSD。
4.根据权利要求3所述的计算机实施的方法,还包括:
将目的顶点的更新后的分区从所述SSD加载到所述主存储器;以及
对于与所述给定分区相关联的多个其他分区,生成与所述目的顶点相关联的镜像的镜像更新。
5.根据权利要求2所述的计算机实施的方法,还包括:
对于与所述给定分区相关联的多个其他分区,生成与所述目的顶点相关联的镜像的镜像更新;以及
将目的顶点的更新后的分区从所述主存储器写入所述SSD。
6.根据权利要求5所述的计算机实施的方法,其中,生成镜像更新还包括基于分区标识符ID顺序地更新所述镜像。
7.根据权利要求5所述的计算机实施的方法,其中,写入目的顶点的更新后的分区包括将所述给定分区的镜像顺序地存储在所述多个其他分区中的每一个中。
8.根据权利要求1所述的计算机实施的方法,其中,所述计算机器是单个机器。
9.根据权利要求1所述的计算机实施的方法,其中,所述分区预处理步骤还包括:
对于顶点“u”与顶点“v”以“u→v”关系相关联的边列表中的每条边“→”,确定所述顶点“v”是否已经被分配给分区“P”;
响应于确定所述顶点“v”已经被分配给所述分区“P”,确定所述顶点“u”是否已经存在于所述分区“P”上;以及
响应于确定所述顶点“u”尚未存在于所述分区“P”上,将所述顶点“u”添加到所述分区“P”。
10.根据权利要求9所述的计算机实施的方法,其中,所述分区预处理步骤还包括:
响应于确定所述顶点“v”尚未被分配给所述分区“P”,确定所述顶点“u”是否已经被分配给分区集{P1,P2,...至PN};以及
响应于确定所述顶点“u”已经被分配给所述分区集{P1,P2,…至PN}:
从所述分区集中选择具有最少数量的边的分区;以及
将所述顶点“v”添加到所选分区。
11.根据权利要求10所述的计算机实施的方法,其中,所述分区预处理步骤还包括:
响应于确定所述顶点“u”尚未被分配给所述分区集{P1,P2,…至PN}:
将所述顶点“u”分配给所述分区集中具有最少数量的边的分区;以及
将所述顶点“v”分配给所述分区集中具有最少数量的边的分区。
12.根据权利要求1所述的计算机实施的方法,其中:
所述计算机器包括微处理器和图形数据协调器逻辑部分;并且
所述分区预处理步骤由所述微处理器和所述图形数据协调器逻辑部分执行。
13.根据权利要求1所述的计算机实施的方法,其中:
所述计算机器包括微处理器和图形数据协调器逻辑部分;并且
所述外部图形处理步骤的主执行由所述微处理器和所述图形数据协调器逻辑部分执行。
14.一种计算机器,包括:
图形数据协调器逻辑部分,被配置为执行分区预处理步骤,以将多个目的顶点分配给多个分区,使得所述多个目的顶点中的每个目的顶点被唯一地分配给所述多个分区当中的仅一个分区,其中:
所述图形数据协调器逻辑部分被配置为:
执行外部图形处理步骤的主执行;
将所述多个分区当中的目的顶点的给定分区从固态驱动器SSD加载到所述计算机器的主存储器中;
将源顶点数据的一个或多个块从SSD流传输到所述计算机器的主存储器中;以及
至少基于加载的目的顶点的给定分区和流传输的源顶点数据的一个或多个块来执行图形处理。
15.根据权利要求14所述的计算机器,其中,所述图形数据协调器逻辑部分被配置为至少基于流传输的源顶点数据的一个或多个块来更新目的顶点的给定分区。
16.根据权利要求15所述的计算机器,其中,所述图形数据协调器逻辑部分被配置为将目的顶点的更新后的分区从所述主存储器写入所述SSD。
17.根据权利要求16所述的计算机器,其中,所述图形数据协调器逻辑部分被配置为:
将目的顶点的更新后的分区从所述SSD加载到所述主存储器;以及
对于与所述给定分区相关联的多个其他分区,生成与所述目的顶点相关联的镜像的镜像更新。
18.根据权利要求15所述的计算机器,其中,所述图形数据协调器逻辑部分被配置为:
对于与所述给定分区相关联的多个其他分区,生成与所述目的顶点相关联的镜像的镜像更新;以及
将目的顶点的更新后的分区从所述主存储器写入所述SSD。
19.根据权利要求18所述的计算机器,其中,所述图形数据协调器逻辑部分被配置为基于分区标识符ID顺序地更新所述镜像。
20.根据权利要求18所述的计算机器,其中,所述图形数据协调器逻辑部分被配置为写入目的顶点的更新后的分区,包括将所述给定分区的镜像顺序地存储在所述多个其他分区中的每一个中。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862777051P | 2018-12-07 | 2018-12-07 | |
US62/777,051 | 2018-12-07 | ||
US16/255,815 | 2019-01-23 | ||
US16/255,815 US11126359B2 (en) | 2018-12-07 | 2019-01-23 | Partitioning graph data for large scale graph processing |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111292225A true CN111292225A (zh) | 2020-06-16 |
CN111292225B CN111292225B (zh) | 2022-05-31 |
Family
ID=70971808
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911232269.1A Active CN111292225B (zh) | 2018-12-07 | 2019-12-05 | 对图形数据进行分区以进行大规模图形处理 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11126359B2 (zh) |
KR (1) | KR102535666B1 (zh) |
CN (1) | CN111292225B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210024751A (ko) * | 2019-08-26 | 2021-03-08 | 에스케이하이닉스 주식회사 | 이종 메모리 장치를 포함하는 그래프 처리 시스템 및 그래프 처리 시스템의 동작방법 |
CN113282774A (zh) * | 2021-05-06 | 2021-08-20 | 天津大学深圳研究院 | 一种新型图数据库的存储内图划分方法 |
KR20240014841A (ko) | 2022-07-26 | 2024-02-02 | 광운대학교 산학협력단 | 엣지 디바이스 간 워크로드 분산 방법 |
US11782982B1 (en) * | 2023-02-28 | 2023-10-10 | Intuit, Inc. | Offset-based watermarks for data stream processing |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103999038A (zh) * | 2011-12-28 | 2014-08-20 | 英特尔公司 | 用于在易失性存储器与非易失性存储器之间分布代码和数据存储的方法和设备 |
CN104252319A (zh) * | 2013-06-27 | 2014-12-31 | 国际商业机器公司 | 针对多个逻辑分区的备份管理 |
JP2015225656A (ja) * | 2014-05-28 | 2015-12-14 | 富士通株式会社 | 分散型データグラフ記憶システム及び方法 |
CN107957962A (zh) * | 2017-12-19 | 2018-04-24 | 重庆大学 | 一种面向大图计算高效图划分方法与系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10198834B2 (en) | 2013-04-29 | 2019-02-05 | Microsoft Technology Licensing, Llc | Graph partitioning for massive scale graphs |
US9734607B2 (en) | 2014-09-10 | 2017-08-15 | Oracle International Corporation | Graph processing using a mutable multilevel graph representation |
US10810179B2 (en) | 2015-09-25 | 2020-10-20 | Microsoft Technology Licensing, Llc | Distributed graph database |
CN108132838B (zh) * | 2016-11-30 | 2021-12-14 | 华为技术有限公司 | 一种图数据处理的方法、装置及系统 |
US10635546B2 (en) * | 2017-12-07 | 2020-04-28 | Commvault Systems, Inc. | Synthesizing a restore image from one or more secondary copies to facilitate data restore operations to a file server |
-
2019
- 2019-01-23 US US16/255,815 patent/US11126359B2/en active Active
- 2019-12-05 CN CN201911232269.1A patent/CN111292225B/zh active Active
- 2019-12-05 KR KR1020190160433A patent/KR102535666B1/ko active IP Right Grant
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103999038A (zh) * | 2011-12-28 | 2014-08-20 | 英特尔公司 | 用于在易失性存储器与非易失性存储器之间分布代码和数据存储的方法和设备 |
CN104252319A (zh) * | 2013-06-27 | 2014-12-31 | 国际商业机器公司 | 针对多个逻辑分区的备份管理 |
JP2015225656A (ja) * | 2014-05-28 | 2015-12-14 | 富士通株式会社 | 分散型データグラフ記憶システム及び方法 |
CN107957962A (zh) * | 2017-12-19 | 2018-04-24 | 重庆大学 | 一种面向大图计算高效图划分方法与系统 |
Also Published As
Publication number | Publication date |
---|---|
KR102535666B1 (ko) | 2023-05-23 |
CN111292225B (zh) | 2022-05-31 |
US20200183604A1 (en) | 2020-06-11 |
KR20200070116A (ko) | 2020-06-17 |
US11126359B2 (en) | 2021-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111292225B (zh) | 对图形数据进行分区以进行大规模图形处理 | |
CN104008064B (zh) | 用于多级存储器压缩的方法和系统 | |
US11874815B2 (en) | Key-value storage device and method of operating the same | |
US9851917B2 (en) | Method for de-duplicating data and apparatus therefor | |
WO2017107414A1 (zh) | 文件操作方法和装置 | |
US10438092B2 (en) | Systems and methods for converting massive point cloud datasets to a hierarchical storage format | |
CN108345433B (zh) | 用于最大化的可去重存储器的方法、存储器系统和产品 | |
US9973210B1 (en) | Reduction of execution stalls of LZ4 decompression via parallelization | |
CN107850983B (zh) | 计算机系统、存储装置和数据的管理方法 | |
US11599578B2 (en) | Building a graph index and searching a corresponding dataset | |
WO2021012162A1 (zh) | 存储系统数据压缩的方法、装置、设备及可读存储介质 | |
US10515055B2 (en) | Mapping logical identifiers using multiple identifier spaces | |
CN110851436B (zh) | 具有虚拟编索引的分布式搜索框架 | |
CN112579595A (zh) | 数据处理方法、装置、电子设备及可读存储介质 | |
CN107798063B (zh) | 快照处理方法和快照处理装置 | |
JP2010061518A (ja) | データ保存装置及びデータ保存方法並びにプログラム | |
WO2015094721A2 (en) | Apparatuses and methods for writing masked data to a buffer | |
CN115249057A (zh) | 用于图形节点采样的系统和由计算机实现的方法 | |
CN106933882B (zh) | 一种大数据增量计算方法和装置 | |
US20150188565A1 (en) | Compression device, compression method, and recording medium | |
JP5095790B2 (ja) | 特徴量算出装置及び識別装置 | |
JP2023503034A (ja) | パターンベースのキャッシュブロック圧縮 | |
KR101341995B1 (ko) | 공유 데이터 저장소 관리 장치 및 방법 | |
US11455326B2 (en) | Efficient storage and retrieval of textual data | |
CN106802907B (zh) | 基于码流寻址方式的移动lte的kpi计算方法 |
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 |