一种海量数据检索方法及装置、海量数据存储方法及系统的制作方法_2

文档序号:9750808阅读:来源:国知局
检索;如此,通过建立第一缓存来存储历史检索数据结果,建立第二缓存来存储频繁使用的告警对象、告警规则、告警内容和告警历史数据,建立第三缓存来存储热数据,并在进行数据检索时,优先在第一缓存、第二缓存和第三缓存中进行检索,能降低数据检索对数据库连接的依赖性,使得数据库的负载得到有效缓冲,提高数据检索效率;将频繁使用的热数据存储在位于JVM内的第三缓存中,减少了 BOMC系统的远程访问操作,提高了 BOMC系统的稳定性。本发明实施例提供的海量数据存储方法及系统,在不同区域建立第一缓存、第二缓存和第三缓存,将历史数据检索结果存储至第一缓存,将频繁使用的告警对象、告警规则、告警具体内容和告警历史数据存储至第二缓存,将热数据存储至第三缓存,实现海量数据的分类存储。
【附图说明】
[0044]图1为本发明实施例海量数据检索方法的处理流程示意图;
[0045]图2为本发明实施例读节点和写节点的部署示意图;
[0046]图3为本发明实施例冷数据和热数据在第三缓存中的分布示意图;
[0047]图4为本发明实施例第三缓存队列中冷热数据置换的处理流程示意图;
[0048]图5为本发明实施例BOMC监控平台依次在第一缓存、第三缓存和第二缓存中进行数据检索的处理流程示意图;
[0049]图6为本发明实施例海量数据检索装置的组成结构示意图;
[0050]图7为本发明实施例海量数据存储方法的处理流程示意图;
[0051]图8为本发明实施例海量数据检索系统的组成结构示意图。
【具体实施方式】
[0052]本发明实施例中,在不同区域建立第一缓存、第二缓存和第三缓存;接收到数据检索请求后,根据所述数据检索请求查找所要检索的数据的存储区域;查找成功时,在查找获得的存储区域中进行数据检索;查找失败时,根据所述数据检索请求和缓存所属设备的性能在所述第一缓存、第二缓存和第三缓存中进行数据检索。
[0053]具体地,查找失败后根据实际情况包括三种数据检索方式:查找失败且能排除所要检索的数据不存在于某一缓存时,对剩余的两个缓存进行数据检索;查找失败、不能排除所要检索的数据不存在于某一缓存、且设备性能低于预设的阈值时,分别在第一缓存、第二缓存和第三缓存中同时进行数据检索;查找失败、不能排除所要检索的数据不存在于某一缓存、且设备性能高于预设的阈值时,依次在第一缓存、第三缓存和第二缓存中进行数据检索。
[0054]本发明实施例海量数据检索方法的处理流程,如图1所示,包括以下步骤:
[0055]步骤101,在不同区域建立第一缓存、第二缓存和第三缓存;
[0056]首先,在会话线程变量中建立第一缓存;
[0057]具体地,本发明实施例所述的海量数据是会话所产生的数据,一次会话过程中通常会存在很多次业务操作,一次数据检索请求获取的检索数据结果在使用完毕后并不立即放弃,因此,BOMC监控平台在会话线程变量中建立第一缓存,将历史数据检索结果存储在第一缓存中;涉及到同一数据的重复检索时,直接从第一缓存中获取,不再从数据库中进行检索,如此,可减少冗余检索,提高BOMC系统的性能;所述第一缓存可以为哈希键值对容器(HashMap),在会话结束后,自动清除历史检索结果。
[0058]其次,在REDIS建立第二缓存;这里,所述REDIS是一种数据库;
[0059]具体地,建立第二缓存前,需先通过读写分离和中央控制节点的结构实现REDIS的读写分离;在BOMC监控平台启动前,先将频繁使用的告警对象、告警规则、告警内容和告警历史数据存储至第二缓存;对于新增的告警对象、告警规则、告警内容和告警历史数据,可自动从数据库刷新至第二缓存;在BOMC监控平台进行数据检索时,可不经过数据库,直接从REDIS内的第二缓存中进行检索,极大地提高了检索效率。
[0060]其中,实现REDIS的读写分离时,读节点和写节点的部署示意图,如图2所示,在写节点之间进行一对一的直线型复制,直线的最后一个端点作为所有写节点的主节点;在进行REDIS的读写分离配置时,将写节点的所有网络协议(Internet Protocol, IP)端口配置到REDIS的写集群,将读节点的所有IP端口配置到REDIS读集群;读集群和写集群可采用硬件负载F5或Array,或haproxy+keepalived的模式;读数据时调用REDIS读应用程序开发接口(Applicat1n Programming Interface, API),写数据时调用 REDIS 写 API ;其中,F5和Array为硬件负载均衡产品,haproxy和keepalived为开源负载均衡和高可用软件。
[0061]再次,在JVM内存中建立第三缓存;
[0062]具体地,所述第三缓存为在JVM中开辟的一块独立空间,第三缓存的存储空间可根据实际需要灵活设置,所述第三缓存用于存储热数据,BOMC监控平台可根据实际使用情况对热数据进行动态调整;其中,所述热数据为近期使用频率高的数据,相应的,所述冷数据为近期使用频率低的数据;
[0063]BOMC监控平台在对热数据进行动态调整时,在第三缓存中优先存放热数据,第三缓存中的冗余存储空间存放一部分冷数据;冷数据和热数据在第三缓存中的分布示意图,如图3所示;当热数据超出第三缓存的存储空间上限时,超出部分的热数据不进行存储;当第三缓存存储全部的热数据后有冗余存储空间时,冗余存储空间用于存储冷数据;在爆发式业务高峰期时,为保证第三缓存的弹性使用,可直接释放冷数据存储区;
[0064]为实现对热数据的动态调整,即冷热数据置换,需在第三缓存中建立冷数据索引队列、热数据索引队列和第三缓存队列;其中,冷数据索引队列中存放冷数据的索引,热数据索引队列中存放热数据的索引,第三缓存队列用于存放固定大小的冷热数据;冷数据索引队列和热数据索引队列用于动态调整数据进出第三缓存队列,将近期使用频繁的数据存储至第三缓存队列,在第三缓存队列存储空间有冗余时,存储部分冷数据;
[0065]这里,将单位时间内的调用次数大于等于预设的阈值的数据定义为热数据,将热数据的主键存入热数据索引队列;判断热数据的依据为:
[0066]f (key, now_time) -f (key, (now_time_unit_time))(I);
[0067]> = threshoId_value*uni t_t ime ;
[0068]其中,threshold_value为冷热阈值频率,可根据实际需要灵活配置;unit_time表示时间单位;f (key, now_time)表示一个缓存数据的索引对应的总调用次数;f (key, (now_time-unit_time))表示一缓存数据的索引对应的以距离现在时间为单位时间的总调用次数;
[0069]将单位时间内的调用次数小于预设的阈值的数据定义为冷数据,将冷数据的主键存入热数据索引队列;判断冷数据的依据为:
[0070]f (key, now_time) -f (key, (now_time_unit_time))(2);
[0071]<threshold_value*unit_time ;
[0072]其中,threshold_value为冷热阈值频率,可根据实际需要灵活配置;unit_time表示时间单位;f (key, now_time)表示一个缓存数据的索引对应的总调用次数;f (key, (now_time-unit_time))表示一缓存数据的索引对应的以距离现在时间为单位时间的总调用次数。
[0073]本发明实施例中第三缓存队列中冷热数据置换的处理流程,如图4所示,包括以下步骤:
[0074]步骤la,BOMC监控平台将冷数据索引队列与第三缓存队列进行比较,将第三缓存队列中标识为热数据,同时在冷数据索引队列中找到标识为热数据的数据状态修改为冷数据。
[0075]步骤lb,BOMC监控平台将热数据索引队列与第三缓存队列进行比较,将热数据索引队列中标识为热数据,但在第三缓存队列中未找到的数据准备加入第三缓存队列。
[0076]步骤lc,BOMC监控平台判断第三缓存队列的存储空间是否足够存放所述准备加入的数据,判断为否,执行步骤ld,判断为是,执行步骤le。
[0077]步骤ld,BOMC监控平台在第三缓存队列中循环移除一套状态标识为冷数据的缓存数据,直至第三缓存队列的冗余存储空间足以存放准备加入的数据。
[0078]步骤le,BOMC监控平台将所述准备加入的数据加载至第三缓存队列;
[0079]具体地,BOMC监控平台在加载完全不热数据后,第三缓存队列有冗余存储空间时,加入冷数据,直至第三缓存队列的存储空间全部使用。
[0080]步骤102,接收到数据检索请求后,根据所
当前第2页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1