CN108243256A - 一种数据存储方法、编码设备及解码设备 - Google Patents

一种数据存储方法、编码设备及解码设备 Download PDF

Info

Publication number
CN108243256A
CN108243256A CN201810054884.7A CN201810054884A CN108243256A CN 108243256 A CN108243256 A CN 108243256A CN 201810054884 A CN201810054884 A CN 201810054884A CN 108243256 A CN108243256 A CN 108243256A
Authority
CN
China
Prior art keywords
data
flow data
flow
block
data block
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
Application number
CN201810054884.7A
Other languages
English (en)
Other versions
CN108243256B (zh
Inventor
陆兆新
林鹏
陈迅
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Aijieyun Technology Co ltd
Original Assignee
Wangsu Science and Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Wangsu Science and Technology Co Ltd filed Critical Wangsu Science and Technology Co Ltd
Priority to CN201810054884.7A priority Critical patent/CN108243256B/zh
Priority to EP18901556.3A priority patent/EP3588914A4/en
Priority to US16/099,796 priority patent/US20210227007A1/en
Priority to PCT/CN2018/076411 priority patent/WO2019140732A1/zh
Publication of CN108243256A publication Critical patent/CN108243256A/zh
Application granted granted Critical
Publication of CN108243256B publication Critical patent/CN108243256B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • G06F3/0641De-duplication techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/906Clustering; Classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • G06F9/30196Instruction operation extension or modification using decoder, e.g. decoder per instruction set, adaptable or programmable decoders
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/04Real-time or near real-time messaging, e.g. instant messaging [IM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/21Monitoring or handling of messages
    • H04L51/212Monitoring or handling of messages using filtering or selective blocking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/65Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • H04L67/5682Policies or rules for updating, deleting or replacing the stored data

Abstract

本发明公开了一种数据存储方法、编码设备及解码设备,其中,所述方法包括:获取待发送的数据,并将所述数据划分为多个数据块;从所述多个数据块中确定未在预设数据库中存储的目标数据块;将所述目标数据块按照流信息归类为至少一条流数据,并将所述流数据挂载至待确认队列中;对所述流数据进行编码,并向解码设备发送编码后的流数据;编码设备接收所述解码设备针对所述编码后的流数据发来的确认信息,并将所述待确认队列中所述确认信息对应的数据块存储至所述预设数据库中。本申请提供的技术方案,能够有效减少数据碎块的产生使得内存耗费资源可控、提高小数据流识别能力、以及避免同步产生以提高数据传输的效率。

Description

一种数据存储方法、编码设备及解码设备
技术领域
本发明涉及互联网技术领域,特别涉及一种数据存储方法、编码设备及解码设备。
背景技术
随着互联网的不断发展,互联网中的数据量也与日俱增。当前,在互联网中传输的数据有很多都是重复数据。例如邮件群发和即时通信软件中的消息群发等,都是将相同的数据拷贝很多份再进行传输,这样势必会浪费宝贵的带宽资源。
为了解决重复数据的传输问题,当前可以通过重复数据删除技术来减少网络中需要传输的数据量。具体地,重复数据删除技术可以在数据发送端和数据接收端均部署用于存放数据的数据库,数据库中的数据可以通过数据碎片的形式进行存储,并且每个数据碎片可以具备唯一的指针。当数据发送端需要向数据接收端发送数据时,首先会将待发送的数据划分为多个数据碎片,然后,如果这些数据碎片中已经有部分数据碎片存储于数据库中,那么便会将这部分数据碎片利用指针替代。这样,待发送的数据最终可以被处理为指针和数据碎片的组合,从而可以降低需要发送的数据量。数据接收端接收到指针和数据碎片的组合后,会从本地的数据库中查询指针对应的数据碎片,从而将指针恢复为数据碎片。
上述的通过指针恢复数据碎片的前提,是数据发送端和数据接收端的数据库保持同步。然而,在实际传输过程中,数据发生断流或者传输过程重启等问题会使得数据发送端和数据接收端的数据库无法保持数据同步,那么数据接收端很可能无法从本地的数据库中查询到指针对应的数据碎片,从而无法接收到完整的数据。此时,数据接收端会要求与数据发送端进行数据同步,这样会严重影响数据的传输性能。
发明内容
本申请的目的在于提供一种数据存储方法、编码设备及解码设备,能够有效减少数据碎块的产生使得内存资源耗费可控、提高小数据流识别能力、以及避免同步产生以提高数据传输的效率。
为实现上述目的,本申请一方面提供一种数据存储方法,所述方法包括:获取待发送的数据,并将所述数据划分为多个数据块;从所述多个数据块中确定未在预设数据库中存储的目标数据块;将所述目标数据块按照流信息归类为至少一条流数据,并将所述流数据挂载至待确认队列中;对所述流数据进行编码,并向解码设备发送编码后的流数据;接收所述解码设备针对所述编码后的流数据发来的确认信息,并将所述待确认队列中所述确认信息对应的数据块存储至所述预设数据库中。
为实现上述目的,本申请另一方面还提供一种编码设备,所述编码设备包括存储器和处理器,所述存储器中存储计算机程序,所述计算机程序被所述处理器执行时,实现以下步骤:获取待发送的数据,并将所述数据划分为多个数据块;从所述多个数据块中确定未在预设数据库中存储的目标数据块;将所述目标数据块按照流信息归类为至少一条流数据,并将所述流数据挂载至待确认队列中;对所述流数据进行编码,并向解码设备发送编码后的流数据;接收所述解码设备针对所述编码后的流数据发来的确认信息,并将所述待确认队列中所述确认信息对应的数据块存储至所述预设数据库中。
为实现上述目的,本申请另一方面还提供一种数据存储方法,所述方法包括:接收编码设备发来的编码数据,并将所述编码数据解码为解码数据,所述解码数据中包括多个数据块;将所述多个数据块按照流信息归类为至少一条流数据,并确定数据量大于或者等于指定阈值的目标流数据;在预设数据库中存储所述目标流数据,并向所述编码设备发送确认信息,所述确认信息中包含所述目标流数据中的数据块的标识,以使得所述编码设备存储所述目标流数据中的数据块。
为实现上述目的,本申请另一方面还提供一种解码设备,所述解码设备包括存储器和处理器,所述存储器中存储计算机程序,所述计算机程序被所述处理器执行时,实现以下步骤:接收编码设备发来的编码数据,并将所述编码数据解码为解码数据,所述解码数据中包括多个数据块;将所述多个数据块按照流信息归类为至少一条流数据,并确定数据量大于或者等于指定阈值的目标流数据;在预设数据库中存储所述目标流数据,并向所述编码设备发送确认信息,所述确认信息中包含所述目标流数据中的数据块的标识,以使得所述编码设备存储所述目标流数据中的数据块。
由上可见,本申请提供的技术方案,当编码设备需要向解码设备发送数据时,首先可以将数据基于内容进行分块处理,并可以确定出没有在预设数据库中存储的目标数据块。针对目标数据块,编码设备并不会直接将其存储于预设数据库中,而是将其按照流信息归类为流数据,并将流数据挂载于待确认队列中。然后,可以将流数据编码后发送给解码设备。解码设备对接收到的数据进行解码之后,按照流信息将解码得到的数据块归类为流数据。如果流数据的数据量较大,解码设备便可以将流数据存储于本地的数据库中,然后,可以向编码设备发送确认信息,该确认信息中可以包含上述存储的流数据中数据块的标识。这样,当编码设备接收到该确认信息后,便可以将待确认队列中识别出确认信息对应的数据块,从而将确认信息对应的数据块在自身的数据库中进行存储。由此可见,编码设备作为数据发送端,只有在解码设备(作为数据接收端)将数据块存储之后,才会相应地进行数据块的存储流程。这样,就算发生数据传输故障,导致编码设备无法接收到确认信息,那么造成的影响也不过是解码设备的数据库中的数据比编码设备的数据库中的数据更加完备,那么针对编码设备发来的用于表征已经存储的数据块的标签,解码设备必然能够从本地的数据库中查询到对应的数据块,并进行数据块的恢复。因此,本申请提供的技术方案,即时编码设备的数据库和解码设备的数据库中数据不同步,也不会影响解码设备对于数据的接收过程,从而提高了数据传输的效率。此外,当需要对数据量较小的目标流数据进行相似性匹配时,为了避免目标数据流特征索引不足的问题,可以确定所述目标流数据所在的虚拟流数据,并基于所述虚拟流数据的特征索引对所述目标流数据进行相似性匹配。这样,在对小数据流做新流相似性匹配的时候,用到的是流簇中所有的特征索引,这样就解决了特征索引不足的问题。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例中数据存储方法应用的系统示意图;
图2是本发明实施例的编码设备中数据存储方法的流程图;
图3是本发明实施例中数据分块的示意图;
图4是本发明实施例中数据存储的示意图;
图5是本发明实施例中编码设备的结构示意图;
图6是本发明实施例的解码设备中数据存储方法的流程图;
图7是本发明实施例中解码设备的结构示意图;
图8是本发明实施例中计算机终端的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
实施例一
本申请提供一种数据存储方法,所述方法可以应用于如图1所示的系统架构中。在图1中,服务器可以作为数据源,客户端可以作为向服务器请求加载数据的一方。其中,服务器在接收到客户端发来的数据加载请求后,可以将该数据加载请求对应的数据通过编码设备发送给客户端一侧的解码设备。本申请提供的技术方案便可以应用于上述的编码设备以及解码设备中。
本实施方式提供的数据存储方法,执行主体可以是编码设备。请参阅图2,所述方法可以包括以下步骤。
S11:获取待发送的数据,并将所述数据划分为多个数据块。
在本实施方式中,编码设备可以从服务器处获取到待发送的数据,然后可以基于内容对所述数据进行分块处理。在实际应用中,可以采用rabin指纹算法对所述数据进行分块处理。具体地,请参阅图3,所述数据可以由多个字符构成,这些字符可以是8位的二进制数。在对该数据进行分块时,可以采取一个数据滑动窗口,按照固定步长,从数据的开头向尾部滑动,并逐一计算数据滑动窗口内的数据块的rabin指纹,如果计算出的指纹值与预设的指纹值相同,那么便可以将当前数据滑动窗口的起始位置作为数据块的分割位置。例如,在图3中,数据滑动窗口每次可以向右滑动一个字符的长度,其中,k窗口中数据块的指纹k与预设指纹值相同,那么便可以将k窗口的终止位置(图中虚线位置)作为划分数据块的分隔位置,最终,当数据滑动窗口移动至数据的末端时,分块处理的过程便可以结束。这样,通过分块处理,可以将所述数据划分为多个数据块。
在本实施方式中,在将所述数据划分为多个数据块之后,所述编码设备还可以计算各个数据块的哈希值,计算出的哈希值可以唯一地表征对应的数据块。
S12:从所述多个数据块中确定未在预设数据库中存储的目标数据块。
在本实施方式中,编码设备可以在预设数据库中存储向外发出的数据,以使得后续向外发送数据时,判断需要发送的数据是否为预设数据库中已经存储的重复数据。这样,编码设备将待发送的数据进行分块处理,得到多个数据块后,便可以将所述多个数据块与所述预设数据库中的数据块进行匹配,以从所述多个数据块中确定未在预设数据库中存储的目标数据块以及已在所述预设数据库中存储的已存储数据块。具体地,预设数据库中的数据块可以具备各自的哈希值,而所述多个数据块中的各个数据块也可以具备各自的哈希值,那么通过对比两者的哈希值,便可以确定多个数据块中的目标数据块以及已存储数据块。
在本实施方式中,所述预设数据库中存储的数据块可以与数据块标签相关联,所述数据块标签可以唯一地表示关联的数据块,并且相较于数据块的数据量,数据块标签的数据量会小得多。在实际应用中,所述数据块标签可以是数据块的哈希值,也可以是编码设备分配给数据块的具备唯一性的字符串,本申请对数据块标签的表现形式并不作限定,只要能够唯一地表征数据块即可。
在本实施方式中,在从所述多个数据库中确定了未存储的目标数据块以及已存储的已存储数据块后,可以利用与所述已存储数据块相关联的数据块标签替代所述多个数据块中的已存储数据块,从而可以将所述多个数据块转换为目标数据块和数据块标签的组合,这样便可以减小需要发送的数据量。
S13:将所述目标数据块按照流信息归类为至少一条流数据,并将所述流数据挂载至待确认队列中。
在本实施方式中,针对未在预设数据库中存储的目标数据块,编码设备可以将所述目标数据块按照流信息归类为至少一条流数据。其中,所述流信息可以是目标数据块中包含的五元组信息,所述五元组信息可以包括发送所述数据块的源IP地址、接收所述数据块的目的IP地址、发送所述数据块的源端口、接收所述数据块的目的端口以及所述数据块所采用的传输协议。这样,编码设备可以将具备相同五元组信息的数据块归类为一条流数据。
在本实施方式中,编码设备在将目标数据块归类为流数据后,并不会直接在预设数据库中存储这些流数据,而是将所述流数据挂载至待确认队列中。当编码设备接收到解码设备发来的确认信息之后,才会将待确认队列中相应的流数据存储至预设数据库中。
在一个实施方式中,可以统计各个流数据挂载的总时长,当挂载的总时长达到预设时长阈值时,流数据便视为挂载超时。为了避免待确认队列中挂载的流数据过多,若所述流数据在所述待确认队列中挂载超时,可以直接将超时的流数据丢弃,以节省待确认队列中的空间。
S14:对所述流数据进行编码,并向解码设备发送编码后的流数据。
在本实施方式中,在将目标数据块归类为流数据之后,编码设备便可以按照指定的编码算法对所述流数据进行编码。在实际应用中,待发送的数据可以包括替代已存储数据块的数据块标签以及由未存储的目标数据块归类得到的流数据,这样,在编码时,也可以同时对替代所述已存储数据块的数据块标签进行编码。在将两者分别编码后,编码设备便可以将编码后的流数据以及编码后的数据块标签发送至广域网的链路中,以向客户端一侧的解码设备发送编码后的流数据以及编码后的数据块标签。
在本实施方式中,所述解码设备接收到编码设备发来的编码数据后,可以将所述编码数据解码为解码数据,该解码数据中可以包括多个数据块以及用于表征已在所述编码设备中存储的数据块的标签。由于解码设备在接收所述编码数据时,可能会交错接收多个流数据中的不同数据块,因此解码设备解码得到的解码数据中,多个数据块也可能并不是按照流数据排列的,这样,解码设备可以将所述多个数据块按照流信息归类为至少一条流数据。其中,所述流信息可以是上述的五元组信息,编码设备可以将具备相同五元组信息的数据块归类至同一条流数据中。
在本实施方式中,如果将数据量较小的流数据存储至解码设备的预设数据库中,那么可能使得解码设备的预设数据库中数据碎片较多,导致解码设备后续在进行数据索引时需要耗费较多的时间。为了避免这种情况发生,解码设备可以确定数据量大于或者等于指定阈值的目标流数据。所述指定阈值可以是预先设置的常数,所述指定阈值可以用来判定流数据的数据量是否过小。当流数据的数据量大于或者等于所述指定阈值,便认为该流数据达到可以存储的标准。此时,解码设备可以在自身的预设数据库中存储数据量大于或者等于所述指定阈值的目标流数据。请参阅图4,解码设备的预设数据库可以是解码设备的磁盘,在所述磁盘中,目标流数据可以作为一个存储单元进行存储。如图4所示,所述存储单元可以定义为一个continer,在该存储单元中,可以包括目标流数据中包含的数据块以及所述目标流数据的索引信息。所述索引信息可以用于表征各个数据块在存储单元中的起始偏移量以及各个数据块的数据量大小。在将目标流数据按照存储单元存储至磁盘中后,还可以提取所述目标流数据的特征索引,并将所述特征索引写入内存中,并定期持久化存储到磁盘上。后续如果需要在预设数据库中匹配相似或者相同的流数据,便可以通过特征索引进行初步的判断。具体地,所述特征索引可以是基于目标流数据的固有特征提取的。所述固有特征例如可以包括阻塞窗口大小、乱序片段等。在提取特征索引时,可以预先从固有特征中指定一部分特征,然后识别目标流数据的各个数据块分别对应哪个特征,最终可以按照数据块在目标流数据中的排列顺序,将识别出的特征进行排序,从而得到目标流特征的特征索引。举例来说,当前指定了特征1至特征3,所述目标流数据中包括5个数据块,这5个数据块分别对应着特征2、特征1、特征3、特征1、特征2,那么(特征2,特征1,特征3,特征1,特征2)构成的序列便可以作为目标数据流的特征索引。在图4中,各个特征索引中可以包括键(key)以及与键对应的值(cn1、cn2、cnn等)。存储单元的结构中可以包括元数据(metadata)、由键(key)对应的偏移量(offset)和数据大小(size)以及具体存储的数据(data rec)。
在本实施方式中,针对解码数据中包含的数据块的标签,所述解码设备可以在自身的预设数据库中查询是否具备所述标签对应的数据块,若存在,便可以将所述标签还原为对应的数据块;若不存在,表示此时解码设备的数据库中缺失了一部分数据块,此时,解码设备可以向所述编码设备发送同步请求,以同步所述编码设备中存储的数据块。
在本实施方式中,解码设备在将所述目标流数据在自身的数据库中存储并将特征索引提取到内存中后,便可以向编码设备发送确认信息,所述确认信息中包含所述目标流数据中的数据块的标识,以使得所述编码设备可以存储所述目标流数据中的数据块。其中,所述目标流数据中数据块的标识可以是计算出的数据块的哈希值。
S15:接收所述解码设备针对所述编码后的流数据发来的确认信息,并将所述待确认队列中所述确认信息对应的数据块存储至所述预设数据库中。
在本实施方式中,编码设备在接收到所述解码设备发来的确认信息后,可以在所述待确认队列中确定所述确认信息对应的数据块,并将所述确认信息对应的数据块存储至所述预设数据库中。具体地,所述确认信息中可以包括数据块的标识,该标识例如可以是数据块的哈希值。那么编码设备可以在待确认队列中通过数据块的标识查询到对应的数据块,并将查询到的数据块进行存储。
在实际应用中,编码设备自身的数据库也可以是如图4所示的磁盘,编码设备也可以将数据块按照流数据存储至磁盘中。所述确认信息对应的数据块所在的流数据可以作为一个存储单元存储于编码设备的磁盘中。所述存储单元可以定义为一个continer,在该存储单元中,可以包括流数据中包含的数据块以及所述流数据的索引信息。所述索引信息可以用于表征各个数据块在存储单元中的起始偏移量以及各个数据块的数据量大小。在将流数据按照存储单元存储至磁盘中后,编码设备同样可以提取所述流数据的特征索引,并将所述特征索引写入内存中,并定期持久化存储到磁盘上。
在本申请一个实施方式中,解码设备在得到解码数据,并将其中包含的数据块归类为流数据后,如果流数据的数据量小于上述的指定阈值,解码设备可以将数据量小于所述指定阈值的流数据挂载于待聚合队列中。处于待聚合队列中的流数据,只有在确认多个流数据之间存在关联性时,解码设备才会将这多个流数据进行聚合。具体地,在本实施方式中可以由应用代理模块或者其他关联性分析模块来确定存在关联性的流数据。所述应用代理模块例如可以是HTTP(HyperText Transfer Protocol,超文本传输协议)、MAPI(Messaging Application Programming Interface,邮件应用程序接口)、CIFS(CommonInternet File System,通用英特网文件系统)等应用代理模块,这些应用代理模块可以确认处于同一次会话中的多个不同的流数据,从而可以确定存在关联性的流数据。解码设备在接收到应用代理模块发来的关联信息后,可以将所述待聚合队列中所述关联信息对应的多条流数据聚合为一条虚拟流数据。所述关联信息中,可以包括存在关联性的多条流数据的五元组信息,根据关联信息中包含的各个五元组信息,解码设备从而可以在待聚合队列中确定出对应的流数据。尽管这些流数据存在关联性,但由于它们的五元组信息不同,因此只能按照流数据的形式聚合为一条虚拟流数据,在该虚拟流数据中,还是会包括多组五元组信息。在聚合得到所述虚拟流数据后,解码设备便可以在自身的预设数据库中存储所述虚拟流数据,并可以提取所述虚拟流数据的特征索引,并将所述特征索引写入内存中,并定期持久化存储到磁盘上。
在本实施方式中,当解码设备将多条流数据聚合为一条虚拟流数据,并存储了该虚拟流数据后,解码设备便可以在即将发送给编码设备的确认信息中添加聚合指令,所述聚合指令中可以包括需要聚合的多条流数据的五元组信息,或者可以包括需要聚合的多条流数据中各个数据块的标识,这样,所述聚合指令便可以携带已经存储的虚拟流数据中的各条流数据的标识。编码设备在从确认信息中提取出聚合指令后,可以在待确认队列中查找出所述目标流数据,然后便可以将所述目标流数据聚合为一条虚拟流数据,并将所述虚拟流数据的特征索引抽取至内存中。
在本实施方式中,当需要对数据量较小的目标流数据进行相似性匹配时,为了避免目标数据流特征索引不足的问题,可以确定所述目标流数据所在的虚拟流数据,并基于所述虚拟流数据的特征索引对所述目标流数据进行相似性匹配。这样,在对小数据流做新流相似性匹配的时候,用到的是流簇中所有的特征索引,这样就解决了特征索引不足的问题。
实施例二
本申请还提供一种编码设备,请参阅图5,所述编码设备包括存储器和处理器,所述存储器中存储计算机程序,所述计算机程序被所述处理器执行时,实现以下步骤:
S11:获取待发送的数据,并将所述数据划分为多个数据块;
S12:从所述多个数据块中确定未在预设数据库中存储的目标数据块;
S13:将所述目标数据块按照流信息归类为至少一条流数据,并将所述流数据挂载至待确认队列中;
S14:对所述流数据进行编码,并向解码设备发送编码后的流数据;
S15:接收所述解码设备针对所述编码后的流数据发来的确认信息,并将所述待确认队列中所述确认信息对应的数据块存储至所述预设数据库中。
在本实施方式中,所述计算机程序被所述处理器执行时,还实现以下步骤:
提取所述确认信息对应的数据块所在的流数据的特征索引,并将所述特征索引写入内存中,并定期持久化存储到磁盘上。
在本实施方式中,所述确认信息中还包括聚合指令,所述聚合指令携带所述待确认队列中的目标流数据的标识;相应地,所述计算机程序被所述处理器执行时,还实现以下步骤:
将所述目标流数据聚合为一条虚拟流数据;
在所述预设数据库中存储所述虚拟流数据,并将所述虚拟流数据的特征索引抽取至内存中,并定期持久化存储到磁盘上。
实施例三
本申请还提供一种数据存储方法,所述方法的执行主体可以是解码设备,请参阅图6,所述方法包括以下步骤。
S21:接收编码设备发来的编码数据,并将所述编码数据解码为解码数据,所述解码数据中包括多个数据块。
S22:将所述多个数据块按照流信息归类为至少一条流数据,并确定数据量大于或者等于指定阈值的目标流数据。
S23:在预设数据库中存储所述目标流数据,并向所述编码设备发送确认信息,所述确认信息中包含所述目标流数据中的数据块的标识,以使得所述编码设备存储所述目标流数据中的数据块。
在本实施方式中,所述解码设备接收到编码设备发来的编码数据后,可以将所述编码数据解码为解码数据,该解码数据中可以包括多个数据块以及用于表征已在所述编码设备中存储的数据块的标签。由于解码设备在接收所述编码数据时,可能会交错接收多个流数据中的不同数据块,因此解码设备解码得到的解码数据中,多个数据块也可能并不是按照流数据排列的,这样,解码设备可以将所述多个数据块按照流信息归类为至少一条流数据。其中,所述流信息可以是上述的五元组信息,编码设备可以将具备相同五元组信息的数据块归类至同一条流数据中。
在本实施方式中,如果将数据量较小的流数据存储至解码设备的预设数据库中,那么可能使得解码设备的预设数据库中数据碎片较多,导致解码设备后续在进行数据索引时需要耗费较多的时间。为了避免这种情况发生,解码设备可以确定数据量大于或者等于指定阈值的目标流数据。所述指定阈值可以是预先设置的常数,所述指定阈值可以用来判定流数据的数据量是否过小。当流数据的数据量大于或者等于所述指定阈值,便认为该流数据达到可以存储的标准。此时,解码设备可以在自身的预设数据库中存储数据量大于或者等于所述指定阈值的目标流数据。请参阅图4,解码设备的预设数据库可以是解码设备的磁盘,在所述磁盘中,目标流数据可以作为一个存储单元进行存储。如图4所示,所述存储单元可以定义为一个continer,在该存储单元中,可以包括目标流数据中包含的数据块以及所述目标流数据的索引信息。所述索引信息可以用于表征各个数据块在存储单元中的起始偏移量以及各个数据块的数据量大小。在将目标流数据按照存储单元存储至磁盘中后,还可以提取所述目标流数据的特征索引,并将所述特征索引写入内存中,并定期持久化存储到磁盘上。后续如果需要在预设数据库中匹配相似或者相同的流数据,便可以通过特征索引进行初步的判断。具体地,所述特征索引可以是基于目标流数据的固有特征提取的。所述固有特征例如可以包括阻塞窗口大小、乱序片段等。在提取特征索引时,可以预先从固有特征中指定一部分特征,然后识别目标流数据的各个数据块分别对应哪个特征,最终可以按照数据块在目标流数据中的排列顺序,将识别出的特征进行排序,从而得到目标流特征的特征索引。举例来说,当前指定了特征1至特征3,所述目标流数据中包括5个数据块,这5个数据块分别对应着特征2、特征1、特征3、特征1、特征2,那么(特征2,特征1,特征3,特征1,特征2)构成的序列便可以作为目标数据流的特征索引。
在本实施方式中,针对解码数据中包含的数据块的标签,所述解码设备可以在自身的预设数据库中查询是否具备所述标签对应的数据块,若存在,便可以将所述标签还原为对应的数据块;若不存在,表示此时解码设备的数据库中缺失了一部分数据块,此时,解码设备可以向所述编码设备发送同步请求,以同步所述编码设备中存储的数据块。
在本实施方式中,解码设备在将所述目标流数据在自身的数据库中存储并将特征索引提取到内存中后,便可以向编码设备发送确认信息,所述确认信息中包含所述目标流数据中的数据块的标识,以使得所述编码设备可以存储所述目标流数据中的数据块。其中,所述目标流数据中数据块的标识可以是计算出的数据块的哈希值。
在本申请一个实施方式中,解码设备在得到解码数据,并将其中包含的数据块归类为流数据后,如果流数据的数据量小于上述的指定阈值,解码设备可以将数据量小于所述指定阈值的流数据挂载于待聚合队列中。处于待聚合队列中的流数据,只有在确认多个流数据之间存在关联性时,解码设备才会将这多个流数据进行聚合。具体地,在本实施方式中可以由应用代理模块或者其他关联性分析模块来确定存在关联性的流数据。所述应用代理模块例如可以是HTTP(HyperText Transfer Protocol,超文本传输协议)、MAPI(Messaging Application Programming Interface,邮件应用程序接口)、CIFS(CommonInternet File System,通用英特网文件系统)等应用代理模块,这些应用代理模块可以确认处于同一次会话中的多个不同的流数据,从而可以确定存在关联性的流数据。解码设备在接收到应用代理模块发来的关联信息后,可以将所述待聚合队列中所述关联信息对应的多条流数据聚合为一条虚拟流数据。所述关联信息中,可以包括存在关联性的多条流数据的五元组信息,根据关联信息中包含的各个五元组信息,解码设备从而可以在待聚合队列中确定出对应的流数据。尽管这些流数据存在关联性,但由于它们的五元组信息不同,因此只能按照流数据的形式聚合为一条虚拟流数据,在该虚拟流数据中,还是会包括多组五元组信息。在聚合得到所述虚拟流数据后,解码设备便可以在自身的预设数据库中存储所述虚拟流数据,并可以提取所述虚拟流数据的特征索引,并将所述特征索引写入内存中,并定期持久化存储到磁盘上。
在本实施方式中,当解码设备将多条流数据聚合为一条虚拟流数据,并存储了该虚拟流数据后,解码设备便可以在即将发送给编码设备的确认信息中添加聚合指令,所述聚合指令中可以包括需要聚合的多条流数据的五元组信息,或者可以包括需要聚合的多条流数据中各个数据块的标识,这样,所述聚合指令便可以携带已经存储的虚拟流数据中的各条流数据的标识。编码设备在从确认信息中提取出聚合指令后,可以在待确认队列中查找出所述目标流数据,然后便可以将所述目标流数据聚合为一条虚拟流数据,并将所述虚拟流数据的特征索引抽取至内存中。
在一个实施方式中,解码设备可以统计流数据在待聚合队列中挂载的总时长,当所述总时长超过固定的时长阈值时,便可以认为流数据超时。为了节省待聚合队列的空间,若数据量小于所述指定阈值的流数据在所述待聚合队列中挂载超时,解码设备可以将超时的流数据丢弃。
在本申请一个实施方式中,解码设备在将解码数据中的数据块归类为流数据后,该归类得到的流数据可能与数据库中存储的流数据比较相似。例如,解码数据之前接收到一份文档的初稿数据,然后又接收到该文档的修订稿数据,修订稿相比于初稿可能只有少量的内容不同,那么初稿数据和修订稿数据便可以视为相似的两条流数据。此时,如果将归类得到的流数据存储至数据库中,那么数据库中便会存在比较相似的两条流数据,这样会浪费数据库的存储空间。在这种情况下,解码数据可以在自身的预设数据库中查询与归类得到的流数据的相似度达到指定相似度阈值的相似流数据。具体地,在比较两条流数据的相似度时,可以通过比较两条流数据的特征索引的相似度来实现。例如,可以确定出两条流数据的特征索引中对应一致的特征的数量,然后计算该对应一致的特征的数量在特征索引的特征总数量中的比值,并将该比值作为两条流数据的相似度。比值越高,相似度则越高。所述指定相似度阈值可以是预先设定的常数,根据实际情况可以灵活进行调整。在确定出相似流数据之后,便可以比对所述归类得到的流数据和所述相似流数据,以确定所述归类得到的流数据中新增的数据。具体地,可以从预设数据库中将相似流数据读取到内存中,然后比对相似流数据与归类得到的流数据中不同的数据,并可以将该不同的数据作为新增的数据。在本实施方式中,若新增的数据的数据量较大,那么可以将新增的数据按照上述的方式作为一条新的流数据进行存储,而当所述新增的数据的数据量小于指定数据量阈值时,则可以将所述新增的数据添加至所述相似流数据中。这样,可以避免数据量较小的流数据无法有效地通过特征索引进行查询的问题。
实施例四
请参阅图7,本申请还提供一种解码设备,所述解码设备包括存储器和处理器,所述存储器中存储计算机程序,所述计算机程序被所述处理器执行时,实现以下步骤:
S21:接收编码设备发来的编码数据,并将所述编码数据解码为解码数据,所述解码数据中包括多个数据块;
S22:将所述多个数据块按照流信息归类为至少一条流数据,并确定数据量大于或者等于指定阈值的目标流数据;
S23:在预设数据库中存储所述目标流数据,并向所述编码设备发送确认信息,所述确认信息中包含所述目标流数据中的数据块的标识,以使得所述编码设备存储所述目标流数据中的数据块。
在本实施方式中,所述计算机程序被所述处理器执行时,还实现以下步骤:
当归类得到的流数据中存在数据量小于所述指定阈值的流数据时,将数据量小于所述指定阈值的流数据挂载于待聚合队列中;
接收应用代理模块发来的关联信息,所述关联信息用于表征存在关联性的流数据;
将所述待聚合队列中所述关联信息对应的多条流数据聚合为一条虚拟流数据,并在所述预设数据库中存储所述虚拟流数据;
提取所述虚拟流数据的特征索引,并将所述特征索引写入内存中,并定期持久化存储到磁盘上;
在所述确认信息中添加聚合指令,所述聚合指令携带所述虚拟流数据中的各条流数据的标识,以使得所述编码设备将所述各条流数据进行聚合,并使得所述编码设备存储聚合后的虚拟流数据。
在本实施方式中,所述计算机程序被所述处理器执行时,还实现以下步骤:
在预设数据库中查询与归类得到的流数据的相似度达到指定相似度阈值的相似流数据;
比对所述归类得到的流数据和所述相似流数据,以确定所述归类得到的流数据中新增的数据;
当所述新增的数据的数据量小于指定数据量阈值时,将所述新增的数据添加至所述相似流数据中。
由上可见,本申请提供的技术方案,当编码设备需要向解码设备发送数据时,首先可以将数据基于内容进行分块处理,并可以确定出没有在预设数据库中存储的目标数据块。针对目标数据块,编码设备并不会直接将其存储于预设数据库中,而是将其按照流信息归类为流数据,并将流数据挂载于待确认队列中。然后,可以将流数据编码后发送给解码设备。解码设备对接收到的数据进行解码之后,按照流信息将解码得到的数据块归类为流数据。如果流数据的数据量较大,解码设备便可以将流数据存储于本地的数据库中,然后,可以向编码设备发送确认信息,该确认信息中可以包含上述存储的流数据中数据块的标识。这样,当编码设备接收到该确认信息后,便可以将待确认队列中识别出确认信息对应的数据块,从而将确认信息对应的数据块在自身的数据库中进行存储。由此可见,编码设备作为数据发送端,只有在解码设备(作为数据接收端)将数据块存储之后,才会相应地进行数据块的存储流程。这样,就算发生数据传输故障,导致编码设备无法接收到确认信息,那么造成的影响也不过是解码设备的数据库中的数据比编码设备的数据库中的数据更加完备,那么针对编码设备发来的用于表征已经存储的数据块的标签,解码设备必然能够从本地的数据库中查询到对应的数据块,并进行数据块的恢复。因此,本申请提供的技术方案,即使编码设备的数据库和解码设备的数据库中数据不同步,也不会影响解码设备对于数据的接收过程,从而提高了数据传输的效率。此外,当需要对数据量较小的目标流数据进行相似性匹配时,为了避免目标数据流特征索引不足的问题,可以确定所述目标流数据所在的虚拟流数据,并基于所述虚拟流数据的特征索引对所述目标流数据进行相似性匹配。这样,在对小数据流做新流相似性匹配的时候,用到的是流簇中所有的特征索引,这样就解决了特征索引不足的问题。
请参阅图8,在本申请中,上述实施例中的技术方案可以应用于如图8所示的计算机终端10上。计算机终端10可以包括一个或多个(图中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输模块106。本领域普通技术人员可以理解,图8所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图8中所示更多或者更少的组件,或者具有与图8所示不同的配置。
存储器104可用于存储应用软件的软件程序以及模块,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (19)

1.一种数据存储方法,其特征在于,所述方法包括:
获取待发送的数据,并将所述数据划分为多个数据块;
从所述多个数据块中确定未在预设数据库中存储的目标数据块;
将所述目标数据块按照流信息归类为至少一条流数据,并将所述流数据挂载至待确认队列中;
对所述流数据进行编码,并向解码设备发送编码后的流数据;
接收所述解码设备针对所述编码后的流数据发来的确认信息,并将所述待确认队列中所述确认信息对应的数据块存储至所述预设数据库中。
2.根据权利要求1所述的方法,其特征在于,所述预设数据库中存储的数据块与数据块标签相关联;相应地,在将所述数据划分为多个数据块之后,所述方法还包括:
从所述多个数据块中确定已在所述预设数据库中存储的已存储数据块;
利用与所述已存储数据块相关联的数据块标签替代所述多个数据块中的已存储数据块。
3.根据权利要求2所述的方法,其特征在于,在对所述流数据进行编码时,所述方法还包括:
对替代所述已存储数据块的数据块标签进行编码,并向解码设备发送编码后的数据块标签,以使得所述解码设备基于所述编码后的数据块标签查询到对应的数据块。
4.根据权利要求1所述的方法,其特征在于,在将所述待确认队列中所述确认信息对应的数据块存储至所述预设数据库中之后,所述方法还包括:
提取所述确认信息对应的数据块所在的流数据的特征索引,并将所述特征索引写入内存中,并备份存储到硬盘。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述流数据在所述待确认队列中挂载超时,将超时的流数据丢弃。
6.根据权利要求1所述的方法,其特征在于,所述确认信息中还包括聚合指令,所述聚合指令中携带所述待确认队列中的目标流数据的标识;相应地,所述方法还包括:
将所述目标流数据聚合为一条虚拟流数据;
在所述预设数据库中存储所述虚拟流数据,并将所述虚拟流数据的特征索引抽取至内存中并持久化存储到硬盘。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
在对所述目标流数据进行相似性匹配时,确定所述目标流数据所在的虚拟流数据,并基于所述虚拟流数据的特征索引对所述目标流数据进行相似性匹配。
8.一种编码设备,其特征在于,所述编码设备包括存储器和处理器,所述存储器中存储计算机程序,所述计算机程序被所述处理器执行时,实现以下步骤:
获取待发送的数据,并将所述数据划分为多个数据块;
从所述多个数据块中确定未在预设数据库中存储的目标数据块;
将所述目标数据块按照流信息归类为至少一条流数据,并将所述流数据挂载至待确认队列中;
对所述流数据进行编码,并向解码设备发送编码后的流数据;
接收所述解码设备针对所述编码后的流数据发来的确认信息,并将所述待确认队列中所述确认信息对应的数据块存储至所述预设数据库中。
9.根据权利要求8所述的编码设备,其特征在于,所述计算机程序被所述处理器执行时,还实现以下步骤:
提取所述确认信息对应的数据块所在的流数据的特征索引,并将所述特征索引写入内存中,并持久化存储到硬盘。
10.根据权利要求8所述的编码设备,其特征在于,所述确认信息中还包括聚合指令,所述聚合指令携带所述待确认队列中的目标流数据的标识;相应地,所述计算机程序被所述处理器执行时,还实现以下步骤:
将所述目标流数据聚合为一条虚拟流数据;
在所述预设数据库中存储所述虚拟流数据,并将所述虚拟流数据的特征索引抽取至内存中,并持久化存储到硬盘。
11.一种数据存储方法,其特征在于,所述方法包括:
接收编码设备发来的编码数据,并将所述编码数据解码为解码数据,所述解码数据中包括多个数据块;
将所述多个数据块按照流信息归类为至少一条流数据,并确定数据量大于或者等于指定阈值的目标流数据;
在预设数据库中存储所述目标流数据,并向所述编码设备发送确认信息,所述确认信息中包含所述目标流数据中的数据块的标识,以使得所述编码设备存储所述目标流数据中的数据块。
12.根据权利要求11所述的方法,其特征在于,所述解码数据中还包括用于表征已在所述编码设备中存储的数据块的标签;相应地,在将所述编码数据解码为解码数据之后,所述方法还包括:
在预设数据库中查询是否具备所述标签对应的数据块,若存在,将所述标签还原为对应的数据块;若不存在,向所述编码设备发送同步请求,以同步所述编码设备中存储的数据块。
13.根据权利要求11所述的方法,其特征在于,当归类得到的流数据中存在数据量小于所述指定阈值的流数据时,所述方法还包括:
将数据量小于所述指定阈值的流数据挂载于待聚合队列中;
接收应用代理模块发来的关联信息,所述关联信息用于表征存在关联性的流数据;
将所述待聚合队列中所述关联信息对应的多条流数据聚合为一条虚拟流数据,并在所述预设数据库中存储所述虚拟流数据;
提取所述虚拟流数据的特征索引,并将所述特征索引写入内存中,并持久化存储到硬盘。
14.根据权利要求13所述的方法,其特征在于,所述方法还包括:
在所述确认信息中添加聚合指令,所述聚合指令携带所述虚拟流数据中的各条流数据的标识,以使得所述编码设备将所述各条流数据进行聚合,并使得所述编码设备存储聚合后的虚拟流数据。
15.根据权利要求13所述的方法,其特征在于,所述方法还包括:
若数据量小于所述指定阈值的流数据在所述待聚合队列中挂载超时,将超时的流数据丢弃。
16.根据权利要求11所述的方法,其特征在于,在将所述多个数据块按照流信息归类为至少一条流数据之后,所述方法还包括:
在预设数据库中查询与归类得到的流数据的相似度达到指定相似度阈值的相似流数据;
比对所述归类得到的流数据和所述相似流数据,以确定所述归类得到的流数据中新增的数据;
当所述新增的数据的数据量小于指定数据量阈值时,将所述新增的数据添加至所述相似流数据中。
17.一种解码设备,其特征在于,所述解码设备包括存储器和处理器,所述存储器中存储计算机程序,所述计算机程序被所述处理器执行时,实现以下步骤:
接收编码设备发来的编码数据,并将所述编码数据解码为解码数据,所述解码数据中包括多个数据块;
将所述多个数据块按照流信息归类为至少一条流数据,并确定数据量大于或者等于指定阈值的目标流数据;
在预设数据库中存储所述目标流数据,并向所述编码设备发送确认信息,所述确认信息中包含所述目标流数据中的数据块的标识,以使得所述编码设备存储所述目标流数据中的数据块。
18.根据权利要求17所述的解码设备,其特征在于,所述计算机程序被所述处理器执行时,还实现以下步骤:
当归类得到的流数据中存在数据量小于所述指定阈值的流数据时,将数据量小于所述指定阈值的流数据挂载于待聚合队列中;
接收关联信息,所述关联信息用于表征存在关联性的流数据;
将所述待聚合队列中所述关联信息对应的多条流数据聚合为一条虚拟流数据,并在所述预设数据库中存储所述虚拟流数据;
提取所述虚拟流数据的特征索引,并将所述特征索引写入内存中并持久化存储到硬盘;
在所述确认信息中添加聚合指令,所述聚合指令携带所述虚拟流数据中的各条流数据的标识,以使得所述编码设备将所述各条流数据进行聚合,并使得所述编码设备存储聚合后的虚拟流数据。
19.根据权利要求17所述的解码设备,其特征在于,所述计算机程序被所述处理器执行时,还实现以下步骤:
在预设数据库中查询与归类得到的流数据的相似度达到指定相似度阈值的相似流数据;
比对所述归类得到的流数据和所述相似流数据,以确定所述归类得到的流数据中新增的数据;
当所述新增的数据的数据量小于指定数据量阈值时,将所述新增的数据添加至所述相似流数据中。
CN201810054884.7A 2018-01-19 2018-01-19 一种数据存储方法、编码设备及解码设备 Active CN108243256B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201810054884.7A CN108243256B (zh) 2018-01-19 2018-01-19 一种数据存储方法、编码设备及解码设备
EP18901556.3A EP3588914A4 (en) 2018-01-19 2018-02-12 DATA STORAGE METHOD, CODING DEVICE, AND DECODING DEVICE
US16/099,796 US20210227007A1 (en) 2018-01-19 2018-02-12 Data storage method, encoding device, and decoding device
PCT/CN2018/076411 WO2019140732A1 (zh) 2018-01-19 2018-02-12 一种数据存储方法、编码设备及解码设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810054884.7A CN108243256B (zh) 2018-01-19 2018-01-19 一种数据存储方法、编码设备及解码设备

Publications (2)

Publication Number Publication Date
CN108243256A true CN108243256A (zh) 2018-07-03
CN108243256B CN108243256B (zh) 2020-08-04

Family

ID=62699663

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810054884.7A Active CN108243256B (zh) 2018-01-19 2018-01-19 一种数据存储方法、编码设备及解码设备

Country Status (4)

Country Link
US (1) US20210227007A1 (zh)
EP (1) EP3588914A4 (zh)
CN (1) CN108243256B (zh)
WO (1) WO2019140732A1 (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109032530A (zh) * 2018-08-21 2018-12-18 成都华为技术有限公司 一种数据流处理方法及设备
CN110737409A (zh) * 2019-10-21 2020-01-31 网易(杭州)网络有限公司 数据加载方法、装置和终端设备
CN110837414A (zh) * 2018-08-15 2020-02-25 北京京东金融科技控股有限公司 任务处理方法和装置
CN110879807A (zh) * 2018-09-06 2020-03-13 Sap欧洲公司 用于快速地并且有效地访问数据的文件格式
CN111722787A (zh) * 2019-03-22 2020-09-29 华为技术有限公司 一种分块方法及其装置
WO2021238508A1 (zh) * 2020-05-29 2021-12-02 华为技术有限公司 一种数据处理的方法、装置和设备
CN116963178A (zh) * 2023-09-21 2023-10-27 季华实验室 一种降低nb-iot设备功耗的方法及相关设备

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11809430B2 (en) 2019-10-23 2023-11-07 Nec Corporation Efficient stream processing with data aggregations in a sliding window over out-of-order data streams
CN116962301A (zh) * 2022-04-18 2023-10-27 华为技术有限公司 一种数据流保序方法、数据交换装置及网络
CN114721601B (zh) * 2022-05-26 2022-08-30 昆仑智汇数据科技(北京)有限公司 一种工业设备数据的存储方法及装置
CN116204136B (zh) * 2023-05-04 2023-08-15 山东浪潮科学研究院有限公司 一种数据存储、查询方法、装置、设备及存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101159757A (zh) * 2007-10-25 2008-04-09 中兴通讯股份有限公司 双归属同步数据传输方法
US20110202623A1 (en) * 2010-02-17 2011-08-18 Emulex Design & Manufacturing Corporation Accelerated sockets
CN102469142A (zh) * 2010-11-16 2012-05-23 英业达股份有限公司 重复数据删除程序的数据传输方法
US20120173558A1 (en) * 2010-12-29 2012-07-05 Sorenson Iii James Christopher Receiver-Side Data Deduplication In Data Systems
CN103067129A (zh) * 2012-12-24 2013-04-24 中国科学院深圳先进技术研究院 网络数据传输方法和系统
CN103970875A (zh) * 2014-05-15 2014-08-06 华中科技大学 一种并行重复数据删除方法
CN104753626A (zh) * 2013-12-25 2015-07-01 华为技术有限公司 一种数据压缩方法、设备及系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107291924B (zh) * 2017-06-29 2020-08-14 深信服科技股份有限公司 一种用于灾备系统的同步复制日志控制方法和系统

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101159757A (zh) * 2007-10-25 2008-04-09 中兴通讯股份有限公司 双归属同步数据传输方法
US20110202623A1 (en) * 2010-02-17 2011-08-18 Emulex Design & Manufacturing Corporation Accelerated sockets
CN102469142A (zh) * 2010-11-16 2012-05-23 英业达股份有限公司 重复数据删除程序的数据传输方法
US20120173558A1 (en) * 2010-12-29 2012-07-05 Sorenson Iii James Christopher Receiver-Side Data Deduplication In Data Systems
CN103067129A (zh) * 2012-12-24 2013-04-24 中国科学院深圳先进技术研究院 网络数据传输方法和系统
CN104753626A (zh) * 2013-12-25 2015-07-01 华为技术有限公司 一种数据压缩方法、设备及系统
CN103970875A (zh) * 2014-05-15 2014-08-06 华中科技大学 一种并行重复数据删除方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
孙爱玲 等.: "一种基于重复数据删除的网络文件备份系统设计与实现", 《计算机应用与软件》 *
杨思茗.: "广域网存储加速系统的研究与实现.", 《中国优秀硕士学位论文全文数据库信息科技辑2014年》 *

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110837414B (zh) * 2018-08-15 2024-04-12 京东科技控股股份有限公司 任务处理方法和装置
CN110837414A (zh) * 2018-08-15 2020-02-25 北京京东金融科技控股有限公司 任务处理方法和装置
CN109032530A (zh) * 2018-08-21 2018-12-18 成都华为技术有限公司 一种数据流处理方法及设备
CN109032530B (zh) * 2018-08-21 2021-10-01 成都华为技术有限公司 一种数据流处理方法及设备
CN110879807B (zh) * 2018-09-06 2023-07-21 Sap欧洲公司 用于快速地并且有效地访问数据的文件格式
CN110879807A (zh) * 2018-09-06 2020-03-13 Sap欧洲公司 用于快速地并且有效地访问数据的文件格式
US11755540B2 (en) 2019-03-22 2023-09-12 Huawei Technologies Co., Ltd. Chunking method and apparatus
CN111722787B (zh) * 2019-03-22 2021-12-03 华为技术有限公司 一种分块方法及其装置
CN111722787A (zh) * 2019-03-22 2020-09-29 华为技术有限公司 一种分块方法及其装置
CN110737409B (zh) * 2019-10-21 2023-09-26 网易(杭州)网络有限公司 数据加载方法、装置和终端设备
CN110737409A (zh) * 2019-10-21 2020-01-31 网易(杭州)网络有限公司 数据加载方法、装置和终端设备
WO2021238508A1 (zh) * 2020-05-29 2021-12-02 华为技术有限公司 一种数据处理的方法、装置和设备
CN116963178A (zh) * 2023-09-21 2023-10-27 季华实验室 一种降低nb-iot设备功耗的方法及相关设备
CN116963178B (zh) * 2023-09-21 2024-01-16 季华实验室 一种降低nb-iot设备功耗的方法及相关设备

Also Published As

Publication number Publication date
EP3588914A8 (en) 2020-02-19
WO2019140732A1 (zh) 2019-07-25
EP3588914A1 (en) 2020-01-01
CN108243256B (zh) 2020-08-04
EP3588914A4 (en) 2020-05-27
US20210227007A1 (en) 2021-07-22

Similar Documents

Publication Publication Date Title
CN108243256A (zh) 一种数据存储方法、编码设备及解码设备
US7630379B2 (en) Systems and methods for improved network based content inspection
EP1393496B1 (en) System and methods for providing differentiated services within a network communication system
US9356844B2 (en) Efficient application recognition in network traffic
US20110125748A1 (en) Method and Apparatus for Real Time Identification and Recording of Artifacts
US11431662B2 (en) Techniques for message deduplication
US11115345B2 (en) Systems and methods for providing self-referencing utilization calculation and dynamic resource allocation based thereon for digital transmissions
CN104834558A (zh) 一种数据处理的方法及系统
KR102101591B1 (ko) Ai 기반 백업 데이터 관리 시스템 및 그 방법
US9843802B1 (en) Method and system for dynamic compression module selection
US10608960B2 (en) Techniques for batched bulk processing
US20190207888A1 (en) Techniques for message indexing
WO2018130161A1 (zh) 基于云计算服务的高效传输方法和装置
CN111291770A (zh) 一种参数配置方法及装置
CN114666212A (zh) 配置数据下发方法
US20190207899A1 (en) Techniques for messaging conversation indexing
CN102857547B (zh) 分布式缓存的方法及设备
CN1918879B (zh) 用于状态存储器管理的方法和装置
US10154116B1 (en) Efficient synchronization of locally-available content
CN116055403A (zh) 报文数据的传输方法、装置和服务器
CN111209100B (zh) 一种业务处理和数据源确定方法
US10091330B2 (en) Interest scheduling by an information and data framework in a content centric network
CN104933059A (zh) 文件信誉获取方法、网关设备和文件信誉服务器
EP1564960B1 (en) System and methods for providing differentiated services within a network communication system
CN113904994A (zh) 一种家庭网关大数据统一上报平台的方法

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
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20210728

Address after: 518000 b1-1302, building B, Kexing Science Park, No. 15, Keyuan Road, Science Park community, Yuehai street, Nanshan District, Shenzhen, Guangdong

Patentee after: Shenzhen aijieyun Technology Co.,Ltd.

Address before: 5 / F, building a, Guangqi Cultural Plaza, 2899 Xietu Road, Xuhui District, Shanghai, 200030

Patentee before: WANGSU SCIENCE & TECHNOLOGY Co.,Ltd.