流式数据存储方法及装置制造方法及图纸

技术编号:15691052 阅读:298 留言:0更新日期:2017-06-24 03:56
本发明专利技术公开一种流式数据存储方法及装置,该方法包括:获取待存储的数据以及数据的原数据值的数据长度,确定存储文件及管理文件;在管理文件中查找满足数据长度要求的连续的至少一个标记为未占用状态的单位存储空间管理标识,将原数据值存储至所查找到的至少一个标记为未占用状态的单位存储空间管理标识对应的存储文件的至少一个单位存储空间,并获取原数据值在存储文件中的存储位置;将至少一个标记为未占用状态的单位存储空间管理标识进行修改;得到包含存储文件的标识、存储位置和数据长度的新数据值,根据数据的原数据键和新数据值,构建数据键值对形式的实例数据,将实例数据写入数据库中。该技术方案节省了存储空间,提高了数据处理效率。

Streaming data storage method and device

The invention discloses a streaming data storage method and device, the method includes: raw data acquisition data to be stored and the value of the data length of the data, determine the file storage and management of file management; look in the file data meet the requirement of continuous length of at least one labeled as a unit storage space management ID is not occupied the original data values to store at least find a marker for at least one unit of storage space for storing files not occupied state corresponding to the identity of the management unit of storage space, and access to raw data values in the storage of the storage location; at least one unit of storage space management identification marker the unoccupied state is modified; get a new data storage file contains the identification, location and data length value, according to the original data and the new data value key, Constructing instance data in the form of data key values, and writing instance data into the database. The technical scheme saves storage space and improves the efficiency of data processing.

【技术实现步骤摘要】
流式数据存储方法及装置
本专利技术涉及互联网
,具体涉及一种流式数据存储方法及装置。
技术介绍
在互联网的很多应用场景中,例如消息推送和网络直播等,均会使用到流式数据。流式数据的特点是每时每刻都有数据产生,而且数据到达时间也不是匀速的。现有技术中,大多是利用消息队列来解决对流式数据的存储问题。在实际应用场景中,所产生的流式数据的数据量可能是海量的。然而,消息队列在面临高并发大量数据时,将无法快速地完成数据处理。因此,现有的流式数据存储方案中存在着数据处理效率较低的问题。
技术实现思路
鉴于上述问题,提出了本专利技术以便提供一种克服上述问题或者至少部分地解决上述问题的流式数据存储方法及装置。根据本专利技术的一个方面,提供了一种流式数据存储方法,该方法包括:获取待存储的数据以及数据的原数据值的数据长度,确定用于存储原数据值的存储文件以及用于管理存储文件的管理文件;其中,管理文件存储有多个单位存储空间管理标识,每个单位存储空间管理标识用于标记存储文件的对应的单位存储空间的已占用状态或未占用状态;在管理文件中查找满足数据长度要求的连续的至少一个标记为未占用状态的单位存储空间管理标识,将原数据值存储至所查找到的至少一个标记为未占用状态的单位存储空间管理标识对应的存储文件的至少一个单位存储空间,并获取原数据值在存储文件中的存储位置;将至少一个标记为未占用状态的单位存储空间管理标识进行修改,修改后的单位存储空间管理标识被标记为已占用状态;得到包含存储文件的标识、存储位置和数据长度的新数据值,根据数据的原数据键和新数据值,构建数据键值对形式的实例数据,将实例数据写入数据库中。根据本专利技术的另一方面,提供了一种流式数据存储装置,该装置包括:数据获取模块,适于获取待存储的数据以及数据的原数据值的数据长度;确定模块,适于确定用于存储原数据值的存储文件以及用于管理存储文件的管理文件;其中,管理文件存储有多个单位存储空间管理标识,每个单位存储空间管理标识用于标记存储文件的对应的单位存储空间的已占用状态或未占用状态;查找模块,适于在管理文件中查找满足数据长度要求的连续的至少一个标记为未占用状态的单位存储空间管理标识;存储模块,适于将原数据值存储至所查找到的至少一个标记为未占用状态的单位存储空间管理标识对应的存储文件的至少一个单位存储空间;存储位置获取模块,适于获取原数据值在存储文件中的存储位置;修改模块,适于将至少一个标记为未占用状态的单位存储空间管理标识进行修改,修改后的单位存储空间管理标识被标记为已占用状态;生成模块,适于得到包含存储文件的标识、存储位置和数据长度的新数据值;写入模块,适于根据数据的原数据键和新数据值,构建数据键值对形式的实例数据,将实例数据写入数据库中。根据本专利技术提供的技术方案,获取待存储的数据以及数据的原数据值的数据长度,确定用于存储原数据值的存储文件以及用于管理存储文件的管理文件,接着在管理文件中查找满足数据长度要求的连续的至少一个标记为未占用状态的单位存储空间管理标识,将原数据值存储至所查找到的至少一个标记为未占用状态的单位存储空间管理标识对应的存储文件的至少一个单位存储空间,并获取原数据值在存储文件中的存储位置,将至少一个标记为未占用状态的单位存储空间管理标识进行修改,然后得到包含存储文件的标识、存储位置和数据长度的新数据值,根据数据的原数据键和新数据值,构建数据键值对形式的实例数据,将实例数据写入数据库中。根据本专利技术提供的技术方案,不仅利用管理文件有效地实现了对存储文件的空间使用情况的管理,而且能够方便地将待存储的数据的原数据值转化为所占空间较小的新数据值,从而节省了存储空间,优化了存储方式,提高了数据处理效率,提升面临高并发流式数据时的吞吐量。上述说明仅是本专利技术技术方案的概述,为了能够更清楚了解本专利技术的技术手段,而可依照说明书的内容予以实施,并且为了让本专利技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本专利技术的具体实施方式。附图说明通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本专利技术的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:图1示出了根据本专利技术一个实施例的流式数据存储方法的流程示意图;图2示出了根据本专利技术另一个实施例的流式数据存储方法的流程示意图;图3示出了根据本专利技术一个实施例的流式数据存储装置的结构框图;图4示出了根据本专利技术另一个实施例的流式数据存储装置的结构框图。具体实施方式下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。键值存储数据库,这是一种NoSQL(非关系型数据库)模型,其数据按照数据键值对的形式进行组织、索引和存储。KV存储非常适合不涉及过多数据关系业务关系的业务数据,同时能有效减少读写磁盘的次数,比SQL数据库存储拥有更好的读写性能。目前在生产环境,使用较多的K-V存储有Memcached,Redis,LevelDB等。在通信方面,主要使用专有的二进制协议,这样做的好处是协议解析的的性能比较高,不足的地方在于通用性差,需要为不同的语言实现专门的客户端,开发成本高,同时二进制协议的可调试性差,导致定位问题困难;在架构设计方面,上述存储的分布式基本都需要客户端来实现,Redis从3.0之后开始支持集群,但从生产环境中的测试情况来看,单点故障导致集群不可用的情况依然存在,且Redis的定位是缓存,对于持久化的支持程度有限。针对以上传统方法的不足,本专利技术的专利技术人提出了一种新的分布式数据存储系统架构,并基于此系统进一步提出了一种流式数据存储方法及装置。该分布式数据存储系统包括:客户端、Linux虚拟服务器集群、分布式组件和存储引擎,如下所介绍的流式数据存储方法具体为存储引擎中各个存储节点所采用的数据存储方案。在分布式数据存储系统中,将分布式组件与存储引擎分离,存储引擎只负责数据存储,以及对外提供http接口,以供分布式组件根据所提供的http接口向对应的存储节点写入数据,其中,存储引擎包括多个存储节点,各个存储节点是相互独立的,存储节点彼此之间不会直接进行通信,从而降低了存储引擎的复杂度。本系统中,分布式组件向存储引擎写入数据时,能够根据Key来进行负载均衡,将数据写入指定的存储节点。分布式组件作为客户端与存储引擎之间的反向代理,对客户端屏蔽负载均衡的细节,保证存储节点的http接口的透明性。当某一个存储节点宕机时,分布式组件会自动对数据写请求进行负载均衡,保证整个系统依然可用,从而解决KV存储的单点限制。另外,分布式组件中的每个节点都是独立的,当某一节点宕机时,服务器集群会自动将数据写请求发送至分布式组件中的其他可用的节点,从而解决了单点限制。当需要提高系统的吞吐率时,也只需要简单地增加节点即可实现。目前业界主流的存储对于replica的实现存在两种模式:模式一:1Primary-1ReplicaShard模式二:1Primary-NReplicaSha本文档来自技高网...
流式数据存储方法及装置

【技术保护点】
一种流式数据存储方法,包括:获取待存储的数据以及所述数据的原数据值的数据长度,确定用于存储所述原数据值的存储文件以及用于管理所述存储文件的管理文件;其中,所述管理文件存储有多个单位存储空间管理标识,每个单位存储空间管理标识用于标记所述存储文件的对应的单位存储空间的已占用状态或未占用状态;在所述管理文件中查找满足数据长度要求的连续的至少一个标记为未占用状态的单位存储空间管理标识,将所述原数据值存储至所查找到的至少一个标记为未占用状态的单位存储空间管理标识对应的所述存储文件的至少一个单位存储空间,并获取所述原数据值在所述存储文件中的存储位置;将所述至少一个标记为未占用状态的单位存储空间管理标识进行修改,修改后的单位存储空间管理标识被标记为已占用状态;得到包含所述存储文件的标识、所述存储位置和所述数据长度的新数据值,根据所述数据的原数据键和新数据值,构建数据键值对形式的实例数据,将所述实例数据写入数据库中。

【技术特征摘要】
1.一种流式数据存储方法,包括:获取待存储的数据以及所述数据的原数据值的数据长度,确定用于存储所述原数据值的存储文件以及用于管理所述存储文件的管理文件;其中,所述管理文件存储有多个单位存储空间管理标识,每个单位存储空间管理标识用于标记所述存储文件的对应的单位存储空间的已占用状态或未占用状态;在所述管理文件中查找满足数据长度要求的连续的至少一个标记为未占用状态的单位存储空间管理标识,将所述原数据值存储至所查找到的至少一个标记为未占用状态的单位存储空间管理标识对应的所述存储文件的至少一个单位存储空间,并获取所述原数据值在所述存储文件中的存储位置;将所述至少一个标记为未占用状态的单位存储空间管理标识进行修改,修改后的单位存储空间管理标识被标记为已占用状态;得到包含所述存储文件的标识、所述存储位置和所述数据长度的新数据值,根据所述数据的原数据键和新数据值,构建数据键值对形式的实例数据,将所述实例数据写入数据库中。2.根据权利要求1所述的方法,所述确定用于存储所述原数据值的存储文件以及用于管理所述存储文件的管理文件进一步包括:对所述数据的原数据键进行计算,得到原数据键对应的哈希值;根据计算得到的哈希值,确定用于存储所述原数据值的存储文件以及用于管理所述存储文件的管理文件。3.根据权利要求1所述的方法,在所述获取待存储的数据以及所述数据的原数据值的数据长度之前,所述方法还包括:预先创建存储文件和管理文件,并在系统内存中预先创建分别与存储文件和管理文件相映射的内存块。4.根据权利要求1所述的方法,所述存储文件包括:第一存储文件和与第一存储文件对应的第二存储文件;所述管理文件包括:第一管理文件和与第一管理文件对应的第二管理文件;其中,所述第一存储文件和与第一存储文件对应的所述第二存储文件具有相同的标识;所述第一管理文件和与第一管理文件对应的所述第二管理文件具有相同的标识;所述第一管理文件用于管理所述第一存储文件;所述第二管理文件用于管理所述第二存储文件。5.根据权利要求4所述的方法,所述在所述管理文件中查找满足数据长度要求的连续的至少一个标记为未占用状态的单位存储空间管理标识,将所述原数据值存储至所查找到的至少一个标记为未占用状态的单位存储空间管理标识对应的所述存储文件的至少一个单位存储空间,并获取所述原数据值在所述存储文件中的存储位置进一步包括:在所述第一管理文件中查找是否存在满足数据长度要求的连续的至少一个标记为未占用状态的单位存储空间管理标识;若在所述第一管理文件中查找到满足数据长度要求的连续的至少一个标记为未占用状态的单位存储空间管理标识,则将所述原数据值存储至所查找到的至少一个标记为未占用状态的单位存储空间管理标识对应的所述第一存储文件的至少...

【专利技术属性】
技术研发人员:徐锐波
申请(专利权)人:北京奇虎科技有限公司
类型:发明
国别省市:北京,11

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

1