NoSQL方式数据存储的优化方法及系统技术方案

技术编号:9991020 阅读:108 留言:0更新日期:2014-05-02 04:29
本发明专利技术涉及数据库技术领域,公开了一种NoSQL方式数据存储的优化方法及系统,包括查询流程、老化流程和同步流程,其中,查询流程采用异步查询方式,将查询过程和返回结果的过程分离以提高查询效率;老化流程通过将长时间无人访问的数据节点进行回收,以有效利用内存;同步流程通过实时同步,在更新数据库时,进行本地缓存表的更新,以保证缓存中数据的有效性。

【技术实现步骤摘要】
【专利摘要】本专利技术涉及数据库
,公开了一种NoSQL方式数据存储的优化方法及系统,包括查询流程、老化流程和同步流程,其中,查询流程采用异步查询方式,将查询过程和返回结果的过程分离以提高查询效率;老化流程通过将长时间无人访问的数据节点进行回收,以有效利用内存;同步流程通过实时同步,在更新数据库时,进行本地缓存表的更新,以保证缓存中数据的有效性。【专利说明】NoSQL方式数据存储的优化方法及系统
本专利技术涉及一种数据存储的
,特别是针对NoSQL方式数据存储的优化的

技术介绍
大型业务应用系统,一般都将系统相关的数据存储到数据库中,但数据库访问受到10、网络的因素,导致读写速度遇到瓶颈,使业务处理的速度变慢,直接影响到的业务的整个流程,特别是在快速流式数据处理过程中,该问题显得更加突出。为了提高高速数据的查询速度,现有解决方案有:1、使用更高性能的服务器,提高网络带宽吞吐量;2、使用分布式数据库或NoSQL数据库;3、提供内存缓存机制。但是上述现有的解决方案存在以下缺陷:采用更高性能的服务器和提供网络带宽量,需要很高的成本,而且仍然会受限于网络的问题,只是在一定程度上速度会有所提高,但还不能满足大批量流式处理的需求;采用分布式数据库增加了同步的复杂度,而且并不能解决网络带宽的问题;采用NoSQL数据库能够在一定程度上解决大数据量且高并发的读写的需求,但该方案同样增加了同步的复杂度;采用内存缓存机制可以有效的解决数据的传输问题,但是当数据量过大时,缓存量会受到限制,直接影响业务处理流程。因此,如何提高大量高速数据的传输速度,同时又不受网络及存储量的限制是目前亟待解决的问题。
技术实现思路
有鉴于此,本专利技术提供一种NoSQL方式数据存储的优化方法及系统,以解决上述问题。为达上述目的,本专利技术提供一种NoSQL方式数据存储的优化方法,该方法包括:查询流程、老化流程和同步流程;其中,查询流程采用异步查询方式,将查询过程和返回结果的过程分离以提高查询效率;老化流程通过将长时间无人访问的数据节点进行回收,以有效利用内存;同步流程通过实时同步,在更新数据库时,进行本地缓存表的更新,以保证缓存中数据的有效性。优选地,所述查询流程具体为:每次通过KEY值进行查询,首先通过KEY值在本地缓存表中进行查询,如果查询到结果,则更新本地缓存表中该KEY值的访问时间戳,然后直接返回结果;如果查询不到结果,则向远端NoSQL数据库发起查询请求,查询采用异步查询模式,即不等待查询结果,而直接返回,等数据库查到结果后,自动更新本地缓存表,等下次再查询此表项时,就能够正常查到。优选地,所述老化流程具体为:通过一个守护线程循环遍历所有结点的上次访问时间,当时间超过所设置的老化时间长度后,将该结点删除。优选地,所述同步流程具体为:本次对数据有写操作时,在写入本地缓存表的同时,写NoSQL数据库并发送同步内容到其它机器缓存表,来完成多机器缓存表与NoSQL数据库的数据同步。此外,本专利技术还提供一种NoSQL方式数据存储的优化系统,该系统包括=NoSQL数据库,本地缓存表,远端缓存表,查询模块,老化模块,同步模块。其中本地缓存表与NoSQL数据库、远端缓存表、查询模块、老化模块以及同步模块均实现互连;其中,查询模块采用异步查询方式,将查询过程和返回结果的过程分离以提高查询效率;老化模块通过将长时间无人访问的数据节点进行回收,以有效利用内存;同步模块通过实时同步,在更新数据库时,进行本地缓存表的更新,以保证缓存中数据的有效性。优选地,所述查询模块每次通过KEY值进行查询,首先通过KEY值在本地缓存表中进行查询,如果查询到结果,则更新本地缓存表中该KEY值的访问时间戳,然后直接返回结果;如果查询不到结果,则向远端NoSQL数据库发起查询请求,查询采用异步查询模式,即不等待查询结果,而直接返回,等数据库查到结果后,自动更新本地缓存表,等下次再查询此表项时,就能够正常查到。优选地,所述老化模块通过一个守护线程循环遍历所有结点的上次访问时间,当时间超过所设置的老化时间长度后,将该结点删除。优选地,所述同步模块中,当本次对数据有写操作时,在写入本地缓存表的同时,写NoSQL数据库并发送同步内容到其它机器缓存表,来完成多机器缓存表与NoSQL数据库的数据同步。通过采用本专利技术提供的方法和系统,使得数据访问效率提高,每秒可处理百万级的数据量,同时采用异步数据库操作模式,提高了系统的处理速度通过时间戳老化结点功能的本地缓存机制,对数据节点进行回收,使得在有限的内存情况下,得到很好的查询效果;通过提供同步机制,使得当有多台设备进行读写操作时,保证数据的一致性。同时,由于直接采用NoSQL数据库,为基本的查询效率也提供了保证。【专利附图】【附图说明】图1为本专利技术实施例的实现NoSQL方式数据存储的优化方法流程图;图2为本专利技术实施例的实现NoSQL方式数据存储的优化系统结构图。【具体实施方式】采用NoSQL数据库可以有效的提高数据的查询速度,当查询需求超过万级以上时,NoSQL数据库是一个不错的选择,但是这样仍然不能满足更高数量级的查询需求,所以本专利技术通过加入本地缓存机制,每次查询后,将远端的查询结果缓存到本地内存中,这样每秒就可以处理上百万到上千万的数据流。有些情况下我们并不需要同步知道查询结果,此时可以采用异步查询方式,即将查询过程和返回结果的过程分离,一些工作线程负责发送请求,另外一些工作线程负责接收结果,这样可以使主流程快速得到响应,提高工作效率。在上述工作基础上,虽然提高了有效性,但牺牲了内存,一般内存最高只有几十G,如果缓存的结点过多,可能一定时间后,新的结点将无法进行缓存工作。因此,这里加入了老化机制,采用的是最远节点淘汰算法,将长时间无人访问的数据节点进行回收,这样可以在有限的内存情况下,得到很好的查询效果。同时还应注意到,数据是在时时变化的,为了使缓存中的数据与数据库中的数据保持一致,我们进行实时同步,在更新数据库时,进行本地缓存表的更新,以保证缓存中数据的有效性。参考图1,下面详细描述该方法的基本流程。查询流程:每次通过KEY值进行查询,首先通过KEY值在本地表中进行查询,如果查询到结果,则更新本地表中该KEY值的访问时间戳,然后直接返回结果;如果查询不到结果,则向远端NoSQL数据库发起查询请求,查询采用异步查询模式,即不等待查询结果,而直接返回,等数据库查到结果后,自动更新本地表,等下次再查询此表项时,就能够正常查到。老化流程:通过一个守护线程循环遍历所有结点的上次访问时间,当时间超过所设置的老化时间长度后,将该结点删除。同步流程:本次对数据有写操作时,在写入本地的同时,同时写NoSQL数据库并发送同步内容到其它机器缓存表,来完成多机器缓存表与NoSQL数据库的数据同步。参考图2,其中示出了本专利技术实施例的实现NoSQL方式数据存储的优化系统结构图,下面将详细描述。系统包括NoSQL数据库,本地缓存表,远端缓存表,查询模块,老化模块,同步模块。其中本地缓存表与NoSQL数据库、远端缓存表、查询模块、老化模块以及同步模块均实现互连。下面详细描述查询模块、老化模块以及同步模块与缓存表以及数据库之间的交互过程本文档来自技高网
...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:崔晶晶林佳婕刘立娜张帅
申请(专利权)人:北京集奥聚合网络技术有限公司
类型:发明
国别省市:

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

1