CN113495679A - 基于非易失存储介质的大数据存储访问与处理的优化方法 - Google Patents
基于非易失存储介质的大数据存储访问与处理的优化方法 Download PDFInfo
- Publication number
- CN113495679A CN113495679A CN202010252216.2A CN202010252216A CN113495679A CN 113495679 A CN113495679 A CN 113495679A CN 202010252216 A CN202010252216 A CN 202010252216A CN 113495679 A CN113495679 A CN 113495679A
- Authority
- CN
- China
- Prior art keywords
- data
- nonvolatile storage
- shuffle
- spark
- disk
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
-
- 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)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公布了一种基于非易失存储介质的大数据存储访问与处理的优化方法,针对现有的大数据处理框架Spark的Shuffe操作存在的大量存储开销的技术问题,通过基于非易失存储介质实现大数据处理框架Spark的Shuffle操作的方法来进行优化,减少磁盘访问开销和较长的I/O栈开销,提高非易失存储介质进行大数据计算处理的性能,实现对大数据存储访问与处理计算进行优化,可应用于词频统计分析等大数据处理应用中。
Description
技术领域
本发明涉及大数据处理优化技术领域,具体涉及一种对大数据处理框架Spark的优化方法,通过将大数据处理框架Spark中的Shuffle操作中间数据持久化到非易失存储来减少慢速磁盘访问和I/O栈开销的方法进行优化。
背景技术
Spark是一个快速的、通用的大规模数据计算引擎,于2009年由加州大学伯克利分校AMPLab构建,可以高速完成大量数据的复杂处理过程,针对大数据集完成数据进行数据处理分析。它具有可伸缩性、高容错性、基于内存进行计算等特点,进行高效的批处理,具有更低的计算延迟,并且可以部署在大量廉价硬件上构成集群。同时,Spark的应用十分广泛,包含多个子项目,可以完成不同的应用任务,例如SQL查询、实时流处理、机器学习、交互式查询等。
但是,在该大数据处理框架上执行一些特定但常见的任务时,例如聚合(join)任务,这些任务需要将各节点上的同一类数据汇集到某一节点进行计算。Spark把这些分布在不同节点的数据按照一定的规则汇集到一起,这个过程称为Shuffle。在实际应用中,Shuffle操作是连接Map操作和Reduce操作中间的必要桥梁,其性能直接影响了整个程序的性能和吞吐量。因为在分布式集群中,Spark节点在Shuffle操作中需要跨节点拉取其他节点的数据,这一过程需要I/O栈的数据移动、读写本地磁盘、远程节点数据传输,会导致大量本地磁盘I/O开销、远端网络开销,严重影响Spark整体性能。
针对这个问题,有研究提出采用固态硬盘来替代磁盘以减少存储开销,但固态硬盘的数据写入操作会导致其磨损,使用寿命有限,同时直接替代磁盘来保存Shuffle中间数据并不能减少Shuffle过程中冗长的I/O栈开销,性能提升效果有限。此外,有部分优化方法着重于减少导致Shuffle操作的任务产生,并无法从根本上解决大数据处理框架Spark的Shuffle操作性能问题。Spark任务执行Shuffle过程依然会有大量的磁盘读写,成为Spark的性能瓶颈。
发明内容
本发明针对目前现有的大数据处理框架Spark的Shuffe操作存在的大量存储开销问题,提供了一种新的基于非易失存储介质的大数据存储访问与处理计算的优化方法,通过基于非易失存储介质实现大数据处理框架Spark的Shuffle操作的方法,来减少磁盘访问开销和较长的I/O栈开销,提升大数据处理框架Spark的性能,实现对大数据存储访问与处理计算进行优化,可应用于词频统计分析等大数据处理应用中。
本发明的原理是:基于非易失存储,在大数据处理框架Spark执行Shuffle操作时,直接利用访存指令使用非易失存储读写Shuffle操作的中间文件,来避免磁盘访问巨大开销以及长I/O栈开销。非易失存储(Non-Volatile Memory)作为一种新型的存储介质,具有容量大、读写速度快,按字节寻址,数据持久化,功耗低,密度大等特性。在目前的计算机存储架构中,存储带来的性能瓶颈对于各种应用的影响巨大,尤其是在大数据处理中。非易失存储的采用可以在一定程度上解决这个问题。基于非易失存储,上层应用可以通过load/store指令来直接访问其中的数据,并进行原地修改。由于其读写速度与内存处于同一数量级,其性能相比于磁盘或固态硬盘大概快5个数量级。同时,相比于内存的数据断电易失性,非易失存储保证了数据的持久化,在断电后数据不丢失,可以迅速恢复至断电前状态,减少冷启动时间。目前已有的非易失存储有PCM(Phase Change Memory),RRAM(ResistiveRandom-Access-Memory),STTRAM(Spin-Transfer-Torque Random-Access-Memory)等。
本发明提供的技术方案如下:
一种基于非易失存储介质的大数据存储访问与处理的优化方法,基于非易失存储对大数据处理框架Spark的Shuffle操作进行优化,减少磁盘访问开销和较长的I/O栈开销,提高非易失存储介质进行大数据计算处理的性能;包括如下步骤:
A.实现非易失存储介质的上层应用访问接口,以支持面向上层Spark的存储管理,具体包含以下操作:
A1.实现支持事务性、原子性读写等操作的基础数据结构,以支持上层复杂应用;
A2.基于英特尔非易失存储开发库PMDK,完成底层Java语言基本功能接口转换。
具体实施时,上层应用为词频统计分析应用;实现的非易失存储介质的上层应用访问接口为词频统计分析应用访问接口;包括:构建面向非易失存储的哈希表数据结构和相关操作方法,作为支持事务性、原子性读写等操作的基础数据结构及操作。具体采用JNI(Java Native Interface)编程框架和非易失存储开发库PMDK,实现从C/C++语言到Java语言的基本转换,支持Java虚拟机中的Java程序调用本地PMDK工具库,使得能够读写底层非易失存储的数据,为哈希表的创建、插入、删除、读取等多个方法提供Java支持。
B.实现自定义的大数据处理框架Spark的Shuffle操作过程,执行以下操作:
B1.实现Shuffle操作数据自定义的输入、输出、外部排序等一系列相关方法,包括:输入方法nvmShuffleWriter、输出方法numShuffleReader、排序方法nvmExternalSorter;
所述nvmShuffleWriter方法基于原有Spark中的sortShuffleWriter方法,重新设计数据从内存写入磁盘的过程,包括:重写Spark中的write()函数和flush()函数,先调用insertAll()方法将数据写入内存,再调用flush()函数使得原本将数据刷回磁盘的过程,重定向为将数据写入非易失存储;采用A2中定义的哈希表,保存blockId和数据内容之间的映射关系,实现基于非易失存储的快速ShuffleWriter基础模块;
所述numShuffleReader方法重写read()函数和createInputStream()函数,不再从磁盘读取数据,而是根据blockId,从非易失存储的哈希表中直接查找数据块内容,从而实现高效Shuffle中间数据读取过程;
所述nvmExternalSorter方法重写spill()函数,将原有的spillMemoryIteratorToDisk()方法重新改写为自定义spillMemoryIteratorToNvm()方法,该方法在内存不够时不再将数据溢出到磁盘,而是将数据溢出到非易失存储,将溢出的数据输出重定向到将数据块插入非易失存储的哈希表中,由此减少磁盘的多次数据写入带来的开销;
B2.采用以上自定义方法接口,重写Shuffle管理器。
C.将自定义Shuffle操作作为插件加入到大数据处理框架Spark中。
通过上述步骤,实现基于非易失存储介质的大数据计算优化。
与现有技术相比,本发明的有益效果:
本发明提供一种基于非易失存储介质的大数据计算优化方法,利用本发明提供的技术方案,可以降低大数据处理框架Spark在执行包含Shuffle操作的任务时带来的巨大磁盘和I/O栈开销,提高Spark应用的性能,利用非易失存储介质的大数据计算提升词频统计的优化性能。
附图说明
图1为基于非易失存储介质在哈希表中插入新数据节点的流程框图。
图2为本发明提供方法的流程框图。
图3为基于非易失存储介质面向上层Spark实现的接口转换流程示意图。
具体实施方式
下面结合附图,通过实施例进一步描述本发明,但不以任何方式限制本发明的范围。
本发明提供一种基于非易失存储介质的大数据计算优化方法,在大数据处理框架执行Shuffle操作时,直接利用访存指令使用非易失存储读写Shuffle操作的中间文件,来避免磁盘访问巨大开销以及长I/O栈开销,提高应用性能。本发明方法可用于词频统计,利用多个计算机节点上对文章中的单词出现频率进行统计与合并,得到节点上的所有单词及其出现频率。以下叙述基于非易失存储介质的大数据计算优化的词频统计方法的具体实施方式。
本发明方法的具体实施方式如下:
A.如图1所示,实现非易失存储的上层应用访问接口具体包含以下操作:
A1.基于PMDK工具库,实现支持事务性、原子性读写等操作的基础数据结构,以支持非易失存储介质的上层复杂应用。本发明设计通过哈希表数据结构来支持非易失存储介质的上层应用数据的高速存储和查找,并提供事务性、原子性的读写操作,来支持非易失存储介质上层应用数据的一致性和完整性。
具体实施时,本发明设计非易失存储中的哈希表数据结构以支持词频统计分析在非易失存储介质的内存管理,将每个数据块的blockId作为键,每个数据块的内容作为值,在哈希表中通过目前已有的哈希算法完成键值之间的映射关系,来支持非易失存储介质中数据块的高速存储和查找。
针对新型非易失存储,英特尔公司的工具库PMDK(Persistent MemoryDevelopment Kit)是一套用来提供非易失存储硬件的底层基础访问接口的用户态软件库。本发明利用PMDK工具库,通过具有DAX(Direct Access,直接访问)特性的文件系统,使用文件系统的内存映射文件功能(mmap),将非易失存储器直接映射到用户空间,然后直接操作虚拟地址,避免了数据访问较长的I/O栈开销。
本发明采用PMDK工具库,构建了面向非易失存储的哈希表数据结构和相关操作方法。哈希表是一个基本的数据结构,可以支持快速键值插入和查找。由于需要保证数据的断电一致性,以确保数据在重启时仍可以正常读取,在非易失存储中对哈希表的操作需要保证原子性和事务性。本发明通过PMDK工具库提供的事务性读写接口,对关键数据的写操作进行函数包装,确保数据在修改成功提交前保存一份副本,来实现哈希表操作的原子性和事务性,从而保证上层复杂应用操作的正确和一致性。例如,在向哈希表中插入新数据时(如图2所示),先调用PMDK工具库的pmemobj_tx_begin接口开启一个新的事务,再调用pmemobj_tx_alloc为新的哈希节点分配存储空间,然后采用pmemobj_tx_add_range将修改的关键数据进行备份和跟踪,最后再将新数据写入,完成后调用pmemobj_tx_commit和pmemobj_tx_end提交和关闭当前事务。以相似方法,本发明为哈希表设计了基于非易失存储的插入、删除、查找、创建、打开、关闭等多个相关操作。通过本发明设计的面向非易失存储的哈希表数据结构,可以向上提供一致性和完整性的数据操作支持,方便Shuffle操作内部对非易失存储的管理。
A2.基于英特尔非易失存储开发库PMDK,完成底层基本Java语言接口转换,如图2所示。
本发明的底层数据读取采用了PMDK工具库,以此为基础开发面向上层应用的接口转换。由于大数据处理框架Spark采用Java和Scala语言进行混合编程,而PMDK工具库只提供C/C++语言的底层接口,所以需要完成从C/C++语言到Java语言的基本转换,才能读写底层非易失存储的数据。
本发明提出采用JNI(Java Native Interface)编程框架来支持Java虚拟机中的Java程序调用本地PMDK工具库。在创建哈希表时,本发明通过JNI定义创建池文件的JNI函数,在该JNI函数中直接调用A1步骤中定义的哈希表创建方法,来提供面向Java的哈希表创建接口,以供Shuffle操作直接使用。采用这种方法,本发明为哈希表的创建、插入、删除、读取等多个基础方法提供了Java支持。
B.实现自定义的大数据处理框架Spark的Shuffle操作过程,如图3所示,执行以下操作:
B1.基于非易失存储,实现Shuffle操作中对操作数据的输入、输出、排序等存储相关方法。本发明采用面向非易失存储,采用自定义nvmShuffleWriter方法,而非使用原有的sortShuffleWriter方法来进行Shuffle阶段产生的临时文件写操作,采用自定义nvmShuffleReader方法(而不用原有BlockStoreShuffleReader方法)来进行Shuffle阶段产生的临时文件读操作,以及采用自定义nvmExternalSorter方法(替代原有ExternalSorter方法)来对Shuffle中间数据进行排序。
大数据框架Spark在Shuffle操作中将内存中缓存数据按照分区来序列化写入磁盘,当临时文件过多时,这个方法会产生巨大的磁盘读写开销,甚至成为上层Spark应用的性能瓶颈。虽然Spark提供SortShuffleWriter通过合并来减少磁盘文件数目,但是难以解决大量数据磁盘写的需求。在词频统计应用的Shuffle阶段中,部分节点(被称为map节点)统计出本节点上的所有单词及其出现频率,将结果序列化以临时文件写入磁盘。之后部分节点(被称为reduce节点)分别获取所有map节点写入磁盘的所有临时文件,来统计该节点对应的某一类单词的出现频率。这个过程需要所有map节点的磁盘数据写操作,以及所有map节点和所有reduce节点之间都进行临时文件传输,产生巨大开销。
基于Spark现有代码框架,本发明提出修改读写Shuffle临时文件的实现方法,来适配非易失存储,减少磁盘读写时间。具体方法是采用上述实现的数据结构及其操作函数,对原有的存储方法(包括ShuffleWriter,ShuffleReader,ExternalSorter方法)分别替代为nvmShuffleWriter,nvmShuffleReader,nvmExternalSorter方法,通过这些方法将原本需要经过长I/O栈写入磁盘的Shuffle临时文件写入非易失存储,并维护非易失存储的读写状态。本发明设计在词频统计应用中,每个map节点的词频统计结果不需要序列化写入磁盘临时文件,而是在非易失存储介质中分配数据块并直接写入,将分配的数据块的blockId和数据块地址作为键值插入步骤A2创建的哈希表中,便于之后对该词频统计结果数据的查找和修改。
本发明的nvmShuffleWriter方法中,在执行逻辑与原有Spark中的sortShuffleWriter相同的基础上,重新设计数据从内存写入磁盘的过程。具体方法是重写Spark中的write()函数和flush()函数,先调用insertAll()方法将数据写入内存,再调用flush()函数使得原本将数据刷回磁盘的过程,重定向为将数据写入非易失存储。此处采用A2中定义的哈希表,保存blockId和数据内容之间的映射关系,实现基于非易失存储的快速ShuffleWriter基础模块。在词频统计应用中,本发明先调用insertAll()方法将本节点所有词频统计结果算出写入内存,再调用flush()将该数据块和相应的blockId写入非易失存储的哈希表中,舍弃掉序列化写入磁盘的过程,减少持久化开销。
在numShuffleReader方法中,与nvmShuffleWriter相似,在原本处理逻辑不变的前提下,本发明提出重写read()函数和createInputStream()函数,使得原本从磁盘读取数据,改为根据blockId,从非易失存储的哈希表中直接查找数据块内容,从而实现高效Shuffle中间数据读取过程。在词频统计应用中,本发明由blockId到非易失存储中找到对应数据块,获取其他节点的词频统计信息,从非易失存储直接读入内存,不需要磁盘上的顺序读入。
在nvmExternalSorter方法中,与nvmShuffleWriter相似,在原本处理逻辑不变的前提下,本发明提出重写spill()函数,将原有的spillMemoryIteratorToDisk()方法替换为自定义spillMemoryIteratorToNvm()方法,该方法将原本内存不够时数据溢出到磁盘,变为溢出到非易失存储,将溢出的数据输出重定向到将数据块插入非易失存储的哈希表中,减少磁盘的多次数据写入带来的开销。在词频统计应用中,本地节点进行词频统计时,若发生内存不够产生溢出的情况,本发明提出将数据溢出到非易失存储,而非磁盘,提高计算效率。
B2.采用以上自定义方法接口,重写Shuffle管理器。本发明提出新的nvmShuffleManager来替代大数据处理框架Spark的原有默认ShuffleManager管理器。nvmShuffleManager方法用于将Shuffle阶段的处理方法接口提供给Spark Driver来进行Shuffle数据的调度和读写,即提供步骤B1所实现的nvmShuffleWriter,numShuffleReader方法,并根据用户配置文件来初始化这些方法的参数。如图3所示,在上层Spark应用调用getReader()和getWriter()获取Shuffle数据的读写句柄时,nvmShuffleManager提供步骤B1中提出的nvmShuffleWriter,numShuffleReader方法来实现Shuffle文件面向非易失存储的读写,保证非易失存储作为Shuffle操作的临时文件存储位置。
C.将以上步骤提出的方法(即自定义Shuffle操作)作为插件加入到大数据处理框架Spark中。本发明先将以上步骤的所有自定义方法编译打包得到工具包,再在大数据处理框架Spark的配置文件中导入自定义Shuffle操作的配置信息,以保证Spark应用执行任务需要进行Shuffle操作时直接调用到本发明的自定义Shuffle数据读写方法,由此实现基于非易失存储介质的大数据存储访问与处理的优化。
需要注意的是,公布实施例的目的在于帮助进一步理解本发明,但是本领域的技术人员可以理解:在不脱离本发明及所附权利要求的精神和范围内,各种替换和修改都是可能的。因此,本发明不应局限于实施例所公开的内容,本发明要求保护的范围以权利要求书界定的范围为准。
Claims (5)
1.一种基于非易失存储介质的大数据存储访问与处理的优化方法,基于非易失存储对大数据处理框架Spark的Shuffle操作进行优化,减少磁盘访问开销和较长的I/O栈开销,提高非易失存储介质进行大数据计算处理的性能;包括如下步骤:
A.实现非易失存储介质的上层应用访问接口,以支持面向上层Spark的存储管理,具体包括以下操作:
A1.构建面向非易失存储的哈希表数据结构和相关操作方法,实现支持事务性、原子性读写等操作的基础数据结构,以支持上层复杂应用;
A2.基于英特尔非易失存储开发库PMDK,采用JNI编程框架,完成底层Java语言基本功能接口转换,为哈希表的创建、插入、删除、读取方法提供Java支持;
B.实现自定义的大数据处理框架Spark的Shuffle操作过程,具体包括创建以下操作方法:
B1.实现Shuffle操作数据自定义的输入方法nvmShuffleWriter、输出方法numShuffleReader、排序方法nvmExternalSorter;
所述nvmShuffleWriter方法基于原有Spark中的sortShuffleWriter方法,重新设计数据从内存写入磁盘的过程,包括:重写Spark中的write()函数和flush()函数,先调用insertAll()方法将数据写入内存,再调用flush()函数使得原本将数据刷回磁盘的过程,重定向为将数据写入非易失存储;采用A2中定义的哈希表,保存blockId和数据内容之间的映射关系,实现基于非易失存储的快速ShuffleWriter基础模块;
所述numShuffleReader方法重写read()函数和createInputStream()函数,不再从磁盘读取数据,而是根据blockId,从非易失存储的哈希表中直接查找数据块内容,从而实现高效Shuffle中间数据读取过程;
所述nvmExternalSorter方法重写spill()函数,将原有的spillMemoryIteratorToDisk()方法重新改写为自定义spillMemoryIteratorToNvm()方法,该方法在内存不够时不再将数据溢出到磁盘,而是将数据溢出到非易失存储,将溢出的数据输出重定向到将数据块插入非易失存储的哈希表中,由此减少磁盘的多次数据写入带来的开销;
B2.采用以上自定义方法接口,新建大数据处理框架Spark的Shuffle管理器,命名为nvmShuffleManager;nvmShuffleManager方法用于利用Shuffle阶段的处理方法接口进行Shuffle数据的调度和读写,即提供步骤B1所实现的nvmShuffleWriter和numShuffleReader方法,并根据用户配置文件初始化方法的参数;在上层Spark应用调用getReader()和getWriter()获取Shuffle数据的读写句柄时,nvmShuffleManager提供步骤B1中的输入方法nvmShuffleWriter和输出方法numShuffleReader来实现Shuffle文件面向非易失存储的读写,保证非易失存储作为Shuffle操作的临时文件存储位置;
C.将以上步骤的自定义Shuffle操作作为插件加入到大数据处理框架Spark中;具体先将以上步骤的所有自定义方法编译打包得到工具包,再在大数据处理框架Spark的配置文件中导入自定义Shuffle操作的配置信息,使得Spark应用执行任务需要进行Shuffle操作时直接调用到上述自定义Shuffle数据读写方法;
通过上述过程,实现基于非易失存储介质的大数据存储访问与处理的优化。
2.如权利要求1所述基于非易失存储介质的大数据存储访问与处理的优化方法,其特征是,上层应用为词频统计分析应用,针对词频数据构建面向非易失存储的哈希表数据结构和相关操作方法,实现非易失存储介质的词频统计应用访问接口。
3.如权利要求2所述基于非易失存储介质的大数据存储访问与处理的优化方法,其特征是,nvmShuffleWriter方法,具体先调用insertAll()方法将节点中所有词频统计结果写入内存,再调用flush()将该数据块和相应的blockId写入非易失存储的哈希表中,无需进行序列化写入磁盘的过程。
4.如权利要求2所述基于非易失存储介质的大数据存储访问与处理的优化方法,其特征是,numShuffleReader方法,具体由blockId到非易失存储中找到对应数据块,获取其他节点的词频统计信息,从非易失存储直接读入内存,而无需根据磁盘上的顺序读入。
5.如权利要求2所述基于非易失存储介质的大数据存储访问与处理的优化方法,其特征是,nvmExternalSorter方法,具体地,本地节点进行词频统计发生内存不够产生溢出时,则将数据溢出到非易失存储,而非将数据溢出到磁盘。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010252216.2A CN113495679B (zh) | 2020-04-01 | 2020-04-01 | 基于非易失存储介质的大数据存储访问与处理的优化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010252216.2A CN113495679B (zh) | 2020-04-01 | 2020-04-01 | 基于非易失存储介质的大数据存储访问与处理的优化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113495679A true CN113495679A (zh) | 2021-10-12 |
CN113495679B CN113495679B (zh) | 2022-10-21 |
Family
ID=77993187
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010252216.2A Active CN113495679B (zh) | 2020-04-01 | 2020-04-01 | 基于非易失存储介质的大数据存储访问与处理的优化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113495679B (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016053695A1 (en) * | 2014-10-03 | 2016-04-07 | Datameer, Inc. | Apparatus and method for scheduling distributed workflow tasks |
CN105718244A (zh) * | 2016-01-18 | 2016-06-29 | 上海交通大学 | 一种流水化数据洗牌传输的Spark任务调度与执行方法 |
CN106611037A (zh) * | 2016-09-12 | 2017-05-03 | 星环信息科技(上海)有限公司 | 用于分布式图计算的方法与设备 |
CN107220069A (zh) * | 2017-07-03 | 2017-09-29 | 中国科学院计算技术研究所 | 一种针对非易失性内存的Shuffle方法 |
CN107590077A (zh) * | 2017-09-22 | 2018-01-16 | 深圳大学 | 一种Spark负载访存行为追踪方法及装置 |
CN108710640A (zh) * | 2018-04-17 | 2018-10-26 | 东南大学 | 一种提高Spark SQL的查询效率的方法 |
CN109167672A (zh) * | 2018-07-13 | 2019-01-08 | 腾讯科技(深圳)有限公司 | 一种回源错误定位方法、装置、存储介质以及系统 |
CN109189746A (zh) * | 2018-07-12 | 2019-01-11 | 北京百度网讯科技有限公司 | 通用流式Shuffle引擎的实现方法、装置、设备及存储介质 |
CN109240890A (zh) * | 2018-09-25 | 2019-01-18 | 江苏润和软件股份有限公司 | 一种基于统计分析的Spark拖延任务诊断方法 |
CN110069502A (zh) * | 2019-04-24 | 2019-07-30 | 东南大学 | 基于Spark架构的数据均衡分区方法及计算机存储介质 |
CN110287152A (zh) * | 2019-06-27 | 2019-09-27 | 深圳市腾讯计算机系统有限公司 | 一种数据管理的方法以及相关装置 |
-
2020
- 2020-04-01 CN CN202010252216.2A patent/CN113495679B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016053695A1 (en) * | 2014-10-03 | 2016-04-07 | Datameer, Inc. | Apparatus and method for scheduling distributed workflow tasks |
CN105718244A (zh) * | 2016-01-18 | 2016-06-29 | 上海交通大学 | 一种流水化数据洗牌传输的Spark任务调度与执行方法 |
CN106611037A (zh) * | 2016-09-12 | 2017-05-03 | 星环信息科技(上海)有限公司 | 用于分布式图计算的方法与设备 |
CN107220069A (zh) * | 2017-07-03 | 2017-09-29 | 中国科学院计算技术研究所 | 一种针对非易失性内存的Shuffle方法 |
CN107590077A (zh) * | 2017-09-22 | 2018-01-16 | 深圳大学 | 一种Spark负载访存行为追踪方法及装置 |
CN108710640A (zh) * | 2018-04-17 | 2018-10-26 | 东南大学 | 一种提高Spark SQL的查询效率的方法 |
CN109189746A (zh) * | 2018-07-12 | 2019-01-11 | 北京百度网讯科技有限公司 | 通用流式Shuffle引擎的实现方法、装置、设备及存储介质 |
CN109167672A (zh) * | 2018-07-13 | 2019-01-08 | 腾讯科技(深圳)有限公司 | 一种回源错误定位方法、装置、存储介质以及系统 |
CN109240890A (zh) * | 2018-09-25 | 2019-01-18 | 江苏润和软件股份有限公司 | 一种基于统计分析的Spark拖延任务诊断方法 |
CN110069502A (zh) * | 2019-04-24 | 2019-07-30 | 东南大学 | 基于Spark架构的数据均衡分区方法及计算机存储介质 |
CN110287152A (zh) * | 2019-06-27 | 2019-09-27 | 深圳市腾讯计算机系统有限公司 | 一种数据管理的方法以及相关装置 |
Non-Patent Citations (3)
Title |
---|
吴恩慈: "广播机制解决Shuffle过程数据倾斜的方法", 《计算机系统应用》 * |
潘锋烽等: "NV-Shuffle:基于非易失内存的Shuffle机制", 《计算机研究与发展》 * |
黄廷辉等: "基于内存与文件共享机制的Spark I/O性能优化", 《计算机工程》 * |
Also Published As
Publication number | Publication date |
---|---|
CN113495679B (zh) | 2022-10-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10083183B2 (en) | Full system simulator and memory-aware splay tree for in-memory databases in hybrid memory systems | |
Kannan et al. | Optimizing checkpoints using nvm as virtual memory | |
US20180024997A1 (en) | Full system simulator and memory-aware splay tree for in-memory databases in hybrid memory systems | |
US20070250517A1 (en) | Method and Apparatus for Autonomically Maintaining Latent Auxiliary Database Structures for Use in Executing Database Queries | |
CN104778077B (zh) | 基于随机和连续磁盘访问的高速核外图处理方法及系统 | |
CN111858509B (zh) | 一种基于容器的分布式计算方法和装置 | |
CN107665219B (zh) | 一种日志管理方法及装置 | |
EP4283475A2 (en) | Moving data in a memory and command for memory control | |
JP2022508882A (ja) | ソフトウェアベースのニアデータ処理(ndp)技術を用いて関係データベースへのクエリの処理を強化するためのシステム及び方法 | |
CN111309310B (zh) | 面向非易失性内存的JavaScript对象持久化框架 | |
CN101847096B (zh) | 包含栈变量函数的优化方法 | |
Sahal et al. | iHOME: index-based JOIN query optimization for limited big data storage | |
CN110795042A (zh) | 一种全闪存储系统元数据写缓存刷盘方法及相关组件 | |
Derrick et al. | Verifying correctness of persistent concurrent data structures: a sound and complete method | |
CN112732725B (zh) | 基于nvm混合内存的自适应前缀树构建方法及其系统、介质 | |
Xu et al. | A hybrid update strategy for i/o-efficient out-of-core graph processing | |
CN107220069B (zh) | 一种针对非易失性内存的Shuffle方法 | |
CN105447285A (zh) | 一种提高OpenCL硬件执行效率的方法 | |
CN113495679B (zh) | 基于非易失存储介质的大数据存储访问与处理的优化方法 | |
Onai et al. | Architecture of a reduction-based parallel inference machine: PIM-R | |
CN111966397A (zh) | 一种异构并行程序自动移植和优化方法 | |
CN113204520B (zh) | 一种基于分布式文件系统的遥感数据快速并发读写方法 | |
Munir et al. | A cost-based storage format selector for materialization in big data frameworks | |
CN114840545B (zh) | 一种支持状态快速更新的区块链细粒度编辑方法 | |
US20230259747A1 (en) | Accelerator system for training deep neural network model using nand flash memory and operating method thereof |
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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20211104 Address after: 100871 No. 5, the Summer Palace Road, Beijing, Haidian District Applicant after: Peking University Address before: 100080 undergraduate dormitory of grade 13 School of information science and technology of Peking University, No. 5, Yiheyuan Road, Haidian District, Beijing Applicant before: Meng Tong Applicant before: Sun Guangyu Applicant before: Wang Xiaoyang |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |