CN105960637B - 基于块的索引技术 - Google Patents
基于块的索引技术 Download PDFInfo
- Publication number
- CN105960637B CN105960637B CN201380080603.0A CN201380080603A CN105960637B CN 105960637 B CN105960637 B CN 105960637B CN 201380080603 A CN201380080603 A CN 201380080603A CN 105960637 B CN105960637 B CN 105960637B
- Authority
- CN
- China
- Prior art keywords
- data
- index
- block
- attribute
- chunk
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2237—Vectors, bitmaps or matrices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
- G06F12/0884—Parallel mode, e.g. in parallel with main memory or CPU
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/1727—Details of free space management performed by the file system
-
- 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/2455—Query execution
- G06F16/24553—Query execution of query operations
- G06F16/24554—Unary operations; Data partitioning operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/22—Employing cache memory using specific memory technology
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Advance Control (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Executing Machine-Instructions (AREA)
Abstract
描述了基于块的索引技术。例如,在一个实施例中,装置可以包括多核处理器元件、由多核处理器元件执行以生成多个块‑属性对的分配组件,每个块‑属性对与属性值和多个数据块中的一个数据块相对应、以及由多核处理器元件执行以基于多个块‑属性对而生成多个数据块的索引块的索引组件,该索引组件使用多个索引实例来执行多个块‑属性对的并行索引。描述并要求保护了其它实施例。
Description
技术领域
在本文中所描述的实施例概括地涉及计算机实现的数据存储的实现和管理。
背景技术
传统上可以用于实现大数据集的存储和维护的一种类型的数据存储是基于块的数据存储。在基于块的数据存储中,诸如键-值记录之类的数据被存储在针对从存储设备中顺序存取而优化的数据块中。为了使对基于块的数据存储的查询能够执行,可以构建与各种属性、值或者信息存储中的其他信息相关联的索引。到目前为止,针对基于块的数据存储的索引技术的发展已经主要专注于使针对完整、静态的数据块的集合的查询速度最大化。因此,传统技术通常把索引视为在完整的数据集的导入之后所执行的一次性过程。这样的传统技术通常不优先考虑索引速度和/或效率,而且可能不支持动态数据集的高效递增索引。
在宽泛的多种真实世界的应用中,作为可以是用于对不断变化的数据集递增地进行索引的能力,索引速度和/或效率可以是重要的考虑。一些动态的基于块的数据存储可以不断地接收并并入新的记录,在一些情况下每秒可达数百万甚至数十亿次。正因为如此,可以期望针对基于块的数据存储的高效递增索引技术。
附图说明
图1示出了装置的一个实施例和第一系统的一个实施例。
图2示出了索引块的一个实施例。
图3示出了并行索引架构的一个实施例。
图4示出了逻辑流程的一个实施例。
图5示出了存储介质的一个实施例。
图6示出了第二系统的一个实施例。
图7示出了第三系统的一个实施例。
图8示出了设备的一个实施例。
具体实施方式
各种实施例可以概括地指向针对基于块的索引的技术。例如,在一个实施例中,装置可以包括多核处理器元件、用于由多核处理器元件执行以生成多个块-属性对的分配组件(每个块-属性对都与属性值和多个数据块中的一个数据块相对应)、以及用于由多核处理器元件执行以基于多个块-属性对而生成针对多个数据块的索引块的索引组件,该索引组件使用多个索引实例来执行多个块-属性对的并行索引。可以描述并要求保护其他实施例。
各种实施例可以包括一个或多个元件。元件可以包括被设置以执行某些操作的任何结构。每个元件都可以根据针对设计参数或性能约束的给定的集合所需要的而被实现为硬件、软件及其任何组合。尽管作为示例,实施例可以被描述为在某一拓扑结构中具有有限数量的元件,但是实施例可以根据针对给定的实现所需要的而在替代的拓扑结构中包括更多或更少的元件。值得注意的是,任何对“一个实施例”或“实施例”的引用意指结合该实施例所描述的特定的特征、结构、或特性被包括在至少一个实施例中。在说明书中的各种地方出现的短语“在一个实施例中”、“在一些实施例中”、以及“在各种实施例中”非必须全都指的是相同的实施例。
图1示出了装置100的框图。装置100包括可以实现针对基于块的数据存储的经改进的索引技术的装置的示例。更加特别地,在各种实施例中,装置100可以用于实现基于块的索引技术,根据该技术,多个处理核心并行地运行以高效地构建针对基于块的数据存储的索引块。如在图1中所示,装置100包括多个元件,所述多个元件包括处理器元件102、存储器单元104、以及索引管理模块106。然而,实施例不限于在该图中所示出的元件的类型、数量、或设置。
在一些实施例中,装置100可以包括处理器元件102。处理器元件102可以使用能够实现任务级并行性的任何处理器或逻辑设备而被实现。在各种这样的实施例中,处理器元件102可以包括多核处理器芯片或者其中包括多个处理核心的其它封装。在一些实施例中,处理器元件102可以包括高速缓存103。在各种实施例中,高速缓存103可以包括用于存储由处理器元件102生成和/或用于由处理器元件102处理的数据的易失性存储器。在处理器元件102包括多个处理核心的一些实施例中,高速缓存103中的一些或全部可以由多个处理核心中的每个进行访问。在各种其它实施中,高速缓存103的每个部分都可以仅由多个处理核心中的特定的一个来访问。实施例不限于该上下文中。
在一些实施例中,装置100可以包括或被设置以通信地与存储器单元104耦合。可以使用能够存储数据的任何机器可读或计算机可读的介质来实现存储器单元104,所述机器可读或计算机可读的介质可以包括易失性存储器和非易失性存储器两者。例如,存储器单元104可以包括只读存储器(ROM)、随机存取存储器(RAM)、动态RAM(DRAM)、双数据率DRAM(DDRAM)、同步DRAM(SDRAM)、静态RAM(SRAM)、可编程ROM(EEPROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪速存储器、例如铁电聚合物存储器的氧化物存储器、奥氏存储器、相变或铁电存储器、硅氧化氮氧化硅(SONOS)存储器、磁或光卡、或者适用于存储信息的任何其它类型的介质。值得注意的是,存储器单元104的一些部分或全部可以与处理器元件102包括在相同的集成电路上,或者可替代地,存储器单元104的一些部分或者全部可以被设置在集成电路或者在处理器元件102的集成电路外部的其它介质上,例如,硬盘驱动器上。尽管存储器单元104被包括在图1的装置100内,但是在一些实施例中存储器单元104可以在装置100外部。实施例不限于该上下文中。
在各种实施例中,装置100可以包括索引管理模块106。索引管理模块106可以包括用于执行针对基于块的数据存储152的索引操作的逻辑、电路、和/或指令。在一些实施例中,索引管理模块106可以用于实现一个或多个基于块的索引技术。在各种实施例中,索引管理模块106可以用于以利用处理器元件102的并行处理能力的方式来实现一个或多个这样的技术。实施例不限于该上下文中。
图1还示出了系统140的框图。系统140可以包括前述的装置100的元件中的任何一个。系统140还可以包括一个或多个额外的组件。例如在一些实施例中,系统140可以包括存储142。存储142可以被实现为一个或多个非易失性存储设备和/或易失性存储设备。例如在一些实施例中,存储142可以包括一个或多个硬盘。可以被包括在存储142中的存储设备的额外的示例可以包括而不限于:例如数字视频盘(DVD)的光存储介质、例如软盘的可移动磁存储介质、磁带存储介质、闪速存储器、和/或磁-光存储介质。可以被包括在存储142中的存储设备的进一步的示例可以包括但不限于:易失性存储器设备,例如,RAM、DRAM、SRAM、和/或SDRAM、和/或在上文中关于存储器单元104所提及的其它示例中的任何一个。在一些实施例中,系统140可以包括服务器,并且存储142可以包括该服务器的主存储器。实施例不限于该上下文中。
在各种实施例中,系统140可以包括射频(RF)收发机144。RF收发机144可以包括能够使用各种合适的无线通信技术来发送和接收信号的一个或多个无线电设备。这样的技术可以涉及跨一个或多个无线网络的通信。示例性无线网络包括(但不限于)无线局域网(WLAN)、无线个域网(WPAN)、无线城域网(WMAN)、蜂窝网络、以及卫星网络。在跨这样的网络进行通信时,RF收发机144可以根据任何版本中的一个或多个适用标准来操作。实施例不限于该上下文中。
在一些实施例中,系统140可以包括一个或多个RF天线157。任何特定的RF天线157的示例可以包括内置天线、全方向天线、单极天线、双极天线、端馈天线、圆极化天线、微带天线、分集天线、双天线、三频天线、四频天线等。实施例不限于这些示例。
在各种实施例中,系统140可以包括显示器145。显示器145可以包括能够显示从处理器元件102中所接收到的信息的任何显示设备。显示器145的示例可以包括电视、监视器、投影仪、以及计算机屏幕。例如在一个实施例中,显示器145可以由液晶显示器(LCD)、发光二极管(LED)、或其它类型的合适的视觉接口来实现。例如,显示器145可以包括触摸显示屏(“触摸屏”)。在各种实施例中,显示器145可以包括一个或多个薄膜晶体管(TFT)LCD,该薄膜晶体管LCD包括嵌入式晶体管。实施例不限于该上下文中。
在一般的操作中,装置100和/或系统140可以用于执行基于块的数据存储152的索引。更加具体而言,在各种实施例中,装置100和/或系统140可以用于实现针对基于块的数据存储152的基于块的索引技术。在一些实施例中,这样的技术可以结合基于块的数据存储152的高效递增索引来利用处理器元件102的并行处理能力。实施例不限于该上下文中。
在各种实施例中,装置100和/或系统140可以与共同地容纳基于块的数据存储152的一个或多个服务器150进行通信。例如在一些实施例中,基于块的数据存储152可以包括在多个数据服务器150上所容纳的分布式数据存储,并且装置100和/或系统140可以经由一个或多个有线和/或无线网络连接与多个数据服务器150进行通信。在各种实施例中,基于块的数据存储152可以包括多个数据块154,其中每个数据块154都可以包括多个值、属性、和/或其它信息元素。实施例不限于该上下文中。
在一些实施例中,装置100和/或系统140可以用于实现基于块的索引技术,根据该技术可以生成一个或多个索引块120。在各种实施例中,每个索引块120都可以包括针对一个或多个数据块154的索引信息。在一些实施例中,每个索引块120都可以便于对其相关联的数据块154的查询。实施例不限于该上下文中。
在各种实施例中,索引管理模块106可以包括追踪组件108。追踪组件108可以包括用于保存关于基于块的数据存储152的一个或多个类型的描述性信息的逻辑、电路、和/或指令。在一些实施例中,追踪组件108可以用于保存数据块信息110。数据块信息110可以包括标识和/或描述基于块的数据存储152中的数据块154的信息。例如在各种实施例中,数据块信息110可以包括指示基于块的数据存储152中的每个数据块154的标识符的信息。在一些实施例中,每个数据块154可以根据针对数据块154所定义的序列而具有相关联的数据块号码,并且数据块信息110可以包括指示每个数据块154的数据块号码的信息。在各种实施例中,数据块154的标识符和/或数据块号码可以包括全局参数,使得每个标识符和/或数据块号码都是跨所有数据服务器150的所有数据块154唯一的。在一些实施例中,装置100和/或系统140每次接收数据块154以进行索引,追踪组件110都可以用于向数据块信息110中插入指示针对数据块154的标识符和/或数据块号码的条目。实施例不限于该上下文中。
在各种实施例中,追踪组件108可以用于保存属性值信息112。属性值信息112可以包括标识和/或描述各种属性值的信息,所述各种属性值可以被包括在一个或多个数据块154中和/或与一个或多个数据块154相关联。这样的属性值的示例可以包括但不限于:名字、年龄、性别、地址、电话号码、和/或位置。在一些实施例中,属性值信息112可以包括指示针对与基于块的数据存储152中的任何一个数据块154相关联的每个不同的属性值的标识符。在各种实施例中,每个不同的属性值都可以根据属性值的经限定的序列而具有相关联的属性值号码,并且属性值信息112可以包括指示针对每个不同的属性值的属性值号码的信息。在一些实施例中,属性值标识符和/或属性值号码可以包括全局参数,使得每个属性值标识符和/或属性值号码都是跨与所有数据服务器150的所有数据块154相关联的所有不同的属性值唯一的。在各种实施例中,装置100和/或系统140每次接收数据块154以进行索引,追踪组件108都可以用于确定数据块154是否包括任何还没有在属性值信息112内被呈现的属性值。在一些实施例中,当确定数据块154包括一个或多个还没有在属性值信息112内被呈现的属性值时,追踪组件108可以用于将一个或多个条目插入属性值信息112中,所述一个或多个条目指示针对那些一个或多个属性值的相应的标识符和/或属性值。实施例不限于该上下文中。
在各种实施例中,索引管理模块106可以包括分配组件114。分配组件114可以包括用于生成针对数据块154的块-属性对116的逻辑、电路、和/或指令。块-属性对116可以包括指示特定的属性值与特定的数据块154之间的关联的信息元素。在一些实施例中,每个块-属性对116都可以标识特定的数据块154以及与该数据块154相关联的属性值。在各种实施例中,每个块-属性对116都可以包括针对数据块154的数据块号码以及针对与该数据块154相关联的属性值的属性值号码。在一些实施例中,分配组件114可以用于使用数据块信息110和属性值信息112来生成块-属性对116。在各种实施例中,分配组件114可以用于在生成针对那些数据块154的块-属性对116之前将数据块号码分配至数据块154。例如在一些实施例中,分配组件114可以用于接收多个数据块154、将数据块号码分配至多个数据块154中的每个、并且生成针对多个数据块154的多个块-属性对116,并且多个块-属性对116中的每个都可以对应于属性值以及多个数据块154中的一个数据块。在各种实施例中,分配组件114可以用于建立多个分配实例,并且可以使用多个分配实例来执行多个块-属性对116的并行生成。在一些实施例中,分配组件114可以用于在处理器元件102的多个处理核心中的相应的一个上建立每个分配实例。实施例不限于该上下文中。
在各种实施例中,索引管理模块106可以包括索引组件118。索引组件118可以包括用于生成一个或多个索引块120的逻辑、电路、和/或指令。在一些实施例中,每个索引块120都可以包括针对相应的多个数据块154的索引信息。在各种实施例中,每个索引块120可以包括末尾属性值标识符(ID)122。末尾属性值ID 122可以包括标识在创建索引块120时被包括在属性值信息112中的最高的属性值号码的信息。在一些实施例中,每个索引块120都可以包括第一数据块ID 124。第一数据块ID 124可以包括标识在索引块120中所索引的第一数据块154的数据块号码的信息。在各种实施例中,每个索引块120都可以包括末尾数据块ID 126。末尾数据块ID126可以包括标识在索引块120中所索引的末尾数据块154的数据块号码的信息。实施例不限于该上下文。
在一些实施例中,每个索引块120都可以包括位图索引块(BIB),其包含描述了在该索引块120中所索引的多个数据块154的经分割的位图索引128。在各种实施例中,经分割的位图索引128可以包括针对多个属性值中的每个指示多个数据块154中的每个是否包括和/或是否关联于该属性值的信息。在一些实施例中,多个属性值可以由末尾属性值ID 122来定义。例如在各种实施例中,多个属性值可以包括属性值信息112中的包括小于或等于末尾属性值ID 122的属性值号码的每个属性值。在一些实施例中,多个数据块154可以由第一数据块ID 124和末尾数据块ID 126来定义。例如在各种实施例中,多个数据块154可以包括数据块信息110标识为具有在第一数据块ID 124和末尾数据块ID 126之间(包括第一数据块ID 124和末尾数据块ID 126)的数据块号码的每个数据块154。实施例不限于该上下文中。
在一些实施例中,经分割的位图索引128可以包括其中一个维度对应于多个数据块154而另一个维度对应于多个属性值的数据结构。例如在各种实施例中,经分割的位图索引128可以包括针对多个属性值中的每个的行,并且可以包括针对多个数据块154中的每个的列。在一些实施例中,经分割的位图索引128中的每个元素都可以对应于特定的属性值号码和特定的数据块号码。在各种这样的实施例中,每个元素都可以指示由其对应的数据块号码所标识的数据块154是否包括和/或关联于由其对应的属性值号码所标识的属性值。例如在一些实施例中,经分割的位图索引128中的每一行都可以定义属性值而每一列都可以定义数据块154,并且每个元素都可以包括指示由其列定义的数据块154是否包括和/或关联于由其行所定义的属性值的位。实施例不限于该示例。
在各种实施例中,分配组件114可以用于生成针对多个数据块154的多个块-属性对116,并且索引组件118可以用于使用该多个块-属性对116来生成针对多个数据块154的经分割的位图索引128。在一些实施例中,每个块-属性对116都可以指示特定的数据块154包括和/或关联于特定的属性值,并且索引组件118可以用于设置经分割的位图索引128的元素的值以反映该关系。在各种实施例中,索引组件118可以用于执行多个块-属性对116的并行索引。例如在一些实施例中,索引组件118可以用于建立多个索引实例,并且可以执行并行索引,根据该并行索引,使用多个索引实例将多个块-属性对116同时索引。在各种实施例中,索引组件118可以用于在处理元件102的多个处理核心的相应的一个上建立每个索引实例。实施例不限于该上下文中。
在一些实施例中,索引组件118可以用于使用多个索引队列130来执行并行索引。在各种实施例中,可以将多个索引队列包括在高速缓存103中。在一些实施例中,索引组件118可以用于针对其建立的每个索引实例来建立单独的索引队列130。由此,在各种实施例中,索引队列130的数量可以等于由索引组件118所使用的索引实例的数量。在一些实施例中,每个索引实例都可以用于仅仅处理被包括在其对应的索引队列130中的块-属性对116。在各种实施例中,索引组件118可以用于将每个块-属性对116置于多个索引队列130中的一个中。在一些实施例中,索引组件118可以用于基于被包括在块-属性对116中的属性值号码来将每个块-属性对116置于索引队列130中。
在各种实施例中,索引组件118可以用于基于映射功能来确定针对每个属性值号码的对应的索引队列130。在一些实施例中,对于每个属性值号码,映射功能可以指定单个对应的索引队列130,使得每个属性值号码映射至一个并且仅映射至一个索引队列130。在各种实施例中,映射功能可以包括执行模运算以及基于结果来分配索引队列130,其中模运算的每个可能的结果都对应于索引队列130中的相应的一个。例如,在一些实施例中,为了确定将特定的块-属性对116置于其中的索引队列130,索引组件118可以用于用该块-属性对116的属性值号码除以索引队列130的号码,并且将块-属性对116分配至对应于所得到的余数的索引队列130。实施例不限于该示例。
在各种实施例中,在正在进行的索引操作期间,每个索引实例都可以用于从其对应的索引队列130中取回块-属性对116,并且基于那些块-属性对116来更新经分割的位图索引128。在一些实施例中,由于每个属性值号码都映射至特定的索引队列130并且每个索引队列130都由特定的索引实例来处理,因此包括特定的属性值号码的每个块-属性对116都可以由同一索引实例来处理。在各种这样的实施例中,经分割的位图索引128中的每一行都可以对应于特定的属性值号码,并且每一行都可以因此由特定的索引实例来处理。与一些实施例相关联的一个优点可以是通过以将经分割的位图索引128中的每一行由特定的索引实例来处理的方式将块-属性对116映射至索引队列130,可以避免和/或降低索引实例之间的高速缓存行冲突和/或冗余的高速缓存操作,并且可以提高性能。其它优点可以关联于各种实施例,并且实施例不限于该上下文中。
在一些实施例中,每个时间索引组件118都生成索引块120,追踪组件108可以用于将索引块标识符和/或索引块号码分配至该索引块120。在各种实施例中,追踪组件108可以用于保存标识已经由索引组件118所生成的索引块120的索引块信息132。在一些实施例中,每个时间索引组件118都生成索引块120,追踪组件108可以用于向索引块信息132加入标识该索引块120并且包括针对该索引块120的索引块标识符以及索引块号码的条目。在各种实施例中,每个索引块标识符都可以包括唯一的索引块标识符,和/或每个索引块号码都可以包括唯一的索引块号码。实施例不限于该上下文中。
在各种实施例中,索引管理模块106可以包括重新排序组件134。重新排序组件134可以包括用于结合索引143中的索引块120的存储来对经分割的位图索引128进行重新排列的逻辑、电路、和/或指令。在一些实施例中,在任何特定的索引块120的生成期间,索引组件118可以用于在高速缓存103中存储针对该索引块120的经分割的位图索引128的所生成的部分。在各种实施例中,经分割的位图索引128的各种部分可以被存储在高速缓存103的各种非连续的存储器区域中,并且可以非必须按照顺序次序被存储。在一些实施例中,结合索引块120到索引143的移动,重新排序组件134可以用于对高速缓存103中的经分割的存储器位图索引128的部分进行重新排序,使得这些部分以顺序次序被存储在存储142的连续的存储器空间中。与各种实施例相关联的一个优点可以是,以该方式对经分割的位图索引128进行重新排序使能够高效查询索引143中的各种索引块120。其它优点可以与一些实施例相关联,并且实施例不限于该上下文中。
可以参考以下的示图和所附示例来进一步描述针对以上的实施例的操作。示图中的一些可以包括逻辑流程。尽管在本文中所呈现的这样的示图可以包括特定的逻辑流程,但可以理解的是,逻辑流程仅仅提供了怎样实现如在本文中所描述的一般的功能的示例。此外,除非另外指出,否则给定的逻辑流程不是必须要按照所呈现的顺序被执行。另外,给定的逻辑流程可以由硬件元件、由处理器所执行的软件元件、或其任何组合来实现。实施例不限于该上下文中。
图2示出了索引块200的一个实施例。索引块200包括可以由图1的装置100和/或系统140所生成的索引块的示例,例如索引块120。如在图2中所示,索引块200由索引块列表202中的条目所标识,索引块列表202可以包括图1的索引块信息132的示例。更加特别地,索引块200包括在索引块列表202中被标识为“索引块3”的索引块。索引块200包括指示其关联的索引块号码等于3的第一字段。索引块200还包括第二字段,该第二字段包括图1的末尾属性值ID 122的示例,并且指示与在索引块200中所反映的末尾属性值相关联的属性值号码等于4。如在可以包括图1的属性值信息112的示例的属性值列表204中所示,属性值号码4与对应于属性值ID“Atribute_Value1”的属性值相关联。
索引块200还包括第三字段,该第三字段包括图1的第一数据块ID 124的示例并且指示与在索引块200中所索引的第一数据块相关联的数据块号码等于1。如在可以包括图1的数据块信息110的示例的数据块列表206中所示,数据块号码1与对应于数据块ID“Server1_001”的数据块相关联。索引块200还包括第四字段,该第四字段包括图1的末尾数据块ID 126的示例,并且指示与在索引块200中所索引的末尾数据块相关联的数据块号码等于3。如在数据块列表206中所示,数据块号码3与对应于数据块ID“Server2_002”的数据块相关联。索引块200还包括经分割的位图索引,经分割的位图索引可以包括图1的经分割的位图索引128示例。实施例不限于这些示例。
图3示出了并行索引架构300的一个实施例。并行索引架构300包括可以由图1的装置100和/或系统140来实现的索引架构的示例。如在图3中所示,并行索引架构300包括分配实例302-1和302-2,例如可以由图1的分配组件114来建立。分配实例302-1和302-2两者都生成块-属性对并且将所生成的块-属性对分布在队列304-1、304-2和304-3中,所述队列可以包括图1的索引队列130的示例。在各种实施例中,分配实例302-1和302-2可以基于与这些块-属性对相关联的属性值号码而将这些块-属性对分布在队列304-1、304-2、和304-3中。例如,分配实例302-1和302-2可以基于对与这些块-属性对相关联的属性值号码所执行的模运算的结果来分配这些块-属性对。
队列304-1、304-2、以及304-3中的块-属性对由相应的索引实例306-1、306-2、和306-3来处理,例如,所述索引实例可以是由图1的索引组件118所建立的。更加特别地,基于它们处理的块-属性对,索引实例306-1、306-2、和306-3将信息插入经分割的位图索引308的不同的行中的元素中,经分割的位图索引308可以包括图1的经分割的位图索引128的示例。经分割的位图索引308中的每一行对应于特定的属性值号码,并且每一列都对应于特定的数据块号码。因为块-属性对基于其相关联的属性值号码而被映射至队列304-1、304-2、以及304-3,并且索引实例306-1、306-2、和306-3中的每个都处理来自队列304-1、304-2、以及304-3中的特定的一个的块-属性对,所以经分割的位图索引308中的每一行都专门地由索引实例306-1、306-2、和306-3中的特定的一个来处理。在图3的示例中,索引实例306-1将信息插入经分割的位图索引308的第一行和第四行中,索引实例306-2将信息插入经分割的位图索引308的第二行和第五行中,并且索引实例306-3将信息插入经分割的位图索引308的第三行和第六行中。实施例不限于该示例。
应当理解的是,尽管经分割的位图索引308被构建以使得行对应于属性值号码而列对应于数据块号码,但是实施例不限于该示例实施例。在一些实施例中,经分割的位图索引可以被构建以使得行对应于数据块号码而列对应于属性值号码。此外应当理解的是,术语“行”和“列”仅仅是可以用于指代数据结构(例如,经分割的位图索引308)的不同的维度的命名的示例,并且可以不适用于各种实施例。例如在一些实施例中,经分割的位图索引可以被构建为包括二维的数据阵列,其中一个阵列维度对应于属性值号码而另一个维度对应于数据块号码。实施例不限于该上下文中。
图4示出了逻辑流程400的一个实施例,其可以代表由在本文中所描述的一个或多个实施例所执行的操作。如在逻辑流程400中所示,可以在402处生成多个块-属性对。例如,图1的分配组件114可以用于生成多个块-属性对116,其中每个都对应于属性值和多个数据块154中的一个数据块。在404处,每个块-属性对都可以基于该块-属性对中的属性值号码而被置于多个队列中的一个中。例如,图1的分配组件114可以用于基于被包括在块-属性对116中的属性值号码而将多个块-属性对116中的每个都置于多个索引队列130中的一个中。在406处,可以通过使用对应于多个队列的多个索引实例来对多个块-属性对进行索引而生成索引块。例如,图1的索引组件118可以用于建立多个索引实例并且使用多个索引实例来索引多个块-属性对,并且多个索引实例中的每个都可以对来自多个索引队列130中的相应的一个的索引块-属性对116进行索引。实施例不限于这些示例。
图5示出了存储介质500的实施例。存储介质500可以包括任何非瞬时性计算机可读存储介质或者机器可读存储介质,例如,光、磁、或半导体存储介质。在各种实施例中,存储介质500可以包括制品。在一些实施例中,存储介质500可以存储计算机可执行指令,例如,用于实现图4的逻辑流程400的计算机可执行指令。计算机可读存储介质或机器可读存储介质的示例可以包括能够存储电子数据的任何有形的介质,包括易失性存储器或非易失性存储器、可移动或不可移动存储器、可擦除或不可擦除存储器、可写或可重写存储器等。计算机可执行指令的示例可以包括任何合适的类型的代码,例如源代码、经编译的代码、经解释的代码、可执行代码、静态代码、动态代码、面向对象的代码、可视代码等。实施例不限于该上下文中。
图6示出了系统600的一个实施例。在各种实施例中,系统600可以代表适合于与在本文中所描述的一个或多个实施例一起使用的系统或架构,例如,图1的装置100和/或系统140、图3的并行索引架构300、图4的逻辑流程400、和/或图5的存储介质500。实施例不限于该方面。
如在图6中所示,图6的系统包括多个元件。可以针对给定的一组设计或性能约束所需要的而使用一个或多个电路、组件、寄存器、处理器、软件子例程、模块、或其组合来实现一个或多个元件。尽管图6作为示例以某个拓扑结构示出了有限数量的元件,但应当理解的是可以针对给定的实现所需要的而在系统600中以任何合适的拓扑结构使用更多或更少的元件。实施例不限于该上下文中。
在各种实施例中,系统600可以包括处理器元件602。处理器元件602可以使用任何处理器或逻辑设备来实现,并且可以相同或相似于图1的处理器元件102。
在一个实施例中,系统600可以包括存储器单元604以耦合至处理器元件602。针对给定的实现所需要的,存储器单元604可以经由通信总线643,或者通过处理器元件602与存储器单元604之间的专用通信总线来耦合至处理器元件602。存储器单元604可以使用能够存储数据的任何机器可读或计算机可读的介质(包括易失性存储器和非易失性存储器两者)而被实现,并且可以相同或相似于图1的存储器单元104。在一些实施例中,机器可读或计算机可读的介质可以包括非瞬时性介质。实施例不限于该上下文中。
在各种实施例中,系统600可以包括RF收发机644。RF收发机644可以包括能够使用各种合适的无线通信技术来发送和接收信号一个或多个无线电设备,并且可以相同或相似于图1的RF收发机144。
在各种实施例中,系统600可以包括显示器645。显示器645可以包括能够显示从处理器元件602中所接收到的信息的任何显示设备,并且可以相同或相似于图1的显示器145。实施例不限于该上下文中。
在各种实施例中,系统600可以包括存储646。存储646可以被实现为非易失性存储设备,例如但不限于:磁盘驱动器、光盘驱动器、磁带驱动器、内置存储设备、附加存储设备、闪速存储器、电池供电的SDRAM(同步DRAM)、和/或网络可访问的存储设备。例如在实施例中,存储646可以包括用于当多个硬盘驱动器被包括时提高对有价值的数字介质的存储性能增强的保护的技术。存储646的进一步的示例可以包括硬盘、软盘、光盘只读存储器(CD-ROM)、可记录光盘(CD-R)、可重写光盘(CD-RW)、光盘、磁介质、磁光介质、可移动存储器卡或盘、各种类型的DVD设备、磁带设备、盒式磁带设备等。实施例不限于该上下文中。
在各种实施例中,系统600可以包括一个或多个I/O适配器647。I/O适配器647的示例可以包括通用串行总线(USB)端口/适配器、IEEE 1394火线端口/适配器等。实施例不限于该上下文中。
图7示出了系统700的实施例。在各种实施例中,系统700可以代表适合与在本文中所描述的一个或多个实施例一起使用的系统或架构,例如图1的装置100和/或系统140、图3的并行索引架构300、图4的逻辑流程400、图5的存储介质500、和/或图6的系统600。实施例不限于该方面。
如在图7中所示,系统700可以包括多个元件。可以针对给定的一组设计或性能约束所需要的而使用一个或多个电路、组件、寄存器、处理器、软件子例程、模块、或其组合来实现一个或多个元件。尽管图7作为示例以某个拓扑结构示出了有限数量的元件,但应当理解的是可以针对给定的实现所需要的而以任何合适的拓扑结构在系统700中使用更多或更少的元件。实施例不限于该上下文中。
在实施例中,系统700可以是媒体系统尽管系统700不限于该上下文中。例如,系统700可以被包含在个人计算机(PC)、膝上型计算机、超级膝上型计算机、平板计算机、触摸板、便携式计算机、手持计算机、掌上计算机、个人数字助理(PDA)、蜂窝电话、组合蜂窝电话/PDA、电视、智能设备(例如,智能电话、智能平板计算机或智能电视)、移动互联网设备(MID)、消息传送设备、数据通信设备等中。
在实施例中,系统700包括耦合至显示器745的平台701。平台701可以从诸如内容服务设备748、内容传递设备749之类的内容设备或其它相似的内容源中接收内容。包括一个或多个导航特征的导航控制器750可以用于与例如平台701和/或显示器745进行交互。在下文中更加详细地描述了这些组件中的每个。
在实施例中,平台701可以包括处理器元件702、芯片组703、存储器单元704、收发机744、存储746、应用751、和/或图形子系统752的任何组合。芯片组703可以提供处理器元件702、存储器单元704、收发机744、存储746、应用751、和/或图形子系统752之间的相互通信。例如,芯片组703可以包括能够提供与存储746的相互通信的存储适配器(未绘出)。
处理器元件702可以使用任何处理器或逻辑设备来实现,并且可以相同或相似于图6的处理器元件602。
存储器单元704可以使用能够存储数据的任何机器可读介质或计算机可读的介质来实现,并且可以相同或相似于图6中的存储器单元604。
收发机744可以包括能够使用各种合适的无线通信技术来发送和接收信号的一个或多个无线电设备,并且可以相同或相似于图6中的收发机644。
显示器745可以包括电视类型的监视器或显示器,并且可以相同或相似于图6中的显示器645。
存储746可以被实现为非易失性存储设备,并且可以相同或相似于图6中的存储646。
图形子系统752可以执行诸如静止的或视频的图像的处理以用于显示。例如,系统752可以是图形处理单元(GPU)或可视处理单元(VPU)。可以使用模拟接口或数字接口来通信地耦合图形子系统752和显示器745。例如,接口可以是高分辨率多媒体接口(HDMI)、显示端口、无线HDMI、和/或无线HD兼容技术中的任何一个。图形子系统752可以被集成到处理器元件702或芯片组703中。图形子系统752可以是通信地耦合至芯片组703的独立的卡。
可以以各种硬件架构来实现在本文中所描述的图形和/或视频处理技术。例如,图形和/或视频功能可以被集成在芯片组内。可替代地,可以使用分立的图形和/或视频处理器。作为另一个实施例,图形和/或视频功能可以由包括多核处理器的通用处理器来实现。在进一步的实施例中,可以在消费性电子设备中实现所述功能。
在实施例中,内容服务设备748可以由任何国家、国际和/或独立服务来托管,并且因此可以由平台701例如经由互联网来访问。内容服务设备748可以耦合至平台701和/或显示器745。平台701和/或内容服务设备748可以耦合至网络753以将媒体信息传送至网络753或者从网络753中传送信息(例如,发送和/或接收)。内容传递设备749还可以耦合至平台701和/或显示器745。
在实施例中,内容服务设备748可以包括有线电视盒、个人计算机、网络、电话、支持互联网的设备或者能够传递数字信息和/或内容的设备或家电、以及(能够单向地或双向地在内容提供者与平台701之间传送内容,并且在内容提供者与显示器745之间经由网络753或直接地传送内容的其它任何相似的设备。应当理解的是,内容可以经由网络753单向和/或双向地被传送至系统700中的组件和内容提供者中的任何一个或者从中传送。内容的示例可以包括任何媒体信息,包括例如,视频、音乐、医疗和游戏信息等。
内容服务设备748接收例如有限电视节目的内容,该有线电视节目包括媒体信息、数字信息、和/或其它内容。内容提供者的示例可以包括任何有线或卫星电视或广播、或者互联网内容提供者。所提供的示例不意味着限制所公开的主题的实施例。
在实施例中,平台701可以从具有一个或多个导航特征的导航控制器750中接收控制信号。导航控制器750的导航特征可以用于与例如用户界面754进行交互。在实施例中,导航控制器750可以是可以作为计算机硬件组件的指向设备,其允许用户向计算机输入空间(例如,连续的并且多维的)数据。诸如图形用户界面(GUI)、以及电视和监视器之类的许多系统允许用户使用物理手势来对计算机或电视进行控制并且向计算机或电视提供数据。
导航控制器750的导航特征的移动可以由指示器、光标、聚焦环、或在显示器上所显示的其它可视指示器来在显示器(例如,显示器745)上呼应。例如,在软件应用751的控制下,位于导航控制器上的导航特征可以被映射至在用户界面754上所显示的虚拟导航特征。在实施例中,导航控制器750可以不是单独的组件而是被集成到平台701和/或显示器745中的组件。然而,实施例不限于在本文中所示出或描述的元件或上下文。
在实施例中,例如当被启用时,驱动程序(未示出)可以包括使用户能够在系统初始化后,通过触摸按钮可以即时开启和关闭平台702(像开启和关闭电视一样)的技术。当平台被“关闭”时,程序逻辑可以允许平台701将内容流式传输至媒体适配器或其它内容服务设备748或者内容传递设备749。此外,芯片组703可以包括支持例如5.1环绕声音频和/或高分辨率7.1环绕声音频的硬件和/或软件。驱动器可以包括针对集成的图形平台的图形驱动器。在实施例中,图形驱动器可以包括外围组件互连(PCI)快速图形卡。
在各种实施例中,可以集成在系统700中所示出的组件中的任何一个或多个。例如,可以集成平台701和内容服务设备748,或者可以集成平台701和内容传递设备749,或者例如可以集成平台701、内容服务设备748以及内容传递设备749。在各种实施例中,平台701和显示器745可以是集成的单元。例如,可以集成显示器745和内容服务设备748,或者可以集成显示器745和内容传递设备749。这些示例不意味着限制所公开的主题。
在各种实施例中,系统700可以被实现为无线系统、有线系统、或两者的组合。当被实现为无线系统时,系统700可以包括适用于通过无线共享的介质进行通信的组件和接口,例如,一个或多个天线、发射机、接收机、收发机、放大器、滤波器、控制逻辑等。无线共享的介质的示例可以包括部分无线频谱,例如,RF频谱等。当被实现为有线系统时,系统700可以包括适用于通过有线通信介质进行通信的组件和接口,例如,I/O适配器、用于连接I/O适配器与对应的有线通信介质的物理连接器、网络接口卡(NIC)、盘控制器、视频控制器、音频控制器等。有线通信介质的示例可以包括电线、电缆、金属导线、印刷电路板(PCB)、背板、交换结构、半导体材料、双绞线、同轴电缆、光纤等。
平台701可以建立一个或多个逻辑或物理信道以传送信息。信息可以包括媒体信息和控制信息。媒体信息可以指的是针对用户的内容的的任何数据。内容的示例可以包括例如,来自语音对话的数据、视频会议、流视频、电子邮件(“email”)消息、语音邮件消息、字母数字符号、图形、图像、视频、文本等。来自语音对话的数据可以是例如话语信息、沉默周期、背景噪声、舒适噪声、声调等。控制信息可以指表示命令、指令、或用于自动化系统的控制词的任何数据。例如,控制信息可以用于通过系统来路由媒体信息,或者指导节点以预先确定的方式来处理媒体信息。然而,实施例不限于在图7中所示出或描述的元件或上下文。
如在上文中所描述的,系统700可以以不同的物理类型或形式因素来实施。图8示出了其中可以实施系统700的小的形式因素设备800的实施例。例如在实施例中,设备800可以被实现为具有无线能力的移动计算设备。移动计算设备可以指的是具有处理系统和诸如一个或多个电池的移动电源或供应的任何设备。
如在上文中所描述的,移动计算设备的示例可以包括个人计算机(PC)、膝上型计算机、超级膝上型计算机、平板计算机、触摸板、便携式计算机、手持计算机、掌上计算机、个人数字助理(PDA)、蜂窝电话、组合蜂窝电话/PDA、电视、智能设备(例如,智能电话、智能平板计算机或智能电视)、移动互联网设备(MID)、消息传送设备、数据通信设备等。
移动计算设备的示例还可以包括被设置以由人穿戴的计算机,例如,手腕计算机、手指计算机、戒指计算机、眼镜计算机、皮带夹计算机、臂带计算机、鞋式计算机、服装计算机、以及其它可穿戴计算机。例如在实施例中,移动计算设备可以被实现为能够执行计算机应用、以及语音通信和/或数据通信的智能电话。尽管可以利用作为示例被实现为智能电话的移动计算设备来描述一些实施例,但应当理解的是,同样可以使用其它无线移动计算设备来实现其它的实施例。
如在图8中所示,设备800可以包括显示器845、导航控制器850、用户界面854、外壳855、I/O设备856、以及天线857。显示器845可以包括用于显示适用于移动计算设备的信息的任何合适的显示器单元,并且可以相同或相似于图7中的显示器745。导航控制器850可以包括可以用于与用户界面854进行交互的一个或多个导航特征,并且可以相同或相似于图7中的导航控制器750。I/O设备856可以包括用于将信息输入到移动计算设备中的任何合适的I/O设备。I/O设备856的示例可以包括字母数字键盘、数字小键盘、触摸板、按钮、开关、摇臂开关、麦克风、扬声器、语音识别设备和软件等。还可以通过麦克风将信息输入到设备800中。这样的信息可以由语音识别设备进行数字化。实施例不限于该上下文中。
可以使用硬件元件、软件元件、或两者的组合来实现各种实施例。硬件元件的示例可以包括处理器、微处理器、电路、电路元件(例如,晶体管、电阻器、电容器、电感器等)、集成电路、专用集成电路(ASIC)、可编程逻辑器件(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、逻辑门、寄存器、半导体设备、芯片、微芯片、芯片组等。软件的示例可以包括软件组件、程序、应用、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、功能、方法、步骤、软件接口、应用程序接口(API)、指令集、计算代码、计算机代码、代码段、计算机代码段、词语、值、符号、或任何其组合。确定是否使用硬件元件和/或软件元件来实现实施例可以根据以下任意数量的因素而变化,例如期望的计算速率、功率等级、热耐受性、处理周期预算、输入数据速率、输出数据速率、存储器资源、数据总线速度、以及其它设计或性能约束。
至少一个实施例的一个或多个方面可以由存储在机器可读的介质上的代表性指令来实现,所述指令表示处理器内的各种逻辑,当该介质由机器读取时使得机器制造逻辑来执行在本文中所描述的技术。被称为“IP核心”的这样的代表可以被存储在有形的、机器可读的介质上,并且被提供至各种客户和生产设施以载入到实际上制造逻辑或处理器的制造机器中。例如,可以使用可以存储指令或指令集的机器可读的介质或制品来实现一些实施例,其中所述指令或指令集如果由机器执行,可以使得机器执行根据实施例的方法和/或操作。这样的机器可以包括例如任何合适的处理平台、计算平台、计算设备、处理设备、计算系统、处理系统、计算机、处理器等,并且可以使用硬件和/或软件的任何合适的组合来实现。机器可读的介质或制品可以包括例如任何合适的类型的存储器单元、存储器设备、存储器制品、存储器介质、存储设备、存储制品、存储介质和/或存储单元,所述存储介质和/或存储单元例如存储器、可移动或不可移动介质、可擦除或不可擦除介质、可写或可重写介质、数字或模拟介质、硬盘、软盘、光盘只读存储器(CD-ROM)、可记录光盘(CD-R)、可重写光盘(CD-RW)、光盘、磁介质、磁光介质、可移动存储器卡或盘、各种类型的数字通用盘(DVD)、磁带、盒式磁带等。指令可以包括使用合适的高级、低级、面向对象的、可视的、经编译的和/或经解释的编程语言所实现的任何合适的类型的代码,例如源代码、经编译的代码、经解释的代码、可执行代码、静态代码、动态代码、加密的代码等。
以下的示例是关于进一步的实施例的:
图1是数据索引装置,包括:多核处理器元件;用于由多核处理器元件执行以生成多个块-属性对的分配组件,其中每个块-属性对都对应于属性值和多个数据块中的一个;以及用于由多核处理器元件执行以基于多个块-属性对而生成针对多个数据块的索引块的索引组件,其中索引组件是用于使用多个索引实例来执行多个块-属性对的并行索引的。
在示例2中,示例1的每个块-属性对都可以可选地包括数据块号码和属性值号码。
在示例3中,示例1到示例2中的任何一个的索引组件可以可选地用于由多核处理器元件执行以将每个块-属性对置于多个队列中的一个中。
在示例4中,图3的每个块-属性对都可以可选地包括属性值号码,并且索引组件可以可选地用于由多核处理器元件执行,以基于被包括在该块-属性对中的属性值号码而将每个块-属性对置于多个队列中的一个中。
在示例5中,示例3到示例4中的任何一个的多个索引实例中的每个都可以可选地从多个队列中的相应的一个中索引块-属性对。
在示例6中,示例1到示例5中的任何一个的分配组件都可以可选地用于由多核处理器元件执行以建立多个分配实例,并且使用该多个分配实例来执行多个块-属性对的并行生成。
在示例7中,示例6的分配组件可以可选地用于由多核处理器元件执行以将多个分配实例中的每个建立在多核处理器元件的多个处理核心中的相应的一个上。
在示例8中,示例1到示例7中的任何一个的分配组件都可以可选地由多核处理器元件执行以将相应的数据块号码分配至多个数据块中的每个。
在示例9中,示例1到示例8中的任何一个的索引块都可以可选地包括经分割的位图索引。
在示例10中,示例9的多核处理器元件可以可选地包括高速缓存,并且索引组件可以可选地用于由多核处理器元件执行以将经分割的位图索引的部分存储在高速缓存中。
在示例11中,示例10的数据索引装置可以可选地包括重新排序组件以用于由多核处理器元件执行,使得针对存储设备的连续的存储器单元中的顺序存储将经分割的位图索引进行重新排序。
在示例12中,示例1到11中任何一个数据索引装置可以可选地包括追踪组件以用于由多核处理器元件执行以保存描述多个数据块的数据块信息。
在示例13中,示例12的数据块信息可以可选地包括针对多个数据块中的每个的相应的唯一的数据块标识符。
在示例14中,示例12到示例13中的任何一个的数据块信息可以可选地包括针对多个数据块中的每个的相应的唯一的数据块号码。
在示例15中,示例12到示例14中的任何一个追踪组件都可以可选地用于由多核处理器元件执行以保存描述多个属性值的属性值信息,并且每个块-属性对都可以可选地对应于多个属性值中的一个。
在示例16中,示例15的属性值信息可以可选地包括针对多个属性值中的每个的相应的唯一的属性值标识符。
在示例17中,示例15到示例16中的任何一个的属性值信息可以可选地包括针对多个属性值中的每个的相应的唯一的属性值号码。
在示例18中,示例12到示例17中的任何一个的追踪组件可以可选地用于由多核处理器元件执行以保存标识了已经由索引组件所生成的多个索引块的索引块信息。
在示例19中,示例18的索引块信息可以可选地包括针对多个索引块中的每个的相应的唯一的索引块标识符。
在示例20中,示例18到示例19中的任何一个的索引块信息可以可选地包括针对多个索引块中的每个的相应的唯一的索引块号码。
示例21是系统,包括:根据示例1到示例20中的任何一个的装置;显示器;射频(RF)收发机;以及一个或多个RF天线。
示例22是数据索引方法,包括:基于多个数据块,由多核处理器元件生成多个块-属性对;基于块-属性对中的属性值号码来将多个块-属性对中的每个都置于多个队列中的一个中;以及通过使用多个索引实例来对多个块-属性对进行索引而生成针对多个数据块的索引块。
在示例23中,示例22的索引块可以可选地包括经分割的位图索引。
在示例24中,示例22到示例23中的任何一个的数据索引方法可以可选地包括使用多个索引实例并行地索引多个块-属性对。
在示例25中,示例22到示例24中的任何一个的数据索引方法可以可选地包括:对每个块-属性对中的属性值号码执行模运算;以及基于针对块-属性对中的属性值号码的模运算的结果,将每个块-属性对分配至多个队列中的一个中。
在示例26中,示例22到示例25中的任何一个的多个索引实例中的每个都可以可选地对应于多个队列中的相应的一个。
在示例27中,示例22到示例26中的任何一个数据索引方法都可以可选地包括将多个索引实例中的每个都建立在多核处理器的不同的相应的处理核心上。
在示例28中,示例22到示例27中的任何一个数据索引方法都可以可选地包括:建立多个分配实例;以及使用多个分配实例中的一个来将多个块-属性对中的一个分配至多个队列中的一个中。
在示例29中,示例28的数据索引方法可以可选地包括将多个分配实例中的每个都建立在多核处理器的不同的相应的处理核心上。
在示例30中,示例22到示例29中的任何一个的每个块-属性对都可以可选地包括与多个数据块中的一个相关联的数据块号码。
在示例31中,示例22到示例30中的任何一个的数据索引方法都可以可选地包括将相应的数据块号码分配至多个数据块中的每个。
在示例32中,示例23的数据索引方法可以可选地包括将经分割的位图索引中的部分存储在高速缓存中。
在示例33中,示例32的数据索引方法可以可选地包括针对存储设备的连续的存储器单元中的顺序存储而对经分割的位图索引的部分进行重新排序。
在示例34中,示例22到示例33中的任何一个的数据索引方法可以可选地包括保存描述了多个数据块的数据块信息。
在示例35中,示例34的数据块信息可以可选地包括针对多个数据块中的每个的相应的唯一的数据块标识符。
在示例36中,示例34到示例35中的任何一个的数据块信息可以可选地包括针对多个数据块中的每个的相应的位移的数据块号码。
在示例37中,示例22到示例36中的任何一个数据索引方法可以可选地包括保存描述了多个属性值的属性值信息,并且每个块-属性对都可以可选地对应于多个属性值中的一个。
在示例38中,示例37的属性值信息可以可选地包括针对多个属性值中的每个的相应的唯一的属性值标识符。
在示例39中,示例37到示例38中的任何一个的属性值信息可以可选地包括针对多个属性值中的每个的相应的唯一的属性值号码。
在示例40中,示例22到示例39中的任何一个的数据索引方法可以可选地包括保存标识了多个索引块的索引块信息。
在示例41中,示例40的索引块信息可以可选地包括针对多个属性值中的每个的相应的唯一的属性值标识符。
在示例42中,示例40到示例41中的任何一个的索引块信息可以可选地包括针对多个属性值中的每个的相应的唯一的属性值号码。
示例43是包括一组数据索引指令的至少一个机器可读介质,其中响应于所述数据索引指令由计算设备执行,使得计算设备执行根据示例22到42中的任何一个的方法。
示例44是装置,包括用于执行根据示例22到示例42中的任何一个的数据索引方法的单元。
示例45是系统,包括:根据示例44的装置;显示器;射频收发机;以及一个或多个RF天线。
示例46是包括一组数据索引指令的至少一个机器可读介质,其中响应于所述数据索引指令由计算设备执行,使得计算设备实现根据示例44或45的装置或系统。
示例47是数据索引装置,包括:用于由多核处理器元件基于多个数据块来生成多个块-属性对的单元;用于基于块-属性对中的属性值号码来将多个块-属性对中的每个都置于多个队列中的一个中的单元;以及用于通过使用多个索引实例来对多个块-属性对进行索引而生成针对多个数据块的索引块的单元。
在示例48中,示例47的索引块可以可选地包括经分割的位图索引。
在示例49中,示例47到示例48中的任何一个的数据索引装置可以可选地包括用于使用多个索引实例并行地索引多个块-属性对的单元。
在示例50中,示例47到示例49中的任何一个的数据索引装置可以可选地包括:用于对每个块-属性对中的属性值号码执行模运算的单元;以及用于基于针对块-属性对中的属性值号码的模运算的结果,将每个块-属性对分配至多个队列中的一个中的单元。
在示例51中,示例47到示例50中的任何一个的多个索引实例中的每个都可以可选地对应于多个队列中的相应的一个。
在示例52中,示例47到示例51中的任何一个数据索引装置都可以可选地包括用于将多个索引实例中的每个都建立在多核处理器的不同的相应的处理核心上的单元。
在示例53中,示例47到示例52中的任何一个数据索引装置都可以可选地包括:用于建立多个分配实例的单元;以及用于使用多个分配实例中的一个来将多个块-属性对中的一个分配至多个队列中的一个中的单元。
在示例54中,示例53的数据索引装置可以可选地包括用于将多个分配实例中的每个都建立在多核处理器的不同的相应的处理核心上的单元。
在示例55中,示例47到示例54中的任何一个的每个块-属性对都可以可选地包括与多个数据块中的一个相关联的数据块号码。
在示例56中,示例47到示例55中的任何一个的数据索引装置都可以可选地包括用于将相应的数据块号码分配至多个数据块中的每个的单元。
在示例57中,示例48的数据索引装置可以可选地包括用于将经分割的位图索引中的部分存储在高速缓存中的单元。
在示例58中,示例57的数据索引装置可以可选地包括用于针对存储设备的连续的存储器单元中的顺序存储而对经分割的位图索引的部分进行重新排序的单元。
在示例59中,示例47到示例58中的任何一个的数据索引方法可以可选地包括用于保存描述了多个数据块的数据块信息的单元。
在示例60中,示例59的数据块信息可以可选地包括针对多个数据块中的每个的相应的唯一的数据块标识符。
在示例61中,示例59到示例60中的任何一个的数据块信息可以可选地包括针对多个数据块中的每个的相应的位移的数据块号码。
在示例62中,示例47到示例61中的任何一个数据索引装置可以可选地包括用于保存描述了多个属性值的属性值信息的单元,并且每个块-属性对都可以可选地对应于多个属性值中的一个。
在示例63中,示例62的属性值信息可以可选地包括针对多个属性值中的每个的相应的唯一的属性值标识符。
在示例64中,示例62到示例63中的任何一个的属性值信息可以可选地包括针对多个属性值中的每个的相应的唯一的属性值号码。
在示例65中,示例47到示例64中的任何一个的数据索引装置可以可选地包括用于保存标识了多个索引块的索引块信息的单元。
在示例66中,示例65的索引块信息可以可选地包括针对多个属性值中的每个的相应的唯一的属性值标识符。
在示例67中,示例65到示例66中的任何一个的索引块信息可以可选地包括针对多个属性值中的每个的相应的唯一的属性值号码。
可以已经在本文中阐述了多个具体的细节以提供对实施例的彻底的理解。然而,本领域技术人员应当理解,可以没有这些具体的细节而实践所述实施例。在其它实例中,没有详细地描述公知的操作、组件、和电路以便不使实施例难以理解。应当理解的是,在本文中所公开的具体的结构上和功能上的细节可以是代表性的,而非必须限制实施例的范围。
可以使用表达“耦合”和“连接”及其衍生词来描述一些实施例。这些术语不旨在作为彼此的同义词。例如,一些实施例可以使用术语“连接”和/或“耦合”来指示两个或更多元件彼此直接地物理或电接触。然而,术语“耦合”还可以意味着两个或更多元件没有彼此直接地接触,但是仍然彼此协作或交互。
应当理解的是,除非另外特别声明,诸如“处理”、“计算”、“运算”、“确定”等之类的术语是指计算机或计算系统或者相似的电子计算设备的动作和/或过程,其操纵被表示为计算系统的寄存器和/或存储器内的物理量(例如,电子)的数据,和/或将其转换成相似地被表示为计算系统的存储器、寄存器或其它这样的信息存储、传输或显示设备内的物理量的其它数据。实施例不限于该上下文中。
应当注意的是,在本文中所描述的方法不是必须以所描述的顺序或者以任何特定的顺序来执行。此外,结合在本文中所标识的方法所描述的各种活动可以以串行或者并行的方式来执行。
尽管已经在本文中示出并且描述了具体的示例,但应当理解的是,经运算以达到相同的目的的任何设置都可以替代所示出的具体的实施例。该公开旨在覆盖对各种实施例的任何和所有的修改或变型。应当理解的是,已经以说明性的方式进行了以上的描述,而不是限制性的描述。在查阅了以上的描述之后,以上的实施例的组合以及没有在本文中具体地描述的其它实施例将对本领域技术人员而言是显而易见的。因此,各种实施例的范围包括使用以上的成分、结构、以及方法的任何其它应用。
应当强调的是,提供了本公开的摘要以遵循37C.F.R.§1.72(b),其要求摘要将允许读者快速地确定技术公开的性质。所主张的是,其将不会用于解释或限制权力要求的范围或含义。此外,在前述的具体实施方式中可以看到,出于简化公开的目的而将各种特征集中在单个实施例中。该公开方法将不被解释为反映所要求保护的实施例要求比每个权利要求中所明确记载的更多特征的意图。相反,如以下的权利要求所反映的,发明方面在于比单个所公开的实施例的所有特征少。因此,以下的权利要求由此并入到具体实施方式中,同时每个权利要求独立成立作为单独的优选实施例。在所附权利要求中,术语“包括”和“其中”分别用作相应的术语“包含”和“在其中”的普通英语的等价物。此外,术语“第一”、“第二”、以及“第三”等仅仅用作标签,而不旨在向其对象施加数字要求。
尽管已经用特定于结构特征和/或方法论行为的语言描述了主题,但应当理解的是,在所附权利要求中所限定的主题非必须限于在上文中所描述的具体的特征或行为。相反,上文中所描述的具体的特征和行为是作为实现权利要求的示例形式而公开的。
Claims (21)
1.一种数据索引装置,包括:
多核处理器元件;
用于由所述多核处理器元件执行以生成多个块-属性对的分配组件,每个块-属性对都对应于属性值和多个数据块中的一个数据块;以及
用于由所述多核处理器元件执行以执行以下操作的索引组件:基于所述多个块-属性对中的每个块-属性对中的属性值号码而将所述块-属性对置于多个队列中的一个中;基于所述多个块-属性对而生成针对所述多个数据块的索引块,所述索引块包括经分割的位图索引,第一数据块号码、末尾数据块号码和末尾属性值标识符;并且使用多个索引实例来在所述多个队列中执行所述多个块-属性对的并行索引,其中,每一个索引实例被配置为从所述多个队列中的相对应一个获取块-属性对并且基于所获取的块-属性对来更新所述经分割的位图索引。
2.根据权利要求1所述的数据索引装置,每个块-属性对都包括数据块号码和属性值号码,所述第一数据块号码和所述末尾数据块号码包括所述数据块号码中的相应一个,所生成的针对数据块的索引块具有在由所述第一数据块号码和所述末尾数据块号码定义的数据块号码范围中的数据块号码。
3.根据权利要求1所述的数据索引装置,所述末尾属性值标识符与所述属性值号码的最大值相对应,所述索引块的位图索引指定具有比所述末尾属性值标识符小的属性值号码的属性值。
4.根据权利要求1所述的数据索引装置,所述多个索引实例中的每个用于对来自所述多个队列中的相应的一个中的索引块-属性对进行索引,所述位图索引包括多个行,所述位图索引的每一行由所述多个索引实例中的一个索引实例索引。
5.根据权利要求1所述的数据索引装置,所述分配组件用于由所述多核处理器元件执行以建立多个分配实例,并且使用所述多个分配实例来执行多个块-属性对的并行生成。
6.根据权利要求5所述的数据索引装置,所述分配组件用于由所述多核处理器元件执行以将所述多个分配实例中的每个建立在所述多核处理器元件的多个处理核心中的相应的一个上。
7.根据权利要求1所述的数据索引装置,所述分配组件用于由所述多核处理器元件执行以将相应的数据块号码分配至所述多个数据块中的每个。
8.根据权利要求1所述的数据索引装置,所述多核处理器元件包括高速缓存,所述索引组件用于由所述多核处理器元件执行以将所述经分割的位图索引的部分存储在所述高速缓存中。
9.根据权利要求8所述的数据索引装置,包括重新排序组件以用于由所述多核处理器元件执行,以针对存储设备的连续的存储器位置中的顺序存储而将所述经分割的位图索引的所述部分进行重新排序。
10.根据权利要求1所述的数据索引装置,包括追踪组件以用于由所述多核处理器元件执行从而保存对所述多个数据块进行描述的数据块信息。
11.一种数据索引方法,包括:
基于多个数据块,由多核处理器元件生成多个块-属性对;
基于块-属性对中的属性值号码来将所述多个块-属性对中的每个都置于多个队列中的一个中;以及
通过使用多个索引实例来对所述多个块-属性对进行索引而生成针对所述多个数据块的索引块,所述索引块包括经分割的位图索引、第一数据块号码、末尾数据块号码和末尾属性值标识符,
其中,使用多个索引实例来在所述多个队列中执行所述多个块-属性对的并行索引,其中,每一个索引实例被配置为从所述多个队列中的相对应一个获取块-属性对并且基于所获取的块-属性对来更新所述经分割的位图索引。
12.根据权利要求11所述的数据索引方法,包括:
对每个块-属性对中的所述属性值号码执行模运算;以及
基于针对所述块-属性对中的所述属性值号码的所述模运算的结果,将每个块-属性对分配至所述多个队列中的一个,其中,每一个块-属性对包括数据块号码和属性值号码,其中,所述第一数据块号码和所述末尾数据块号码包括所述数据块号码中的相应一个,所述索引块用于具有在由所述第一数据块号码和所述末尾数据块号码定义的数据块号码范围中的数据块号码的数据块。
13.根据权利要求11所述的数据索引方法,所述多个索引实例中的每个都对应于所述多个队列中的相应的一个,所述末尾属性值标识符与所述属性值号码的最大值相对应,所述索引块的位图索引指定具有比所述末尾属性值标识符小的属性值号码的属性值。
14.根据权利要求11所述的数据索引方法,包括将所述多个索引实例中的每个都建立在所述多核处理器的不同的相应的处理核心上,所述位图索引包括多个行,所述位图索引的每一行由所述多个索引实例中的一个索引实例索引。
15.根据权利要求11所述的数据索引方法,包括:
建立多个分配实例;以及
使用所述多个分配实例中的一个来将所述多个块-属性对中的一个分配至所述多个队列中的一个。
16.根据权利要求15所述的数据索引方法,包括将所述多个分配实例中的每个建立在所述多核心处理器的不同的相应的处理核心上。
17.根据权利要求11所述的数据索引方法,每个块-属性对都包括与所述多个数据块中的一个相关联的数据块号码。
18.根据权利要求11所述的数据索引方法,包括将相应的数据块号码分配至所述多个数据块中的每个。
19.根据权利要求11所述的数据索引方法,包括:
将所述经分割的位图索引的部分存储在高速缓存中;以及
针对存储设备的连续的存储器位置中的顺序存储而将所述经分割的位图索引的所述部分进行重新排序。
20.一种数据索引装置,包括用于执行根据权利要求11到19中的任何一个所述的方法的单元。
21.至少一种机器可读的介质,包括响应于在计算设备上被执行,使得所述计算设备执行根据权利要求11-19中的任何一个所述的数据索引方法的指令的集合。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2013/088014 WO2015077951A1 (en) | 2013-11-28 | 2013-11-28 | Techniques for block-based indexing |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105960637A CN105960637A (zh) | 2016-09-21 |
CN105960637B true CN105960637B (zh) | 2020-09-11 |
Family
ID=53198200
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380080603.0A Active CN105960637B (zh) | 2013-11-28 | 2013-11-28 | 基于块的索引技术 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10242038B2 (zh) |
EP (1) | EP3074882A4 (zh) |
CN (1) | CN105960637B (zh) |
CA (1) | CA2925030A1 (zh) |
WO (1) | WO2015077951A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11036699B2 (en) * | 2016-10-20 | 2021-06-15 | International Business Machines Corporation | Method for computing distinct values in analytical databases |
CN107391527B (zh) | 2017-03-28 | 2020-03-27 | 创新先进技术有限公司 | 一种基于区块链的数据处理方法及设备 |
CN113282659A (zh) * | 2017-03-28 | 2021-08-20 | 创新先进技术有限公司 | 一种基于区块链的数据处理方法及设备 |
CN111949648B (zh) * | 2019-05-14 | 2024-03-01 | 北京沃东天骏信息技术有限公司 | 内存缓存数据系统和数据索引方法 |
CN116342148B (zh) * | 2023-03-23 | 2023-11-17 | 山东添睿智慧信息科技有限公司 | 一种医疗垃圾无害一体化溯源管理系统及方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102890678A (zh) * | 2011-07-20 | 2013-01-23 | 华东师范大学 | 一种基于格雷编码的分布式数据布局方法及查询方法 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2583010B2 (ja) * | 1993-01-07 | 1997-02-19 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 多層インデックス構造におけるローカルインデックステーブル及び大域インデックステーブルの間の一貫性を維持する方法 |
US6067540A (en) | 1997-02-28 | 2000-05-23 | Oracle Corporation | Bitmap segmentation |
US6216125B1 (en) * | 1998-07-02 | 2001-04-10 | At&T Corp. | Coarse indexes for a data warehouse |
US6321265B1 (en) * | 1999-11-02 | 2001-11-20 | Altavista Company | System and method for enforcing politeness while scheduling downloads in a web crawler |
EP1211610A1 (en) | 2000-11-29 | 2002-06-05 | Lafayette Software Inc. | Methods of organising data and processing queries in a database system |
US6778977B1 (en) | 2001-04-19 | 2004-08-17 | Microsoft Corporation | Method and system for creating a database table index using multiple processors |
US7769729B2 (en) * | 2007-05-21 | 2010-08-03 | Sap Ag | Block compression of tables with repeated values |
US7966343B2 (en) | 2008-04-07 | 2011-06-21 | Teradata Us, Inc. | Accessing data in a column store database based on hardware compatible data structures |
US7698272B2 (en) * | 2007-08-30 | 2010-04-13 | International Business Machines Corporation | Apparatus, system, and method for deterministic file allocations for parallel operations |
US7836037B2 (en) * | 2007-10-04 | 2010-11-16 | Sap Ag | Selection of rows and values from indexes with updates |
US20120011144A1 (en) | 2010-07-12 | 2012-01-12 | Frederik Transier | Aggregation in parallel computation environments with shared memory |
TWI459223B (zh) * | 2012-08-15 | 2014-11-01 | Hon Hai Prec Ind Co Ltd | 海量資料索引建立系統及方法 |
US9110935B2 (en) * | 2013-02-26 | 2015-08-18 | Sap Se | Generate in-memory views from universe schema |
-
2013
- 2013-11-28 CN CN201380080603.0A patent/CN105960637B/zh active Active
- 2013-11-28 CA CA2925030A patent/CA2925030A1/en not_active Abandoned
- 2013-11-28 WO PCT/CN2013/088014 patent/WO2015077951A1/en active Application Filing
- 2013-11-28 EP EP13898182.4A patent/EP3074882A4/en not_active Withdrawn
- 2013-11-28 US US15/026,561 patent/US10242038B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102890678A (zh) * | 2011-07-20 | 2013-01-23 | 华东师范大学 | 一种基于格雷编码的分布式数据布局方法及查询方法 |
Non-Patent Citations (1)
Title |
---|
《海量数据组织中的索引机制研究与实现》;程彬;《中国优秀硕士学位论文全文数据库 信息科技辑》;20100515(第5期);I138-971 * |
Also Published As
Publication number | Publication date |
---|---|
EP3074882A1 (en) | 2016-10-05 |
US10242038B2 (en) | 2019-03-26 |
EP3074882A4 (en) | 2017-07-05 |
US20160246827A1 (en) | 2016-08-25 |
CA2925030A1 (en) | 2015-06-04 |
WO2015077951A1 (en) | 2015-06-04 |
CN105960637A (zh) | 2016-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI550548B (zh) | 於中段排序架構中利用訊框對訊框之同調性的技術 | |
TWI582720B (zh) | 用於經動態生成的圖形資源之壓縮技術 | |
CN105960637B (zh) | 基于块的索引技术 | |
US9323684B2 (en) | Dynamic cache and memory allocation for memory subsystems | |
TWI639973B (zh) | 動態再平衡圖型處理器資源的方法、裝置與系統 | |
US20140026137A1 (en) | Performing scheduling operations for graphics hardware | |
US9251731B2 (en) | Multi-sampling anti-aliasing compression by use of unreachable bit combinations | |
TWI556190B (zh) | 使用像素區位元値的圖形資料之壓縮及解壓縮技術 | |
JP6182225B2 (ja) | カラーバッファ圧縮 | |
US9774874B2 (en) | Transcoding management techniques | |
US9626735B2 (en) | Page management approach to fully utilize hardware caches for tiled rendering | |
JP2019057320A (ja) | 方法、コンピュータプログラム、コンピュータ可読記録媒体および装置 | |
TWI544422B (zh) | 用於平行執行隨機抽樣一致性(ransac)演算法的技術 | |
KR101597623B1 (ko) | Simd 명령어 세트 아키텍처를 이용하여 대규모 데이터 세트 내에서 최소 및 최대 값들을 찾기 위한 고속 접근법 | |
US10380106B2 (en) | Efficient method and hardware implementation for nearest neighbor search | |
WO2016025084A1 (en) | Automatic partitioning techniques for multi-phase pixel shading | |
CN109324774B (zh) | 用于视觉效果的音频定位技术 | |
WO2015099662A1 (en) | Improved techniques for context information management | |
US9336008B2 (en) | Shared function multi-ported ROM apparatus and method |
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 |