CN104077272A - 一种字典压缩的方法和装置 - Google Patents

一种字典压缩的方法和装置 Download PDF

Info

Publication number
CN104077272A
CN104077272A CN201410283510.4A CN201410283510A CN104077272A CN 104077272 A CN104077272 A CN 104077272A CN 201410283510 A CN201410283510 A CN 201410283510A CN 104077272 A CN104077272 A CN 104077272A
Authority
CN
China
Prior art keywords
word string
hash
key character
gauge outfit
character
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
CN201410283510.4A
Other languages
English (en)
Other versions
CN104077272B (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.)
Guangdong Gaohang Intellectual Property Operation Co ltd
Haining hi tech Zone Science and Innovation Center Co.,Ltd.
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201410283510.4A priority Critical patent/CN104077272B/zh
Publication of CN104077272A publication Critical patent/CN104077272A/zh
Application granted granted Critical
Publication of CN104077272B publication Critical patent/CN104077272B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例提供了一种字典压缩的方法和装置,能够减小哈希链表头所占用的存储空间。该方法包括:获取通信报文中第一字串的个数占总字串个数的比值x,其中,通信报文中的每个字串都由m个字符组成,第一字串是由关键字符组成的字串,关键字符的个数为n,字典的大小为H;判断n的m次方是否小于H*x;若是,分别为第一哈希链表头和第二哈希链表头分配存储空间,第一哈希链表头的存储空间大小为n的m次方,第二哈希链表头的存储空间为H*(1-x);判断通信报文中的第二字串是否属于第一字串;若是,通过第一哈希函数计算第二字串的哈希值;若不是,通过第二哈希函数计算第二字串的哈希值。该方法适用于计算机技术领域。

Description

一种字典压缩的方法和装置
技术领域
本发明涉及计算机技术领域,尤其涉及一种字典压缩的方法和装置。
背景技术
随着互联网技术、云计算技术的发展,手机等用户群体的激增以及服务的多样化,越来越多的数据需要存储,而这些海量数据的存储成本是非常高的。为了缓解这个问题,通常在数据进行存储前会对数据进行压缩处理,经过压缩后的数据可以大幅度提高磁盘的有效容量,从而有效的降低互联网数据中心的成本。
在压缩算法中,字典压缩算法LZ77及其变种是通用压缩算法GZIP中的重要的一部分。在字典压缩算法中,通常由字典压缩模块和输出模块组成,其中,字典压缩模块对一个文档中的数据进行压缩,输出模块输出压缩结果。字典压缩模块通常由三部分组成,字典(历史数据窗口中的历史数据)以及字典所对应的索引,其中,字典所对应的索引由哈希链表头和哈希链表构成。
具体的压缩过程,举例来说,对于字串1,字典压缩模块先计算其哈希值,将其哈希值以及该字串1在历史数据窗口的地址信息的对应关系存入哈希链表头中,若该哈希值所对应的存储空间已经有其他字串,例如字串2的地址信息,则将字串2的地址信息存放在哈希链表中,将字串1的地址信息存放在哈希链表头的该哈希值所对应的存储空间中。
再通过该字串1的哈希值,在哈希链表中寻找历史数据窗口中是否出现过与该字串具有相同哈希值的字串,若出现过,例如上述字串2,且假设所述字串2与所述字串1是完全相同的字串,则获取字串2的地址,并将以字串1为开头的字串,以及以与字串2为开头的字串进行匹配,例如以字串2为开头的字串为字串2,字串3,字串4,字串5…,以字串1为开头的字串为字串1,字串7,字串8,字串9…,其中,字串7和字串3完全相同,字串4和字串9完全相同,字串5和字串9不相同…,则以所述字串1为开头的字串1,字串7和字串8组成的长字串,就可以根据字串2,字串3和字串4的位置和长度进行编码,用所述编码代替所述字串1,字串7和字串8,从而达到将字串1,字串7和字串8进行压缩的目的。
此时,字串1,字串7和字串8作为历史数据存放在历史数据窗口中,成为字典的一部分,字串1,字串7和字串8的哈希值和每个字串对应的在历史数据窗口的地址信息被存放在哈希链表或哈希链表中,将字串1,字串7和字串8进行编码后得到的压缩结果从所述输出模块被输出。
在现有技术中,为尽量避免哈希冲突,为哈希链表头和哈希链表分配的存储空间与历史数据窗口的大小一致,即历史数据窗口中的数据的哈希值与其地址信息所占用的哈希链表头的存储空间为历史数据窗口大小。
历史数据窗口的大小通常设置为16K或者32K,以设置为16K为例,字典压缩模块所需要的存储空间就是48K(字典,哈希链表头和哈希链表各16K),压缩模块所占用的总的存储空间较大。
发明内容
本发明的实施例提供一种字典压缩的方法和装置,用于解决字典压缩的过程中字典压缩模块需要占用的存储空间过大的问题。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,本发明实施例提供了一种字典压缩的方法,该方法包括:
获取通信报文中第一字串的个数占总字串个数的比值x,其中,所述通信报文中的每个字串都由m个字符组成,所述第一字串是由关键字符组成的字串,所述关键字符的个数为n,字典的大小为H;
判断n的m次方是否小于H*x;
若是,分别为第一哈希链表头和第二哈希链表头分配存储空间,其中,所述第一哈希链表头的存储空间大小为n的m次方,所述第二哈希链表头的存储空间为H*(1-x);
判断所述通信报文中的第二字串是否属于所述第一字串;
若是,通过第一哈希函数计算所述第二字串的哈希值,并将所述第二字串的哈希值以及所述第二字串在字典中的地址信息存入第一哈希链表头中;
若不是,通过第二哈希函数计算所述第二字串的哈希值,并将所述第二字串的哈希值以及所述第二字串在字典中的地址信息存入第二哈希链表头中。
在第一种可能的实施方式中,结合第一方面,所述获取通信报文中第一字串的个数占总字串个数的比值x之前,该方法还包括:
按照出现次数由大到小的顺序,获取所述通信报文的L个字符中的前n个字符作为所述关键字符,其中,所述L个字符为所述通信报文中所有两两不同的字符。
在第二种可能的实施方式中,结合第一种可能的实施方式,所述按照出现次数由大到小的顺序,获取所述通信报文的L个字符中的前n个字符作为所述关键字符之后,该方法还包括:
设置第1至第M个关键字符组,所述每个关键字符组中的字符都属于所述n个字符,所述每个关键字符组中的字符数小于n,所述M大于等于2;
获取所述通信报文中第三字串的个数占中字串个数的比值y,其中,所述第三字串是由所述第1至第M个关键字符组中的任一关键字符组中的字符组成的字串,所述通信报文中的每个字串都由m个字符组成,字典的大小为H;
获取第1至M个关键字符组中每个关键字符组的关键字符的个数的m次方的和值T;
判断所述和值T是否小于H*y;
若是,为每个关键字符组分配对应的哈希链表头的存储空间,并为所述第二哈希链表头分配存储空间,其中,所述第N个关键字符组所对应的哈希链表头的存储空间的大小为t的m次方,其中,所述t为所述第N个关键字符组中关键字符的个数,所述第二哈希链表头的存储空间的大小为H*(1-y);
判断所述通信报文中的第二字串是否是由第N个关键字符组中的字符组成的,其中,所述1<=N<=M;
若是,通过所述第N个关键字符组所对应的哈希函数计算所述第二字串的哈希值,并将所述第二字串的哈希值以及所述第二字串在字典中的地址信息存入所述第N个关键字符组所对应的哈希链表头中;
若不是,通过所述第二哈希函数计算所述第二字串的哈希值,并将所述第二字串的哈希值以及所述第二字串在字典中的地址信息存入第二哈希链表头中。
在第三种可能的实施方式中,结合第二种可能的实施方式,所述第N个关键字符组所对应的哈希函数为全映射函数或非全映射函数,所述第二哈希函数为非全映射函数。
第二方面,本发明实施例提供了一种字典压缩的装置,该装置包括:第一获取单元,第一判断单元、分配单元、第二判断单元和计算单元;
所述第一获取单元,用于获取通信报文中第一字串的个数占总字串个数的比值x,其中,所述通信报文中的每个字串都由m个字符组成,所述第一字串是由关键字符组成的字串,所述关键字符的个数为n,字典的大小为H;
所述第一判断单元,用于判断n的m次方是否小于H*x;
所述分配单元,用于分别为第一哈希链表头和第二哈希链表头分配存储空间,其中,所述第一哈希链表头的存储空间大小为n的m次方,所述第二哈希链表头的存储空间为H*(1-x);
所述第二判断单元,用于判断所述通信报文中的第二字串是否属于所述第一字串;
所述计算单元,用于若是,通过第一哈希函数计算所述第二字串的哈希值,并将所述第二字串的哈希值以及所述第二字串在字典中的地址信息存入第一哈希链表头中;
若不是,通过第二哈希函数计算所述第二字串的哈希值,并将所述第二字串的哈希值以及所述第二字串在字典中的地址信息存入第二哈希链表头中。
在第一种可能的实施方式中,结合第二方面,该装置还包括:第二获取单元;
所述第二获取单元,用于按照出现次数由大到小的顺序,获取所述通信报文的L个字符中的前n个字符作为所述关键字符,其中,所述L个字符为所述通信报文中所有两两不同的字符。
在第二种可能的实施方式中,结合第一种可能的实施方式,该装置还包括:设置单元;
所述设置单元,用于设置第1至第M个关键字符组,所述每个关键字符组中的字符都属于所述n个字符,所述每个关键字符组中的字符数小于n,所述M大于等于2;
所述第一获取单元,还用于获取所述通信报文中第三字串的个数占中字串个数的比值y,其中,所述第三字串是由所述第1至第M个关键字符组中的任一关键字符组中的字符组成的字串,所述通信报文中的每个字串都由m个字符组成,字典的大小为H;
获取第1至M个关键字符组中每个关键字符组的关键字符的个数的m次方的和值T;
所述第一判断单元,用于判断所述和值T是否小于H*y;
所述分配单元,用于为每个关键字符组分配对应的哈希链表头的存储空间,并为所述第二哈希链表头分配存储空间,其中,所述第N个关键字符组所对应的哈希链表头的存储空间的大小为t的m次方,其中,所述t为所述第N个关键字符组中关键字符的个数,所述第二哈希链表头的存储空间的大小为H*(1-y);
所述第二判断单元,用于判断所述通信报文中的第二字串是否是由第N个关键字符组中的字符组成的,其中,所述1<=N<=M;
所述计算单元,用于若是,通过所述第N个关键字符组所对应的哈希函数计算所述第二字串的哈希值,并将所述第二字串的哈希值以及所述第二字串在字典中的地址信息存入所述第N个关键字符组所对应的哈希链表头中;
若不是,通过所述第二哈希函数计算所述第二字串的哈希值,并将所述第二字串的哈希值以及所述第二字串在字典中的地址信息存入第二哈希链表头中。
在第三种可能的实施方式中,结合第二种可能的实施方式,所述第N个关键字符组所对应的哈希函数为全映射函数或非全映射函数,所述第二哈希函数为非全映射函数。
本发明实施例提供了一种字典压缩的方法和装置,该方法包括:获取通信报文中第一字串的个数占总字串个数的比值x,其中,所述通信报文中的每个字串都由m个字符组成,所述第一字串是由关键字符组成的字串,所述关键字符的个数为n,字典的大小为H;判断n的m次方是否小于H*x;若是,分别为第一哈希链表头和第二哈希链表头分配存储空间,其中,所述第一哈希链表头的存储空间大小为n的m次方,所述第二哈希链表头的存储空间为H*(1-x);判断所述通信报文中的第二字串是否属于所述第一字串;若是,通过第一哈希函数计算所述第二字串的哈希值,并将所述第二字串的哈希值以及所述第二字串在字典中的地址信息存入第一哈希链表头中;若不是,通过第二哈希函数计算所述第二字串的哈希值,并将所述第二字串的哈希值以及所述第二字串在字典中的地址信息存入第二哈希链表头中。通过该方法,可得第一哈希链表头与第二哈希链表头的和值为nm+H(1-x),由因为nm<H*x,则nm+H(1-x)<H,即通过本发明方案得到的总的哈希链表头所占用的存储空间小于现有技术中哈希链表头所占用的存储空间,并且,若所述第一哈希函数为全映射函数,可以使得第一哈希链表头中的哈希冲突为0,与现有技术相比,降低了总的哈希冲突。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为一种现有技术提供的字符的哈希值与地址信息的关系图;
图2为另一种现有技术提供的字符的哈希值与地址信息的关系图;
图3为本发明实施例提供的一种字典压缩的方法流程图;
图4为本发明实施例提供的另一种字典压缩的方法流程图;
图5为本发明实施例提供的一种字典压缩的装置示意图;
图6为本发明实施例提供的另一种字典压缩的装置示意图;
图7为本发明实施例提供的又一种字典压缩的装置示意图;
图8为本发明实施例提供的一种计算机系统示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在现有技术中,举例来说,对于字串the brown fox jumped overthe brown foxy jumping frog进行压缩,压缩过程如下:
通过预设的哈希函数计算每个字符的哈希值,将字符t放入历史数据窗口,成为字典的一部分,计算字符t的哈希值,将t的哈希值以及t在历史数据窗口的位置存放在哈希链表头中,在哈希链表头以及哈希链表中查找没有与t的哈希值相同的字符,则将t由输出模块输出;
依次的,将字符h,e,空格,b,r,o,w,n,空格,f,o,x,空格,j,u,m,p,e,d,空格o,v,e,r,空格进行与上述字符t相同的处理过程,并由输出模块将上述字符依次输出(前后只有一个字符相同的不做压缩,例如,前面有一个字符o,后面有一个字符o,但前面的字符o的下一个字符与后一个字符o的下一个字符不同,此时不将后面的字符o进行压缩)。
此时,历史数据窗口中有26个字符,即字典有26个字符,分别为th e\x20(空格)b r o w n\x20(空格)f o x\x20(空格)j u mp e d\x20(空格)o v e r\x20(空格),这26个字符在历史数据窗口的位置为0至25。
字典中的每个字符的地址信息如下:
t:0表示以t为起始索引的字典出现在历史数据窗口的0位置;
h:1表示以h为起始索引的字典出现在历史数据窗口的1位置;
e:23,18,2表示以e为起始索引的字典出现在历史数据窗口的位置为23,18和2;
\x20(空格):25,20,13,9,3表示以空格为起始索引的字典出现在历史数据窗口的位置为25,20,13,9和3;
同样的,还有以b、r、o、w、n、f、x、j、u、m、p、d、v这几个字符为起始索引的字典出现在历史数据窗口中的位置。
具体的,举例来说,假设哈希函数为f=(int)x%15,即将一个字符转换为ASCII码值(0-255)x后,再将其值除以15,然后将除以15后的余数取整。其中,\x20b d e f h j m n o p r t u v w x的ASCII码根据ASCII码表查得分别为:32、98、100、101、102、104、106、109、110、111、112、114、116、117、118、119和120,通过哈希函数的计算,结果如下表1-1:
表1-1
上述表1-1可以转换为如图1所示的格式:
即哈希值为0的字符为x,x在历史数据窗口的位置为12,哈希值为1的字符为j,j在历史数据窗口的位置为14,哈希值为2的字符为\x20,\x20在历史数据窗口的位置为25、20、13、9和3…哈希值为14的字符为h和w,所述h和w在历史数据窗口的位置为7和1。
表示为哈希链表头和哈希链表的形式即为如图2所示,其中,head表示哈希链表头,pre表示哈希链表。
结合head和prev,Head[0]=12,prev[12]=NULL,其中,NULL表示空,即哈希值为0的字符在历史数据窗口的位置为12;
Head[1]=14,prev[14]=NULL,即哈希值为1的字符在历史数据窗口的位置为14;
Head[2]=25,prev[25]=20,prev[20]=13,prev[13]=9,prev[9]=3,prev[3]=NULL,即哈希值为2的字符在历史数据窗口的位置为25,20,13,9和3;
Head[14]=7,prev[7]=1,prev[1]=NULL,即哈希值为14的字符在历史数据窗口的位置为7和1。
这样,获得一个字符的哈希值,就可以通过该哈希值获得该字符在历史数据窗口的位置(地址信息)。
至此,字典中有26个字符,在哈希链表和哈希链表头中有这26个字符中每个字符的哈希值与每个字符的地址信息的对应关系。接着,按照上述步骤,将字串the brown fox jumped over the brown foxy jumping frog中的第27个字符,即字符t放入历史数据窗口中,通过哈希函数为f=(int)x%15计算t的哈希值,得到t的哈希值为11,则根据图2,Head[11]=23,prev[23]=18,prev[18]=2,prev[2]=0,prev[0]=NULL,则哈希值为11的字符在历史数据窗口的位置为23、18、2、和0,则依次取出字典中位置为23、18、2和0位置为起始位置的字串进行比较:
23:er the brown foxy jumping frog
18:ed over the brown foxy jumping frog
2:e brown fox jumped over the brown foxy jumping frog
0:the brown fox jumped over the brown foxy jumping frog
当前位置的字串为:
27(当前位置):the brown foxy jumping frog
将当前位置的字串一次与从位置23开始的字串,从位置18开始的字串,从位置2开始的字串和从位置0开始的字串进行匹配,可得从位置0可以匹配到一个长字串the brown fox,匹配的字串长度为13,可以看到在0位置可以匹配到一串长的匹配,匹配长度为13。那么当前这13个字符用13(匹配到的字串的长度),26(回退26个位置)表示,表示当前的字符子串(长度13)与回退26个位置的13个字符是一致的,解压缩可以,回退26个位置开始取13个字符到这里。
即:前一个序列的the brown fox出现在26个字符之前,序列的长度是13个字符。此时,可以通过编码的方式将以第27个字符t开头的长度为13的字串进行压缩,例如,假定存在两种编码选项:8bit的指针和4bit的长度,或者12bit的指针和6bit的长度。使用2bit的首部来指示选择了哪种选项,00表示第一种选项,01表示第二种选项。因此,the brownfox的第二次出现被编码为<00b><26d><13d>,或者00000110101101,即用编码<00b><26d><13d>或00000110101101代替第二次出现的字串thebrown fox从输出模块输出,从而达到了将一个字串进行压缩的目的。
当然,the brown fox中的字符t以后的12个字符he brown fox,也应该依次将每个字符放入历史数据窗口中成为字典的一部分,并一次计算每个字符的哈希值,将其在历史数据窗口的地址信息根据哈希值存储哈希链表头或哈希链表中。
当然,在实际的压缩过程中,通常不会依次计算每个字符的哈希值,因为这样计算以及匹配的次数太多,一般情况下,会通过哈希函数计算一个字串的哈希值,并将根据该字串的哈希值将该字串在历史数据窗口的地址信息存储哈希链表头或哈希链表中。
结合上述背景知识,本发明实施例提供了一种字典压缩的方法,结合图3,该方法包括:
301、获取通信报文中第一字串的个数占总字串个数的比值x,其中,所述通信报文中的每个字串都由m个字符组成,所述第一字串是由关键字符组成的字串,所述关键字符的个数为n,字典的大小为H。
按照齐普夫定律,文档中的单词按照出现的次数排序,y是排名第x的单词在文档中出现的次数,那么有公式y=cx^(-1/2),c是常数。排名越靠后,出现次数成指数下降。那么对于一个文档中的字符有更明显的指数递减现象。
因此,可以将一个通信报文中的L个字符按照出现频率由大到小的顺序进行排序,获取排序结果中的前n个字符作为关键字符,其中,所述L个字符为所述通信报文中所有两两不同的字符。
遍历所述通信报文中的所有字串,获取第一字串的个数与总字串的个数,其中,所述第一字串是包含的字符都是预设的关键字符的字串,获取所述第一字串占所述通信报文中总字串的比值x,其中,所述通信报文中的每个字串都由m个字符组成,具体的,通常m为3。
当然,对于每个通信报文,在压缩之前可以通过上述方法获取该报文的n个关键字符,也可以先通过上述方法获取第一报文的n个关键字符,当对第二报文进行压缩时,判断第二报文是否与所述第一报文预设相关,例如,所述第二报文与所述第一报文都是描述同一事物的报文,则对所述第二报文进行压缩时,可以将通过所述第一报文获取的n个关键字符作为所述第二报文的n个关键字符。
还可以对某一类报文,预设该类报文的n个关键字符,在对一个通信报文进行压缩时,判断该通信报文是否属于该类报文,若是,则将预设的该类通信报文的n个关键字符作为所述待压缩的通信报文的n个关键字符,具体的,还可以通过其他方式设置所述n个关键字符,本发明实施例对比不做限定。
302、判断n的m次方是否小于H*x。
在现有技术中,字典的大小为历史数据窗口,通常设置为16K或者32K,哈希链表头和哈希链表的大小通常与字典大小一致,也是历史数据窗口的大小。
其中,将哈希链表头设置为历史数据窗口大小的原因是:在现有技术中,通常用一个字串(3个字符)做索引,由于共有256个字符的种类,则3个字符组成的字串的所有组合有2563=224,即16M,若使用全映射函数计算每个字串的哈希值,则所需要的哈希链表头的存储空间应为16M大小(需要说明的是,结合图1,在哈希链表头中,哈希值有一定的排列顺序,例如,哈希值为2的字符的在历史数据窗口的地址信息被存放字哈希值2所对应的存储空间中,哈希值为4的字符在历史数据窗口的地址信息被存放在哈希值4所对应的存储空间中,字典中虽然没有哈希值为3的字符,但哈希值3以及哈希值为3所对应的存储空间是必须要被分配的,因此,若使用全映射函数,则实际被占用的哈希链表头的存储空间为16M),所占用的存储空间过大,因此,在现有技术中,通常用非全映射函数计算每个字串的哈希值。
需要说明的是,全映射哈希函数的输入和输出是一一对应的关系,即通过一个字串,可以唯一确定该字串的哈希值,通过一个哈希值,也可以唯一确定一个字串;而非全映射的哈希函数,可能会出现两个或者多个字串对应一个哈希值的情况,此时,就有可能就会造成哈希冲突。
举例来说,上述例子中对字串he brown fox jumped over the brownfoxy jumping frog进行压缩的过程中,在第二步建立字典索引的过程中,所取的哈希函数为f=(int)x%15,即将一个字符x转换为其ASCII码值(0-255),再将其值除以15,然后将除以15后的余数取整,这就是一个非全映射的哈希函数,结合表1-1,举例来说,字符h和字符w的哈希值都是14,字符t和字符e的哈希值都是11,也就是说,一个哈希值可能会映射到两个不同的字符上。
再结合第三步中被压缩的字符串与字典中的字符串的最长匹配过程,当将the brown foxy jumping frog进行压缩时,计算该字串的第一个字符的哈希值为11,应该从字典中的以t开头的字串进行匹配才可能会匹配成功,但是,由于t和e的哈希值相同,都是11,则获取到哈希值为11的字符的地址信息为位置23、18、2和0,但位置23,18和2的字符都是e而不是t,这样,需要进行四次匹配,即分别从以位置23、18、2和0的字符为开头的字串进行匹配,找到匹配长度最长的字串。
但是,如果在计算每个字符的哈希值的过程中,用的是全映射函数而不是非全映射函数,则字符t的哈希值是唯一的,当将the brown foxy jumpingfrog进行压缩时计算出第一个字符t的哈希值,就能找到历史数据中以t为开头的字串,从而进行匹配,提高了压缩速度,但是会增加字典压缩的存储空间。
当然,可以通过优化该非映射哈希函数,尽量使得当前字典中的每两两不同的字串的哈希值都不相同,从而降低哈希冲突。
但如果哈希链表头小于历史数据窗口的大小,通常情况下都会存在哈希冲突,即会存在字典中的至少两个字串通过哈希函数计算出同一哈希值的情况,基于此,在现有技术中,哈希链表头通常设置为历史数据窗口大小。
在本发明实施例中,由于关键字符的个数为n,通信报文中每个字串由m个关键字符组成,则所述第一字串的所有可能的组成形式有n的m次方。
根据上述背景知识,无论是通过全映射函数还是非全映射函数计算所述第一字串的哈希值,所述待压缩的通信报文中所有第一字串在哈希链表头中所占用的存储空间最多为n的m次方。
具体的,若以每个字串做索引,每个字串由3个字符组成,则全部由所述n个关键字符组成的字串的组合有n3种,即使用全映射函数,这些字串所占用的哈希链表头的存储空间也只有n3个字串所占用的存储空间的大小。
当然,m也可以为其他值,本发明实施例对此不做限定。
举例来说,若字典中最多可以存放10000个3字符的字串,其中关键字符的个数为10个,所述第一字串由6000个,则所有所述第一字串的可能的组合有10的3次方种,即1000种,此时,可以设置第一哈希链表头中,该哈希链表头的大小为1000个哈希值以及哈希值所对应的存储空间,此时,所述第一哈希链表头就可以存放6000个字串的哈希值和所述哈希值所对应的存储空间(相同的字串只有一个哈希值和以及该字串的地址信息被存放在所述第一哈希链表头中,其他的被存放在哈希链表中)。
其余的该通信报文中的4000个非第一字串可以被存放在第二哈希链表头中,结合现有技术,所述第二哈希链表头的大小可以设置为4000个哈希值以及哈希值所对应的存储空间大小即可。
则与现有技术哈希链表头的大小为历史数据窗口大小相比,若n的m次方小于H*x,就可以通过上述方法减小哈希链表头的存储空间。
303、若是,分别为第一哈希链表头和第二哈希链表头分配存储空间,其中,所述第一哈希链表头的存储空间大小为n的m次方,所述第二哈希链表头的存储空间为H*(1-x)。
304、判断所述通信报文中的第二字串是否属于所述第一字串。
具体的,步骤303和步骤304的详细技术特征可参见步骤302,本发明实施例对此不再赘述。
305、若是,通过第一哈希函数计算所述第二字串的哈希值,并将所述第二字串的哈希值以及所述第二字串在字典中的地址信息存入第一哈希链表头中。
具体的,所述第一哈希函数可以为全映射函数,也可以为非全映射函数,本发明实施例对此不做限定,但是,所述第一哈希函数为全映射函数是一种优选方案,可以实现第一哈希链表头中的哈希冲突为0。
在此之后,根据所述第二字串的哈希值,从所述第一哈希链表头和哈希链表中获取所述第二字串和与所述第二字串的哈希值完全相同的其他字串的地址信息,根据所述地址信息对以所述第一字串开头的字串进行匹配,具体的压缩过程可通过本领域技术人员的公知技术来实现,本发明实施例对此不再赘述。
306、若不是,通过第二哈希函数计算所述第二字串的哈希值,并将所述第二字串的哈希值以及所述第二字串在字典中的地址信息存入第二哈希链表头中。
若判断所述第一字串不是全部由所述关键字符组成,则采用现有技术,使用非全映射的第二哈希函数计算所述第一字串的哈希值并将所述第二字串的哈希值以及所述第二字串在字典中的地址信息存入第二哈希链表头中。
在此之后,根据所述第二字串的哈希值,从所述第二哈希链表头和所述哈希链表中获取所述第二字串和与所述第二字串的哈希值完全相同的其他字串的地址信息,根据所述地址信息对以所述第二字串开头的字串进行匹配,具体的压缩过程可通过本领域技术人员的公知技术来实现,本发明实施例对此不再赘述。
本发明实施例提供了一种字典压缩的方法,该方法包括:获取通信报文中第一字串的个数占总字串个数的比值x,其中,所述通信报文中的每个字串都由m个字符组成,所述第一字串是由关键字符组成的字串,所述关键字符的个数为n,字典的大小为H;判断n的m次方是否小于H*x;若是,分别为第一哈希链表头和第二哈希链表头分配存储空间,其中,所述第一哈希链表头的存储空间大小为n的m次方,所述第二哈希链表头的存储空间为H*(1-x);判断所述通信报文中的第二字串是否属于所述第一字串;若是,通过第一哈希函数计算所述第二字串的哈希值,并将所述第二字串的哈希值以及所述第二字串在字典中的地址信息存入第一哈希链表头中;若不是,通过第二哈希函数计算所述第二字串的哈希值,并将所述第二字串的哈希值以及所述第二字串在字典中的地址信息存入第二哈希链表头中。通过该方法,可得第一哈希链表头与第二哈希链表头的和值为nm+H(1-x),由因为nm<H*x,则nm+H(1-x)<H,即通过本发明方案得到的总的哈希链表头所占用的存储空间小于现有技术中哈希链表头所占用的存储空间,并且,若所述第一哈希函数为全映射函数,可以使得第一哈希链表头中的哈希冲突为0,与现有技术相比,降低了总的哈希冲突。
进一步的,本发明实施例还提供了一种字典压缩的方法,结合图4,该方法包括:
401、按照出现次数由大到小的顺序,获取所述通信报文的L个字符中的前n个字符作为所述关键字符,其中,所述L个字符为所述通信报文中所有两两不同的字符。
402、设置第1至第M个关键字符组,所述每个关键字符组中的字符都属于所述n个字符,所述每个关键字符组中的字符数小于n,所述M大于等于2。
具体的,选择所述n个关键字符后,全部由所述n个关键字符组成的字串占总字串的比例非常大,但是,这n个关键字符中的一部分字符与其他字符的相关性可能不是很大,举例来说,所述n个关键字符分别为a,b,c,e,f,h,全部由这六个关键字符组成的字串占总字串的比重很大,例如,报文由1000个字串组成,每个字串由3个字符组成,全部由所述关键字符组成的字串有700个,但是,所述700个字串中可能有300个是全部由a,b,c,e组成的,剩下的400个是全部由c,e,f,h组成的,在这种情况下,可以设置不止一组关键字符组,举例来说,设置两个个关键字符组,第一个关键字符组由关键字符a,b,c,e组成,第二个关键字符组由c,e,f,h组成,相应的,根据实际情况,第一个关键字符组所对应的全映射函数与第二个关键字符组所对应的全映射函数可以相同,也可以不同,具体的,本发明实施例对此不做限定。
在这种情况下,通常情况下可以进一步的节省第一块哈希链表存储空间中的哈希链表头存储空间,例如,在一共有6个关键字符时,若只设置一个关键字符组,每个字串由三个字符组成,则所有可能的字串有6的3次方个,即216个,若将所述六个关键字符分为所述两个关键字符组,每个关键字符组中有4个关键字符,则所有可能的字串有两组4的3次方个,即128个。
403、获取所述通信报文中第三字串的个数占中字串个数的比值y,其中,所述第三字串是由所述第1至第M个关键字符组中的任一关键字符组中的字符组成的字串,所述通信报文中的每个字串都由m个字符组成,字典的大小为H。
404、获取第1至M个关键字符组中每个关键字符组的关键字符的个数的m次方的和值T。
405、判断所述和值T是否小于H*y。
406、若是,为每个关键字符组分配对应的哈希链表头的存储空间,并为所述第二哈希链表头分配存储空间,其中,所述第N个关键字符组所对应的哈希链表头的存储空间的大小为t的m次方,其中,所述t为所述第N个关键字符组中关键字符的个数,所述第二哈希链表头的存储空间的大小为H*(1-y)。
407、判断所述通信报文中的第二字串是否是由第N个关键字符组中的字符组成的,其中,所述1<=N<=M。
408、若是,通过所述第N个关键字符组所对应的哈希函数计算所述第二字串的哈希值,并将所述第二字串的哈希值以及所述第二字串在字典中的地址信息存入所述第N个关键字符组所对应的哈希链表头中。
409、若不是,通过所述第二哈希函数计算所述第二字串的哈希值,并将所述第二字串的哈希值以及所述第二字串在字典中的地址信息存入第二哈希链表头中。
具体的,步骤403-步骤409的详细实施过程可参见上述实施例中的步骤301-步骤306,本发明实施例对此不再赘述。
本发明实施例提供了一种字典压缩的方法,通过本发明方案需要的哈希链表头的存储空间为H*(1-y)+a3+b3+…<H(其中,a、b…都小于n,分别为第1至M个关键字符组中关键字符的个数),从而减小了总的哈希链表头的存储空间,进而减小了字典压缩算法中总的存储空间。
本发明实施例提供了一种字典压缩的装置,结合图5,该装置包括:第一获取单元501,第一判断单元502、分配单元503、第二判断单元504和计算单元505;
所述第一获取单元501,用于获取通信报文中第一字串的个数占总字串个数的比值x,其中,所述通信报文中的每个字串都由m个字符组成,所述第一字串是由关键字符组成的字串,所述关键字符的个数为n,字典的大小为H;
所述第一判断单元502,用于判断n的m次方是否小于H*x;
所述分配单元503,用于分别为第一哈希链表头和第二哈希链表头分配存储空间,其中,所述第一哈希链表头的存储空间大小为n的m次方,所述第二哈希链表头的存储空间为H*(1-x);
所述第二判断单元504,用于判断所述通信报文中的第二字串是否属于所述第一字串;
所述计算单元505,用于若是,通过第一哈希函数计算所述第二字串的哈希值,并将所述第二字串的哈希值以及所述第二字串在字典中的地址信息存入第一哈希链表头中;
若不是,通过第二哈希函数计算所述第二字串的哈希值,并将所述第二字串的哈希值以及所述第二字串在字典中的地址信息存入第二哈希链表头中。
可选的,结合图6,该装置还包括:第二获取单元506;
所述第二获取单元506,用于按照出现次数由大到小的顺序,获取所述通信报文的L个字符中的前n个字符作为所述关键字符,其中,所述L个字符为所述通信报文中所有两两不同的字符。
可选的,结合图7,该装置还包括:设置单元507;
所述设置单元507,用于设置第1至第M个关键字符组,所述每个关键字符组中的字符都属于所述n个字符,所述每个关键字符组中的字符数小于n,所述M大于等于2;
所述第一获取单元501,还用于获取所述通信报文中第三字串的个数占中字串个数的比值y,其中,所述第三字串是由所述第1至第M个关键字符组中的任一关键字符组中的字符组成的字串,所述通信报文中的每个字串都由m个字符组成,字典的大小为H;
获取第1至M个关键字符组中每个关键字符组的关键字符的个数的m次方的和值T;
所述第一判断单元502,用于判断所述和值T是否小于H*y;
所述分配单元503,用于为每个关键字符组分配对应的哈希链表头的存储空间,并为所述第二哈希链表头分配存储空间,其中,所述第N个关键字符组所对应的哈希链表头的存储空间的大小为t的m次方,其中,所述t为所述第N个关键字符组中关键字符的个数,所述第二哈希链表头的存储空间的大小为H*(1-y);
所述第二判断单元504,用于判断所述通信报文中的第二字串是否是由第N个关键字符组中的字符组成的,其中,所述1<=N<=M;
所述计算单元505,用于若是,通过所述第N个关键字符组所对应的哈希函数计算所述第二字串的哈希值,并将所述第二字串的哈希值以及所述第二字串在字典中的地址信息存入所述第N个关键字符组所对应的哈希链表头中;
若不是,通过所述第二哈希函数计算所述第二字串的哈希值,并将所述第二字串的哈希值以及所述第二字串在字典中的地址信息存入第二哈希链表头中。
具体的,所述第N个关键字符组所对应的哈希函数为全映射函数或非全映射函数,所述第二哈希函数为非全映射函数。
本发明实施例提供了一种字典压缩的装置,通过该装置,可得第一哈希链表头与第二哈希链表头的和值为nm+H(1-x),由于nm<H*x,则nm+H(1-x)<H,即通过本发明方案得到的总的哈希链表头所占用的存储空间小于现有技术中哈希链表头所占用的存储空间,并且,若所述第一哈希函数为全映射函数,可以使得第一哈希链表头中的哈希冲突为0,与现有技术相比,降低了总的哈希冲突。
本发明实施例提供了一种计算机系统,结合图8,该计算机系统包括:处理器801,总线802和与所述总线相连的存储器803;
所述处理器801通过所述总线802调用所述存储器803中的指令,以用于:
获取通信报文中第一字串的个数占总字串个数的比值x,其中,所述通信报文中的每个字串都由m个字符组成,所述第一字串是由关键字符组成的字串,所述关键字符的个数为n,字典的大小为H;
判断n的m次方是否小于H*x;
若是,分别为第一哈希链表头和第二哈希链表头分配存储空间,其中,所述第一哈希链表头的存储空间大小为n的m次方,所述第二哈希链表头的存储空间为H*(1-x);
判断所述通信报文中的第二字串是否属于所述第一字串;
若是,通过第一哈希函数计算所述第二字串的哈希值,并将所述第二字串的哈希值以及所述第二字串在字典中的地址信息存入第一哈希链表头中;
若不是,通过第二哈希函数计算所述第二字串的哈希值,并将所述第二字串的哈希值以及所述第二字串在字典中的地址信息存入第二哈希链表头中。
可选的,所述处理器801还用于:
按照出现次数由大到小的顺序,获取所述通信报文的L个字符中的前n个字符作为所述关键字符,其中,所述L个字符为所述通信报文中所有两两不同的字符。
具体的,所述处理器801还用于:
设置第1至第M个关键字符组,所述每个关键字符组中的字符都属于所述n个字符,所述每个关键字符组中的字符数小于n,所述M大于等于2;
获取所述通信报文中第三字串的个数占中字串个数的比值y,其中,所述第三字串是由所述第1至第M个关键字符组中的任一关键字符组中的字符组成的字串,所述通信报文中的每个字串都由m个字符组成,字典的大小为H;
获取第1至M个关键字符组中每个关键字符组的关键字符的个数的m次方的和值T;
判断所述和值T是否小于H*y;
若是,为每个关键字符组分配对应的哈希链表头的存储空间,并为所述第二哈希链表头分配存储空间,其中,所述第N个关键字符组所对应的哈希链表头的存储空间的大小为t的m次方,其中,所述t为所述第N个关键字符组中关键字符的个数,所述第二哈希链表头的存储空间的大小为H*(1-y);
判断所述通信报文中的第二字串是否是由第N个关键字符组中的字符组成的,其中,所述1<=N<=M;
若是,通过所述第N个关键字符组所对应的哈希函数计算所述第二字串的哈希值,并将所述第二字串的哈希值以及所述第二字串在字典中的地址信息存入所述第N个关键字符组所对应的哈希链表头中;
若不是,通过所述第二哈希函数计算所述第二字串的哈希值,并将所述第二字串的哈希值以及所述第二字串在字典中的地址信息存入第二哈希链表头中。
具体的,所述第N个关键字符组所对应的哈希函数为全映射函数或非全映射函数,所述第二哈希函数为非全映射函数。
本发明实施例提供了一种计算机系统,通过该计算机系统,可得第一哈希链表头与第二哈希链表头的和值为nm+H(1-x),由因为nm<H*x,则nm+H(1-x)<H,即通过本发明方案得到的总的哈希链表头所占用的存储空间小于现有技术中哈希链表头所占用的存储空间,并且,若所述第一哈希函数为全映射函数,可以使得第一哈希链表头中的哈希冲突为0,与现有技术相比,降低了总的哈希冲突。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (8)

1.一种字典压缩的方法,其特征在于,该方法包括:
获取通信报文中第一字串的个数占总字串个数的比值x,其中,所述通信报文中的每个字串都由m个字符组成,所述第一字串是由关键字符组成的字串,所述关键字符的个数为n,字典的大小为H;
判断n的m次方是否小于H*x;
若是,分别为第一哈希链表头和第二哈希链表头分配存储空间,其中,所述第一哈希链表头的存储空间大小为n的m次方,所述第二哈希链表头的存储空间为H*(1-x);
判断所述通信报文中的第二字串是否属于所述第一字串;
若是,通过第一哈希函数计算所述第二字串的哈希值,并将所述第二字串的哈希值以及所述第二字串在字典中的地址信息存入第一哈希链表头中;
若不是,通过第二哈希函数计算所述第二字串的哈希值,并将所述第二字串的哈希值以及所述第二字串在字典中的地址信息存入第二哈希链表头中。
2.根据权利要求1所述的方法,其特征在于,所述获取通信报文中第一字串的个数占总字串个数的比值x之前,该方法还包括:
按照出现次数由大到小的顺序,获取所述通信报文的L个字符中的前n个字符作为所述关键字符,其中,所述L个字符为所述通信报文中所有两两不同的字符。
3.根据权利要求2所述的方法,其特征在于,所述按照出现次数由大到小的顺序,获取所述通信报文的L个字符中的前n个字符作为所述关键字符之后,该方法还包括:
设置第1至第M个关键字符组,所述每个关键字符组中的字符都属于所述n个字符,所述每个关键字符组中的字符数小于n,所述M大于等于2;
获取所述通信报文中第三字串的个数占中字串个数的比值y,其中,所述第三字串是由所述第1至第M个关键字符组中的任一关键字符组中的字符组成的字串,所述通信报文中的每个字串都由m个字符组成,字典的大小为H;
获取第1至M个关键字符组中每个关键字符组的关键字符的个数的m次方的和值T;
判断所述和值T是否小于H*y;
若是,为每个关键字符组分配对应的哈希链表头的存储空间,并为所述第二哈希链表头分配存储空间,其中,所述第N个关键字符组所对应的哈希链表头的存储空间的大小为t的m次方,其中,所述t为所述第N个关键字符组中关键字符的个数,所述第二哈希链表头的存储空间的大小为H*(1-y);
判断所述通信报文中的第二字串是否是由第N个关键字符组中的字符组成的,其中,所述1<=N<=M;
若是,通过所述第N个关键字符组所对应的哈希函数计算所述第二字串的哈希值,并将所述第二字串的哈希值以及所述第二字串在字典中的地址信息存入所述第N个关键字符组所对应的哈希链表头中;
若不是,通过所述第二哈希函数计算所述第二字串的哈希值,并将所述第二字串的哈希值以及所述第二字串在字典中的地址信息存入第二哈希链表头中。
4.根据权利要求3所述的方法,其特征在于,所述第N个关键字符组所对应的哈希函数为全映射函数或非全映射函数,所述第二哈希函数为非全映射函数。
5.一种字典压缩的装置,其特征在于,该装置包括:第一获取单元,第一判断单元、分配单元、第二判断单元和计算单元;
所述第一获取单元,用于获取通信报文中第一字串的个数占总字串个数的比值x,其中,所述通信报文中的每个字串都由m个字符组成,所述第一字串是由关键字符组成的字串,所述关键字符的个数为n,字典的大小为H;
所述第一判断单元,用于判断n的m次方是否小于H*x;
所述分配单元,用于分别为第一哈希链表头和第二哈希链表头分配存储空间,其中,所述第一哈希链表头的存储空间大小为n的m次方,所述第二哈希链表头的存储空间为H*(1-x);
所述第二判断单元,用于判断所述通信报文中的第二字串是否属于所述第一字串;
所述计算单元,用于若是,通过第一哈希函数计算所述第二字串的哈希值,并将所述第二字串的哈希值以及所述第二字串在字典中的地址信息存入第一哈希链表头中;
若不是,通过第二哈希函数计算所述第二字串的哈希值,并将所述第二字串的哈希值以及所述第二字串在字典中的地址信息存入第二哈希链表头中。
6.根据权利要求5所述的装置,其特征在于,该装置还包括:第二获取单元;
所述第二获取单元,用于按照出现次数由大到小的顺序,获取所述通信报文的L个字符中的前n个字符作为所述关键字符,其中,所述L个字符为所述通信报文中所有两两不同的字符。
7.根据权利要求6所述的装置,其特征在于,该装置还包括:设置单元;
所述设置单元,用于设置第1至第M个关键字符组,所述每个关键字符组中的字符都属于所述n个字符,所述每个关键字符组中的字符数小于n,所述M大于等于2;
所述第一获取单元,还用于获取所述通信报文中第三字串的个数占中字串个数的比值y,其中,所述第三字串是由所述第1至第M个关键字符组中的任一关键字符组中的字符组成的字串,所述通信报文中的每个字串都由m个字符组成,字典的大小为H;
获取第1至M个关键字符组中每个关键字符组的关键字符的个数的m次方的和值T;
所述第一判断单元,用于判断所述和值T是否小于H*y;
所述分配单元,用于为每个关键字符组分配对应的哈希链表头的存储空间,并为所述第二哈希链表头分配存储空间,其中,所述第N个关键字符组所对应的哈希链表头的存储空间的大小为t的m次方,其中,所述t为所述第N个关键字符组中关键字符的个数,所述第二哈希链表头的存储空间的大小为H*(1-y);
所述第二判断单元,用于判断所述通信报文中的第二字串是否是由第N个关键字符组中的字符组成的,其中,所述1<=N<=M;
所述计算单元,用于若是,通过所述第N个关键字符组所对应的哈希函数计算所述第二字串的哈希值,并将所述第二字串的哈希值以及所述第二字串在字典中的地址信息存入所述第N个关键字符组所对应的哈希链表头中;
若不是,通过所述第二哈希函数计算所述第二字串的哈希值,并将所述第二字串的哈希值以及所述第二字串在字典中的地址信息存入第二哈希链表头中。
8.根据权利要求7所述的装置,其特征在于,所述第N个关键字符组所对应的哈希函数为全映射函数或非全映射函数,所述第二哈希函数为非全映射函数。
CN201410283510.4A 2014-06-23 2014-06-23 一种字典压缩的方法和装置 Active CN104077272B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410283510.4A CN104077272B (zh) 2014-06-23 2014-06-23 一种字典压缩的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410283510.4A CN104077272B (zh) 2014-06-23 2014-06-23 一种字典压缩的方法和装置

Publications (2)

Publication Number Publication Date
CN104077272A true CN104077272A (zh) 2014-10-01
CN104077272B CN104077272B (zh) 2017-01-04

Family

ID=51598532

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410283510.4A Active CN104077272B (zh) 2014-06-23 2014-06-23 一种字典压缩的方法和装置

Country Status (1)

Country Link
CN (1) CN104077272B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110419036A (zh) * 2016-09-30 2019-11-05 华为技术有限公司 数据压缩方法、设备与计算设备
CN111464635A (zh) * 2020-03-31 2020-07-28 新华三信息安全技术有限公司 一种字典索引传输方法及装置
CN117082156A (zh) * 2023-10-18 2023-11-17 江苏亿通高科技股份有限公司 一种网络流量大数据智能分析方法

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110650079B (zh) * 2019-10-18 2022-06-21 深信服科技股份有限公司 一种信息传输方法、装置、终端、系统及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010047286A1 (ja) * 2008-10-20 2010-04-29 インターナショナル・ビジネス・マシーンズ・コーポレーション 検索システム、検索方法およびプログラム
CN102232219A (zh) * 2010-01-26 2011-11-02 华为技术有限公司 关键字存储、查找的方法及装置
CN102314485A (zh) * 2011-07-27 2012-01-11 中国科学院计算机网络信息中心 哈希表添加、查找和删除方法及装置
TWI409650B (zh) * 2010-08-11 2013-09-21 Hon Hai Prec Ind Co Ltd 在資料模型中查找參數的方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010047286A1 (ja) * 2008-10-20 2010-04-29 インターナショナル・ビジネス・マシーンズ・コーポレーション 検索システム、検索方法およびプログラム
CN102232219A (zh) * 2010-01-26 2011-11-02 华为技术有限公司 关键字存储、查找的方法及装置
TWI409650B (zh) * 2010-08-11 2013-09-21 Hon Hai Prec Ind Co Ltd 在資料模型中查找參數的方法
CN102314485A (zh) * 2011-07-27 2012-01-11 中国科学院计算机网络信息中心 哈希表添加、查找和删除方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
董万归: "一种基于哈希链表的多关键字排序算法", 《电脑知识与技术》 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110419036A (zh) * 2016-09-30 2019-11-05 华为技术有限公司 数据压缩方法、设备与计算设备
CN110419036B (zh) * 2016-09-30 2022-04-12 华为技术有限公司 数据压缩方法、设备与计算设备
CN111464635A (zh) * 2020-03-31 2020-07-28 新华三信息安全技术有限公司 一种字典索引传输方法及装置
CN111464635B (zh) * 2020-03-31 2022-02-22 新华三信息安全技术有限公司 一种字典索引传输方法及装置
CN117082156A (zh) * 2023-10-18 2023-11-17 江苏亿通高科技股份有限公司 一种网络流量大数据智能分析方法
CN117082156B (zh) * 2023-10-18 2024-01-26 江苏亿通高科技股份有限公司 一种网络流量大数据智能分析方法

Also Published As

Publication number Publication date
CN104077272B (zh) 2017-01-04

Similar Documents

Publication Publication Date Title
CN104579360B (zh) 一种数据处理的方法和设备
CN108108384B (zh) 一种数据存储方法及装置
US10044370B1 (en) Lossless binary compression in a memory constrained environment
US7511638B2 (en) Data compression for communication between two or more components in a system
CN102694554A (zh) 数据压缩设备、其操作方法以及包括该设备的数据处理装置
CN104715039A (zh) 基于硬盘和内存的列式存储和查询方法及设备
CN104348490A (zh) 一种基于效果优选的组合数据压缩算法
CN104077272A (zh) 一种字典压缩的方法和装置
CN103346800B (zh) 一种数据压缩方法及装置
CN110825323B (zh) 浮点数数据的存储、读取方法和计算机可读存储介质
CN112953550A (zh) 数据压缩的方法、电子设备及存储介质
CN106202213A (zh) 一种fpga二进制文件压缩、解压方法及压缩、解压装置
CN111611250A (zh) 数据存储设备、数据查询方法、装置、服务器及存储介质
CN109428602A (zh) 一种数据编码方法、装置以及存储介质
CN105191144A (zh) 压缩装置、压缩方法、解压装置、解压方法以及信息处理系统
CN105391454A (zh) 一种dna测序质量分数无损压缩方法
CN116594572B (zh) 浮点数流式数据压缩方法、装置、计算机设备及介质
CN114817651B (zh) 数据存储方法、数据查询方法、装置和设备
CN103746706A (zh) 基于双游程交替编码的测试数据压缩与解压缩方法
JP6835285B1 (ja) データ圧縮方法、データ圧縮装置、データ圧縮プログラム、データ伸長方法、データ伸長装置およびデータ伸長プログラム
US10103747B1 (en) Lossless binary compression in a memory constrained environment
CN116192154B (zh) 数据压缩及数据解压方法、装置、电子设备、芯片
CN105320609A (zh) 一种基于移动终端的数据存储方法及系统
CN105279171A (zh) 在压缩的可变长度字符串上进行谓词评估的方法和设备
CN107580015A (zh) 数据处理方法和装置、服务器

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20191218

Address after: 314400 No.11, Weisan Road, Nongfa District, Chang'an Town, Haining City, Jiaxing City, Zhejiang Province

Patentee after: Haining hi tech Zone Science and Innovation Center Co.,Ltd.

Address before: 510000 unit 2414-2416, building, No. five, No. 371, Tianhe District, Guangdong, China

Patentee before: GUANGDONG GAOHANG INTELLECTUAL PROPERTY OPERATION Co.,Ltd.

Effective date of registration: 20191218

Address after: 510000 unit 2414-2416, building, No. five, No. 371, Tianhe District, Guangdong, China

Patentee after: GUANGDONG GAOHANG INTELLECTUAL PROPERTY OPERATION Co.,Ltd.

Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd.

TR01 Transfer of patent right