一种数据存储系统的维护方法、装置和移动终端制造方法及图纸

技术编号:21361131 阅读:21 留言:0更新日期:2019-06-15 09:17
本发明专利技术涉及一种数据存储系统的维护方法、装置和移动终端。数据存储系统包括存储在内存中的热点统计哈希表、多个数据哈希表和多个索引哈希表,以及存储在磁盘中的多个数据文件和多个索引文件;数据存储系统中设置有持久化线程、整理线程和淘汰线程;持久化线程将数据哈希表持久化处理至数据文件中;持久化线程将索引哈希表持久化处理至索引文件中;整理线程根据索引哈希表整理数据文件中的数据,并更新索引哈希表中对应的索引信息;淘汰线程删除过期的只读数据哈希表。通过本发明专利技术实施例,可以实现自动识别出热点数据并保持热点数据长期缓存在内存、自动识别出“冷”数据并持久化到磁盘等功能,节省了内存资源,有效地利用了内存和磁盘空间。

A Maintenance Method, Device and Mobile Terminal for Data Storage System

The invention relates to a maintenance method, device and mobile terminal of a data storage system. Data storage system includes hot statistical hash tables, multiple data hash tables and multiple index hash tables stored in memory, as well as multiple data files and multiple index files stored in disk; there are persistent threads, collation threads and elimination threads in data storage system; persistent threads persist data hash tables to data files; persistent threads persist data hash tables to data files; persistent threads The index hash table is persisted to the index file; the collating thread collates the data in the data file according to the index hash table, and updates the corresponding index information in the index hash table; and the elimination thread deletes the expired read-only data hash table. Through the embodiment of the present invention, the functions of automatically identifying hot data and keeping hot data long-term cached in memory, automatically identifying \cold\ data and persisting to disk can be realized, thus saving memory resources and effectively utilizing memory and disk space.

【技术实现步骤摘要】
一种数据存储系统的维护方法、装置和移动终端
本专利技术涉及数据库
,尤其涉及一种数据存储系统的维护方法、装置和移动终端。
技术介绍
在互联网行业中,在整个系统里面,频繁操作的数据往往只占整体数据的一小部分,这一小部分数据,我们称之为热点数据。而这一小部分数据的操作效率,却往往影响整个系统的吞吐量、稳定性以及用户体验。如何高效地操作(增删改查)这些热点数据,一直是数据存储
的追求。并且,对于传统的数据库,因为在设计上需要提供各种复杂的查询功能,所以单台数据库的并发查询性能并不高,不是很适合直接用在高并发场景。现有技术中在数据库上面再加一层缓存,以适应高并发场景,但是没有自动识别出热点数据并保持热点数据长期缓存在内存、自动识别出“冷”数据并持久化到磁盘的功能,所以存在内存被浪费掉,磁盘空间不能得到有效利用的问题。
技术实现思路
本专利技术公开了一种数据存储系统的维护方法、装置和移动终端,以解决现有技术中数据存储系统中存在大量冷数据,浪费内存资源的问题。第一方面,本专利技术提供了一种数据存储系统的维护方法,所述数据存储系统包括存储在内存中的热点统计哈希表、多个数据哈希表和多个索引哈希表,以及存储在磁盘中的多个数据文件和多个索引文件;所述数据存储系统中设置有持久化线程、整理线程和淘汰线程;所述方法包括:所述持久化线程将所述数据哈希表持久化处理至所述数据文件中;所述持久化线程将所述索引哈希表持久化处理至所述索引文件中;所述整理线程根据所述索引哈希表整理所述数据文件中的数据,并更新所述索引哈希表中对应的索引信息;所述淘汰线程删除过期的只读数据哈希表。优选地,所述持久化线程将所述数据哈希表持久化处理至所述数据文件中,包括:所述持久化线程获取第一索引哈希表的读锁;其中,所述第一索引哈希表中对应待持久化处理的第一数据哈希表;在获取到所述读锁的情况下,创建第二数据哈希表;在所述第一索引哈希表中将索引信息修改为对应所述第二数据哈希表;将所述第一数据哈希表设置为只读状态;从多个数据文件中确定待写入的第一数据文件;遍历所述第一数据哈希表;在所述第一数据文件存在写入空间的情况下,将所述第一数据哈希表中的待持久化数据写入所述第一数据文件;更新所述第一索引哈希表中的索引信息;释放所述第一索引哈希表的读锁。优选地,在所述遍历所述第一数据哈希表之后,所述方法还包括:在所述第一数据文件不存在写入空间的情况下,创建第二数据文件;将所述第一数据哈希表中的待持久化数据写入所述第二数据文件中。优选地,所述持久化线程将所述索引哈希表持久化处理至所述索引文件中,包括:所述持久化线程复制第二索引哈希表得到快照索引哈希表;其中所述第二索引哈希表为待持久化处理的索引哈希表;将所述快照索引哈希表中的索引信息写入所述索引文件中;删除所述快照哈希索引表。优选地,所述整理线程根据所述索引哈希表整理所述数据文件中的数据,并更新所述索引哈希表中的索引信息,包括:所述整理线程根据第三索引哈希表确定待整理的第三数据文件;将所述第三数据文件中的待整理数据写入到第四数据文件中;根据所述第四数据文件更新所述第三索引哈希表中的索引信息;删除所述第三数据文件。优选地,所述整理线程根据第三索引哈希表确定待整理的第三数据文件,包括:所述整理线程获取所述第三索引哈希表的写锁;遍历所述第三索引哈希表;根据所述第三索引哈希表从多个索引文件中确定目标索引文件;根据所述目标索引文件确定所述待整理的第三数据文件。优选地,所述将所述第三数据文件中的待整理数据写入到第四数据文件中,包括:从所述第三数据文件中获取待整理数据;将所述待整理数据写入临时数据文件中;将所述第三数据文件修改为旧数据文件;将所述临时数据文件修改为所述第四数据文件;所述将所述待整理数据写入临时数据文件中,包括:在第一临时数据文件存在写入空间的情况下,将所述待整理数据写入所述第一临时数据文件中;在所述第一临时文件不存在写入空间的情况下,创建第二临时数据文件;将所述待整理数据写入所述第二临时数据文件中;所述根据所述第四数据文件更新所述第三索引哈希表中的索引信息,包括:在所述第三索引哈希表中将所述待整理数据的索引信息修改为对应所述第四数据文件;释放所述第三索引哈希表的写锁。优选地,所述淘汰线程删除过期的只读数据哈希表,包括:所述淘汰线程判断所述只读数据哈希表是否已过期;在所述只读数据哈希表已过期的情况下,根据所述热点统计哈希表从所述只读数据哈希表中查找热点数据;在从所述只读数据哈希表中查找到所述热点数据的情况下,判断与所述只读数据哈希表对应的所述数据哈希表中是否存在所述热点数据;在所述数据哈希表中不存在所述热点数据的情况下,修改所述热点数据的记录状态,并将所述热点数据存储至一个所述数据哈希表中;删除所述只读数据哈希表。优选地,所述根据所述热点统计哈希表从所述只读数据哈希表中查找热点数据,包括:根据所述热点统计哈希表确定所述只读数据哈希表中各数据对应的统计信息;将所述统计信息大于预设值的数据确定为所述热点数据。第二方面,本专利技术提供了一种数据存储系统的维护装置,所述数据存储系统包括存储在内存中的热点统计哈希表、多个数据哈希表和多个索引哈希表,以及存储在磁盘中的多个数据文件和多个索引文件;所述数据存储系统中设置有持久化线程、整理线程和淘汰线程;所述装置包括:数据持久化模块,用于所述持久化线程将所述数据哈希表持久化处理至所述数据文件中;索引持久化模块,用于所述持久化线程将所述索引哈希表持久化处理至所述索引文件中;整理模块,用于所述整理线程根据所述索引哈希表整理所述数据文件中的数据,并更新所述索引哈希表中对应的索引信息;淘汰模块,用于所述淘汰线程删除过期的只读数据哈希表。优选地,所述数据持久化模块包括:读锁获取子模块,用于所述持久化线程获取第一索引哈希表的读锁;其中,所述第一索引哈希表中对应待持久化处理的第一数据哈希表;数据哈希表创建子模块,用于在获取到所述读锁的情况下,创建第二数据哈希表;索引信息修改子模块,用于在所述第一索引哈希表中将索引信息修改为对应所述第二数据哈希表;状态修改子模块,用于将所述第一数据哈希表设置为只读状态;第一数据文件确定子模块,用于从多个数据文件中确定待写入的第一数据文件;第一遍历子模块,用于遍历所述第一数据哈希表;第一数据写入子模块,用于在所述第一数据文件存在写入空间的情况下,将所述第一数据哈希表中的待持久化数据写入所述第一数据文件;第一索引哈希表更新子模块,用于更新所述第一索引哈希表中的索引信息;读锁释放子模块,用于释放所述第一索引哈希表的读锁。优选地,在所述第一遍历子模块之后,所述装置还包括:数据文件创建子模块,用于在所述第一数据文件不存在写入空间的情况下,创建第二数据文件;第二数据写入子模块,用于将所述第一数据哈希表中的待持久化数据写入所述第二数据文件中。优选地,所述索引持久化模块包括:快照索引哈希表获得子模块,用于所述持久化线程复制第二索引哈希表得到快照索引哈希表;其中所述第二索引哈希表为待持久化处理的索引哈希表;索引信息写入子模块,用于将所述快照索引哈希表中的索引信息写入所述索引文件中;快照索引哈希表删除子模块,用于删除所述快照哈希索引表。优选地,所述整理模块包括:第二数据文件确定子模块,用于所述整理本文档来自技高网...

【技术保护点】
1.一种数据存储系统的维护方法,其特征在于,所述数据存储系统包括存储在内存中的热点统计哈希表、多个数据哈希表和多个索引哈希表,以及存储在磁盘中的多个数据文件和多个索引文件;所述数据存储系统中设置有持久化线程、整理线程和淘汰线程;所述方法包括:所述持久化线程将所述数据哈希表持久化处理至所述数据文件中;所述持久化线程将所述索引哈希表持久化处理至所述索引文件中;所述整理线程根据所述索引哈希表整理所述数据文件中的数据,并更新所述索引哈希表中对应的索引信息;所述淘汰线程删除过期的只读数据哈希表。

【技术特征摘要】
1.一种数据存储系统的维护方法,其特征在于,所述数据存储系统包括存储在内存中的热点统计哈希表、多个数据哈希表和多个索引哈希表,以及存储在磁盘中的多个数据文件和多个索引文件;所述数据存储系统中设置有持久化线程、整理线程和淘汰线程;所述方法包括:所述持久化线程将所述数据哈希表持久化处理至所述数据文件中;所述持久化线程将所述索引哈希表持久化处理至所述索引文件中;所述整理线程根据所述索引哈希表整理所述数据文件中的数据,并更新所述索引哈希表中对应的索引信息;所述淘汰线程删除过期的只读数据哈希表。2.根据权利要求1所述的方法,其特征在于,所述持久化线程将所述数据哈希表持久化处理至所述数据文件中,包括:所述持久化线程获取第一索引哈希表的读锁;其中,所述第一索引哈希表对应待持久化处理的第一数据哈希表;在获取到所述读锁的情况下,创建第二数据哈希表;在所述第一索引哈希表中将索引信息修改为对应所述第二数据哈希表;将所述第一数据哈希表设置为只读状态;从所述多个数据文件中确定待写入的第一数据文件;遍历所述第一数据哈希表;在所述第一数据文件存在写入空间的情况下,将所述第一数据哈希表中的待持久化数据写入所述第一数据文件;更新所述第一索引哈希表中的索引信息;释放所述第一索引哈希表的读锁。3.根据权利要求2所述的方法,其特征在于,在所述遍历所述第一数据哈希表之后,所述方法还包括:在所述第一数据文件不存在写入空间的情况下,创建第二数据文件;将所述第一数据哈希表中的待持久化数据写入所述第二数据文件中。4.根据权利要求1所述的方法,其特征在于,所述持久化线程将所述索引哈希表持久化处理至所述索引文件中,包括:所述持久化线程复制第二索引哈希表得到快照索引哈希表;其中所述第二索引哈希表为待持久化处理的索引哈希表;将所述快照索引哈希表中的索引信息写入所述索引文件中;删除所述快照哈希索引表。5.根据权利要求1所述的方法,其特征在于,所述整理线程根据所述索引哈希表整理所述数据文件中的数据,并更新所述索引哈希表中的索引信息,包括:所述整理线程根据第三索引哈希表确定待整理的第三数据文件;将所述第三数据文件中的待整理数据写入到第四数据文件中;根据所述第四数据文件更新所述第三索引哈希表中的索引信息;删除所述第三...

【专利技术属性】
技术研发人员:黄全李泽隆
申请(专利权)人:广州荔支网络技术有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1