CN103890763B - 信息处理装置、数据存取方法以及计算机可读存储介质 - Google Patents
信息处理装置、数据存取方法以及计算机可读存储介质 Download PDFInfo
- Publication number
- CN103890763B CN103890763B CN201280052433.0A CN201280052433A CN103890763B CN 103890763 B CN103890763 B CN 103890763B CN 201280052433 A CN201280052433 A CN 201280052433A CN 103890763 B CN103890763 B CN 103890763B
- Authority
- CN
- China
- Prior art keywords
- memory
- symbol
- level
- occurrence frequency
- value
- 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.)
- Expired - Fee Related
Links
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
- G06F16/2228—Indexing 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- 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
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/278—Data partitioning, e.g. horizontal or vertical partitioning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9027—Trees
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Quality & Reliability (AREA)
Abstract
本发明提供一种用于实现高效率地存储密钥的数据存储器的信息处理装置、数据存取方法以及程序。本发明的信息处理装置包括:最上位存储器(110),构成数据存储器(100),具有符号的每个条目的计数器;一个以上的层次存储器(130),分别构成上述数据存储器(100),对每个层次定义了与频度有关的代表值Ri;以及分配部(150),在最上位存储器(110)内对要存取的符号进行计数,根据计数器值而对最上位存储器(110)以及一个以上的层次存储器(130)进行分配。上述分配部(150)与对于从最上位存储器(110)移动的符号的存取对应地,使用对包含该符号的层次存储器(130)定义的与频度有关的代表值Ri,在最上位存储器(110)中复原该符号的条目。
Description
技术领域
本发明涉及数据存储器(data store),更详细而言,涉及实现高效率地存储密钥(key)的数据存储器的信息处理装置、对于该数据存储器的数据存取方法以及程序。
背景技术
在语言处理、用户管理等的应用开发的领域中,对于将单词、句子、人名、URL等的庞大的字符串空间效率高地存储在存储器中的技术的期望提高。这是因为,通过实现将字符串等作为密钥的效率高的数据存储器,能够将多个字符串以节省存储器的方式进行管理,进而,能够高效率地实现上述应用。
作为在上述用途中使用的数据存储器,已知散列图(Hash Map/Hash Table)。散列图是使用散列函数而将密钥映射到值的数据结构,能够以密钥来注册值,以密钥进行查询而取得值。由于散列图根据从密钥概括的散列值来管理“值”,所以容易追加,并且,无论元素数如何都能够进行恒定时间中的检索以及追加,能够进行高速的数据存取。但是,散列图为了降低冲突而使用充分稀疏的表,难以提高存储器空间效率。
作为在上述的用途中使用的其他的数据存储器,已知在双阵列(Double-Array)中安装的字典树(TRIE)。在双阵列中安装的字典树(以下,有时简称为双阵列)是将存储密钥的字典树以链接结构维持的数据结构。已知与上述散列图相比,双阵列在数据存取速度的观点上是逊色的,但能够将存储器空间效率设得比较高。
作为在上述的用途中使用的其他的数据存储器,进而,已知在LOUDS(Level OrderUnary Degree Sequence,一级阶一元等级序列)中安装的字典树。LOUDS是表现树结构的简洁数据结构(非专利文献1)。也报告了如下例子:通过在存储单词等的字符串的字典树的表现中使用LOUDS,与双阵列中的安装相比,在存取速度上花费数倍的成本,但实现了4~10倍的存储器空间效率(非专利文献2)。另一方面,由于LOUDS是在存储器空间中紧密 地配置的数据结构,所以为了对一旦完成的LOUDS追加新的字符串,为了在要追加新的字符串的节点(node)的部位制作缝隙(表现节点的1比特)而需要移动平均一半的数据。因此,在构筑完毕的数据结构中追加新的字符串会产生大的处理成本。
此外,已知在处理庞大的量的流数据的用途中,优先保持高频度地出现的密钥的战略。例如,非专利文献3公开了如下技术:通过误差允许计数法(Lossy CountingMethod),对作为流数据而输入的项目的频度进行计数,取得出现频度上位的项目的集合。除此之外,作为误差允许计数法的改良型,已知在非专利文献4中公开的概率性误差允许计数法(Probabilistic Lossy Counting Method)和在非专利文献5中公开的助记符误差允许计数法(Mnemonic Lossy Counting Method)。
现有技术文献
非专利文献
非专利文献1:G.Jacobson、“Space-efficient Static Trees and Graphs”、InProceedings of the 30th Annual Symposium on Foundations of Computer Science(SFCS'89)、IEEE Computer Society、USA、1989、549-554
非专利文献2:冈野原大辅、“大規模キー集合の効率的な格納法tx bep(大规模密钥集合的高效率的存储法tx bep)”、[online]、东京大学、[平成23年9月15日检索]、互联网<URL:http://www-tsujii.is.s.u-tokyo.ac.jp/~hillbig/papers/2007-1031-massiveKeys.pdf>
非专利文献3:G.S.Manku,et al.、“Approximate Frequency Counts over DataStreams”、Proceedings of the 28th International Conference on Very Large DataBase(VLDB)、2002
非专利文献4:X.Dimitropoulos,et al.、“Probabilistic Lossy Counting:Anefficient Algorithm for Finding Heavy Hitters”、ACM SIGCOMM ComputerCommunication Review、Volume 38、Issue 1、January 2008
非专利文献5:Q.Rong,et al.、“Mnemonic Lossy Counting:An Efficient andAccurate Heavy-Hitters Identification Algorithm”、Performance Computing andCommunications Conference(IPCCC)2010IEEE 29th International、2010、255-262
发明内容
发明要解决的课题
如上所述,散列图、双阵列以及LOUDS等的数据存储器在其特性上,存储器空间效率和数据存取速度大致处于折衷(trade-off)的关系。因此,在上述现有技术的数据结构中,难以实现兼顾了空间效率以及数据存取速度的数据存储器。
此外,根据在上述专利文献3中公开的流算法,能够高效率地取得出现频度上位的项目的集合。由此,在低频度的数据不重要的用途中,能够以比较小的存储器消费量来高效率地保持高频度的比较重要的数据。但是,由于从出现频度上位漏掉的低频度的项目组被丢弃,所以上述专利文献3的现有技术难以在如词典或用于用户管理等的关键字值(keyvalue)存储器那样需要保持全部条目(entry)的用途上使用。
本发明是鉴于上述现有技术中的不充分的点而完成的,本发明的目的在于,提供一种能够进行在线构筑,以高的空间效率来存储密钥,并且实现具有高的数据存取速度的数据存储器的信息处理装置、数据存储器操作方法以及程序。
用于解决课题的手段
在本发明中,为了解决上述课题,着眼于在实际输入到数据存储器的数据中存在出现频度从高到低的各种数据的情况,提供具有下述的特征的信息处理装置。本信息处理装置包括:最上位存储器,构成数据存储器,具有符号的每个条目的计数器;一个以上的层次存储器,分别构成上述数据存储器,对每个层次定义了与频度有关的代表值;以及分配部,在上述最上位存储器内对要存取的符号进行计数,根据计数器值而对最上位存储器以及一个以上的层次存储器进行分配。在信息处理装置中上述分配部与对于从上述最上位存储器移动的符号的存取对应地,使用对包含该符号的层次存储器定义的与频度有关的代表值,在最上位存储器中复原该符号的条目。
发明效果
根据上述结构,能够将高频度的符号存储在数据存取速度被优先的数据结构内,将低频度的符号存储在存储器空间效率被优先的数据结构内。通过将各符号存储在与出现频度对应的类型的存储器中,从而在现实的数据存取中,能够提高作为整体的存储器空间效率以及吞吐量。
附图说明
图1是说明在关键字的出现频度和出现频度的顺序之间成立的、齐普夫定律(Zipf’s Law)的图。
图2是在第一实施方式的计算机装置上实现的、关键字值存储器的功能框图。
图3是示意性地表示在第一实施方式中对分配部输入的数据流的图。
图4是说明第一实施方式的分配部对每个存取执行的、计数处理的图。
图5是说明第一实施方式的分配部对桶(bucket)内的每个条目执行的、分配处理的图。
图6(A)是表示对符号进行了浓度分级的数据流的图、以及(B)是说明对于划定的出现频度f的存储器间的边界θi(B-Δ)的图。
图7是说明第一实施方式的分配部对每个桶执行的、编入处理的图。
图8是表示第一实施方式的分配部执行的、应用了误差允许计数法的分配处理的主流程的流程图。
图9是表示第一实施方式的分配部执行的、每个存取的计数处理的流程图。
图10是表示第一实施方式的分配部执行的、分配处理的流程图。
图11是表示第一实施方式的分配部执行的、编入处理的流程图。
图12是在第二实施方式的计算机装置上实现的、关键字值存储器的功能框图。
图13是第二实施方式的LOUDS存储器的更详细的功能框图。
图14是在第三实施方式的计算机装置上实现的、关键字值存储器的功能框图。
图15是实现本实施方式的关键字值存储器的计算机装置的概略性的硬件结构图。
图16是描画了对实验例5以及实验例6测定的(A)归还率(return rate)的经时变化以及(B)残留率(residual rate)的经时变化的折线图表。
图17是描画了对上述实验例5以及实验例6测定的(A)命中率(hit rate)的经时变化的折线图表以及(B)最终获得的关键字值存储器的消费存储器量的棒状图表。
具体实施方式
以下,根据实施方式说明本发明,但本发明并不限定于后述的实施方式。另外,在以下说明的实施方式中,作为实现数据存储器的信息处理装置,以实现将密钥分配到多个类型的存储器而存储的关键字值存储器100的、计算机装置为一例进行说明。
首先,在说明本实施方式的关键字值存储器100的具体结构之前,说明在本实施方式的关键字值存储器的主要的存储对象的、单词中观察到的经验项。图1是说明在关键字的出现频度和出现频度的顺序之间成立的齐普夫定律(Zipf's Law)的图。图1是根据NHTSA(National Highway Traffic Safety Administration,美国国家公路交通安全管理局)收集公开的687000件的记录而生成了254000000个关键字的图表。
齐普夫定律是表示出现频度第k顺序大的元素占全体的比例与k成反比例的经验项。如图1所示,根据齐普夫定律,关键字中属于上位的百分之几的高频度区域的关键字对全体的80%左右的命中产生贡献,而属于下位的百分之八十的低频度区域的关键字只贡献全体的百分之几左右的命中。
在本实施方式的关键字值存储器100中,鉴于在上述的关键字的出现频度中观测到的齐普夫定律,对关键字等的符号的出现频度进行计测,根据各符号的出现频度而分配到在存储器空间效率以及存取速度中具有折衷的关系的各类型的数据存储器。以下,参照图2~图15的附图,更详细说明在本实施方式的计算机装置上实现的关键字值存储器100。
(1)功能块
图2是表示在第一实施方式的计算机装置上实现的、关键字值存储器的功能块的图。图2所示的关键字值存储器(key value store)100作为其数据结构,包括附带计数器的最上位存储器110、布隆过滤器(bloom filter)120、一个以上的层次存储器130而构成。
最上位存储器110是主要用于存储属于图1中的高频度区域的关键字的数据存储器,在存储器空间效率以及存取速度的折衷中存取速度被优先。在最上位存储器110中,对符号的每个条目设置有保持其出现频度的计数器,计数器的值在后面叙述细节的对应于符号的出现频度的分配处理中被参照。
相对于此,一个以上的层次存储器130是主要用于存储属于图1中的小 于高频度区域的中频度区域至低频度区域的关键字的数据存储器。一个以上的层次存储器130分别具有与上述最上位存储器110不同的特性,在上述折衷中存储器空间效率被优先。在一个以上的层次存储器130中,存储有比最上位存储器110庞大的数目的符号。因此,在本实施方式中,在层次存储器130中,没有设置作为保持各符号的出现次数的整数型数据的计数器,成为紧凑的数据结构。
最上位存储器110以及层次存储器130分别能够从已知的任意类型的数据存储器中考虑在上述折衷的关系中被优先的特性(存取速度或者存储器空间效率)而进行选择。作为成为选项的数据存储器,可举出散列图、动态字典树以及静态字典树。上述动态字典树是通过对每个节点具有字符排列的数据结构、双阵列、转移表以及三阵列(triple array)等的链接结构而维持树结构的字典树。另一方面,静态字典树是通过LOUDS等的简洁数据结构而维持树结构的字典树。另外,也可以代替字典树而使用前缀树(patricia tree)等的其他的树。
散列图不论元素数如何而在恒定时间实现检索以及追加的操作,在上述列举的数据存储器中数据存取速度最高,但具有存储器空间效率比较低的特征。此外,散列图是容易追加的数据结构。相对于此,LOUDS等的静态字典树是在上述列举的数据存储器中存储器空间效率最高,但具有数据存取速度比较低的特征。双阵列等的动态字典树的数据存取速度比静态字典树还高,另一方面,存储器空间效率比散列图还高,追加也比静态字典树容易。
在优选的实施方式中,最上位存储器110能够采用上述的散列图。层次存储器130分别能够适当地采用上述的动态字典树以及静态字典树或者其中的任一个。若将频度高的符号被存储的存储器设为上位,则在采用动态字典树以及静态字典树的双方的层次存储器的情况下,能够优选采用动态字典树作为上位的层次存储器130,采用静态字典树作为下位的层次存储器130。作为具体例,在采用最上位存储器110、第1层次存储器130-1以及第2层次存储器130-2的3个存储器结构的情况下,能够优选采用分别使用散列图、动态字典树以及静态字典树的结构。
图2所示的关键字值存储器100进一步包括在对于关键字值存储器100的数据操作的后台或者前台动作的分配部150而构成。分配部150执行将被输入的符号使用流算法而分配到最上位存储器110以及一个以上的层次存储 器130-1~130-n的处理。更具体而言,分配部150在上述最上位存储器110内对被输入的符号的出现频度进行计数,并根据计数器的值而判定在最上位存储器110中残留(STAY)的条目和取出而追加(ADD)到任一个层次存储器130-1~130-n的条目。
此外,在再次输入了从最上位存储器110一旦移动而存储在层次存储器130中的符号的情况下,分配部150将与该符号对应的条目再次追加(RE-ENTRY)到最上位存储器110。如上所述,在最上位存储器110中,保持符号的计数值,但在层次存储器130中没有设置各符号的计数器。因此,若符号从附带计数器的最上位存储器110一旦移动到层次存储器130,则其以前的计数值被丢失。
因此,在本实施方式中,对层次存储器130分别定义了代表层次存储器130中的符号的出现频度的至少一个存储器代表频度值。作为上述存储器代表频度值,能够使用概括层次存储器130的符号的出现频度的各种值,但优选地,能够使用上述层次存储器130内的符号平均出现频度、或者设想了可产生的最差的误差的最大出现频度等。分配部150与对于过去移动而从最上位存储器110删除了条目的符号的存取对应地,读出对存储该符号的层次存储器130定义的上述存储器代表频度值,将通过移动而丢失的计数器值根据存储器代表频度值而复原之后,将条目再次追加到最上位存储器110中。
如上所述,分配部150进行动作,使得对在存取速度方面优秀的类型的较上位存储器分配较高频度的符号,对在存储器空间效率方面优秀的类型的较下位的存储器分配较低频度的符号。
作为上述流算法,能够举出误差允许计数法(Lossy Counting Method),在以下说明的实施方式中,设为分配部150通过误差允许计数法而对符号的出现频度进行计数来进行说明。但是,作为上述流算法,也可以采用作为上述计数法的改良型的、概率性误差允许计数法(Probabilistic Lossy Counting Method)以及助记符误差允许计数法(MnemonicLossy Counting Method)。
图2所示的布隆过滤器120是近似或者概率性地判定在关键字值存储器100中存储有特定的密钥的情况的过滤器。在布隆过滤器120中,定义了k个(一个以上的自然数)散列函数,散列函数分别将被输入的特定的密钥映射到比特排列中的排列位置。若将特定的密钥输入到k个散列函数,与获得的k个散列值对应的比特组中的任一个为“0”,则表示该特定的密钥不包含 在关键字值存储器100内。相反,若与获得的k个排列索引对应的比特组全部为“1”、即有效化,则表示存在该特定的密钥包含在关键字值存储器100中的可能性(也有不包含的情况)。
系统若接受到请求对关键字值存储器100以“密钥”来注册“值”的注册请求(PUT),则在最上位存储器110内,与“密钥”的条目建立关联而存储“值”。同时,系统响应于注册请求(PUT),将与布隆过滤器120的k个散列值对应的比特组有效化为“1”。
此外,系统若接受到请求从关键字值存储器100以“密钥”来取得“值”的取得请求(GET),则首先对最上位存储器110进行询问(GET1)。若在附带计数器的最上位存储器110内找到涉及取得请求的“密钥”,则系统读出与“密钥”的条目建立关联的值,并送回取得请求源。另一方面,若在附带计数器的最上位存储器110内找不到“密钥”,则系统能够接着对布隆过滤器120进行密钥存在确认(CHECK2)。
在从布隆过滤器120送回肯定性的结果的情况下,系统按照第1层次存储器130-1……第n层次存储器130-n的顺序进行询问(GET3……GETX),若找到密钥,则从对应的层次存储器130读出与“密钥”的条目建立关联的“值”,并送回取得请求源。在从布隆过滤器120送回否定性的结果的情况下,由于明白在关键字值存储器100内没有注册有密钥,所以不进行对于层次存储器130的询问,立即对取得请求源送回表示密钥未注册的错误。即使在直到最下层的层次存储器130-n为止进行询问也都没有找到的情况下,系统也对取得请求源送回表示密钥未注册的错误。
另外,对于布隆过滤器120的询问并不特别限定,但在最上位存储器110为散列图的情况下,从提高存取速度的观点出发,优选能够在对于最上位存储器110的询问之后进行。此外,在层次存储器130中包含动态字典树的情况下,上述询问优选在对于动态字典树的层次存储器130的询问之前进行,但也可以在之后进行。此外,在层次存储器130中包含静态字典树的情况下,上述询问优选在对于静态字典树的层次存储器130的询问之前进行,由此,即使是在结构中包含存储器空间效率被优先的静态字典树的情况下,也能够适当地改善存取速度。
上述附带计数器的最上位存储器110、布隆过滤器120、一个以上的层次存储器130优选为了能够进行高速的数据操作,能够在计算机装置具有的 RAM(Random AccessMemory,随机存取存储器)等的一次存储装置中安装。
(2)应用了误差允许计数法的分配处理
以下,参照图3~图7,更详细地说明应用了分配部150执行的误差允许计数法的分配处理。误差允许计数法是,将出现频度为所给的顺序s(支持度)以上的符号保证相对于出现频度f的所给的允许误差e的同时进行列举的流算法。误差允许计数法是,将被输入的数据流分割为被称为桶的单位,对构成数据流的符号的出现频度进行计数,且基于每个桶边界过去的实绩来排除低频度的符号的条目的算法。由此,通过在中途适当地排除低频度的符号,能够在小的存储器区域中获得具有规定频度以上的符号的集合。以下,首先,表示在说明应用了误差允许计数法的分配处理时使用的定义。
(2.1)定义
D:表示最上位存储器110内的条目的集合。
x:表示符号(密钥)。
f:表示符号x的出现频度(出现次数)。
Δ:表示相对于符号x的出现频度f的最大允许误差(误差值)。另外,θiΔ成为具有在被计数的出现频度f中包含的可能性的最大的误差。
(x,f,Δ):表示上述集合D的各条目(元素)。
Di:表示第i层次存储器130-i(i=1,…,n)内的条目的集合。这里,下标i表示层次的顺序,D1表示最上层的层次存储器,Dn表示最下层的层次存储器。
θi:表示第i层次存储器130-i的桶内出现频度上限。桶内出现频度上限θi作为参数而被提供。
N:表示被输入的全部符号的合计出现频度(输入数据数)。重复的符号也被计数。
Ni:表示第i层次存储器130-i内的全部符号的合计出现频度。
|Di|:表示第i层次存储器130-i的符号数。
w=1/e:表示桶宽度。
e:表示相对于被允许的出现次数的误差。
B=ceiling(eN):表示用于识别当前的桶的桶识别值。
Ri:表示对第i层次存储器130-i定义的存储器代表频度值。存储器代表频度值在使用符号平均出现频度的情况下,通过下述式(1)算出。存储器代 表频度值在使用最大出现频度的情况下,使用第i层次存储器130-i的桶内出现频度上限θi和当前的桶识别值B,通过下述式(2)算出。最大出现频度表示设想了直到紧跟前的桶边界前为止没有整理而计数出现频度的、可产生的出现频度的最大值。
[公式1]
Ri=θi×(B-1)···(2)
(2.2)算法的说明
图3是示意性地表示在第一实施方式中输入到分配部150的、数据流200的图。另外,在要说明的实施方式中,以不中断而连续输入的数据流200为例进行说明,但在其他的实施方式中,也能够对规定尺寸的数据组应用。在误差允许计数法中,构成数据流200的符号串被划分为被称为规定宽度w(=1/e)的桶210的单位。对各桶210-1、210-2……,对应于当前时刻的输入数据数N而赋予桶识别值B。例如,若允许1/1000的误差(e=1/1000),则每1000个符号被划分为桶,被分配连续的桶识别值B(1,2,……)。
相邻的桶间的边界212参照桶边界,在该桶边界中,执行对应于出现频度的分配处理。若被输入上述数据流200的符号串,则桶依次充满,在桶边界进行分配,从最上位存储器110的集合D整理低频度的条目。并且,被整理的条目保存在对应于出现频度的层次存储器130中。图3中、箭头214表示通过输入而桶直到该箭头214所示的位置为止充满。
在应用了本实施方式的误差允许计数法的分配处理中,分配部150重复执行以下说明的、每个存取的(A)计数处理以及每个桶的(B)分配处理。
(A)计数处理
分配部150对对于符号x的每个存取执行在下述(A1)~(A3)中说明的计数处理。图4是说明第一实施方式的分配部150对对于符号x的每个存取执行的计数处理的图。
(A1)分配部150在计数处理中,参照最上位存储器110,在集合D内发现了涉及存取的符号x的情况下,增加该符号x的现有条目的出现频度的计数器,更新为(x,f+1,Δ)(图4的(A1))。
(A2)分配部150在上述集合D内没有发现的情况下,进一步参照各层 次存储器130。分配部150在第i层次存储器130-i的集合Di中发现了符号x的情况下,取得对发现的第i层次存储器130-i定义的存储器代表频度值Ri(132-i),根据存储器代表频度值Ri而复原计数器值,并将条目(x,Ri,B-1)再次追加到最上位存储器110的集合D。关于发现的第i层次存储器130-i内的条目,从存储器内删除或者当做被删除而忽略。分配部150伴随着上述再次追加,进一步,将第i层次存储器130-i的全部符号的合计出现次数Ni(134-i)减去再次追加的计数量Ri(Ni=Ni-Ri)(图4的(A2))。此外,伴随着上述再次追加,第i层次存储器130-i的符号数|Di|也适当减少。
这里,设定的最大允许误差Δ(=B-1)提供设想了直到紧跟前的桶边界前为止没有整理而计数出现频度且在该桶边界整理之后在该桶中再次追加的、可产生的出现频度的最大值(最大允许误差:θi(B-1))。
另外,在使用符号平均出现频度的情况下,存储器代表频度值Ri能够根据第i层次存储器130-i的合计出现次数Ni(134-i)以及符号数|Di|(136-i)而算出。在使用最大出现频度的情况下,存储器代表频度值Ri能够根据与第i层次存储器130-i对应的桶内出现频度上限θi以及当前的桶识别值B152而算出。另外,作为存储器代表频度值,能够适当地选择在上述符号平均出现频度以及最大出现频度中的符号平均出现频度。由此,能够抑制在最上位存储器110的集合D内残留的条目数的增长。
(A3)分配部150在尽管参照了最上位存储器110以及一个以上的层次存储器130的全部但在集合D,Di(i=1,……,n)内没能发现符号x的情况下,在最上位存储器110的集合D中新追加条目(x,1,B-1)(图4的(A3))。这里,设定的出现频度的计数器值为初始值,最大允许误差Δ(=B-1)与上述相同。
(B)分配处理
分配部150对桶内的每个条目执行在下述(B1)以及(B2)中说明的分配处理。图5是说明第一实施方式的分配部150对桶内的每个条目执行的分配处理的图。
(B1)分配部150在各条目(x,f,Δ)的出现频度f、最大允许误差Δ、当前的桶识别值B(=eN)关于层次i满足下述式(3)的情况下,从最上位存储器110的集合D移动到第i层次存储器130的集合Di(图5的(B1))。在上述移动中,分配部150从最上位存储器110的集合D读出条目,在第i 层次存储器的集合Di中追加该条目的符号,从最上位存储器110的集合D删除该条目。由此,最上位存储器110内的比较低频度的条目按频度分配到层次存储器130。分配部150伴随着上述移动,将第i层次存储器的全部符号的合计出现频度Ni134-i增加所移动的条目的出现频度f量(Ni=Ni+f)。此外,伴随着上述移动,符号数|Di|也适当增加。
[公式2]
θi+1(B-Δ)<f≤θi(B-Δ)···(3)
(B2)分配部150在各条目(x,f,Δ)中的出现频度f、最大允许误差Δ、当前的桶识别值B(=eN)不满足上述式(3)的情况下,即,关于出现频度f大于θ1(B-Δ)的条目,使该条目残留在最上位存储器110内(图5的(B2))。
图6是说明通过上述(B)分配处理而对最上位存储器110以及各层次存储器130分配符号的条目的情况的图。另外,图6例示包含最上位存储器D和两个层次存储器D1、D2的情况下的关键字值存储器。
图6(A)表示符号以浓度分级来表现的数据流200。图6(B)是说明根据各条目的最大允许误差Δ和当前的桶识别值B(B=eN:与当前为止的输入数据数N有关。)而划定的、对于出现频度f的存储器间的边界θi(B-Δ)的图。
若被输入如图6(A)所示的数据流200,则如图6(B)所示,通过上述计数处理而计数各符号的出现频度。此外,在各符号的条目中,存储有该符号的条目追加到最上位存储器110的时刻的最大允许误差Δ。因此,边界θi(B-Δ)减去在最上位存储器110中追加了条目的时刻在出现频度f中能够包含的最大的误差(θiΔ),表示对于分配给第i层次存储器的出现频度f的上限。进而,根据第i层次存储器的桶内出现频度上限θi和其下位的第(i+1)层次存储器的桶内出现频度上限θi+1,划定对于分配给该第i层次存储器130的符号的出现频度f的范围。
在再次追加到最上位存储器110的条目中,进一步,包含根据原来的层次存储器的存储器代表频度值Ri而复原的、某种程度反映了过去的出现频度的计数值。由于被再次追加的条目从上述复原的值起开始出现频度的计数,所以与完全从初始值(=1)开始计数的情况相比,过去具有某种程度的出现 频度的符号难以在返回到最上位存储器110之后再次移动到层次存储器。例如,图6所示的符号“B”在从1开始计数的情况下,由于出现频度f达不到边界θ1(B-Δ),应从最上位存储器110被整理掉,但通过根据存储器代表频度值Ri而复原了计数器值,从而残留在最上位存储器110中。
(C)编入处理
此外,在应用了本实施方式的误差允许计数法的分配处理中,分配部150能够对每个桶重复执行将低于下位的层次存储器的实绩的上位的层次存储器的条目编入下位的层次存储器的、编入处理。
图7是说明分配部150对每个桶执行的编入处理的图。分配部150在编入处理中,对各层次存储器(i=1,…,n-1),通过下述式(4)而判定上位层次存储器i的实绩是否低于下位的层次存储器i+1的实绩。另外,下述式(4)中的μ是规定编入判定中的编入条件的因子,作为参数而被提供。分配部150在存在比规定低于下位层次存储器(i+1)的实绩的上位层次存储器i的情况下,取出该上位层次存储器i内的全部条目,编入下位层次存储器(i+1)(图7的(C))。分配部150进一步伴随上述编入,将上位层次存储器的合计出现频度Ni加到下位层次存储器的合计出现频度Ni+1(Ni+1=Ni+1+Ni),并复位为0(Ni=0)。上位层次存储器i伴随着上述编入,从关键字值存储器100排除。
[公式3]
(2.3)处理流程
以下,参照图8~图12,详细说明应用了分配部150执行的误差允许计数法的分配处理的流程。图8是表示第一实施方式的分配部150执行的、应用了误差允许计数法的分配处理的主流程的流程图。
图8所示的处理从步骤S100开始,在步骤S101中,分配部150首先进行初始化。在步骤S101所示的初始化处理中,取得各种参数(e、θi、μ),准备空的最上位存储器110以及层次存储器130,对各变量(N、Ni、|Di|、B)设定初始值。
在步骤S102中,对对于符号x的每个存取调用图9所示的计数处理。参照图9说明计数处理流程。若步骤S102所示的计数处理结束,则处理进入步 骤S103。在步骤S103中,分配部150判定是否通过数据流的输入而桶充满。在步骤S103中,判定为当前的桶还没有满的情况下(否),循环到步骤S102,等待至输入位置达到桶边界为止。在步骤S103中,判定为当前的桶充满的情况下(是),将处理进入步骤S104。
在步骤S104中,分配部150调用参照图10说明细节的分配处理流程。若步骤S104的分配处理结束,则处理进入步骤S105。在步骤S105中,分配部150调用参照图11说明细节的编入处理流程。若步骤S105的编入处理结束,则再次循环到步骤S102,处理对象移动到下一个存取,重复步骤S102~步骤S105所示的处理。
图9是表示第一实施方式的分配部150执行的、每个存取的计数处理的流程图。图9所示的计数处理通过图8中示出的步骤S104而被调用,从步骤S200开始。在步骤S201中,分配部150取得涉及存取的符号x。
在步骤S202中,分配部150参照最上位存储器110,判定符号x是否存在于集合D内。在步骤S202中,从最上位存储器110的集合D内发现符号x且判定为存在于集合D内的情况下(是),处理分支到步骤S207。在步骤S207中,分配部150将最上位存储器的集合D内的现有条目(x,f,Δ)更新为(x,f+1,Δ),在步骤S211中返回到调用源的处理。
在步骤S207基于与注册请求(PUT)对应的存取的情况下,对应于上述存取,被覆写与最上位存储器110的集合D内的条目对应的“值”。在步骤S207基于与取得请求(GET)对应的存取的情况下,对应于上述存取,从最上位存储器110读出与集合D内的条目对应而存储的“值”,送回请求源。
另一方面,在步骤S202中,在集合D内没有发现符号x,判定为不存在的情况下(否),将处理进入步骤S203~S205所示的循环。在步骤S203~S205的循环中,对从第1层次存储器D1至第n层次存储器Dn的各第i层次存储器130-i的集合Di,在步骤S204中参照第i层次存储器130-i,判定在该集合Di内是否存在符号x。
在步骤S204中,判定为在第i层次存储器130-i的集合Di中存在符号x的情况下(是),摆脱步骤S203~S205的循环,处理进入步骤S208。在步骤S208中,分配部150取得对符号x存在的第i层次存储器的集合Di定义的存储器代表频度值Ri。在步骤S209中,分配部150在最上位存储器110的集合D中再次追加符号x的条目(x,Ri,B-1),在步骤S210中,从上述第i 层次存储器的合计出现频度Ni减去存储器代表频度值Ri,在步骤S211中,返回到调用源的处理。
在步骤S209基于与注册请求(PUT)对应的存取的情况下,与上述存取对应地,在最上位存储器110内与条目建立对应而存储值。在步骤S209基于与取得请求(GET)对应的存取的情况下,与上述存取对应地,从上述第i层次存储器130-i读出与密钥对应的值,送回请求源,且在最上位存储器110内与条目对应而存储值。
另一方面,在步骤S204中,在第i层次存储器130-i的集合Di内没有发现符号x,判定为不存在的情况下(否),将处理进入步骤S205。若在最下层的层次存储器130-n的集合Dn中也没有发现,则结束步骤S203~步骤S205的循环,处理进入步骤S206。此时,由于符号x是首次出现,所以在步骤S206中,分配部150在最上位存储器D中新追加符号x的条目(x,1,B-1),在步骤S211中,返回到调用源的处理。
在步骤S206的存取对应于注册请求(PUT)的情况下,在最上位存储器D内与条目建立对应而存储“值”。在步骤S206的存取对应于取得请求(GET)的情况下,进行表示没有与查询的密钥对应的值的响应。
图10是表示第一实施方式的分配部150执行的、分配处理的流程图。图10所示的分配处理通过图8的步骤S106被调用,从步骤S300开始。在步骤S301~S307的循环中,对最上位存储器110的集合D内的各条目(x,f,Δ)执行步骤S302~S309所示的各处理。
在步骤S302中,分配部150从最上位存储器110读出集合D内的条目(x,f,Δ)。在步骤S303~S305的循环中,分配部150对从第1层次存储器D1至第n层次存储器Dn的各第i层次存储器130-i的集合Di,在步骤S304中进行是否满足用于进行与条目的出现频度f对应的分配的上述式(3)的判定。
在步骤S304中判定为满足上述式(3)的情况下(是),处理进入步骤S308。此时,由于分配目的地决定为第i层次存储器130-i,所以在步骤S308中,分配部150从最上位存储器110取出条目(x,f,Δ),移动到第i层次存储器130-i的集合Di。在步骤S309中,分配部150从第i层次存储器130-i的合计出现频度Ni减去符号x的出现频度f,摆脱步骤S303~S305的循环,分支到步骤S307。
在步骤S304中判定为不满足上述式(3)的情况下(否),处理进入步骤S305。在任一个层次存储器的集合Di(1~n)中都不满足上述式(3)的情况下,即出现频度f大于θ1(B-Δ)的情况下,结束步骤S303~步骤S305的循环,处理进入步骤S306。此时,由于分配目的地决定为最上位存储器110,所以在步骤S306中,分配部150将条目(x,f,Δ)原样残留在最上位存储器110的集合D内,进入步骤S307。若对全部条目(x,f,Δ)进行步骤S301~S307的循环,则在步骤S310中处理返回到调用源。
图11是表示第一实施方式的分配部150执行的、编入处理的流程图。图11所示的编入处理通过图8的步骤S107被调用,从步骤S400开始。在步骤S401~S406的循环中,分配部150对第1层次存储器D1至第n-1层次存储器Dn-1的各第i层次存储器的集合Di,在步骤S402中通过上述式(4)而判定上位层次存储器i的出现频度的实绩是否低于下位层次存储器(i+1)的实绩。
在步骤S402中判定为满足上述式(4)的情况下(是),处理进入步骤S403。此时,判断为上位层次存储器i的实绩比规定低于下位的层次存储器i+1的实绩。在步骤S403中,分配部150将上位层次存储器i的集合Di的全部条目编入下位层次存储器i+1的集合Di+1。在步骤S404中,分配部150将上位层次存储器i的合计出现频度Ni设为0,在步骤S405中,将上位层次存储器i的合计出现频度Ni加到下位层次存储器i+1的合计出现频度Ni+1,进入步骤S406。
另一方面,在步骤S402中,判定为不满足上述式(4)的情况下(否),处理进入步骤S406。在判定为上述式(4)对哪一个层次存储器(i=1~n-1)都不满足,不存在低于下位层次存储器(i+1)的实绩的上位层次存储器i的情况下,结束步骤S402~步骤S406的循环,不进行编入,在步骤S407中处理返回到调用源。
(3)第一实施方式的优点
根据上述的第一实施方式,高频度的符号存储在数据存取速度被优先的数据结构内,低频度的符号存储在存储器空间效率被优先的数据结构内。由此,各符号存储在与出现频度对应的最合适的类型的存储器中,尤其,在沿着齐普夫定律的现实的数据存取中,作为整体的存储器空间效率以及吞吐量提高。
此外,根据上述的第一实施方式,能够根据允许误差来控制按频度的符 号的提取精度。若将最上位存储器110的条目表示为(x,fB,ΔB),则该条目保证对作为参数而提供的第1层次存储器的桶内出现频度上限θ1满足下述式(5)。此外,若将第i层次存储器130-i(i=1,…,n-1)的条目表示为(yi,fi,Δi),则该条目保证对层次存储器130-i以及层次存储器130-(i+1)的桶内出现频度上限θi,θi+1满足下述式(6)。此外,若将最下层的第n层次存储器130-n的条目表示为(z,fn,Δn),则该条目保证满足下述式(7)。另外,在下述式(5)~(7)中,E()表示平均。
[公式4]
fB>θ1(N-E(ΔB))···(5)
θi+1(N-E(Δi))<fi≤θi(N-E(Δi))···(6)
fn≤θn(N-E(Δn))···(7)
此外,根据上述第一实施方式,对各层次存储器130-i定义存储器代表频度值Ri,从各层次存储器i再次追加到最上位存储器110的条目基于存储器代表频度值Ri而复原某种程度反映了过去的出现频度。因此,即使是在减小桶宽度,丢失了中频度的准确的信息的状况下,通过根据上述存储器代表频度值Ri而复原适当的频度,也能够降低最上位存储器110以及层次存储器130间的条目的往来所产生的振动。此外,通过上述编入处理,能够将频度的提取精度维持在高等级,提高最差的情形的性能。
(4)第二实施方式
以上,说明了实现包括最上位存储器110以及一个以上的层次存储器130而构成的关键字值存储器100的第一实施方式,但以下,说明更具体的实施方式。此外,在上述第一实施方式中,说明了对被再次追加的条目,根据存储器代表频度值Ri而复原计数器值f。但是,如上所述,通过根据各条目的最大允许误差Δ、出现频度f以及输入数据数N的关系而划定分配时的边界θi(B-Δ),在其他的实施方式中,也能够定义复原最大允许误差Δ的存储器代表值。以下,说明包括附带计数器的散列图存储器、双阵列存储器以及LOUDS存储器的三个数据存储器而构成且定义了复原最大允许误差Δ的存储器代表值的、第二实施方式。
图12是在第二实施方式的计算机装置上实现的关键字值存储器的功能框图。图12所示的关键字值存储器300包括附带计数器的散列图存储器310、布隆过滤器320、双阵列存储器330、LOUDS存储器340、分配部350而构 成。
散列图存储器310是用于存储属于图1中的高频度区域(大致上位1%)的关键字的在存取速度方面优秀的数据存储器。在散列图存储器310中,对符号的每个条目设置有保持其出现频度的计数器。LOUDS存储器340是用于存储属于图1中的低频度区域(大致下位79%)的关键字的在存储器空间效率方面优秀的数据存储器。双阵列存储器330是用于存储属于图1中的中频度区域的关键字的数据存储器。双阵列存储器330具有存储器空间效率比散列图存储器310优秀,存取速度比LOUDS存储器340优秀的特征。
如上所述,由于LOUDS存储器340是难以追加的数据结构,所以在本实施方式中,采用外观(Facade)结构。即,LOUDS存储器340包括分别存储各m个密钥的下位的LOUDS(以下,作为下位LOUDS而参考)342-1~342-x而构成,这些下位LOUDS342犹如单一的数据结构那样进行处理。
图13是表示第二实施方式的LOUDS存储器340的更详细的功能块的图。图13所示的LOUDS存储器340包括输入缓冲器字典树346、0或者1个以上的下位LOUDS342-1~342-x。
输入缓冲器字典树346是维持存储了密钥以及值的条目的字典树的能够追加记载的缓冲器。相对于LOUDS为难以追加记载的静态的字典树,输入缓冲器字典树346作为通过链接结构而维持了树结构的、能够追加记载的动态的字典树而构成。
下位LOUDS342是表现分别存储了对于LOUDS存储器340的输入数据总数M中的各m个输入数据组的字典树的简洁数据结构。下位LOUDS342在被输入到输入缓冲器字典树346的数据数每达到规定数m时调用的LOUDS构筑处理中构筑。
LOUDS存储器340能够进一步包括与上述下位LOUDS342对应的0或者1个以上的布隆过滤器344。各布隆过滤器344是近似或者概率性地判定在对应的下位LOUDS342内存在特定的密钥的过滤器。布隆过滤器344能够在被输入到输入缓冲器字典树346的数据数每达到规定数m时调用的LOUDS构筑处理中,与下位LOUDS342一同构筑。
若对LOUDS存储器340进行数据输入请求(ADD),则密钥以及值追加记载到输入缓冲器字典树346。LOUDS存储器340包括未图示的LOUDS构筑部件,在被输入到输入缓冲器字典树346的数据数每达到一定数m时, 对输入缓冲器字典树346的各节点进行扫描而构筑表现该字典树的下位LOUDS342,且构筑对应的布隆过滤器344。此外,LOUDS存储器340能够包括未图示的LOUDS结合部件,根据一定的战略而对多个下位LOUDS342的各节点进行扫描,能够构筑表现结合了多个下位LOUDS342的字典树的结合字典树的上位等级的LOUDS,且还能够构筑对应的过滤器。具体而言,上述构筑以及结合中的节点的扫描能够通过宽度优先扫描而进行。
若对LOUDS存储器340进行密钥查询请求(GET),则对该LOUDS存储器340的有效数据结构(输入缓冲器字典树346以及下位LOUDS342(包括对应的布隆过滤器344))组,从新的组开始进行询问,在从某一个有效数据结构发现了查询密钥的时刻送回值。由此,与在LOUDS存储器340中存储的密钥对应的值(若有多个则其最新的值)被送回请求源。根据上述的结构,能够提供比LOUDS单体的数据结构容易追加记载且存储器利用效率也高、存取速度得以改善的LOUDS存储器340。
进一步详细说明第二实施方式的分配部350执行的、应用了误差允许计数法的分配处理。以下,首先,表示在应用了误差允许计数法的分配处理时使用的定义。
DHM:表示散列图存储器310内的条目的集合。DHM是最上位的存储器。
DDA:表示双阵列存储器330内的条目的集合。DDA是最上位的层次存储器,是中位的存储器。
DL:表示LOUDS存储器340内的条目的集合。DL是最下层的层次存储器,是最下位的存储器。
ΘDA:表示与双阵列存储器330的出现频度有关的上限阈值。上限阈值ΘDA作为参数而提供。
ΘL:表示与LOUDS存储器340的出现频度有关的上限阈值。上限阈值ΘL作为参数而提供。
x:表示符号(密钥)。
f:表示符号的出现频度。
δ:表示对于出现频度f的错误估计(误差值)。
(x,f,δ):表示上述集合DHM的各条目(元素)。
N:表示被输入的全部符号的合计出现频度(输入数据数)。重复的也被计数。
TDA:表示双阵列存储器330的全部符号的合计出现频度。
#DA:表示双阵列存储器330的符号数(密钥数)。
TL:表示LOUDS存储器340的全部符号的合计出现频度。
#L:表示LOUDS存储器340的符号数。
w=1/e:表示桶宽度。
B=ceiling(eN):表示识别当前的桶的桶识别值。
RDA:表示对双阵列存储器330定义的存储器代表值。在使用符号平均出现频度的情况下,存储器代表值RDA通过下述式(8)而算出。在使用最大出现频度的情况下,存储器代表值RDA使用双阵列存储器330的上限阈值ΘDA和当前的桶识别值B通过下述式(9)而算出。
RL:表示对LOUDS存储器340定义的存储器代表值。存储器代表值RL与存储器代表值RDA同样地被计算。
[公式5]
与第一实施方式同样地,输入的数据流200被划分为被称为规定宽度w(=1/e)的桶210的单位。对各桶210-1、210-2……根据当前的输入数据数N而赋予桶识别值B。若被输入上述数据流200,则桶210依次充满,在桶边界212中进行分配,低频度的条目从散列图存储器310的集合DHM被整理掉。被整理掉的条目根据出现频度而保存在双阵列存储器330或者LOUDS存储器340内。
在应用了上述误差允许计数法的分配处理中,分配部350对每个存取执行(A)计数处理,对每个桶重复执行(B)分配处理。此外,分配部350能够对每个桶重复执行(C)编入处理。
(A)计数处理
分配部350对对于符号x的每个存取执行在下述(A1)~(A4)中说明的计数处理。
(A1)分配部350在计数处理中参照散列图存储器310,在集合DHM内发现了涉及存取的符号x的情况下,增加该符号x的现有条目的出现频度的计数器,更新为(x,f+1,δ)。
(A2)分配部350在上述集合DHM内没有发现的情况下,进一步参照双阵列存储器330。分配部350若在双阵列存储器330的集合DDA中发现符号x,则取得对双阵列存储器330定义的存储器代表值RDA,将条目(x,1,RDA)再次追加到散列图存储器310的集合DHM。分配部350伴随着上述再次追加,进一步,将散列图存储器310的全部符号的合计出现次数TDA减少再次追加的计数量RDA(TDA=TDA-RDA)。此外,伴随着上述再次追加,散列图存储器310的符号数#DA也适当减少。
在第二实施方式中,在复原条目时,代替根据存储器代表值而复原计数值,计数值原样设定为初始值1,根据存储器代表值RDA而设定错误估计δ。该错误估计δ在使用符号平均出现频度作为存储器代表值的情况下,估计为平均出现频度能够包含的误差。在使用最大出现频度的情况下,错误估计δ提供设想了直到紧跟前的桶边界前为止没有整理而计数出现频度且在该桶边界整理之后在该桶中再次追加的、可产生的出现频度的最大值(最大允许误差)。
(A3)分配部350在上述集合DHM、DDA内没有发现的情况下,进一步参照LOUDS存储器340。分配部350若在LOUDS存储器340的集合DL内发现符号x,则取得对LOUDS存储器340定义的存储器代表值RL,将条目(x,1,RL)再次追加到散列图存储器310的集合DHM。这里,设定的出现频度f的计数器值为初始值1,错误估计δ与上述相同。
(A4)分配部350在尽管参照了散列图存储器310、双阵列存储器330以及LOUDS存储器340的全部但在集合DHM,DDA,DL中没能发现符号x的情况下,在散列图存储器310的集合DHM中新追加条目(x,1,0)。这里,设定的出现频度的计数器值为初始值1,错误估计δ(=0)表示符号x首次出现,不能包含误差,但也可以对错误估计δ输入桶识别值。
(B)分配处理
分配部350对桶内的每个条目执行在下述(B1)~(B3)中说明的分配处理。
(B1)分配部350在各条目(x,f,δ)的出现频度f、错误估计δ、当前的输入数据数N满足下述式(10)的情况下,将该条目残留在散列图存储器310内。
(B2)分配部350在各条目(x,f,δ)的出现频度f、错误估计δ、当 前的输入数据数N满足下述式(11)的情况下,将该条目从散列图存储器310的集合DHM移动到双阵列存储器330的集合DDA。分配部350伴随着上述移动,将双阵列存储器的全部符号的合计出现频度TDA增加所移动的条目的出现频度f量(TDA=TDA+f)。此外,伴随着上述移动,双阵列存储器330的符号数#DA若在集合DDA中不存在符号x,则增加所移动的条目量(#DA=#DA+1)。
(B3)分配部350在各条目(x,f,δ)的出现频度f、错误估计δ、当前的输入数据数N满足下述式(12)的情况下,将该条目从散列图存储器310的集合DHM移动到LOUDS存储器340的集合DL。分配部350伴随着上述移动,将LOUDS存储器340的合计出现频度TL增加所移动的条目的出现频度f量(TL=TL+f)。此外,伴随于此,LOUDS存储器340的符号数#L若在集合DL中不存在符号x,则增加所移动的条目量(#L=#L+1)。
[公式6]
(f+δ)≥ΘDAN···(10)
ΘLN≤(f+δ)<ΘDAN···(11)
(f+δ)<ΘLN···(12)
(C)编入处理
分配部150在编入处理中,对双阵列存储器330,通过下述式(13)而判定上位的双阵列存储器330的实绩是否低于其下位的LOUDS存储器340的实绩。分配部350在双阵列存储器330的实绩比规定低于LOUDS存储器340的实绩的情况下,取出双阵列存储器330的全部条目(除了在散列图存储器310中存在的条目之外),编入LOUDS存储器。分配部350进一步,伴随着上述编入,将双阵列存储器330的合计出现频度TDA加到LOUDS存储器340的合计出现频度TL(TL=TL+TDA:除了在散列图存储器310中存在的量之外),将双阵列存储器330的符号数#DA加到LOUDS存储器340的符号数#L(#L=#L+#DA:除了在散列图存储器310中存在的量之外),将合计出现频度TDA以及数#DA复位为0。
[公式7]
根据上述的第二实施方式,与第一实施方式相同地,各符号存储到最适 合的类型的存储器,在沿着齐普夫定律的现实的数据存取中,作为整体的存储器空间效率以及吞吐量提高。
此外,根据上述的第二实施方式,能够根据允许误差来控制按频度的符号的提取精度。这里,若将X设为表示对于x的存取数的概率变量,则关于散列图存储器310的条目保证对作为参数而提供的ΘDA满足下述式(14)。关于双阵列存储器330的条目保证对作为参数而提供的ΘDA以及ΘL满足下述式(15)。关于LOUDS存储器340的条目保证对作为参数而提供的ΘL满足下述式(16)。在下述式(14)~(16)中,E()表示平均。
[公式8]
ΘLN≤E[X]<ΘDAN···(15)
E[X]<ΘLN···(16)
此外,根据上述第二实施方式,对双阵列存储器330以及LOUDS存储器340的每一个定义存储器代表值RDA,RL,对再次追加到散列图存储器310的条目设定了某种程度考虑了过去的错误估计。因此,与第一实施方式相同地,降低散列图存储器310以及存储器330、340间的条目的往来所产生的振动。此外,通过上述编入处理,能够将频度的提取精度维持在高等级,提高最差的情形的性能。
(5)第三实施方式
以上,说明了实现包括散列图存储器310、布隆过滤器320、双阵列存储器330以及LOUDS存储器340而构成的关键字值存储器300的第二实施方式。但是,其他的实施方式也可以如图14所示、使用两种类型的存储器而构成关键字值存储器400。图14所示的第三实施方式的关键字值存储器400包括附带计数器的散列图存储器410、布隆过滤器420、由双阵列存储器或者LOUDS存储器构成的存储器430、分配部450而构成。
在图14所示的第三实施方式中,在沿着齐普夫定律的现实的数据存取中,也能够提高作为整体的存储器空间效率以及吞吐量。此外,能够降低散列图存储器410以及存储器430间的条目的往来所产生的振动,此外,能够提高最差的情形的性能。
(6)硬件结构
以下,说明实现上述实施方式的关键字值存储器的计算机装置。图15表示实现本实施方式的关键字值存储器(100/300/400)的计算机装置的概略性的硬件结构。图15所示的计算机装置包括中央处理装置(CPU)12、能够进行CPU12使用的数据的高速存取的具有L1以及L2等的等级的高速缓冲存储器14、由能够进行CPU12的处理的DRAM等的固体存储器元件形成的系统存储器16。系统存储器16提供本实施方式的关键字值存储器(100/300/400)的数据结构的存储区域。
CPU12、高速缓冲存储器14以及系统存储器16经由系统总线18连接到其他的设备或者驱动器、例如图形驱动器20以及网络接口卡(NIC)22。图形驱动器20经由总线连接到外部的显示器24,能够将CPU12的处理结果显示在显示器画面上。此外,NIC22在物理层等级以及数据链路层等级中,将计算机装置连接到使用TCP/IP等的适当的通信协议的网络。
在系统总线18上,进一步连接有I/O总线桥26。在I/O总线桥26的下游侧,经由PCI等的I/O总线28,通过IDE、ATA、ATAPI、串行ATA、SCSI、USB等而连接有硬盘装置30。此外,在I/O总线28上,经由USB等的总线而连接有键盘以及鼠标等的指示设备等的输入装置32,通过该输入装置32而提供用户界面。
作为计算机装置的CPU12,能够使用任意的单核处理器或者多核处理器。计算机装置通过WINDOWS(注册商标)200X、UNIX(注册商标)、LINUX(注册商标)等的操作系统(以下,作为OS而参考)而被控制。计算机装置通过在上述OS的管理之下,在系统存储器16上等展开程序,执行程序,对各硬件资源进行动作控制,在计算机上实现上述的功能部的结构以及处理。
(7)实验
(7-1)计算机装置中的安装
安装了使用具有时钟数2.2GHz的Dual Core Opteron(注册商标)275处理器2机和2MB的2次高速缓冲、4GB的PC3200的RAM、750GB的SATA接口的HDD(7200rpm)2机的IntelliStation(注册商标)APro,实现本实施方式的关键字值存储器的计算机装置。该计算机装置的操作系统是Windows(注册商标)2003Server Standard x64EditionServicePack2,上述程序通过Java(注册商标)语言(Version 1.6.0)而描述。
(7-2)实验结果(吞吐量以及存储器消费量)
在计算机装置上实现了用于实现图12所示的关键字值存储器300的系统。LOUDS存储器340通过图13所示的外观结构而安装。在LOUDS存储器340中,布隆过滤器344设为如下结构:对每1个关键字准备3比特的比特排列,通过2个散列函数而将各2比特进行有效化。此外,误差e设为1/20000,上限阈值ΘHM以及ΘL分别设为1/4000以及1/10000。
计测了在对上述关键字值存储器300输入了从NHTSA收集公开的汽车的不合适报告数据库中通过语言处理而提取的包含重复的关键字2.4亿件的数据组时的平均吞吐量以及存储器使用量。上述关键字是平均大约27.2个字符,在上述数据组中包含大约650万个唯一的关键字字符串。
为了进一步比较,分别构成只由散列图存储器构成的关键字值存储器、只由双阵列存储器构成的关键字值存储器、以及只由LOUDS存储器构成的关键字值存储器,输入与上述相同的数据组,计测了平均吞吐量以及存储器使用量。
将由上述数据组构筑了关键字值存储器时的第二实施方式(Hash Map+DA+LOUDS)、只涉及散列图存储器(Hash Map)的实验例、只涉及双阵列存储器(Double ArrayTRIE)的实验例、只涉及LOUDS存储器(LOUDS TRIE)的实验例分别作为实验例1、实验例2、实验例3以及实验例4而参考。实验例1对应于实施例。
下述表1是汇总了对上述实验例1~实验例4测定的平均吞吐量以及存储器使用量的表。如下述表1所示,实验例1的关键字值存储器300的存储器消费量是实验例3的只涉及双阵列的关键字值存储器的大约一半,且记录了临近只涉及双阵列的存储器的平均吞吐量。因此,表示与只涉及散列图存储器、只涉及双阵列存储器或者只涉及LOUDS存储器中的安装相比,在大致沿着齐普夫定律的现实的数据存取中,上述实施方式的关键字值存储器从存储器空间效率以及吞吐量的综合性的观点出发能够发挥优秀的性能。
[表1]
(7-3)实验结果(归还率以及残留率)
此外,在上述计算机装置中,计测了从其他存储器归还到散列图存储器310的符号数相对于在输入了上述数据组时进入每个桶的散列图存储器的全部符号数的比例(归还率)、残留在散列图存储器310的条目数相对于分配时的散列图存储器的全部条目的比例(残留率)、命中散列图存储器310的条目相对于全部符号数的比例(命中率)的经时变化。此外,计测了输入上述数据组而最终获得的关键字值存储器的存储器消费量。
为了进一步比较,在实现图12所示的关键字值存储器300的系统中,构成不进行使用了存储器代表值的条目的复原的系统,输入同一数据组,计测了输入了上述数据组时的归还率、残留率以及命中率的经时变化。此外,计测了输入上述数据组而最终获得的关键字值存储器的存储器消费量。
将由上述数据组构筑了关键字值存储器时的、第二实施方式的系统和在第二实施方式的系统中不进行使用了存储器代表值的条目的复原的系统所涉及的实验例分别作为实验例5以及实验例6而参考。实验例5对应于实施例。
图16(A)是描画了对上述实验例5以及实验例6测定的归还率的经时变化的折线图表。图16(B)是描画了对上述实验例5以及实验例6测定的残留率的经时变化的折线图表。图17(A)是描画了对上述实验例5以及实验例6测定的命中率的经时变化的折线图表。图17(B)是描画了对上述实验例5以及实验例6最终获得的关键字值存储器的消费存储器量的棒状图表。另外,在上述图16以及图17(A)中,横轴的时间对应于输入数据数。
如图16(A)所示,在不进行使用了存储器代表值的复原的系统(实验例6)中,归还率随着时间的经过而大幅变动,表示高的值。相对于此,理解到在进行使用了存储器代表值的复原的第二实施方式的系统(实验例5)中,稳定地抑制为低的归还率。同样地,如图16(B)所示,理解到在实验例6的系统中,残留率不论时间的经过而表示低的值,但在实验例5的第二实施方式的系统中,随着时间的经过而残留率得以改善,最终提高至大约93%。同样地,参照图17(A),理解到在实验例6的系统中,命中率伴随着时间的经过而单调减少,但在实验例5的第二实施方式的系统中,随着时间的经过而命中率提高。
此外,如图17(B)所示,在实验例6的系统和实验例5的第二实施方 式的系统中,存储器消费量中没有较大差异,第二实施方式的系统是更加稍微紧凑的结果。
归还率被评价为在低时精度高,残留率被评价为在高时精度高,命中率也被评价为在高时精度高,但上述实验例5表示与不进行使用了存储器代表值的复原的实验例6相比,从归还率、残留率以及命中率的任一个观点看,精度都得以改善。
在第二实施方式的系统中,认为归还率、残留率以及命中率得以改善是通过使用了存储器代表值的复原,符号的出现频度被适当地评价,高频度的符号容易残留在散列图存储器310,且一度被整理出的低频度的符号难以归还到散列图存储器310,进而,散列图存储器310以及存储器330、340间的条目的往来所产生的振动降低的结果。
如以上说明,根据本发明的实施方式,能够提供一种能够进行在线构筑,以高的空间效率来存储密钥,并且实现具有高的数据存取速度的数据存储器的信息处理装置、数据存储器操作方法以及程序。
另外,关于本发明,为了容易理解发明而记述了各功能部以及各功能部的处理,但本发明除了上述的特定的功能部执行特定的处理之外,也能够考虑处理效率或安装上的编程等的效率而对任意功能部分配用于执行上述的处理的功能。
此外,本发明除了作为密钥、作为记号而使用1字节字符的字符串之外,当然也能够对日语、汉语、韩语、阿拉伯语等多字节的字符的字符串应用。
本发明的上述功能能够通过由C++、Java(注册商标)、JavaBeans(注册商标)、Java(注册商标)Applet、JavaScript(注册商标)、Perl、Ruby等的对象指向编程语言等描述的装置能够执行的程序而实现,能够存储在装置可读的记录介质中发布或者传输而发布。
至此,通过特定的实施方式说明了本发明,但本发明并不限定于实施方式,也能够在其他的实施方式、追加、变更、删除等本领域技术人员能够想到的范围内进行变更,只要在哪个方式中都起到本发明的作用、效果,则包含在本发明的范围中。
标号说明
12…CPU、14…高速缓冲存储器、16…系统存储器、18…系统总线、20…图形驱动器、22…NIC、24…显示器、26…I/O总线桥、28…I/O总线、30… 硬盘装置、32…输入装置、100,300,400…关键字值存储器、110…最上位存储器、120,320,420…布隆过滤器、130…层次存储器、132…存储器代表频度值Ri、134…合计出现次数Ni、136…符号数|Di|、150,350,450…分配部、200…数据流、210…桶、212…桶边界、214…输入位置、310,410…散列图存储器、330…双阵列存储器、340…LOUDS存储器、342…下位LOUDS、344…布隆过滤器、346…输入缓冲器字典树、430…双阵列存储器或者LOUDS存储器。
Claims (15)
1.一种信息处理装置,包括:
最上位存储器,对其中包含的每个符号条目设置有计数器;
一个以上的层次存储器,定义了代表所述层次存储器中的符号的出现频度的至少一个存储器代表频度值;以及
分配部,在所述最上位存储器内对要存取的符号进行计数,根据计数器值,分配符号条目至所述最上位存储器以及所述一个以上的层次存储器,
响应于存取从所述最上位存储器移出至层次存储器的符号,所述分配部利用对包含所述符号条目的层次存储器定义的代表所述层次存储器中的符号的出现频度的至少一个存储器代表频度值,将所述符号条目复原至所述最上位存储器中。
2.如权利要求1所述的信息处理装置,
所述计数器值保持符号的出现频度值,所述复原包含设定反映了符号丢失的过去的出现频度值、或者设定表示能够包含在所述出现频度值中的误差的误差值,
所述分配部设定所述误差值以在所述最上位存储器中追加条目,且在对于输入数据的规定宽度的桶的边界根据出现频度值、误差值以及输入数据数的关系而判定在所述最上位存储器中残留的条目和从所述最上位存储器移动到各个所述层次存储器的条目。
3.如权利要求2所述的信息处理装置,
所述存储器代表频度值是所述层次存储器内的符号平均出现频度或者最大出现频度。
4.如权利要求3所述的信息处理装置,
所述存储器代表频度值是根据对每个层次存储器计数的符号的合计出现频度和符号数而算出的所述符号平均出现频度。
5.如权利要求1所述的信息处理装置,
所述一个以上的层次存储器至少具有两个层次存储器,
所述分配部在规定宽度的桶的边界,当上位存储器的符号平均出现频度低于下位层次存储器符号平均出现频度规定值时,将上位的层次存储器内的全部条目编入该下位的层次存储器。
6.如权利要求1所述的信息处理装置,
所述一个以上的层次存储器至少包含基于链接结构的动态的树以及基于简洁数据结构的静态的树或者基于其中任一个结构的树作为层次存储器。
7.如权利要求1所述的信息处理装置,
所述最上位存储器是散列图,所述一个以上的层次存储器中的一个是基于链接结构的动态的树,所述一个以上的层次存储器中的另一个是基于LOUDS(Level Order UnaryDegree Sequence,一级阶一元等级序列)的静态的树。
8.如权利要求1所述的信息处理装置,
响应于所述分配部对于所述最上位存储器内的条目的存取,增加所述计数器内的计数值,且响应于对于在所述最上位存储器以及所述一个以上的层次存储器中的任一个中都不包含的符号的存取,将该符号条目在计数器中设定初始值并新追加到所述最上位存储器。
9.如权利要求2所述的信息处理装置,
用于判定要从最上位存储器D移动到层次存储器Di的条目的出现频度值f、误差值Δ以及输入数据数N的关系通过下述式(1)表现,其中,桶宽度通过1/e表示、桶识别值通过B(=eN)表示、对层次存储器Di以及Di+1设定的表示出现频度的上限的阈值因子通过θi以及θi+1表示。
θi+1(B-Δ)<f≤θi(B-Δ) 式(1)
10.一种数据存取方法,由信息处理装置执行以便对数据存储器进行存取,信息处理装置包括:
接受对于符号的存取的步骤;
在对每个符号条目设置了计数器的最上位存储器内,对进行了存取的符号进行计数的步骤;
根据计数器值,分配符号条目到所述最上位存储器和一个以上的层次存储器的步骤;以及
当存取从所述最上位存储器移出至层次存储器的符号时,使用包含该符号条目的层次存储器定义的代表所述层次存储器中的符号的出现频度的至少一个存储器代表频度值,在所述最上位存储器中复原该符号条目的步骤。
11.如权利要求10所述的数据存取方法,
所述计数的步骤包括:作为计数器保持符号的出现频度值,设定表示在出现频度值中能够包含的误差的误差值并在所述最上位存储器中追加条目的子步骤,
所述分配的步骤包括:在对于输入数据的规定宽度的桶的边界,根据出现频度值、误差值以及输入数据数的关系,判定残留在所述最上位存储器的条目的子步骤;以及在所述边界,根据所述关系,判定要从所述最上位存储器移动到各个所述层次存储器的条目的子步骤,
所述复原的步骤包括:根据所述存储器代表频度值,对条目设定反映了符号的丢失的过去的出现频度值或者误差值的子步骤。
12.如权利要求11所述的数据存取方法,
所述复原的步骤包括:作为所述存储器代表频度值,算出所述层次存储器内的符号平均出现频度或者最大出现频度的子步骤。
13.如权利要求12所述的数据存取方法,
所述复原的步骤中的所述算出的子步骤是根据对每个层次存储器计数的符号合计出现次数和符号数,算出所述符号平均出现频度作为所述存储器代表频度值的子步骤。
14.如权利要求11所述的数据存取方法,
所述一个以上的层次存储器包括至少两个层次存储器,
所述数据存取方法还包括:
在规定宽度的桶的边界,当上位存储器的符号平均出现频度低于下位层次存储器符号平均出现频度规定值时,将上位的层次存储器内的全部条目编入该下位的层次存储器的步骤。
15.一种计算机可读存储介质,其包括用于在计算机系统上实现数据存储器的计算机能够执行的程序,所述程序使所述计算机系统作为如下部分发挥作用:
最上位存储器,构成所述数据存储器,对其中包含的每个符号条目设置有计数器;一个以上的层次存储器,分别构成所述数据存储器,定义了代表所述层次存储器中的符号的出现频度的至少一个存储器代表频度值;以及
分配部,在所述最上位存储器内对要存取的符号进行计数,根据计数器值分配所述符号条目至所述最上位存储器以及所述一个以上的层次存储器,
响应于存取从所述最上位存储器移出至层次存储器的符号,所述分配部利用对包含所述符号条目的层次存储器定义的代表所述层次存储器中的符号的出现频度的至少一个存储器代表频度值,在所述最上位存储器中复原所述符号条目。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011234790 | 2011-10-26 | ||
JP2011-234790 | 2011-10-26 | ||
PCT/JP2012/071448 WO2013061680A1 (ja) | 2011-10-26 | 2012-08-24 | 情報処理装置、データ・アクセス方法およびプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103890763A CN103890763A (zh) | 2014-06-25 |
CN103890763B true CN103890763B (zh) | 2017-09-12 |
Family
ID=48167522
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280052433.0A Expired - Fee Related CN103890763B (zh) | 2011-10-26 | 2012-08-24 | 信息处理装置、数据存取方法以及计算机可读存储介质 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9043660B2 (zh) |
CN (1) | CN103890763B (zh) |
WO (1) | WO2013061680A1 (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013061680A1 (ja) | 2011-10-26 | 2013-05-02 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 情報処理装置、データ・アクセス方法およびプログラム |
JP2014191651A (ja) * | 2013-03-27 | 2014-10-06 | Fujitsu Ltd | ストレージシステム、ストレージ装置、ストレージシステムの制御方法、およびストレージ装置の制御プログラム |
US11263191B2 (en) * | 2016-08-31 | 2022-03-01 | Pointerra Technologies Pty Ltd | Method and system for storing and retrieving multi-dimensional data |
JP6720844B2 (ja) * | 2016-11-30 | 2020-07-08 | 富士通株式会社 | データ管理プログラム、データ管理方法及びデータ管理装置 |
US11809384B2 (en) | 2017-03-06 | 2023-11-07 | Microsoft Technology Licensing, Llc | Optimized data storage for fast retrieval |
CN107329903B (zh) * | 2017-06-28 | 2021-03-02 | 苏州浪潮智能科技有限公司 | 一种内存垃圾回收方法及系统 |
US11468781B2 (en) * | 2017-08-11 | 2022-10-11 | The Boeing Company | Simulation of an asset including message playback using nested hash tables |
US10955461B2 (en) * | 2018-05-16 | 2021-03-23 | Advantest Corporation | Smart and efficient protocol logic analyzer configured within automated test equipment (ATE) hardware |
US10929260B2 (en) | 2018-05-16 | 2021-02-23 | Advantest Corporation | Traffic capture and debugging tools for identifying root causes of device failure during automated testing |
US10948540B2 (en) | 2018-07-27 | 2021-03-16 | Advantest Corporation | Integrated protocol analyzer configured within automated test equipment (ate) hardware |
CN111078718B (zh) * | 2019-12-30 | 2023-04-07 | 广州酷狗计算机科技有限公司 | 频率控制方法、装置、设备以及计算机存储介质 |
US11409747B2 (en) * | 2020-03-23 | 2022-08-09 | Alibaba Group Holding Limited | Combined filtering and indexing for read-only data sets |
US11620547B2 (en) | 2020-05-19 | 2023-04-04 | Oracle International Corporation | Estimating number of distinct values in a data set using machine learning |
CN111966681A (zh) * | 2020-08-14 | 2020-11-20 | 咪咕文化科技有限公司 | 数据处理方法、装置、网络设备及存储介质 |
US11520834B1 (en) * | 2021-07-28 | 2022-12-06 | Oracle International Corporation | Chaining bloom filters to estimate the number of keys with low frequencies in a dataset |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1924861A (zh) * | 2005-08-31 | 2007-03-07 | 国际商业机器公司 | 存储信息的装置和方法 |
CN101105772A (zh) * | 2006-07-13 | 2008-01-16 | 国际商业机器公司 | 控制计算机可读存储器的方法和管理器数据单元的装置 |
CN101192237A (zh) * | 2006-11-30 | 2008-06-04 | 国际商业机器公司 | 查询多方面信息的方法和系统 |
CN101861573A (zh) * | 2007-11-19 | 2010-10-13 | 微软公司 | 用于存储器分层优化的统计计数 |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06149897A (ja) * | 1992-11-10 | 1994-05-31 | Hitachi Ltd | 電子ファイル装置の文書画像検索方法 |
JPH06176070A (ja) * | 1992-12-09 | 1994-06-24 | Matsushita Electric Ind Co Ltd | データ処理装置 |
JP2690861B2 (ja) * | 1994-07-15 | 1997-12-17 | 松下電器産業株式会社 | 情報再生装置 |
JP3497090B2 (ja) * | 1999-01-21 | 2004-02-16 | 松下電器産業株式会社 | マルチメディア情報提供システム |
JP2001014191A (ja) * | 1999-07-01 | 2001-01-19 | Mitsubishi Electric Engineering Co Ltd | 電子ファイリング装置 |
JP4074564B2 (ja) * | 2003-07-30 | 2008-04-09 | インターナショナル・ビジネス・マシーンズ・コーポレーション | コンピュータ実行可能な次元削減方法、該次元削減方法を実行させるためのプログラム、次元削減装置および該次元削減装置を使用した検索エンジン装置 |
US7177883B2 (en) * | 2004-07-15 | 2007-02-13 | Hitachi, Ltd. | Method and apparatus for hierarchical storage management based on data value and user interest |
US20060036627A1 (en) * | 2004-08-06 | 2006-02-16 | Roger Deran | Method and apparatus for a restartable hash in a trie |
US7457813B2 (en) * | 2004-10-06 | 2008-11-25 | Burnside Acquisition, Llc | Storage system for randomly named blocks of data |
JPWO2006048998A1 (ja) * | 2004-11-05 | 2008-05-22 | 株式会社アイ・ピー・ビー | キーワード抽出装置 |
JP4714127B2 (ja) * | 2006-11-27 | 2011-06-29 | 株式会社日立製作所 | 記号列検索方法、プログラムおよび装置ならびにそのトライの生成方法、プログラムおよび装置 |
JP5224953B2 (ja) * | 2008-07-17 | 2013-07-03 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 情報処理装置、情報処理方法およびプログラム |
US8635402B2 (en) * | 2009-03-31 | 2014-01-21 | Nec Corporation | Storage system and storage access method and program |
JP2010257094A (ja) * | 2009-04-23 | 2010-11-11 | Hitachi Ltd | 階層ストレージ管理システムにおける移動候補ファイルの抽出方法 |
CN102640125B (zh) * | 2009-09-21 | 2015-07-08 | 高通股份有限公司 | 分布式内容存储和取回 |
US20110107042A1 (en) * | 2009-11-03 | 2011-05-05 | Andrew Herron | Formatting data storage according to data classification |
US8386717B1 (en) * | 2010-09-08 | 2013-02-26 | Symantec Corporation | Method and apparatus to free up cache memory space with a pseudo least recently used scheme |
US8838895B2 (en) * | 2011-06-09 | 2014-09-16 | 21Vianet Group, Inc. | Solid-state disk caching the top-K hard-disk blocks selected as a function of access frequency and a logarithmic system time |
WO2013061680A1 (ja) | 2011-10-26 | 2013-05-02 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 情報処理装置、データ・アクセス方法およびプログラム |
US8380758B1 (en) * | 2011-11-14 | 2013-02-19 | Google Inc. | Trie specialization allowing storage of value keyed by patterns and retrieval by tokens |
-
2012
- 2012-08-24 WO PCT/JP2012/071448 patent/WO2013061680A1/ja active Application Filing
- 2012-08-24 CN CN201280052433.0A patent/CN103890763B/zh not_active Expired - Fee Related
- 2012-10-26 US US13/661,862 patent/US9043660B2/en not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1924861A (zh) * | 2005-08-31 | 2007-03-07 | 国际商业机器公司 | 存储信息的装置和方法 |
CN101105772A (zh) * | 2006-07-13 | 2008-01-16 | 国际商业机器公司 | 控制计算机可读存储器的方法和管理器数据单元的装置 |
CN101192237A (zh) * | 2006-11-30 | 2008-06-04 | 国际商业机器公司 | 查询多方面信息的方法和系统 |
CN101861573A (zh) * | 2007-11-19 | 2010-10-13 | 微软公司 | 用于存储器分层优化的统计计数 |
Non-Patent Citations (1)
Title |
---|
层次存储的访问分析与优化方法研究;吴俊杰;《中国博士学位论文全文数据库 信息科技辑》;20110415;第2011年卷(第04期);第87-142页 * |
Also Published As
Publication number | Publication date |
---|---|
CN103890763A (zh) | 2014-06-25 |
US20140122921A1 (en) | 2014-05-01 |
US9043660B2 (en) | 2015-05-26 |
WO2013061680A1 (ja) | 2013-05-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103890763B (zh) | 信息处理装置、数据存取方法以及计算机可读存储介质 | |
CN103593436B (zh) | 文件合并方法和装置 | |
CN103366016B (zh) | 基于hdfs的电子文件集中存储及优化方法 | |
US20160283538A1 (en) | Fast multi-tier indexing supporting dynamic update | |
CN106775446B (zh) | 基于固态硬盘加速的分布式文件系统小文件访问方法 | |
CN104111924B (zh) | 一种数据库系统 | |
US20170185645A1 (en) | Database caching in a database system | |
US8229916B2 (en) | Method for massively parallel multi-core text indexing | |
CN105956183A (zh) | 一种分布式数据库中海量小文件的多级优化存储方法及系统 | |
CN108008918A (zh) | 数据处理方法、存储节点及分布式存储系统 | |
WO2011011916A1 (zh) | 正则表达式匹配方法和系统及查找装置 | |
JPH06314223A (ja) | バッファ管理システム及び方法 | |
EP3049940B1 (en) | Data caching policy in multiple tenant enterprise resource planning system | |
CN106407224A (zh) | 一种键值存储系统中文件压实的方法和装置 | |
CN113886331A (zh) | 分布式对象存储方法、装置、电子设备及可读存储介质 | |
CN106055679A (zh) | 一种多层次缓存感知型索引方法 | |
CN107066505A (zh) | 一种性能优化的小文件存储访问的系统及方法 | |
CN110399096A (zh) | 分布式文件系统元数据缓存重删的方法、装置以及设备 | |
Ghandeharizadeh et al. | CAMP: A cost adaptive multi-queue eviction policy for key-value stores | |
CN109597903A (zh) | 图像文件处理装置和方法、文件存储系统及存储介质 | |
US10146833B1 (en) | Write-back techniques at datastore accelerators | |
WO2013086689A1 (zh) | 替换缓存对象的方法和装置 | |
US10235420B2 (en) | Bucket skiplists | |
CN110018997A (zh) | 一种基于hdfs的海量小文件存储优化方法 | |
US20130086325A1 (en) | Dynamic cache system and method of formation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170912 Termination date: 20200824 |