《单独可访问数据单元的管理存储.pdf》由会员分享,可在线阅读,更多相关《单独可访问数据单元的管理存储.pdf(29页完整版)》请在专利查询网上搜索。
1、10申请公布号CN104199816A43申请公布日20141210CN104199816A21申请号201410290632622申请日2009051312/120,46820080514US200980117202120090513G06F17/3020060171申请人起元技术有限责任公司地址美国马萨诸塞州72发明人伊弗雷姆M维施尼亚克克雷格W斯坦菲尔74专利代理机构北京市柳沈律师事务所11105代理人邸万奎54发明名称单独可访问数据单元的管理存储57摘要一种单独可访问数据单元的管理存储。本发明公开了一种方法、装置和计算机可读的介质。所述方法包括向第一文件和向缓冲器添加来自数据流的数据;。
2、响应于满足预定义条件,将添加到缓冲器的数据转移为压缩文件;以及在来自缓冲器的数据已经被转移为压缩文件之后,向第二文件和向缓冲器添加来自数据流的数据。30优先权数据62分案原申请数据51INTCL权利要求书3页说明书12页附图13页19中华人民共和国国家知识产权局12发明专利申请权利要求书3页说明书12页附图13页10申请公布号CN104199816ACN104199816A1/3页21一种方法,包括向第一文件和向缓冲器添加来自数据流的数据;响应于满足预定义条件,将添加到缓冲器的数据转移为压缩文件;以及在来自缓冲器的数据已经被转移为压缩文件之后,向第二文件和向缓冲器添加来自数据流的数据。2根据权。
3、利要求1的方法,其中,第一文件和第二文件是同一文件。3根据权利要求1的方法,其中,来自数据流的数据在被添加到第一文件、缓冲器或两者之前被复制,并且来自数据流的数据在被添加到第二文件、缓冲器或两者之前被复制。4根据权利要求1的方法,包括在缓冲器中的数据被转移为压缩文件之前分类缓冲器中的该数据。5根据权利要求4的方法,其中当来自数据流的数据被添加到缓冲器时在缓冲器中分类来自数据流的该数据。6根据权利要求1的方法,其中添加到第一文件的数据和添加到第二文件的数据具有非压缩形式。7根据权利要求1的方法,其中添加到第一文件的数据和添加到第二文件的数据是可搜索的。8根据权利要求7的方法,其中添加到第一文件的。
4、数据在被添加到第一文件的同时是可搜索的,添加到第二文件的数据在被添加到第二文件的同时是可搜索的。9根据权利要求1的方法,包括在来自缓冲器的文件已被转移为压缩文件之后删除第一文件。10根据权利要求1的方法,包括在添加到缓冲器的数据正被转移为压缩文件的同时,锁闭指示第一文件的状态的状态信息。11根据权利要求1的方法,包括基于第二文件的创建、第一文件的删除以及从缓冲器向压缩文件的数据转移中的一个或多个更新指示第一文件的状态的状态信息。12根据权利要求10的方法,其中在状态信息被锁闭的同时,通过索引或搜索操作不能访问该状态信息。13根据权利要求11的方法,包括在状态信息已经更新之后解锁该状态信息。14。
5、根据权利要求13的方法,包括在已经更新状态信息之后,删除所述第一文件。15根据权利要求1的方法,其中,所述预定义条件基于时间。16根据权利要求1的方法,其中,所述预定义条件基于第一文件的尺寸。17根据权利要求1的方法,其中,所述预定义条件基于记录的数量。18一种计算机可读的介质,其存储用于从设备信号获得值的可执行指令,所述指令用于使得计算机执行如下操作向第一文件和向缓冲器添加来自数据流的数据;响应于满足预定义条件,将添加到缓冲器的数据转移为压缩文件;以及在来自缓冲器的数据已经被转移为压缩文件之后,向第二文件和向缓冲器添加来自数据流的数据。19根据权利要求18的计算机可读的介质,其中,第一文件和。
6、第二文件是同一文件。权利要求书CN104199816A2/3页320根据权利要求18的计算机可读的介质,其中,来自数据流的数据在被添加到第一文件、缓冲器或两者之前被复制,并且来自数据流的数据在被添加到第二文件、缓冲器或两者之前被复制。21根据权利要求18的计算机可读的介质,包括用于使得计算机在缓冲器中的数据被转移为压缩文件之前分类缓冲器中的该数据的指令。22根据权利要求21的计算机可读的介质,其中当来自数据流的数据被添加到缓冲器时在缓冲器中分类来自数据流的该数据。23根据权利要求18的计算机可读的介质,其中添加到第一文件的数据和添加到第二文件的数据具有非压缩形式。24根据权利要求18的计算机可。
7、读的介质,其中添加到第一文件的数据和添加到第二文件的数据是可搜索的。25根据权利要求24的计算机可读的介质,其中添加到第一文件的数据在被添加到第一文件的同时是可搜索的,添加到第二文件的数据在被添加到第二文件的同时是可搜索的。26根据权利要求18的计算机可读的介质,包括用于使得计算机在来自缓冲器的文件已被转移为压缩文件之后删除第一文件的指令。27根据权利要求18的计算机可读的介质,包括用于使得计算机在添加到缓冲器的数据正被转移为压缩文件的同时,锁闭指示第一文件的状态的状态信息的指令。28根据权利要求18的计算机可读的介质,包括用于使得计算机基于第二文件的创建、第一文件的删除以及从缓冲器向压缩文件。
8、的数据转移中的一个或多个更新指示第一文件的状态的状态信息的指令。29根据权利要求27的计算机可读的介质,其中在状态信息被锁闭的同时,通过索引或搜索操作不能访问该状态信息。30根据权利要求28的计算机可读的介质,包括用于使得计算机在状态信息已经更新之后解锁该状态信息的指令。31根据权利要求30的计算机可读的介质,包括用于使得计算机在已经更新状态信息之后删除所述第一文件的指令。32根据权利要求18的计算机可读的介质,其中,所述预定义条件基于时间。33根据权利要求18的计算机可读的介质,其中,所述预定义条件基于第一文件的尺寸。34根据权利要求18的计算机可读的介质,其中,所述预定义条件基于记录的数量。
9、。35一种系统,包括用于向第一文件和向缓冲器添加来自数据流的数据的装置;用于响应于满足预定义条件,将添加到缓冲器的数据转移为压缩文件的装置;以及用于在来自缓冲器的数据已经被转移为压缩文件之后,向第二文件和向缓冲器添加来自数据流的数据的装置。36根据权利要求35的系统,其中,第一文件和第二文件是同一文件。37根据权利要求35的系统,其中,来自数据流的数据在被添加到第一文件、缓冲器或两者之前被复制,并且权利要求书CN104199816A3/3页4来自数据流的数据在被添加到第二文件、缓冲器或两者之前被复制。38根据权利要求35的系统,包括用于在缓冲器中的数据被转移为压缩文件之前分类缓冲器中的该数据的。
10、装置。39根据权利要求38的系统,其中当来自数据流的数据被添加到缓冲器时在缓冲器中分类来自数据流的该数据。40根据权利要求35的系统,其中添加到第一文件的数据和添加到第二文件的数据具有非压缩形式。41根据权利要求35的系统,其中添加到第一文件的数据和添加到第二文件的数据是可搜索的。42根据权利要求41的系统,其中添加到第一文件的数据在被添加到第一文件的同时是可搜索的,添加到第二文件的数据在被添加到第二文件的同时是可搜索的。43根据权利要求35的系统,包括用于在来自缓冲器的文件已被转移为压缩文件之后删除第一文件的装置。44根据权利要求35的系统,包括用于在添加到缓冲器的数据正被转移为压缩文件的同。
11、时,锁闭指示第一文件的状态的状态信息的装置。45根据权利要求35的系统,包括用于基于第二文件的创建、第一文件的删除以及从缓冲器向压缩文件的数据转移中的一个或多个更新指示第一文件的状态的状态信息的装置。46根据权利要求44的系统,其中在状态信息被锁闭的同时,通过索引或搜索操作不能访问该状态信息。47根据权利要求45的系统,包括用于在状态信息已经更新之后解锁该状态信息的装置。48根据权利要求47的系统,包括用于在已经更新状态信息之后,删除所述第一文件的装置。49根据权利要求35的系统,其中,所述预定义条件基于时间。50根据权利要求35的系统,其中,所述预定义条件基于第一文件的尺寸。51根据权利要求。
12、35的系统,其中,所述预定义条件基于记录的数量。权利要求书CN104199816A1/12页5单独可访问数据单元的管理存储0001本申请是申请日为2009年5月13日、申请号为2009801172021国际申请号为PCT/US2009/043737、发明名称为“单独可访问数据单元的管理存储”的发明专利申请的分案申请。技术领域0002本发明涉及单独可存储的数据单元的管理存储。背景技术0003数据库系统可以以任何各种格式存储单独可访问的数据单元或“记录”。每个记录可以对应于诸如信用卡交易的逻辑实体,且典型地具有用于唯一地标识该记录的关联首要键PRIMARYKEY。该记录可以包括与记录格式的相应字段。
13、关联的多个值。这些记录可以被存储在一个或多个文件例如,平面文件或诸如XML文件的结构化数据文件中。在压缩的数据库系统中,记录内的各个记录或值可以当被存储时被压缩,且当被访问以减少系统的存储需求时被解压缩。发明内容0004通常,在一个方面中,一种方法包括确定文件的长度并在第一存储器位置中存储该文件的长度。确定在该文件内的最后完整的记录的结束点,以及在第二存储器位置中存储该结束点。在第一存储器位置中存储的文件的长度与该文件的当前长度比较,且如果该文件的当前长度超过在第一存储器位置中存储的文件的长度,则更新与在结束点处开始的文件关联的数据结构。0005各方面可以包括一个或多个以下特征。该数据结构可以。
14、是关联的数据结构,诸如哈希HASH表或二进制树。该结束点还可以表示文件的结束。该结束点可以在文件的不完整记录之前。可以检查该文件以寻找错误。检查该文件以寻找错误可以包括确定该文件的当前长度是否小于在第一存储器位置中存储的文件的长度。该文件可以是未压缩数据文件。0006通常,在另一方面,一种方法包括向第一文件且向缓冲器同时添加来自数据流的数据。在满足预定义条件之后,将与缓冲器关联的数据转移为压缩文件。在来自缓冲器的数据已经被转移为压缩文件之后,创建第二文件以从数据流接收数据。0007各方面可以包括一个或多个以下特征。在来自缓冲器的数据已经被转移为压缩文件之后,可以删除第一文件。状态信息可以标识第。
15、一文件是否有效。在与缓冲器关联的数据正被转移为压缩文件的同时,可以锁闭该状态信息。可以更新该状态信息以反映第二文件的创建、第一文件的删除和在缓冲器和压缩文件之间的数据的转移。当状态信息被锁闭LOCK时,可能通过索引或搜索操作不能访问该状态信息。该状态信息可以在其被更新了之后被解锁。该第一文件可以在该状态信息被更新了之后被删除。该预定义条件可以基于时间。该预定义条件可以基于第一文件的尺寸。该预定义条件可以基于记录的数量。说明书CN104199816A2/12页60008通常,在另一方面,一种计算机可读介质存储用于从设备信号获取值的可执行指令,所述指令导致计算机确定文件的长度并在第一存储器位置中存。
16、储文件的长度。可以确定在该文件内的最后完整的记录的结束点,以及可以在第二存储器位置中存储该结束点。可以比较在第一存储器位置中存储的文件的长度与该文件的当前长度。如果该文件的当前长度超过在第一存储器位置中存储的文件的长度,则可以更新与在结束点处开始的文件关联的数据结构。0009各方面可以包括一个或多个以下特征。该数据结构可以是关联的数据结构,诸如哈希表或二进制树。该结束点还可以表示文件的结束。该结束点可以在文件的不完整记录之前。这些指令还可以使得计算机检查该文件以寻找错误。检查该文件以寻找错误可以包括确定该文件的当前长度是否小于在第一存储器位置中存储的文件的长度。该文件可以是未压缩数据文件。00。
17、10通常,在另一方面,一种计算机可读介质存储用于从设备信号获取值的可执行指令,所述指令导致计算机向第一文件且向缓冲器同时添加来自数据流的数据。在满足预定义条件之后,将与缓冲器关联的数据转移为压缩文件。在来自缓冲器的数据已经被转移为压缩文件之后,创建第二文件以从数据流接收数据。0011各方面可以包括一个或多个以下特征。在来自缓冲器的数据已经被转移为压缩文件之后,可以删除第一文件。状态信息可以标识第一文件是否有效。在与缓冲器关联的数据正被转移为压缩文件的同时,可以锁闭该状态信息。可以更新该状态信息,以反映第二文件的创建、第一文件的删除和在缓冲器和压缩文件之间的数据的转移。当状态信息被锁闭时,可能通。
18、过索引或搜索操作不能访问该状态信息。该状态信息可以在其被更新了之后被解锁。该第一文件可以在该状态信息被更新了之后被删除。该预定义条件可以基于时间。该预定义条件可以基于第一文件的尺寸。该预定义条件可以基于记录的数量。0012通常,在一个方面中,一种系统包括用于确定文件的长度并在第一存储器位置中存储该文件的长度的装置。该系统还包括用于确定在该文件内的最后完整的记录的结束点、并在第二存储器位置中存储该结束点的装置。该系统还包括用于比较在第一存储器位置中存储的文件的长度与该文件的当前长度的装置,以及用于如果该文件的当前长度超过在第一存储器位置中存储的文件的长度、则更新与在结束点处开始的文件关联的数据结。
19、构的装置。0013通常,在另一方面,一种系统包括用于向第一文件且向缓冲器同时添加来自数据流的数据的装置。该系统还包括用于在满足预定义条件之后、将与缓冲器关联的数据转移为压缩文件的装置,以及用于在来自缓冲器的数据已经被转移为压缩文件之后、创建第二文件以从数据流接收数据的装置。0014在再一方面,一种方法包括向第一文件和向缓冲器添加来自数据流的数据;响应于满足预定义条件,将添加到缓冲器的数据转移为压缩文件;以及在来自缓冲器的数据已经被转移为压缩文件之后,向第二文件和向缓冲器添加来自数据流的数据。0015在又一方面,一种计算机可读的介质存储用于从设备信号获得值的可执行指令,所述指令用于使得计算机执行。
20、如下操作向第一文件和向缓冲器添加来自数据流的数据;响应于满足预定义条件,将添加到缓冲器的数据转移为压缩文件;以及在来自缓冲器的数据已经被转移为压缩文件之后,向第二文件和向缓冲器添加来自数据流的数据。说明书CN104199816A3/12页70016在再又一方面,一种系统,包括用于向第一文件和向缓冲器添加来自数据流的数据的装置;用于响应于满足预定义条件,将添加到缓冲器的数据转移为压缩文件的装置;以及用于在来自缓冲器的数据已经被转移为压缩文件之后,向第二文件和向缓冲器添加来自数据流的数据的装置。附图说明0017图1是用于存储和检索记录的系统的方框图。0018图2A、图2B、图2C、和图2D是由系统。
21、处理且在系统中存储的数据的示意图。0019图3A和图3B是示出不同签名尺寸的伪造FALSE肯定概率的表。0020图4A和图4B是用于搜索记录的过程的流程图。0021图5是查询记录的过程的流程图。0022图6A和图6B是可附属查找文件的示意图。0023图7是查询可附属查找文件的过程的流程图。0024图8是存储数据的过程的流程图。具体实施方式0025参考图1,记录存储和检索系统100从一个或多个源诸如源A源C接受数据。数据包括可以表示为单独可存取数据单元的信息。例如,信用卡公司可以从各种零售公司接收表示各个交易的数据。每个交易与表示诸如客户名称、日期、购买量等的属性的值关联。记录处理模块102保证。
22、根据预定义记录格式来格式化该数据,以便与交易关联的值被存储在记录中。在一些情况下,这可以包括根据记录格式变换来自源的数据。在其他情况下,一个或多个源可以提供已经根据记录格式格式化了的数据。0026记录处理模块102准备记录用于以取决于各种因素的各类数据结构存储,各种因素诸如是否有必要快速访问所存储的记录。当准备记录用于在可附属查找文件中快速访问时,处理模块102在记录到达时将这些记录附属到可附属查找文件中,并维持存储器内INMEMORY索引,如以下更详细描述的。当准备记录用于在压缩记录文件中的压缩存储时,处理模块102通过标识每个记录的首要键值例如,标识单个记录的唯一键、或标识记录的多个更新版。
23、本的键来将记录分类,并将这些记录划分为对应于首要键值的不重叠范围的记录组。例如,每组记录可以对应于预定义数量的记录例如100个记录。0027文件管理模块104管理可附属查找文件在其被使用的情形下和压缩查找文件两者。当管理压缩记录文件时,文件管理模块104将每组记录压缩为压缩的数据块。这些压缩块被存储在记录存储器106中例如,在诸如一个或多个硬盘驱动的非易失性存储介质中的压缩记录文件中。0028该系统100还包括索引和搜索模块108,其提供包括对压缩记录文件中的每个块的入口的索引。该索引被用于定位可能包括给定记录的块,如以下更详细描述的。该索引可以被存储在索引存储器110中的索引文件中。例如,当。
24、可以在相同存储介质中存储索引文件作为压缩记录文件时,优选地可以在相对更快速的存储器例如,诸如动态随机存取存储器的易失性存储介质中存储索引文件,因为索引文件典型地比压缩记录文件小得多。该索引还可以是被维持作为存储器内数据结构的动态索引114。动态索引114的一些例子说明书CN104199816A4/12页8是哈希表、二进制树和B树。索引和搜索模块108还提供用于搜索可附属查找文件的接口,如以下更详细地描述的。0029在系统100的替换实施方式中,各组记录可以被处理以使用除了压缩以外或取代压缩的其他函数来生成块,以按某种方式组合这些记录即,使得块不仅仅是级联的一组记录。例如,一些系统可以处理一组记。
25、录来生成加密数据的块。0030接口模块112向人和/或计算机代理诸如代理A代理D提供对存储的记录的访问。例如,接口模块112可以实现在线账户系统,用于信用卡客户来监视其交易。可以由系统100处理对满足各种准则的交易信息的请求,且可以从记录存储器106中存储的压缩块内检索对应的记录。0031来自一个或多个源的到来记录流可以在被处理以生成压缩记录文件之前被临时存储。0032图2A图2D、图3A图3B、和图4A图4B示出了管理在压缩记录文件中的记录的例子。图5和图6A图6B示出了使用可附属查找文件管理记录的例子。参考图2A,系统100接收要在压缩记录文件中存储的一组记录200,且根据首要键的值来对这。
26、些记录分类。0033首要键值可以唯一地标识可以由一个或多个记录表示的数据库中的给定项目例如,具有给定首要键值的每个记录可以对应于该项目的不同更新版本。首要键可以是对应于记录的一个或多个现有字段的“自然键”。如果没有保证对每个项目唯一的字段,首要键可以是包括记录的多个字段的复合键,其一起保证或很可能对每个项目是唯一的。或者,首要键可以是可以在被接收之后分配给每个记录的“合成键”。例如,系统100可以分配唯一的首要键值为顺序递增的整数,或某种其他顺序的单调递进的值例如,时间戳。在该情况下,表示相同项目的不同版本的记录可以被分配不同的合成键值。如果使用整数,例如,如由使用的位数确定的可能的首要键值的。
27、范围可以足够大,以至于如果首要键浮动ROLLOVER,则已经从压缩记录文件中移除先前被分配了给定首要键值的任何记录。例如,可以移除和存档或丢弃旧的交易。0034在图2A所示的例子中,记录200由字母分类的首要键值标识A,AB,CZ,。系统100压缩具有首要键值ADD的第一组N个记录,以生成标为块1的对应的压缩块。下一组记录包括具有首要键值DXGF的接下来的N个分类记录。文件管理模块104可以使用各种无损数据压缩算法例如,LEMPELZIV型算法中的任意。从压缩记录文件202组合每个相继的压缩块。0035用于生成压缩块的数目为N的记录可以被选择以在压缩效率和解压缩速度之间折衷。该压缩可以用取决于。
28、正被压缩的数据的特性和正被压缩的数据的尺寸的给定因子R来减少平均的数据尺寸例如,当更多数据正被压缩时R通常更小。压缩还可以具有平均尺寸O的关联开销例如压缩相关数据。从每个尺寸X的M个记录中生成的得到的压缩记录文件的平均尺寸可以被表述为M/NRNXO,其对于大量块可以近似为RMYOM/N。因此,更大的N值可以在某些情况下通过减少R并减少耗费对文件的尺寸的开销贡献来提供更大的压缩。更小的N值减少了解压缩给定的压缩块来访问可以在块中包含的记录所需的时间。0036在其他实施方式中,不同的压缩块可以包括不同数量的记录。每个块可以具有根据预定范围的许多记录。例如,第一块包括具有首要键值11000的记录,且。
29、第二块包括具说明书CN104199816A5/12页9有首要键值10012000的记录,等等。在该例子中的压缩块中的记录的数量可以不同,因为不一定存在每个首要键值例如,在现有数值字段用作自然键的情况下。0037在一些实施方式中,不同的压缩块在一些情况下可以包括目标数量的记录,且在例外情况下可以包括更多或更少的记录。例如,如果一组记录以如下记录结束,即其首要键值不同于按分类的顺序接下来的记录的首要键值的记录,则使用那些记录以生成压缩块。如果一组记录以如下的记录结束,即其首要键值相同于按分类的顺序接下来的记录的首要键值的记录,则向该组添加具有该首要键值的所有的附加的记录。以此方式,相同的首要键值不。
30、从一个压缩块横跨到下一个。0038索引和搜索模块108为每个压缩块在索引文件204中生成入口。索引入口包括键字段206,其例如通过在对应的未压缩的该组记录中的第一记录的首要键值来标识每个压缩块。这些入口还包括标识所标识的压缩块在压缩记录文件202内的存储位置的位置字段208。例如,位置字段可以包含以记录存储器106中的绝对地址形式、或以从记录存储器106中的压缩记录文件202的开始的地址的偏移量的形式的指针。0039为了搜索压缩记录文件202中的给定记录,模块108可以基于键字段206执行索引文件204的搜索例如二进制搜索。对于提供的键值例如由代理之一提供,模块108定位包括与包括提供的键值的。
31、键值范围对应的记录的块。具有提供的键值的记录可以或可以不被包括在用于生成所定位的块的该组记录中,但是如果在记录200中存在该记录,则该记录已经被包括,因为记录200先前根据首要键值分类了。然后,模块108解压缩所定位的块,并搜索具有提供的键值的记录。在首要键值对每个记录不唯一的情况下,模块108可以在压缩块中找到具有提供的键值的多个记录。在键字段206包括一组中的第一记录的首要键的该例子中,模块208搜索分别具有比提供的键值更早和更后的键值的两个连贯的索引入口,并返回与具有之前的键值的入口对应的块。在一些情况下,提供的键值可以与索引入口中的键值相同,在该情况下,模块208返回对应于该入口的块。。
32、0040在不同实施方式中,存在不同方式使得索引文件204中的入口标识与从其中生成对应块的记录对应的键值范围。如在图2A所示的实施方式中,键值的范围可以是在用于生成块的记录的两个极值键值例如,在字母分类顺序的首要键值中的第一和最后,或在数值分类顺序的首要键值中的最小和最大之间的范围。该索引入口可以包括定义该范围的任一或两个极值。在一些实施方式中,如果索引入口包括定义给定块的范围的最小键值,则与压缩记录文件中的最后块关联的最后索引入口还可以包括定义该块的范围的最大键值。然后,该最大键值可以在搜索压缩记录文件以确定给定键值何时超出范围时使用。0041或者,键值的范围可以是延伸超过用于生成块的记录的键。
33、值的范围。例如,在块从具有1和1000之间的数值首要键值的记录中生成的情况下,在记录中表示的最小键值可以大于1,且在记录中表示的最大键值可以小于1000。该索引入口可以包括定义该范围的极值1和1000中的任一或两者。0042当在记录的最初的组被处理以生成压缩记录文件之后附加的记录到达时,那些记录可以以未压缩形式被存储在缓冲器中且被搜索。或者,可以递增地处理附加组的记录,并将其存储为可由附加的索引文件访问的附加的压缩记录文件。在一些情况下,即使当压缩小数量的附加记录可能不提供存储尺寸的大程度减少时,压缩附加的记录以维持用于存取记录的统一过程也可能是有利的。可以按规则的时间间隔例如,每30秒或每5。
34、分钟或说明书CN104199816A6/12页10在已经接收了预定数量的附加记录之后例如,每1000个记录或每10000个记录,重复地处理附加的记录。如果基于时间间隔来处理到来的记录,在一些间隔中,可能没有到来的记录或存在全被压缩为单个压缩块的很少量记录。0043参考图2B,在已经生成了初始压缩的记录文件202之后已经由系统100接收了附加记录的例子中,附加的压缩记录文件210可以被附属到初始的压缩记录文件202以形成复合压缩记录文件211。系统100通过首要键值对附加的记录进行分类,并压缩这些组N个记录来生成压缩记录文件210的压缩块。在标为块91的附属文件210中的第一压缩块具有首要键值B。
35、AFF。模块108生成包括可用于搜索在附属文件210内表示的附加记录的入口的附加索引文件212。该新的索引文件212可以被附属到先前的索引文件204。0044可以被附属任意数量的压缩记录文件以形成复合压缩记录文件。如果索引和搜索模块108正在复合压缩记录文件内搜索具有给定键值的记录,则模块108使用对应的索引文件搜索每个附属压缩记录文件内的记录。或者,请求给定记录的代理可以指定要搜索的具有复合压缩记录文件的一些数量的压缩记录文件例如,最近生成的10个,或最近一小时内生成的任何。0045在给定量的时间例如,每24小时之后或在已经附属了给定数量的压缩记录文件之后,系统100可以整合CONSOLID。
36、ATE这些文件以从复合压缩记录文件和新的对应的索引文件生成单个压缩记录文件。在整合之后,可以搜索单个索引以定位可能包含给定记录的压缩块,得到更有效的记录访问。在整合时,系统100解压缩这些压缩记录文件以恢复对应组的已分类记录,通过首要键值对这些记录分类,并生成新的压缩记录文件和索引。由于已经对恢复的各组记录的每个进行了分类,因此可以通过根据首要键值合并先前分类的列表以生成单组分类的记录来有效地对记录分类。0046参考图2C,取决于多少附加记录已经到达以及已经多么频繁地处理这些记录,复合压缩记录文件211包括初始的压缩记录文件202、附加的压缩记录文件210和一些附加的压缩记录文件220、221。
37、。每个压缩记录文件可以具有可以用于搜索该文件的压缩块内的给定记录的关联索引文件。在该例子中,压缩记录文件220之一足够小以至于仅具有单个压缩块BLOCK95,且因此不一定需要关联索引文件,但可能具有指示在该块中的首要键值的范围和其在存储器中的位置的关联数据。在整合之后,从不同附属压缩记录文件恢复的记录被处理以生成单个压缩记录文件230。0047在单调地分配首要键的情况下,不仅在压缩记录文件内而且从一个文件到下一个文件自动地对记录分类,而不需要整合文件以便在单个索引搜索中访问记录。参考图2D,系统100接收一组记录250,由作为记录的首要键的按到达顺序分配的连贯整数来标识该组记录250。因此,记。
38、录250由首要键自动分类。在该例子中,初始压缩记录文件252包括每个包括100个记录的压缩块,且索引文件254包括用于压缩块中的第一记录的首要键值的键字段256、和标识对应的存储位置的位置字段258。由于在已经生成了初始压缩记录文件252之后到达的记录将自动地具有分类的顺序中稍后的首要键值,因此附属压缩记录文件260和对应的索引文件262不需要被整合,以基于单个索引搜索来使能有效的记录访问。例如,索引文件262可以仅被附属到索引文件254,且两个索引可以被一起搜索例如,在单个二进制搜索中以在压缩记录文件252或260的任一中定位压缩块。0048复合压缩记录文件261可以可选地被整合以消除可能已。
39、经被插入在压缩记录文说明书CN104199816A107/12页11件252的末尾的不完整的块。在这种整合中,将仅需要解压缩第一文件252中的最后压缩块,且取代合并解压缩的各组记录,可以将各组记录简单地级联以形成新的分类的一组记录以被划分为各组100个记录,然后各组100个记录被再次压缩以形成新的压缩记录文件。0049使用连贯整数合成首要键值的另一优点在于,如果正要基于首要键值来对这些记录分区,则由于在键值之间不存在间断,因此可以自动地平衡这些分区。0050可以使用各种技术的任一种来更新记录并无效可能存在于压缩记录文件中的任何先前版本的记录。在一些情况下,记录不需要被单独移除或更新例如,日志、。
40、交易、电话呼叫。在这些情况下,在预定数量的压缩块的组中,例如从压缩记录文件的开始,移除和丢弃或存档旧的记录。在一些情况下,可以移除全部压缩记录文件。0051在一些情况下,通过添加用于在压缩块中存储的新的更新记录来更新记录的一个或多个值,且先前接收的记录版本具有相同的首要键值可以留下来被存储在不同的压缩块中。然后,可能存在记录的多个版本,且使用某种技术来确定哪个是记录的有效版本。例如,出现在任何压缩记录文件的最近接收的最后版本可以含蓄地或明示地指示为有效版本,且任何其他版本是无效的。在该情况下搜索具有给定首要键的记录可以包括找到按出现顺序由该首要键标识的最后记录。或者,记录可以通过写“无效记录”。
41、被无效,该“无效记录”指示任何先前版本的记录都不是有效,而不一定添加新的版本的记录。0052系统100通过不同的处理来协调对在记录存储器106中存储的压缩记录文件的访问。各种同步技术中的任一个可用于协调对一个或多个压缩记录文件内的压缩块的访问。系统100保证修改文件的任何处理例如,通过附属或整合数据不互相干扰。例如,如果新的记录在正发生整合时到达,系统100可以等待直到完成了整合处理,或可以生成压缩块,并且在将它们附属到现有压缩记录文件之前临时存储它们。从压缩记录文件读取的处理可以负载完整的文件的一部分,且可以忽略可能正经历修改的任何不完整的部分。0053系统100存储使能基于除了首要键以外的。
42、记录属性来搜索记录的附加数据。压缩记录文件的次要索引包括基于被指定为次要键SECONDARYKEY的属性值提供一个或多个首要键值的信息。被指定为次要键的每个属性可以与对应的次要索引关联。例如,每个次要索引可以被组织为具有根据关联次要键分类的行的表。每行包括次要键值和包括次要键值的记录的一个或多个首要键值。因此,如果代理开始搜索包括给定次要键值的任何记录,则系统100查找多个首要键以用来搜索包括多个记录的多个压缩块的压缩记录文件的索引。次要索引可以大例如,以记录的数量的量级,且在某些情况下可以被存储在存储了压缩记录文件的存储介质中。0054在一些情况下,被指定为次要键的属性值可以对每个记录是唯一。
43、的。在这种情况下,存在在次要键和首要键之间的一一对应,且接口模块112可以向代理呈现次要键属性,好像其是首要键一样。0055可以在新的压缩记录文件被附属到复合压缩记录文件时更新每个次要索引。或者,次要键可以与每个压缩记录文件的不同次要索引关联,且当压缩记录文件被整合时可以将次要索引整合到单个次要索引中。0056筛选SCREENING数据结构可以与压缩记录文件关联,以确定包括给定属性值的记录被包括在该文件的压缩块中的可能性。例如,使用重叠编码的签名OES作为筛选数据结构使得系统100能够确定具有给定键值首要键或次要键的记录一定不存在“否说明书CN104199816A118/12页12定”结果或具。
44、有给定键值的记录是否具有存在的可能性“肯定”结果。对于肯定结果,系统访问适当的压缩块以检索记录“确定的肯定”结果,或确定该记录不存在“假肯定”结果。对于否定结果,系统可以向代理给出否定结果,而无需花费时间解压缩和搜索压缩块来寻找不存在的记录。OES的尺寸影响了肯定结果隔多久成为假肯定,且更大的OES尺寸通常导致更少的假肯定结果。对于给定的OES尺寸,更少的不同可能的键值通常导致更少的假肯定。0057其他类型的筛选数据结构是可能的。可以为每个压缩记录文件提供用于给定的首要或次要键的筛选数据结构。或者,可以为每个压缩块提供用于键的筛选数据结构。0058图3A和图3B示出了如下的表,该表提供用于获得。
45、各种尺寸的示例OES筛选数据结构的键值列和在压缩记录文件中表示的各种数量的不同键值行的假肯定结果的可能性值。对于OES,取决于OES的尺寸和不同键值的数量,可以在OES的相同部分中指示存在多于一个键值,潜在地导致如果存在另一个则那些键值之一的假肯定结果。该示例OES的尺寸从2101024位在图3A的表中到228256兆位图3B的表中改变。该不同键值的数量从100在图3A的表中到100000000图3B的表中改变。对于这两个表,在右上的空白单元对应于0,且左下的空白单元对应于100。对于其中假肯定可能性低例如接近零的单元,筛选数据结构可能大于提供足够筛选所必需的。对于其中假肯定可能性显著例如50。
46、的单元,筛选数据结构可能太小以至于不能提供足够的筛选。该例子对应于用于使用每个键值四个哈希码来生成OES的技术。对于给定数量的不同键,OES筛选数据结构的其他例子可以得出假肯定可能性的不同表。0059由于可能不知道在压缩记录文件中表示的不同键值的数量,因此系统100可以基于从其生成了该文件的记录的数量来选择压缩记录文件的筛选数据结构的尺寸。在选择尺寸时,在减少假肯定可能性和存储筛选数据结构所需的存储器空间之间存在折衷。在该折衷种的一个因素为搜索不存在的键值的可能性。如果要被查找的大多数键值很可能存在于解压缩记录中,则完全可以不需要筛选数据结构。如果存在将无法找到键值的显著可能性,则为相对大的筛。
47、选数据结构分配存储空间可以节省相当的时间。0060与压缩记录文件关联的筛选数据结构的尺寸可以取决于该文件是对应于记录的初始或整合的大数据库还是对应于对更大的数据库的更小更新。可以使用相对更小的筛选数据结构尺寸用于在规则的更新间隔期间附属的压缩记录文件,因为在每个更新中通常存在更少的不同键值。而且,随着在许多更新之后压缩记录文件的数量增长,小尺寸可以减少所需的存储空间。筛选数据结构的尺寸可以基于在更新中的预期的记录数量和/不同的键值,且基于预期更新数量。例如,如果通过24小时时间段每5分钟附属更新文件,将在该天结束时存在288个压缩记录文件。至少一个假肯定结果的可能性将是来自图3A和图3B的表的。
48、适当值的288倍假设不同更新的结果是独立的。在整合之后,更大的筛选数据结构可适用于整合的压缩记录文件,因为不同键值的数量可能显著地增加。0061压缩记录文件可以具有用于首要键和用于次要键或用于键的一些子集的筛选数据结构。例如,系统100可以为首要键提供筛选数据结构,并且仅仅为那些预期在搜索记录时最经常使用的次要键提供筛选数据结构。0062图4A示出了用于搜索具有给定的首要键值的一个或更个记录的过程400的流程图。过程400确定402是否存在与第一压缩记录文件关联的筛选数据结构。如果是,过程说明书CN104199816A129/12页13400处理404筛选数据结构以获得肯定或否定的结果。如果给。
49、定的首要键值没有通过筛选否定结果,则该过程400检查406下一压缩记录文件,并且如果该文件存在则在该文件上重复。如果给定的首要键值通过筛选肯定结果,则该过程400搜索408索引以寻找可包含具有给定首要键值的记录的块。如果没有筛选数据结构与压缩记录文件关联,则过程400搜索408索引而不进行筛选。0063在搜索408索引之后,如果找到410与包括给定首要键值的键值范围关联的压缩块,则过程400解压缩412处于由索引入口标识的位置上的块,且搜索414得到的记录以寻找具有给定首要键值的一个或多个记录。然后,过程检查416下一压缩记录文件,且如果该文件存在则在该文件上重复。如果没找到压缩块例如,如果给定的首要键值小于第一块中的最小键值或大于最后块中的最大键值,则该过程400检查416下一压缩记录文件,并且如果该文件存在则在该文件上重复。0064图4B示出了用于搜索具有给定的次要键值的一个或多个记录的过程450的流程图。过程450确定452是否存在与第一压缩记录文件关联的筛选数据结构。如果是,过程450处理454筛选数据结构以获得肯定或否定的结果。如果给定的次要键值没有通过筛选否定结果,则该过程450检查456下一压缩记录文件,并且如果该文件存在则在该文件上重复。如果给定次要键值通过筛选肯定结果,则该过程450查找458与包含给定次要键的记录对应的首要键。如果没有筛选数据结构与。