CN107783728A - 数据存储方法、装置和设备 - Google Patents
数据存储方法、装置和设备 Download PDFInfo
- Publication number
- CN107783728A CN107783728A CN201610799925.6A CN201610799925A CN107783728A CN 107783728 A CN107783728 A CN 107783728A CN 201610799925 A CN201610799925 A CN 201610799925A CN 107783728 A CN107783728 A CN 107783728A
- Authority
- CN
- China
- Prior art keywords
- data
- storage
- memory space
- external memory
- inquiry response
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0607—Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例公开了一种数据存储方法、装置和设备。所述方法包括:在获取下层在线模块返回给上层在线模块的查询响应数据包时,计算与所述查询响应数据包对应的数据存储编号;如果根据所述数据存储编号确定所述查询响应数据包中的数据未被存储于外部存储空间中,则将所述查询响应数据包中的数据在所述外部存储空间中进行存储。本发明实施例的技术方案解决了现有的分布式存储***无法满足在不影响在线服务前提下,异步持久化存储在线***模块间通信的数据包这一具体应用场景使用需求,优化现有的数据存储技术,满足该具体应用场景下的数据异步持久化存储需求。
Description
技术领域
本发明实施例涉及信息处理技术,尤其涉及一种数据存储方法、装置和设备。
背景技术
移动互联网时代,人们对信息、服务的获取方式日益增多,对获取到的服务质量要求越来越高。这对信息和服务的提供者来说,产生了颠覆性的要求,需要在技术和商业发展中,产品和创新的周期越来越短,产品迭代更新速度越来越快。作为信息和服务的提供者,产品迭代过程中,经常会遇到一种需求:在不影响在线服务前提下,可以异步持久化存储在线***模块间通信的数据包,用于离线数据分析,策略迭代调研,异常问题追查等。这类信息数据的获取,通常伴随几个特征:高并发、大数据、异步高扇出数据存储等,而数据保存的完整性、量级大小将直接影响产品更新迭代效果,最终影响产品优化成果。
目前业界使用得最多的高性能分布式存储***主要是memcache(分布式的高速缓存***)和redis(键值对存储***)这两种。发明人在实现本发明的过程中发现,上述两种存储***存在如下技术问题:memcache没有考虑数据持久性且其分布式功能支持的不够;redis数据持久化支持的不友好、对大规模数据存储支持的不够且接入有开发成本。
发明内容
有鉴于此,本发明实施例提供了一种数据存储方法、装置和设备,以优化现有的数据存储技术,满足人们日益增长的个性化、便捷化的数据存储需求。
在第一方面,本发明实施例提供了一种数据存储方法,包括:
在获取下层在线模块返回给上层在线模块的查询响应数据包时,计算与所述查询响应数据包对应的数据存储编号;
如果根据所述数据存储编号确定所述查询响应数据包中的数据未被存储于外部存储空间中,则将所述查询响应数据包中的数据在所述外部存储空间中进行存储。
在第二方面,本发明实施例还提供了一种数据存储装置,包括:
数据存储编号计算模块,用于在获取下层在线模块返回给上层在线模块的查询响应数据包时,计算与所述查询响应数据包对应的数据存储编号;
数据包存储模块,用于如果根据所述数据存储编号确定所述查询响应数据包中的数据未被存储于外部存储空间中,则将所述查询响应数据包中的数据在所述外部存储空间中进行存储。
在第三方面,本发明实施例还提供了一种设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例所述的方法。
本发明实施例在不影响下层在线模块与上层在线模块之间的信息交互的基础上,在检测到下层在线模块返回给上层在线模块的查询响应数据包后,实时触发执行对该查询响应数据包的异步持久化存储机制,即:计算与所述查询响应数据包对应的数据存储编号;根据所述数据存储编号对所述查询响应数据包中的数据在外部存储空间中进行异步持久化存储,本发明实施例的技术方案解决了现有的分布式存储***无法满足在不影响在线服务前提下,异步持久化存储在线***模块间通信的数据包这一具体应用场景使用需求,优化现有的数据存储技术,满足该具体应用场景下的数据异步持久化存储需求。
附图说明
图1是本发明实施例一提供的一种数据存储方法的流程图;
图2是本发明实施例二提供的一种数据存储方法的流程图;
图3是本发明实施例三提供的一种数据存储方法的流程图;
图4是本发明实施例四提供的一种数据存储方法的流程图;
图5是本发明实施例的一种具体应用场景的***结构图;
图6是本发明实施例五提供的一种数据存储装置的结构图;
图7是本发明实施例六提供的一种电子设备的结构图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明具体实施例作进一步的详细描述。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。
另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
实施例一
图1为本发明实施例一提供的一种数据存储方法的流程图,本实施例的方法可以由数据存储装置来执行,该装置可通过硬件和/或软件的方式实现,并一般可集成于在线服务***中,与在线服务***中包括的上层在线模块以及下层在线模块配合使用。本实施例的方法具体包括:
110、在获取下层在线模块返回给上层在线模块的查询响应数据包时,计算与所述查询响应数据包对应的数据存储编号。
如背景技术所述,本实施例的方法主要应用于在线服务***中。其中,在线服务***一般由至少两个层级的在线模块构成。一般的,位于上层的在线模块会将查询请求发送给下层在线模块,而下层在线模块会将基于该查询请求的查询响应数据包返回给上层在线模块。
在一个具体的搜索引擎服务器所应用的在线服务***中,上层在线模块将用户输入的查询式“鲜花”发送给下层在线模块,下层在线模块基于该查询式进行全网搜索后,将查询结果封装于查询响应数据包中返回给该上层在线模块。
在本实施例中,考虑到在对一个在线服务***的离线数据分析,策略迭代调研以及异常问题追查时,主要分析的是下层在线模块返回给上层在线模块的查询响应数据包中的数据。因此,在本实施例中,主要给出了一种查询响应数据包中数据的异步持久化存储的方法。
在本实施例中,所述方法具体可以由配置于所述下层在线模块与所述上层在线模块之间的总控端执行;
其中,所述总控端可以使用套接字通信机制,透明的接入于所述下层在线模块与所述上层在线模块之间,且所述总控端的事件处理机制使用设定多线程异步事件框架构建。
也即:所述总控端在接收到下层在线模块以及上层在线模块之间的通信包后,会原样将该通信包转发至该通信包的期望目的地(上层在线模块或者下层在线模块)。只是在该总控端收到下层在线模块返回给上层在线模块的查询响应数据包时,在直接完成数据包转发的同时,还会实时触发异步持久化存储机制,对该查询响应数据包中的数据进行存储。
需要特别强调的是,在本发明各实施例中,所述的异步具体是指查询响应数据包中的数据的存储过程与将查询响应数据包从下层在线模块转发至上层在线模块的过程是异步的,所述持久化存储具体是指将查询响应数据包中的数据在外部存储空间中进行落盘存储。
相应的,在获取下层在线模块返回给上层在线模块的查询响应数据包时,首先计算与所述查询响应数据包对应的数据存储编号。
可以理解的是,针对相同的数据查询请求,其所对应的查询响应数据包中的数据应该相同。因此,可以为不同的数据查询请求,分配不同的外部存储空间,存储相应的查询响应数据包中的数据,也即:为不同类型的查询响应数据包设置不同的数据存储编号。这样设置的好处在于:可以仅仅在外部存储空间中与数据存储编号对应的位置上未存储数据时,才会相应存储对应的查询响应数据包中的数据,以减少数据的异步持久化过程对处理器的过多占用,提高数据存储效率。
在本实施例中,计算与所述查询响应数据包对应的数据存储编号可以包括:对所述查询响应数据包进行解析,并获取解析结果中的特征字段,例如:数据包中包括的数据查询请求或者查询响应信息等可以唯一识别一个查询响应数据包的关键数据。
120、如果根据所述数据存储编号确定所述查询响应数据包中的数据未被存储于外部存储空间中,则将所述查询响应数据包中的数据在所述外部存储空间中进行存储。
在本实施例中,所述总控端需要与外部存储空间进行通信,并首先确定所述查询响应数据包中的数据是否已经存储于所述外部存储空间中,如果未被存储,则会将所述查询响应数据包中的数据发送至所述外部存储空间中进行存储。
其中,所述外部存储空间可以仅包含一列,也即所有的数据都存储于一个列名之下,所述外部存储空间还可以包含至少两列子存储***,不同类型的数据存储于不同列的子存储***中,且不同列的子存储***具有不同的子存储***列名。
其中,考虑到redis对规模数据存储支持的不够,在数据规模很大的情况下,集群的扩展能力还是受限于单个节点的存储能力的这一缺陷。可选的,本实施例的方法使用的外部存储***为一个大规模的基于SSD(Solid State Drives,固态硬盘)的存储***,支持存储十亿级别列表数据,容量高于redis100倍左右。同时该存储***中的数据可设置多副本保存,加强存储数据的持久可用性、可靠性。发明人通过压力测试及实际使用分析得出:通过使用本实施例的技术方案,针对PB(petabyte,拍字节)级数据规模,访问延时20ms左右,吞吐(百台机器规模)为百万级别QPS(Query Per Second,每秒查询率)。
本发明实施例在不影响下层在线模块与上层在线模块之间的信息交互的基础上,在检测到下层在线模块返回给上层在线模块的查询响应数据包时,实时触发执行对该查询响应数据包的异步持久化存储机制,即:计算与所述查询响应数据包对应的数据存储编号;根据所述数据存储编号对所述查询响应数据包中的数据在外部存储空间中进行异步持久化存储,本发明实施例的技术方案解决了现有的分布式存储***无法满足在不影响在线服务前提下,异步持久化存储在线***模块间通信的数据包这一具体应用场景使用需求,优化现有的数据存储技术,满足该具体应用场景下的数据异步持久化存储需求。
在上述各实施例的基础上,所述总控端可以采用至少两个副本的部署方式进行配置;
所述外部存储空间可以对所述查询响应数据包中的数据进行至少两个副本的存储。
在本优选实施方式中,总控端在接收到下层在线模块返回的查询响应数据包时,会实时触发异步持久化存储机制,将该查询响应数据包中的数据写入外部存储空间中。总控端可以采用多副本部署方式,避免单点故障且达到支持更多线程,更高并发的目的,从而尽可能确保高并发、高扇出数据存储请求无写丢失。其中,如果部署8副本总控端,可以支持50扇入*105扇出,单条数据1.5KB(Kilobyte千字节)的500QPS数据持续并发读写,机器负载无压力。解决了本发明背景技术中提出的,实时无差异异步存储需求,相比redis或者memcache,很好的解决了数据异步持久化存储的问题。
实施例二
图2是本发明实施例二提供的一种数据存储方法的流程图。本实施例以上述实施例为基础进行优化,在本实施例中,将计算与所述查询响应数据包对应的数据存储编号优化为:根据所述查询响应数据包的数据包协议,对所述查询响应数据包进行数据解析;在数据包解析结果中,获取所述查询响应数据包中的特征字段;根据设定映射算法,计算与所述特征字段对应的数据存储编号。
相应的,本实施例的方法具体包括:
210、在获取下层在线模块返回给上层在线模块的查询响应数据包时,根据所述查询响应数据包的数据包协议,对所述查询响应数据包进行数据解析。
通过现有技术可知:redis接入有开发成本。虽然在redis中提供了很丰富的命令行参数,但在实际使用时,需要开发人员自行封装所需的命令行参数到自己的工作模块中,才能达到预期效果。
在本实施例中,基于现有技术的上述技术问题,提出了在所述总控端中封装有设定类型的数据包协议的解析规则,以使得接入无开发成本。
典型的,可以在总控端中封装常用的各类数据包协议的解析规则,例如:http协议、mcpack协议以及nshead协议等。
220、在数据包解析结果中,获取所述查询响应数据包中的特征字段。
在本实施例中,所述特征字段具体是指用于唯一识别一个查询响应数据包的字段,在一个具体例子中,如果所述查询响应数据包为与查询式“鲜花”对应的查询结果,则所述查询式“鲜花”也会被封装于所述查询响应数据包中。因此,可以获取该查询式“鲜花”作为所述特征字段。进而可以基于该查询式在外部存储空间内进行查找,确定是否存储有与“鲜花”对应的查询响应数据包中的数据。
230、根据设定映射算法,计算与所述特征字段对应的数据存储编号。
在本实施例中,不同的特征字段应该对应于外部存储空间中不同的存储位置。因此,可以通过设定映射算法,计算与特征字段对应的数据存储编号。
典型的,所述设定映射算法可以为哈希算法,也即,将特征字段与设定哈希函数进行运算,并将运算结果作为与该特征字段对应的数据存储编号。
例如,通过对“鲜花”进行设定映射后,生成的数据存储编号为“00002748”,可以理解的是,在选取映射算法时,要保证不同的特征字段,最终映射为不同的数据存储编号。
可选的,可以使用64位签名函数生成与所述特征字段对应的数据存储编号。
典型的,可以在总控端中封装计算所述数据存储编号的所述设定映射算法。
240、如果根据所述数据存储编号确定所述查询响应数据包中的数据未被存储于外部存储空间中,则将所述查询响应数据包中的数据在所述外部存储空间中进行存储。
本实施例的技术方案通过在所述总控端中封装设定类型的数据包协议的解析规则,以及计算所述数据存储编号的所述设定映射算法的方式,可以进而根据所述查询响应数据包的数据包协议,对所述查询响应数据包进行数据解析;在数据包解析结果中,获取所述查询响应数据包中的特征字段;根据设定映射算法,计算与所述特征字段对应的数据存储编号,实现了接入无开发成本的技术效果,所以总控端接入在线架构的成本非常低,不需要改动总控端(除非是总控端中没有支持的数据包协议),也不需要改动在线架构中的模块代码,且整个数据异步存储过程对在线架构性能几乎无影响,这个优点是目前redis以及memcache所不能及的。
实施例三
图3是本发明实施例三提供的一种数据存储方法的流程图。本实施例以上述实施例为基础进行优化,在本实施例中,将所述外部存储空间优化为基于固态硬盘的Key-Value(后文简称为KV)存储***,其中,不同的Key对应于不同的数据存储编号,不同的Value对应于不同查询响应数据包中的数据;
同时,将如果根据所述数据存储编号确定所述查询响应数据包中的数据未被存储于外部存储空间中,则将所述查询响应数据包中的数据在所述外部存储空间中进行存储,具体优化为:向所述外部存储空间发送数据查询请求,以确定所述外部存储空间是否存储与所述数据存储编号对应的Value;如果接收到所述外部存储空间返回的未存储响应,则判断所述查询响应数据包是否完整:若是,则向所述外部存储空间发送数据存储请求,并将所述外部存储空间返回的存储状态信息添加到存储日志中;若否,则将数据存储失败的记录添加到所述存储日志中;如果接收到所述外部存储空间返回的已存储响应,则直接将数据存储成功的记录添加到所述存储日志中。
相应的,本实施例的方法具体包括:
310、在获取下层在线模块返回给上层在线模块的查询响应数据包时,计算与所述查询响应数据包对应的数据存储编号。
320、向所述外部存储空间发送数据查询请求,以确定所述外部存储空间是否存储与所述数据存储编号对应的Value。
在本实施例中,将外部存储空间具体优化为基于固态硬盘的KV存储***。其中,在该KV存储***中,Key值与计算得到的数据存储编号相对应;Value值与查询响应数据包中的数据相对应。
330、确定接收到的所述外部存储空间返回的响应类型:如果接收到未存储响应,则执行340;如果接收到已存储响应,则执行350。
在本实施例中,并不是直接根据数据存储编号对查询响应数据包进行存储,而是首先确定在该KV存储***中是否存储与所述数据存储编号对应的Value:若是,则说明该查询响应数据包已经被存储过了,则可以不再进行存储;若否,则说明该查询响应数据包未被存储,则可以进而根据该查询响应数据包的数据完整度,对该查询响应数据包进行存储。
340、判断所述查询响应数据包是否完整:若是,则执行360;若否,则执行370。
350、直接将数据存储成功的记录添加到所述存储日志中,结束流程。
360、向所述外部存储空间发送数据存储请求,并将所述外部存储空间返回的存储状态信息添加到存储日志中,结束流程。
370、将数据存储失败的记录添加到所述存储日志中,结束流程。
本实施例的技术方案通过首先向所述外部存储空间发送数据查询请求;如果接收到所述外部存储空间返回的未存储响应,则继续判断所述查询响应数据包是否完整:若是,则向所述外部存储空间发送数据存储请求,并将所述外部存储空间返回的存储状态信息添加到存储日志中;若否,则将数据存储失败的记录添加到所述存储日志中;如果接收到所述外部存储空间返回的已存储响应,则直接将数据存储成功的记录添加到所述存储日志中的技术手段,实现了基于所述查询响应数据包的被存储情况以及数据包的完整情况,采取不同的处理机制进行处理的技术效果,在满足该具体应用场景下的数据异步持久化存储需求的前提下,进一步丰富了本发明实施例的适用场景。
在上述各实施例的基础上,所述总控端可以通过介质屏蔽层与所述外部存储空间进行数据交互;其中,在所述介质屏蔽层中定义了对所述外部存储空间的统一访问接口。这样设置的好处是:通过介质屏蔽层来屏蔽存储介质具体信息,用户仅需要通过统一格式的数据访问接口,与后端繁琐的配置、介质信息隔离开来,大大降低了用户的使用负担。
实施例四
图4是本发明实施例四提供的一种数据存储方法的流程图。本实施例以上述实施例为基础进行优化,在本实施例中,将所述Key-Value存储***进一步优化为:至少两列子存储***,其中,不同列的子存储***对应不同子存储***列名;
同时,将向所述外部存储空间发送数据查询请求具体优化为:根据与所述查询响应数据包对应的库种信息以及预存的库种标识与列名之间的映射关系,确定与所述查询响应数据包对应的子存储***列名;根据所述子存储***列名以及所述数据存储编号构造数据查询请求;将所述数据查询请求发送至所述外部存储空间,以使所述外部存储空间在与所述子存储***列名对应的子存储***中,对与所述数据存储编号对应的Value进行查询;
将向外部存储空间发送数据存储请求具体优化为:根据所述子存储***列名、所述数据存储编号以及所述查询响应数据包中的数据构造数据存储请求;向所述外部存储空间发送所述数据存储请求,以使所述外部存储空间在与所述子存储***列名对应的子存储***中,在与所述数据存储编号对应的Value位置上,存储所述查询响应数据包中的数据。
相应的,本实施例的方法具体包括:
410、在获取下层在线模块返回给上层在线模块的查询响应数据包时,计算与所述查询响应数据包对应的数据存储编号。
420、根据与所述查询响应数据包对应的库种信息以及预存的库种标识与列名之间的映射关系,确定与所述查询响应数据包对应的子存储***列名。
在本实施例中,将KV存储***进一步优化为:至少两列子存储***,其中,不同列的子存储***对应不同子存储***列名。
例如:一个KV存储***包括两列子存储***,且这两列子存储***具有各自的子存储***列名。子存储***1以及子存储***2。
一般来说,在上层在线模块发送给下层在线模块的查询数据包中会标明库种信息,指示下层在线模块需要在哪些库种中进行查询。其中,库种可以简单理解为类似于一个数据库,一般当后端数据量非常大时,会切分为多个不同的库种。
此外,在总控端中一般会预存有库种标识与列名之间的映射关系。因此,在获取与查询响应数据包对应的库种信息之后,进而可以根据上述映射关系,确定相应的子存储***列名。
430、根据所述子存储***列名以及所述数据存储编号构造数据查询请求。
440、将所述数据查询请求发送至所述外部存储空间。
450、确定接收到的所述外部存储空间返回的响应类型:如果接收到未存储响应,则执行460;如果接收到已存储响应,则执行470。
460、判断所述查询响应数据包是否完整:若是,则执行480;若否,则执行490。
470、直接将数据存储成功的记录添加到所述存储日志中,结束流程。
480、根据所述子存储***列名、所述数据存储编号以及所述查询响应数据包中的数据构造数据存储请求,执行4100。
490、将数据存储失败的记录添加到所述存储日志中,结束流程。
4100、向所述外部存储空间发送数据存储请求,并将所述外部存储空间返回的存储状态信息添加到存储日志中,结束流程。
本实施例的技术方案,将所述Key-Value存储***进一步优化为至少两列子存储***,并根据与所述查询响应数据包对应的库种信息以及预存的库种标识与列名之间的映射关系,首先确定与所述查询响应数据包对应的子存储***列名,进而在与该子存储***列名对应的子存储***中,完成查询响应数据包的异步持久化存储过程。这样设置的好处是:在进行异步持久化存储过程中无需遍历外部存储空间中的全部Key值,仅针对设定取值范围的Key值进行查询即可,大大减少了数据查找时间,提高了处理效率。
具体应用场景
在图5中示出了本发明实施例的一种具体应用场景,在本具体应用场景中,结合背景技术中的使用需求场景,提出了一种高性能的数据异步持久化存储方法。该方法旨在通过技术手段,实现一个相对在线***服务透明、支持大扇出、大规模数据高效异步持久化存储的存储***。
本具体应用场景中的数据存储方法主要由三个部分组成:总控端,介质屏蔽层以及异步持久化KV存储***。
其中,总控端通过套接字通信机制,作为一个透明模块接入在线***架构中。自动同步在线***模块间通信数据包;按数据包不同协议映射到不同的存储***,或同一存储***中不同列,并实时触发将通信数据包异步写入存储***。事件处理基于libevent的多线程异步事件框架;介质屏蔽层为用来屏蔽存储介质具体信息的一组通用访问接口;异步持久化KV存储***:一个高性能基于SSD的大规模KV存储***,改造于开源版本SSDB,使用Rocksdb作为存储引擎,同时具备同步功能。支持大数据量,高并发,多副本数据存储。
如图5所示,总控端作为独立的存在,嵌入到在线架构中,部署在上层在线模块A以及下层在线模块B之间。模块A发送给模块B的查询请求数据包,总控端会直接转发给模块B;模块B发送给模块A的查询响应信息包,总控端也会直接转发给模块A,同时判断KV存储***中是否已经存储与该查询响应数据包对应的扇出数据,将没有保存的扇出数据,写入到KV存储***中。
具体工作交互流程如下:
1、总控端接收到模块A1->模块B*(模块B1-模块B4中的一个或者多个)的查询请求,直接转发给模块B*,等待模块B*返回查询响应数据包。
2、总控端收到B*->A1的查询响应数据包后,执行下述两个具体操作:
1)将收到的查询响应数据包,直接转发给模块A1;
2)按照数据包协议及数据包中的特征字段,计算与该查询响应数据包对应的Key值,并发起对KV存储***的数据查询请求:将Key、需要写入的KV存储***列名一同发送到介质屏蔽层中。
3、介质屏蔽层根据接收到的KV存储***列名,选择对应的KV子存储***,向KV子存储***发送查询请求,将Key发送到对应的子KV存储***中,查询与Key对应的Value值是否已经存在,并向总控端返回第一状态信息。
4、总控端收到第一状态信息后:
1)如果收到Value存在的第一状态信息,则忽略保存请求,将数据存储成功的记录添加到日志中,流程结束;
2)如果收到Value不存在的第一状态信息,则判断数据包是否完整,如果不完整,则将数据存储失败的记录添加到日志中,流程结束;如果完整,则发送写入数据请求:将Key、B*返回的查询响应数据包和需要写入的KV子存储***列名一同发送到介质屏蔽层。
5、介质屏蔽层根据收到的KV存储***列名,选择对应的KV子存储***,向KV子存储***发送写入请求,将Key和B*查询响应数据包发送到对应的KV子存储***中。
6、KV子存储***按Key对B*查询响应数据包进行双副本(可配置多副本)落盘保存,并返回第二状态信息。
7、介质屏蔽层收到KV子存储***发送给总控端的第二状态信息,直接转发给总控端。
8、总控端将所述第二状态信息添加到日志中,流程结束。
发明人通过实验发现:将本具体应用场景的技术方案应用于现有的在线***后,访问延迟降低了50%,性能(QPS)提升了300%,极大地提升了策略迭代效率。
实施例五
图6是本发明实施例五提供的一种数据存储装置的结构图。如图6所示,所述装置包括:数据存储编号计算模块61以及数据包存储模块62,其中:
数据存储编号计算模块61,用于在获取下层在线模块返回给上层在线模块的查询响应数据包时,计算与所述查询响应数据包对应的数据存储编号。
数据包存储模块62,用于如果根据所述数据存储编号确定所述查询响应数据包中的数据未被存储于外部存储空间中,则将所述查询响应数据包中的数据在所述外部存储空间中进行存储。
本发明实施例在不影响下层在线模块与上层在线模块之间的信息交互的基础上,在检测到下层在线模块返回给上层在线模块的查询响应数据包时,实时触发执行对该查询响应数据包的异步持久化存储机制,即:计算与所述查询响应数据包对应的数据存储编号;根据所述数据存储编号对所述查询响应数据包中的数据在外部存储空间中进行异步持久化存储,本发明实施例的技术方案解决了现有的分布式存储***无法满足在不影响在线服务前提下,异步持久化存储在线***模块间通信的数据包这一具体应用场景使用需求,优化现有的数据存储技术,满足该具体应用场景下的数据异步持久化存储需求。
在上述各实施例的基础上,所述数据存储编号计算模块,具体可以用于:
根据所述查询响应数据包的数据包协议,对所述查询响应数据包进行数据解析;
在数据包解析结果中,获取所述查询响应数据包中的特征字段;
根据设定映射算法,计算与所述特征字段对应的数据存储编号。
在上述各实施例的基础上,所述外部存储空间为基于固态硬盘的Key-Value存储***,其中,不同的Key对应于不同的数据存储编号,不同的Value对应于不同查询响应数据包中的数据。
在上述各实施例的基础上,所述数据包存储模块,可以包括:
数据查询请求发送单元,用于向所述外部存储空间发送数据查询请求,以确定所述外部存储空间是否存储与所述数据存储编号对应的Value;
未存储响应处理单元,用于如果接收到所述外部存储空间返回的未存储响应,则判断所述查询响应数据包是否完整:若是,则向所述外部存储空间发送数据存储请求,并将所述外部存储空间返回的存储状态信息添加到存储日志中;若否,则将数据存储失败的记录添加到所述存储日志中;
已存储响应处理单元,用于如果接收到所述外部存储空间返回的已存储响应,则直接将数据存储成功的记录添加到所述存储日志中。
在上述各实施例的基础上,所述Key-Value存储***进一步可以包括:至少两列子存储***,其中,不同列的子存储***对应不同子存储***列名;
所述数据查询请求发送单元,具体可以用于:
根据与所述查询响应数据包对应的库种信息以及预存的库种标识与列名之间的映射关系,确定与所述查询响应数据包对应的子存储***列名;
根据所述子存储***列名以及所述数据存储编号构造数据查询请求;
将所述数据查询请求发送至所述外部存储空间,以使所述外部存储空间在与所述子存储***列名对应的子存储***中,对与所述数据存储编号对应的Value进行查询;
在上述各实施例的基础上,所述未存储响应处理单元,具体可以用于:
根据所述子存储***列名、所述数据存储编号以及所述查询响应数据包中的数据构造数据存储请求;
向所述外部存储空间发送所述数据存储请求,以使所述外部存储空间在与所述子存储***列名对应的子存储***中,在与所述数据存储编号对应的Value位置上,存储所述查询响应数据包中的数据。
在上述各实施例的基础上,所述装置由配置于所述下层在线模块与所述上层在线模块之间的总控端执行;
其中,所述总控端使用套接字通信机制,透明的接入于所述下层在线模块与所述上层在线模块之间,且所述总控端的事件处理机制使用设定多线程异步事件框架构建。
在上述各实施例的基础上,在所述总控端中封装有设定类型的数据包协议的解析规则,以及计算所述数据存储编号的所述设定映射算法。
在上述各实施例的基础上,所述总控端通过介质屏蔽层与所述外部存储空间进行数据交互;
其中,在所述介质屏蔽层中定义了对所述外部存储空间的统一访问接口。
在上述各实施例的基础上,所述总控端采用至少两个副本的部署方式进行配置;
所述外部存储空间对所述查询响应数据包中的数据进行至少两个副本的存储。
本发明实施例所提供的数据存储装置可用于执行本发明任意实施例提供的数据存储方法,具备相应的功能模块,实现相同的有益效果。
实施例六
如图7所示,为本申请实施例六提供的电子设备的硬件结构示意图,如图7所示,该电子设备包括:
一个或多个处理器710,图7中以一个处理器710为例;
存储器720;
所述电子设备还可以包括:输入装置730和输出装置740。
所述电子设备中的处理器710、存储器720、输入装置730和输出装置740可以通过总线或者其他方式连接,图7中以通过总线连接为例。
存储器720作为一种非暂态计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本申请实施例中的数据存储方法对应的程序指令/模块(例如,附图6所示的数据存储编号计算模块61和数据包存储模块62)。处理器710通过运行存储在存储器720中的软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例的数据存储方法。
存储器720可以包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需要的应用程序;存储数据区可存储根据电子设备的使用所创建的数据等。此外,存储器720可以包括高速随机存取存储器,还可以包括非暂态性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态性固态存储器件。在一些实施例中,存储器720可选包括相对于处理器710远程设置的存储器,这些远程存储器可以通过网络连接至终端设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置730可用于接收输入的数字或字符信息,以及产生与电子设备的用户设置以及功能控制有关的键信号输入。输出装置740可包括显示屏等显示设备。
也即:上述电子设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现时,进行如下操作:
在获取下层在线模块返回给上层在线模块的查询响应数据包时,计算与所述查询响应数据包对应的数据存储编号;
如果根据所述数据存储编号确定所述查询响应数据包中的数据未被存储于外部存储空间中,则将所述查询响应数据包中的数据在所述外部存储空间中进行存储。
进一步的,计算与所述查询响应数据包对应的数据存储编号包括:
根据所述查询响应数据包的数据包协议,对所述查询响应数据包进行数据解析;
在数据包解析结果中,获取所述查询响应数据包中的特征字段;
根据设定映射算法,计算与所述特征字段对应的数据存储编号。
进一步的,所述外部存储空间为基于固态硬盘的Key-Value键值对存储***,其中,不同的Key对应于不同的数据存储编号,不同的Value对应于不同查询响应数据包中的数据。
进一步的,如果根据所述数据存储编号确定所述查询响应数据包中的数据未被存储于外部存储空间中,则将所述查询响应数据包中的数据在所述外部存储空间中进行存储,包括:
向所述外部存储空间发送数据查询请求,以确定所述外部存储空间是否存储与所述数据存储编号对应的Value;
如果接收到所述外部存储空间返回的未存储响应,则判断所述查询响应数据包是否完整:若是,则向所述外部存储空间发送数据存储请求,并将所述外部存储空间返回的存储状态信息添加到存储日志中;若否,则将数据存储失败的记录添加到所述存储日志中;
如果接收到所述外部存储空间返回的已存储响应,则直接将数据存储成功的记录添加到所述存储日志中。
进一步的,所述Key-Value存储***进一步包括:至少两列子存储***,其中,不同列的子存储***对应不同子存储***列名;
向所述外部存储空间发送数据查询请求具体包括:
根据与所述查询响应数据包对应的库种信息以及预存的库种标识与列名之间的映射关系,确定与所述查询响应数据包对应的子存储***列名;
根据所述子存储***列名以及所述数据存储编号构造数据查询请求;
将所述查询请求发送至所述外部存储空间,以使所述外部存储空间在与所述子存储***列名对应的子存储***中,对与所述数据存储编号对应的Value进行查询。
进一步的,所述向外部存储空间发送数据存储请求具体包括:
根据所述子存储***列名、所述数据存储编号以及所述查询响应数据包中的数据构造数据存储请求;
向所述外部存储空间发送所述数据存储请求,以使所述外部存储空间在与所述子存储***列名对应的子存储***中,在与所述数据存储编号对应的Value位置上,存储所述查询响应数据包中的数据。
进一步的,所述方法由配置于所述下层在线模块与所述上层在线模块之间的总控端执行;
其中,所述总控端使用套接字通信机制,透明的接入于所述下层在线模块与所述上层在线模块之间,且所述总控端的事件处理机制使用设定多线程异步事件框架构建。
进一步的,在所述总控端中封装有设定类型的数据包协议的解析规则,以及计算所述数据存储编号的所述设定映射算法。
进一步的,所述总控端通过介质屏蔽层与所述外部存储空间进行数据交互;
其中,在所述介质屏蔽层中定义了对所述外部存储空间的统一访问接口。
进一步的,所述总控端采用至少两个副本的部署方式进行配置;
所述外部存储空间对所述查询响应数据包中的数据进行至少两个副本的存储。
显然,本领域技术人员应该明白,上述的本发明的各模块或各步骤可以通过如上所述的服务器实施。可选地,本发明实施例可以用计算机装置可执行的程序来实现,从而可以将它们存储在存储装置中由处理器来执行,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等;或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件的结合。
以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (21)
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.一种数据存储装置,其特征在于,包括:
数据存储编号计算模块,用于在获取下层在线模块返回给上层在线模块的查询响应数据包时,计算与所述查询响应数据包对应的数据存储编号;
数据包存储模块,用于如果根据所述数据存储编号确定所述查询响应数据包中的数据未被存储于外部存储空间中,则将所述查询响应数据包中的数据在所述外部存储空间中进行存储。
12.根据权利要求11所述的装置,其特征在于,所述数据存储编号计算模块,具体用于:
根据所述查询响应数据包的数据包协议,对所述查询响应数据包进行数据解析;
在数据包解析结果中,获取所述查询响应数据包中的特征字段;
根据设定映射算法,计算与所述特征字段对应的数据存储编号。
13.根据权利要求11所述的装置,其特征在于:
所述外部存储空间为基于固态硬盘的Key-Value键值对存储***,其中,不同的Key对应于不同的数据存储编号,不同的Value对应于不同查询响应数据包中的数据。
14.根据权利要求13所述的装置,其特征在于,所述数据包存储模块,包括:
数据查询请求发送单元,用于向所述外部存储空间发送数据查询请求,以确定所述外部存储空间是否存储与所述数据存储编号对应的Value;
未存储响应处理单元,用于如果接收到所述外部存储空间返回的未存储响应,则判断所述查询响应数据包是否完整:若是,则向所述外部存储空间发送数据存储请求,并将所述外部存储空间返回的存储状态信息添加到存储日志中;若否,则将数据存储失败的记录添加到所述存储日志中;
已存储响应处理单元,用于如果接收到所述外部存储空间返回的已存储响应,则直接将数据存储成功的记录添加到所述存储日志中。
15.根据权利要求14所述的装置,其特征在于,所述Key-Value存储***进一步包括:至少两列子存储***,其中,不同列的子存储***对应不同子存储***列名;
所述数据查询请求发送单元,具体用于:
根据与所述查询响应数据包对应的库种信息以及预存的库种标识与列名之间的映射关系,确定与所述查询响应数据包对应的子存储***列名;
根据所述子存储***列名以及所述数据存储编号构造数据查询请求;
将所述数据查询请求发送至所述外部存储空间,以使所述外部存储空间在与所述子存储***列名对应的子存储***中,对与所述数据存储编号对应的Value进行查询。
16.根据权利要求15所述的装置,其特征在于,所述未存储响应处理单元,具体用于:
根据所述子存储***列名、所述数据存储编号以及所述查询响应数据包中的数据构造数据存储请求;
向所述外部存储空间发送所述数据存储请求,以使所述外部存储空间在与所述子存储***列名对应的子存储***中,在与所述数据存储编号对应的Value位置上,存储所述查询响应数据包中的数据。
17.根据权利要求11-16任一项所述的装置,其特征在于:
所述装置由配置于所述下层在线模块与所述上层在线模块之间的总控端执行;
其中,所述总控端使用套接字通信机制,透明的接入于所述下层在线模块与所述上层在线模块之间,且所述总控端的事件处理机制使用设定多线程异步事件框架构建。
18.根据权利要求17所述的装置,其特征在于:
在所述总控端中封装有设定类型的数据包协议的解析规则,以及计算所述数据存储编号的所述设定映射算法。
19.根据权利要求17所述的装置,其特征在于:
所述总控端通过介质屏蔽层与所述外部存储空间进行数据交互;
其中,在所述介质屏蔽层中定义了对所述外部存储空间的统一访问接口。
20.根据权利要求17所述的装置,其特征在于:
所述总控端采用至少两个副本的部署方式进行配置;
所述外部存储空间对所述查询响应数据包中的数据进行至少两个副本的存储。
21.一种设备,其特征在于,所述设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-10中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610799925.6A CN107783728B (zh) | 2016-08-31 | 2016-08-31 | 数据存储方法、装置和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610799925.6A CN107783728B (zh) | 2016-08-31 | 2016-08-31 | 数据存储方法、装置和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107783728A true CN107783728A (zh) | 2018-03-09 |
CN107783728B CN107783728B (zh) | 2021-07-23 |
Family
ID=61451796
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610799925.6A Active CN107783728B (zh) | 2016-08-31 | 2016-08-31 | 数据存储方法、装置和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107783728B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109885533A (zh) * | 2019-02-22 | 2019-06-14 | 深圳市网心科技有限公司 | 一种基于dht网络的数据部署方法、节点设备、数据部署***及存储介质 |
CN111083143A (zh) * | 2019-12-17 | 2020-04-28 | 北京思维造物信息科技股份有限公司 | 请求响应方法、装置、设备和存储介质 |
CN111414356A (zh) * | 2019-01-07 | 2020-07-14 | 北京京东尚科信息技术有限公司 | 数据存储方法、装置、非关系数据库***及存储介质 |
CN112198818A (zh) * | 2019-07-08 | 2021-01-08 | 浙江宇视科技有限公司 | 步进式驱动结构的控制方法、装置、设备及存储介质 |
Citations (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1585379A (zh) * | 2004-05-25 | 2005-02-23 | 华中科技大学 | 一种数据包的快速解析方法 |
CN101098284A (zh) * | 2006-07-02 | 2008-01-02 | 冼剑光 | 实现网络无缝互连的方法 |
CN101326492A (zh) * | 2005-10-06 | 2008-12-17 | 雷德本德有限公司 | 用于更新包括压缩版本的内容的方法和*** |
CN101459654A (zh) * | 2007-12-14 | 2009-06-17 | 联想移动通信科技有限公司 | 一种多协议业务数据封装解析方法、接收端和发送端 |
CN103595730A (zh) * | 2013-11-28 | 2014-02-19 | 中国科学院信息工程研究所 | 一种密文云存储方法和*** |
JP2014225751A (ja) * | 2013-05-15 | 2014-12-04 | 三菱電機株式会社 | 冗長送信装置および冗長送信方法 |
CN104424186A (zh) * | 2013-08-19 | 2015-03-18 | 阿里巴巴集团控股有限公司 | 一种流计算应用中实现持久化的方法及装置 |
CN104572737A (zh) * | 2013-10-23 | 2015-04-29 | 阿里巴巴集团控股有限公司 | 数据存储辅助方法及*** |
CN104636218A (zh) * | 2013-11-15 | 2015-05-20 | 腾讯科技(深圳)有限公司 | 数据恢复方法及装置 |
CN105100146A (zh) * | 2014-05-07 | 2015-11-25 | 腾讯科技(深圳)有限公司 | 数据存储方法、装置及*** |
CN105339904A (zh) * | 2013-02-01 | 2016-02-17 | 辛博立科伊奥公司 | 用于存储和检索数据的方法和*** |
CN105594272A (zh) * | 2013-04-26 | 2016-05-18 | 歌拉利旺株式会社 | 通信设备和蓝牙通信*** |
CN105791240A (zh) * | 2014-12-24 | 2016-07-20 | 北京国际***控制有限公司 | 一种多通道多协议的通道管理方法及*** |
CN105808753A (zh) * | 2016-03-14 | 2016-07-27 | 北京师范大学 | 一种区域性数字资源*** |
US20160219078A1 (en) * | 2015-01-16 | 2016-07-28 | Sri International | Multimodal help agent for network administrator |
CN105868297A (zh) * | 2016-03-24 | 2016-08-17 | 国家基础地理信息中心 | 基于在线地图的遥感解译样本的调取方法、装置及*** |
CN105897587A (zh) * | 2016-03-31 | 2016-08-24 | 湖南大学 | 一种数据包分类方法 |
CN105912621A (zh) * | 2016-04-07 | 2016-08-31 | 上海上实龙创智慧能源科技股份有限公司 | 一种区域建筑能耗平台数据存储和查询方法 |
-
2016
- 2016-08-31 CN CN201610799925.6A patent/CN107783728B/zh active Active
Patent Citations (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1585379A (zh) * | 2004-05-25 | 2005-02-23 | 华中科技大学 | 一种数据包的快速解析方法 |
CN101326492A (zh) * | 2005-10-06 | 2008-12-17 | 雷德本德有限公司 | 用于更新包括压缩版本的内容的方法和*** |
CN101098284A (zh) * | 2006-07-02 | 2008-01-02 | 冼剑光 | 实现网络无缝互连的方法 |
CN101459654A (zh) * | 2007-12-14 | 2009-06-17 | 联想移动通信科技有限公司 | 一种多协议业务数据封装解析方法、接收端和发送端 |
CN105339904A (zh) * | 2013-02-01 | 2016-02-17 | 辛博立科伊奥公司 | 用于存储和检索数据的方法和*** |
CN105594272A (zh) * | 2013-04-26 | 2016-05-18 | 歌拉利旺株式会社 | 通信设备和蓝牙通信*** |
JP2014225751A (ja) * | 2013-05-15 | 2014-12-04 | 三菱電機株式会社 | 冗長送信装置および冗長送信方法 |
CN104424186A (zh) * | 2013-08-19 | 2015-03-18 | 阿里巴巴集团控股有限公司 | 一种流计算应用中实现持久化的方法及装置 |
CN104572737A (zh) * | 2013-10-23 | 2015-04-29 | 阿里巴巴集团控股有限公司 | 数据存储辅助方法及*** |
CN104636218A (zh) * | 2013-11-15 | 2015-05-20 | 腾讯科技(深圳)有限公司 | 数据恢复方法及装置 |
CN103595730A (zh) * | 2013-11-28 | 2014-02-19 | 中国科学院信息工程研究所 | 一种密文云存储方法和*** |
CN105100146A (zh) * | 2014-05-07 | 2015-11-25 | 腾讯科技(深圳)有限公司 | 数据存储方法、装置及*** |
CN105791240A (zh) * | 2014-12-24 | 2016-07-20 | 北京国际***控制有限公司 | 一种多通道多协议的通道管理方法及*** |
US20160219078A1 (en) * | 2015-01-16 | 2016-07-28 | Sri International | Multimodal help agent for network administrator |
CN105808753A (zh) * | 2016-03-14 | 2016-07-27 | 北京师范大学 | 一种区域性数字资源*** |
CN105868297A (zh) * | 2016-03-24 | 2016-08-17 | 国家基础地理信息中心 | 基于在线地图的遥感解译样本的调取方法、装置及*** |
CN105897587A (zh) * | 2016-03-31 | 2016-08-24 | 湖南大学 | 一种数据包分类方法 |
CN105912621A (zh) * | 2016-04-07 | 2016-08-31 | 上海上实龙创智慧能源科技股份有限公司 | 一种区域建筑能耗平台数据存储和查询方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111414356A (zh) * | 2019-01-07 | 2020-07-14 | 北京京东尚科信息技术有限公司 | 数据存储方法、装置、非关系数据库***及存储介质 |
CN109885533A (zh) * | 2019-02-22 | 2019-06-14 | 深圳市网心科技有限公司 | 一种基于dht网络的数据部署方法、节点设备、数据部署***及存储介质 |
CN112198818A (zh) * | 2019-07-08 | 2021-01-08 | 浙江宇视科技有限公司 | 步进式驱动结构的控制方法、装置、设备及存储介质 |
CN111083143A (zh) * | 2019-12-17 | 2020-04-28 | 北京思维造物信息科技股份有限公司 | 请求响应方法、装置、设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN107783728B (zh) | 2021-07-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108519967B (zh) | 图表可视化方法、装置、终端和存储介质 | |
US9996565B2 (en) | Managing an index of a table of a database | |
US11301446B1 (en) | System and method for interacting with a plurality of data sources | |
CN103248684B (zh) | 一种互联网中资源获取方法和装置 | |
CN104601696B (zh) | 服务处理方法、服务调用***、装置和*** | |
CN104252501B (zh) | 一种执行数据库操作命令的计算设备和方法 | |
CN103399942B (zh) | 一种支持SaaS多租户的数据引擎***及其工作方法 | |
WO2020087082A1 (en) | Trace and span sampling and analysis for instrumented software | |
WO2014143791A1 (en) | Efficiently performing operations on distinct data values | |
CN107783728A (zh) | 数据存储方法、装置和设备 | |
CN102426594A (zh) | 对数据库进行操作的方法和*** | |
CN103312624A (zh) | 一种消息队列服务***和方法 | |
CN104679884B (zh) | 数据库的数据分析方法、装置以及*** | |
CN110188149A (zh) | 一种数据仓库*** | |
US9373093B2 (en) | Gateway service manager for business object applications | |
CN110647318A (zh) | 一种有状态应用的实例创建方法、装置、设备及介质 | |
CN108733701A (zh) | 一种应用于在线教育的查询页面缓存控制方法 | |
CN114443680A (zh) | 数据库管理***、相关装置、方法和介质 | |
CN113438184A (zh) | 网卡的队列管理方法、装置及电子设备 | |
CN114116682A (zh) | 卫星遥测数据的迁移方法、装置、***、设备及介质 | |
CN107544751B (zh) | 一种远程访问磁盘的方法和装置 | |
CN107330031A (zh) | 一种数据存储的方法、装置及电子设备 | |
RU2721235C2 (ru) | Способ и система для маршрутизации и выполнения транзакций | |
CN103378989A (zh) | 一种获取性能测试数据的方法和装置 | |
US9898490B2 (en) | Systems and methods for supporting multiple database server versions on a database machine |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |