CN111782660A - 基于键值存储的数据压缩的方法和系统 - Google Patents
基于键值存储的数据压缩的方法和系统 Download PDFInfo
- Publication number
- CN111782660A CN111782660A CN202010693451.3A CN202010693451A CN111782660A CN 111782660 A CN111782660 A CN 111782660A CN 202010693451 A CN202010693451 A CN 202010693451A CN 111782660 A CN111782660 A CN 111782660A
- Authority
- CN
- China
- Prior art keywords
- dictionary
- data
- storage system
- key
- current
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 68
- 238000013144 data compression Methods 0.000 title claims abstract description 66
- 238000007906 compression Methods 0.000 claims abstract description 194
- 230000006835 compression Effects 0.000 claims abstract description 194
- 238000012549 training Methods 0.000 claims abstract description 92
- 230000002829 reductive effect Effects 0.000 claims abstract description 13
- 238000012795 verification Methods 0.000 claims description 44
- 230000003247 decreasing effect Effects 0.000 claims description 6
- 238000010586 diagram Methods 0.000 description 11
- 239000000284 extract Substances 0.000 description 10
- 238000004891 communication Methods 0.000 description 9
- 238000013500 data storage Methods 0.000 description 7
- 230000002159 abnormal effect Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 238000012544 monitoring process Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 230000007423 decrease Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000000605 extraction Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 230000000670 limiting effect Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000005055 memory storage Effects 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2358—Change logging, detection, and notification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
Abstract
本说明书提供的基于键值存储的数据压缩的方法和系统,能够基于服务器端的存储系统中存储的大量数据进行字典训练生成压缩字典,对存储系统中的键值数据进行压缩。因此,对数据的压缩效率更高。同时,本说明书提供的方法和系统可以监控服务器端的数据压缩的整体效率,当数据压缩的整体效率下降时,自动更新压缩字典,从而保证数据压缩的整体效率。
Description
技术领域
本说明书涉及存储技术领域,尤其涉及一种基于键值存储的数据压缩的方法和系统。
背景技术
随着计算机技术及网络技术的高速发展,人们的日常生活中出现了越来越多的数据和信息,需要存储和保留,因此出现了数据库系统。数据库系统可以实现数据库中的数据的共享和集中管理,所述集中管理包括对数据进行写入、读取以及修改等操作。而数据库系统管理的数据存储在存储系统中,因此存储系统的空间和存取速度对数据库系统的数据管理操作存在影响。当存储系统中存储的数据不断增多时,可用空间会变小,此时就需要对存储系统中的数据进行压缩来释放部分空间。
当前,键值(Key-value)存储系统已经被广泛使用。Key-value存储系统是一种以键值对存储数据的系统。其中,key是值关键字,value是指与关键字对应的值。Key-value存储系统可以根据关键字提取对应的值。Key-value存储系统由于其查询时的时间复杂度低,因而对于精确查询场景,往往可以获得很高的查询性能。现有技术中,Key-value存储系统通常采用在客户端对存储数据使用字典压缩的方式进行压缩,然后将压缩后的存储数据传输至服务器端进行存储的方式。然而,由于客户端对存储数据进行字典压缩时通常是针对单个数据生成压缩字典,将单个数据压缩后的数据与压缩所使用的字典一起发送至存储系统存储。因此,在客户端进行字典压缩时需要对客户端的每个数据都进行高频词汇分析生成对应的字典,增加了压缩消耗的时间和延时,并且每个数据压缩时生成的压缩字典都会被保存在存储系统中,会增加额外的存储空间。另外,由于单个数据的数据量较小,生成的压缩字典中的高频词汇较少,压缩效率低。
因此,需要一种压缩效率更高的、可以从服务器端对数据进行压缩的基于键值存储的数据压缩的方法和系统。
发明内容
本说明书提供一种能有效自动识别用户当前在系统上所做操作(比如交易操作)的操作风险,并且向用户披露风险类别的基于键值存储的数据压缩的方法、系统和非暂时性存储介质。
第一方面,本说明书提供一种基于键值存储的数据压缩的方法,包括:基于服务器端的存储系统中的多个键值生成当前字典;接收客户端发送的键值对;以及使用所述当前字典对所述键值对中的键值进行数据压缩并存储在所述存储系统中。
在一些实施例中,所述存储系统包括缓存存储系统。
在一些实施例中,所述基于所述服务器的存储系统中的多个键值生成当前字典,包括:从所述存储系统中的所述多个键值中选取N个键值作为训练数据,所述N为大于1的整数;设置字典训练参数,基于所述字典训练参数和所述训练数据训练字典,得到多个候选字典;以及从所述多个候选字典中选择压缩效率最高的候选字典作为所述当前字典。
在一些实施例中,所述基于所述服务器的存储系统中的多个键值生成当前字典,还包括:从所述存储系统中的所述多个键值中选取M个键值作为验证数据,所述M为大于1的整数;所述从所述多个候选字典中选择压缩效率最高的候选字典作为所述当前字典,包括:从所述多个候选字典中选择压缩效率最高的候选字典作为目标字典;基于所述验证数据验证所述目标字典的压缩效率;以及将所述目标字典作为所述当前字典。
在一些实施例中,所述M与所述N相等。
在一些实施例中,所述方法还包括:确定所述存储系统的压缩效率下降,更新所述当前字典。
在一些实施例中,所述确定所述存储系统的压缩效率下降,更新所述当前字典,包括:计算所述当前字典在当前时刻对所述存储系统的整体压缩效率;确定所述当前字典在所述当前时刻对所述存储系统的整体压缩效率较上一时刻的整体压缩效率下降超过目标阈值;以及更新所述当前字典。
在一些实施例中,所述更新所述当前字典,包括:基于所述当前时刻所述服务器端的存储系统中的多个键值生成候选更新字典;使用所述候选更新字典对所述存储系统中的所述多个键值进行压缩;确定所述候选更新字典对所述存储系统的整体压缩效率高于所述当前字典在所述当前时刻对所述存储系统的整体压缩效率;以及将所述候选更新字典作为所述当前字典。
在一些实施例中,所述确定所述存储系统的压缩效率下降,更新所述当前字典,还包括:使用更新前的当前字典对所述存储系统中存储的压缩键值进行解压;以及使用更新后的当前字典对经过所述更新前的当前字典解压的键值进行压缩,得到更新的压缩键值。
在一些实施例中,所述方法还包括:读取所述存储系统中的目标键值。
在一些实施例中,所述读取所述存储系统中的目标键值,包括:接收目标客户端发送的对所述目标键值的读取请求,所述客户端包括所述目标客户端,所述多个键值包括所述目标键值;使用所述当前字典对所述目标键值应的压缩键值进行解压,得到所述目标键值;以及将所述目标键值发送至所述目标客户端。
第二方面,本说明书提供一种基于键值存储的数据压缩的系统,包括至少一个存储介质和至少一个处理器,所述至少一个存储介质包括至少一个指令集,用于基于键值存储的数据压缩;所述至少一个处理器同所述至少一个存储介质通讯连接,其中,当所述系统运行时,所述至少一个处理器读取所述至少一个指令集,并且根据所述至少一个指令集的指示执行本说明书第一方面所述的基于键值存储的数据压缩的方法。
由以上技术方案可知,本说明书提供的基于键值存储的数据压缩的方法和系统,能够从服务器端对存储系统中的键值数据进行字典压缩。由于服务器端的存储系统中存储了大量的键值数据,比如,现有的存储系统中的键值数据数以亿计。基于服务器端的数据生成的字典可以从大量数据中找到共有的高频字符串,因此,对数据的压缩效率更高。并且,由于字典是基于服务器端大量的数据生成的,因此,所述字典可以适用于服务器端的所有数据,不需要针对每个数据生成字典,因此,所述方法和系统可以提升数据压缩的速度,从而降低存储系统的成本。同时,本说明书提供的方法和系统可以监控服务器端的数据压缩的整体效率,当数据压缩的整体效率下降时,自动更新压缩字典,从而保证数据压缩的整体效率。
本说明书提供的基于键值存储的数据压缩的方法和系统的其他功能将在以下说明中部分列出。根据描述,以下数字和示例介绍的内容将对那些本领域的普通技术人员显而易见。本说明书提供的基于键值存储的数据压缩的方法、系统和存储介质的创造性方面可以通过实践或使用下面详细示例中所述的方法、装置和组合得到充分解释。
附图说明
为了更清楚地说明本说明书实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了根据本说明书的实施例提供的一种基于键值存储的数据压缩的系统的应用场景示意图;
图2示出了根据本说明书的实施例提供的一种基于键值存储的数据压缩的设备示意图;
图3示出了根据本说明书的实施例提供的一种基于键值存储的数据压缩的方法流程图;
图4示出了根据本说明书的实施例提供的一种生成当前字典的流程图;
图5示出了根据本说明书的实施例提供的一种对新数据进行数据压缩的流程图;
图6示出了根据本说明书的实施例提供的一种更新当前字典的流程图;以及
图7示出了根据本说明书的实施例提供的一种数据读取的流程图。
具体实施方式
以下描述提供了本说明书的特定应用场景和要求,目的是使本领域技术人员能够制造和使用本说明书中的内容。对于本领域技术人员来说,对所公开的实施例的各种局部修改是显而易见的,并且在不脱离本说明书的精神和范围的情况下,可以将这里定义的一般原理应用于其他实施例和应用。因此,本说明书不限于所示的实施例,而是与权利要求一致的最宽范围。
这里使用的术语仅用于描述特定示例实施例的目的,而不是限制性的。比如,除非上下文另有明确说明,这里所使用的,单数形式“一”,“一个”和“该”也可以包括复数形式。当在本说明书中使用时,术语“包括”、“包含”和/或“含有”意思是指所关联的整数,步骤、操作、元素和/或组件存在,但不排除一个或多个其他特征、整数、步骤、操作、元素、组件和/或组的存在或在该系统/方法中可以添加其他特征、整数、步骤、操作、元素、组件和/或组。
考虑到以下描述,本说明书的这些特征和其他特征、以及结构的相关元件的操作和功能、以及部件的组合和制造的经济性可以得到明显提高。参考附图,所有这些形成本说明书的一部分。然而,应该清楚地理解,附图仅用于说明和描述的目的,并不旨在限制本说明书的范围。还应理解,附图未按比例绘制。
本说明书中使用的流程图示出了根据本说明书中的一些实施例的系统实现的操作。应该清楚地理解,流程图的操作可以不按顺序实现。相反,操作可以以反转顺序或同时实现。此外,可以向流程图添加一个或多个其他操作。可以从流程图中移除一个或多个操作。
现有技术中对于键值存储系统的存储数据大多都是在客户端进行压缩,特别是对于缓存存储系统来说,由于缓存存储系统中的数据读取较多,写入较少,且缓存存储系统中的数据流动性大,因此,现有技术中大多对缓存存储系统采用客户端压缩的方式,即客户端对每个键值数据进行压缩,并将压缩后的数据以及压缩所使用的压缩字典一起传输至缓存存储系统进行存储,增加了额外的存储空间。所述缓存存储系统中存储的数据的整体压缩效率低,对于大数据量的存储系统来说成本较高。所述整体压缩效率可以是所述存储系统端存储的所有数据的压缩前的数据大小与所有数据压缩后的数据大小的比值。所述比值越大,所述整体压缩效率越高;所述比值越小,所述整体压缩效率越低。所述整体压缩效率也可以是所述存储系统端存储的所有数据的压缩后的数据大小与所有数据压缩前的数据大小的比值。所述比值越小,所述整体压缩效率越高;所述比值越大,所述整体压缩效率越低。为了方便展示,我们将以所述整体压缩效率是所述存储系统端存储的所有数据的压缩前的数据大小与所有数据压缩后的数据大小的比值为例进行描述。字典压缩主要是将数据中重复内容映射为对应的字符,所述重复内容的大小通常要大于甚至远大于对应的字符,从而实现压缩数据包的目的。举例说明,某个数据“AAA,BBB,CCC,AAA,BBB,CCC”;假设压缩字典中“AAA”对应“X”,“BBB”对应“Y”,“CCC”对应“Z”;那么,经过该压缩字典可以将这个数据中内容映射为“X,Y,Z”;压缩后数据大小相较于压缩前大大减少。由于键值存储系统中的数据是无类型数据,因此,所述键值存储系统适用于字典压缩,不适用于编码压缩。
本说明书提供的基于键值存储的数据压缩的方法和系统,应用于服务器端,能够从服务器端对存储系统中的键值数据进行字典压缩。由于服务器端的存储系统中存储了大量的键值数据,基于服务器端的数据生成的字典可以从大量数据中找到共有的高频字符串,因此,对数据的压缩效率更高。并且,由于字典是基于服务器端大量的数据生成的,因此,所述字典可以适用于服务器端的所有数据,不需要针对每个数据生成字典,因此,所述方法和系统可以提升数据压缩的速度,从而降低存储系统的成本。
图1示出了一种基于键值存储的数据压缩的系统100的应用场景示意图。系统100可以包括服务器端200、客户端300以及网络120。
客户端300可以是载有目标应用(目标APP)的电子设备。用户110可以是客户端300的使用者。客户端300可以与服务器端200通讯连接。在一些实施例中,客户端300可以安装有一个或多个应用(APP)。所述APP能够为目标用户110提供通过网络120同外界交互的能力以及界面。所述目标APP是指与服务器端200相对应的客户端APP。在一些实施例中,客户端300可以包括移动设备300-1、平板电脑300-2、笔记本电脑300-3、机动车辆300-4的内置设备或类似内容,或其任意组合。在一些实施例中,移动设备300-1可包括智能家居设备、智能移动设备或类似设备,或其任意组合。在一些实施例中,所述智能家居装置可包括智能电视、台式电脑等,或任意组合。在一些实施例中,所述智能移动设备可包括智能手机、个人数字辅助等,或其任意组合。在一些实施例中,客户端300可以是具有定位技术的设备,用于定位客户端300的位置。
服务器端200可以存储有执行本说明书描述的基于键值存储的数据压缩的方法的数据或指令,并可以执行所述数据和/或指令。客户端300可能具有访问服务器端200的权限,客户端300可以通过网络120访问存储在服务器端200中的数据或指令。所述键值存储系统可以是内存存储系统和硬盘存储系统,也可以是缓存存储系统。服务器端200可以包括键值存储系统,可以存储从客户端300获得的键值数据。服务器端200可以负责所有键值数据的写入、读取和删除等操作请求。关于数据的写入、读取和删除等所有请求都由服务器端200完成。这些请求可以来自于客户端300。服务器端200可以是独立的服务器。服务器端200也可以是分布式服务器集群。所述分布式服务器集群可以包括多个分布式连接的子服务器。所述多个子服务器可以相互通讯交流数据和信息。比如,所述多个子服务器可以通过网络120联系在一起。所述多个子服务器可以共享一个共同的工作目标,所述多个子服务器中的每个子服务器完成所述工作目标中的一个或者多个子目标,并且把所述子目标的运行结果传递给其他需要这个子目标的子服务器。每个子服务器除了包括一个或者多个处理器外,也可以包括一个或者多个存储介质(比如存储器)来存储键值数据以及处理所述子目标时需要存储的其他数据。当然,每个子服务器也可以共享一个或者多个存储介质(比如存储器)。所述存储介质可以通过网络120同每一个子服务器连接。本说明书描述的基于键值存储的数据压缩的方法的数据或指令可以存储在所述存储介质中。所述子服务器可以是通用计算机或专用计算机。比如,所述子服务器可以是服务器、个人电脑、便携式电脑(比如笔记本计算机、平板电脑等),也可以是有其他计算能力的电子设备。
网络120可以促进信息和/或数据的交换。如图1所示,客户端300、服务器端200可以同网络120连接,并且通过网络120互相传输信息和/或数据。例如,服务器端200可以通过网络120从客户端300获取键值对。在一些实施例中,网络120可以是任何类型的有线或无线网络,也可以是其组合。比如,网络120可以包括电缆网络,有线网络、光纤网络、电信通信网络、内联网、互联网、局域网(LAN)、广域网(WAN)、无线局域网(WLAN)、大都市市区网(MAN)、广域网(WAN)、公用电话交换网(PSTN)、蓝牙网络、ZigBee网络、近场通信(NFC)网络或类似网络。在一些实施例中,网络120可以包括一个或多个网络接入点。例如,网络120可以包括有线或无线网络接入点,客户端300、服务器端200的一个或多个组件可以连接到网络120以交换数据和/或信息。
如图1所示,用户110在客户端300上对键值进行数据写入、读取和删除等操作请求;所述操作请求通过网络120传输给服务器端200;服务器端200执行本说明书所述的基于键值存储的数据压缩的方法的指令,对写入的数据进行压缩存储,或对读取的数据进行解压输出。
图2示出了一种基于键值存储的数据压缩的设备示意图。所述设备可以是服务器端200,也可以是子服务器,也可以是客户端300。下面的介绍中以服务器端200为例介绍所述设备。
服务器端200可以执行本说明书描述的基于键值存储的数据压缩的方法。所述基于键值存储的数据压缩的方法在本说明书中的其他部分介绍。比如,在图3和图7的描述中介绍了所述基于键值存储的数据压缩的方法P200。
如图2所示,服务器端200包括至少一个存储介质230和至少一个处理器220。在一些实施例中,服务器端200还可以包括通信端口250和内部通信总线210。同时,服务器端200还可以包括I/O组件260。
内部通信总线210可以连接不同的系统组件,包括存储介质230和处理器220。
I/O组件260支持服务器端200和其他组件之间的输入/输出。
存储介质230可以包括数据存储装置。所述数据存储装置可以是非暂时性存储介质,也可以是暂时性存储介质。比如,所述数据存储装置可以包括磁盘232、只读存储介质(ROM)234或随机存取存储介质(RAM)236中的一种或多种。存储介质230还包括存储在所述数据存储装置中的至少一个指令集。所述指令是计算机程序代码,所述计算机程序代码可以包括执行本说明书提供的基于键值存储的数据压缩的方法的程序、例程、对象、组件、数据结构、过程、模块等等。
通信端口250用于服务器端200同外界的数据通讯。比如,服务器端200可以通过通信端口250连接网络120。
至少一个处理器220同至少一个存储介质230通过内部通信总线210通讯连接。至少一个处理器220用以执行上述至少一个指令集。当系统100运行时,至少一个处理器220读取所述至少一个指令集,并且根据所述至少一个指令集的指示执行本说明书提供的基于键值存储的数据压缩的方法P200。处理器220可以执行基于键值存储的数据压缩的方法P200包含的所有步骤。处理器220可以是一个或多个处理器的形式,在一些实施例中,处理器220可以包括一个或多个硬件处理器,例如微控制器,微处理器,精简指令集计算机(RISC),专用集成电路(ASIC),特定于应用的指令集处理器(ASIP),中央处理单元(CPU),图形处理单元(GPU),物理处理单元(PPU),微控制器单元,数字信号处理器(DSP),现场可编程门阵列(FPGA),高级RISC机器(ARM),可编程逻辑器件(PLD),能够执行一个或多个功能的任何电路或处理器等,或其任何组合。仅仅为了说明问题,在本说明书中服务器端200中仅描述了一个处理器220。然而,应当注意,本说明书中服务器端200还可以包括多个处理器,因此,本说明书中披露的操作和/或方法步骤可以如本说明书所述的由一个处理器执行,也可以由多个处理器联合执行。例如,如果在本说明书中服务器端200的处理器220执行步骤A和步骤B,则应该理解,步骤A和步骤B也可以由两个不同处理器220联合或分开执行(例如,第一处理器执行步骤A,第二处理器执行步骤B,或者第一和第二处理器共同执行步骤A和B)。
虽然上述结构描述的是服务器端200,此结构也适用于客户端300。
图3示出了一种基于键值存储的数据压缩的方法P200的流程图。如前所述,所述方法P200应用于服务器端200,用于对服务器端200的存储系统中的键值数据进行压缩存储。所述存储系统可以是内存存储系统和硬盘存储系统,也可以是缓存存储系统。服务器端200可以执行本说明书提供的基于键值存储的数据压缩的方法P200。具体地,服务器端200中的处理器220可以读取存储在其本地存储介质和/或服务器端200中的指令集,然后根据所述指令集的规定,执行本说明书提供的基于键值存储的数据压缩的方法P200。所述方法P200可以包括通过至少一个处理器220执行下述步骤:
S210:基于服务器端200的存储系统中的多个键值生成当前字典。
服务器端200在对存储系统中的键值数据进行压缩时,需先生成压缩所使用的压缩字典。服务器端200可以基于存储系统中大量的键值数据,提取出高频字符串,生成当前压缩所使用的压缩字典,即所述当前字典。图4示出了一种生成当前字典的流程图。如图4所示,步骤S210可以包括:
S212:从所述存储系统中的所述多个键值中选取N个键值作为训练数据。
所述当前字典可以基于所述存储系统中的键值数据训练得到。服务器端200可以从所述存储系统中抽取一部分键值数据作为训练数据。具体地,服务器端200可以从所述存储系统中随机抽取多个键值数据作为训练数据,服务器端200也可以根据所述键值数据的属性特征将所述存储系统中的大量的键值数据进行分类,并从每个类型的键值数据中随机抽取多个键值数据作为所述训练数据。为了方便展示,我们将训练数据中的键值数据的数量标记为N,其中,N为大于1的整数。
S213:从所述存储系统中的所述多个键值中选取M个键值作为验证数据。
为了避免所述训练数据在随机抽取过程中出现偶发性数据,服务器端200可以从所述存储系统中抽取一部分键值数据作为所述验证数据,用于对所述训练数据训练得到的压缩字典进行压缩效率的验证。所述偶发性数据可以是所述训练数据在随机抽取的过程中,出现较多数量的键值数据之间的形似度较高。所述偶发性数据出现的概率较低。当所述训练数据中出现了偶发性数据时,通过所述训练数据训练得到的压缩字典对所述训练数据的压缩效率较高,而对所述训练数据以外的其他数据的压缩效率较低,从而导致对所述存储系统中的所有数据的整体压缩效率较低。为了避免所述偶发性数据的出现,服务器端200设置了所述验证数据。服务器端200使用所述训练数据训练得到的所述压缩字典对所述验证数据进行压缩,验证所述压缩字典的有效性。为了方便描述,我们将所述验证数据中的键值数据的数量标记为M。为了提高所述验证数据的全面性,所述验证数据中的键值数据与所述训练数据中的键值数据可以不重合。当然,所述验证数据中的键值数据与所述训练数据中的键值数据也可以少数重合,其重合度不能超过设定的阈值。否则,将影响所述验证数据对所述压缩字典的验证效果。所述训练数据中的键值数据的数量N与所述验证数据中的键值数据的数量M可以相等,也可以不相等。
服务器端200对所述训练数据和所述验证数据的采集可以是离线采集也可以是在线采集,本说明书对此不做限定。
S215:设置字典训练参数,基于所述字典训练参数和所述训练数据训练字典,得到多个候选字典。
服务器端200可以设置字典训练的参数,比如,字典的大小、训练的步长、训练字典的压缩等级,等等。服务器端200可以设置多组字典训练参数。服务器端200可以基于所述多组字典训练参数和所述训练数据进行训练,得到多个候选字典。所述多个候选字典与所述多组字典训练参数相对应。每组字典训练参数对应一个候选字典。所述多组字典训练参数可以通过人工基于经验进行设置,也可以通过机器学习得到。
S217:从所述多个候选字典中选择压缩效率最高的候选字典作为所述当前字典。
为了保证所述当前字典对所述存储系统中的多个键值数据的整体压缩效率满足使用需求,服务器端200需要从所述多个候选字典中挑选压缩效率最高的候选字典作为所述当前字典。服务器端200可以根据训练过程中,所述多个候选字典中的每个候选字典对所述训练数据的压缩效率,从中选择压缩效率最高的候选字典作为所述当前字典。具体地,步骤S217可以包括:
S217-2:从所述多个候选字典中选择压缩效率最高的候选字典作为目标字典。
具体地,服务器端200可以逐步使用所述多组字典训练参数中的每组字典训练参数对所述训练数据进行字典训练,每次字典训练中生成当前字典训练参数对应的候选字典;服务器端200可以将所述当前字典训练参数对应的候选字典的压缩效率与所述目标字典的压缩效率进行比较,并将压缩效率高的字典作为所述目标字典,也就是说,当所述当前字典训练参数对应的候选字典的压缩效率高于所述目标字典时,将所述当前字典训练参数对应的候选字典的压缩效率作为所述目标字典,当所述当前字典训练参数对应的候选字典的压缩效率低于所述目标字典时,保持所述目标字典不变;当所有的字典训练参数都已完成训练,服务器端200可以得到最终的所述目标字典。需要说明的是,在第一次训练开始前,所述目标字典为空,所述目标字典的压缩效率最低,所述存储系统端存储的所有数据的压缩前的数据大小与所有数据压缩后的数据大小的比值为1。
服务器端200也可以使用所述多组字典训练参数对所述训练数据进行训练,得到所述多个候选字典;对所述多个候选字典的压缩效率由高到低进行排序;将排在第一位的压缩效率对应的压缩字典作为所述目标字典。
S217-4:基于所述验证数据验证所述目标字典的压缩效率。
S217-6:将所述目标字典作为所述当前字典。
为了避免所述训练数据中出现偶发性数据,服务器端200设置了所述验证数据对所述目标字典的压缩效率进行验证。具体地,服务器端200可以使用所述目标字典对所述验证数据中的键值数据进行压缩,得到所述目标字典对所述验证数据的压缩效率。服务器端200可以对比所述目标字典对所述验证数据的压缩效率和所述目标字典对所述训练数据的压缩效率;当所述目标字典对所述验证数据的压缩效率和所述目标字典对所述训练数据的压缩效率的差值超过预设的临界值时,服务器端200可以确定所述训练数据中存在偶发性数据,服务器端200将会重新从所述存储系统中抽取所述训练数据和所述验证数据,重新进行字典训练,生成所述目标字典;当所述目标字典对所述验证数据的压缩效率和所述目标字典对所述训练数据的压缩效率的差值没有超过所述预设的临界值时,服务器端200可以确定所述训练数据中不存在偶发性数据,服务器200可以将所述目标字典作为所述当前字典。
需要说明的是,服务器端200可以选取多组训练数据或多组验证数据。服务器端200可以基于所述多组训练数据和所述多组字典训练参数进行训练生成多个候选字典。每组字典训练参数对应多个候选字典。针对所述每组字典训练参数对应的多个候选字典的压缩效率,从中删除压缩效率异常的压缩字典对应的训练数据。所述压缩效率异常的压缩字典可以是所述异常的压缩字典的压缩效率明显高于或者明显低于其他训练数据的压缩字典。服务器200可以从剩余的训练数据对应的多个候选字典中选择压缩效率最高的候选字典作为所述当前字典。所述多组训练数据的设置可以避免偶发性数据的出现,保证所述当前字典的有效性,提高所述当前字典对所述存储系统数据压缩的效率。
服务器端200使用所述多组验证数据对所述目标字典的压缩效率进行验证,并生成多个验证压缩效率,每个验证压缩效率对应一组验证数据。服务器200可以从所述多组验证数据中删除异常的验证数据。所述异常的验证数据可以是,验证压缩效率明显高于或者明显低于其他验证数据的验证压缩效率。所述多组验证数据的设置可以避免所述验证数据中出现偶发性数据,保证所述当前字典的有效性,提高所述当前字典对所述存储系统数据压缩的效率。
综上所述,本说明书提供的基于键值存储的数据压缩的方法P200和系统100,能够基于所述存储系统中的大量的数据进行字典训练生成所述当前字典,因此,所述当前字典适用性高,可以适用于所述存储系统中的所有数据。传统的在客户端300生成压缩字典进行数据压缩的方案,需针对每个数据生成字典,并将所述数据对应的字典与所述数据对应的压缩键值数据一起存储在所述存储系统中,带来了额外的存储空间消耗。所述方法P200和系统100通过对存储在服务器端200的数据进行分析生成统一的字典,不需要针对每个键值数据生成对应的压缩字典,避免了将字典放入压缩键值数据中带来的额外存储空间消耗,大幅提高了压缩效率,且对小数据仍然有不错的压缩效果。而且,由于压缩字典已经离线分析提前生成,数据压缩的耗时相较客户端300压缩有了明显提高,大大节省了压缩时间,减少延时。特别是对于缓存存储系统来说,由于缓存存储系统中的数据流动性大,数据类型较多,内容差别较大,所述方法P200和系统100提供的基于服务器端200生成的压缩字典可以是适用于所述缓存存储系统中的所有类型的数据,大大提升了压缩效率,节省了压缩时间。
S230:接收客户端300发送的键值对。
服务器端200生成所述当前字典后,可以使用所述当前字典对所述存储系统中的所有键值数据进行数据压缩,并存储压缩后的数据。服务器端200还可以接收客户端300发送的新的键值对数据,并对所述新的键值对数据进行数据压缩和存储。
S250:使用所述当前字典对所述键值对中的键值进行数据压缩,并存储在所述存储系统中。
图5示出了根据本说明书的实施例提供的一种对新数据进行数据压缩的流程图。如图5所示,步骤S250可以包括通过服务器端200的至少一个处理器220执行:
S252:对所述键值对中的键值数据进行校验。所述校验可以包括敏感词汇校验,等等。若校验通过,则对所述键值数据进行数据压缩;若校验不通过,则结束流程,不写入所述键值数据。
S254:使用所述当前字典对所述键值数据进行数据压缩。若压缩成功,则将压缩后的数据写入所述存储系统;若压缩不成功,则将所述键值数据的原始数据写入所述存储系统。当所述键值数据中不包含所述当前字典中的字符串时,所述键值数据不可压缩,即压缩不成功。
如图3所示,所述方法P200还可以包括通过服务器端200的至少一个处理器220执行:
S270:确定所述存储系统的压缩效率下降,更新所述当前字典。
服务器端200可以对所述当前字典对所述存储系统的压缩效率进行监控。所述压缩效率可以是所述当前字典对所述存储系统中的所有数据的整体压缩效率。所述监控可以是实时监控,也可以是定期监控,也可以是在所述存储系统中的数据发生变化的时刻进行监控,等等。当所述当前字典对所述存储系统的整体压缩效率下降时,服务器端200可以自动更新所述当前字典,使得所述当前字典的压缩效率满足使用需求。所述当前字典对所述存储系统的整体压缩效率下降,可以是所述当前字典在当前时刻对所述存储系统的整体压缩效率相对于上一时刻的整体压缩效率下降,也可以是当前字典对所述存储系统的整体压缩效率低于服务器端200预设的整体压缩效率的阈值。
图6示出了根据本说明书的实施例提供的一种更新当前字典的流程图。如图6所示,步骤S270可以包括通过服务器端200的至少一个处理器220执行:
S272:计算所述当前字典在所述当前时刻对所述存储系统的整体压缩效率。
服务器端200可以对所述当前字典对所述存储系统的整体压缩效率进行监控,计算所述当前字典在所述当前时刻所述存储系统的整体压缩效率。
S274:确定所述当前字典在所述当前时刻对所述存储系统的整体压缩效率较上一时刻的整体压缩效率下降超过目标阈值。
服务器端200可以将所述当前字典在所述当前时刻对所述存储系统的整体压缩效率与所述当前字典在上一时刻对所述存储系统的整体压缩效率进行比较。所述上一时刻可以是在所述当前时刻之前服务器端200对所述存储系统的整体压缩效率进行监控的最近的时刻。当所述当前字典在所述当前时刻对所述存储系统的整体压缩效率相对于所述当前字典在上一时刻对所述存储系统的整体压缩效率下降超过所述目标阈值时,服务器端200可以确定所述当前字典对所述存储系统的整体压缩效率下降。
S276:更新所述当前字典。步骤S276可以包括:
S276-2:基于所述当前时刻所述服务器端的存储系统中的多个键值生成候选更新字典。
服务器端200生成所述候选更新字典的方式可以与生成所述当前字典的方式一致。也就是说,服务器端200可以基于所述当前时刻所述存储系统中的多个键值数据,从中随机抽取出一部分键值数据作为训练数据,从中抽取出另一部分键值数据作为验证数据,所述训练数据和所述验证数据的抽取方法可以与步骤S212和步骤S213一致;服务器端200可以设置多组字典训练参数,基于所述多组字典训练参数与所述训练数据进行字典训练,生成多个候选字典,所述候选字典的生成方法可以与步骤S215一致;服务器端200可以从所述多个候选字典中选出压缩效率最高的字典作为所述目标字典;服务器端200可以使用所述验证数据对所述目标字典的压缩效率进行验证;当所述目标字典对所述验证数据的压缩效率和所述目标字典对所述训练数据的压缩效率的差值没有超过所述预设的临界值时,服务器端200可以将所述目标字典作为所述候选更新字典;当所述目标字典对所述验证数据的压缩效率和所述目标字典对所述训练数据的压缩效率的差值超过预设的临界值时,服务器端200将会重新从所述存储系统中抽取所述训练数据和所述验证数据,重新进行字典训练,生成所述目标字典。
S276-4:使用所述候选更新字典对所述存储系统中的所述多个键值进行压缩。
服务器端200生成所述候选更新字典后,使用所述候选更新字典对所述存储系统中的多个键值数据进行压缩,得到所述候选更新字典在所述当前时刻对所述存储系统的整体压缩效率。
S276-6:确定所述候选更新字典对所述存储系统的整体压缩效率高于所述当前字典在所述当前时刻对所述存储系统的整体压缩效率。
S276-8:将所述候选更新字典作为所述当前字典。
服务器端200可以将所述候选更新字典在所述当前时刻对所述存储系统的整体压缩效率与所述当前字典在所述当前时刻对所述存储系统的整体压缩效率进行对比;当所述候选更新字典在所述当前时刻对所述存储系统的整体压缩效率高于所述当前字典在所述当前时刻对所述存储系统的整体压缩效率,或者所述候选更新字典在所述当前时刻对所述存储系统的整体压缩效率相对于所述当前字典在所述当前时刻对所述存储系统的整体压缩效率的上升超过预设的阈值时,又或者所述候选更新字典在所述当前时刻对所述存储系统的整体压缩效率高于所述当前字典在所述当前时刻对所述存储系统的整体压缩效率,并且高于服务器端200预设的整体压缩效率阈值时,服务器端200可以将所述候选更新字典代替所述当前字典;否则,服务器端200重新基于所述存储系统中的多个键值数据抽取训练数据和验证数据,重新生成所述候选更新字典。
如图6所示,步骤S270还可以包括通过服务器端200的至少一个处理器220执行:
S278:使用更新前的当前字典对所述存储系统中存储的压缩键值进行解压。
S279:使用更新后的当前字典对经过所述更新前的当前字典解压的键值进行压缩,得到更新的压缩键值。
当所述当前字典更新后,为了降低所述存储系统中的键值数据的空间,服务器端200可以将所述存储系统中的键值数据应的使用更新前的当前字典压缩的数据替换为使用更新后的当前字典压缩的数据。具体地,服务器端200首先使用所述更新前的当前字典对所述压缩键值数据进行解压,然后使用所述更新后的当前字典对所述解压后的数据再次进行压缩。在所述存储系统中的所有压缩键值数据被替换为更新后的当前字典压缩的数据之前,所述存储系统可以保留所述更新前的当前字典。当客户端300在所述存储系统中的所有压缩键值数据被替换为更新后的当前字典压缩的数据之前向服务器端200发送读取请求时,服务器端200可以首先对客户端300要求读取的键值进行解析,分析所述键值对应的压缩键值数据所使用的压缩字典是更新前的当前字典还是更新后的当前字典,然后使用正确的压缩字典对所述键值对应的压缩键值数据进行解压,得到客户端300读取的键值。
综上所述,本说明书提供的基于键值存储的数据压缩的方法P200和系统100,可以对所述存储系统中的数据的整体压缩效率进行监控,当所述存储系统中的数据的整体压缩效率下降时,服务器端200可以及时发现,并立即对所述当前字典进行更新,使得更新后的所述当前字典对所述存储系统中的数据的整体压缩效率恢复甚至更高,以满足使用需求,进一步降低数据所占用的存储空间。因此,本说明书提供的基于键值存储的数据压缩的方法P200和系统100,可以提升所述存储系统的整体压缩效率,降低数据所占用的存储空间,降低数据存储成本,减少数据压缩耗时。
如图3所示,所述方法P200还可以包括通过服务器端200的至少一个处理器220执行:
S290:读取所述存储系统中的目标键值。
服务器端200不仅可以接收客户端300发送的新的键值对数据,并对所述新的键值对数据中的键值数据进行压缩以及存储在所述存储系统中,服务器端200还可以接收客户端300发送的键值数据读取请求,从所述存储系统中读取客户端300请求读取的键值数据对应的压缩键值数据,并使用对应的压缩字典进行解压得到所述客户端300请求读取的键值数据。为了方面描述,我们将发送键值数据读取请求的客户端标记为目标客户端,客户端300包括所述目标客户端;我们将所述目标客户端请求读取的键值数据标记为目标键值,所述存储系统中的所述多个键值包括所述目标键值。
图7示出了根据本说明书的实施例提供的一种数据读取的流程图。如图7所示,步骤S290可以包括:
S292:接收所述目标客户端发送的对所述目标键值的读取请求。
服务器端200在接收到所述目标客户端发送的对所述目标键值的读取请求后,需先对所述目标键值数据进行解析,分析所述目标键值数据是否被压缩;若所述目标键值数据没有被压缩,则服务器端200将所述目标键值数据对应的原始数据发送给所述目标客户端;若所述目标键值数据被压缩存储在所述存储系统中,则服务器端200需要对所述目标键值的压缩键值数据进行解压。
S294:使用所述当前字典对所述目标键值的压缩键值进行解压,得到所述目标键值。
S296:将所述目标键值发送至所述目标客户端。
服务器端200在确定所述目标键值是压缩键值数据后,需要对所述目标键值的压缩键值数据进行解压。具体地,服务器端200可以获取所述存储系统中的所述目标键值数据对应的压缩键值数据;服务器端200可以使用所述键值数据在被压缩时所使用的所述当前字典对所述压缩键值数据进行解压;服务器端200在对所述压缩键值数据解压成功后,将解压后得到的所述键值数据发送给所述目标客户端;当服务器端200在对所述压缩键值数据解压失败后,则向所述目标客户端发送空信息以及数据读取失败的提示信息。
综上所述,本说明书提供的基于键值存储的数据压缩的方法P200和系统100,能够基于所述存储系统中的大量的数据进行字典训练生成所述当前字典,因此,所述当前字典适用性高,可以适用于所述存储系统中的所有数据。传统的在客户端300生成压缩字典进行数据压缩的方案,需针对每个数据生成字典,并将所述数据对应的字典与所述数据对应的压缩键值数据一起存储在所述存储系统中,带来了额外的存储空间消耗。所述方法P200和系统100通过对存储在服务器端200的数据进行分析生成统一的字典,不需要针对每个键值数据生成对应的压缩字典,避免了将字典放入压缩键值数据中带来的额外存储空间消耗,大幅提高了压缩效率,且对小数据仍然有不错的压缩效果。而且,由于压缩字典已经离线分析提前生成,数据压缩的耗时相较客户端300压缩有了明显提高,大大节省了压缩时间,减少延时。特别是对于缓存存储系统来说,由于缓存存储系统中的数据流动性大,数据类型较多,内容差别较大,所述方法P200和系统100提供的基于服务器端200生成的压缩字典可以是适用于所述缓存存储系统中的所有类型的数据,大大提升了压缩效率,节省了压缩时间。并且,所述方法P200和系统100可以对所述存储系统中的数据的整体压缩效率进行监控,当所述存储系统中的数据的整体压缩效率下降时,服务器端200可以及时发现,并立即对所述当前字典进行更新,使得更新后的所述当前字典对所述存储系统中的数据的整体压缩效率恢复甚至更高,以满足使用需求,进一步降低数据所占用的存储空间。因此,本说明书提供的基于键值存储的数据压缩的方法P200和系统100,可以提升所述存储系统的整体压缩效率,降低数据所占用的存储空间,降低数据存储成本,减少数据压缩耗时。
本说明书另一方面提供一种非暂时性存储介质,存储有至少一组用来基于键值存储的数据压缩的可执行指令,当所述可执行指令被处理器执行时,所述可执行指令指导所述处理器实施本说明书所述的基于键值存储的数据压缩的方法P200的步骤。在一些可能的实施方式中,本说明书的各个方面还可以实现为一种程序产品的形式,其包括程序代码。当所述程序产品在服务器端200上运行时,所述程序代码用于使服务器端200执行本说明书描述的基于键值存储的数据压缩的步骤。用于实现上述方法的程序产品可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在服务器端200上运行。然而,本说明书的程序产品不限于此,在本说明书中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统(例如处理器220)使用或者与其结合使用。所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。所述计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。可以以一种或多种程序设计语言的任意组合来编写用于执行本说明书操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在服务器端200上执行、部分地在服务器端200上执行、作为一个独立的软件包执行、部分在服务器端200上部分在远程计算设备上执行、或者完全在远程计算设备或服务器(服务器端200)上执行。在涉及远程计算设备的情形中,远程计算设备可以通过网络120连接到服务器端200,或者可以连接到外部计算设备。
上述对本说明书特定实施例进行了描述。其他实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者是可能有利的。
综上所述,在阅读本详细公开内容之后,本领域技术人员可以明白,前述详细公开内容可以仅以示例的方式呈现,并且可以不是限制性的。尽管这里没有明确说明,本领域技术人员可以理解本说明书需求囊括对实施例的各种合理改变,改进和修改。这些改变,改进和修改旨在由本说明书提出,并且在本说明书的示例性实施例的精神和范围内。
此外,本说明书中的某些术语已被用于描述本说明书的实施例。例如,“一个实施例”,“实施例”和/或“一些实施例”意味着结合该实施例描述的特定特征,结构或特性可以包括在本说明书的至少一个实施例中。因此,可以强调并且应当理解,在本说明书的各个部分中对“实施例”或“一个实施例”或“替代实施例”的两个或更多个引用不一定都指代相同的实施例。此外,特定特征,结构或特性可以在本说明书的一个或多个实施例中适当地组合。
应当理解,在本说明书的实施例的前述描述中,为了帮助理解一个特征,出于简化本说明书的目的,本说明书将各种特征组合在单个实施例、附图或其描述中。然而,这并不是说这些特征的组合是必须的,本领域技术人员在阅读本说明书的时候完全有可能将其中一部分特征提取出来作为单独的实施例来理解。也就是说,本说明书中的实施例也可以理解为多个次级实施例的整合。而每个次级实施例的内容在于少于单个前述公开实施例的所有特征的时候也是成立的。
本文引用的每个专利,专利申请,专利申请的出版物和其他材料,例如文章,书籍,说明书,出版物,文件,物品等,可以通过引用结合于此。用于所有目的的全部内容,除了与其相关的任何起诉文件历史,可能与本文件不一致或相冲突的任何相同的,或者任何可能对权利要求的最宽范围具有限制性影响的任何相同的起诉文件历史。现在或以后与本文件相关联。举例来说,如果在与任何所包含的材料相关联的术语的描述、定义和/或使用与本文档相关的术语、描述、定义和/或之间存在任何不一致或冲突时,使用本文件中的术语为准。
最后,应理解,本文公开的申请的实施方案是对本说明书的实施方案的原理的说明。其他修改后的实施例也在本说明书的范围内。因此,本说明书披露的实施例仅仅作为示例而非限制。本领域技术人员可以根据本说明书中的实施例采取替代配置来实现本说明书中的申请。因此,本说明书的实施例不限于申请中被精确地描述过的实施例。
Claims (12)
1.一种基于键值存储的数据压缩的方法,包括:
基于服务器端的存储系统中的多个键值生成当前字典;
接收客户端发送的键值对;以及
使用所述当前字典对所述键值对中的键值进行数据压缩并存储在所述存储系统中。
2.如权利要求1所述的方法,其中,所述存储系统包括缓存存储系统。
3.如权利要求1所述的方法,其中,所述基于所述服务器的存储系统中的多个键值生成当前字典,包括:
从所述存储系统中的所述多个键值中选取N个键值作为训练数据,所述N为大于1的整数;
设置字典训练参数,基于所述字典训练参数和所述训练数据训练字典,得到多个候选字典;以及
从所述多个候选字典中选择压缩效率最高的候选字典作为所述当前字典。
4.如权利要求3所述的方法,其中,所述基于所述服务器的存储系统中的多个键值生成当前字典,还包括:
从所述存储系统中的所述多个键值中选取M个键值作为验证数据,所述M为大于1的整数;
所述从所述多个候选字典中选择压缩效率最高的候选字典作为所述当前字典,包括:
从所述多个候选字典中选择压缩效率最高的候选字典作为目标字典;
基于所述验证数据验证所述目标字典的压缩效率;以及
将所述目标字典作为所述当前字典。
5.如权利要求4所述的方法,其中,所述M与所述N相等。
6.如权利要求1所述的方法,其中,还包括:
确定所述存储系统的压缩效率下降,更新所述当前字典。
7.如权利要求6所述的方法,其中,所述确定所述存储系统的压缩效率下降,更新所述当前字典,包括:
计算所述当前字典在当前时刻对所述存储系统的整体压缩效率;
确定所述当前字典在所述当前时刻对所述存储系统的整体压缩效率较上一时刻的整体压缩效率下降超过目标阈值;以及
更新所述当前字典。
8.如权利要求7所述的方法,其中,所述更新所述当前字典,包括:
基于所述当前时刻所述服务器端的存储系统中的多个键值生成候选更新字典;
使用所述候选更新字典对所述存储系统中的所述多个键值进行压缩;
确定所述候选更新字典对所述存储系统的整体压缩效率高于所述当前字典在所述当前时刻对所述存储系统的整体压缩效率;以及
将所述候选更新字典作为所述当前字典。
9.如权利要求7所述的方法,其中,所述确定所述存储系统的压缩效率下降,更新所述当前字典,还包括:
使用更新前的当前字典对所述存储系统中存储的压缩键值进行解压;以及
使用更新后的当前字典对经过所述更新前的当前字典解压的键值进行压缩,得到更新的压缩键值。
10.如权利要求1所述的方法,其中,还包括:
读取所述存储系统中的目标键值。
11.如权利要求10所述的方法,其中,所述读取所述存储系统中的目标键值,包括:
接收目标客户端发送的对所述目标键值的读取请求,所述客户端包括所述目标客户端,所述多个键值包括所述目标键值;
使用所述当前字典对所述目标键值应的压缩键值进行解压,得到所述目标键值;以及
将所述目标键值发送至所述目标客户端。
12.一种基于键值存储的数据压缩的系统,包括:
至少一个存储介质,包括至少一个指令集,用于基于键值存储的数据压缩;以及
至少一个处理器,同所述至少一个存储介质通讯连接,
其中,当所述系统运行时,所述至少一个处理器读取所述至少一个指令集,并且根据所述至少一个指令集的指示执行权利要求1-11中任一项所述的基于键值存储的数据压缩的方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010693451.3A CN111782660A (zh) | 2020-07-17 | 2020-07-17 | 基于键值存储的数据压缩的方法和系统 |
EP21181445.4A EP3940550A1 (en) | 2020-07-17 | 2021-06-24 | Data compression methods and systems based on key-value store |
US17/361,096 US11514003B2 (en) | 2020-07-17 | 2021-06-28 | Data compression based on key-value store |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010693451.3A CN111782660A (zh) | 2020-07-17 | 2020-07-17 | 基于键值存储的数据压缩的方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111782660A true CN111782660A (zh) | 2020-10-16 |
Family
ID=72763406
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010693451.3A Pending CN111782660A (zh) | 2020-07-17 | 2020-07-17 | 基于键值存储的数据压缩的方法和系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11514003B2 (zh) |
EP (1) | EP3940550A1 (zh) |
CN (1) | CN111782660A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112803950A (zh) * | 2021-01-05 | 2021-05-14 | 上海臣星软件技术有限公司 | 一种数据压缩方法、装置、设备及计算机存储介质 |
CN115099193A (zh) * | 2022-08-22 | 2022-09-23 | 北京永洪商智科技有限公司 | 一种分布式数据压缩存储方法及系统 |
US20230060276A1 (en) * | 2021-08-24 | 2023-03-02 | Lyft, Inc. | Compressing digital metrics for transmission across a network utilizing a graph-based compression dictionary and time slice delta compression |
CN115801902A (zh) * | 2023-02-09 | 2023-03-14 | 北京特立信电子技术股份有限公司 | 一种网络访问请求数据的压缩方法 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115774699B (zh) * | 2023-01-30 | 2023-05-23 | 本原数据(北京)信息技术有限公司 | 数据库共享字典压缩方法、装置、电子设备及存储介质 |
CN117041359B (zh) * | 2023-10-10 | 2023-12-22 | 北京安视华业科技有限责任公司 | 一种信息数据高效压缩传输方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110285556A1 (en) * | 2010-05-19 | 2011-11-24 | Red Hat, Inc. | Parallel Compression for Dictionary-Based Sequential Coders |
US20120078978A1 (en) * | 2010-09-28 | 2012-03-29 | Yiftach Shoolman | System, methods, and media for compressing non-relational database objects |
US20170279932A1 (en) * | 2016-03-25 | 2017-09-28 | Amazon Technologies, Inc. | Compression dictionary generation service system and method |
US20180336217A1 (en) * | 2017-05-19 | 2018-11-22 | Takashi Suzuki | Computerized methods of data compression and analysis |
CN110532466A (zh) * | 2019-08-21 | 2019-12-03 | 广州华多网络科技有限公司 | 直播平台训练数据的处理方法、装置、存储介质及设备 |
CN111193752A (zh) * | 2020-02-28 | 2020-05-22 | 广州市百果园信息技术有限公司 | 一种数据压缩的方法、装置、压缩服务器和存储介质 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030030575A1 (en) * | 2001-05-07 | 2003-02-13 | Harmonic Data Systems Ltd. | Lossless data compression |
JP4456554B2 (ja) * | 2005-10-31 | 2010-04-28 | 富士通株式会社 | データ圧縮方法及び圧縮データ送信方法 |
US20100223237A1 (en) * | 2007-11-05 | 2010-09-02 | University Of Florida Research Foundation, Inc. | Lossless data compression and real-time decompression |
US8131688B2 (en) * | 2009-08-26 | 2012-03-06 | Lsi Corporation | Storage system data compression enhancement |
US9973597B1 (en) * | 2014-12-10 | 2018-05-15 | Amazon Technologies, Inc. | Differential dictionary compression of network-accessible content |
CN105893337B (zh) * | 2015-01-04 | 2020-07-10 | 伊姆西Ip控股有限责任公司 | 用于文本压缩和解压缩的方法和设备 |
US10275229B2 (en) * | 2015-12-16 | 2019-04-30 | Sap Se | Encoded data object notation persistence format |
US11086843B2 (en) * | 2017-10-19 | 2021-08-10 | Adobe Inc. | Embedding codebooks for resource optimization |
-
2020
- 2020-07-17 CN CN202010693451.3A patent/CN111782660A/zh active Pending
-
2021
- 2021-06-24 EP EP21181445.4A patent/EP3940550A1/en not_active Ceased
- 2021-06-28 US US17/361,096 patent/US11514003B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110285556A1 (en) * | 2010-05-19 | 2011-11-24 | Red Hat, Inc. | Parallel Compression for Dictionary-Based Sequential Coders |
US20120078978A1 (en) * | 2010-09-28 | 2012-03-29 | Yiftach Shoolman | System, methods, and media for compressing non-relational database objects |
US20170279932A1 (en) * | 2016-03-25 | 2017-09-28 | Amazon Technologies, Inc. | Compression dictionary generation service system and method |
US20180336217A1 (en) * | 2017-05-19 | 2018-11-22 | Takashi Suzuki | Computerized methods of data compression and analysis |
CN110532466A (zh) * | 2019-08-21 | 2019-12-03 | 广州华多网络科技有限公司 | 直播平台训练数据的处理方法、装置、存储介质及设备 |
CN111193752A (zh) * | 2020-02-28 | 2020-05-22 | 广州市百果园信息技术有限公司 | 一种数据压缩的方法、装置、压缩服务器和存储介质 |
Non-Patent Citations (3)
Title |
---|
HE WANG等: "Flexible Network Binarization with Layer-Wise Priority", 2018 25TH IEEE INTERNATIONAL CONFERENCE ON IMAGE PROCESSING (ICIP) * |
孙靖超;芦天亮;: "基于HBase的列存储压缩策略的选择优化", 计算机应用研究, no. 05 * |
王冠男;: "云存储中一种改进的LZW数据压缩算法研究", 科技通报, no. 07 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112803950A (zh) * | 2021-01-05 | 2021-05-14 | 上海臣星软件技术有限公司 | 一种数据压缩方法、装置、设备及计算机存储介质 |
US20230060276A1 (en) * | 2021-08-24 | 2023-03-02 | Lyft, Inc. | Compressing digital metrics for transmission across a network utilizing a graph-based compression dictionary and time slice delta compression |
US11902402B2 (en) | 2021-08-24 | 2024-02-13 | Bitdrift, Inc. | Compressing digital metrics for transmission across a network utilizing a graph-based compression dictionary and time slice delta compression |
US11949764B2 (en) * | 2021-08-24 | 2024-04-02 | Bitdrift, Inc. | Compressing digital metrics for transmission across a network utilizing a graph-based compression dictionary and time slice delta compression |
CN115099193A (zh) * | 2022-08-22 | 2022-09-23 | 北京永洪商智科技有限公司 | 一种分布式数据压缩存储方法及系统 |
CN115801902A (zh) * | 2023-02-09 | 2023-03-14 | 北京特立信电子技术股份有限公司 | 一种网络访问请求数据的压缩方法 |
CN115801902B (zh) * | 2023-02-09 | 2023-04-11 | 北京特立信电子技术股份有限公司 | 一种网络访问请求数据的压缩方法 |
Also Published As
Publication number | Publication date |
---|---|
US11514003B2 (en) | 2022-11-29 |
EP3940550A1 (en) | 2022-01-19 |
US20220019562A1 (en) | 2022-01-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111782660A (zh) | 基于键值存储的数据压缩的方法和系统 | |
US10572370B2 (en) | Test-assisted application programming interface (API) learning | |
KR102225822B1 (ko) | 인공지능 수행을 위한 학습 데이터 생성장치 및 방법 | |
US9015657B2 (en) | Systems and methods for developing and delivering platform adaptive web and native application content | |
CN110019873B (zh) | 人脸数据处理方法、装置及设备 | |
CN111340220B (zh) | 用于训练预测模型的方法和装置 | |
CN111680799B (zh) | 用于处理模型参数的方法和装置 | |
CN116700907B (zh) | 服务调用需求文档存储方法、装置、电子设备和可读介质 | |
CN113779004A (zh) | 一种数据校验的方法和装置 | |
CN112363814A (zh) | 任务调度方法、装置、计算机设备及存储介质 | |
CN117094729A (zh) | 请求处理方法、装置、计算机设备及存储介质 | |
CN113610228B (zh) | 神经网络模型的构建方法及装置 | |
CN112906404B (zh) | 翻译文案校验方法及电子设备和可读存储介质 | |
CN114218166A (zh) | 数据处理方法、装置、电子设备及可读存储介质 | |
CN112947928A (zh) | 代码评价的方法、装置、电子设备和存储介质 | |
CN108509478B (zh) | 规则引擎文件的拆分调用方法、电子装置及存储介质 | |
CN113239296B (zh) | 小程序的展示方法、装置、设备和介质 | |
CN118035594B (zh) | 生产文档访问方法、装置、电子设备与计算机可读介质 | |
CN114492413B (zh) | 文本校对方法、装置和电子设备 | |
CN112527802B (zh) | 基于键值数据库的软链接方法及装置 | |
CN111881128B (zh) | 大数据回归验证方法及大数据回归验证装置 | |
US20230004379A1 (en) | Service method for head unit software, head unit software and related devices | |
CN106776666B (zh) | 基于moodle网站的数据缓存方法和装置 | |
CN117874073A (zh) | 一种搜索优化方法、装置、设备及其存储介质 | |
CN115392486A (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 |