【技术实现步骤摘要】
连续存储数据的修改方法、装置和系统
本专利技术涉及数据存储
,尤其涉及一种连续存储数据的修改方法、装置和系统。
技术介绍
在存储应用领域,存在小文件密集存储的需求,这些小文件都是一些几KB的文件,例如JSON文件、XML文件、TXT文件等,这些文件数据存在一些固有属性,可以使用一个类型值来表示,例如使用数字1表示交通车辆数据,数字2表示交通人脸数据等。同时,存在对同一类的小文件批量提取的需求。对于这些小文件存储若使用传统的随机存储方式,单条数据提取时,无性能差异;但如果是按某类型值数据进行批量提取时,随机存储的小文件需要每一个文件分别提取,产生大量小IO提取,性能极差。因此可以将同一类型的小文件连续存储在同一数据块中,需要批量提取某一类小文件时,只需要检索到所有的数据块信息,而后对每一个数据块进行读取即可。由于小文件均为连续存储,单次可以合并读取成千上万个小文件,合并小IO为大IO,达到提高数据提取效率的目的。但是,对于上述连续存储数据的方案,修改成为了一个难题。一种实现方式为:如果在原始数据块所对应的位置直接进行修改,若单条数据大小发生变化,则每次修改时需要将该数据块中的所有数据读出,修改其中一条数据后再写入块,该种方式性能极低,并且修改过程中会导致业务中断。另一种思路是将修改数据写入新的数据块中,更新索引中记录的位置为新的数据块位置,但这样就不满足数据连续存储的需求,极大程度降低了数据提取性能。
技术实现思路
本专利技术提供一种连续存储数据的修改方法、装置和系统,在保证数据连续提 ...
【技术保护点】
1.一种连续存储数据的修改方法,其特征在于,包括:/n根据获取到的修改请求,获取第一数据块中修改数据对应的源数据的索引信息;/n根据所述第一数据块中修改数据对应的源数据的索引信息,分配所述第一数据块的第一修改写入区中用于存储所述修改数据的第一存储空间;所述第一数据块还包括第一源数据区;所述第一源数据区连续存储至少两条源数据;所述至少两条源数据包括所述修改数据对应的源数据;所述第一修改写入区用于存储所述第一源数据区中源数据对应的修改数据;/n在所述第一存储空间中写入所述修改数据,并更新所述第一数据块中所述修改数据对应的源数据的索引信息。/n
【技术特征摘要】
1.一种连续存储数据的修改方法,其特征在于,包括:
根据获取到的修改请求,获取第一数据块中修改数据对应的源数据的索引信息;
根据所述第一数据块中修改数据对应的源数据的索引信息,分配所述第一数据块的第一修改写入区中用于存储所述修改数据的第一存储空间;所述第一数据块还包括第一源数据区;所述第一源数据区连续存储至少两条源数据;所述至少两条源数据包括所述修改数据对应的源数据;所述第一修改写入区用于存储所述第一源数据区中源数据对应的修改数据;
在所述第一存储空间中写入所述修改数据,并更新所述第一数据块中所述修改数据对应的源数据的索引信息。
2.根据权利要求1所述的方法,其特征在于,所述根据获取到的修改请求,获取第一数据块中修改数据对应的源数据的索引信息,包括:
根据所述修改请求中包括的所述修改数据的索引键值KEY,获取所述第一数据块中修改数据对应的源数据的索引信息;所述KEY包括:所述修改数据的文件名;所述索引信息包括以下至少一项:所述修改数据对应的源数据所在的存储设备的标识、所述第一数据块的标识ID、所述修改数据对应的源数据在所述第一源数据区的偏移信息以及所述修改数据对应的源数据的数据长度信息。
3.根据权利要求1或2所述的方法,其特征在于,所述根据所述第一数据块中修改数据对应的源数据的索引信息,分配所述第一数据块的第一修改写入区中用于存储所述修改数据的第一存储空间,包括:
根据所述第一数据块中修改数据对应的源数据的索引信息,确定所述修改数据对应的所述第一数据块;
从所述第一数据块的第一修改写入区中分配所述第一存储空间。
4.根据权利要求3所述的方法,其特征在于,所述从所述第一数据块的第一修改写入区中分配所述第一存储空间,包括:
确定所述修改数据对应的源数据是否已进行修改;
若所述修改数据对应的源数据已进行修改,则将所述第一修改写入区中所述源数据对应的存储空间作为所述第一存储空间;
若所述修改数据对应的源数据未进行修改,则从所述第一修改写入区中未写入数据的存储空间中分配所述第一存储空间。
5.根据权利要求4所述的方法,其特征在于,所述确定所述修改数据对应的源数据是否已进行修改,包括:
确定已修改的KEY记录中是否存在所述修改数据的KEY;
若存在,则确定所述修改数据对应的源数据已进行修改;
若不存在,则确定所述修改数据对应的源数据未进行修改;
相应的,所述在所述第一存储空间中写入所述修改数据之后,还包括:
若所述修改数据被写入成功,则将所述修改数据的KEY记录到所述已修改写的KEY记录中。
6.根据权利要求2所述的方法,其特征在于,所述更新所述第一数据块中修改数据对应的源数据的索引信息,包括:
将所述第一数据块中修改数据对应源数据的索引信息中的偏移信息更新为所述修改数据在所述第一修改写入区的偏移信息,并将所述第一数据块中修改数据对应源数据的索引信息中的数据长度信息更新为所述修改数据的数据长度信息。
7.根据权利要求1-6任一项所述的方法,其特征在于,
所述第一源数据区的存储空间的大小与所述第一修改写入区的存储空间的大小按照预设比例分配。
8.根据权利要求1-6任一项所述的方法,其特征在于,还包括:
获取所述修改数据在第二数据块中对应的源数据的索引信息;
根据所述第二数据块中对应的源数据的索引信息,分配所述第二数据块的第二修改写入区中用于存储所述修改数据的第二存储空间;所述第二数据块还包括第二源数据区;所述第二源数据区存储所述修改数据在第二数据...
【专利技术属性】
技术研发人员:胡君怡,李照辉,李丹旺,
申请(专利权)人:杭州海康威视系统技术有限公司,
类型:发明
国别省市:浙江;33
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。