数据存储方法、装置和设备制造方法及图纸

技术编号:17441828 阅读:43 留言:0更新日期:2018-03-10 14:28
本发明专利技术实施例公开了一种数据存储方法、装置和设备。所述方法包括:在获取下层在线模块返回给上层在线模块的查询响应数据包时,计算与所述查询响应数据包对应的数据存储编号;如果根据所述数据存储编号确定所述查询响应数据包中的数据未被存储于外部存储空间中,则将所述查询响应数据包中的数据在所述外部存储空间中进行存储。本发明专利技术实施例的技术方案解决了现有的分布式存储系统无法满足在不影响在线服务前提下,异步持久化存储在线系统模块间通信的数据包这一具体应用场景使用需求,优化现有的数据存储技术,满足该具体应用场景下的数据异步持久化存储需求。

【技术实现步骤摘要】
数据存储方法、装置和设备
本专利技术实施例涉及信息处理技术,尤其涉及一种数据存储方法、装置和设备。
技术介绍
移动互联网时代,人们对信息、服务的获取方式日益增多,对获取到的服务质量要求越来越高。这对信息和服务的提供者来说,产生了颠覆性的要求,需要在技术和商业发展中,产品和创新的周期越来越短,产品迭代更新速度越来越快。作为信息和服务的提供者,产品迭代过程中,经常会遇到一种需求:在不影响在线服务前提下,可以异步持久化存储在线系统模块间通信的数据包,用于离线数据分析,策略迭代调研,异常问题追查等。这类信息数据的获取,通常伴随几个特征:高并发、大数据、异步高扇出数据存储等,而数据保存的完整性、量级大小将直接影响产品更新迭代效果,最终影响产品优化成果。目前业界使用得最多的高性能分布式存储系统主要是memcache(分布式的高速缓存系统)和redis(键值对存储系统)这两种。专利技术人在实现本专利技术的过程中发现,上述两种存储系统存在如下技术问题:memcache没有考虑数据持久性且其分布式功能支持的不够;redis数据持久化支持的不友好、对大规模数据存储支持的不够且接入有开发成本。
技术实现思路
有鉴于此,本专利技术实施例提供了一种数据存储方法、装置和设备,以优化现有的数据存储技术,满足人们日益增长的个性化、便捷化的数据存储需求。在第一方面,本专利技术实施例提供了一种数据存储方法,包括:在获取下层在线模块返回给上层在线模块的查询响应数据包时,计算与所述查询响应数据包对应的数据存储编号;如果根据所述数据存储编号确定所述查询响应数据包中的数据未被存储于外部存储空间中,则将所述查询响应数据包中的数据在所述外部存储空间中进行存储。在第二方面,本专利技术实施例还提供了一种数据存储装置,包括:数据存储编号计算模块,用于在获取下层在线模块返回给上层在线模块的查询响应数据包时,计算与所述查询响应数据包对应的数据存储编号;数据包存储模块,用于如果根据所述数据存储编号确定所述查询响应数据包中的数据未被存储于外部存储空间中,则将所述查询响应数据包中的数据在所述外部存储空间中进行存储。在第三方面,本专利技术实施例还提供了一种设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本专利技术实施例所述的方法。本专利技术实施例在不影响下层在线模块与上层在线模块之间的信息交互的基础上,在检测到下层在线模块返回给上层在线模块的查询响应数据包后,实时触发执行对该查询响应数据包的异步持久化存储机制,即:计算与所述查询响应数据包对应的数据存储编号;根据所述数据存储编号对所述查询响应数据包中的数据在外部存储空间中进行异步持久化存储,本专利技术实施例的技术方案解决了现有的分布式存储系统无法满足在不影响在线服务前提下,异步持久化存储在线系统模块间通信的数据包这一具体应用场景使用需求,优化现有的数据存储技术,满足该具体应用场景下的数据异步持久化存储需求。附图说明图1是本专利技术实施例一提供的一种数据存储方法的流程图;图2是本专利技术实施例二提供的一种数据存储方法的流程图;图3是本专利技术实施例三提供的一种数据存储方法的流程图;图4是本专利技术实施例四提供的一种数据存储方法的流程图;图5是本专利技术实施例的一种具体应用场景的系统结构图;图6是本专利技术实施例五提供的一种数据存储装置的结构图;图7是本专利技术实施例六提供的一种电子设备的结构图。具体实施方式为了使本专利技术的目的、技术方案和优点更加清楚,下面结合附图对本专利技术具体实施例作进一步的详细描述。可以理解的是,此处所描述的具体实施例仅仅用于解释本专利技术,而非对本专利技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本专利技术相关的部分而非全部内容。在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。实施例一图1为本专利技术实施例一提供的一种数据存储方法的流程图,本实施例的方法可以由数据存储装置来执行,该装置可通过硬件和/或软件的方式实现,并一般可集成于在线服务系统中,与在线服务系统中包括的上层在线模块以及下层在线模块配合使用。本实施例的方法具体包括:110、在获取下层在线模块返回给上层在线模块的查询响应数据包时,计算与所述查询响应数据包对应的数据存储编号。如
技术介绍
所述,本实施例的方法主要应用于在线服务系统中。其中,在线服务系统一般由至少两个层级的在线模块构成。一般的,位于上层的在线模块会将查询请求发送给下层在线模块,而下层在线模块会将基于该查询请求的查询响应数据包返回给上层在线模块。在一个具体的搜索引擎服务器所应用的在线服务系统中,上层在线模块将用户输入的查询式“鲜花”发送给下层在线模块,下层在线模块基于该查询式进行全网搜索后,将查询结果封装于查询响应数据包中返回给该上层在线模块。在本实施例中,考虑到在对一个在线服务系统的离线数据分析,策略迭代调研以及异常问题追查时,主要分析的是下层在线模块返回给上层在线模块的查询响应数据包中的数据。因此,在本实施例中,主要给出了一种查询响应数据包中数据的异步持久化存储的方法。在本实施例中,所述方法具体可以由配置于所述下层在线模块与所述上层在线模块之间的总控端执行;其中,所述总控端可以使用套接字通信机制,透明的接入于所述下层在线模块与所述上层在线模块之间,且所述总控端的事件处理机制使用设定多线程异步事件框架构建。也即:所述总控端在接收到下层在线模块以及上层在线模块之间的通信包后,会原样将该通信包转发至该通信包的期望目的地(上层在线模块或者下层在线模块)。只是在该总控端收到下层在线模块返回给上层在线模块的查询响应数据包时,在直接完成数据包转发的同时,还会实时触发异步持久化存储机制,对该查询响应数据包中的数据进行存储。需要特别强调的是,在本专利技术各实施例中,所述的异步具体是指查询响应数据包中的数据的存储过程与将查询响应数据包从下层在线模块转发至上层在线模块的过程是异步的,所述持久化存储具体是指将查询响应数据包中的数据在外部存储空间中进行落盘存储。相应的,在获取下层在线模块返回给上层在线模块的查询响应数据包时,首先计算与所述查询响应数据包对应的数据存储编号。可以理解的是,针对相同的数据查询请求,其所对应的查询响应数据包中的数据应该相同。因此,可以为不同的数据查询请求,分配不同的外部存储空间,存储相应的查询响应数据包中的数据,也即:为不同类型的查询响应数据包设置不同的数据存储编号。这样设置的好处在于:可以仅仅在外部存储空间中与数据存储编号对应的位置上未存储数据时,才会相应存储对应的查询响应数据包中的数据,以减少数据的异步持久化过程对处理器的过多占用,提高数据存储效率。在本实施例中,计算与所述查询响应数据包对应的数据存储编号可以包括:对所述查询响应数据包进行解析,并获取解析结果中的特征字段,例如:数据包中包括的数据查询请求或者查询响应信息等可以唯一识别一个本文档来自技高网
...
数据存储方法、装置和设备

【技术保护点】
一种数据存储方法,其特征在于,包括:在获取下层在线模块返回给上层在线模块的查询响应数据包时,计算与所述查询响应数据包对应的数据存储编号;如果根据所述数据存储编号确定所述查询响应数据包中的数据未被存储于外部存储空间中,则将所述查询响应数据包中的数据在所述外部存储空间中进行存储。

【技术特征摘要】
1.一种数据存储方法,其特征在于,包括:在获取下层在线模块返回给上层在线模块的查询响应数据包时,计算与所述查询响应数据包对应的数据存储编号;如果根据所述数据存储编号确定所述查询响应数据包中的数据未被存储于外部存储空间中,则将所述查询响应数据包中的数据在所述外部存储空间中进行存储。2.根据权利要求1所述的方法,其特征在于,计算与所述查询响应数据包对应的数据存储编号包括:根据所述查询响应数据包的数据包协议,对所述查询响应数据包进行数据解析;在数据包解析结果中,获取所述查询响应数据包中的特征字段;根据设定映射算法,计算与所述特征字段对应的数据存储编号。3.根据权利要求1所述的方法,其特征在于:所述外部存储空间为基于固态硬盘的Key-Value键值对存储系统,其中,不同的Key对应于不同的数据存储编号,不同的Value对应于不同查询响应数据包中的数据。4.根据权利要求3所述的方法,其特征在于,如果根据所述数据存储编号确定所述查询响应数据包中的数据未被存储于外部存储空间中,则将所述查询响应数据包中的数据在所述外部存储空间中进行存储,包括:向所述外部存储空间发送数据查询请求,以确定所述外部存储空间是否存储与所述数据存储编号对应的Value;如果接收到所述外部存储空间返回的未存储响应,则判断所述查询响应数据包是否完整:若是,则向所述外部存储空间发送数据存储请求,并将所述外部存储空间返回的存储状态信息添加到存储日志中;若否,则将数据存储失败的记录添加到所述存储日志中;如果接收到所述外部存储空间返回的已存储响应,则直接将数据存储成功的记录添加到所述存储日志中。5.根据权利要求4所述的方法,其特征在于,所述Key-Value存储系统进一步包括:至少两列子存储系统,其中,不同列的子存储系统对应不同子存储系统列名;向所述外部存储空间发送数据查询请求具体包括:根据与所述查询响应数据包对应的库种信息以及预存的库种标识与列名之间的映射关系,确定与所述查询响应数据包对应的子存储系统列名;根据所述子存储系统列名以及所述数据存储编号构造数据查询请求;将所述查询请求发送至所述外部存储空间,以使所述外部存储空间在与所述子存储系统列名对应的子存储系统中,对与所述数据存储编号对应的Value进行查询。6.根据权利要求5所述的方法,其特征在于,所述向外部存储空间发送数据存储请求具体包括:根据所述子存储系统列名、所述数据存储编号以及所述查询响应数据包中的数据构造数据存储请求;向所述外部存储空间发送所述数据存储请求,以使所述外部存储空间在与所述子存储系统列名对应的子存储系统中,在与所述数据存储编号对应的Value位置上,存储所述查询响应数据包中的数据。7.根据权利要求1-6任一项所述的方法,其特征在于:所述方法由配置于所述下层在线模块与所述上层在线模块之间的总控端执行;其中,所述总控端使用套接字通信机制,透明的接入于所述下层在线模块与所述上层在线模块之间,且所述总控端的事件处理机制使用设定多线程异步事件框架构建。8.根据权利要求7所述的方法,其特征在于:在所述总控端中封装有设定类型的数据包协议的解析规则,以及计算所述数据存储编号的所述设定映射算法。9.根据权利要求7所述的方法,其特征在于:所述总控端通过介质屏蔽层与所述外部存储空间进行数据交互;其中,在所述介质屏蔽层中定义了对所述外部存储空间的统一访问接口。10.根据权利要求7所述的方法,其特征在于:所述总控端采用至少两个副本的部署方式进行配置;所述外部存储空间对所述查询响应数据包中的数据进行至少两个副本的存储。11.一种数据存储装置,其特征在于,包括:数据存储编号计算模块,用于在获取下层在线模块返回给上层在线模块的查...

【专利技术属性】
技术研发人员:张丽黄川覃安齐志宏潘晓雷
申请(专利权)人:百度在线网络技术北京有限公司
类型:发明
国别省市:北京,11

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

1