实时数据存储与查询方法_4

文档序号:8472995阅读:来源:国知局
存储过程中添加了锁机制,当待存储数据被写入分布式节点时,查询语句不能被执行,只有在添加的锁机制被释放后,才被执行,进一步确保了不会遗漏数据或读取重复的数据。
[0099]最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
【主权项】
1.一种实时数据存储方法,其特征在于,包括: 通过一致性哈希分片将待存储数据划分到分布式存储系统的至少一个分布式节点中,得到与所述至少一个分布式节点分别对应的一级索引数据;其中,所述一级索引数据为被划分到所述至少一个分布式节点中的、携带有一致性哈希分片索引信息的部分待存储数据; 将与所述至少一个分布式节点分别对应的所述一级索引数据存储到数据缓冲系统中;所述数据缓存系统位于内存中; 通过对与所述至少一个分布式节点分别对应的至少两个所述一级索引数据进行归并处理,得到与所述至少一个分布式节点对应的至少一个分布式文件块;所述归并处理是指对同一分布式节点中至少两个所述一级索引数据进行归并、排序以及组装的过程; 通过对与所述至少一个分布式节点对应的至少一个分布式文件块内的、经过归并处理后的至少两个所述一级索引数据建立聚簇索引,得到与所述至少一个分布式节点分别对应的二级索引数据;其中,所述二级索引数据为与所述至少一个分布式节点分别对应的、位于所述至少一个分布式文件块内的、携带有聚簇索引信息的至少两个所述一级索引数据; 将与所述至少一个分布式节点分别对应的所述二级索引数据分别写入所述至少一个分布式节点所在的磁盘上。
2.根据权利要求1所述的实时数据存储方法,其特征在于,在所述通过对与所述至少一个分布式节点分别对应的至少两个所述一级索引数据进行归并处理,得到所述至少一个分布式节点对应的至少一个分布式文件块之前,还包括: 将所述待存储数据从读进程读出后,对所述待存储数据进行打包处理,并按照所述一致性哈希分片将所述待存储数据划分到所述分布式存储系统的至少一个分布式节点中,得到与所述至少一个分布式节点分别对应的所述一级索引数据;所述打包处理是指对所述待存储数据进行数据字典化、二进制转化处理的过程; 将与所述至少一个分布式节点分别对应的所述一级索引数据放入所述数据缓存系统的至少一个数据桶中;所述至少一个数据桶分别用于存储与所述至少一个分布式节点分别对应的所述一级索引数据; 当所述至少一个数据桶达到预设值的大小后,对所述至少一个数据桶中的至少两个所述一级索引数据进行归并处理,得到与所述至少一个分布式节点对应的所述至少一个分布式文件块。
3.根据权利要求2所述的实时数据存储方法,其特征在于,还包括: 当对所述待存储数据进行打包处理时,将所述待存储数据进行加锁处理;当所述待存储数据的打包处理过程结束后,将被加锁的所述待存储数据解锁; 对与所述至少一个分布式节点分别对应的至少两个所述一级索引数据进行归并处理时,将与所述至少一个分布式节点分别对应的至少两个所述一级索引数据进行加锁处理;当与所述至少一个分布式节点分别对应的所述至少两个所述一级索引数据的所述归并处理过程结束后,将被加锁的与所述至少一个分布式节点分别对应的所述至少两个所述一级索引数据解锁; 将与所述至少一个分布式节点分别对应的所述二级索引数据写入所述至少一个分布式节点所在的磁盘上时,将与所述至少一个分布式节点分别对应的所述二级索引数据进行加锁处理;当与所述至少一个分布式节点分别对应的所述二级索引数据成功写入所述至少一个分布式节点所在的磁盘上之后,若数据的实时性要求小于所述数据桶的数据内存最小时间戳,删除所述数据缓存系统中的与所述至少一个分布式节点分别对应的所述二级索引数据,将被加锁的所述成功写入所述至少一个分布式节点中的所述二级索引数据解锁; 更新所述数据桶的内存数据最小时间戳,所述内存数据最小时间戳,用于在内存中表征与所述至少一个分布式节点分别对应的至少两个所述二级索引数据的实时性要求。
4.根据权利要求1所述的实时数据存储方法,其特征在于,所述聚簇索引信息中的每项由索引字段起始值和在所述分布式文件块中的偏移量构成,所述聚簇索引信息中的每项对应所述至少一个分布式文件块中的一段内容。
5.根据权利要求1?4任一项所述的实时数据存储方法,其特征在于,在所述分布式存储系统的至少一个分布式节点中,对所述待存储数据进行所述一致性哈希分片得到与所述至少一个分布式节点分别对应的所述一级索引数据、对与所述至少一个分布式节点分别对应的至少一个分布式文件块内的、经过归并处理后的至少两个所述一级索引数据建立聚簇索引得到与所述至少一个分布式节点分别对应的至少两个所述二级索引数据的处理过程,并行执行; 在所述分布式存储系统的同一个分布式节点中,对所述待存储数据进行所述一致性哈希分片得到与所述分布式节点分别对应的所述一级索引数据、对与所述至少一个分布式节点分别对应的至少一个分布式文件块内的、经过归并处理后的至少两个所述一级索引数据建立聚簇索引得到与该分布式节点分别对应的、所述至少一个分布式文件块内的至少两个所述二级索引数据的处理过程,按顺序执行。
6.一种实时数据查询方法,其特征在于,包括: 通过对查询语句进行解析,得到待查询数据的查询参数; 根据所述待查询数据分片时建立的一致性哈希分片索引信息定位到所述待查询数据对应的至少两个一级索引数据所属的至少一个分布式节点所在的磁盘,以及所述至少一个分布式节点所对应的至少一个分布式文件块;其中,所述一级索引数据为被划分到所述至少一个分布式节点中的、携带有所述一致性哈希分片索引信息的部分待查询数据; 在所述至少一个分布式文件块内,根据所述至少一个分布式文件块内的至少两个所述一级索引数据存储时建立的聚簇索引信息定位到与所述至少一个分布式节点分别对应的、所述至少一个分布式文件块内的至少两个二级索引数据所处的位置;与所述至少一个分布式节点分别对应的、所述至少一个分布式文件块内的至少两个所述二级索引数据为位于所述至少一个分布式文件块内的、携带有所述聚簇索引信息的至少两个所述一级索引数据; 根据所述查询参数,对与所述至少一个分布式节点分别对应的、所述至少一个分布式文件块内的至少两个所述二级索引数据进行过滤、归并,得到待查询磁盘数据。
7.根据权利要求6所述的实时数据查询方法,其特征在于,当数据的实时性要求大于数据内存最小时间戳时,还包括: 在数据缓冲系统中,根据所述待查询数据分片时建立的所述一致性哈希分片索引信息定位到与所述部分待查询数据分别对应的至少两个所述一级索引数据所在的至少一个数据桶;所述至少一个数据桶分别用于存储与所述部分待查询数据分别对应的至少两个所述一级索引数据; 根据所述查询参数,对所述至少一个数据桶中的至少两个所述一级索引数据进行过滤、归并,得到待查询缓存数据; 将所述待查询磁盘数据与所述待查询缓存数据进行合并,得到所述待查询数据。
8.根据权利要求6所述的实时数据查询方法,其特征在于,所述聚簇索引信息中的每项由索引字段起始值和在所述分布式文件块中的偏移量构成,所述聚簇索引信息中的每项对应所述至少一个分布式文件块中的一段内容。
9.根据权利要求6?8任一项所述的实时数据查询方法,其特征在于,所述一致性哈希分片索引信息和所述聚簇索引信息保存在系统表中,所述系统表存储在内存中。
10.根据权利要求6?8任一项所述的实时数据查询方法,其特征在于,在所述分布式存储系统的至少一个分布式节点中,根据所述一致性哈希分片索引信息定位与所述待查询数据分别对应的至少两个所述一级索引数据所属的至少一个分布式节点所在的磁盘、根据所述聚簇索引信息定位与所述至少一个分布式节点分别对应的、所述至少一个分布式文件块内的至少两个所述二级索引数据所处位置的处理过程,并行执行; 在所述分布式存储系统的同一个分布式节点中,根据所述一致性哈希分片索引信息定位与所述待查询数据分别对应的至少两个所述一级索引数据所属的该分布式节点所在的磁盘、根据所述聚簇索引信息定位与该分布式节点分别对应的、所述至少一个分布式文件块内的至少两个所述二级索引数据所处位置的处理过程,按顺序执行。
【专利摘要】本发明提供一种实时数据存储与查询方法,存储时,通过采用一致性哈希分片将待存储数据进行划分,在分布式存储系统的至少一个分布式节点中得到携带有一致性哈希分片索引信息的一级索引数据,对同一个分布式节点中的至少两个一级索引数据进行归并处理,形成与该分布式节点相对应的分布式文件块,对分布式文件块内的一级索引数据建立聚簇索引,在与分布式节点对应的分布式文件块内得到携带有聚簇索引信息的二级索引数据,并将该分布式文件块内的二级索引数据写入到对应分布式节点所在的磁盘上,查询时,通过对待查询数据存储时建立的一致性哈希分片索引信息和在分布式文件块内建立的聚簇索引信息,能够准确、快速的定位到需要的结果。
【IPC分类】G06F17-30
【公开号】CN104794162
【申请号】CN201510133517
【发明人】陈跃国, 杜小勇, 覃雄派, 卞昊穹, 程鳌, 赵丽萍
【申请人】中国人民大学
【公开日】2015年7月22日
【申请日】2015年3月25日
当前第4页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1