CN113032340B - 数据文件的合并方法、装置、存储介质及处理器 - Google Patents
数据文件的合并方法、装置、存储介质及处理器 Download PDFInfo
- Publication number
- CN113032340B CN113032340B CN201911347735.0A CN201911347735A CN113032340B CN 113032340 B CN113032340 B CN 113032340B CN 201911347735 A CN201911347735 A CN 201911347735A CN 113032340 B CN113032340 B CN 113032340B
- Authority
- CN
- China
- Prior art keywords
- block
- processed
- data
- stream
- data file
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 88
- 238000012545 processing Methods 0.000 claims abstract description 39
- 238000004458 analytical method Methods 0.000 claims abstract description 18
- 230000008569 process Effects 0.000 claims description 37
- 239000004744 fabric Substances 0.000 claims description 6
- 238000010276 construction Methods 0.000 claims description 5
- 238000012163 sequencing technique Methods 0.000 claims description 3
- 230000015654 memory Effects 0.000 description 31
- 238000010586 diagram Methods 0.000 description 27
- 230000005540 biological transmission Effects 0.000 description 12
- 230000001133 acceleration Effects 0.000 description 10
- 230000006837 decompression Effects 0.000 description 6
- 230000010354 integration Effects 0.000 description 6
- 238000007906 compression Methods 0.000 description 5
- 230000006835 compression Effects 0.000 description 5
- 238000001514 detection method Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000005056 compaction Methods 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 102100036725 Epithelial discoidin domain-containing receptor 1 Human genes 0.000 description 1
- 101710131668 Epithelial discoidin domain-containing receptor 1 Proteins 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000008092 positive effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/31—Indexing; Data structures therefor; Storage structures
- G06F16/316—Indexing structures
- G06F16/322—Trees
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)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据文件的合并方法、装置、存储介质及处理器。包括:从多个待合并数据文件中分别解析出与每个数据文件对应的待处理数据块流;将解析得到的数据块流输入至计算芯片进行合并处理,输出处理后数据块流、每个处理后数据块的第一边界标识、处理后布隆块流以及每个处理后布隆块的第二边界标识;将处理后数据块流和处理后布隆块流整合至目标数据文件,并记录每个处理后数据块在目标数据文件中的第一偏移量以及每个处理后布隆块在目标数据文件中的第二偏移量;利用第一边界标识、第一偏移量、第二边界标识以及第二偏移量构建索引块流,并将索引块流整合至目标数据文件。解决了现有技术无法对数据量较大的数据文件进行合并的技术问题。
Description
技术领域
本发明涉及数据处理领域,具体而言,涉及一种数据文件的合并方法、装置、存储介质及处理器。
背景技术
HBbse是一个分布式的、面向列的开源数据库,适合于非结构化数据存储的数据库,基于HBase数据库典型的LSM-Tree架构存储引擎实现如下:
1.写操作会写入内存的buffer,内存中通过某种数据结构(如skiplist)保持key有序。
2.数据追加写到磁盘Log文件,以备必要时恢复。
3.内存中的数据定时或按固定大小地刷到磁盘,更新操作只不断地写到内存,并不更新磁盘上已有文件。这些有序文件被称为SST。
4.随着越来越多写操作,磁盘上积累的SST数据文件也越来越多,这些文件不可修改且有序。
5.定时对SST数据文件进行合并操作(compaction),消除冗余数据,减少文件数量。
合并操作可以减少LSM-Tree中SST的数量。减少SST数量,意味着每次LSM-Tree数据库在读取数据时,所需要访问的SST数据文件数变少,一般而言可以提升LSM-Tree数据库的读性能。减少SST数据文件数提高读性能是合并操作的正面影响。
需要说明的是,合并操作是一个计算密集型的任务。图1是根据现有技术的一种合并操作的示意图,如图1所示,合并操作将多个SST数据文件读出,对SST数据文件进行解压缩,归并排序,压缩等操作后,生成目标SST数据文件。而解压缩,归并排序,压缩等流程,均是较为消耗计算资源的计算密集型操作,在使用CPU作为计算单元的前提下,单次Compaction任务执行期间,会将CPU使用率提升到相当高的水平。在大多数情况下,高CPU使用率会降低LSM-Tree数据库的读取性能与延迟表现。因此,高CPU使用率是合并操作的负面影响。
综上,对合并操作而言,文件的读性能主要受文件数量和CPU计算力影响,因此,现有技术无法对于数量较大的数据文件进行有效合并。
针对上述现有技术无法对数据量较大的数据文件进行合并的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种数据文件的合并方法、装置、存储介质及处理器,以至少解决现有技术无法对数据量较大的数据文件进行合并的技术问题。
根据本发明实施例的一个方面,提供了一种数据文件的合并方法,包括:从多个待合并数据文件中分别解析出与每个数据文件对应的待处理数据块流;将解析得到的数据块流输入至计算芯片进行合并处理,输出处理后数据块流、每个处理后数据块的第一边界标识、处理后布隆块流以及每个处理后布隆块的第二边界标识;将所述处理后数据块流和所述处理后布隆块流整合至目标数据文件,并记录每个处理后数据块在所述目标数据文件中的第一偏移量以及每个处理后布隆块在所述目标数据文件中的第二偏移量;利用所述第一边界标识、所述第一偏移量、所述第二边界标识以及所述第二偏移量构建索引块流,并将所述索引块流整合至所述目标数据文件。
根据本发明实施例的另一方面,还提供了一种数据文件的合并方法,包括:从多个待合并数据文件中分别解析出与每个数据文件对应的待处理数据块流;对解析出的数据块流进行合并处理,得到处理后数据块流、每个处理后数据块的第一边界标识、处理后布隆块流以及每个处理后布隆块的第二边界标识;将所述处理后数据块流和所述处理后布隆块流整合至目标数据文件,并记录每个处理后数据块在所述目标数据文件中的第一偏移量以及每个处理后布隆块在所述目标数据文件中的第二偏移量;利用所述第一边界标识、所述第一偏移量、所述第二边界标识以及所述第二偏移量构建索引块流,并将所述索引块流整合至所述目标数据文件。
根据本发明实施例的另一方面,还提供了一种数据文件的合并装置,包括:解析单元,用于从多个待合并数据文件中分别解析出与每个数据文件对应的待处理数据块流;处理单元,用于将解析得到的数据块流输入至计算芯片进行合并处理,输出处理后数据块流、每个处理后数据块的第一边界标识、处理后布隆块流以及每个处理后布隆块的第二边界标识;整合单元,用于将所述处理后数据块流和所述处理后布隆块流整合至目标数据文件,并记录每个处理后数据块在所述目标数据文件中的第一偏移量以及每个处理后布隆块在所述目标数据文件中的第二偏移量;构建单元,用于利用所述第一边界标识、所述第一偏移量、所述第二边界标识以及所述第二偏移量构建索引块流,并将所述索引块流整合至所述目标数据文件。
根据本发明实施例的另一方面,还提供了一种数据文件的合并装置,包括:第一合并单元,用于从多个待合并数据文件中分别解析出与每个数据文件对应的待处理数据块流;第二合并单元,用于对解析出的数据块流进行合并处理,得到处理后数据块流、每个处理后数据块的第一边界标识、处理后布隆块流以及每个处理后布隆块的第二边界标识;第三合并单元,用于将所述处理后数据块流和所述处理后布隆块流整合至目标数据文件,并记录每个处理后数据块在所述目标数据文件中的第一偏移量以及每个处理后布隆块在所述目标数据文件中的第二偏移量;第四合并单元,用于利用所述第一边界标识、所述第一偏移量、所述第二边界标识以及所述第二偏移量构建索引块流,并将所述索引块流整合至所述目标数据文件。
根据本发明实施例的另一个方面,还提供了一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行上述所述的数据文件的合并方法。
根据本发明实施例的又一个方面,还提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述所述的数据文件的合并方法。
在对数据文件进行合并的过程中,可以从多个待合并数据文件中分别解析出与每个数据文件对应的待处理数据块流,再将解析得到的数据块流输入至计算芯片,由计算机芯片进行合并处理,输出处理后数据块流、每个处理后数据块的第一边界标识、处理后布隆块流以及每个处理后布隆块的第二边界标识,然后再分别将处理后数据块流和处理后布隆块流整合至目标数据文件,并记录每个处理后数据块在目标数据文件中的第一偏移量以及每个处理后布隆块在目标数据文件中的第二偏移量,再利用第一边界标识、第一偏移量、第二边界标识以及第二偏移量构建索引块流,并将索引块流整合至目标数据文件,达到了对数据文件进行合并目的,并且在合并的过程不需要对待合并数据文件进行完整的缓存,使合并的过程摆脱了对缓存容量的依赖,从而可以实现对数据量较大的数据文件进行合并的技术效果,进而解决了现有技术无法对数据量较大的数据文件进行合并的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据现有技术的一种合并操作的示意图;
图2示出了一种用于实现数据文件的合并方法的计算机终端(或移动设备)的硬件结构框图;
图3是根据本发明实施例的一种数据文件的合并方法的流程图一;
图4是根据本发明实施例的一种数据文件的合并方法的流程图二;
图5是根据本发明实施例的一种数据文件的合并装置框架的示意图;
图6是根据本发明实施例的一种计算操作的执行设备框架的示意图;
图7是根据本发明实施例的一种分离器的处理流程图;
图8是根据本发明实施例的一种推送器的处理流程图;
图9是根据本发明实施例的一种拉取器的处理流程图;
图10是根据本发明实施例的一种索引生成器的处理流程图;
图11是根据本发明实施例的一种整合器的处理流程图;
图12是根据本发明实施例的一种数据文件的合并方法的流程图二;
图13是根据本发明实施例的一种数据文件的合并装置的示意图一;
图14是根据本发明实施例的一种数据文件的合并装置的示意图二;
图15是根据本发明实施例的一种计算机终端的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
首先,在对本申请实施例进行描述的过程中出现的部分名词或术语适用于如下解释:
LSM-Tree:全称为Log-Structured-Merge Tree。是一种常见的数据库存储引擎结构。写入性能较为优秀。LSM-Tree结构在数据库领域被广泛使用。
Compaction(合并操作):是一种发生在LSM-Tree数据库中的内部合并行为,可以将多个SST数据文件合并成为一个。
SST:全称为Small-Sorted-Table,是LSM-Tree引擎中的数据文件,具备不可修改,内部数据有序排列的特点。
硬件加速:硬件加速是指在计算机中通过把计算量非常大的工作分配给专门的硬件来处理以减轻中央处理器的工作量之技术。
KV:Key-Value对。是LSM-Tree数据库中的基本数据组成元素。KV由Key(键值)和Value(值)组成。
B+树:B+树是一种树数据结构,通常用于数据库和操作系统的文件系统中。B+树的特点是能够保持数据稳定有序,其插入与修改拥有较稳定的对数时间复杂度。
布隆过滤器:它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在一个集合中。LSM-Tree常用布隆过滤器加速查询。
FPGA:全称为现场可编程逻辑门阵列,它是作为专用集成电路领域中的一种半定制电路而出现的,既解决了全定制电路的不足,又克服了原有可编程逻辑器件门电路数有限的缺点。
GPU:图形处理器是一种专门在个人计算机、工作站、游戏机和一些移动设备上运行绘图运算工作的微处理器。
ASIC:ASIC是专用集成电路的缩写。用集成电路是由特定使用者要求和特定电子系统的需要而设计、制造。由于单个专用集成电路芯片的生产成本很高,如果出货量较小,则采用专用集成电路在经济上不太实惠。
主机:本文语境中的主机指的是相对于FPGA、GPU等计算设备所在的计算机主机。
文件系统:计算机的文件系统是一种存储和组织计算机数据的方法,它使得对其存取和查找变得容易。
分布式文件系统:分布式文件系统(Distributed File System)是指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连。分布式文件系统的设计基于客户机/服务器模式。一个典型的网络可能包括多个供多用户访问的服务器。另外,对等特性允许一些系统扮演客户机和服务器的双重角色。
实施例1
根据本发明实施例,还提供了一种数据文件的合并方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请实施例一所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。图2示出了一种用于实现数据文件的合并方法的计算机终端(或移动设备)的硬件结构框图。如图2所示,计算机终端10(或移动设备10)可以包括一个或多个(图中采用102a、102b,……,102n来示出)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输装置106。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(BUS总线)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图2所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图2中所示更多或者更少的组件,或者具有与图2所示不同的配置。
应当注意到的是上述一个或多个处理器102和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到计算机终端10(或移动设备)中的其他元件中的任意一个内。如本申请实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
存储器104可用于存储应用软件的软件程序以及模块,如本发明实施例中的数据文件的合并方法对应的程序指令/数据存储装置,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的应用程序的漏洞检测方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
显示器可以例如触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与计算机终端10(或移动设备)的用户界面进行交互。
此处需要说明的是,在一些可选实施例中,上述图2所示的计算机设备(或移动设备)可以包括硬件元件(包括电路)、软件元件(包括存储在计算机可读介质上的计算机代码)、或硬件元件和软件元件两者的结合。应当指出的是,图2仅为特定具体实例的一个实例,并且旨在示出可存在于上述计算机设备(或移动设备)中的部件的类型。
在上述运行环境下,本申请提供了如图3所示的数据文件的合并方法。图3是根据本发明实施例的一种数据文件的合并方法的流程图一,如图3所示,该方法包括如下步骤:
步骤S302,从多个待合并数据文件中分别解析出与每个数据文件对应的待处理数据块流;
步骤S304,将解析得到的数据块流输入至计算芯片进行合并处理,输出处理后数据块流、每个处理后数据块的第一边界标识、处理后布隆块流以及每个处理后布隆块的第二边界标识;
步骤S306,将处理后数据块流和处理后布隆块流整合至目标数据文件,并记录每个处理后数据块在目标数据文件中的第一偏移量以及每个处理后布隆块在目标数据文件中的第二偏移量;
步骤S308,利用第一边界标识、第一偏移量、第二边界标识以及第二偏移量构建索引块流,并将索引块流整合至目标数据文件。
本发明上述实施例,在对数据文件进行合并的过程中,可以从多个待合并数据文件中分别解析出与每个数据文件对应的待处理数据块流,再将解析得到的数据块流输入至计算芯片,由计算机芯片进行合并处理,输出处理后数据块流、每个处理后数据块的第一边界标识、处理后布隆块流以及每个处理后布隆块的第二边界标识,然后再分别将处理后数据块流和处理后布隆块流整合至目标数据文件,并记录每个处理后数据块在目标数据文件中的第一偏移量以及每个处理后布隆块在目标数据文件中的第二偏移量,再利用第一边界标识、第一偏移量、第二边界标识以及第二偏移量构建索引块流,并将索引块流整合至目标数据文件,达到了对数据文件进行合并目的,并且在合并的过程不需要对待合并数据文件进行完整的缓存,使合并的过程摆脱了对缓存容量的依赖,从而可以实现对数据量较大的数据文件进行合并的技术效果,进而解决了现有技术无法对数据量较大的数据文件进行合并的技术问题。
作为一种可选的实施例,上述步骤S304中的计算芯片包括以下之一:现场可编程逻辑门阵列、图形处理器、应用集成电路。
作为一种可选的实施例,上述步骤S306中的目标数据文件存储在文件系统中,其中,文件系统包括以下之一:本地文件系统、分布式文件系统。
需要说明的是,如图3所示的数据文件的合并方法可以应用在LSM-Tree数据库(如在线处理分布式数据库)中,对LSM-Tree数据库中典型的SST数据文件进行合并。
为了更好的理解本发明的设计,下面介绍在LSM-Tree数据库中典型的SST数据文件格式,图4是根据本发明实施例的一种SST数据文件格式的示意图,如图4所示,一个典型的LSM-Tree数据库中的SST数据文件至少包括:数据和元信息,其中,元信息包含:索引、布隆过滤器(根据不同的LSM-Tree数据库实现,一些其他的LSM-Tree数据库可能不包含布隆过滤器)以及其他元信息。
其中,布隆过滤器用于查询加速,可以减少读文件的次数。
需要说明的是,在SST数据文件中的元素(如元信息和数据)均以块(Block)的形式组织,其中,在SST数据文件中的数据以数据块的形式存储在SST数据文件中。数据块也是数据进行压缩的基本单位。每个数据块均可以独立的进行压缩与解压缩。
其中,索引存储各个块边界Key到该块在SST数据文件中的偏移量(Offset)。可以将整个SST数据文件视为B+树。索引构成了一颗B+树的根节点和内部节点,而数据块(DataBlock)与布隆块(Bloom Block)构成了B+树的叶子节点,索引使得在SST数据文件中以给定Key进行随机数据查询成为可能。
其中,其他元信息由不同种类的LSM-Tree数据库自行定义,主要用于文件信息存储,文件格式识别等目的,这里不展开叙述。
在工程实现与应用中,针对FPGA内存限制的问题,提供了一种在LSM-Tree数据库中面向数据流的硬件加速合并方案,使得FPGA不需要缓存所有输入与输出数据就可以完成LSM-Tree数据库中的合并操作。
图5是根据本发明实施例的一种数据文件的合并装置框架的示意图,如图5所示,该图展示了一个合并操作的数据文件从输入到输出的完整数据流转流程,每个输入文件均对应一个分离器(Extractor),该分离器读取SST数据文件中的内容,将其中的数据块(DataBlock)解析出来,并将其他类型的块丢弃,以供下游使用。
需要说明的是,分离器不会对数据块进行解压缩操作。
可选地,每个分离器对应一个推送器(Pusher),推送器将分离器生成的数据块推送到FPGA输入通道进行处理。FPGA对每一个输入通道均保留有一定的输入缓冲区。
需要说明的是,推送器负责协调数据传输,当缓冲区满时,推送器会等待缓冲区有可用空间时再进行数据推送。
可选地,FPGA会对输入的数据块进行解压缩,归并排序,压缩,生成布隆过滤器等操作,最终以两路通道进行输出。
其中,FPGA的其中一路输出为数据块输出,使用一个拉取器(Data Puller)拉取FPGA的输出数据,这条通道除了输出数据块之外,还会输出数据块对应的边界Key(BlockBoundary Key),用于后续构造索引。
其中,FPGA另一路输出为布隆块(Bloom Block)输出,使用一个布隆拉取器(BloomPuller)拉取FPGA的输出数据,这条通道除了输出布隆块之外,也会输出布隆块对应的边界Key(Block Boundary Key),用于后续构造索引。
可选地,数据块和布隆块通过整合器(SST Composer)写入输出SST数据文件,在写入SST数据文件的过程中,整合器会记录下被输出的数据块(或布隆块)在SST数据文件中的偏移量(Offset In SST)。
需要说明的是,偏移量与块边界Key是组成索引的必须要素,两者进入到索引生成器(Index Generator)中进行聚合,聚合后输出索引块。
可选地,索引块也会通过整合器输出到目标SST数据文件中。
需要说明的是,图5中的各个装置除FPGA为硬件设备外,其他装置均为软件模块。
需要说明的是,该图5所示的合并装置中,输入为参与合并的SST数据文件,输出为合并后的SST数据文件。
可选地,如图5所示的FPGA硬件与在FPGA上实现的逻辑模块是软件操作到硬件设备上的再实现,主要包含解压缩,归并排序,KV TTL删除,压缩等计算操作,这些计算操作是CPU密集型操作,本申请利用FPGA加速这些计算操作。
图6是根据本发明实施例的一种计算操作的执行设备框架的示意图,如图6所示,包括CPU、XDMA分布式媒体结构、Key合并模块、Key删除模块、DIFF命令编码模块、DIFF命令解码模块、解压模块、压缩模块、布隆块、队列管理模块、HPI并行接口、集成线路、以及内存DDR0、DDR1、DDR2和DDR3。该执行设备并非本发明关注重点,不展开叙述。
可选地,如图5所示数据文件的合并装置的FPGA还包含一个FPGA管理器,该FPGA管理器由软件实现,用于协调软件与硬件之间的信息传递,主要职责包含状态同步、数据传输、任务调度、错误调试、内存管理等。该FPGA管理器并非本发明关注重点,不展开叙述。
作为一种可选的实施例,从多个待合并数据文件中分别解析出与每个数据文件对应的待处理数据块流包括:采用与每个数据文件对应的分离器依次读取每个数据文件中所包含的每个块;如果读取到的块为数据块,则输出数据块;如果读取到的块并非为数据块,则丢弃读取到的块并继续读取下一个块;如果读取到的块为特殊块,则确定文件内容中的全部块已读取完毕,得到待处理数据块流。
图7是根据本发明实施例的一种分离器的处理流程图,如图7所示,包括步骤如下:
步骤S702,输入数据文件。
步骤S704,依次读取数据文件中的各块。
可选地,步骤S704中的块至少包括:数据块、索引块、布隆块、以及其他元信息块。
步骤S706,判断读取的块是否属于结束块。
需要说明的是,结束块,即EOF块是一个特殊的块,本身并不包含数据,仅用于软硬件交互时,FPGA通知软件数据输出完毕。
可选地,在该块属于结束块的情况下,对数据文件的读取结束;在该块不属于结束块的情况下,执行步骤S708。
步骤S708,判断该块是否为数据块。
可选地,在该块不属于数据块的情况下,返回步骤S704,读取下一个块;在该块属于数据块的情况下,执行步骤S710。
步骤S710,输出数据块。
基于图7所示的处理流程,分离器(Extractor)逐个从SST数据文件中读取块(Block),如果该块是一个数据块(Data Block),则向下游输出;如果不是,则跳过,直到将SST数据文件读完为止。
需要说明的是,逐个输出的数据块成为了一个数据块流。
作为一种可选的实施例,将解析得到的数据块流输入至计算芯片进行合并处理包括:将解析得到的数据块流输入至计算芯片的输入通道;采用计算芯片对输入通道中的数据块流依次执行解压缩,归并排序以及压缩处理。
作为一种可选的实施例,将解析得到的数据块流输入至计算芯片的输入通道包括:采用推送器依次获取分离器生成的数据块;如果与推送器对应的计算芯片的输入通道的缓冲区未满,则将数据块推送至输入通道并继续读取下一个数据块;如果与推送器对应的计算芯片的输入通道的缓冲区已满,则等待至缓冲区存在空闲空间时,再将数据块推送至输入通道并继续读取下一个数据块;如果推送器读取到的块为特殊块,则确定分离器生成的全部数据块已读取完毕。
图8是根据本发明实施例的一种推送器的处理流程图,如图8所示,包括步骤如下:
步骤S802,接收来自分离器的数据块。
步骤S804,依次读取各数据块。
步骤S806,判断该数据块是否属于结束块。
需要说明的是,EOF块是一个特殊的块,本身并不包含数据,仅用于软硬件交互时,FPGA通知软件数据输出完毕。
可选地,在该数据块属于结束块的情况下,处理流程结束;在该数据块不属于数据块的情况下,执行步骤S808。
步骤S808,判断FPGA通道是否可写。
可选地,在FPGA通道可写的情况下,执行步骤S810;在FPGA通道不可写的情况下,执行步骤S812。
步骤S810,将数据块写入FPGA通道。
可选地,在将数据块写入FPGA通道后,返回步骤S804,读取下一个数据块。
步骤S812,等待FPGA通道可写。
可选地,在等到FPGA通道可写后,返回步骤S808。
如图8所示的推送器可以接收分离器传输过来的数据,不断往FPGA输入通道上进行写入,如果FPGA输入通道因为FPGA来不及处理而不可写,推送器会进行等待,直到通道可写为止。
作为一种可选的实施例,输出处理后数据块流和每个处理后数据块的第一边界标识包括:采用数据块拉取器从计算芯片的第一输出通道依次拉取每个块;如果拉取到块并非为特殊块,则输出拉取到的数据块和第一边界标识,并继续读取下一个块;如果拉取到块为特殊块,则确定第一输出通道上的全部数据块已拉取完毕。
作为一种可选的实施例,输出处理后布隆块流和每个处理后布隆块的第二边界标识包括:采用布隆块拉取器从计算芯片的第二输出通道依次拉取每个块;如果拉取到块并非为特殊块,则输出拉取到的布隆块和第二边界标识,并继续读取下一个块;如果拉取到块为特殊块,则确定第二输出通道上的全部布隆块已拉取完毕。
图9是根据本发明实施例的一种拉取器的处理流程图,如图9所示,包括步骤如下:
步骤S902,拉取FPGA管理器中的数据块和数据块的边界标识,以及布隆块和布隆块的边界标识。
步骤S904,依次读取各块。
可选地,该块至少包括:数据块和布隆块。
步骤S906,判断该块是否为结束块。
需要说明的是,结束块,即EOF块是一个特殊的块,本身并不包含数据,仅用于软硬件交互时,FPGA通知软件数据输出完毕。
可选地,在该块属于结束块的情况下,处理流程结束;在该块不属于结束块的情况下,执行步骤S908。
步骤S908,输出该块。
可选地,在输出块后,返回步骤S904。
需要说明的是,拉取器(Puller)分为数据块拉取器与索引块拉取器,其区别在于拉取的数据类型的不同,在流程上并没有区别。
可选地,拉取器从FPGA输出通道不断读取数据块(或布隆块),和这个块对应的边界Key(Boundary Key)。当FPGA输出通道吐出一个EOF块(EOF Block)时,则拉取器终止。
需要说明的是,EOF块是一个特殊的块,本身并不包含数据,仅用于软硬件交互时,FPGA通知软件数据输出完毕。
作为一种可选的实施例,利用第一边界标识、第一偏移量、第二边界标识以及第二偏移量构建索引块流,并将索引块流整合至目标数据文件包括:将第一边界标识与第一偏移量作为单独的索引记录添加到索引生成器缓存的索引记录集合中,以及将第二边界标识与第二偏移量作为单独的索引记录添加到索引记录集合中;如果索引记录集合中存储的索引记录超过预设阈值,则将索引记录集合中存储的索引记录构造成索引块并输出至整合器;如果索引记录集合中存储的索引记录未超过预设阈值,则继续读取第一边界标识与第一偏移量,或者继续读取第二边界标识与第二偏移量,直至读取完毕,然后再将索引记录集合中存储的剩余索引记录构造成索引块并输出至整合器。
图10是根据本发明实施例的一种索引生成器的处理流程图,如图10所示,包括步骤如下:
步骤S1002,获取来自拉取器的块边界标识。
步骤S1004,获取来自整合器的偏移量。
步骤S1006,读取或记录索引生成器。
步骤S1008,判断当前获取的块边界标识是否属于最后一个块的边界标识。
可选地,在当前获取的块边界标识属于最后一个块的边界标识的情况下,执行步骤S1010;在当前获取的块边界标识不属于最后一个块的边界标识的情况下,执行步骤S1014。
步骤S1010,建立索引块。
步骤S1012,写入整合器。
可选地,在执行步骤S1012后,处理流程结束。
步骤S1014,添加到缓存的索引记录集合。
步骤S1016,判断缓存的索引记录集合是否超过阈值。
可选地,在缓存的索引记录集合未超过阈值的情况下,返回步骤S1006;在缓存的索引记录集合超过阈值的情况下,执行步骤S1018。
步骤S1018,建立索引块。
步骤S1020,写入整合器。
可选地,在执行步骤S1012后,返回步骤S1006。
本发明上述实施例,索引生成器(Index Generator)读取数据块(或布隆块)对应的边界Key与偏移量,将这两者作为一条记录添加到索引生成器缓存的索引记录集合(Index Record Set)中。当集合的大小超过一定阈值时(一般为数十K至数百K大小),将这个缓存集合构造成索引块并输出;当所有输入信息读取完毕后,索引生成器中如果还有剩余记录,也会输出成为一个索引块。
作为一种可选的实施例,将处理后数据块流整合至目标数据文件,并记录每个处理后数据块在目标数据文件中的第一偏移量包括:通过整合器将处理后数据块流整合至目标数据文件;在将处理后数据块流整合至目标数据文件的过程中,采用整合器依次记录每个处理后数据块在目标数据文件中的第一偏移量。
作为一种可选的实施例,将处理后布隆块流整合至目标数据文件,并记录每个处理后布隆块在目标数据文件中的第二偏移量包括:通过整合器将处理后布隆块流整合至目标数据文件;在将处理后布隆块流整合至目标数据文件的过程中,采用整合器依次记录每个处理后布隆块在目标数据文件中的第二偏移量。
图11是根据本发明实施例的一种整合器的处理流程图,如图11所示,包括步骤如下:
步骤S1102,获取来自拉取器或索引生成器的块。
步骤S1104,依次读取各块。
步骤S1106,判断该块是否属于结束块。
需要说明的是,结束块,即EOF块是一个特殊的块,本身并不包含数据,仅用于软硬件交互时,FPGA通知软件数据输出完毕。
可选地,在该块属于结束块的情况下,执行步骤S1108;在该块不属于结束块的情况下,执行步骤S1110。
步骤S1108,写其他元信息。
可选地,在执行步骤S1108后,处理流程结束。
步骤S1110,将块写入外部存储系统的SST数据文件。
步骤S1112,输出SST数据文件中的偏移量。
可选地,在步骤S1112后,返回步骤S1104,读取下一个块。
整合器(SST Composer)接收数据拉取器、布隆拉取器、索引生成器的输出内容,逐个写入外部存储系统(File System,简称FS)。
可选地,该外部存储系统可以是本地文件系统,也可以是分布式文件系统,该FS指分布式文件系统。当所有块都输出完以后,会输出SST数据文件的Trailier提示信息与其他元信息,至此,整个合并流程执行完毕。
需要说明的是,在工程实现中,图5中的PGA硬件与在FPGA上实现的逻辑模块可以替换为软件实现。使用软件实现的方案虽然并不能达到硬件加速的效果,但是软件的工程质量相对比较容易保证,可以利用软件替换硬件对整套系统进行质量验证测试。
可选地,软件实现的方案还可以让图5所示的合并装置能够在没有FPGA硬件的环境下运行。
本发明上述实施例,以数据块流式的方式传输数据,解决了LSM-Tree数据库合并操作硬件加速中文件过大无法完全放入硬件内存的问题,使得LSM-Tree数据库硬件加速的应用方位更广。
需要说明的是,在输出数据块/布隆块时,除了输出块本身,会连同块的边界Key一同输出,有了块的边界Key,才可以采用流的方式构建索引,这是本发明得以实现的关键技术创新点。
本发明提供的技术方案,一直以块作为数据交互传输的基本单元,分离器、推送器、拉取器、整合器等对于所有输入数据都可以做到即来即走,软件不需要缓存大量的整个文件或大量的数据块,虽然索引生成器需要缓存索引记录,但是缓存的量也不会超过一个索引块的大小,从而当文件大小超出硬件内存限制时,仍然可以正常工作。
本发明提供的技术方案,将最消耗计算资源的压缩、解压缩、归并排序等操作均放置在FPGA上执行,可以有效的提升合并操作的速度,减少合并操作对CPU的计算资源开销。
本发明针对合并操作的设计与装置,具备计算单元可插拔的能力,既可以使用硬件加速,也可以支持以软件的方式CPU上运行,这种设计与装置对计算单元没有限制,也可以使用GPU、ASIC等计算芯片实现硬件加速合并装置。本发明中专利主要以FPGA作为硬件加速计算单元举例。
在上述运行环境下,本申请提供了如图12所示的数据文件的合并方法。图12是根据本发明实施例的一种数据文件的合并方法的流程图二,如图12所示,该方法包括如下步骤:
步骤S1202,从多个待合并数据文件中分别解析出与每个数据文件对应的待处理数据块流;
步骤S1204,对解析出的数据块流进行合并处理,得到处理后数据块流、每个处理后数据块的第一边界标识、处理后布隆块流以及每个处理后布隆块的第二边界标识;
步骤S1206,将处理后数据块流和处理后布隆块流整合至目标数据文件,并记录每个处理后数据块在目标数据文件中的第一偏移量以及每个处理后布隆块在目标数据文件中的第二偏移量;
步骤S1208,利用第一边界标识、第一偏移量、第二边界标识以及第二偏移量构建索引块流,并将索引块流整合至目标数据文件。
本发明上述实施例,在对数据文件进行合并的过程中,可以从多个待合并数据文件中分别解析出与每个数据文件对应的待处理数据块流,再对解析得到的数据块流进行合并处理,输出处理后数据块流、每个处理后数据块的第一边界标识、处理后布隆块流以及每个处理后布隆块的第二边界标识,然后再分别将处理后数据块流和处理后布隆块流整合至目标数据文件,并记录每个处理后数据块在目标数据文件中的第一偏移量以及每个处理后布隆块在目标数据文件中的第二偏移量,再利用第一边界标识、第一偏移量、第二边界标识以及第二偏移量构建索引块流,并将索引块流整合至目标数据文件,达到了对数据文件进行合并目的,并且在合并的过程不需要对待合并数据文件进行完整的缓存,使合并的过程摆脱了对缓存容量的依赖,从而可以实现对数据量较大的数据文件进行合并的技术效果,进而解决了现有技术无法对数据量较大的数据文件进行合并的技术问题。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
实施例2
根据本发明实施例,还提供了一种用于实施上述数据文件的合并方法的数据文件的合并装置。
图13是根据本发明实施例的一种数据文件的合并装置的示意图一,如图13所示,该装置包括:解析单元1302、处理单元1304、整合单元1306、和构建单元1308。
其中,解析单元1302,用于从多个待合并数据文件中分别解析出与每个数据文件对应的待处理数据块流;处理单元1304,用于将解析得到的数据块流输入至计算芯片进行合并处理,输出处理后数据块流、每个处理后数据块的第一边界标识、处理后布隆块流以及每个处理后布隆块的第二边界标识;整合单元1306,用于将处理后数据块流和处理后布隆块流整合至目标数据文件,并记录每个处理后数据块在目标数据文件中的第一偏移量以及每个处理后布隆块在目标数据文件中的第二偏移量;构建单元1308,用于利用第一边界标识、第一偏移量、第二边界标识以及第二偏移量构建索引块流,并将索引块流整合至目标数据文件。
此处需要说明的是,上述解析单元1302至构建单元1308对应于实施例1中的步骤S302至步骤S308,上述各单元与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述单元作为装置的一部分可以运行在实施例1提供的计算机终端10中。
本发明上述实施例,在对数据文件进行合并的过程中,可以从多个待合并数据文件中分别解析出与每个数据文件对应的待处理数据块流,再将解析得到的数据块流输入至计算芯片,由计算机芯片进行合并处理,输出处理后数据块流、每个处理后数据块的第一边界标识、处理后布隆块流以及每个处理后布隆块的第二边界标识,然后再分别将处理后数据块流和处理后布隆块流整合至目标数据文件,并记录每个处理后数据块在目标数据文件中的第一偏移量以及每个处理后布隆块在目标数据文件中的第二偏移量,再利用第一边界标识、第一偏移量、第二边界标识以及第二偏移量构建索引块流,并将索引块流整合至目标数据文件,达到了对数据文件进行合并目的,并且在合并的过程不需要对待合并数据文件进行完整的缓存,使合并的过程摆脱了对缓存容量的依赖,从而可以实现对数据量较大的数据文件进行合并的技术效果,进而解决了现有技术无法对数据量较大的数据文件进行合并的技术问题。
作为一种可选的实施例,解析单元包括:读取模块,用于采用与每个数据文件对应的分离器依次读取每个数据文件中所包含的每个块;读取子模块,用于如果读取到的块为数据块,则输出数据块;如果读取到的块并非为数据块,则丢弃读取到的块并继续读取下一个块;如果读取到的块为特殊块,则确定文件内容中的全部块已读取完毕,得到待处理数据块流。
作为一种可选的实施例,处理单元包括:传输装置,用于将解析得到的数据块流输入至计算芯片的输入通道;处理模块,用于采用计算芯片对输入通道中的数据块流依次执行解压缩,归并排序以及压缩处理。
作为一种可选的实施例,传输装置包括:获取模块,用于采用推送器依次获取分离器生成的数据块;获取子模块,用于如果与推送器对应的计算芯片的输入通道的缓冲区未满,则将数据块推送至输入通道并继续读取下一个数据块;如果与推送器对应的计算芯片的输入通道的缓冲区已满,则等待至缓冲区存在空闲空间时,再将数据块推送至输入通道并继续读取下一个数据块;如果推送器读取到的块为特殊块,则确定分离器生成的全部数据块已读取完毕。
作为一种可选的实施例,处理单元包括:第一拉取模块,用于采用数据块拉取器从计算芯片的第一输出通道依次拉取每个块;第一拉取子模块,用于如果拉取到块并非为特殊块,则输出拉取到的数据块和第一边界标识,并继续读取下一个块;如果拉取到块为特殊块,则确定第一输出通道上的全部数据块已拉取完毕。
作为一种可选的实施例,处理单元包括:第二拉取模块,用于采用布隆块拉取器从计算芯片的第二输出通道依次拉取每个块;第二拉取子模块,用于如果拉取到块并非为特殊块,则输出拉取到的布隆块和第二边界标识,并继续读取下一个块;如果拉取到块为特殊块,则确定第二输出通道上的全部布隆块已拉取完毕。
作为一种可选的实施例,整合单元包括:第一整合模块,用于通过整合器将处理后数据块流整合至目标数据文件;第一整合子模块,用于在将处理后数据块流整合至目标数据文件的过程中,采用整合器依次记录每个处理后数据块在目标数据文件中的第一偏移量。
作为一种可选的实施例,整合单元包括:第二整合模块,用于通过整合器将处理后布隆块流整合至目标数据文件;第二整合子模块,用于在将处理后布隆块流整合至目标数据文件的过程中,采用整合器依次记录每个处理后布隆块在目标数据文件中的第二偏移量。
作为一种可选的实施例,构建单元包括:添加模块,用于将第一边界标识与第一偏移量作为单独的索引记录添加到索引生成器缓存的索引记录集合中,以及将第二边界标识与第二偏移量作为单独的索引记录添加到索引记录集合中;添加子模块,用于如果索引记录集合中存储的索引记录超过预设阈值,则将索引记录集合中存储的索引记录构造成索引块并输出至整合器;如果索引记录集合中存储的索引记录未超过预设阈值,则继续读取第一边界标识与第一偏移量,或者继续读取第二边界标识与第二偏移量,直至读取完毕,然后再将索引记录集合中存储的剩余索引记录构造成索引块并输出至整合器。
作为一种可选的实施例,目标数据文件存储在文件系统中,其中,文件系统包括以下之一:本地文件系统、分布式文件系统。
作为一种可选的实施例,计算芯片包括以下之一:现场可编程逻辑门阵列、图形处理器、应用集成电路。
根据本发明实施例,还提供了一种用于实施上述数据文件的合并方法的数据文件的合并装置。
图14是根据本发明实施例的一种数据文件的合并装置的示意图二,如图14所示,该装置包括:第一合并单元1402、第二合并单元1404、第三合并单元1406、和第四合并单元1408。
其中,第一合并单元1402,用于从多个待合并数据文件中分别解析出与每个数据文件对应的待处理数据块流;第二合并单元1404,用于对解析出的数据块流进行合并处理,得到处理后数据块流、每个处理后数据块的第一边界标识、处理后布隆块流以及每个处理后布隆块的第二边界标识;第三合并单元1406,用于将处理后数据块流和处理后布隆块流整合至目标数据文件,并记录每个处理后数据块在目标数据文件中的第一偏移量以及每个处理后布隆块在目标数据文件中的第二偏移量;第四合并单元1408,用于利用第一边界标识、第一偏移量、第二边界标识以及第二偏移量构建索引块流,并将索引块流整合至目标数据文件。
此处需要说明的是,上述第一合并单元1402至第四合并单元1408对应于实施例1中的步骤S1202至步骤S1208,上述各单元与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述单元作为装置的一部分可以运行在实施例1提供的计算机终端10中。
本发明上述实施例,在对数据文件进行合并的过程中,可以从多个待合并数据文件中分别解析出与每个数据文件对应的待处理数据块流,再对解析得到的数据块流进行合并处理,输出处理后数据块流、每个处理后数据块的第一边界标识、处理后布隆块流以及每个处理后布隆块的第二边界标识,然后再分别将处理后数据块流和处理后布隆块流整合至目标数据文件,并记录每个处理后数据块在目标数据文件中的第一偏移量以及每个处理后布隆块在目标数据文件中的第二偏移量,再利用第一边界标识、第一偏移量、第二边界标识以及第二偏移量构建索引块流,并将索引块流整合至目标数据文件,达到了对数据文件进行合并目的,并且在合并的过程不需要对待合并数据文件进行完整的缓存,使合并的过程摆脱了对缓存容量的依赖,从而可以实现对数据量较大的数据文件进行合并的技术效果,进而解决了现有技术无法对数据量较大的数据文件进行合并的技术问题。
实施例3
本发明的实施例可以提供一种计算机终端,该计算机终端可以是计算机终端群中的任意一个计算机终端设备。可选地,在本实施例中,上述计算机终端也可以替换为移动终端等终端设备。
可选地,在本实施例中,上述计算机终端可以位于计算机网络的多个网络设备中的至少一个网络设备。
在本实施例中,上述计算机终端可以执行应用程序的漏洞检测方法中以下步骤的程序代码:从多个待合并数据文件中分别解析出与每个数据文件对应的待处理数据块流;将解析得到的数据块流输入至计算芯片进行合并处理,输出处理后数据块流、每个处理后数据块的第一边界标识、处理后布隆块流以及每个处理后布隆块的第二边界标识;将处理后数据块流和处理后布隆块流整合至目标数据文件,并记录每个处理后数据块在目标数据文件中的第一偏移量以及每个处理后布隆块在目标数据文件中的第二偏移量;利用第一边界标识、第一偏移量、第二边界标识以及第二偏移量构建索引块流,并将索引块流整合至目标数据文件。
在本实施例中,上述计算机终端可以执行应用程序的漏洞检测方法中以下步骤的程序代码:从多个待合并数据文件中分别解析出与每个数据文件对应的待处理数据块流;对解析出的数据块流进行合并处理,得到处理后数据块流、每个处理后数据块的第一边界标识、处理后布隆块流以及每个处理后布隆块的第二边界标识;将处理后数据块流和处理后布隆块流整合至目标数据文件,并记录每个处理后数据块在目标数据文件中的第一偏移量以及每个处理后布隆块在目标数据文件中的第二偏移量;利用第一边界标识、第一偏移量、第二边界标识以及第二偏移量构建索引块流,并将索引块流整合至目标数据文件。
可选地,图15是根据本发明实施例的一种计算机终端的结构框图。如图15所示,该计算机终端10可以包括:一个或多个(图中仅示出一个)处理器、存储器、以及传输装置。
其中,存储器可用于存储软件程序以及模块,如本发明实施例中的安全漏洞检测方法和装置对应的程序指令/模块,处理器通过运行存储在存储器内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的系统漏洞攻击的检测方法。存储器可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
处理器可以通过传输装置调用存储器存储的信息及应用程序,以执行下述步骤:从多个待合并数据文件中分别解析出与每个数据文件对应的待处理数据块流;将解析得到的数据块流输入至计算芯片进行合并处理,输出处理后数据块流、每个处理后数据块的第一边界标识、处理后布隆块流以及每个处理后布隆块的第二边界标识;将处理后数据块流和处理后布隆块流整合至目标数据文件,并记录每个处理后数据块在目标数据文件中的第一偏移量以及每个处理后布隆块在目标数据文件中的第二偏移量;利用第一边界标识、第一偏移量、第二边界标识以及第二偏移量构建索引块流,并将索引块流整合至目标数据文件。
可选的,上述处理器还可以执行如下步骤的程序代码:采用与每个数据文件对应的分离器依次读取每个数据文件中所包含的每个块;如果读取到的块为数据块,则输出数据块;如果读取到的块并非为数据块,则丢弃读取到的块并继续读取下一个块;如果读取到的块为特殊块,则确定文件内容中的全部块已读取完毕,得到待处理数据块流。
可选的,上述处理器还可以执行如下步骤的程序代码:将解析得到的数据块流输入至计算芯片的输入通道;采用计算芯片对输入通道中的数据块流依次执行解压缩,归并排序以及压缩处理。
可选的,上述处理器还可以执行如下步骤的程序代码:采用推送器依次获取分离器生成的数据块;如果与推送器对应的计算芯片的输入通道的缓冲区未满,则将数据块推送至输入通道并继续读取下一个数据块;如果与推送器对应的计算芯片的输入通道的缓冲区已满,则等待至缓冲区存在空闲空间时,再将数据块推送至输入通道并继续读取下一个数据块;如果推送器读取到的块为特殊块,则确定分离器生成的全部数据块已读取完毕。
可选的,上述处理器还可以执行如下步骤的程序代码:采用数据块拉取器从计算芯片的第一输出通道依次拉取每个块;如果拉取到块并非为特殊块,则输出拉取到的数据块和第一边界标识,并继续读取下一个块;如果拉取到块为特殊块,则确定第一输出通道上的全部数据块已拉取完毕。
可选的,上述处理器还可以执行如下步骤的程序代码:采用布隆块拉取器从计算芯片的第二输出通道依次拉取每个块;如果拉取到块并非为特殊块,则输出拉取到的布隆块和第二边界标识,并继续读取下一个块;如果拉取到块为特殊块,则确定第二输出通道上的全部布隆块已拉取完毕。
可选的,上述处理器还可以执行如下步骤的程序代码:通过整合器将处理后数据块流整合至目标数据文件;在将处理后数据块流整合至目标数据文件的过程中,采用整合器依次记录每个处理后数据块在目标数据文件中的第一偏移量。
可选的,上述处理器还可以执行如下步骤的程序代码:通过整合器将处理后布隆块流整合至目标数据文件;在将处理后布隆块流整合至目标数据文件的过程中,采用整合器依次记录每个处理后布隆块在目标数据文件中的第二偏移量。
可选的,上述处理器还可以执行如下步骤的程序代码:将第一边界标识与第一偏移量作为单独的索引记录添加到索引生成器缓存的索引记录集合中,以及将第二边界标识与第二偏移量作为单独的索引记录添加到索引记录集合中;如果索引记录集合中存储的索引记录超过预设阈值,则将索引记录集合中存储的索引记录构造成索引块并输出至整合器;如果索引记录集合中存储的索引记录未超过预设阈值,则继续读取第一边界标识与第一偏移量,或者继续读取第二边界标识与第二偏移量,直至读取完毕,然后再将索引记录集合中存储的剩余索引记录构造成索引块并输出至整合器。
可选的,目标数据文件存储在文件系统中,其中,文件系统包括以下之一:本地文件系统、分布式文件系统。
可选的,计算芯片包括以下之一:现场可编程逻辑门阵列、图形处理器、应用集成电路。
处理器可以通过传输装置调用存储器存储的信息及应用程序,以执行下述步骤:从多个待合并数据文件中分别解析出与每个数据文件对应的待处理数据块流;对解析出的数据块流进行合并处理,得到处理后数据块流、每个处理后数据块的第一边界标识、处理后布隆块流以及每个处理后布隆块的第二边界标识;将处理后数据块流和处理后布隆块流整合至目标数据文件,并记录每个处理后数据块在目标数据文件中的第一偏移量以及每个处理后布隆块在目标数据文件中的第二偏移量;利用第一边界标识、第一偏移量、第二边界标识以及第二偏移量构建索引块流,并将索引块流整合至目标数据文件。
采用本发明实施例,提供了一种数据文件的合并方案。在对数据文件进行合并的过程中,可以从多个待合并数据文件中分别解析出与每个数据文件对应的待处理数据块流,再将解析得到的数据块流输入至计算芯片,由计算机芯片进行合并处理,输出处理后数据块流、每个处理后数据块的第一边界标识、处理后布隆块流以及每个处理后布隆块的第二边界标识,然后再分别将处理后数据块流和处理后布隆块流整合至目标数据文件,并记录每个处理后数据块在目标数据文件中的第一偏移量以及每个处理后布隆块在目标数据文件中的第二偏移量,再利用第一边界标识、第一偏移量、第二边界标识以及第二偏移量构建索引块流,并将索引块流整合至目标数据文件,达到了对数据文件进行合并目的,并且在合并的过程不需要对待合并数据文件进行完整的缓存,使合并的过程摆脱了对缓存容量的依赖,从而可以实现对数据量较大的数据文件进行合并的技术效果,进而解决了现有技术无法对数据量较大的数据文件进行合并的技术问题。
本领域普通技术人员可以理解,图15所示的结构仅为示意,计算机终端也可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌声电脑以及移动互联网设备(MobileInternet Devices,MID)、PAD等终端设备。图15其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图15中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图15所示不同的配置。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(RandomAccess Memory,RAM)、磁盘或光盘等。
实施例4
本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于保存上述实施例一所提供的数据文件的合方法所执行的程序代码。
可选地,在本实施例中,上述存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于移动终端群中的任意一个移动终端中。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:从多个待合并数据文件中分别解析出与每个数据文件对应的待处理数据块流;将解析得到的数据块流输入至计算芯片进行合并处理,输出处理后数据块流、每个处理后数据块的第一边界标识、处理后布隆块流以及每个处理后布隆块的第二边界标识;将处理后数据块流和处理后布隆块流整合至目标数据文件,并记录每个处理后数据块在目标数据文件中的第一偏移量以及每个处理后布隆块在目标数据文件中的第二偏移量;利用第一边界标识、第一偏移量、第二边界标识以及第二偏移量构建索引块流,并将索引块流整合至目标数据文件。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:采用与每个数据文件对应的分离器依次读取每个数据文件中所包含的每个块;如果读取到的块为数据块,则输出数据块;如果读取到的块并非为数据块,则丢弃读取到的块并继续读取下一个块;如果读取到的块为特殊块,则确定文件内容中的全部块已读取完毕,得到待处理数据块流。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:将解析得到的数据块流输入至计算芯片的输入通道;采用计算芯片对输入通道中的数据块流依次执行解压缩,归并排序以及压缩处理。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:采用推送器依次获取分离器生成的数据块;如果与推送器对应的计算芯片的输入通道的缓冲区未满,则将数据块推送至输入通道并继续读取下一个数据块;如果与推送器对应的计算芯片的输入通道的缓冲区已满,则等待至缓冲区存在空闲空间时,再将数据块推送至输入通道并继续读取下一个数据块;如果推送器读取到的块为特殊块,则确定分离器生成的全部数据块已读取完毕。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:采用数据块拉取器从计算芯片的第一输出通道依次拉取每个块;如果拉取到块并非为特殊块,则输出拉取到的数据块和第一边界标识,并继续读取下一个块;如果拉取到块为特殊块,则确定第一输出通道上的全部数据块已拉取完毕。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:采用布隆块拉取器从计算芯片的第二输出通道依次拉取每个块;如果拉取到块并非为特殊块,则输出拉取到的布隆块和第二边界标识,并继续读取下一个块;如果拉取到块为特殊块,则确定第二输出通道上的全部布隆块已拉取完毕。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:通过整合器将处理后数据块流整合至目标数据文件;在将处理后数据块流整合至目标数据文件的过程中,采用整合器依次记录每个处理后数据块在目标数据文件中的第一偏移量。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:通过整合器将处理后布隆块流整合至目标数据文件;在将处理后布隆块流整合至目标数据文件的过程中,采用整合器依次记录每个处理后布隆块在目标数据文件中的第二偏移量。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:将第一边界标识与第一偏移量作为单独的索引记录添加到索引生成器缓存的索引记录集合中,以及将第二边界标识与第二偏移量作为单独的索引记录添加到索引记录集合中;如果索引记录集合中存储的索引记录超过预设阈值,则将索引记录集合中存储的索引记录构造成索引块并输出至整合器;如果索引记录集合中存储的索引记录未超过预设阈值,则继续读取第一边界标识与第一偏移量,或者继续读取第二边界标识与第二偏移量,直至读取完毕,然后再将索引记录集合中存储的剩余索引记录构造成索引块并输出至整合器。
可选地,目标数据文件存储在文件系统中,其中,文件系统包括以下之一:本地文件系统、分布式文件系统。
可选地,计算芯片包括以下之一:现场可编程逻辑门阵列、图形处理器、应用集成电路。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:从多个待合并数据文件中分别解析出与每个数据文件对应的待处理数据块流;对解析出的数据块流进行合并处理,得到处理后数据块流、每个处理后数据块的第一边界标识、处理后布隆块流以及每个处理后布隆块的第二边界标识;将处理后数据块流和处理后布隆块流整合至目标数据文件,并记录每个处理后数据块在目标数据文件中的第一偏移量以及每个处理后布隆块在目标数据文件中的第二偏移量;利用第一边界标识、第一偏移量、第二边界标识以及第二偏移量构建索引块流,并将索引块流整合至目标数据文件。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (14)
1.一种数据文件的合并方法,其特征在于,包括:
从多个待合并数据文件中分别解析出与每个数据文件对应的待处理数据块流;
将解析得到的数据块流输入至计算芯片进行合并处理,输出处理后数据块流、每个处理后数据块的第一边界标识、处理后布隆块流以及每个处理后布隆块的第二边界标识;
将所述处理后数据块流和所述处理后布隆块流整合至目标数据文件,并记录每个处理后数据块在所述目标数据文件中的第一偏移量以及每个处理后布隆块在所述目标数据文件中的第二偏移量;
利用所述第一边界标识、所述第一偏移量、所述第二边界标识以及所述第二偏移量构建索引块流,并将所述索引块流整合至所述目标数据文件。
2.根据权利要求1所述的方法,其特征在于,从所述多个待合并数据文件中分别解析出与每个数据文件对应的所述待处理数据块流包括:
采用与每个数据文件对应的分离器依次读取每个数据文件中所包含的每个块;
如果读取到的块为数据块,则输出所述数据块;如果读取到的块并非为数据块,则丢弃所述读取到的块并继续读取下一个块;如果读取到的块为特殊块,则确定所述文件内容中的全部块已读取完毕,得到所述待处理数据块流。
3.根据权利要求1所述的方法,其特征在于,将所述解析得到的数据块流输入至所述计算芯片进行合并处理包括:
将所述解析得到的数据块流输入至所述计算芯片的输入通道;
采用所述计算芯片对所述输入通道中的数据块流依次执行解压缩,归并排序以及压缩处理。
4.根据权利要求3所述的方法,其特征在于,将所述解析得到的数据块流输入至所述计算芯片的输入通道包括:
采用推送器依次获取分离器生成的数据块;
如果与所述推送器对应的所述计算芯片的输入通道的缓冲区未满,则将所述数据块推送至所述输入通道并继续读取下一个数据块;如果与所述推送器对应的所述计算芯片的输入通道的缓冲区已满,则等待至所述缓冲区存在空闲空间时,再将所述数据块推送至所述输入通道并继续读取下一个数据块;如果所述推送器读取到的块为特殊块,则确定所述分离器生成的全部数据块已读取完毕。
5.根据权利要求1所述的方法,其特征在于,输出所述处理后数据块流和每个处理后数据块的第一边界标识包括:
采用数据块拉取器从所述计算芯片的第一输出通道依次拉取每个块;
如果拉取到块并非为特殊块,则输出拉取到的数据块和所述第一边界标识,并继续读取下一个块;如果拉取到块为特殊块,则确定所述第一输出通道上的全部数据块已拉取完毕。
6.根据权利要求1所述的方法,其特征在于,输出所述处理后布隆块流和每个处理后布隆块的第二边界标识包括:
采用布隆块拉取器从所述计算芯片的第二输出通道依次拉取每个块;
如果拉取到块并非为特殊块,则输出拉取到的布隆块和所述第二边界标识,并继续读取下一个块;如果拉取到块为特殊块,则确定所述第二输出通道上的全部布隆块已拉取完毕。
7.根据权利要求1所述的方法,其特征在于,将所述处理后数据块流整合至所述目标数据文件,并记录每个处理后数据块在所述目标数据文件中的所述第一偏移量包括:
通过整合器将所述处理后数据块流整合至所述目标数据文件;
在将所述处理后数据块流整合至所述目标数据文件的过程中,采用所述整合器依次记录每个处理后数据块在所述目标数据文件中的所述第一偏移量。
8.根据权利要求1所述的方法,其特征在于,将所述处理后布隆块流整合至所述目标数据文件,并记录每个处理后布隆块在所述目标数据文件中的所述第二偏移量包括:
通过整合器将所述处理后布隆块流整合至所述目标数据文件;
在将所述处理后布隆块流整合至所述目标数据文件的过程中,采用所述整合器依次记录每个处理后布隆块在所述目标数据文件中的所述第二偏移量。
9.根据权利要求1所述的方法,其特征在于,利用所述第一边界标识、所述第一偏移量、所述第二边界标识以及所述第二偏移量构建索引块流,并将所述索引块流整合至所述目标数据文件包括:
将所述第一边界标识与所述第一偏移量作为单独的索引记录添加到索引生成器缓存的索引记录集合中,以及将所述第二边界标识与所述第二偏移量作为单独的索引记录添加到所述索引记录集合中;
如果所述索引记录集合中存储的索引记录超过预设阈值,则将所述索引记录集合中存储的索引记录构造成索引块并输出至整合器;如果所述索引记录集合中存储的索引记录未超过所述预设阈值,则继续读取所述第一边界标识与所述第一偏移量,或者继续读取所述第二边界标识与所述第二偏移量,直至读取完毕,然后再将所述索引记录集合中存储的剩余索引记录构造成索引块并输出至所述整合器。
10.根据权利要求1所述的方法,其特征在于,所述目标数据文件存储在文件系统中,其中,所述文件系统包括以下之一:本地文件系统、分布式文件系统。
11.根据权利要求1所述的方法,其特征在于,所述计算芯片包括以下之一:
现场可编程逻辑门阵列、图形处理器、应用集成电路。
12.一种数据文件的合并装置,其特征在于,包括:
解析单元,用于从多个待合并数据文件中分别解析出与每个数据文件对应的待处理数据块流;
处理单元,用于将解析得到的数据块流输入至计算芯片进行合并处理,输出处理后数据块流、每个处理后数据块的第一边界标识、处理后布隆块流以及每个处理后布隆块的第二边界标识;
整合单元,用于将所述处理后数据块流和所述处理后布隆块流整合至目标数据文件,并记录每个处理后数据块在所述目标数据文件中的第一偏移量以及每个处理后布隆块在所述目标数据文件中的第二偏移量;
构建单元,用于利用所述第一边界标识、所述第一偏移量、所述第二边界标识以及所述第二偏移量构建索引块流,并将所述索引块流整合至所述目标数据文件。
13.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求1至11中任意一项所述的数据文件的合并方法。
14.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1至11中任意一项所述的数据文件的合并方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911347735.0A CN113032340B (zh) | 2019-12-24 | 2019-12-24 | 数据文件的合并方法、装置、存储介质及处理器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911347735.0A CN113032340B (zh) | 2019-12-24 | 2019-12-24 | 数据文件的合并方法、装置、存储介质及处理器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113032340A CN113032340A (zh) | 2021-06-25 |
CN113032340B true CN113032340B (zh) | 2024-05-14 |
Family
ID=76451754
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911347735.0A Active CN113032340B (zh) | 2019-12-24 | 2019-12-24 | 数据文件的合并方法、装置、存储介质及处理器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113032340B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118585390A (zh) * | 2024-08-01 | 2024-09-03 | 全芯智造技术有限公司 | 处理标准测试数据文件的方法、电子设备及存储介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103914522A (zh) * | 2014-03-20 | 2014-07-09 | 电子科技大学 | 一种应用于云存储重复数据删除的数据块合并方法 |
US9311375B1 (en) * | 2012-02-07 | 2016-04-12 | Dell Software Inc. | Systems and methods for compacting a virtual machine file |
CN106991021A (zh) * | 2017-03-31 | 2017-07-28 | 联想(北京)有限公司 | 从现有数据文件构建新数据文件的方法及系统 |
CN107704202A (zh) * | 2017-09-18 | 2018-02-16 | 北京京东尚科信息技术有限公司 | 一种数据快速读写的方法和装置 |
CN108319625A (zh) * | 2017-01-17 | 2018-07-24 | 广州市动景计算机科技有限公司 | 文件合并方法和装置 |
CN108874297A (zh) * | 2017-05-10 | 2018-11-23 | 华为技术有限公司 | 合并文件的方法、存储装置、存储设备和存储介质 |
CN109271343A (zh) * | 2018-07-24 | 2019-01-25 | 华为技术有限公司 | 一种应用于键值存储系统中的数据合并方法和装置 |
CN110297810A (zh) * | 2019-07-05 | 2019-10-01 | 联想(北京)有限公司 | 一种流数据处理方法、装置及电子设备 |
CN110309138A (zh) * | 2018-03-01 | 2019-10-08 | 阿里巴巴集团控股有限公司 | 数据合并方法、基于fpga的合并器及数据库系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8396873B2 (en) * | 2010-03-10 | 2013-03-12 | Emc Corporation | Index searching using a bloom filter |
CN102364474B (zh) * | 2011-11-17 | 2014-08-20 | 中国科学院计算技术研究所 | 用于机群文件系统的元数据存储系统和管理方法 |
US10776345B2 (en) * | 2018-04-25 | 2020-09-15 | DataStax | Efficiently updating a secondary index associated with a log-structured merge-tree database |
-
2019
- 2019-12-24 CN CN201911347735.0A patent/CN113032340B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9311375B1 (en) * | 2012-02-07 | 2016-04-12 | Dell Software Inc. | Systems and methods for compacting a virtual machine file |
CN103914522A (zh) * | 2014-03-20 | 2014-07-09 | 电子科技大学 | 一种应用于云存储重复数据删除的数据块合并方法 |
CN108319625A (zh) * | 2017-01-17 | 2018-07-24 | 广州市动景计算机科技有限公司 | 文件合并方法和装置 |
CN106991021A (zh) * | 2017-03-31 | 2017-07-28 | 联想(北京)有限公司 | 从现有数据文件构建新数据文件的方法及系统 |
CN108874297A (zh) * | 2017-05-10 | 2018-11-23 | 华为技术有限公司 | 合并文件的方法、存储装置、存储设备和存储介质 |
CN107704202A (zh) * | 2017-09-18 | 2018-02-16 | 北京京东尚科信息技术有限公司 | 一种数据快速读写的方法和装置 |
CN110309138A (zh) * | 2018-03-01 | 2019-10-08 | 阿里巴巴集团控股有限公司 | 数据合并方法、基于fpga的合并器及数据库系统 |
CN109271343A (zh) * | 2018-07-24 | 2019-01-25 | 华为技术有限公司 | 一种应用于键值存储系统中的数据合并方法和装置 |
CN110297810A (zh) * | 2019-07-05 | 2019-10-01 | 联想(北京)有限公司 | 一种流数据处理方法、装置及电子设备 |
Non-Patent Citations (3)
Title |
---|
基于Hadoop的小文件存储优化方案;李孟;曹晟;秦志光;;电子科技大学学报;20160130(01);143-147 * |
基于Hadoop的海量统计小文件存取优化方案;付红阁;姜华;张怀锋;;聊城大学学报(自然科学版);20160325(01);105-109 * |
海量GNSS小文件云存储优化方法研究;李林阳;吕志平;崔阳;王宇谱;周海涛;;武汉大学学报(信息科学版);20170805(08);45-51 * |
Also Published As
Publication number | Publication date |
---|---|
CN113032340A (zh) | 2021-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109034993A (zh) | 对账方法、设备、系统及计算机可读存储介质 | |
CN107229420B (zh) | 数据存储方法、读取方法、删除方法和数据操作系统 | |
CN110764706A (zh) | 存储系统、数据管理方法及存储介质 | |
CN111046034A (zh) | 管理内存数据及在内存中维护数据的方法和系统 | |
CN103593440A (zh) | 日志文件的读写方法及装置 | |
US11675768B2 (en) | Compression/decompression using index correlating uncompressed/compressed content | |
CN113238912B (zh) | 一种网络安全日志数据的聚合处理方法 | |
US20220129430A1 (en) | Optimizing storage and retrieval of compressed data | |
CN106407442A (zh) | 一种海量文本数据处理方法及装置 | |
CN113032340B (zh) | 数据文件的合并方法、装置、存储介质及处理器 | |
CN112650755A (zh) | 数据存储方法、查询数据的方法、数据库、以及可读介质 | |
CN103593442A (zh) | 日志数据的去重方法及装置 | |
CN115168319A (zh) | 一种数据库系统、数据处理方法及电子设备 | |
CN114297196A (zh) | 元数据存储方法、装置、电子设备及存储介质 | |
WO2019018030A1 (en) | COMPRESSION AND RECOVERY OF STRUCTURED RECORDINGS | |
KR101218087B1 (ko) | 하둡 맵리듀스에서 바이너리 형태의 데이터 분석을 위한 입력포맷 추출방법 및 이를 이용한 바이너리 데이터의 분석방법 | |
CN116010348B (zh) | 一种分布式海量对象的管理方法和装置 | |
CN113297267A (zh) | 数据缓存和任务处理方法、装置、设备以及存储介质 | |
CN116760661A (zh) | 数据存储方法、装置、计算机设备、存储介质和程序产品 | |
Dong et al. | Record-aware compression for big textual data analysis acceleration | |
US10168909B1 (en) | Compression hardware acceleration | |
CN112000698B (zh) | 日志的记录方法及装置、存储介质、电子装置 | |
CN114138786A (zh) | 一种联机交易消息去重方法、装置、介质、产品和设备 | |
WO2017088382A1 (zh) | 数据处理的方法和装置 | |
US10841405B1 (en) | Data compression of table rows |
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 |