数据处理装置和数据处理方法

文档序号:6435909阅读:203来源:国知局
专利名称:数据处理装置和数据处理方法
技术领域
本发明涉及计算机技术领域,具体而言,涉及一种数据处理装置和一种数据处理方法。
背景技术
CouchDB是一个"面向文档"的数据库,文档的格式是一个JSON字符串(也可包含二进制附件)。底层结构是由一个“存储”(storeage),以及多个“视图索引”(viewindexs) 0 “储存”用来储存文件,“视图索引”用于查询处理。所有的更新操作(包括文件(document)的创建,修改和删除)都是以在CouchDB数据库中的后缀为COUCh的文件尾部追加的方式(即Append追加方式)进行。我们进行更新时,首先拷贝原有的数据信息(仅仅针对修改,如果是创建(Create)那么就没有拷贝(copy)可言了),随后将其追加到文件的结尾,这个时候就激发平衡二叉查找树(B+Tree)从叶子节点(leaf)到根节点(root)的更新过程,更新的节点(Node)信息也是采用Append的方式写入到文件的结尾,到达根节点时,我们将根节点信息写入到文件头(Header)中。这样一次更新操作涉及I次数据写入,以及LogN次节点更新,所以其复杂度为O(IogN)。因此采用追加的方式,所以在数据库运行一段时间后,我们需要对其进行“瘦身”,以清理那些旧的Document数据。这个过程成为压紧(Compaction)。在Compaction的过程,数据库仍然可用,只是需要注意,在Compaction的时候,是通过遍历DBName. couch文件,将最新的数据拷贝到一个DBName. compat文件中,因此这个过程可能会耗费很大的存储空间,如果在系统繁忙(主要是写入操作(write))的情况下进行Compaction,可能会导致硬盘空间耗尽。值得注意的是,读操作是并行的,写操作是串行的。换句话说,在任何时候只有一个写的更新操作。这也就是说,通过目前的数据存储方式,对于单个数据文件而言,随着使用时间的增多,数据文件会占用大量存储空间,压紧(Compaction)过程占用资源过多,时间长,影响服务。因此,需要一种新的针对数据存储的数据管理方式,能够实现同时进行多个数据文件的写入操作,而且可以保证生成的数据文件大小合理,不至于由于进行压紧操作,而导致占用大量的资源和时间,避免对用户造成不良的使用影响。

发明内容
本发明所需要解决的技术问题在于,提供一种新的针对数据存储的数据管理方式,能够实现同时进行多个数据文件的写入操作,而且可以保证生成的数据文件大小合理,不至于由于进行压紧操作,而导致占用大量的资源和时间,避免对用户造成不良的使用影响。有鉴于此,本发明提供一种数据处理装置,包括文件管理模块,在需要存储数据时,分配写入文件,由数据操作模块将所述数据追加到所述写入文件的尾部;所述数据操作模块,在需要对所述数据进行新增时,将所述数据的新增数据,继续追加到所述写入文件的尾部,在需要对所述数据进行修改时,将所述数据的修改数据继续追加到所述写入文件的尾部,并在所述写入文件中,将所述数据中的需修改数据作为废弃数据,在需要对所述数据进行删除时,在所述写入文件中,将所述数据作为所述废弃数据,所述文件管理模块在所述写入文件满足预定条件时,分配新写入文件,并由所述数据操作模块将所述写入文件中的非废弃数据追加到所述新写入文件的尾部,同时删除所述写入文件。通过该技术方案,针对对数据进行的增删改等操作,仅采用追加的方式来实现,效率较高,并且有效控制了数据文件的大小,不需进行浪费时间以及资源的压紧操作,不影响用户的正常使用。在上述技术方案中,优选地,所述文件管理模块还创建多个写入文件以供分配,以及在所述写入文件被删除时,再创建一个写入文件,以供分配。通过该技术方案,保证随时有稳定数量的写入文件来实现数据的写入操作,保证方案执行的流畅与稳定。通过多个写入文件,可以实现并发的对数据的增删改操作。在上述技术方案中,优选地,还包括区域设置模块,设置新生区、保持区和销毁区,并由所述文件管理模块将新创建的所有写入文件放入所述新生区,其中,禁止对所述保持区和所述销毁区中的所有写入文件进行写入操作,所述写入操作包括对所述所有写入文件中进行数据追加;所述文件管理模块在所述写入文件的大小超过第一预设值时,将所述写入文件移入所述保持区,同时再创建一个写入文件并放入所述新生区,在所述写入文件满足所述预定条件时,将所述写入文件移入所述销毁区,并在所述销毁区中,由所述数据操作模块将所述写入文件中的所述非废弃数据追加到所述新写入文件的尾部,同时删除所述写入文件,其中所述预定条件包括所述写入文件中所述非废弃数据的比率低于第二预设值。通过该技术方案,通过设置不同的区域来对不同大小的数据文件进行管理,保证了可将数据文件控制在合理的大小之间,可以实现数据的平滑淘汰。在上述技术方案中,优选地,所述区域设置模块还将所述新生区、所述保持区和所述销毁区设置在一个或多个存储装置中。通过该技术方案,通过将多个新生区设置在不同的存储装置上,能够避免出现输入/输出堵塞的情况。在上述技术方案中,优选地,还包括统计模块,创建统计文件,以记录所有写入文件,以及所述所有写入文件中的数据的大小和废弃数据的大小;所述文件管理模块还根据所述统计文件,来判断所述写入文件的大小是否超过所述第一预设值,以及所述写入文件中所述非废弃数据的比率是否低于所述第二预设值。通过该技术方案,通过统计文件记录的信息,能够有效实现对数据文件的管理。本技术方案中,还创建索引,记录数据文件和其对应的偏移量及数据长度,结合索引和统计文件,能够准确定位至相关数据文件,以对数据文件按统计文件的信息进行处理。本发明还提供一种数据处理方法,包括步骤202,文件管理模块在需要存储数据时,分配写入文件,由数据操作模块将所述数据追加到所述写入文件的尾部;步骤204,所述数据操作模块在需要对所述数据进行新增时,将所述数据的新增数据,继续追加到所述写入文件的尾部;步骤206,所述数据操作模块在需要对所述数据进行修改时,将所述数据的修改数据继续追加到所述写入文件的尾部,并在所述写入文件中,将所述数据中的需修改数据作为废弃数据;步骤208,所述数据操作模块在需要对所述数据进行删除时,在所述写入文件中,将所述数据作为所述废弃数据;步骤210,所述文件管理模块在所述写入文件满足预定条件时,分配新写入文件,并由所述数据操作模块将所述写入文件中的非废弃数据追加到所述新写入文件的尾部,同时删除所述写入文件。在上述技术方案中,优选地,在所述步骤202之前,还包括所述文件管理模块创建多个写入文件以供分配;在所述步骤210中,还包括所述文件管理模块再创建一个写入文件,以供分配。通过多个写入文件,可以实现并发的对数据的增删改操作。在上述技术方案中,优选地,在所述步骤202之前,还包括区域设置模块设置新生区、保持区和销毁区,并由所述文件管理模块将新创建的所有写入文件放入所述新生区,其中,禁止对所述保持区和所述销毁区中的所有写入文件进行写入操作,所述写入操作包括对所述所有写入文件中进行数据追加;在所述步骤210具体包括所述文件管理模块在所述写入文件的大小超过第一预设值时,将所述写入文件移入所述保持区,同时再创建一个写入文件并放入所述新生区,在所述写入文件满足所述预定条件时,将所述写入文件移入所述销毁区,并在所述销毁区中,由所述数据操作模块将所述写入文件中的所述非废弃数据追加到所述新写入文件的尾部,同时删除所述写入文件,其中所述预定条件包括所述写入文件中所述非废弃数据的比率低于第二预设值。通过该技术方案,通过设置不同的区域来对不同大小的数据文件进行管理,保证了可将数据文件控制在合理的大小之间,可以实现数据的平滑淘汰。在上述技术方案中,优选地,在所述步骤202之前,还包括所述区域设置模块将所述新生区、所述保持区和所述销毁区设置在一个或多个存储装置中。通过该技术方案,通过将多个新生区设置在不同的存储装置上,能够避免出现输入/输出堵塞的情况。在上述技术方案中,优选地,在所述步骤202之前,还包括统计模块创建统计文件,以记录所有写入文件,以及所述所有写入文件中的数据的大小和废弃数据的大小;在所述步骤210中,还包括所述文件管理模块根据所述统计文件,来判断所述写入文件的大小是否超过所述第一预设值,以及所述写入文件中所述非废弃数据的比率是否低于所述第二预设值。通过该技术方案,通过统计文件记录的信息,能够有效实现对数据文件的管理。本技术方案中,还创建索引,记录数据文件和其对应的偏移量及数据长度,结合索引和统计文件,能够准确定位至相关数据文件,以对数据文件按统计文件的信息进行处理。通过上述技术方案,可以实现一种数据管理装置和一种数据管理方法,能够实现同时进行多个数据文件的写入操作,而且可以保证生成的数据文件大小合理,不至于由于进行压紧操作,而导致占用大量的资源和时间,避免对用户造成不良的使用影响。


图1是根据本发明的一个实施例的数据管理装置的框图;图2是根据本发明的一个实施例的数据管理方法的流程图;图3是根据本发明的一个实施例的数据管理方法的文件管理示意图;图4是根据本发明的一个实施例的数据管理方法的数据结构示意图。
具体实施例方式为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式
对本发明进行进一步的详细描述。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明并不限于下面公开的具体实施例的限制。图1是根据本发明的一个实施例的数据管理装置的框图。如图1所示,本发明提供一种数据处理装置100,包括文件管理模块102,在需要存储数据时,分配写入文件,由数据操作模块104将所述数据追加到所述写入文件的尾部;所述数据操作模块104,在需要对所述数据进行新增时,将所述数据的新增数据,继续追加到所述写入文件的尾部,在需要对所述数据进行修改时,将所述数据的修改数据继续追加到所述写入文件的尾部,并在所述写入文件中,将所述数据中的需修改数据作为废弃数据,在需要对所述数据进行删除时,在所述写入文件中,将所述数据作为所述废弃数据,所述文件管理模块102在所述写入文件满足预定条件时,分配新写入文件,并由所述数据操作模块104将所述写入文件中的非废弃数据追加到所述新写入文件的尾部,同时删除所述写入文件。通过该技术方案,针对对数据进行的增删改等操作,仅采用追加的方式来实现,效率较高,并且有效控制了数据文件的大小,不需进行浪费时间以及资源的压紧操作,不影响用户的正常使用。在上述技术方案中,所述文件管理模块102还创建多个写入文件以供分配,以及在所述写入文件被删除时,再创建一个写入文件,以供分配。通过该技术方案,保证随时有稳定数量的写入文件来实现数据的写入操作,保证方案执行的流畅与稳定。通过多个写入文件,可以实现并发的对数据的增删改操作。在上述技术方案中,还包括区域设置模块106,设置新生区、保持区和销毁区,并由所述文件管理模块102将新创建的所有写入文件放入所述新生区,其中,禁止对所述保持区和所述销毁区中的所有写入文件进行写入操作,所述写入操作包括对所述所有写入文件中进行数据追加;所述文件管理模块102在所述写入文件的大小超过第一预设值时,将所述写入文件移入所述保持区,同时再创建一个写入文件并放入所述新生区,在所述写入文件满足所述预定条件时,将所述写入文件移入所述销毁区,并在所述销毁区中,由所述数据操作模块104将所述写入文件中的所述非废弃数据追加到所述新写入文件的尾部,同时删除所述写入文件,其中所述预定条件包括所述写入文件中所述非废弃数据的比率低于第二预设值。通过该技术方案,通过设置不同的区域来对不同大小的数据文件进行管理,保证了可将数据文件控制在合理的大小之间,可以实现数据的平滑淘汰。在上述技术方案中,所述区域设置模块106还将所述新生区、所述保持区和所述销毁区设置在一个或多个存储装置中。通过该技术方案,通过将多个新生区设置在不同的存储装置上,能够避免出现输入/输出堵塞的情况。在上述技术方案中,还包括统计模块108,创建统计文件,以记录所有写入文件,以及所述所有写入文件中的数据的大小和废弃数据的大小;所述文件管理模块102还根据所述统计文件,来判断所述写入文件的大小是否超过所述第一预设值,以及所述写入文件中所述非废弃数据的比率是否低于所述第二预设值。通过该技术方案,通过统计文件记录的信息,能够有效实现对数据文件的管理。本技术方案中,还创建索引,记录数据文件和其对应的偏移量及数据长度,结合索引和统计文件,能够准确定位至相关数据文件,以对数据文件按统计文件的信息进行处理。
图2是根据本发明的一个实施例的数据管理方法的流程图。如图2所示,本发明还提供一种数据处理方法,包括步骤202,文件管理模块在需要存储数据时,分配写入文件,由数据操作模块将所述数据追加到所述写入文件的尾部;步骤204,所述数据操作模块在需要对所述数据进行新增时,将所述数据的新增数据,继续追加到所述写入文件的尾部;步骤206,所述数据操作模块在需要对所述数据进行修改时,将所述数据的修改数据继续追加到所述写入文件的尾部,并在所述写入文件中,将所述数据中的需修改数据作为废弃数据;步骤208,所述数据操作模块在需要对所述数据进行删除时,在所述写入文件中,将所述数据作为所述废弃数据;步骤210,所述文件管理模块在所述写入文件满足预定条件时,分配新写入文件,并由所述数据操作模块将所述写入文件中的非废弃数据追加到所述新写入文件的尾部,同时删除所述写入文件。在上述技术方案中,在所述步骤202之前,还包括所述文件管理模块创建多个写入文件以供分配;在所述步骤210中,还包括所述文件管理模块再创建一个写入文件,以供分配。通过多个写入文件,可以实现并发的对数据的增删改操作。在上述技术方案中,在所述步骤202之前,还包括区域设置模块设置新生区、保持区和销毁区,并由所述文件管理模块将新创建的所有写入文件放入所述新生区,其中,禁止对所述保持区和所述销毁区中的所有写入文件进行写入操作,所述写入操作包括对所述所有写入文件中进行数据追加;在所述步骤210具体包括所述文件管理模块在所述写入文件的大小超过第一预设值时,将所述写入文件移入所述保持区,同时再创建一个写入文件并放入所述新生区,在所述写入文件满足所述预定条件时,将所述写入文件移入所述销毁区,并在所述销毁区中,由所述数据操作模块将所述写入文件中的所述非废弃数据追加到所述新写入文件的尾部,同时删除所述写入文件,其中所述预定条件包括所述写入文件中所述非废弃数据的比率低于第二预设值。通过该技术方案,通过设置不同的区域来对不同大小的数据文件进行管理,保证了可将数据文件控制在合理的大小之间,可以实现数据的平滑淘汰。在上述技术方案中,在所述步骤202之前,还包括所述区域设置模块将所述新生区、所述保持区和所述销毁区设置在一个或多个存储装置中。通过该技术方案,通过将多个新生区设置在不同的存储装置上,能够避免出现输入/输出堵塞的情况。在上述技术方案中,在所述步骤202之前,还包括统计模块创建统计文件,以记录所有写入文件,以及所述所有写入文件中的数据的大小和废弃数据的大小;在所述步骤210中,还包括所述文件管理模块根据所述统计文件,来判断所述写入文件的大小是否超过所述第一预设值,以及所述写入文件中所述非废弃数据的比率是否低于所述第二预设值。通过该技术方案,通过统计文件记录的信息,能够有效实现对数据文件的管理。本技术方案中,还创建索引,记录数据文件和其对应的偏移量及数据长度,结合索引和统计文件,能够准确定位至相关数据文件,以对数据文件按统计文件的信息进行处理。以下对本发明的实施例的技术方案进行详细说明。本发明实施例的原理一切皆最佳的操作提供的一个有趣的MVCC(多版本并发控制)模型,因为该文件保存了所有以前的历史文件版本信息。只要客户端持有先前根节点的B+树索引,它就可以得到快照视图。即便是更新不断发生,客户将不会看到任何的最新变化。这种一致性快照在在线备份以及在线“瘦身”方面是非常有用的。
本实施例中,使用多组数据写入文件配合索引、统计文件来进行数据的有效管理。数据文件采用只追加的方式写入。根据数据文件的写入状况,存放数据文件的区域共分为三组新生区、保持区和销毁区,如图3所示。数据的新增和修改都影响新生区,即追加操作,保持区和销毁区的文件都只有读取操作。辅助文件包括索引文件和统计文件。索引在内存中操作,周期写入索引文件。统计文件包含数据文件类表和每个文件的总大小和废弃总大小,周期或发生重大变更时写入统计文件。本实施例的技术方案中,对数据进行管理的流程如下1.初始化多个写入文件,放入新生区(可以位于不同的存储装置上,避免io阻塞)。并更新文件列表,写入统计文件。2.索引的主要内容是对key进行哈希,哈希的位置记录了对应数据的文件和偏移量,以及数据长度。索引的示例可以如图4所示。3.在数据插入时,从新生区中分配一个数据文件。将插入的数据追加到文件的末尾,然后更新索引,在索引中记录对应文件和偏移量、数据长度。并在统计文件中,更新对应数据文件总大小。4.当新生区的任一数据文件总大小超过预设最大值时,则将该文件转移到保持区,并初始化新的数据文件加入新生区,保持新生区文件数量稳定。新数据文件加入新文件列表,并立即将文件列表和对应写入状况写入统计文件。5.数据删除更新索引,在索引中,将记录的对应数据文件设置为无效。在统计文件中,更新原数据文件的废弃区大小。实际上,并不改变数据文件。6.数据更新将新内容写入新生区的数据文件(同插入)。更新索引,指向新的数据文件和偏移量,数据长度。在统计文件中,更新写入文件的大小,原数据文件废弃大小。7.数据检索根据索引得到对应的数据文件、偏移量、长度,直接定位到数据文件并进行读取。8.在保持区中的任一数据文件的利用率((总大小-废弃大小)/总大小)低于预设的最小值时,将该数据文件移到销毁区。9.对销毁区的数据文件,对照索引,将该文件的有效数据追加到新生区数据文件的末尾,同时删除该销毁区数据文件。综上所述,通过本发明的技术方案,可以实现一种数据管理装置和一种管理方法,使用一组数据写入文件,只通过数据追加的方式存储实际数据,能够实现对数据的高并发写入、更新、读取,并且能够通过索引和统计文件,管理各个文件的数据内容,实现了在后台按需回收存储空间,平滑淘汰旧数据。以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种数据处理装置,其特征在于,包括 文件管理模块,在需要存储数据时,分配写入文件,由数据操作模块将所述数据追加到所述写入文件的尾部; 所述数据操作模块,在需要对所述数据进行新增时,将所述数据的新增数据,继续追加到所述写入文件的尾部,在需要对所述数据进行修改时,将所述数据的修改数据继续追加到所述写入文件的尾部,并在所述写入文件中,将所述数据中的需修改数据作为废弃数据,在需要对所述数据进行删除时,在所述写入文件中,将所述数据作为所述废弃数据, 所述文件管理模块在所述写入文件满足预定条件时,分配新写入文件,并由所述数据操作模块将所述写入文件中的非废弃数据追加到所述新写入文件的尾部,同时删除所述写入文件。
2.根据权利要求1所述的数据处理装置,其特征在于,所述文件管理模块还创建多个写入文件以供分配,以及在所述写入文件被删除时,再创建一个写入文件,以供分配。
3.根据权利要求2所述的数据处理装置,其特征在于,还包括 区域设置模块,设置新生区、保持区和销毁区,并由所述文件管理模块将新创建的所有写入文件放入所述新生区,其中,禁止对所述保持区和所述销毁区中的所有写入文件进行写入操作,所述写入操作包括对所述所有写入文件中进行数据追加; 所述文件管理模块在所述写入文件的大小超过第一预设值时,将所述写入文件移入所述保持区,同时再创建一个写入文件并放入所述新生区,在所述写入文件满足所述预定条件时,将所述写入文件移入所述销毁区,并在所述销毁区中,由所述数据操作模块将所述写入文件中的所述非废弃数据追加到所述新写入文件的尾部,同时删除所述写入文件,其中所述预定条件包括所述写入文件中所述非废弃数据的比率低于第二预设值。
4.根据权利要求3所述的数据处理装置,其特征在于,所述区域设置模块还将所述新生区、所述保持区和所述销毁区设置在一个或多个存储装置中。
5.根据权利要求3所述的数据处理装置,其特征在于,还包括 统计模块,创建统计文件,以记录所有写入文件,以及所述所有写入文件中的数据的大小和废弃数据的大小; 所述文件管理模块还根据所述统计文件,来判断所述写入文件的大小是否超过所述第一预设值,以及所述写入文件中所述非废弃数据的比率是否低于所述第二预设值。
6.一种数据处理方法,其特征在于,包括 步骤202,文件管理模块在需要存储数据时,分配写入文件,由数据操作模块将所述数据追加到所述写入文件的尾部; 步骤204,所述数据操作模块在需要对所述数据进行新增时,将所述数据的新增数据,继续追加到所述写入文件的尾部; 步骤206,所述数据操作模块在需要对所述数据进行修改时,将所述数据的修改数据继续追加到所述写入文件的尾部,并在所述写入文件中,将所述数据中的需修改数据作为废弃数据; 步骤208,所述数据操作模块在需要对所述数据进行删除时,在所述写入文件中,将所述数据作为所述废弃数据; 步骤210,所述文件管理模块在所述写入文件满足预定条件时,分配新写入文件,并由所述数据操作模块将所述写入文件中的非废弃数据追加到所述新写入文件的尾部,同时删除所述写入文件。
7.根据权利要求6所述的数据处理方法,其特征在于,在所述步骤202之前,还包括 所述文件管理模块创建多个写入文件以供分配; 在所述步骤210中,还包括所述文件管理模块再创建一个写入文件,以供分配。
8.根据权利要求7所述的数据处理方法,其特征在于,在所述步骤202之前,还包括 区域设置模块设置新生区、保持区和销毁区,并由所述文件管理模块将新创建的所有写入文件放入所述新生区,其中,禁止对所述保持区和所述销毁区中的所有写入文件进行写入操作,所述写入操作包括对所述所有写入文件中进行数据追加; 在所述步骤210具体包括所述文件管理模块在所述写入文件的大小超过第一预设值时,将所述写入文件移入所述保持区,同时再创建一个写入文件并放入所述新生区,在所述写入文件满足所述预定条件时,将所述写入文件移入所述销毁区,并在所述销毁区中,由所述数据操作模块将所述写入文件中的所述非废弃数据追加到所述新写入文件的尾部,同时删除所述写入文件,其中所述预定条件包括所述写入文件中所述非废弃数据的比率低于第二预设值。
9.根据权利要求8所述的数据处理方法,其特征在于,在所述步骤202之前,还包括 所述区域设置模块将所述新生区、所述保持区和所述销毁区设置在一个或多个存储装置中。
10.根据权利要求8所述的数据处理方法,其特征在于,在所述步骤202之前,还包括 统计模块创建统计文件,以记录所有写入文件,以及所述所有写入文件中的数据的大小和废弃数据的大小; 在所述步骤210中,还包括 所述文件管理模块根据所述统计文件,来判断所述写入文件的大小是否超过所述第一预设值,以及所述写入文件中所述非废弃数据的比率是否低于所述第二预设值。
全文摘要
本发明提供一种数据处理装置和一种数据处理方法,其中,数据处理装置包括文件管理模块,在需要存储数据时,分配写入文件,由数据操作模块将数据追加到写入文件的尾部;数据操作模块,在对数据进行增删改时,用追加方式增加新数据,并标识出无效的数据,文件管理模块在写入文件满足预定条件时,分配新写入文件,并由数据操作模块将写入文件中的非废弃数据追加到新写入文件的尾部,同时删除写入文件。通过本发明,数据存储效率较高,有效控制了数据文件的大小,不需压紧操作。
文档编号G06F17/30GK103064843SQ20111031956
公开日2013年4月24日 申请日期2011年10月20日 优先权日2011年10月20日
发明者谭光超, 王亮, 陈沛 申请人:北京中搜网络技术股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1