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

文档序号:9750808阅读:来源:国知局
述数据检索请求查找所要检索的数据的存储区域;
[0081 ] 具体地,BOMC监控平台预先存储包括数据特征和存储区域的信息表,BOMC监控平台接收到数据检索请求后,根据所述数据检索请求中的数据特征在预存的信息表中查找所要检索的数据的存储区域;
[0082]其中,所述数据特征包括:配置类数据、历史告警类数据等。
[0083]步骤103,查找成功时,在查找获得的存储区域中进行数据检索。
[0084]步骤103’,查找失败时,根据所述数据检索请求和缓存所属设备的性能在所述第一缓存、第二缓存和第三缓存中进行数据检索。
[0085]具体地,能够排除所要检索的数据不存在于某一缓存时,对剩余的两个缓存进行数据检索;即:能够排除所要检索的数据不存在于第一缓存时,BOMC监控平台对第二缓存和第三缓存进行数据检索;能够排除所要检索的数据不存在于第二缓存时,BOMC监控平台对第一缓存和第三缓存进行数据检索;能够排除所要检索的数据不存在于第三缓存时,BOMC监控平台对第一缓存和第二缓存进行数据检索。
[0086]不能够排除所要检索的数据不存在于某一缓存,缓存所属设备的性能低于预设的阈值时,分别在第一缓存、第二缓存和第三缓存中同时进行数据检索;利用并行的检索方式进行数据检索,能够有效的提高BOMC监控平台的检索效率;其中,所述阈值为BOMC监控平台的闲忙阈值,可根据实际使用情况灵活配置。
[0087]缓存所属设备的性能高于预设的阈值时,依次在第一缓存、第三缓存和第二缓存中进行数据检索;在任何一个缓存中检索成功时,停止数据检索;所述缓存所属设备的性能包括:缓存所属设备的内存、中央处理器(Central Processing Unit, CPU)、磁盘的输入输出接口等;B0MC监控平台依次在第一缓存、第三缓存和第二缓存中进行数据检索的处理流程,如图5所示,包括以下步骤:
[0088]步骤2a,根据所述数据检索请求在第一缓存中进行数据检索;
[0089]具体地,BOMC监控平台调用containskey方法,在历史数据检索结果中进行检索,确保相同条件的检索至发生一次远程调用;检索成功,执行步骤2f;检索失败,执行步骤
2b ο
[0090]步骤2b,判断所述数据检索是否在文本检索,判断结果为是时,执行步骤2c ;判断结果为否时,执彳丁步骤2d。
[0091]步骤2c,在第二缓存中进行文本检索,检索成功,执行步骤2f,检索失败,执行步骤2d ;
[0092]具体地,访问检索引擎在第二缓存中进行文本检索,文本检索范围是文字内容较多、夹杂着中英文等信息的文本;
[0093]以一个告警的告警内容为“无法连接采集代理,可能Topea代理已停止或未正常运行”为例,在进行文本检索时,先使用搜索弓I擎预先建立告警文本内容的分词索引;在调用文件检索API在数百万的形如上述文本内容的告警信息中查找“Toptea代理已停止或未正常运行”;检索成功,执行步骤2f,检索失败,执行步骤2d。
[0094]本发明实施例中,通过第二缓存预先加载告警文本数据,并运用搜索弓I擎预先建立告警文本内容的粉刺索引,在根据告警关键字进行模糊搜索时,调用搜索引擎的API进行搜索,实现了海量文本数据的快速检索,提高了 BOMC系统的性能。
[0095]步骤2d,在第三缓存中进行数据检索,检索成功,执行步骤2f,检索失败,执行步骤2e ;
[0096]其中,所述第三缓存通过一个线程安全的Concurrent Hash Map承载近期频繁使用的数据信息。
[0097]本发明实施例中,在执行步骤2a至步骤2d的过程中,均不涉及跨主机的数据访问,极大地减少了跨主机的调用,提高了 BOMC监控平台的性能。
[0098]步骤2e,在第二缓存中进行数据检索,检索成功,执行步骤2f,检索失败,结束本处理流程;
[0099]具体地,BOMC监控平台通过封装REDIS的客户端访问代理API进行数据检索,即:代理API通过调用socket接口输入相应的检索参数,在REDIS中进行数据检索;检索成功,执行步骤2f,检索失败,建立数据库连接,检索数据并将检索结果反馈至用户。
[0100]步骤2f,动态调整冷热数据,反馈检索结果;
[0101]具体地,BOMC监控平台根据数据使用的频率进行冷热数据的调整,将检索结果反馈至用户。
[0102]为实现上述海量数据检索方法,本发明实施例还提供一种海量数据检索装置,所述装置的组成结构如图6所示,包括:构建模块11、接收模块12、查找模块13和检索模块14 ;其中,
[0103]所述构建模块11,用于在不同区域建立第一缓存、第二缓存和第三缓存;
[0104]所述接收模块12,用于接收业务检索请求;
[0105]所述查找模块13,用于根据所述数据检索请求查找所要检索的数据的存储区域;
[0106]所述检索模块14,用于在查找获得的存储区域中进行数据检索,或根据所述数据检索请求在所述第一缓存、第二缓存和第三缓存中进行数据检索。
[0107]优选地,所述检索模块14,还用于在第一缓存、第二缓存和第三缓存中检索数据失败时,根据所述数据检索请求在数据库中进行数据检索。
[0108]优选地,所述构建模块11,具体用于在产生数据的会话的线程变量中建立第一缓存,在REDIS中建立第二缓存,在JVM内存中建立第三缓存;其中,
[0109]所述第一缓存用于存储历史检索数据结果,所述第二缓存用于存储频繁使用的告警对象、告警规则、告警内容和告警历史数据,所述第三缓存用于存储热数据。
[0110]优选地,所述检索模块14,具体用于能够排除所要检索的数据不存在于第一缓存、第二缓存和第三缓存中的一个缓存时,对剩余的两个缓存进行数据检索;
[0111]不能够排除所要检索的数据不存在于某一缓存,缓存所述设备的性能低于预设的阈值时,分别同时在第一缓存、第二缓存和第三缓存中进行数据检索;缓存所述设备的性能高于预设的阈值时,依次在第一缓存、第三缓存和第二缓存中进行数据检索;所述缓存所属设备的性能包括:缓存所属设备的内存、中央处理器(Central Processing Unit, CPU)、磁盘的输入输出接口等。
[0112]优选地,所述检索模块14,进一步用于根据所述数据检索请求在第一缓存中进行数据检索;
[0113]确认在第一缓存中检索数据失败,且所述检索为文本检索时,在第二缓存中进行文本检索;确认在第一缓存中检索数据失败,且所述检索为非文本检索时,在第三缓存中进行数据检索;
[0114]确认文本检索失败或在第三缓存中检索数据失败时,在第二缓存中进行数据检索。
[0115]所述构建模块11建立第一缓存、第二缓存和第三缓存,具体包括:
[0116]—次会话过程中通常会存在很多次业务操作,一次数据检索请求获取的检索数据结果在使用完毕后并不立即放弃,构建模块11在会话线程变量中建立第一缓存,所述第一缓存可以为HashMap,在会话结束后,自动清除历史检索结果。
[0117]构建模块11建立第二缓存前,需先通过读写分离和中央控制节点的结构实现REDIS的读写分离;在801?:监控平台启动前,将频繁使用的告警对象、告警规则、告警内容和告警历史数据存储至第二缓存;对于新增的告警对象、告警规则、告警内容和告警历史数据,可自动从数据库刷新至第二缓存;所述REDIS是一种数据库。
[0118]构建模块11实现REDIS的读写分离时,需要在写节点之间进行一对一的直线型复制,直线的最后一个端点作为所有写节点的主节点;在进行REDIS的读写分离配置时,将写节点的所有IP端口配置到REDIS的写集群,将读节点的所有IP端口配置到REDIS读集群;读集群和写集群可采用硬件负载F5或Array,或haproxy+keepalived的模式;读数据时调用REDIS读API,写数据时调用REDIS写API ;其中,F5和Array为硬件负载均衡产品,haproxy和keepalived为开源负载均衡和高可用软件。
[0119]构建模块11在JVM内存中建立第三缓存,所述第三缓存为在JVM中开辟的一块独立空间,第三缓存的存储空间可根据实际需要灵活设置,所述第三缓存用于存储热数据,热数据可根据实际使用情况动态调整;
[0120]构建模块11在对热数据进行动态调整时,可在第三缓存中优先存放热数据,第三缓存中的冗余存储空间存放一部分冷数据,所述冷数据为近期使用频率低的数据;冷数据和热数据在第三缓存中的分布示意图,如图2所示;当热数据超出第三缓存的存储空间上限时,超出部分的热数据不进行存储;当第三缓存存储全部的热数据后有冗余存储空间时,冗余存储空间用于存储冷数据;在爆发式业务高峰期时,为保证第
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1