CN106326397A - 生成索引文件的方法及装置 - Google Patents
生成索引文件的方法及装置 Download PDFInfo
- Publication number
- CN106326397A CN106326397A CN201610694858.1A CN201610694858A CN106326397A CN 106326397 A CN106326397 A CN 106326397A CN 201610694858 A CN201610694858 A CN 201610694858A CN 106326397 A CN106326397 A CN 106326397A
- Authority
- CN
- China
- Prior art keywords
- data
- data entry
- entry
- index
- length
- 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.)
- Pending
Links
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/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9017—Indexing; Data structures therefor; Storage structures using directory or table look-up
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开提供了一种生成索引文件的方法及装置。所述生成索引文件的方法包括:生成索引头,所述索引头至少包括索引头长度字段和数据条目总数字段;在完成针对目标数据条目的写入操作后,生成所述目标数据条目的索引数据,所述目标数据条目的索引数据至少包括文件编号字段、偏移量字段、数据条目长度字段。可以生成索引文件。由于索引文件包括索引头和数据条目的索引数据,所以根据索引文件,可以方便快捷地定位任意一个数据条目,根据索引文件还可以实现先进先出模式的读取、后进先出模块的读取、指定数据条目的读取以及删除等,简化了数据处理的复杂度。
Description
技术领域
本公开涉及数据存储技术领域,具体地,涉及一种生成索引文件的方法及装置。
背景技术
目前,在内存中广泛应用的一种数据结构是:线性表。数据表中的数据元素除第一个数据元素和最后一个数据元素外,任两个数据元素都是首尾相接的。因此,能够保证数据的顺序性,同时能够实现队列、栈以及随机读取等功能。
然而,随着CPU(英文:中央处理器;中文:Central Progress Unit)需要处理的数据量已经达到GB甚至TB级,而内存的存储容量通常较小,所以单纯使用内存已经无法使CPU正常工作。为此,相关技术中将CPU需要处理的数据缓存到文件或者数据库中。
然而,如果将CPU需要处理的数据缓存到数据库中,需要通过SQL(中文:结构化查询语言;英文:Structured Query Language)实现CPU与数据库的交互,操作较为复杂。如果将CPU需要处理的数据存储到文件中,则难以实现随机访问、随机删除等。
发明内容
本公开的目的是提供一种生成索引文件的方法及装置,实现简化数据处理的复杂度。
为了实现上述目的,本公开提供一种生成索引文件的方法,所述方法包括:
生成索引头,所述索引头至少包括索引头长度字段和数据条目总数字段,所述索引头长度字段表征所述索引头的长度,所述数据条目总数字段表征数据文件夹中已存储的数据条目的总数,所述数据文件夹包括多个用于存储数据条目的数据文件;
执行针对目标数据条目的写入操作;
生成所述目标数据条目的索引数据,所述目标数据条目的索引数据至少包括文件编号字段、偏移量字段、数据条目长度字段,所述文件编号字段表征所述目标数据条目所在的目标数据文件的编号,所述偏移量字段表征所述目标数据条目在所述目标数据文件中的偏移量,所述数据条目长度字段表征所述目标数据条目的长度。
可选地,所述方法还包括:
接收先进先出模式的读取请求;
读取所述索引头长度字段,以确定所述索引头的长度;
根据所述索引头的长度,定位已存储的第一个数据条目的索引数据的位置;
根据所述第一个数据条目的索引数据,读取所述第一数据条目的数据部分;
取j依次为大于等于1的逐渐增大的整数,执行以下步骤:
根据所述索引头的长度以及排在前j个数据条目的索引数据的长度,定位已存储的第j+1个数据条目的索引数据的位置;
根据所述第j+1个数据条目的索引数据,读取所述第j+1个数据条目的数据部分。
可选地,所述方法还包括:
接收后进先出模式的读取请求;
读取所述索引头长度字段,以确定所述索引头的长度;
读取所述数据条目总数字段,以确定所述数据文件夹中已存储的数据条目的总数;
根据所述索引头的长度、所述数据文件夹中已存储的数据条目的总数、各个已存储的数据条目的索引数据的长度,定位已存储的最后一个数据条目的索引数据的位置;
根据所述最后一个数据条目的索引数据,读取所述最后一个数据条目的数据部分;
取j依次为小于等于N的逐渐减小的整数,N为所述数据文件夹中已存储的数据条目的总数,执行以下步骤:
根据所述索引头的长度以及排在最后j个数据条目的索引数据的长度,定位已存储的第j-1个数据条目的索引数据的位置;
根据所述第j-1个数据条目的索引数据,读取所述第j-1个数据条目的数据部分。
可选地,所述方法还包括:
接收针对第i条数据条目的读取请求;
读取所述数据条目总数字段,以确定所述数据文件夹中已存储的数据条目的总数;
在i小于等于所述数据文件夹中已存储的数据条目的总数时,根据所述索引头的长度以及排在前i-1个数据条目的索引数据的长度,定位已存储的第i个数据条目的索引数据的位置;
根据所述第i个数据条目的索引数据,读取所述第i个数据条目的数据部分。
可选地,根据第n个数据条目的索引数据,读取所述第n数据条目的数据部分,包括:
根据所述第n个数据条目的索引数据,确定所述第n个数据条目所在的数据文件的编号、所述第n个数据条目在所在的数据文件中的偏移量以及所述第n个数据条目的长度;
所述第n个数据条目所在的数据文件的编号,读取所述第n个数据条目所在的数据文件;
根据所述第n个数据条目在所在的数据文件中的偏移量,定位所述第n个数据条目的位置;
根据所述第n个数据条目的长度,读取所述第n个数据条目的数据部分;
其中,n为大于等于1的整数。
可选地,所述方法还包括:
接收针对第t条数据条目的删除请求;
读取所述数据条目总数字段,以确定所述数据文件夹中已存储的数据条目的总数;
在t小于等于所述数据文件夹中已存储的数据条目的总数时,根据所述索引头的长度以及排在前t-1个数据条目的索引数据的长度,定位已存储的第t个数据条目的索引数据的位置;
将所述第t个数据条目的索引数据设置为空。
可选地,所述执行针对目标数据条目的写入操作,包括:
在开始向数据文件中写入所述目标数据条目之前,生成用于标识开始写入所述目标数据条目的标识;
将所述用于标识开始写入所述目标数据条目的标识存入元数据文件;
执行针对所述目标数据条目的写入操作;
在完成向所述数据文件中写入所述目标数据条目之后,生成用于标识成功写入所述目标数据条目的标识;
将用于标识成功写入所述目标数据条目的标识存入所述元数据文件中。
可选地,所述方法还包括:
在所述元数据文件以用于标识本次开始写入数据条目的标识结尾时,从所述元数据文件中查找用于标识上一次成功写入数据条目的标识;
根据所述用于标识上一次成功写入数据条目的标识,确定上一次写入操作所成功写入的数据条目为第m条数据条目;
重新执行本次写入操作,以将第m+1条数据条目写入数据文件。
本公开还提供一种生成索引文件的装置,所述装置包括:
索引头生成模块,用于生成索引头,所述索引头至少包括索引头长度字段和数据条目总数字段,所述索引头长度字段表征所述索引头的长度,所述数据条目总数字段表征数据文件夹中已存储的数据条目的总数,所述数据文件夹包括多个用于存储数据条目的数据文件;
写入模块,用于执行针对目标数据条目的写入操作;
索引数据生成模块,用于在完成针对目标数据条目的写入操作后,生成所述目标数据条目的索引数据,所述目标数据条目的索引数据至少包括文件编号字段、偏移量字段、数据条目长度字段,所述文件编号字段表征所述目标数据条目所在的目标数据文件的编号,所述偏移量字段表征所述目标数据条目在所述目标数据文件中的偏移量,所述数据条目长度字段表征所述目标数据条目的长度。
可选地,所述装置还包括:
第一接收模块,用于接收先进先出模式的读取请求;
索引头长度读取模块,用于读取所述索引头长度字段,以确定所述索引头的长度;
第一定位模块,用于根据所述索引头的长度,定位已存储的第一个数据条目的索引数据的位置;
第一数据部分读取模块,用于根据所述第一个数据条目的索引数据,读取所述第一数据条目的数据部分;
第一循环模块,用于取j依次为大于等于1的逐渐增大的整数,执行以下步骤:
根据所述索引头的长度以及排在前j个数据条目的索引数据的长度,定位已存储的第j+1个数据条目的索引数据的位置;
根据所述第j+1个数据条目的索引数据,读取所述第j+1个数据条目的数据部分。
可选地,所述装置还包括:
第二接收模块,用于接收后进先出模式的读取请求;
索引头长度读取模块,用于读取所述索引头长度字段,以确定所述索引头的长度;
数据条目总数读取模块,用于读取所述数据条目总数字段,以确定所述数据文件夹中已存储的数据条目的总数;
第二定位模块,用于根据所述索引头的长度、所述数据文件夹中已存储的数据条目的总数、各个已存储的数据条目的索引数据的长度,定位已存储的最后一个数据条目的索引数据的位置;
第二数据部分读取模块,用于根据所述最后一个数据条目的索引数据,读取所述最后一个数据条目的数据部分;
第二循环模块,用于取j依次为小于等于N的逐渐减小的整数,N为所述数据文件夹中已存储的数据条目的总数,执行以下步骤:
根据所述索引头的长度以及排在最后j个数据条目的索引数据的长度,定位已存储的第j-1个数据条目的索引数据的位置;
根据所述第j-1个数据条目的索引数据,读取所述第j-1个数据条目的数据部分。
可选地,所述装置还包括:
第三接收模块,用于接收针对第i条数据条目的读取请求;
数据条目总数读取模块,用于读取所述数据条目总数字段,以确定所述数据文件夹中已存储的数据条目的总数;
第三定位模块,用于在i小于等于所述数据文件夹中已存储的数据条目的总数时,根据所述索引头的长度以及排在前i-1个数据条目的索引数据的长度,定位已存储的第i个数据条目的索引数据的位置;
第三数据部分读取模块,用于根据所述第i个数据条目的索引数据,读取所述第i个数据条目的数据部分。
可选地,所述第一数据部分读取模块、所述第二数据部分读取模块、所述第三数据部分读取模块中的任一数据读取模块包括:
确定子模块,用于根据所述第n个数据条目的索引数据,确定所述第n个数据条目所在的数据文件的编号、所述第n个数据条目在所在的数据文件中的偏移量以及所述第n个数据条目的长度;
数据文件读取子模块,用于所述第n个数据条目所在的数据文件的编号,读取所述第n个数据条目所在的数据文件;
定位子模块,用于根据所述第n个数据条目在所在的数据文件中的偏移量,定位所述第n个数据条目的位置;
数据部分读取子模块,用于根据所述第n个数据条目的长度,读取所述第n个数据条目的数据部分;
其中,n为大于等于1的整数。
可选地,所述装置还包括:
第四接收模块,用于接收针对第t条数据条目的删除请求;
数据条目总数读取模块,用于读取所述数据条目总数字段,以确定所述数据文件夹中已存储的数据条目的总数;
第四定位模块,用于在t小于等于所述数据文件夹中已存储的数据条目的总数时,根据所述索引头的长度以及排在前t-1个数据条目的索引数据的长度,定位已存储的第t个数据条目的索引数据的位置;
设置模块,用于将所述第t个数据条目的索引数据设置为空。
可选地,所述写入模块包括:
第一生成子模块,用于在开始向数据文件中写入所述目标数据条目之前,生成用于标识开始写入所述目标数据条目的标识;
第一写入子模块,用于将所述用于标识开始写入所述目标数据条目的标识存入元数据文件;
第一写入子模块,用于执行针对所述目标数据条目的写入操作;
第二生成子模块,用于在完成向所述数据文件中写入所述目标数据条目之后,生成用于标识成功写入所述目标数据条目的标识;
第二写入子模块,用于将用于标识成功写入所述目标数据条目的标识存入所述元数据文件中。
可选地,所述装置还包括:
查找模块,用于在所述元数据文件以用于标识本次开始写入数据条目的标识结尾时,从所述元数据文件中查找用于标识上一次成功写入数据条目的标识;
确定模块,用于根据所述用于标识上一次成功写入数据条目的标识,确定上一次写入操作所成功写入的数据条目为第m条数据条目;
再次写入模块,用于重新执行本次写入操作,以将第m+1条数据条目写入数据文件。
通过上述技术方案,可以生成索引文件。由于索引文件包括索引头和数据条目的索引数据,所以根据索引文件,可以方便快捷地定位任意一个数据条目,根据索引文件还可以实现先进先出模式的读取、后进先出模块的读取、指定数据条目的读取以及删除等,简化了数据处理的复杂度。
本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:
图1是根据一示例性实施例示出的一种数据存储结构的示意图。
图2是根据一示例性实施例示出的一种存储数据的方法示意图。
图3是根据一示例性实施例示出的元数据文件的示意图。
图4是根据一示例性实施例示出的一种生成索引文件的方法的流程图。
图5是根据一示例性实施例示出的一种索引文件的示意图。
图6是根据一示例性实施例示出的读取数据条目的数据部分的方法的示意图。
图7是根据一示例性实施例示出的一种实现先进先出模式的读取的方法的示意图。
图8是根据一示例性实施例示出的一种实现后进先出模式的读取的方法的示意图。
图9是根据一示例性实施例示出的一种实现读取指定数据条目的方法的示意图。
图10是根据一示例性实施例示出的一种实现删除指定数据条目的方法的示意图。
图11是根据一示例性实施例示出的一种生成索引文件的装置。
具体实施方式
以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。
请参考图1,图1是根据1示例性实施例示出的一种数据存储结构的示意图。如图1所示,本公开提供了一种数据存储结构,包括:元数据文件、索引文件、数据文件夹,数据文件夹包括多个数据文件,每个数据文件均用于存储数据条目。
可选地,数据文件中的数据条目是接连存储的,彼此不分隔。数据文件可以采用不定长的二进制方式存储,因此对于数据条目的格式没有要求,只需要将数据条目序列化成二进制字节数组即可。
可选地,数据文件的存储容量是有限的,当数据文件中存储的数据条目达到一定限制时,例如:随着数据文件中数据条目的增多,数据文件大小达到1GB,则会将后续的数据条目写入另一数据文件中。也就是说,在存储数据条目的过程中,数据文件可能存在多个。
可选地,元数据文件用于记录数据条目是否被成功写入数据文件,以防止在存储数据条目的过程中出现意外断电,导致已写入数据文件的数据条目丢失。本公开中,通过引入元数据文件,可以提供当前已存储的最后一条数据条目与未成功写入的第一条数据条目之间的断点,允许用户基于断点进行存储恢复。
基于上述元数据文件,本公开提供一种存储数据的方法。请参考图2,图2是根据一示例性实施例示出的一种存储数据的方法示意图。如图2所示,该方法包括以下步骤:
在步骤S21中,在元数据文件以用于标识本次开始写入数据条目的标识结尾时,从所述元数据文件中查找用于标识上一次成功写入数据条目的标识。
在步骤S22中,根据所述用于标识上一次成功写入数据条目的标识,确定上一次写入操作所成功写入的数据条目为第m条数据条目。
在步骤S23中,重新执行本次写入操作,以将第m+1条数据条目写入数据文件。
可选地,执行针对目标数据条目的写入操作,包括:
在开始向数据文件中写入所述目标数据条目之前,生成用于标识开始写入所述目标数据条目的标识;
将所述用于标识开始写入所述目标数据条目的标识存入元数据文件;
执行针对所述目标数据条目的写入操作;
在完成向所述数据文件中写入所述目标数据条目之后,生成用于标识成功写入所述目标数据条目的标识;
将用于标识成功写入所述目标数据条目的标识存入所述元数据文件中。
本公开中,在每一次开始向数据文件中写入数据条目之前,可以生成用于标识该次开始写入数据条目的标识,并将用于标识该次开始写入数据条目的标识存入元数据文件中,然后执行该次向数据文件中写入数据条目的写入操作,在该次成功向数据文件中写入数据条目之后,可以生成用于标识该次成功写入数据条目的标识,并将用于标识该次成功写入数据条目的标识存入元数据文件中。因此,通常情况下,元数据文件中,用于标识每一次开始写入数据条目的标识以及用于标识每一次开始写入数据条目的标识是成对出现的。
举例来讲,请参考图3,图3是根据一示例性实施例示出的元数据文件的示意图。如图3所示,可以以02作为标识任一次开始写入数据条目的标识,以03作为标识任一次成功写入数据条目的标识。通常情况下,02和03在元数据文件中应该成对出现,且由于可能存在多次写入操作,所以02和03可能多次成对出现。
如果在执行某一次写入操作的过程中,因为意外断电或其他意外故障,导致该次写入操作失败,即未成功将数据条目写入数据文件,则元数据文件中存储有用于标识该次开始写入数据条目的标识,但未存储用于标识该次成功写入数据条目的标识,因此,元数据文件是以用于标识该次开始写入数据条目的标识结尾的,元数据文件中不存在与之配对的用于标识该次成功写入数据条目的标识。
继续沿用上述例子,如果元数据文件以02结尾,则表示本次写入操作失败,可以通过查找上一个03,进而获知上一个成功写入的数据条目以及本次未成功写入的数据条目,然后再重新执行本次写入操作,以将本次未成功写入的数据条目重新写入到数据文件中,进而实现恢复数据存储。如果元数据文件以03结尾,则证明本次成功写入数据条目。
可选地,元数据文件以文本形式存储。元数据文件中除包括用于标识每次开始写入数据条目的标识、以及每次成功写入数据条目的标识外,还可以包括以下中的至少一者:用于标识数据文件的标识以及用于标识封装数据文件的标识。其中,用于标识数据文件的标识是在生成数据文件之后,将标识该数据文件的标识存入元数据文件。因为数据文件是用于存储数据条目的,所以可以是在初始化的时候生成数据文件,然后执行多个写入操作,在数据文件中存储的数据条目达到数据文件的容量后,则生成新的数据文件,再将用于标识新的数据文件的标识写入到元数据文件中,然后将后续的数据条目写入该新的数据文件中。用于标识封装数据文件的标识是在数据文件中存储的数据条目达到数据文件的容量后生成的,表征该数据文件已被封装,将不再接收任何待存储的数据条目。
举例来讲,如图3所示,可以以01作为标识数据文件的标识,以04作为封装数据文件的标识。
通过本公开提供的数据存储方法,能够实现将数据条目以线性表的方式进行持久化存储。采用上述技术方案,通过引入元数据文件,记录存取过程中的断点,能够有效保证写入数据条目的持久性,同时基于断点能够进行存储恢复。
本公开中,索引文件用于记录被存储的每个数据条目所在的数据文件,以及被存储的每个数据条目在所在的数据文件中的位置,以快速定位被存储的每个数据条目。可选地,索引文件以二进制格式存储。
可选地,索引文件还记录被存储的每个数据条目的hash值,以区分被存储的每个数据条目,便于基于hash值对被存储的数据条目进行删除、恢复等操作。
请参考图4,图4是根据一示例性实施例示出的一种生成索引文件的方法的流程图。如图4所示,该方法包括以下步骤:
在步骤S41中,生成索引头,所述索引头至少包括索引头长度字段和数据条目总数字段,所述索引头长度字段表征所述索引头的长度,所述数据条目总数字段表征数据文件夹中已存储的数据条目的总数,所述数据文件夹包括多个用于存储数据条目的数据文件;
在步骤S42中,执行针对目标数据条目的写入操作;
在步骤S43中,在完成针对目标数据条目的写入操作后,生成所述目标数据条目的索引数据,所述目标数据条目的索引数据至少包括文件编号字段、偏移量字段、数据条目长度字段,所述文件编号字段表征所述目标数据条目所在的目标数据文件的编号,所述偏移量字段表征所述目标数据条目在所述目标数据文件中的偏移量,所述数据条目长度字段表征所述目标数据条目的长度。
本公开中,索引文件包括两部分:索引头和索引数据。
其中,索引头至少包括索引头长度字段和数据条目总数字段,索引头长度字段表征索引头的长度,数据条目总数字段表征数据文件夹中已存储的数据条目的总数。在实际应用场景中,可以在初始化的时候设置数据文件夹中已存储的数据条目的总数为零,然后每成功将数据条目写入数据文件中一次,就将数据文件夹中已存储的数据条目的总数增加一。
可选地,索引头采用不定长的方式存储,能够支持自定义的头信息。请参考图5,图5是根据一示例性实施例示出的一种索引文件的示意图。如图5所示,索引头包括:索引头长度字段、数据条目总数字段、自定义头字段以及自定义头数据部分字段。
索引数据是在每成功将数据条目写入数据文件中一次后生成的,为方便表述,将被成功写入数据文件的数据条目成为目标数据条目。在将目标数据条目写入数据文件后,记录该数据文件的编号以及目标数据条目在数据文件中的偏移量,并记录目标数据条目的长度,然后生成目标数据条目的索引数据。目标数据条目的索引数据至少包括文件编号字段、偏移量字段、数据条目长度字段,文件编号字段表征目标数据条目所在的目标数据文件的编号,偏移量字段表征所述目标数据条目在目标数据文件中的偏移量,数据条目长度字段表征目标数据条目的长度。
可选地,索引数据采用定长存储(例如:16字节),每成功将数据条目写入数据文件中一次,就可以增加一个16字节用来存储该数据条目的索引数据。如图5所示,索引数据包括:文件编号字段、偏移量字段、数据条目长度字段以及hash值字段。
可选地,索引文件中的数值采用Big Endian方式存储。当然,索引文件中的数值也不限于采用Big Endian方式存储,还可以采用其他方式,本公开不做限定。
基于上述的索引文件,可以读取任意一个数据条目的数据部分。请参考图6,图6是根据一示例性实施例示出的读取数据条目的数据部分的方法的示意图。如图6所示,根据第n个数据条目的索引数据,读取所述第n数据条目的数据部分,包括:
步骤S61:根据所述第n个数据条目的索引数据,确定所述第n个数据条目所在的数据文件的编号、所述第n个数据条目在所在的数据文件中的偏移量以及所述第n个数据条目的长度;
步骤S62:所述第n个数据条目所在的数据文件的编号,读取所述第n个数据条目所在的数据文件;
步骤S63:根据所述第n个数据条目在所在的数据文件中的偏移量,定位所述第n个数据条目的位置;
步骤S64:根据所述第n个数据条目的长度,读取所述第n个数据条目的数据部分;
其中,n为大于等于1的整数。
举例来讲,假设每条数据条目的索引数据的长度均为16个字节,索引数据的第1-2个字节为文件编号字段,索引数据的第3-6个字节为偏移量字段,索引数据的第7-12个字节为数据条目长度字段,则读取索引数据的第1-2个字节,并解析索引数据的第1-2个字节,得到第一个数据条目所在的数据文件的编号,记录为fileN,读取索引数据的3-6个字节,并解析索引数据的第3-6个字节,得到第一个数据条目在所在的数据文件中的偏移量,记录为position个字节,读取索引数据的第7-12个字节,并解析索引数据的第7-12个字节,得到第一个数据条目的长度,记录为dataLen。
接着读取具有fileN标识的数据文件,跳过position个字节,即为第一个数据条目所存储的位置,然后读取dataLen个字节,即为第一个数据条目的数据部分。
基于上述的索引文件以及读取任意一个数据条目的数据部分的方法,可以实现先进先出模式的读取、先进后出模式的读取、指定数据条目的读取及删除等。下面依次进行说明。
请参考图7,图7是根据一示例性实施例示出的一种实现先进先出模式的读取的方法的示意图。如图7所示,该方法包括以下步骤:
在步骤S71中,接收先进先出模式的读取请求;
在步骤S72中,读取所述索引头长度字段,以确定所述索引头的长度;
在步骤S73中,根据所述索引头的长度,定位已存储的第一个数据条目的索引数据的位置;
在步骤S74中,根据所述第一个数据条目的索引数据,读取所述第一数据条目的数据部分;
在步骤S75中,取j依次为大于等于1的逐渐增大的整数,执行以下步骤:
根据所述索引头的长度以及排在前j个数据条目的索引数据的长度,定位已存储的第j+1个数据条目的索引数据的位置;
根据所述第j+1个数据条目的索引数据,读取所述第j+1个数据条目的数据部分。
本公开中,首先,接收先进先出模式的读取请求,表征用户请求先被存储的数据条目先被读出。然后,定位已存储的第一个数据条目的索引数据的位置。定位方法是:1)找到索引头长度数据字段,确定索引头的长度。2)跳过索引头长度,即可找到第一个数据条目的索引数据的位置。接着,根据第一个数据条目的索引数据,定位第一个数据条目的数据部分的位置,进而读出第一个数据条目的数据部分。按照此方法,可以读出第一个数据条目的数据部分。
接下来,按照类似的方法读出已存储的第二个数据条目的数据部分。首先要定位第二个数据条目的索引数据的位置。定位方法是:跳过索引头长度以及第一个数据条目的索引数据的长度,即可找到第二个数据条目的索引数据的位置。按照类似的方法,读取第二个数据条目的数据部分。按照类似的方法,可以依次读取已存储的第二个数据条目、已存储的第三个数据条目……直至已存储的最后一个数据条目。
举例来讲,假设索引文件的前6个字节为索引头,第1-2个字节为索引头长度字段,则可以读取索引文件的前2个字节,并解析索引文件的第1-2个字节,得到索引头长度,记录为hLen个字节。然后读取索引文件的第3-6字节,并解析索引文件的第3-6个字节,得到已存储的数据条目的总数,记录为count。然后跳过索引文件中的hLen个字节,即为已存储的第一个数据条目的索引数据的位置。
假设每条数据条目的索引数据的长度均为16个字节,第一个数据条目所在的数据文件的编号,记录为fileN,第一个数据条目在所在的数据文件中的偏移量,记录为position个字节,得到第一个数据条目的长度,记录为dataLen。接着读取具有fileN标识的数据文件,跳过position个字节,即为第一个数据条目所存储的位置,然后读取dataLen个字节,即为第一个数据条目的数据部分。
最后,如果count不为0,则执行count减一,重复步骤3-4;否则,停止读取。
请参考图8,图8是根据一示例性实施例示出的一种实现后进先出模式的读取的方法的示意图。如图8所示,该方法包括以下步骤:
在步骤S81中,接收后进先出模式的读取请求;
在步骤S82中,读取所述索引头长度字段,以确定所述索引头的长度;
在步骤S83中,读取所述数据条目总数字段,以确定所述数据文件夹中已存储的数据条目的总数;
在步骤S84中,根据所述索引头的长度、所述数据文件夹中已存储的数据条目的总数、各个已存储的数据条目的索引数据的长度,定位已存储的最后一个数据条目的索引数据的位置;
在步骤S85中,根据所述最后一个数据条目的索引数据,读取所述最后一个数据条目的数据部分;
在步骤S86中,取j依次为小于等于N的逐渐减小的整数,N为所述数据文件夹中已存储的数据条目的总数,执行以下步骤:
根据所述索引头的长度以及排在最后j个数据条目的索引数据的长度,定位已存储的第j-1个数据条目的索引数据的位置;
根据所述第j-1个数据条目的索引数据,读取所述第j-1个数据条目的数据部分。
本公开中,首先,接收后进先出模式的读取请求,表征用户请求后被存储的数据条目先被读出。然后,定位已存储的最后一个数据条目的索引数据的位置。定位方法是:1)找到索引头长度数据字段,确定索引头的长度。2)跳过索引头长度以及最后一个数据条目之前的所有数据条目的索引数据的长度,即可找到最后一个数据条目的索引数据的位置。接着,根据最后一个数据条目的索引数据,定位最后一个数据条目的数据部分的位置,进而读出最后一个数据条目的数据部分。按照此方法,可以读出最后一个数据条目的数据部分。
接下来,按照类似的方法读出已存储的倒数第二个数据条目的数据部分。首先要定位倒数第二个数据条目的索引数据的位置。定位方法是:跳过索引头长度以及倒数第二个数据条目之前的所有数据条目的索引数据的长度,即可找到倒数第二个数据条目的索引数据的位置。按照类似的方法,读取倒数第二个数据条目的数据部分。按照类似的方法,可以依次读取已存储的倒数第二个数据条目、已存储的倒数第三个数据条目……直至已存储的第一个数据条目。
举例来讲,假设索引文件的前6个字节为索引头,第1-2个字节为索引头长度字段,则可以读取索引文件的前2个字节,并解析索引文件的第1-2个字节,得到索引头长度,记录为hLen个字节。然后读取索引文件的第3-6字节,并解析索引文件的第3-6个字节,得到已存储的数据条目的总数,记录为count。假设每条数据条目的索引数据的长度均为16个字节,则跳过索引文件中的((count–1)*16+hLen)个字节,即为已存储的倒数第一个数据条目的索引数据的位置。
假设每条数据条目的索引数据的长度均为16个字节,倒数第一个数据条目所在的数据文件的编号,记录为fileN,倒数第一个数据条目在所在的数据文件中的偏移量,记录为position个字节,倒数第一个数据条目的长度,记录为dataLen。接着读取具有fileN标识的数据文件,跳过position个字节,即为第一个数据条目所存储的位置,然后读取dataLen个字节,即为第一个数据条目的数据部分。
最后,如果count不为0,则执行count减一,重复步骤3-4;否则,停止读取。
请参考图9,图9是根据一示例性实施例示出的一种实现读取指定数据条目的方法的示意图。如图9所示,该方法包括以下步骤:
在步骤S91中,接收针对第i条数据条目的读取请求;
在步骤S92中,读取所述数据条目总数字段,以确定所述数据文件夹中已存储的数据条目的总数;
在步骤S93中,在i小于等于所述数据文件夹中已存储的数据条目的总数时,根据所述索引头的长度以及排在前i-1个数据条目的索引数据的长度,定位已存储的第i个数据条目的索引数据的位置;
在步骤S94中,根据所述第i个数据条目的索引数据,读取所述第i个数据条目的数据部分。
本公开中,首先,接收针对第i条数据条目的读取请求,表征用户请求读取第i条数据条目。然后,判断i有没有超出数据文件夹中已存储的数据条目的总数,如果超出,则返回第i条数据条目不存在;如果未超出,则定位已存储的第i个数据条目的索引数据的位置。定位方法是:1)找到索引头长度数据字段,确定索引头的长度。2)跳过索引头长度以及第i个数据条目之前的所有数据条目的索引数据的长度,即可找到第i个数据条目的索引数据的位置。接着,根据第i个数据条目的索引数据,定位第i个数据条目的数据部分的位置,进而读出第i个数据条目的数据部分。
举例来讲,假设索引文件的前6个字节为索引头,第1-2个字节为索引头长度字段,则可以读取索引文件的前2个字节,并解析索引文件的第1-2个字节,得到索引头长度,记录为hLen个字节。然后读取索引文件的第3-6字节,并解析索引文件的第3-6个字节,得到已存储的数据条目的总数,记录为count。假设每条数据条目的索引数据的长度均为16个字节,则跳过索引文件中的((i–1)*16+hLen)个字节,即为已存储的第i个数据条目的索引数据的位置。
假设每条数据条目的索引数据的长度均为16个字节,第i个数据条目所在的数据文件的编号,记录为fileN,第i个数据条目在所在的数据文件中的偏移量,记录为position个字节,第i个数据条目的长度,记录为dataLen。接着读取具有fileN标识的数据文件,跳过position个字节,即为第i个数据条目所存储的位置,然后读取dataLen个字节,即为第i个数据条目的数据部分。
请参考图10,图10是根据一示例性实施例示出的一种实现删除指定数据条目的方法的示意图。如图10所示,该方法包括以下步骤:
在步骤S101中,接收针对第t条数据条目的删除请求;
在步骤S102中,读取所述数据条目总数字段,以确定所述数据文件夹中已存储的数据条目的总数;
在步骤S103中,在t小于等于所述数据文件夹中已存储的数据条目的总数时,根据所述索引头的长度以及排在前t-1个数据条目的索引数据的长度,定位已存储的第t个数据条目的索引数据的位置;
在步骤S104中,将所述第t个数据条目的索引数据设置为空。
首先按照上述读取第i个数据条目的数据部分的方法,找到第i个数据条目的索引数据,然后将第i个数据条目的索引数据设置为空即可。
请参考图11,图11是根据一示例性实施例示出的一种生成索引文件的装置。如图11所示,该装置110包括:
索引头生成模块1101,用于生成索引头,所述索引头至少包括索引头长度字段和数据条目总数字段,所述索引头长度字段表征所述索引头的长度,所述数据条目总数字段表征数据文件夹中已存储的数据条目的总数,所述数据文件夹包括多个用于存储数据条目的数据文件;
写入模块1102,用于执行针对目标数据条目的写入操作;
索引数据生成模块1103,用于在完成针对目标数据条目的写入操作后,生成所述目标数据条目的索引数据,所述目标数据条目的索引数据至少包括文件编号字段、偏移量字段、数据条目长度字段,所述文件编号字段表征所述目标数据条目所在的目标数据文件的编号,所述偏移量字段表征所述目标数据条目在所述目标数据文件中的偏移量,所述数据条目长度字段表征所述目标数据条目的长度。
可选地,所述装置还包括:
第一接收模块,用于接收先进先出模式的读取请求;
索引头长度读取模块,用于读取所述索引头长度字段,以确定所述索引头的长度;
第一定位模块,用于根据所述索引头的长度,定位已存储的第一个数据条目的索引数据的位置;
第一数据部分读取模块,用于根据所述第一个数据条目的索引数据,读取所述第一数据条目的数据部分;
第一循环模块,用于取j依次为大于等于1的逐渐增大的整数,执行以下步骤:
根据所述索引头的长度以及排在前j个数据条目的索引数据的长度,定位已存储的第j+1个数据条目的索引数据的位置;
根据所述第j+1个数据条目的索引数据,读取所述第j+1个数据条目的数据部分。
可选地,所述装置还包括:
第二接收模块,用于接收后进先出模式的读取请求;
索引头长度读取模块,用于读取所述索引头长度字段,以确定所述索引头的长度;
数据条目总数读取模块,用于读取所述数据条目总数字段,以确定所述数据文件夹中已存储的数据条目的总数;
第二定位模块,用于根据所述索引头的长度、所述数据文件夹中已存储的数据条目的总数、各个已存储的数据条目的索引数据的长度,定位已存储的最后一个数据条目的索引数据的位置;
第二数据部分读取模块,用于根据所述最后一个数据条目的索引数据,读取所述最后一个数据条目的数据部分;
第二循环模块,用于取j依次为小于等于N的逐渐减小的整数,N为所述数据文件夹中已存储的数据条目的总数,执行以下步骤:
根据所述索引头的长度以及排在最后j个数据条目的索引数据的长度,定位已存储的第j-1个数据条目的索引数据的位置;
根据所述第j-1个数据条目的索引数据,读取所述第j-1个数据条目的数据部分。
可选地,所述装置还包括:
第三接收模块,用于接收针对第i条数据条目的读取请求;
数据条目总数读取模块,用于读取所述数据条目总数字段,以确定所述数据文件夹中已存储的数据条目的总数;
第三定位模块,用于在i小于等于所述数据文件夹中已存储的数据条目的总数时,根据所述索引头的长度以及排在前i-1个数据条目的索引数据的长度,定位已存储的第i个数据条目的索引数据的位置;
第三数据部分读取模块,用于根据所述第i个数据条目的索引数据,读取所述第i个数据条目的数据部分。
可选地,所述第一数据部分读取模块、所述第二数据部分读取模块、所述第三数据部分读取模块中的任一数据读取模块包括:
确定子模块,用于根据所述第n个数据条目的索引数据,确定所述第n个数据条目所在的数据文件的编号、所述第n个数据条目在所在的数据文件中的偏移量以及所述第n个数据条目的长度;
数据文件读取子模块,用于所述第n个数据条目所在的数据文件的编号,读取所述第n个数据条目所在的数据文件;
定位子模块,用于根据所述第n个数据条目在所在的数据文件中的偏移量,定位所述第n个数据条目的位置;
数据部分读取子模块,用于根据所述第n个数据条目的长度,读取所述第n个数据条目的数据部分;
其中,n为大于等于1的整数。
可选地,所述装置还包括:
第四接收模块,用于接收针对第t条数据条目的删除请求;
数据条目总数读取模块,用于读取所述数据条目总数字段,以确定所述数据文件夹中已存储的数据条目的总数;
第四定位模块,用于在t小于等于所述数据文件夹中已存储的数据条目的总数时,根据所述索引头的长度以及排在前t-1个数据条目的索引数据的长度,定位已存储的第t个数据条目的索引数据的位置;
设置模块,用于根据所述第t个数据条目的索引数据,将所述第t个数据条目的数据部分设置为空。
可选地,所述写入模块包括:
第一生成子模块,用于在开始向数据文件中写入所述目标数据条目之前,生成用于标识开始写入所述目标数据条目的标识;
第一写入子模块,用于将所述用于标识开始写入所述目标数据条目的标识存入元数据文件;
第一写入子模块,用于执行针对所述目标数据条目的写入操作;
第二生成子模块,用于在完成向所述数据文件中写入所述目标数据条目之后,生成用于标识成功写入所述目标数据条目的标识;
第二写入子模块,用于将用于标识成功写入所述目标数据条目的标识存入所述元数据文件中。
可选地,所述装置还包括:
查找模块,用于在所述元数据文件以用于标识本次开始写入数据条目的标识结尾时,从所述元数据文件中查找用于标识上一次成功写入数据条目的标识;
确定模块,用于根据所述用于标识上一次成功写入数据条目的标识,确定上一次写入操作所成功写入的数据条目为第m条数据条目;
再次写入模块,用于重新执行本次写入操作,以将第m+1条数据条目写入数据文件。
以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。
此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。
Claims (10)
1.一种生成索引文件的方法,其特征在于,所述方法包括:
生成索引头,所述索引头至少包括索引头长度字段和数据条目总数字段,所述索引头长度字段表征所述索引头的长度,所述数据条目总数字段表征数据文件夹中已存储的数据条目的总数,所述数据文件夹包括多个用于存储数据条目的数据文件;
执行针对目标数据条目的写入操作;
生成所述目标数据条目的索引数据,所述目标数据条目的索引数据至少包括文件编号字段、偏移量字段、数据条目长度字段,所述文件编号字段表征所述目标数据条目所在的目标数据文件的编号,所述偏移量字段表征所述目标数据条目在所述目标数据文件中的偏移量,所述数据条目长度字段表征所述目标数据条目的长度。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收先进先出模式的读取请求;
读取所述索引头长度字段,以确定所述索引头的长度;
根据所述索引头的长度,定位已存储的第一个数据条目的索引数据的位置;
根据所述第一个数据条目的索引数据,读取所述第一数据条目的数据部分;
取j依次为大于等于1的逐渐增大的整数,执行以下步骤:
根据所述索引头的长度以及排在前j个数据条目的索引数据的长度,定位已存储的第j+1个数据条目的索引数据的位置;
根据所述第j+1个数据条目的索引数据,读取所述第j+1个数据条目的数据部分。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收后进先出模式的读取请求;
读取所述索引头长度字段,以确定所述索引头的长度;
读取所述数据条目总数字段,以确定所述数据文件夹中已存储的数据条目的总数;
根据所述索引头的长度、所述数据文件夹中已存储的数据条目的总数、各个已存储的数据条目的索引数据的长度,定位已存储的最后一个数据条目的索引数据的位置;
根据所述最后一个数据条目的索引数据,读取所述最后一个数据条目的数据部分;
取j依次为小于等于N的逐渐减小的整数,N为所述数据文件夹中已存储的数据条目的总数,执行以下步骤:
根据所述索引头的长度以及排在最后j个数据条目的索引数据的长度,定位已存储的第j-1个数据条目的索引数据的位置;
根据所述第j-1个数据条目的索引数据,读取所述第j-1个数据条目的数据部分。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收针对第i条数据条目的读取请求;
读取所述数据条目总数字段,以确定所述数据文件夹中已存储的数据条目的总数;
在i小于等于所述数据文件夹中已存储的数据条目的总数时,根据所述索引头的长度以及排在前i-1个数据条目的索引数据的长度,定位已存储的第i个数据条目的索引数据的位置;
根据所述第i个数据条目的索引数据,读取所述第i个数据条目的数据部分。
5.根据权利要求2至4任一权利要求所述的方法,其特征在于,根据第n个数据条目的索引数据,读取所述第n数据条目的数据部分,包括:
根据所述第n个数据条目的索引数据,确定所述第n个数据条目所在的数据文件的编号、所述第n个数据条目在所在的数据文件中的偏移量以及所述第n个数据条目的长度;
所述第n个数据条目所在的数据文件的编号,读取所述第n个数据条目所在的数据文件;
根据所述第n个数据条目在所在的数据文件中的偏移量,定位所述第n个数据条目的位置;
根据所述第n个数据条目的长度,读取所述第n个数据条目的数据部分;
其中,n为大于等于1的整数。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收针对第t条数据条目的删除请求;
读取所述数据条目总数字段,以确定所述数据文件夹中已存储的数据条目的总数;
在t小于等于所述数据文件夹中已存储的数据条目的总数时,根据所述索引头的长度以及排在前t-1个数据条目的索引数据的长度,定位已存储的第t个数据条目的索引数据的位置;
将所述第t个数据条目的索引数据设置为空。
7.根据权利要求1所述的方法,其特征在于,所述执行针对目标数据条目的写入操作,包括:
在开始向数据文件中写入所述目标数据条目之前,生成用于标识开始写入所述目标数据条目的标识;
将所述用于标识开始写入所述目标数据条目的标识存入元数据文件;
执行针对所述目标数据条目的写入操作;
在完成向所述数据文件中写入所述目标数据条目之后,生成用于标识成功写入所述目标数据条目的标识;
将用于标识成功写入所述目标数据条目的标识存入所述元数据文件中。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
在所述元数据文件以用于标识本次开始写入数据条目的标识结尾时,从所述元数据文件中查找用于标识上一次成功写入数据条目的标识;
根据所述用于标识上一次成功写入数据条目的标识,确定上一次写入操作所成功写入的数据条目为第m条数据条目;
重新执行本次写入操作,以将第m+1条数据条目写入数据文件。
9.一种生成索引文件的装置,其特征在于,所述装置包括:
索引头生成模块,用于生成索引头,所述索引头至少包括索引头长度字段和数据条目总数字段,所述索引头长度字段表征所述索引头的长度,所述数据条目总数字段表征数据文件夹中已存储的数据条目的总数,所述数据文件夹包括多个用于存储数据条目的数据文件;
写入模块,用于执行针对目标数据条目的写入操作;
索引数据生成模块,用于在完成针对目标数据条目的写入操作后,生成所述目标数据条目的索引数据,所述目标数据条目的索引数据至少包括文件编号字段、偏移量字段、数据条目长度字段,所述文件编号字段表征所述目标数据条目所在的目标数据文件的编号,所述偏移量字段表征所述目标数据条目在所述目标数据文件中的偏移量,所述数据条目长度字段表征所述目标数据条目的长度。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括:
第一接收模块,用于接收先进先出模式的读取请求;
索引头长度读取模块,用于读取所述索引头长度字段,以确定所述索引头的长度;
第一定位模块,用于根据所述索引头的长度,定位已存储的第一个数据条目的索引数据的位置;
第一数据部分读取模块,用于根据所述第一个数据条目的索引数据,读取所述第一数据条目的数据部分;
第一循环模块,用于取j依次为大于等于1的逐渐增大的整数,执行以下步骤:
根据所述索引头的长度以及排在前j个数据条目的索引数据的长度,定位已存储的第j+1个数据条目的索引数据的位置;
根据所述第j+1个数据条目的索引数据,读取所述第j+1个数据条目的数据部分。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610694858.1A CN106326397A (zh) | 2016-08-19 | 2016-08-19 | 生成索引文件的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610694858.1A CN106326397A (zh) | 2016-08-19 | 2016-08-19 | 生成索引文件的方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106326397A true CN106326397A (zh) | 2017-01-11 |
Family
ID=57744901
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610694858.1A Pending CN106326397A (zh) | 2016-08-19 | 2016-08-19 | 生成索引文件的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106326397A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110019985A (zh) * | 2017-12-29 | 2019-07-16 | 上海全土豆文化传播有限公司 | 索引文件的建立、查询方法及装置 |
WO2020048054A1 (zh) * | 2018-09-03 | 2020-03-12 | 深圳壹账通智能科技有限公司 | 一种数据存储方法、计算机可读存储介质、服务器及装置 |
CN111414335A (zh) * | 2020-03-20 | 2020-07-14 | 深圳市凯沃尔电子有限公司 | 一种数据文件查找方法和装置 |
CN111831625A (zh) * | 2020-07-14 | 2020-10-27 | 深圳力维智联技术有限公司 | 数据迁移方法、数据迁移装置和可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1757202A (zh) * | 2002-08-13 | 2006-04-05 | 英特尔公司 | 自由表和环形数据结构管理 |
CN101814045A (zh) * | 2010-04-22 | 2010-08-25 | 华中科技大学 | 一种用于备份服务的数据组织方法 |
CN102332027A (zh) * | 2011-10-15 | 2012-01-25 | 西安交通大学 | 一种基于Hadoop的海量非独立小文件关联存储方法 |
CN103823865A (zh) * | 2014-02-25 | 2014-05-28 | 南京航空航天大学 | 一种数据库主存索引方法 |
-
2016
- 2016-08-19 CN CN201610694858.1A patent/CN106326397A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1757202A (zh) * | 2002-08-13 | 2006-04-05 | 英特尔公司 | 自由表和环形数据结构管理 |
CN101814045A (zh) * | 2010-04-22 | 2010-08-25 | 华中科技大学 | 一种用于备份服务的数据组织方法 |
CN102332027A (zh) * | 2011-10-15 | 2012-01-25 | 西安交通大学 | 一种基于Hadoop的海量非独立小文件关联存储方法 |
CN103823865A (zh) * | 2014-02-25 | 2014-05-28 | 南京航空航天大学 | 一种数据库主存索引方法 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110019985A (zh) * | 2017-12-29 | 2019-07-16 | 上海全土豆文化传播有限公司 | 索引文件的建立、查询方法及装置 |
CN110019985B (zh) * | 2017-12-29 | 2021-09-24 | 阿里巴巴(中国)有限公司 | 索引文件的建立、查询方法及装置 |
WO2020048054A1 (zh) * | 2018-09-03 | 2020-03-12 | 深圳壹账通智能科技有限公司 | 一种数据存储方法、计算机可读存储介质、服务器及装置 |
CN111414335A (zh) * | 2020-03-20 | 2020-07-14 | 深圳市凯沃尔电子有限公司 | 一种数据文件查找方法和装置 |
CN111831625A (zh) * | 2020-07-14 | 2020-10-27 | 深圳力维智联技术有限公司 | 数据迁移方法、数据迁移装置和可读存储介质 |
CN111831625B (zh) * | 2020-07-14 | 2024-03-12 | 深圳力维智联技术有限公司 | 数据迁移方法、数据迁移装置和可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106326397A (zh) | 生成索引文件的方法及装置 | |
US8891272B2 (en) | Content addressable memory system | |
CN105511802A (zh) | 写缓存的方法和装置以及磁盘缓存区的同步方法和装置 | |
US20080195799A1 (en) | Systems, methods and computer program products for operating a data processing system in which a file delete command is sent to an external storage device for invalidating data thereon | |
RU2010107148A (ru) | Разрешение кореференции в чувствительной к неоднозначности системе обработки естественного языка | |
CN112181902B (zh) | 数据库的存储方法、装置及电子设备 | |
EP3438845A1 (en) | Data updating method and device for a distributed database system | |
US10628487B2 (en) | Method for hash collision detection based on the sorting unit of the bucket | |
JP2008269197A5 (zh) | ||
CN105138655A (zh) | 一种数据存储、读取方法及装置 | |
CN105830039A (zh) | 写入信息存储设备、方法和记录介质 | |
KR920004985A (ko) | 데이타 파일 디렉토리 정보기록방법 및 데이타 기억매체 | |
KR960704268A (ko) | 음성 메모리 디바이스상에 저장된 정보용 분산 디렉토리(distributed directory for information stored on audio quality memory devices) | |
KR930001067A (ko) | 랜덤 엑세스 메모리 내에 데이타를 기억시키기 위한 소형 레벨의 패리티 보호용 방법 및 장치 | |
KR20080098104A (ko) | 메타 데이터 저장 방법 및 메타 데이터 저장 시스템 | |
CN107590077B (zh) | 一种Spark负载访存行为追踪方法及装置 | |
CN102650972A (zh) | 数据存储方法、装置及系统 | |
CN104699688A (zh) | 一种搜索文件的方法和电子设备 | |
CN101777077B (zh) | 嵌入式设备文件系统实现方法 | |
CN106897315B (zh) | Kv项有效性获取方法以及装置 | |
CN108052411B (zh) | 一种单向链表中断的修复方法和装置 | |
CN113821508A (zh) | 一种数组索引的实现方法和系统 | |
CN102999596A (zh) | 文字标签的检索方法、系统及终端 | |
JPS6132695B2 (zh) | ||
US6845061B2 (en) | Method for quickly detecting the state of a nonvolatile storage medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170111 |
|
RJ01 | Rejection of invention patent application after publication |