CN103733195B - 管理用于基于范围的搜索的数据的存储 - Google Patents
管理用于基于范围的搜索的数据的存储 Download PDFInfo
- Publication number
- CN103733195B CN103733195B CN201280033912.8A CN201280033912A CN103733195B CN 103733195 B CN103733195 B CN 103733195B CN 201280033912 A CN201280033912 A CN 201280033912A CN 103733195 B CN103733195 B CN 103733195B
- Authority
- CN
- China
- Prior art keywords
- record
- time
- index
- value
- index key
- 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.)
- Active
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/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2477—Temporal data queries
-
- 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
- G06F16/211—Schema design and management
- G06F16/213—Schema design and management with details for schema evolution support
-
- 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/2308—Concurrency control
- G06F16/2315—Optimistic concurrency control
- G06F16/2322—Optimistic concurrency control using timestamps
-
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2474—Sequence data queries, e.g. querying versioned data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Probability & Statistics with Applications (AREA)
- Fuzzy Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
通常,接收数据结构中存储的记录的数字属性的值。生成包括数字属性的值的数字范围。在与数据结构相关联的索引(204)中存储条目,所述条目指定记录在数据结构内的位置并包括第一索引键(1006)和第二索引键(1008)。所述第一索引键(1006)对应于与数字属性不同的记录的属性的值,并且所述第二索引键(1008)对应于所生成的数字范围。
Description
技术领域
本发明涉及管理用于基于范围的搜索的数据的存储。
背景技术
数据库系统可以以各种格式的任一种分别存储可访问的数据单元或“记录”。每个记录可对应于诸如信用卡交易的逻辑实体,并且可以具有用于唯一标识所述记录的相关联的主键。记录可包括与记录格式的各个字段相关联的多个值。记录可以存储在一个或多个文件内(例如,平面文件或结构化数据文件,诸如XML文件)。在压缩数据库系统内,各个记录或记录内的值可以在存储时被压缩,并且在被访问时被解压缩,以便降低系统的存储需求。
发明内容
在一个方面,一般地,接收数据结构中存储的记录的数字属性的值。生成包括数字属性的值的数字范围。在与数据结构相关联的索引中存储条目,所述条目指定记录在数据结构内的位置并包括第一索引键和第二索引键。所述第一索引键对应于与数字属性不同的记录的属性的值,并且所述第二索引键对应于所生成的数字范围。
各方面可包括以下特征的一个或多个。
数字属性的值通过时间标记表示,并且数字范围定义时间的范围。
生成数字范围包括:确定将对应于时间标记的时间与预定时间点分开的时间单位的第一值。
数字范围是预定持续时间的时间范围,并且生成数字范围包括将第一值除以预定持续时间以提供表示数字范围的商。
条目还指定数据结构内与第一索引键和第二索引键相关联的第二记录的位置。
第一记录和第二记录包括通过不同时间标记表示的数字属性的值。
接收请求检索与第一索引键相关联并与第一时间和第二时间之间的时间相关联的记录的查询。
对于第一时间和第二时间生成各自的数字范围。
生成各自的数字范围包括:确定将第一时间与第二预定时间点分开的时间单位的第二值;以及确定将第二时间与第二预定时间点分开的时间单位的第三值。
生成各自的数字范围包括:将第二值除以预定持续时间以提供表示第一时间的数字范围的商;以及将第三值除以预定持续时间以提供表示第二时间的数字范围的商。
标识索引内的条目,其包括第一索引键并包括第二索引键,所述第二索引键对应于等于第一时间的数字范围或第二时间的数字范围、或在第一时间和第二时间的各自的数字范围之间的数字范围。
在另一总的方面,一种计算机可读存储介质存储包括用于使得计算系统执行以下步骤的指令的计算机程序:接收数据结构中存储的记录的数字属性的值,以及生成包括数字属性的值的数字范围。所述指令还使得计算机系统在与数据结构相关联的索引中存储条目,所述条目指定记录在数据结构内的位置并包括第一索引键和第二索引键,所述第一索引键对应于与数字属性不同的记录的属性的值,并且所述第二索引键对应于所生成的数字范围。
在另一总的方面,一种计算系统,包括:输入设备或端口,配置为接收数据结构中存储的记录的数字属性的值。所述计算系统还包括至少一个处理器,配置为:生成包括数字属性的值的数字范围;以及在与数据结构相关联的索引中存储条目,所述条目指定记录在数据结构内的位置并包括第一索引键和第二索引键,所述第一索引键对应于与数字属性不同的记录的属性的值,并且所述第二索引键对应于所生成的数字范围。
在另一总的方面,一种计算系统,包括:用于接收数据结构中存储的记录的数字属性的值的装置;以及用于编索引记录的装置。所述编索引包括:生成包括数字属性的值的数字范围;以及在与数据结构相关联的索引中存储条目,所述条目指定记录在数据结构内的位置并包括第一索引键和第二索引键,所述第一索引键对应于与数字属性不同的记录的属性的值,并且所述第二索引键对应于所生成的数字范围。
各方面可包括以下优点的一个或多个。
用于管理数据的存储和编索引的技术能够减少必须解压(如果记录压缩的话)、加载到存储器中和/或未能匹配给定查询而丢弃的记录量。在一些示例中,记录根据诸如时间的数字属性存储到组中(例如,如果记录对应于电话呼叫,则记录可以基于给定呼叫进行的时间而存储在表示单日呼叫的数据文件中)。可以对于每个存储的记录组而提供标识每个记录在各个数据文件内的位置的索引。
在一些示例中,可以期望定位匹配查询中指定的参数的一个或多个记录。然而,如果查询中指定的参数之一与时间范围相关,则一些系统可能要求表示整日的数据文件被解压(如果数据文件压缩的话)、加载到存储器中并针对参数进行匹配,即使时间段仅仅是相对非常小的(例如,该日的十分钟)。因此,本公开提供了用于在包括数字范围(例如,时间范围,有时称为时间量)的索引中提供条目并可用于高效搜索索引以定位潜在满足查询的记录同时解压、加载和丢弃较小量记录的技术。这里描述的许多技术可以用于创建新索引或更新现有索引。
从下面的描述和权利要求,本发明的其他特征和优点将变得明显。
附图说明
图1是用于存储和检索记录的系统的框图。
图2A、2B、2C和2D是由系统处理并在系统中存储的数据的示意图。
图3A和3B是示出用于不同签名尺寸的误报概率的表格。
图4A和4B是用于搜索记录的过程的流程图。
图5是用于查询记录的过程的流程图。
图6A和6B是可附加查找文件的示意图。
图7是用于查询可附加查找文件的过程的流程图。
图8是用于存储数据的过程的流程图。
图9是用于存储和检索记录的系统的框图。
图10是示例索引的图。
图11是用于提供索引内的信息的过程的流程图。
具体实施方式
参照图1,记录存储和检索系统100从一个或多个源(诸如源A-源C)接受数据。数据包括可分别表示为可访问的数据单元的信息。例如,信用卡公司可以从多个零售公司接收表示各个交易的数据。每个交易与表示属性(诸如客户姓名、日期、购买量等)的值相关联。记录处理模块102确保根据预定记录格式而格式化数据,从而在记录中存储与交易相关联的值。在一些情况下,这可以包括根据记录格式变换来自源的数据。在其他情况下,一个或多个源可提供已经根据记录格式而格式化的数据。
记录处理模块102依赖于诸如是否可需要快速访问所存储的记录的各种因素,准备记录用于以各种类型的数据结构存储。当准备记录用于在可附加查找文件中的快速可访问性时,处理模块102在记录到来时将其附加到可附加查找文件中,并维护存储器内索引,如下面更详细地描述的。当准备记录用于压缩记录文件中的压缩存储时,处理模块102通过标识每个记录的主键值(例如,标识单个记录的唯一键、或标识记录的多个更新版本的键)对记录排序,并且将记录分为对应于主键值的不重叠范围的记录集合。例如,每个记录集合可对应于预定数量的记录(例如,100个记录)。
文件管理模块104管理可附加查找文件(在使用它们的场合)和压缩查找文件。当管理压缩记录文件时,文件管理模块104将每个记录集合压缩成数据的压缩块。这些压缩块存储在记录存储106中的压缩记录文件中(例如,在诸如一个或多个硬盘驱动的非易失性存储介质中)。
系统100还包括编索引(indexing)和搜索模块108,其提供包括压缩记录文件中的每个块的条目的索引。索引用于定位可包括给定记录的块,如下更详细描述的。索引可以以索引文件存储在索引存储110中。例如,虽然索引文件可以存储在与压缩记录文件相同的存储介质中,但是优选地索引文件可以存储在相对更快的存储器中(例如,诸如动态随机访问存储器的易失性存储介质),因为索引文件典型地比压缩记录文件小得多。索引还可以是作为存储器内数据结构而维护的动态索引114。动态索引114的一些示例是散列表、二值树和b树。编索引和搜索模块108还提供用于搜索可附加查找文件的接口,如下更详细描述的。
在系统100的替代实现方式中,除了或替代压缩之外,可以使用其他功能处理记录集合以生成块,从而将记录以某种方式组合(即,从而块不仅仅是记录的拼接组合)。例如,一些系统可以处理记录集合以生成加密数据块。
接口模块112为人和/或计算机代理(诸如代理A到代理D)提供对于所存储的记录的访问。例如,接口模块112可以实现用于信用卡客户的在线账户系统以监控其交易。系统100可以处理对于满足各种标准的交易信息的请求,并且可以从记录存储106中存储的压缩块内检索对应记录。
来自一个或多个源的进入记录的流在被处理以生成压缩记录文件之前可以被暂时存储。
图2A-2D、3A-3B和4A-4B示出以压缩记录文件管理记录的示例。参照图2A,系统100接收要以压缩记录文件202存储的记录200的集合,并根据主键的值而对记录排序。
主键值可以唯一标识可由一个或多个记录表示的数据库中的给定项(例如,具有给定主键值的每个记录可对应于项的不同更新版本)。主键可以是对应于记录的一个或多个现有字段的“自然键”。如果没有确保对于每个项唯一的字段,则主键可以是包括记录的多个字段的复合键,其一起确保或高度可能地对于每个项目是唯一的。替代地,主键可以是“合成键”,其可以在被接收之后分配给每个记录。例如,系统100可以将唯一主键分配为顺序递增的整数或单调处理值的一些其他序列(例如,时间标记)。在此情况下,表示相同项的不同版本的记录可以被分配不同合成键值。如果使用整数,则可能的主键值的范围(例如,如通过使用的比特数所确定的)可以足够大,从而如果主键轮回,之前被分配给定主键值的任何记录已经从压缩记录文件中移除。例如,旧的交易可以被移除和归档或丢弃。
在图2A所示的示例中,记录200被按字母顺序排序的主键值而标识:A、AB、CZ…。系统100压缩具有主键值A-DD的N个记录的第一集合,以生成对应压缩块,标记为块1。下一记录集合包括接下来的N个排序的记录,其具有主键值DX-GF。文件管理模块104可以使用各种无损数据压缩算法的任一种(例如,Lempel-Ziv类型算法)。每个连续的压缩块组合形成压缩记录文件202。
可以选择用于生成压缩块的记录的数量N,以在压缩效率和解压速度之间折中。压缩可通过依赖于被压缩的数据的性质和被压缩的数据的大小的给定因子R而减小平均数据大小(例如,当压缩越多数据时,R典型地越小)。压缩还可具有平均大小的相关联的开销O(例如,压缩相关数据)。从每个大小X的M个记录生成的得到的压缩记录文件的平均大小可以表示为其对于大量块可以近似为RMX+OM/N。因此,N的较大值在一些情况下通过减小R和通过减小开销对于文件的大小的贡献可以提供较大压缩。N的较小值减小了解压给定压缩块以访问块中可包含的记录所需的时间。
在其他实现方式中,不同压缩块可包括不同数量的记录。每个块可根据预定范围具有多个记录。例如,第一块包括具有主键值1-1000的记录,并且第二块包括具有主键值1001-2000的记录,等等。在此示例中的压缩块中的记录的数量可以是不同的,因为不是每个主键值都必须存在(例如,在现有数字字段用作自然键的情况下)。
在一些实现方式中,不同压缩块在一些情况下可包括目标数量的记录,并且在例外情况下可包括更多或更少的记录。例如,如果记录集合以其主键值不同于按排序顺序下一记录的主键值的记录而结束,则这些记录用于生成压缩块。如果记录集合以其主键值与按排序顺序下一记录的主键值相同的记录结束,则将具有该主键值的所有另外记录添加到集合。以此方式,相同主键值不从一个压缩块跨到下一压缩块。
编索引和搜索模块108对于每个压缩块生成索引文件204中的条目。索引条目包括键字段206,其例如通过对应的未压缩的记录集合中的第一记录的主键来标识每个压缩块。条目还包括位置字段208,其标识所标识的压缩块在压缩记录文件202中的存储位置。例如,位置字段可包含记录存储106中的绝对地址形式的指针,或从记录存储106中压缩记录文件202的起始的地址起的偏移形式的指针。
为了搜索压缩记录文件202中的给定记录,模块108可基于键字段206执行索引文件204的搜索(例如,二值搜索)。对于给定键值(例如,由代理之一提供),模块108定位包括对应于包括所提供的键值的键值范围的记录的块。具有所提供的键值的记录可以或可以不包括在用于生成所定位的块的记录集合中,但是如果记录存在于记录200中,则该记录将已经被包括,因为记录200通过主键值排序。模块108然后解压所定位的块,并搜索具有所提供的主键值的记录。在主键值对于每个记录不唯一的情况下,模块108可以在压缩块中找到具有所提供的主键值的多个记录。在键字段206包括集合中第一记录的主键的该示例中,模块108分别搜索具有比所提供的键值更先和更后键值的两个连续的索引条目,并且返回对应于具有更早键值的条目的块。在一些情况下,所提供的键值可以与索引条目中的键值相同,在此情况下,模块108返回对应于该条目的块。
在不同实现方式中,对于索引文件204中的条目存在标识对应于从其生成对应块的记录的键值的范围的不同方式。如图2A所示的实现方式中,键值的范围可以是用于生成块的记录的两个极端键值之间的范围(例如,字母顺序的主键值的排序序列中的第一个和最后一个,或数字主键值的排序序列中的最小值和最大值)。索引条目可以包括定义范围的两极值的任一个或两个。在一些实现方式中,如果索引条目包括定义给定块的范围的最小键值,则与压缩记录文件中最后块关联的最后索引条目也可包括定义该块的范围的最大键值。该最大键值然后可以在搜索对应压缩记录文件时使用,以确定给定键值何时超出范围。
替代地,键值的范围可以是延伸超出用于生成块的记录的键值的范围。例如,在从具有1和1000之间的数字主键值的记录生成的块的情况下,记录中表示的最小键值可以大于1,并且记录中表示的最大键值可以小于1000。索引条目可以包括定义范围的极值1和1000中的任一或两者。
当已经处理了初始记录组之后另外的记录到达以生成压缩记录文件时,这些记录可以在缓冲器中存储并以未压缩形式搜索。替代地,另外的记录组可以增量处理并存储为可以由另外的索引文件访问的另外的压缩记录文件。在一些情况下,即使当压缩小量的另外的记录可能不提供存储大小的显著降低时,其仍可以是有利的,在于压缩另外的记录以维持用于访问记录的一致的过程。另外的记录可以以规律时间间隔(例如,每30秒或每5分钟)重复处理,或在已经接收到预定数量的另外的记录(例如,每1000个记录或每10,000个记录)之后重复处理。如果进入的记录基于时间间隔而处理,则在一些间隔中,可能没有进入的记录或全部压缩到单个压缩块中的小量的记录。
参照图2B,在已经生成初始压缩记录文件202之后系统100已经接收到另外的记录的示例中,可以将另外的压缩记录文件210附加到初始压缩记录文件202以形成复合压缩记录文件211。系统100通过主键值排序另外的记录,并压缩N个记录的集合以生成压缩记录文件210的压缩块。附加文件210中的第一压缩块(标记为块91)具有主键值BA-FF。模块108生成包括可用于搜索附加文件210中表示的另外的记录的条目的另外的索引文件212。新索引文件212可附加到之前的索引文件204。
可以附加任何数量的压缩记录文件以形成复合的压缩记录文件。如果编索引和搜索模块108正搜索复合的压缩记录文件中具有给定键值的记录,则模块108使用对应的索引文件搜索每个附加的压缩记录文件内的记录。替代地,请求给定记录的代理可以指定具有要搜索的复合压缩记录文件的一些数量的压缩记录文件(例如,最近生成的10个,或最后小时中生成的任何)。
在给定量时间(例如,每24小时)之后或在已经附加给定数量的压缩记录文件之后,系统100可以合并文件以从复合压缩记录文件生成单个压缩记录文件和新的对应的索引文件。在合并之后,可以搜索单个索引以定位可包含给定记录的压缩块,导致更高效的记录访问。在合并时,系统100解压压缩记录文件,以恢复对应的排序记录的集合,通过主键值排序记录,并生成新的压缩记录文件和索引。因为每个恢复的记录集合已经被排序,所以通过根据主键值合并之前排序的列表可以高效地排序记录,以生成排序的记录的单个集合。
参照图2C,复合压缩记录文件211包括初始压缩记录文件202、另外的压缩记录文件210和多个另外的压缩记录文件220、221,依赖于有多少另外的记录已经到达和这些记录多久被处理。每个压缩记录文件可以具有相关联的索引文件,其可用于搜索该文件的压缩块内的给定记录。在此示例中,压缩记录文件220之一足够小到仅具有单个压缩块(块95),因此不必需要相关联的索引文件,但是可以具有指示块中主键值的范围及其在存储中的位置的相关联的数据。在合并之后,处理从不同附加的压缩记录文件恢复的记录,以生成单个压缩记录文件230。
在单调分配主键的情况下,不仅在压缩记录文件内自动排序记录,而且从一个文件到下一个文件排序记录,从而不需要合并文件以便访问单个索引搜索中的记录。参照图2D,系统100接收通过以到达顺序分配的连续整数作为记录的主键而标识的记录250的集合。因此,通过主键自动排序记录250。在此示例中,初始压缩记录文件252包括每个包括100个记录的压缩块,并且索引文件254包括对于压缩块中第一记录的主键值的键字段256、以及标识对应存储位置的位置字段258。因为在已经生成初始压缩记录文件252之后到达的记录将自动具有按排序顺序较后的主键值,所以附加的压缩记录文件260和对应的索引文件262不必合并以允许基于单个索引搜索的高效记录访问。例如,索引文件262可以简单地附加到索引文件254,并且两个索引可以一起搜索(例如,在单个二值搜索中)用于定位压缩记录文件252或260的任一中的压缩块。
可以可选地合并复合压缩记录文件261,以消除可能已经插入在压缩记录文件252末端的不完整的块。在这样的合并中,将仅需要解压第一文件252中最后压缩的块,并且替代合并解压的记录集合,可以简单地拼接记录集合以形成新排序的记录的集合,以划分为100个记录的集合,其然后再次压缩以形成新的压缩记录文件。
使用连续整数合成主键值的另一优点是,如果记录要基于主键值而分割,则可以自动平衡各分段,因为在键值中没有间隙。
各种技术的任一可以用于更新记录并无效在压缩记录文件中可能存在的记录的任何之前的版本。在一些情况下,不需要单独移除或更新记录(例如,日志、交易、电话呼叫)。在这些情况下,旧记录以预定数量的压缩块为组,例如,从压缩记录文件的起始而移除和丢弃或归档。在一些情况下,可以移除整个压缩记录文件。
在一些情况下,通过在压缩块中添加用于存储的新更新的记录而更新记录的一个或多个值,并且记录的之前接收的版本(具有相同主键值)可以保留存储在不同的压缩块中。这然后可以有记录的多个版本,并使用一些技术来确定哪个是记录的有效版本。例如,在任何压缩记录文件中出现的最后的版本(最近接收的)可以隐式或显式指示为有效版本,并且任何其他版本是无效的。在此情况下对于具有给定主键的记录的搜索可以包括找到以出现的顺序由该主键标识的最后的记录。替代地,可以无效记录而不必通过写入指示记录的任何之前版本无效的“无效记录”来添加记录的新版本。
系统100通过不同处理仲裁对于记录存储106中存储的压缩记录文件的访问。可以使用各种同步技术的任一来仲裁对于一个或多个压缩记录文件内的压缩块的访问。系统100确保修改文件的任何处理(例如,通过附加或合并数据)彼此不干扰。例如,如果在合并正发生的同时新记录到达,则系统100可以等待,直到合并处理结束,或可以生成压缩块并在将它们附加到现有压缩记录文件之前暂时存储它们。从压缩记录文件读取的处理可以加载完整的文件的一部分,并且可以忽略可能正经受修改的任何不完整部分。
系统100存储使得能够基于主键以外的记录的属性而搜索记录的另外的数据。压缩记录文件的副索引包括基于被指派为副键的属性的值而提供一个或多个主键值的信息。每个被指派为副键的属性可与对应的副索引相关联。例如,每个副索引可以组织为具有通过相关联的副键排序的行的表。每行包括副键值和包括此副键值的记录的一个或多个主键值。因此,如果代理发起对于包括给定副键值的任何记录的搜索,则系统100查找主键,用于对于包括记录的压缩块搜索压缩记录文件的索引。副索引可以是大的(例如,记录的数量的量级),并且在一些情况下可以存储在存储压缩记录文件的存储介质中。
在一些情况下,被指派为副键的属性的值可以对于每个记录是唯一的。在这样的情况下,在副键和主键之间存在一对一的对应关系,并且接口模块112可以对代理将副键属性表现为其好像是主键一样。
当新压缩记录文件附加到复合压缩记录文件时,可以更新每个副索引。替代地,副键可以与对于每个压缩记录文件的不同的副索引相关联,并且当合并压缩记录文件时可以将多个副索引合并为单个副索引。
筛选(screening)数据结构可以与压缩记录文件相关联,用于确定包括给定属性值的记录包含在文件的压缩块中的可能性。例如,使用重叠编码的签名(OES)作为筛选数据结构,这使得系统100能够确定具有给定键值(主键或副键)的记录确定不存在(“否定”结果),或具有给定键值的记录是否具有存在的可能性(“肯定”结果)。对于肯定结果,系统访问适当的压缩块以检索记录(“确认肯定”结果),或确定记录不存在(“误报(falsepositive)”结果)。对于否定结果,系统可以给出否定结果给代理,而无需花费时间对于不存在的记录解压和搜索压缩块。OES的尺寸影响肯定结果多久是误报的,OES尺寸越大,通常得到的误报结果越少。对于给定OES尺寸,通常越少的独特的可能的键值导致越少的误报。
其他类型的筛选数据结果是可能的。可以对于每个压缩记录文件提供对于给定主键或副键的筛选数据结构。替代地,可以对于每个压缩块提供键的筛选数据结构。
图3A和3B示出提供用于对于各种尺寸的示例性OES筛选数据结构(列)和压缩记录文件中标识的各种数量的独特的键值(行)的键值获得误报结果的概率值的表格。对于OES,依赖于OES的尺寸和独特键值的数量,可以在OES的相同部分中指示多于一个键值的存在,潜在导致对于这些键值之一的误报结果(如果存在另一个的话)。此示例性OES的尺寸变化从210=1024比特(图3A的表格中)至228=256兆比特(图3B的表格中)。独特键值的数量的变化从100(图3A的表格中)至100,000,000(图3B的表格中)。对于这两个表,右上空白单元对应于0%,并且左下空白单元对应于100%。对于误报概率低的单元(例如,接近零),筛选数据结构可能大于提供准确筛选所必需的。对于误报概率显著的单元(例如,>50%),筛选数据结构可能过小以不能提供准确筛选。此示例对应于用于使用每个键值四个散列码生成OES的技术。OES筛选数据结构的其他示例对于给定数量的独特键可以产生不同的误报概率表。
因为压缩记录文件中表示的独特键值的数量可以是未知的,所以系统100可以基于从其生成文件的记录的数量选择用于压缩记录文件的筛选数据结构的尺寸。在选择尺寸时,在降低误报概率和存储筛选数据结构所需的存储器空间之间存在折中。此折中中的一个因子是搜索绝对键值的可能性。如果要查找的键值的大部分可能在解压记录中存在,则可能完全不需要筛选数据结构。如果非常有可能将找不到键值,则分配用于相当大的筛选数据结构的存储空间可能节省显著的时间。
与压缩记录文件相关联的筛选数据结构的尺寸可以依赖于文件是对应于记录的初始或合并的大数据库、还是对于较大数据库的较小更新。相对较小的筛选数据结构尺寸可以用于在规律更新间隔期间附加的压缩记录文件,因为在每次更新中通常存在较少的独特的键值。此外,随着压缩记录文件的数量在多次更新之后增长,小尺寸可以降低所需存储空间。筛选数据结构的尺寸可以基于更新中期望的记录数量和/或独特键值,并基于期望的更新数。例如,如果在24小时时段中每五分钟附加更新文件,则在一天结束时将存在288个压缩记录文件。至少一个误报结果的概率将是从图3A和图3B的表的适当值的288倍(假设对于不同更新的结果是独立的)。在合并之后,对于合并的压缩记录文件较大的筛选数据结构可能是适当的,因为独特键值的数量可能显著增加。
压缩记录文件可以具有对于主键和对于每个副键、或对于键的一些子集的筛选数据结构。例如,系统100可以对于主键、并仅对于预期在搜索记录中最经常使用的那些副键提供筛选数据结构。
图4A示出用于搜索具有给定主键值的一个或多个记录的过程400的流程图。过程400确定(402)是否存在与第一压缩记录文件相关联的筛选数据结构。如果是,则过程400处理(404)筛选数据结构以获得肯定或否定结果。如果给定主键值没有通过筛选(否定结果),则过程400检查(406)下一压缩记录文件,并对该文件重复(如果存在的话)。如果给定主键值通过筛选(肯定结果),则过程400对于可能包含具有给定主键值的记录的块搜索(408)索引。如果没有筛选数据结构与压缩记录文件相关联,则过程400搜索(408)索引而不执行筛选。
在搜索(408)索引之后,如果找到(410)与包括给定主键值的键值的范围相关联的压缩块,则过程400解压(412)在索引条目标识的位置处的块,并对于具有给定主键值的一个或多个记录搜索(414)得到的记录。过程然后检查(416)下一压缩记录文件,并对该文件重复(如果存在的话)。如果没有找到压缩块(例如,如果给定主键值小于第一块中最小键值或大于最后块中最大键值),则过程400检查(416)下一压缩记录文件并对该文件重复(如果存在的话)。
图4B示出用于搜索具有给定副键值的一个或多个记录的过程450。过程450确定(452)是否存在与第一压缩记录文件相关联的筛选数据结构。如果是,则过程450处理(454)筛选数据结构以获得肯定或否定结果。如果给定副键值没有通过筛选(否定结果),则过程450检验(456)下一压缩记录文件并对该文件重复(如果存在的话)。如果给定副键值通过筛选(肯定结果),则过程450查找(458)对应于包含给定副键的记录的主键。如果没有筛选数据结构与压缩记录文件相关联,则过程450查找(458)主键而不执行筛选。
对于找到的每个主键,过程450对于可能包含具有给定主键值的记录的块搜索(460)索引。在搜索(460)索引之后,如果找到(462)与包括给定主键值的键值范围相关联的压缩块,则过程450解压(464)在索引条目标识的位置处的块,并对于具有给定主键值的一个或多个记录搜索(466)得到的结果。过程然后检查(468)下一压缩记录文件并对该文件重复(如果存在的话)。如果没有找到压缩块,则过程450检查(468)下一压缩记录文件并对该文件重复(如果存在的话)。
过程400或过程450可以按出现顺序返回用给定主或副键找到的多个记录,或者在一些情况下,仅返回记录的最后版本。
文件管理模块104还管理使用可附加查找文件对记录的存储和访问。在使用可附加查找文件的一个示例中,系统100管理大的主数据集合(例如,包括几百万亿字节主数据)。此主数据集合将通常存储在一个或一系列的多个压缩记录文件中(可能拼接为复合压缩记录文件)。然而,如果数据需要在其到达之后(例如,在一分钟内或更短)很短时间可见,则其可能有助于用可附加查找文件补充压缩记录文件。可附加查找文件能够减少当新数据到达时与数据变为对各种查询处理可用时之间的延时。新数据例如可能源于另一将数据主动写入文件的处理。系统100能够管理对于可能不完整的部分可附加查找文件的访问。在一些系统中,如果查询处理碰到部分文件,则将出现程序错误。为了避免此程序错误,这些系统中的一些每当查询文件时将重加载与文件相关联的索引。每次查询时重加载索引可能在一些情况下是低效的,并且可能消耗相当量的系统资源。
通常,可附加查找文件是容忍文件末端添加的部分记录的未压缩数据文件。可附加查找文件能够识别不完整记录,并且即使查询的文件包含不完整记录时也能够处理查询请求。可附加查找文件对于压缩记录文件没有如上所述的类型的索引文件;而是,可附加查找文件具有“动态索引”,其匹配相对快工作的存储器(例如,诸如动态随机存取存储器的易失性存储介质)中存储的数据结构中的每个记录的位置。例如,这些动态索引可以是散列表、二值树、b树或另一类型的相关联的数据结构。
图5和6A-6B示出使用可附加查找文件管理记录的示例。图5是查询可附加查找文件的处理的示例。与可附加查找文件的操作相关的处理流程500包括加载处理502和查询处理504。在加载(506)文件之后(诸如当查询文件时),确定(508)文件的长度。在已经确定(508)文件的长度之后,将所确定的长度存储(510)在存储器位置中,诸如在工作存储器中。
系统然后确定(512)“终点”,其是表示文件内最后的完整记录的末端的位置。在一些情况下,如当没有新数据正写入文件时,终点将简单地表示文件的末端。终点还可表示紧接在新数据的第一分段之前的位置(见图6)。在已经确定(512)终点之后,将其存储(514)在存储器位置中,如主存储器中。
在查询处理504期间,系统100决定是否处理查询(522),或更新(518)与查询的文件相关联的关联数据结构。为了做出此决定,系统将当前文件长度与之前确定并保存在存储器中的文件的长度进行比较(516)。此决定可以以多种方式做出。例如,系统可以检验文件元数据、文件头部、或可以对于新行字符搜索文件。如果文件长度不超过之前存储的文件长度,则没有新数据已经添加到数据文件的末端,并且处理(522)查询。如果当前文件长度超过之前存储的文件长度,则在之前存储的终点开始更新(518)相关联的数据结构。以此方式,可以更新关联数据结构而不用整体重加载或重建它。替代地,已经加载到存储器中的数据保持加载,并且在之前存储的终点开始附加新数据。在处理查询之前,终点的文件长度也更新(520)。在此处理中可执行诸如错误校验的其他步骤。例如,如果系统确定当前文件长度小于之前存储的文件长度,则可以标记错误。
图6A和6B是文件内终点的位置的示例,如图5中的步骤512所确定的。在图6A中,可附加查找文件600包括完整记录602和不完整记录604。在此情况下,终点606是表示可附加查找文件600内最后的完整记录的末端的位置,并且紧接在不完整记录604的起始之前。
在图6B的示例中,可附加查找文件650包括完全完整的记录652。在此情况下,终点654再次表示可附加查找文件650内最后的完整记录的末端;然而,终点654还表示文件的末端。
数据可连续附加到可附加查找文件,其然后连续更新。结果,可附加查找文件在尺寸上不断变大,并且加载可附加查找文件所需的时间也相应增加。可附加查找文件可以与其他形式的动态可加载索引文件组合以避免可附加查找文件变得过大以至于不能在期望的时间量内加载。
在一些应用中,要加载到可查询数据结构中的连续数据流可以以高速率到达,并且可以期望在其到达之后很快对数据的访问。当数据到达时,其由双处理来处理。首先,复制数据,并将数据同时添加到可附加查找文件(使得其对于文件系统立刻可见并可访问)和第二文件或“缓冲器”。数据继续在可附加查找文件和缓冲器中累积,直到满足预定条件。预定条件可以是多个准则。例如,预定准则可以是时间长度、文件尺寸、数据量或数据内的记录数。
在满足预定条件之后,已经在缓冲器中累积的数据块添加到压缩记录文件用于更长期存储。在数据添加到压缩记录文件之后,创建新的可附加查找文件并且开始从数据流收集数据。旧的可附加查找文件结束,并在压缩记录文件包含所有对应数据之后删除。
当数据正由缓冲器和可附加查找文件接收时,可以对缓冲器中的数据排序。因为排序数据消耗显著的时间量和系统资源,所以有利地尽可能地早开始排序处理,以允许数据更快速地传送到压缩记录文件。
替代地,可附加查找文件可以用作缓冲器。在此实施例中,数据在可附加查找文件中累积,直到满足预定条件。然后,可附加查找文件的内容添加到压缩记录文件,同时,旧的可附加查找文件结束并创建新的可附加查找文件并开始从数据流收集数据。同样,在压缩记录文件包含所有对应数据之后旧的可附加查找文件删除。
在此处理的每个周期期间,将期望同时将数据添加到压缩记录文件以及删除可附加查找文件中的所有数据。然而,因为两个更新可能导致竞争情况,所以可能有显著的窗口,其中已经删除旧的可附加查找文件但是压缩记录文件还没有用其数据更新。这将导致数据的临时丢失。为了防止这种情况,旧的可附加查找文件可以保持此处理的另外的周期。编索引和搜索模块108配置为检测可附加查找文件和压缩记录文件中可能存在复制数据的情况,并且如果在此情况下进行查询,则编索引和搜索模块108过滤出复制数据。
替代地,文件管理模块104可以在例如状态信息文件107中维持状态信息,以在数据缓冲器已经写到压缩查找文件之后或在可附加查找文件的内容已经添加到压缩查找文件之后协调可附加查找文件的收回。状态信息文件107标识当前活动的记录相关的数据结构。例如,状态信息文件107标识所有压缩数据文件、以及它们包含的块的数量与当前活动的所有可附加查找文件。编索引和搜索模块108将丢弃在状态信息文件中没有出现的任何可附加查找文件、压缩数据文件和压缩数据文件内的块。当创建新的可附加查找文件时,下面是文件管理模块104观察到的协议的示例:文件管理模块104将新数据添加到压缩数据文件并创建新可附加查找文件;文件管理模块104锁定状态信息文件以防止其被编索引和搜索模块108访问;文件管理模块更新状态信息文件以反映新数据到压缩数据文件的添加、旧可附加查找文件的移除、以及新可附加查找文件的创建;文件管理模块解锁状态信息文件,允许其再次被编索引和搜索模块108访问;文件管理模块104移除旧可附加查找文件。
编索引和搜索模块108遵循以下示例性协议:其锁定状态信息文件以防止文件管理模块104更新它;其根据状态信息文件中标识的压缩数据文件和可附加查找文件执行查询;其解锁状态信息文件以再次允许文件管理模块104更新状态信息文件。
状态信息文件107可以存储在盘上或存储器中。此协议确保搜索模块看见来自旧可附加查找文件的数据的合并之前的旧可附加查找文件和压缩数据文件、或新可附加查找文件和更新的压缩数据文件。
当新可附加查找文件和旧可附加查找文件同时存在时进行查询时,在一个实现方式中,系统在目录中查找以确定哪个可附加查找文件当前是活动的(例如,新可附加查找文件或旧可附加查找文件可以是活动的,因为直到其已经创建之后的一定量的延迟,新可附加查找文件都不能变为活动的)。替代地,当系统处理查询时,其首先在最新可附加查找文件中查找,然后在旧可附加查找文件中查找。如果仍然没有定位查询数据,则系统在压缩记录文件中查找。
在图7中,系统100执行的过程700确定文件长度(702)并将文件长度存储在第一存储器位置(704)。过程700确定文件内最后的完整记录的终点(706),并将终点存储在第二存储器位置(708)。过程将第一存储器位置中存储的文件长度与当前文件长度比较(710),并且如果当前文件长度超过第一存储器位置中存储的文件长度(712),则从终点起始更新与文件相关联的数据结构。
在图8中,由系统100执行的过程800同时将数据从数据流添加到第一文件和缓冲器(802),并且在满足预定条件之后将与缓冲器相关联的数据传送到压缩文件(804)。过程800创建第二文件以在来自缓冲器的数据已传送到压缩文件之后从数据流接收数据(806)。
图9示出包括记录存储和检索系统902的系统900,其包括接口112、记录处理模块102、文件管理模块104、记录存储模块106、编索引和搜索模块108和索引存储模块110。在一些示例中,记录存储模块106使用如上所述的一个或多个压缩技术存储多个记录。例如,可以根据记录的数字属性对记录分组(例如,基于与每个记录相关联的时间标记与相同出现日期相关联的记录)。如上所述,每组记录可以与存储记录的一个或多个数据文件(例如,作为压缩记录)、以及存储数据文件内每个记录的位置的索引和可以对应于记录属性的一个或多个索引键(例如,表示记录的主键或副键的属性)相关联。对于给定记录组,数据文件和与数据文件相关联的一个或多个索引可以分开存储。例如,一个或多个索引可以存储在索引存储模块110中,并且数据文件可以存储在记录存储模块106中。
编索引和搜索模块108中的查询处理引擎910配置为处理搜索查询(例如,经由接口112从用户接收的查询)。在一些示例中,为了检索查询处理引擎910接收的查询中指定的一个或多个记录,可以解压可能包括满足查询的记录的任何数据文件,将其重加载到存储器中,并使其记录针对查询的规范(specification)进行匹配。可以标识匹配的记录用于进一步处理或输出(例如,输出至接口112),同时不匹配查询的规范的记录可以简单地从存储器移除。使用上述示例,如果压缩记录存储在对应于指定出现日期的数据文件中,则记录存储和检索系统902可以接收请求检索与单日的一个小时相关联的所有记录(例如,与2011年6月1日1:00AM至2:00AM的时间相关联的所有记录)的查询。在此简化示例中,将搜索仅与2011年6月1日的日期相关联的所有数据文件;然而,在已经解压整个数据文件、将其加载到存储器中、并针对1:00AM和2:00AM之间的时间段的查询规范进行匹配之后,可以确定数据文件内的许多记录不匹配此约束。结果,解压、加载和搜索不匹配的记录可以被视为浪费的操作。使用相同示例数据文件结构,如果查询请求检索例如与整年的相同时间段相关联的所有记录,则问题可能复杂化,因为将解压、加载和搜索365个数据文件,即使当仅仅每天单个小时内的记录与查询项相关时也是如此。
在一些示例中,系统900可允许记录存储模块106内存储的记录以比上述技术更高的精度被加载、标识和检索。例如,编索引和搜索模块108可以构造包括(或更新现有索引以包括)下述条目的索引,所述条目包括与比与给定记录相关联的数字属性范围更粗、但比与整个数据文件相关联的数字属性值的跨度在范围上更精细的数字范围(例如,时间段)的关联。再次参照上面的示例,记录可以各自包括时间标记。例如,如果记录表示进入的电话呼叫,则记录可包括指示何时接收到呼叫的时间标记、以及呼叫什么电话号码、什么电话号码进行呼叫、以及其他信息。在一些示例中,时间标记可以是小时、分钟和秒(例如,HH:MM:SS格式)的形式。因此,给定数据文件可包括与落入单日(例如,2011年6月1日)内的时间标记相关联的记录,并且与该数据文件相关联的索引可包括提供数据文件内的那些记录的每个的位置、以及记录的一个或多个属性(例如,呼叫的电话号码)的条目。索引中的条目每个还可包括描述对应记录的时间标记落入的数字范围(当数字属性是时间时,有时称为“时间量”)的信息。
为了计算例如包括时间标记的记录的数字范围,与编索引和搜索模块108相关联的数字范围处理模块912可以处理时间标记以提供数字范围。数字范围部分基于指定期望数字范围的大小的数字粒度913(例如,当数字属性是时间时的持续时间)。例如,数字粒度913可指定对每个时间标记提供的数字范围将包括单日的十分钟。例如,如果记录包括1:00:00AM的时间标记并且数字粒度913指定10分钟的值(600秒),则可以计算数字范围。在一些示例中,作为计算的一部分,可以将时间标记(1:00:00AM)转换为不同单位。例如,特定天的1:00:00AM可以通过从之前一天的午夜开始已经经过的多个时间单位来表示(例如,1小时或3600秒)。
在一些示例中,可通过将时间标记转换为与时间粒度相关联的相同时间单位来计算数字范围(例如,秒)。然后,例如可通过将转换后的时间标记(3600秒)除以时间粒度(600秒)来确定数字范围,如下:
因此,对于上述示例,数字键处理模块912可以基于数字粒度913来确定数字范围用于与具有1:00:00AM时间标记的记录相关联。在一些示例中,数字键处理模块912仅使用从除法得到的商,并且可以从没有整除的数字范围计算四舍五入或舍去余数。
在通过数字键处理模块912对于给定记录计算数字范围之后,编索引和搜索模块108可以将条目(或对条目的更新)914提供至包括数字范围916的索引存储110。索引存储110然后可以在与存储由一个或多个记录地址918表示的记录的数据文件相关联的一个或多个索引中存储条目914。条目914还可包括第一键906(例如,如果条目是新条目)以及一个或多个记录地址918。在一些示例中,一个或多个记录地址918标识包含与第一键906和数字范围916相关联的记录的一个或多个位置(例如,在例如记录存储模块106中存储的数据文件内)。
如上所述,条目914可包括一个或多个记录地址918。例如,如果三个记录(每个唯一地存储在数据文件中)与第一键906(例如,普通电话号码)和数字范围916(例如,如上计算的数字范围6)相关联,则记录地址918(其例如可以是指针)可以聚合并一起存储在条目914中。将多个记录地址一起存储在诸如条目914的单个条目中,这可以通过允许索引存储更少条目而保留存储空间。
图10示出包括四个条目(第一条目1002、第二条目1003、第三条目1004和第四条目1005)的示例索引1000。条目1002-1005的每个包括由第一列1006表示的第一键(称为“值键”)、以及由第二列1008表示的第二键(称为“范围键”)。在此示例中,值键是电话号码,并且范围键是如上所述的类型的数字范围;即,在此示例中,每个条目1002-1005表示已经呼叫的电话号码的记录以及与呼叫的时间相关联的数字范围。索引1000首先通过值键1006排序,然而通过范围键1008排序。替代地,在其他示例中,可以修改值键以合并范围键(例如,通过将范围键的值与值键的值拼接)。
条目1003包括“电话号码1”的值键的值和2的范围键的值(表示对应于商2的数字范围)。在此情况下,数字范围2表示使用与一个或多个记录相关联的时间标记和数字粒度(例如,数字粒度913)以上面示出的方式计算的时间量。
条目1003还是与多于一个记录地址相关联的条目的示例。例如,条目1003与三个地址(地址11002、地址41013和地址51014)相关联。地址1012-1014的每个指向记录存储模块106中存储的一个或多个数据文件1010内的位置。将诸如时间量的数字范围存储为索引中的键,这便利了单个条目内记录地址的聚合或分组。例如,当时间标记可通过32比特字符串表示时,诸如时间量的数字范围可通过8比特串表示,因为依赖于时间标记的分辨率,时间量可通过单个整数而不是小时、分钟、秒和秒的分数来表示。此外,因为诸如时间量的数字范围可具有比例如时间标记更粗的粒度,所以给定数字范围更可能包括多个记录。例如,如果数字范围表示2小时的时间段,则与普通时间标记相比,可能更多记录与普通2小时时间段相关联,因为时间标记可以比数字范围更精确(因此更有可能唯一)。地址1012-1014也可以通过索引1000中的对应条目表示,因为不需要将它们聚合在单个条目下。与条目1002-1005的每个相关联的记录地址可以存储在例如与索引1000关联的一个或多个另外的列中,其中每列可以包括与条目相关联的一个或多个记录地址。
使用这些技术存储和编索引记录可以允许对于记录的查询满足特定标准以更高效地被处理。例如,再次参照图9,编索引和搜索模块108可以从接口112接收查询。如在上面的示例中,查询可请求检索与单日的一个小时相关联的所有记录(例如,与2011年6月1日1:00AM至2:00AM的时间相关联的所有记录)。查询可以是指定要匹配的第一属性(对应于值键的属性)的特定值和要匹配的第二属性(对应于范围键的属性)的值的范围的形式。在此示例中第一属性的值可表示呼叫的电话号码,并且第二属性的值的范围可表示由最小时间表示的时间段(1:00M和最大时间2:00AM)。
假设记录按其各自日期分组到数据文件中(例如,每个数据文件存储来自单日的记录),与2011年6月1日的日期相关联的数据文件将包括满足查询的所有记录(以及不满足查询的许多记录)。然而,替代将整个数据文件加载到存储器中,编索引和搜索模块108的查询处理模块910可以将时间段转换为可以针对诸如时间量的数字范围进行匹配的形式。例如,表示时间段的最小和最大时间可以以上述方式转换为各个数字范围。下面示出示例转换,其假设使用600秒的相同数字粒度913:
因此,通过查询指定的1:00AM至2:00AM的时间段可以分别转换为6和12的对应数字范围。然后可以对索引存储110中的记录执行修改的查询,使得可以基于对应于第一属性的值键(例如,查询中指定的电话号码)和对应于第二属性的范围键(例如,从查询中指定的时间段生成的数字范围6-12)来搜索索引(例如,索引1000)。因为与给定数据文件相关联的索引包括对应于各个时间量的范围键,所以编索引和搜索模块108能够确定仅给定数据文件内的记录的子集与6和12之间的时间量相关联(使用术语“之间”以宽泛地包括例如等于任一极值的值)。结果,不需要将整个数据文件加载到存储器中、解压(如果数据文件是压缩数据文件)和搜索;替代地,仅与时间量6至12相关联的索引中标识的记录被解压(如果数据文件是压缩数据文件)、加载到存储器中和搜索。因为每个时间量可包括落入匹配时间量内但在原始查询中指定的时间段之外的记录,所以在满足查询的记录已经解压和/或加载到存储器中之后,编索引和搜索模块108可以针对原始查询检查加载的记录,以标识和排除不满足原始查询的任何记录。在执行检查之后,剩余记录应当满足从接口112接收的查询,并且可以通过接口112将得到的记录(或那些记录的列表)例如返回给用户。
图11示出用于在索引中存储数字范围的处理1100。处理1100可以用于创建新索引、在现有索引中创建新条目或更新现有索引内的条目。
接收(1102)与数据结构中存储的记录相关联的数字属性。例如,数据文件可包括具有相关联的数字属性的记录,如时间标记,并且编索引和搜索模块108可以访问数据文件和/或与数据文件相关联的索引,以提取时间标记。时间标记仅是数字属性的示例,并且还可包括数字排序(例如,一个或多个项的线性排序)。
生成(1104)包括数字属性的数字范围。例如,如果数字属性是时间标记,则可以以上述方式计算数字范围。例如,可以确定以将时间标记所表示的时间与预定时间点相分开的时间单位表达的值(例如,给定一天的午夜),以将时间标记转换为可用于确定时间范围的时间单位的量。时间单位然后可以被数字粒度除(例如,时间粒度)以提供数字范围。在一些示例中,诸如时间粒度的数字粒度由用户指定,并且可以是任何大小(例如,10分钟或6个月)。
指定数据结构内记录的位置并包括值索引键和范围索引键的条目存储在与数据结构相关联的索引中,范围索引键的值与数字范围相关联(1106)。例如,条目可以提供在包括值键和范围键的索引中(例如,图10中的索引1000)。在一些示例中,与范围键相关联的数字范围是时间量。
上述的记录存储和检索方式包括系统的模块和由系统执行的过程,可以使用用于在计算机上执行的软件来实现。例如,在执行一个或多个编程或可编程计算机系统(可以是诸如分布式、客户端/服务器或网格的各种架构)的一个或多个计算机程序中的软件形式过程,每个包括至少一个处理器、至少一个数据存储系统(包括易失性和非易失性存储器和/或存储单元)、至少一个输入设备或端口、和至少一个输出设备或端口。软件可以形成较大程序的一个或多个模块,例如,提供与计算图的设计和配置相关的其他服务。图的节点和元素可以实现为计算机可读介质中存储的数据结构或与数据存储库中存储的数据模型一致的其他有组织数据。
软件可以提供在通用或专用可编程计算机可读的存储介质上,诸如CD-ROM,或经由网络的通信介质传递(编码成传播信号)至执行它的计算机。所有功能可以在专用计算机上执行,或使用专用硬件(诸如协处理器)执行。软件可以以分布式方式实现,其中软件指定的计算的不同部分由不同计算机执行。每个这样的计算机程序优选地存储在或下载到可由通用或专用可编程计算机读取的存储介质或设备(例如,固态存储器或介质、或磁或光介质),用于在通过计算机系统读取存储介质或设备时配置和操作计算机来执行这里描述的过程。本发明的系统还可以被认为实现为计算机可读的存储介质,用计算机程序配置,其中配置存储介质使得计算机系统以特定和预定方式运行以执行这里描述的功能。
已经描述了本发明的多个实施例。然而,将理解,可以进行各种修改而不背离本发明的精神和范围。例如,上述一些步骤可以在顺序上是独立的,因此可以以与所描述的顺序不同的顺序执行。
要了解,上面的描述意图说明而不是限制本发明的范围,本发明的范围由所附权利要求的范围限定。例如,上述多个功能步骤可以以不同顺序执行而不实质影响整体处理。其他实施例在权利要求的范围内。
相关申请
本申请要求于2011年7月8日提交的美国申请序列号No.61/505,760的优先权,其内容通过引用全文合并于此。
Claims (42)
1.一种管理数据的存储的方法,包括:
对数据结构中存储的多个记录中的每个,基于所述记录的第一属性生成表示值的范围的标识符,其中所述第一属性通过时间标记表示,并且所述标识符定义时间的范围,并且其中,对特定记录生成标识符包括:
基于所述特定记录的所述第一属性的值与第一参考值之间的差来确定第一值;以及
基于所述第一值与第二参考值之间的关系,对所述特定记录确定表示值的范围的标识符,以及
在与数据结构相关联的索引中存储条目,每个条目指定对应记录在数据结构内的位置,该存储包括针对每个条目进行以下操作:
在所述条目中存储第一索引键,所述第一索引键对应于所述记录的所述标识符;以及
在所述条目中存储第二索引键,所述第二索引键基于所述记录中所存储的值,
其中,通过所述第一索引键和所述第二索引键两者来分类所述索引。
2.如权利要求1所述的管理数据的存储的方法,其中,所述第一参考值对应于来自预定时间点的时间标记,并且确定所述第一值包括:
确定将对应于所述时间标记的时间与所述预定时间点分开的时间单位的第一值。
3.如权利要求2所述的管理数据的存储的方法,其中,所述第二参考值对应于预定持续时间,并且确定所述标识符包括:
将所述第一值除以所述预定持续时间以提供表示所述标识符的商。
4.如权利要求1所述的管理数据的存储的方法,其中每个条目指定数据结构内与第一索引键和第二索引键相关联的第二记录的位置。
5.如权利要求4所述的管理数据的存储的方法,其中所述记录是第一记录,并且其中第一记录的第一属性和第二记录的第一属性每个通过不同时间标记来表示。
6.如权利要求4所述的管理数据的存储的方法,包括:
接收请求检索与第二索引键相关联并与第一时间和第二时间之间的时间相关联的记录的查询。
7.如权利要求6所述的管理数据的存储的方法,包括:
对于第一时间和第二时间生成各自的标识符。
8.如权利要求7所述的管理数据的存储的方法,其中生成各自的标识符包括:
确定将第一时间与第二预定时间点分开的时间单位的第二值;以及
确定将第二时间与第二预定时间点分开的时间单位的第三值。
9.如权利要求8所述的管理数据的存储的方法,其中生成各自的标识符包括:
将第二值除以预定持续时间以提供表示第一时间的数字范围的商;以及
将第三值除以预定持续时间以提供表示第二时间的数字范围的商。
10.如权利要求9所述的管理数据的存储的方法,包括:
标识索引内包括第二索引键并包括第一索引键的一个或更多条目,所述第一索引键对应于第一时间的标识符或第二时间的标识符、或在第一时间和第二时间的各自的标识符之间。
11.如权利要求1所述的管理数据的存储的方法,其中在所述索引中首先通过所述第一索引键来分类所述条目。
12.如权利要求1所述的管理数据的存储的方法,其中在所述索引中首先通过所述第二索引键来分类所述条目。
13.一种管理数据的存储的计算系统,包括:
至少一个处理器,配置为:
对数据结构中存储的多个记录中的每个,基于所述记录的第一属性生成表示值的范围的标识符,其中所述第一属性通过时间标记表示,并且所述标识符定义时间的范围,并且其中,对特定记录生成标识符包括:
基于所述特定记录的所述第一属性的值与第一参考值之间的差来确定第一值;以及
基于所述第一值与第二参考值之间的关系,对所述特定记录确定表示值的范围的标识符,以及
在与数据结构相关联的索引中存储条目,每个条目指定对应记录在数据结构内的位置,该存储包括针对每个条目进行以下操作:
在所述条目中存储第一索引键,所述第一索引键对应于所述记录的所述标识符;以及
在所述条目中存储第二索引键,所述第二索引键基于所述记录中所存储的值,
其中,通过所述第一索引键和所述第二索引键两者来分类所述索引。
14.如权利要求13所述的管理数据的存储的计算系统,其中,所述第一参考值对应于来自预定时间点的时间标记,并且确定所述第一值包括:确定将对应于所述时间标记的时间与所述预定时间点分开的时间单位的第一值。
15.如权利要求14所述的管理数据的存储的计算系统,其中,所述第二参考值对应于预定持续时间,并且确定所述标识符包括:将所述第一值除以所述预定持续时间以提供表示所述标识符的商。
16.如权利要求13所述的管理数据的存储的计算系统,其中每个条目指定数据结构内与第一索引键和第二索引键相关联的第二记录的位置。
17.如权利要求16所述的管理数据的存储的计算系统,其中所述记录是第一记录,并且其中第一记录的第一属性和第二记录的第一属性每个通过不同时间标记来表示。
18.如权利要求16所述的管理数据的存储的计算系统,其中所述至少一个处理器被配置为:
接收请求检索与第二索引键相关联并与第一时间和第二时间之间的时间相关联的记录的查询。
19.如权利要求18所述的管理数据的存储的计算系统,其中所述至少一个处理器被配置为:
对于第一时间和第二时间生成各自的标识符。
20.如权利要求19所述的管理数据的存储的计算系统,其中所述至少一个处理器被配置为:
标识索引内包括第二索引键并包括第一索引键的一个或更多条目,所述第一索引键对应于第一时间的标识符或第二时间的标识符、或在第一时间和第二时间的各自的标识符之间。
21.如权利要求13所述的管理数据的存储的计算系统,其中在所述索引中首先通过所述第一索引键来分类所述条目。
22.如权利要求13所述的管理数据的存储的计算系统,其中在所述索引中首先通过所述第二索引键来分类所述条目。
23.一种管理数据的存储的计算系统,包括:
用于对一个或更多记录编索引的装置,所述编索引包括:
对数据结构中存储的多个记录中的每个,基于所述记录的第一属性生成表示值的范围的标识符,其中所述第一属性通过时间标记表示,并且所述标识符定义时间的范围,并且其中,对特定记录生成标识符包括:
基于所述特定记录的所述第一属性的值与第一参考值之间的差来确定第一值;以及
基于所述第一值与第二参考值之间的关系,对所述特定记录确定表示值的范围的标识符,以及
在与数据结构相关联的索引中存储条目,每个条目指定对应记录在数据结构内的位置,该存储包括针对每个条目进行以下操作:
在所述条目中存储第一索引键,所述第一索引键对应于所述记录的所述标识符;以及
在所述条目中存储第二索引键,所述第二索引键基于所述记录中所存储的值,
其中,通过所述第一索引键和所述第二索引键两者来分类所述索引。
24.如权利要求23所述的管理数据的存储的计算系统,其中,所述第一参考值对应于来自预定时间点的时间标记,并且确定所述第一值包括:
确定将对应于所述时间标记的时间与所述预定时间点分开的时间单位的第一值。
25.如权利要求24所述的管理数据的存储的计算系统,其中,所述第二参考值对应于预定持续时间,并且确定所述标识符包括:
将所述第一值除以所述预定持续时间以提供表示所述标识符的商。
26.如权利要求23所述的管理数据的存储的计算系统,其中每个条目指定数据结构内与第一索引键和第二索引键相关联的第二记录的位置。
27.如权利要求26所述的管理数据的存储的计算系统,其中所述记录是第一记录,并且其中第一记录的第一属性和第二记录的第一属性每个通过不同时间标记来表示。
28.如权利要求26所述的管理数据的存储的计算系统,所述编索引包括:
接收请求检索与第二索引键相关联并与第一时间和第二时间之间的时间相关联的记录的查询。
29.如权利要求26所述的管理数据的存储的计算系统,所述编索引包括:
对于第一时间和第二时间生成各自的标识符。
30.如权利要求29所述的管理数据的存储的计算系统,所述编索引包括:
标识索引内包括第二索引键并包括第一索引键的一个或更多条目,所述第一索引键对应于第一时间的标识符或第二时间的标识符、或在第一时间和第二时间的各自的标识符之间。
31.如权利要求23所述的管理数据的存储的计算系统,其中在所述索引中首先通过所述第一索引键来分类所述条目。
32.如权利要求23所述的管理数据的存储的计算系统,其中在所述索引中首先通过所述第二索引键来分类所述条目。
33.一种计算机可读存储介质,存储包括用于使得计算系统执行以下步骤的指令的计算机程序:
对数据结构中存储的多个记录中的每个,基于所述记录的第一属性生成表示值的范围的标识符,其中所述第一属性通过时间标记表示,并且所述标识符定义时间的范围,并且其中,对特定记录生成标识符包括:
基于所述特定记录的所述第一属性的值与第一参考值之间的差来确定第一值;以及
基于所述第一值与第二参考值之间的关系,对所述特定记录确定表示值的范围的标识符,以及
在与数据结构相关联的索引中存储条目,每个条目指定对应记录在数据结构内的位置,该存储包括针对每个条目进行以下操作:
在所述条目中存储第一索引键,所述第一索引键对应于所述记录的所述标识符;以及
在所述条目中存储第二索引键,所述第二索引键基于所述记录中所存储的值,
其中,通过所述第一索引键和所述第二索引键两者来分类所述索引。
34.如权利要求33所述的计算机可读存储介质,其中,所述第一参考值对应于来自预定时间点的时间标记,并且确定所述第一值包括:确定将对应于所述时间标记的时间与所述预定时间点分开的时间单位的第一值。
35.如权利要求34所述的计算机可读存储介质,其中,所述第二参考值对应于预定持续时间,并且确定所述标识符包括:将所述第一值除以所述预定持续时间以提供表示所述标识符的商。
36.如权利要求33所述的计算机可读存储介质,其中每个条目指定数据结构内与第一索引键和第二索引键相关联的第二记录的位置。
37.如权利要求36所述的计算机可读存储介质,其中所述记录是第一记录,并且其中第一记录的第一属性和第二记录的第一属性每个通过不同时间标记来表示。
38.如权利要求36所述的计算机可读存储介质,包括用于使得计算系统执行以下步骤的指令:
接收请求检索与第二索引键相关联并与第一时间和第二时间之间的时间相关联的记录的查询。
39.如权利要求38所述的计算机可读存储介质,包括用于使得计算系统执行以下步骤的指令:
对于第一时间和第二时间生成各自的标识符。
40.如权利要求39所述的计算机可读存储介质,包括用于使得计算系统执行以下步骤的指令:
标识索引内包括第二索引键并包括第一索引键的一个或更多条目,所述第一索引键对应于第一时间的标识符或第二时间的标识符、或在第一时间和第二时间的各自的标识符之间。
41.如权利要求33所述的计算机可读存储介质,其中在所述索引中首先通过所述第一索引键来分类所述条目。
42.如权利要求33所述的计算机可读存储介质,其中在所述索引中首先通过所述第二索引键来分类所述条目。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201161505760P | 2011-07-08 | 2011-07-08 | |
US61/505,760 | 2011-07-08 | ||
PCT/US2012/045759 WO2013009622A1 (en) | 2011-07-08 | 2012-07-06 | Managing storage of data for range-based searching |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103733195A CN103733195A (zh) | 2014-04-16 |
CN103733195B true CN103733195B (zh) | 2018-06-29 |
Family
ID=46583013
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280033912.8A Active CN103733195B (zh) | 2011-07-08 | 2012-07-06 | 管理用于基于范围的搜索的数据的存储 |
Country Status (9)
Country | Link |
---|---|
US (2) | US20130013605A1 (zh) |
EP (1) | EP2729884B1 (zh) |
JP (1) | JP6088506B2 (zh) |
KR (1) | KR102005831B1 (zh) |
CN (1) | CN103733195B (zh) |
AU (1) | AU2012282870B2 (zh) |
CA (1) | CA2841084C (zh) |
SG (1) | SG10201608435SA (zh) |
WO (1) | WO2013009622A1 (zh) |
Families Citing this family (44)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7885932B2 (en) | 2006-11-01 | 2011-02-08 | Ab Initio Technology Llc | Managing storage of individually accessible data units |
CN102859517B (zh) * | 2010-05-14 | 2016-07-06 | 株式会社日立制作所 | 时序数据管理装置、系统以及方法 |
US10671585B2 (en) * | 2012-01-31 | 2020-06-02 | Pure Storage, Inc. | Storing indexed data to a dispersed storage network |
WO2014096796A1 (en) * | 2012-12-20 | 2014-06-26 | Bae Systems Plc | Searchable data archive |
US20140236670A1 (en) * | 2013-02-21 | 2014-08-21 | Bank Of America Corporation | Data Communication and Analytics Platform |
US10097315B2 (en) * | 2013-04-19 | 2018-10-09 | Qualcomm Incorporated | Group scheduling and acknowledgement for wireless transmission |
US9710792B2 (en) * | 2013-11-12 | 2017-07-18 | International Business Machines Corporation | Retrospective management of previously sent electronic messages |
US10108649B2 (en) * | 2014-02-25 | 2018-10-23 | Internatonal Business Machines Corporation | Early exit from table scans of loosely ordered and/or grouped relations using nearly ordered maps |
CN105205062B (zh) * | 2014-06-13 | 2019-07-12 | 腾讯科技(北京)有限公司 | 数据存储方法、数据读取方法和装置 |
US9258117B1 (en) | 2014-06-26 | 2016-02-09 | Amazon Technologies, Inc. | Mutual authentication with symmetric secrets and signatures |
CN105335857A (zh) * | 2014-08-08 | 2016-02-17 | 国家电网公司 | 数据查找方法及装置 |
US10142301B1 (en) * | 2014-09-17 | 2018-11-27 | Amazon Technologies, Inc. | Encrypted data delivery without intervening decryption |
CN104574222A (zh) * | 2015-01-30 | 2015-04-29 | 国家电网公司 | 一种存储分布式光伏电站运行数据的方法 |
US10169395B2 (en) * | 2015-02-12 | 2019-01-01 | International Business Machines Corporation | Database identifier generation in transaction processing systems |
US9928281B2 (en) * | 2015-03-20 | 2018-03-27 | International Business Machines Corporation | Lightweight table comparison |
JP6241449B2 (ja) * | 2015-05-21 | 2017-12-06 | 横河電機株式会社 | データ管理システム及びデータ管理方法 |
WO2016195565A1 (en) | 2015-05-29 | 2016-12-08 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and apparatus for client side encoding in a data processing system |
US10122689B2 (en) | 2015-06-16 | 2018-11-06 | Amazon Technologies, Inc. | Load balancing with handshake offload |
US10122692B2 (en) | 2015-06-16 | 2018-11-06 | Amazon Technologies, Inc. | Handshake offload |
US20170147393A1 (en) * | 2015-11-20 | 2017-05-25 | Sap Se | Cache-efficient system for two-phase processing |
US10210236B2 (en) * | 2015-11-23 | 2019-02-19 | Ab Initio Technology Llc | Storing and retrieving data of a data cube |
KR101656750B1 (ko) | 2016-02-26 | 2016-09-23 | 주식회사 아미크 | 인덱스정보를 생성하는 데이터베이스의 아카이빙 방법 및 장치, 인덱스정보를 포함하는 아카이빙된 데이터베이스의 검색 방법 및 장치 |
US20170308561A1 (en) * | 2016-04-21 | 2017-10-26 | Linkedin Corporation | Indexing and sequentially storing variable-length data to facilitate reverse reading |
US10437780B2 (en) * | 2016-07-14 | 2019-10-08 | Snowflake Inc. | Data pruning based on metadata |
US10936559B1 (en) * | 2016-09-28 | 2021-03-02 | Amazon Technologies, Inc. | Strongly-consistent secondary index for a distributed data set |
JP6781373B2 (ja) * | 2016-10-05 | 2020-11-04 | 富士通株式会社 | 検索プログラム、検索方法、および検索装置 |
JP6717153B2 (ja) | 2016-10-06 | 2020-07-01 | 富士通株式会社 | インデックス生成プログラム、インデックス生成装置、インデックス生成方法、検索プログラム、検索装置および検索方法 |
US10180891B2 (en) | 2016-11-02 | 2019-01-15 | Sap Se | Monitoring processes running on a platform as a service architecture |
US10268566B2 (en) | 2016-11-04 | 2019-04-23 | Sap Se | Debugging in a private cloud environment |
CN108268503B (zh) * | 2016-12-30 | 2020-06-16 | 华为技术有限公司 | 一种数据库的存储、查询方法及装置 |
US20200387498A1 (en) * | 2017-04-24 | 2020-12-10 | Telefonaktiebolaget Lm Ericsson (Publ) | Methods and systems for multi-version updating of data stored in a data storage system |
US11940990B1 (en) | 2017-06-16 | 2024-03-26 | Amazon Technologies, Inc. | Global clock values for consistent queries to replicated data |
CN110019932A (zh) * | 2017-10-31 | 2019-07-16 | 北京国双科技有限公司 | 数据处理的方法及装置 |
CN108829880B (zh) * | 2018-06-27 | 2020-12-01 | 烽火通信科技股份有限公司 | 一种光网络终端设备的配置管理的方法 |
CN109345264B (zh) * | 2018-08-21 | 2021-08-24 | 太原理工大学 | 一种基于区块链的酒类产品溯源防伪系统和方法 |
CN109783321B (zh) * | 2019-01-24 | 2022-09-23 | 深圳市景阳信息技术有限公司 | 监控数据管理方法、装置、终端设备 |
US11188511B2 (en) * | 2019-06-04 | 2021-11-30 | Western Digital Technologies, Inc. | Offloading file-indexing to memory card firmware |
KR102529704B1 (ko) * | 2020-08-27 | 2023-05-09 | 주식회사 아미크 | 인 메모리 데이터베이스의 데이터를 처리하는 방법 및 장치 |
US11880385B1 (en) | 2020-09-29 | 2024-01-23 | Amazon Technologies, Inc. | Ordering updates to secondary indexes using conditional operations |
US11250022B1 (en) | 2020-09-29 | 2022-02-15 | Amazon Technologies, Inc. | Offline index builds for database tables |
CN112965724A (zh) * | 2021-03-22 | 2021-06-15 | 中国信息安全测评中心 | 一种固件的装载基址范围的确定方法及系统 |
US11914587B2 (en) * | 2021-10-13 | 2024-02-27 | Western Digital Technologies, Inc. | Systems and methods for key-based indexing in storage devices |
US11892992B2 (en) * | 2022-01-31 | 2024-02-06 | Salesforce, Inc. | Unique identification management |
CN116561073B (zh) * | 2023-04-14 | 2023-12-19 | 云和恩墨(北京)信息技术有限公司 | 基于数据库的文件合并方法及系统、设备、存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1292901A (zh) * | 1998-01-22 | 2001-04-25 | Ori软件开发有限公司 | 数据库设备 |
CN101553813A (zh) * | 2006-11-01 | 2009-10-07 | 起元技术有限责任公司 | 管理可单独访问的数据单元的存储器 |
CN101937448A (zh) * | 2009-06-28 | 2011-01-05 | Sap股份公司 | 用于主存储器列存储装置的基于字典的保持顺序的串压缩 |
CN102027457A (zh) * | 2008-05-14 | 2011-04-20 | 起元技术有限责任公司 | 单独可访问数据单元的管理存储 |
Family Cites Families (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4775932A (en) | 1984-07-31 | 1988-10-04 | Texas Instruments Incorporated | Computer memory system with parallel garbage collection independent from an associated user processor |
JPH0752450B2 (ja) | 1986-08-01 | 1995-06-05 | 株式会社日立製作所 | 辞書デ−タ検索装置 |
JPH0823865B2 (ja) | 1987-08-28 | 1996-03-06 | 株式会社日立製作所 | デ−タ検索方法および装置 |
JPH05257774A (ja) | 1992-03-10 | 1993-10-08 | Fujitsu Ltd | インデックス・レコード番号を圧縮・格納した情報検索装置 |
US5444853A (en) | 1992-03-31 | 1995-08-22 | Seiko Epson Corporation | System and method for transferring data between a plurality of virtual FIFO's and a peripheral via a hardware FIFO and selectively updating control information associated with the virtual FIFO's |
JPH07160557A (ja) | 1993-12-13 | 1995-06-23 | Hitachi Ltd | データベースアクセス処理方法 |
JPH07287716A (ja) | 1994-02-22 | 1995-10-31 | Ricoh Co Ltd | 辞書検索装置 |
JP3013221B2 (ja) | 1994-07-11 | 2000-02-28 | 日本製粉マネジメントサービス株式会社 | 製麺用捏ね水の連続製造装置並びに連続製造の捏ね水を用いた製麺方法 |
JP3515810B2 (ja) | 1994-08-16 | 2004-04-05 | 富士通株式会社 | ソート処理方法および装置 |
JPH08255170A (ja) * | 1995-03-15 | 1996-10-01 | Oki Electric Ind Co Ltd | ソート付き検索処理装置 |
US5737593A (en) | 1995-06-02 | 1998-04-07 | International Business Machines Corporation | System and method for defining shapes with which to mine time sequences in computerized databases |
US6278992B1 (en) | 1997-03-19 | 2001-08-21 | John Andrew Curtis | Search engine using indexing method for storing and retrieving data |
US6389534B1 (en) | 1997-06-30 | 2002-05-14 | Taher Elgamal | Cryptographic policy filters and policy control method and apparatus |
JPH1196170A (ja) | 1997-09-17 | 1999-04-09 | Toshiba Corp | データベース作成方法および情報検索方法および情報検索装置および記録媒体 |
JP3692764B2 (ja) | 1998-02-25 | 2005-09-07 | 株式会社日立製作所 | 構造化文書登録方法、検索方法、およびそれに用いられる可搬型媒体 |
CA2244626A1 (en) | 1998-07-31 | 2000-01-31 | Kom Inc. | A hardware and software system |
US6195024B1 (en) | 1998-12-11 | 2001-02-27 | Realtime Data, Llc | Content independent data compression method and system |
AU2909401A (en) | 1999-12-20 | 2001-07-03 | Planetid, Inc. | Information exchange engine providing a critical infrastructure layer and methods of use thereof |
US6658405B1 (en) | 2000-01-06 | 2003-12-02 | Oracle International Corporation | Indexing key ranges |
JP2001357048A (ja) * | 2000-06-13 | 2001-12-26 | Hitachi Ltd | ブロックソート圧縮データの検索方法、および検索に適したブロックソート圧縮法の符号化方法 |
GB0015233D0 (en) | 2000-06-21 | 2000-08-16 | Canon Kk | Indexing method and apparatus |
FI20010110A0 (fi) | 2001-01-18 | 2001-01-18 | Stonesoft Oy | Pakettien lajittelu gateway-verkkoelementissä |
WO2003041340A1 (en) | 2001-11-09 | 2003-05-15 | British Telecommunications Public Limited Company | Data integration |
US6925463B2 (en) | 2002-04-15 | 2005-08-02 | International Business Machines Corporation | Method and system for query processing by combining indexes of multilevel granularity or composition |
US6970866B1 (en) | 2002-05-31 | 2005-11-29 | Adobe Systems Incorporated | Filter file system |
DE10228128B4 (de) | 2002-06-24 | 2004-09-23 | Infineon Technologies Ag | Verfahren zur Speicherung von Daten, Verfahren zum Lesen von Daten, Vorrichtung zur Komprimierung von Daten und Vorrichtung zur Dekomprimierung von Daten |
US7178134B2 (en) * | 2003-04-24 | 2007-02-13 | International Business Machines Corporation | Method and apparatus for resolving memory allocation trace data in a computer system |
US8239343B2 (en) | 2003-05-23 | 2012-08-07 | Bmc Software, Inc. | Database reorganization technique |
US7310721B2 (en) | 2003-10-30 | 2007-12-18 | Microsoft Corporation | Shadow page tables for address translation control |
JP3957220B2 (ja) * | 2003-11-10 | 2007-08-15 | 株式会社イース | 集計システム |
US20060184563A1 (en) * | 2005-02-14 | 2006-08-17 | Potter David H | Method and apparatus for temporal database |
JP4782490B2 (ja) | 2005-06-29 | 2011-09-28 | 富士通株式会社 | データ集合分割プログラム、データ集合分割装置、およびデータ集合分割方法 |
US20080015945A1 (en) | 2006-07-12 | 2008-01-17 | Michael Goldstein | System and Method for Processing Subscriptions and Periodically-Billed Services |
CN101641674B (zh) * | 2006-10-05 | 2012-10-10 | 斯普兰克公司 | 时间序列搜索引擎 |
US7885932B2 (en) | 2006-11-01 | 2011-02-08 | Ab Initio Technology Llc | Managing storage of individually accessible data units |
KR100902601B1 (ko) * | 2007-05-17 | 2009-06-12 | 한양네비콤주식회사 | 무선 시각송수신시스템 및 무선 시각동기방법 |
US8189912B2 (en) * | 2007-11-24 | 2012-05-29 | International Business Machines Corporation | Efficient histogram storage |
JP4670885B2 (ja) * | 2008-03-28 | 2011-04-13 | ブラザー工業株式会社 | 時系列データ管理装置及びプログラム |
-
2012
- 2012-07-05 US US13/542,151 patent/US20130013605A1/en not_active Abandoned
- 2012-07-06 AU AU2012282870A patent/AU2012282870B2/en active Active
- 2012-07-06 SG SG10201608435SA patent/SG10201608435SA/en unknown
- 2012-07-06 WO PCT/US2012/045759 patent/WO2013009622A1/en active Application Filing
- 2012-07-06 CA CA2841084A patent/CA2841084C/en active Active
- 2012-07-06 CN CN201280033912.8A patent/CN103733195B/zh active Active
- 2012-07-06 US US13/543,339 patent/US9811570B2/en active Active
- 2012-07-06 JP JP2014519067A patent/JP6088506B2/ja active Active
- 2012-07-06 EP EP12740430.9A patent/EP2729884B1/en active Active
- 2012-07-06 KR KR1020147002955A patent/KR102005831B1/ko active IP Right Grant
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1292901A (zh) * | 1998-01-22 | 2001-04-25 | Ori软件开发有限公司 | 数据库设备 |
CN101553813A (zh) * | 2006-11-01 | 2009-10-07 | 起元技术有限责任公司 | 管理可单独访问的数据单元的存储器 |
CN102027457A (zh) * | 2008-05-14 | 2011-04-20 | 起元技术有限责任公司 | 单独可访问数据单元的管理存储 |
CN101937448A (zh) * | 2009-06-28 | 2011-01-05 | Sap股份公司 | 用于主存储器列存储装置的基于字典的保持顺序的串压缩 |
Also Published As
Publication number | Publication date |
---|---|
WO2013009622A1 (en) | 2013-01-17 |
AU2012282870B2 (en) | 2017-08-31 |
AU2012282870A1 (en) | 2014-01-09 |
JP2014524090A (ja) | 2014-09-18 |
US20130013606A1 (en) | 2013-01-10 |
CN103733195A (zh) | 2014-04-16 |
US20130013605A1 (en) | 2013-01-10 |
JP6088506B2 (ja) | 2017-03-01 |
EP2729884B1 (en) | 2019-09-04 |
SG10201608435SA (en) | 2016-12-29 |
EP2729884A1 (en) | 2014-05-14 |
KR102005831B1 (ko) | 2019-07-31 |
US9811570B2 (en) | 2017-11-07 |
CA2841084C (en) | 2019-11-05 |
CA2841084A1 (en) | 2013-01-17 |
KR20140058542A (ko) | 2014-05-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103733195B (zh) | 管理用于基于范围的搜索的数据的存储 | |
CN101553813B (zh) | 管理可单独访问的数据单元的存储器 | |
US20180011861A1 (en) | Managing storage of individually accessible data units | |
CN102893265B (zh) | 管理可独立访问的数据单元的存储 | |
AU2015258326B2 (en) | Managing storage of individually accessible data units |
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 |