CN102203773A - 在具有卸载的布隆过滤器的智能存储器中利用协同并行过滤的哈希联接 - Google Patents

在具有卸载的布隆过滤器的智能存储器中利用协同并行过滤的哈希联接 Download PDF

Info

Publication number
CN102203773A
CN102203773A CN2009801425966A CN200980142596A CN102203773A CN 102203773 A CN102203773 A CN 102203773A CN 2009801425966 A CN2009801425966 A CN 2009801425966A CN 200980142596 A CN200980142596 A CN 200980142596A CN 102203773 A CN102203773 A CN 102203773A
Authority
CN
China
Prior art keywords
data
storage system
metadata
database server
storage
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2009801425966A
Other languages
English (en)
Other versions
CN102203773B (zh
Inventor
D·伯托波夫
Y·W·劳
H·雅克布森
U·潘查克沙拉雅
P·库玛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Oracle International Corp
Oracle America Inc
Original Assignee
Oracle International Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Oracle International Corp filed Critical Oracle International Corp
Publication of CN102203773A publication Critical patent/CN102203773A/zh
Application granted granted Critical
Publication of CN102203773B publication Critical patent/CN102203773B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24558Binary matching operations
    • G06F16/2456Join operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2255Hash tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24554Unary operations; Data partitioning operations
    • G06F16/24557Efficient disk access during query execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

用于数据库服务器的存储系统处的处理资源被用于执行按照惯例本应由数据库服务器执行的联接操作的各个方面。当向存储系统请求一系列的数据单元时,数据库服务器包括描述为其请求数据的联接操作的各个方面的联接元数据。例如,联接元数据可以是布隆过滤器。存储系统正常地从磁盘读取被请求的数据。不过,在把被请求的数据回送给存储系统之前,存储系统根据联接元数据分析原始数据,排除保证与联接操作无关的一定量的数据。存储系统随后把过滤后的数据返回给数据库服务器。数据库系统从而避免某些数据在存储系统和数据库服务器之间的不必要传送。

Description

在具有卸载的布隆过滤器的智能存储器中利用协同并行过滤的哈希联接
技术领域
本发明涉及数据处理,更具体地说,涉及存储器方参与联接操作(joinoperation)。
背景技术
本节中说明的方法是可以推行的方法,不过不一定是以前已构想出或推行的方法。于是,除非另有说明,否则不应仅仅因为包含在本节中,而把本节中描述的任意方法视为现有技术。
数据库服务器
通常,诸如数据库服务器之类的服务器是集成的软件组件与计算资源(比如存储器,节点,和节点上的执行所述集成的软件组件的进程)的分配的组合,软件和计算资源的组合专用于代表服务器的客户端提供特定种类的功能。通过处理客户端访问一个或多个数据库的请求,数据库服务器管理和促进对所述一个或多个数据库的访问。
数据库包含数据和元数据。从较高的层次来说,所述数据和元数据是例如按照关系和/或对象-关系数据库构造,保存在逻辑结构中的。数据库元数据定义数据库对象,比如表、对象表、视图或者复合类型。SQL数据定义语言(“DDL”)指令被发给数据库服务器,以创建或配置数据库对象。
通常,在数据库内,数据被逻辑地构造成一个或多个数据容器。每个容器包含记录。每条记录内的数据被组织成一个或多个字段。在关系数据库系统中,数据容器一般被称为表,记录被称为行,字段被称为列。在面向对象的数据库中,数据容器一般被称为对象类型或对象类,记录被称为对象,字段被称为属性。其它数据库体系结构可以使用其它术语。实现本发明的系统并不局限于任何特定种类的数据容器或数据库体系结构。不过,为了便于说明,这里使用的例子和术语一般与关系或对象-关系数据库关联。从而在这里,术语“表”、“行”和“列”应被用于分别表示数据容器、记录和字段。
存储系统
数据库服务器把数据库的基本数据保存在一个或多个持久的存储系统中。这些存储系统一般向数据库服务器提供其中可保存所述基本数据的大容量的持久的非易失性存储器,所述存储器通常呈一个或多个存储设备,比如硬盘的形式。这种存储系统的一个例子是存储器阵列。
利用软件或硬件逻辑优化许多存储系统,以便完成低级的专门数据管理功能,比如存储设备备份、存储设备优化、多个单独的存储设备间的分散存储、共用数据访问、块缓存等等。因此,数据库服务器通常依赖存储系统提供这样的低级功能,使得数据库服务器能够把它们的资源用于其它任务,比如查询编译和执行、数据分析,和与客户端的通信。
在许多实施例中,数据库服务器使用的存储系统只不过构成一个或多个简单的、线性寻址的、分块的持久存储设备。因而,存储系统不在意它们保存的基本数据所代表的逻辑结构。此外,数据库服务器和存储系统之间的交互作用局限于从磁盘读取或向磁盘写入一系列字节的简单输入/输出(I/O)请求。
从而,尽管数据库服务器以如上所述的逻辑结构的形式,把数据库数据提供给客户端,不过数据库的基本数据可按不同的更简单的结构被保存在存储系统。例如,为了使数据库服务器得以把数据保存在常规硬盘,数据库服务器构建所述数据以符合硬盘支持的块结构。从而,尽管大多数客户端向数据库服务器发出借助对诸如表和列之类逻辑结构的引用来引用数据的指令或查询,不过,数据库服务器实际上是按原始块的形式,从存储系统取回所述数据的。通过利用各种保存的元数据、索引和报头,数据库服务器能够把从存储系统取回的结构内的数据解读成逻辑表、行和列。为了方便起见,下面将把在存储系统保存数据库的“原始”或者基本数据的结构称为数据块或数据单元。关于数据块或数据单元说明的技术应被理解成同样适用于在存储系统保存原始数据的其它结构。
例如,当数据库服务器执行需要访问数据库中的逻辑结构的命令时,数据库服务器可利用映射数据以识别在存储系统中的保存该逻辑结构的基本数据的一个数据块或一系列数据块。数据库服务器随后向存储系统发送对被映射数据块的读取请求。响应所述请求,存储系统可从存储器读取识别的数据块,并把这些数据块发送给数据库服务器。数据库服务器随后可把数据块解读成表的逻辑行和列。数据库服务器根据它把数据块解读成逻辑行和列的结果,执行所述命令。
向存储系统请求和取回数据块所需的时间代表数据库服务器执行数据库命令所需的相当大量的时间。遗憾的是,在许多操作中,从存储系统取回的某些数据块中的一些或者甚至全部数据块可能与数据库命令的执行无关。例如,客户端可能仅仅请求表的某一特定列的数据。由于在存储系统保存所述表的基本数据块结构的缘故,可能要求数据库服务器请求由并不仅仅被请求列,而且还有其它各列的数据构成的数据块。数据库服务器随后将丢弃非请求列的数据。从而,非请求列的数据的传送是不必要的。
作为另一个例子,查询可包括使数据库服务器从结果集中过滤数据的某些谓词条件。例如,查询可请求其“color”列值为“red”的所有行。遗憾的是,在不取回表的所有基本数据的情况下,数据库服务器没有办法知道哪些行满足这样的谓词。例如,在一个100000行的列中,可能只有1行满足该谓词。虽然如此,为了找出该行,数据库服务器必须从存储系统取回该表的每个数据块,即使它们中的大多数与该查询无关。
联接操作
数据库服务器通常接收要求执行一类称为“联接操作”的操作的命令。一般来说,联接操作包含合并第一个表中的每一行和第二个表中与某些联接标准相符的每一行。对联接操作中所涉及的每个表来说,联接操作指定称为联接列或联接属性的一个或多个列的子集。联接标准可包括比较第一个表中的联接列和第二个表中的联接列。联接标准还可包括一个或多个条件。这些条件通常被表述成谓词,从而联接标准可被称为联接谓词。
“等值联接”操作是一种常见类型的联接操作,其中只有当第一个表的行A中的联接列的值与第二个表中的行B中的联接列的值相等时,才合并行A和行B。例如,下面的SQL语句规定其中合并名为“employee”的表中的每一行和名为“department”的表中的每一行,不过只有当这两行各自的“DepartmentlD”列具有相同的值时才进行所述合并的等值联接。
Figure BDA0000057681490000041
“反联接”是一种与“等值联接”类似,但是其中只有当各行的相应联接列的值不相等时才合并各行的联接操作。
数据库服务器通常依赖于称为“哈希联接”的算法高效地进行“等值联接”和“反联接”操作。一般来说,“哈希联接”操作包含两个阶段。在称为“构建阶段”的第一个阶段中,数据库服务器通过按照关于联接列的哈希函数,对第一个表的每一行进行哈希操作,产生哈希表。在称为“探测阶段”的第二个阶段中,数据库服务器随后反复扫描第二个表的每一行。对第二个表中的每一行来说,数据库服务器利用哈希函数和哈希表识别第一个表中具有相等的联接列值的行。当识别出相符的行时,所述行被合并,并被增加到联接操作的结果集中,假定所述行还与任何适用的联接谓词相符。
当联接操作中的两个表都较大时,数据库服务器可能无法把关于整个第一个表的哈希表放入存储器中。在这种情况下,可以划分表,并且数据库服务器可对各个分区进行嵌套循环。不过,在循环的每次重复期间,这种两阶段方法仍然基本相同。
布隆过滤器(Bloom filter)
布隆过滤器是一种用于识别不是集合的成员元素的概率型数据结构。通过允许一定的误差度,布隆过滤器允许用少得多的存储器表示很大的一组可能类型值的存在的状态。布隆过滤器具有这样的性质,以致对某一元素应用布隆过滤器可显示两种可能性之一:(1)该元素不在关于其得到所述布隆过滤器的集合中;或者(2)该元素是在关于其得到所述布隆过滤器的集合中的可能候选者。即,布隆过滤器的应用可能产生假正结果,不过决不会产生假负。产生和利用布隆过滤器的技术是公知的,例如在Burton H.Bloom的“Space/time trade-offs in hash coding withallowable errors”(Communications of the ACM,Volume 13,Issue 7,1970)中有描述。
布隆过滤器的示例性实现如下所示。布隆过滤器通常被实现成比特阵列。阵列中的每一项被初始化成0。随后通过对集合中的每个元素应用一个或多个哈希函数,填充该阵列,其中每个哈希函数的结果识别要设定为1的阵列项的索引。一旦关于该集合构成了布隆过滤器,就对照该布隆过滤器测试元素。例如,对照布隆过滤器测试元素的处理可包括对该元素应用相同的一个或多个哈希函数,并确定在通过对该元素应用所述一个或多个哈希函数而识别的任意索引的阵列的值是否仍然被设定为0。如果是,那么该元素被确定为不在由该布隆过滤器表示的集合中。
取决于所涉及的数据,一些数据库服务器利用“布隆过滤器”进行联接操作。数据库服务器可根据为联接操作的第一个表产生的哈希表,产生布隆过滤器。数据库服务器随后可利用该布隆过滤器来识别第二个表中其联接列的值被哈希操作到关于第一个表的哈希表中的空字段的一行或多行。从而可在联接操作中排除考虑这样的行,而不必实际检查哈希表。由于在许多情况下,哈希表查寻是成本较高的操作,因此这种技术常常导致联接操作的效率更高。同时,随后比较通过布隆过滤器的各行和实际的哈希表,以便具体识别第一个表的匹配行(如果有的话)。
由于任意给定联接列的可能值的数目可能较大——在许多情况下,实际上无穷大——因此,用于联接操作的哈希可能变得非常大。与哈希表相比,可以是任意大小的布隆过滤器通常要小得多。不过,为了使布隆过滤器有效,布隆过滤器的大小仍然必须相当大。
附图说明
附图中举例说明了本发明,但不是对本发明的限制,附图中,相似的附图标记表示相似的元件,其中:
图1是其中可实现这里说明的技术的系统的方框图;
图2是图解说明数据库服务器可把数据库操作转移到存储系统的方法的流程图;
图3是图解说明存储系统可预先过滤由数据库服务器请求的数据的方法的流程图;
图4是图解说明数据库服务器把联接操作的某些方面转移到存储系统的方法的流程图;和
图5是可在其上实现本发明的实施例的计算设备的方框图。
具体实施方式
在下面的说明中,为了便于说明,陈述了众多的具体细节,以便充分理解本发明。不过显然可在没有这些具体细节的情况下实践本发明。在其它情况下,以框图形式表示了公知的结构和设备,以避免不必要地模糊本发明。
1.0 概述
这里说明通过利用在存储系统的处理资源执行联接操作的各个方面,提高数据库系统的效率的技术,所述各个方面按照常规本应由数据库服务器执行。按照一个实施例,数据库服务器被配置成当从存储系统请求一系列的数据单元时,把描述为其请求数据的联接操作的各个方面的联接元数据包含在所述请求内。存储系统正常地从磁盘读取被请求的数据。不过,在把被请求的数据回送给存储系统之前,存储系统根据联接元数据过滤被请求的数据,从而排除保证与联接操作无关的一定量的数据。存储系统随后把过滤后的数据返回给数据库服务器。在这种技术的优点中突出的是,数据库系统避免一定量的数据在存储系统和数据库服务器之间的不必要传送。
按照一个实施例,联接元数据可指示为联接操作中的第一个表产生的哈希表,和/或这种哈希表的布隆过滤器。按照一个实施例,在把布隆过滤器传送给存储系统之前,数据库服务器把布隆过滤器转换成谓词。数据库服务器把所述布隆过滤器谓词连同零个或者更多的其它联接谓词一起发给存储系统。存储系统被配置成根据这些联接谓词,过滤取回的一系列数据单元。
按照一个实施例,存储系统被配置以用于识别保存于其中的数据单元中的原始数据的逻辑结构的至少一些的逻辑。例如,存储系统可被配置成识别诸如报头、数据块行,和数据块行字段之类的一般数据块元素。不过,存储系统不必知道被请求的数据单元的完整逻辑结构,例如被请求的数据所在的表的名称,或者某一字段所属于的列容器的名称。于是,来自数据库服务器的请求可包括指示数据库服务器如何把数据块的某些方面转换成某些逻辑结构的元数据。例如,数据库服务器可包括指示被请求的一系列数据块中的每个数据块行的第三个字段对应于联接列的元数据。
根据用于识别该一般数据单元结构的逻辑、指示数据库服务器如何把数据单元的某些方面转换成某些逻辑结构的元数据、和指示哈希表或布隆过滤器的元数据,存储系统可识别与和联接操作无关的各行对应的数据单元的各个部分。在把被请求的数据返回给数据库服务器之前,存储系统可从被请求的数据中排除这些无关的部分。在一个实施例中,存储系统可把数据单元转换成逻辑结构,比如行集,或行源,或表。转换后的逻辑结构或者代替数据单元,或者以排除对应于无关部分的任意数据的虚拟数据单元的形式被发送给数据库服务器。
2.0 结构概述
图1是其中可实现这里说明的技术的系统的方框图。图1的系统和下面说明的其它示例性实施例只是其中可实现这里说明的技术的许多不同系统中的一些例子。
参见图1,存储系统100为若干不同的客户端130,132,134,136和138使用的数据提供存储。这些客户端通过向数据库服务器120,122和124发送数据库命令,间接利用存储系统100。尽管图1的系统只描述了一个存储系统,不过在其它实施例中,通过并行地跨存储系统分发I/O请求,数据库服务器120-124可依赖于多个存储系统提供客户端130-138请求的数据。
2.1 示例性的数据库服务器和客户端
例如,数据库服务器120-124可以是通过进行存储、取回和处理保存在遍布于存储系统100的存储设备102和104上的数据库中的数据的操作,响应数据库命令的数据库服务器。例如,客户端130-138可以是向数据库服务器120-124发送数据库命令的数据库应用。客户端130-138和数据库服务器120-124可由一个或多个计算设备实现。客户端130-138的每个可通过任意各种手段,包括借助网络或本地接口的通信,与一个或多个数据库服务器120-124交互作用。在图解说明的实施例中,客户端130和132与数据库服务器120交互作用,客户端134与数据库服务器122交互作用,客户端136和138与数据库服务器124交互作用。在实际的实现中,同时与数据库服务器交互作用的客户端的数目和种类可能变化。
如上所述,客户端130-138和数据库服务器120-124之间的交互作用一般涉及以诸如数据库和表之类逻辑结构的形式传递数据。客户端130-138向数据库服务器120-124发送诸如SQL语句之类的数据库命令,每个命令引用这些逻辑结构中的某种逻辑结构。为了响应这些数据库语句中的许多数据库语句,数据库服务器120-124必须向存储系统100请求与引用的逻辑结构对应的原始数据,把所述原始数据转换成引用的逻辑结构,并基于所述转换,进行数据库语句指示的任何操作。在许多情况下,数据库服务器120-124将根据对引用的逻辑结构进行所述操作的结果,向客户端130-138返回称为结果集的逻辑结构。
数据库服务器120-124每个可通过任意各种手段,与存储系统100交互作用。例如,如图1中所示,每个数据库服务器120-124通过交换机110连接到存储系统100。例如,交换机110可以是具有用于连接到每个数据库服务器120-124的一个或多个接口的Infiniband交换机。交换机110还可以用于连接到存储系统100的一个或多个接口为特色。其它实施例可以用于连接到存储系统的其它手段为特色,包括经由任意各种通信链路的连接,以及在数据库服务器120-124的端口和在存储系统100的端口之间的直接连接(从而不需要交换机110)。
数据库服务器120-124和存储系统100之间的通信可以采取各种形式,包括利用比如串行ATA或iSCSI之类标准I/O协议的简单读/写请求。例如,响应于确定位于数据单元中某一地址的原始数据是进行某一操作所必需的,数据库服务器120可构造给存储系统100的简单读/写请求。作为响应,存储系统100可用所请求的数据单元进行答复。
按照本发明的一个实施例,数据库服务器120-124还可向存储系统100传送增强的I/O请求。这些请求不仅识别保存由数据库服务器120-124需要的原始数据的数据单元的位置,而且识别描述在把原始数据返回给数据库服务器120-124之前,存储系统100可进行的过滤原始数据的操作的各种元数据。例如,这样的元数据可包括描述数据单元中的原始数据的逻辑结构的某些方面的SQL谓词和元数据。数据库服务器120-124又可接收响应增强的I/O请求,来自存储系统100的过滤后的数据单元。在一个实施例中,甚至可用其它结构,比如行格式数据,重新格式化数据库服务器120-124接收的过滤后的数据单元。
在一些实施例中,可利用增强I/O协议传送增强请求和响应。适合于这种通信的一种示例性协议是Oracle的iDB协议,iDB协议又基于称为零损失零拷贝数据报协议(ZDP)的可靠数据报套接字协议。
2.2 示例性的存储系统
存储系统100是用于保存、管理和提供对数据的访问的系统。在一个实施例中,存储系统100是自含式计算设备,其物理上不同于实现数据库服务器120-124的一个或多个计算设备。例如,存储系统100可以是Exadata单元(cell)。不过,在其它实施例中,存储系统100和数据库服务器120-124之间的物理区别不是必需的。
存储系统100包括至少一个存储服务器组件106,和多个存储设备102和104。存储设备102和104是持久的非易失性存储器,其上保存组织成数据单元,比如数据块、数据区间和数据段的原始数据。例如,存储设备102和104都可以是常规硬盘。
存储服务器106包括实现用于保存、管理和提供对保存在存储设备102-104处的数据的访问的逻辑的一个或多个子组件。所述子组件可用例如硬件和/或在存储系统100中的一个或多个处理器上运行的一个或多个软件进程实现。存储服务器106可包含各种子组件,例如包括用于对于保存在设备102-104中的数据,实现常规的数据I/O操作和管理任务的存储控制器和/或存储驱动器。
作为另一个示例性子组件,存储服务器106可包含与数据库服务器120-124和/或交换机110连接的一个或多个接口。所述一个或多个接口使如上关于数据库服务器120-124讨论的请求和响应的原始数据或过滤后数据的交换更容易。
存储服务器106还可包括与所述一个或多个接口耦接的数据处理子组件。所述数据处理子组件可实现用于从在接收的I/O请求中识别的存储设备104或106中的位置读取原始数据的逻辑。根据和I/O请求一起接收的元数据,数据处理子组件还可在通过一个或多个接口返回原始数据之前,执行过滤该原始数据的操作。例如,服务器106可能已随同I/O请求一起,收到指示将应用于所请求的原始数据的SQL谓词的元数据。服务器106可过滤掉与所述谓词不相符的任何原始数据。
在一些实施例中,各种过滤操作的执行可能需要数据处理子组件按照识别由数据库服务器120-124分配给原始数据的逻辑结构的至少一部分的方式,解释原始数据。例如,数据处理子组件可以需要用于了解数据单元的哪些字节对应于数据报块的逻辑。数据处理单元还可以需要用于根据数据块报头,确定数据块的哪些字节对应于数据块行和/或逻辑行的逻辑。数据处理单元还可以需要用于识别每个数据块行或逻辑行中的字段的逻辑。数据处理子组件随后可利用它对所识别的数据的逻辑特性的了解,过滤其字段与某些过滤条件不相符的数据块行的数据。
在一些实施例中,数据处理组件还可利用与I/O请求关联的元数据帮助它了解数据单元的逻辑结构。例如,为了应用根据各行的“Address”列的值过滤各行的谓词,数据处理组件必须能够识别每个数据单元的哪些字段对应于“Address”列。为此,数据库服务器120-124可向存储系统100发送了指示哪个编号列被标记为“Address”的元数据。
数据库库组件可提供用于识别由数据库服务器120-124分配给原始数据的逻辑结构的至少一部分,并根据逻辑结构执行过滤操作的逻辑。按照一个实施例,数据库库组件包括用于实现由数据库服务器120-124实现的逻辑的子集的指令。数据库库组件可被优化,以仅仅包括存储服务器106为了执行数据库服务器通常实现的操作的特定子集所必需的逻辑。例如,所述操作的特定子集可以仅仅是能够在存储服务器106处高效执行的那些操作。
例如,数据库库组件可包括用于把数据单元解释为逻辑结构、用于根据谓词过滤这些逻辑结构、和用于聚合某些种类的数据的指令,不过可缺乏用于进行分类或其它数据库操作的指令。操作的子集可以随着实施例而变化——例如,存储系统100可包含与对数据库服务器120-124可用的资源相比,更适合于某些数据库操作的资源,从而,数据库库组件可以包括仅仅关于这些操作的指令。作为另一个例子,在数据库服务器120-124跨镜像相同数据库的多个存储系统100而发布I/O请求的实施例中,任意给定存储系统100可只访问表的一部分原始数据。从而,虽然每个存储系统100能够有效地进行仅仅涉及所述表的单行的操作,不过使用存储系统100进行涉及访问表中每一行的操作会不那么高效。从而,存储服务器106的数据库库组件中的操作的子集可省略关于涉及访问表中多行的操作的指令。
上面说明的存储系统100的各个组件和子组件仅仅举例说明了能够实现这里所述技术的存储系统的结构体系的一个例子。在其它存储系统中,这里说明的功能性可由一组不同的组件和子组件提供。事实上,子组件之间的工作的划分可因实施例而异。因此,下面一般将把上面描述成由存储系统100的任意组件或子组件执行的任意步骤归因于存储系统或存储服务器。
3.0 功能概述
3.1 数据库服务器工作流
图2是图解说明按照本发明的一个实施例,数据库服务器可把数据库操作转移到存储系统的方法的流程图200。图2只是这里说明的技术的一种示例性实现。其它实施例可以较少或者另外的步骤为特色,并且某些步骤可按不同的顺序执行。
在步骤210,数据库服务器从客户端接收数据库命令。例如,数据库服务器120可从客户端130接收SQL语句。
响应数据库命令,在步骤220,数据库服务器可识别数据库命令暗示的逻辑结构。例如,数据库服务器120可确定命令的执行需要来自表T1的数据。
响应识别暗示的逻辑结构,在步骤230,数据库服务器确定存储系统中,逻辑结构的原始数据所位于的一个或多个数据单元的一个或多个地址。所确定的地址可以是逻辑的或物理的,只要存储系统能够识别存储系统中对应于所述地址的物理位置。例如,数据库服务器120可保持指示存储系统100中,表T1的数据块所位于的区间的逻辑地址的映射数据。在一些实施例中,数据库服务器120还可把该逻辑地址转换成在存储设备104或106中的特定设备的物理地址。
此外,响应数据库命令,在步骤235,数据库服务器可识别将应用于该逻辑结构的一个或多个过滤条件。例如,来自客户端130的数据库命令可包括要对照表T1的每一行评估的谓词,以便确定表T1的各行中要返回给客户端的行的仅某一子集。作为另一个例子,数据库命令可规定联接操作。数据库服务器可以产生说明所述联接操作的某些特性的联接元数据,根据所述联接元数据可过滤T1。用于产生联接元数据的示例性技术在3.3节和4.3节中讨论。
在步骤240,数据库服务器向存储系统发送I/O请求。该I/O请求用在步骤230中确定的一个或多个地址识别一个或多个数据单元。例如,数据服务器120可通过交换机110,向存储系统100发送iDB协议请求,以读取与表T1对应的区间。
在步骤250,数据库服务器把描述在步骤235中识别的一个或多个过滤条件的元数据发给存储系统。可在步骤240的请求中发送所述元数据。也可在步骤240的I/O请求之前或之后发送所述元数据。在这种情况下,元数据可被保存在存储系统可访问的位置,随后由存储系统利用包括在I/O请求中的查寻标识符取回。
在步骤260,响应I/O请求,数据库服务器从存储系统接收过滤后的数据。例如,由于其对数据库服务器发送的I/O请求和元数据的解读,存储系统可能已执行多个步骤,比如:1)从存储系统的持久存储器中的指定地址取回一个或多个数据单元(在一些实施例中,通过从存储系统内的高速缓存取回数据单元可完成所述步骤);和2)对取回的一个或多个数据单元应用一个或多个过滤条件。这种情况下,数据库服务器接收的过滤后的数据会是根据一个或多个过滤条件的应用,从一个或多个数据单元中排除数据的结果。产生在步骤260中接收的过滤后数据的示例性步骤在3.2节和3.3节中讨论。
按照一个实施例,过滤后的数据的形式与原始的一个或多个数据单元(例如,数据块)相同,但是已使某些数据被排除(例如,未能与过滤条件相符的数据块行)。在另一个实施例中,数据库服务器可被配置成识别以与一个或多个数据单元的原始结构不同的结构返回的过滤后数据。例如,可借助iDB协议,用不存在与过滤条件不相符的某些数据的逻辑结构——例如行源、行集或表,返回过滤后的数据。在一个实施例中,过滤后的逻辑结构可被卷绕在“虚拟数据块”内。虚拟数据块可包含例如与其它数据块类似的结构——比如某些报头和/或传输信息——不过具有被设定为其有效负载的一行。
在步骤270,如果需要的话,数据库服务器对过滤后的数据进行另外的操作。例如,数据库服务器可对不论出于什么原因,数据库服务器确定不传送到存储系统的过滤后数据执行数据库操作。作为另一个例子,存储系统可能已随同过滤后的数据一起,传送指示存储系统仅仅部分应用了或者根本未应用某些过滤条件,于是数据库服务器应独自应用这些过滤条件的信息。作为另一个例子,数据库服务器可能向存储系统请求了关于表T1的数据,使得它可联接所述数据和数据库服务器在不同的I/O请求中向其请求数据的另一个表T2。于是,在了解到从过滤后的数据中排除了表T1的大部分(即使不是全部的话)无关行的情况下,数据库服务器可根据过滤后的数据,执行联接操作的最后步骤。
在步骤280,根据步骤260和/或步骤270的过滤后的数据,数据库服务器产生数据库命令的结果集,并把所述结果集返回给客户端。
3.2 存储系统工作流
图3是图解说明按照本发明的实施例,存储系统可预先过滤数据库服务器请求的数据的方法的流程图300。图3只是这里说明的技术的一种示例性实现。其它实施例可以更少的步骤或者另外的步骤为特色,一些步骤可按不同的顺序执行。
在步骤310,位于存储系统的存储服务器接收取回数据的I/O请求。所述请求识别在存储系统中保存所请求的数据的一个或多个数据单元的一个或多个位置。例如,存储服务器106接收的请求可识别与一系列的数据块对应的存储设备102上的一系列物理地址。这种请求可由实现图2的步骤240的数据库服务器120发送。或者,所述请求可以指定存储服务器能够转换成物理地址的逻辑地址。
在步骤320,存储服务器接收描述将关于在步骤310中请求的数据的逻辑结构进行的操作的一个或多个过滤条件的元数据。例如,所述元数据可包括以请求的数据所表示的逻辑列的值为条件的一个或多个SQL谓词。作为另一个例子,所述元数据可描述对请求的数据所表示的表要进行的联接操作的某一方面。这种请求可由实现图2的步骤250的数据库服务器120发送。在一个实施例中,可在步骤310的I/O请求中接收所述元数据。在一些实施例中,所述元数据可单独地接收自数据库服务器或另一来源,并保存在存储系统可访问的位置。在这样的实施例中,I/O请求可包括标识符,存储系统可依据所述标识符,定位适当的元数据。
在一个实施例中,元数据可能已被数据库服务器串行化或者编码,或者中转自数据库服务器。在这样的实施例中,从而步骤320另外需要重构和/或解码收到的元数据。
在步骤330,响应I/O请求,存储服务器从指示的一个或多个位置读取一个或多个数据单元。例如,存储服务器106可对存储设备102进行读取操作,以从指示的物理地址取回一系列的数据块。
在步骤340,响应认识到步骤320的元数据包括在I/O请求中,或者与I/O请求关联,存储服务器根据在步骤330中读取的一个或多个数据单元,和一个或多个过滤条件,产生过滤后的数据。在一个实施例中,存储服务器通过从所述一个或多个数据单元的工作副本中排除至少一些的数据,产生所述过滤后的数据,所述工作副本从而构成过滤后的数据。在另一个实施例中,存储服务器转换所述一个或多个数据单元,以符合至少部分反映作出请求的数据库服务器将如何解读所述一个或多个数据单元的逻辑结构。存储服务器随后从该逻辑结构中排除某些数据,从而产生过滤后的数据。
在任一个实施例中,存储服务器根据在步骤320的元数据中描述的一个或多个过滤条件,识别要被排除的数据。不管过滤后的数据是如何构成的,识别要排除的数据要求在步骤340的子步骤342,存储服务器把数据单元中的各种数据解读为逻辑结构,以便能够识别一个或多个数据单元的哪些部分对应于应从所述一个或多个数据单元中预先过滤的逻辑结构。例如,存储服务器106可把数据块的某些部分识别为对应于逻辑行,并据此把这些部分转换成逻辑行。
为了帮助解读一个或多个数据单元,例如可以作为数据库库组件中的指令,使数据库服务器的用于将数据单元转换成逻辑结构的通用逻辑的子集可以对存储服务器可用。此外,在步骤320中接收的元数据可包含关于数据库服务器如何解读所述一个或多个数据单元的进一步信息——例如表名、列名、字段类型、字段大小等等。
在步骤340的子步骤344,对在步骤342中识别的逻辑结构应用过滤条件。在步骤346,从关于I/O请求的结果中过滤掉与过滤条件不相符的那些逻辑结构。
作为步骤342-346的例子,存储服务器106可执行其数据库库组件中的指令,以定位在步骤340中读取的数据块中的报头信息。根据所述报头信息,存储服务器106可执行数据库库中的指令,以定位与表行对应的数据块的多个部分。存储服务器106可把每个这些部分转换成表行。传送给存储服务器106的过滤条件之一可以是谓词“Year>2000”。存储服务器106从而可利用在步骤320中发送的元数据,确定每个转换的表行中的哪一列对应于“Year”。根据这种认识,存储服务器106识别转换的各行中的哪些行不具有大于2000的Year列值(即,转换的各行中的哪些行与所述谓词不相符)。从对于I/O请求返回的结果中预先过滤掉所有这种行。
在步骤350,存储服务器用过滤后的数据答复I/O请求。存储服务器可按在存储系统的持久存储器中的原始数据的原始结构,构造过滤后的数据,或者存储服务器可按照诸如行集、行源或表之类的逻辑结构,构造过滤后的数据。在各个实施例中,所述答复还可包括与存储服务器进行的过滤操作有关的信息,以及各种其它元数据。
按照一个实施例,在步骤320中接收的元数据还指示数据库服务器需要的列的子集。从而,在步骤340,存储服务器还可排除不对应于这些列的任意数据。
3.3 联接过滤标准
按照一个实施例,数据库服务器可把联接操作所需的某些任务转移到存储系统。例如,在上面的步骤320和250中传送给存储系统的过滤条件可包括描述联接操作的某些方面的信息。在一个实施例中,转移到存储系统的任务包括通过排除与被确定为和另一个联接表中的任意行不相符的某些行对应的任意数据,预先过滤与联接操作有关的表之一的数据。
图4是图解说明按照本发明的实施例,数据库服务器把联接操作的某些方面转移到存储系统的方法的流程图400。图4只是这里说明的技术的一种示例性实现。其它实施例可以更少的步骤或者另外的步骤为特色,一些步骤可按不同的顺序执行。
在步骤410,响应开始联接操作的执行,数据库服务器与一个或多个存储系统通信,以便请求和接收该联接操作所涉及的第一个表的数据。例如,数据库服务器122可接收以ID为联接列,对表T1和T2进行等值联接的请求。从而,数据库服务器122可向存储系统100请求表T1的数据。
在步骤420,利用第一个表的数据,数据库服务器执行联接操作的构建阶段——即,数据库服务器构建第一个表的哈希表,所述哈希表是根据对第一个表的联接列应用哈希函数而索引的。从而,例如,通过根据每一行的ID列的值对该行应用哈希函数,数据库服务器122可构造表T1的哈希表H1。
在步骤430,数据库服务器根据所述哈希表,产生布隆过滤器。可按照在背景技术部分中讨论的技术执行该步骤。例如,数据库服务器122可根据哈希表H1,产生布隆过滤器BF。
在步骤440,数据库服务器把布隆过滤器与关于第二个表的数据的一个或多个请求关联地传送给一个或多个存储系统。例如,可利用比如在步骤250或320中说明的步骤,把布隆过滤器BF发送给存储服务器106。可按诸如步骤240或310之类的步骤,与关于表示表T2的原始数据的请求关联地发送布隆过滤器。按照一个实施例,数据库服务器用SYS_OP_BLOOM_FILTER(BF,C1,C2,...)形式的“布隆过滤器谓词”封装布隆过滤器,其中BF是布隆过滤器的比特向量表示,并且C1,C2,...识别联接列。存储服务器又被配置以用于将该谓词识别为封装布隆过滤器的逻辑。
在步骤450,存储服务器利用诸如图3的步骤340之类的步骤,使用布隆过滤器预先扫描和过滤与第二个表对应的数据单元。例如,存储服务器106可按图3的步骤330,从存储设备102或104读取表T2的数据块。存储服务器106随后可按图3的步骤342,把表T2的数据块转换成行集。存储服务器106随后可按图3的步骤344,对照所述行集中的每一行的连接列评估布隆过滤器。由于保证不命中布隆过滤器的任意行不与表T1联接,因此可按图3的步骤346从所述行集中排除这些行。
在步骤460,在步骤450中产生的过滤后的数据被返回给数据库服务器。例如,存储服务器106可把过滤后的行集返回给数据库服务器122。
在步骤470,数据库服务器根据过滤后的数据,执行联接操作的剩余步骤。例如,由于布隆过滤器可能产生假正,从而在识别要合并的各行之前,利用哈希表在数据库服务器进行进一步的过滤。作为另一个例子,数据库服务器122可扫描过滤后的行集,以识别过滤后的行集和T1的各行之间的匹配。随后可合并匹配的行以形成联接结果集。注意作为联接操作的结果,联接结果集中的数据包含用保存在位于存储系统的持久存储器中的至少两个不同数据块中的原始数据构造的逻辑行。
在一些实施例中,除布隆过滤器外的数据可被用于向存储系统描述联接操作的多个方面。例如,数据库服务器可以只是把在步骤420中产生的整个哈希表传送给存储系统,而不是布隆过滤器。作为另一个例子,存储系统可以识别不在第一个表的联接列中的值的集合,随后根据识别出的值,把多个简单的谓词传送给存储系统。事实上,代替布隆过滤器,或者除了布隆过滤器之外,可把识别第一个表的特性的任意数据传送给存储系统,并且存储系统可根据这些特性进行过滤。
在一个实施例中,可根据数据库系统的基础结构,选择用于在步骤420和430中产生哈希表和布隆过滤器的特定哈希函数。例如,可根据已知的存储器或带宽约束条件,优化哈希表和布隆过滤器的大小。或者,所使用的哈希函数的种类可专门适合于该数据库系统的基础结构。
在一个实施例中,布隆过滤器(或者指示联接操作的各个方面的任何其它数据)可以仅仅是在存储系统评估的多种标准之一。例如,在步骤440,除了布隆过滤器之外,数据库服务器可以传送指定为联接操作规定的其它谓词的元数据。例如,数据库服务器可以响应诸如下述的SQL语句,启动连接操作:
Figure BDA0000057681490000191
因此,在步骤440,数据库服务器可以基于department表发送包含布隆过滤器的元数据,以及指示两个谓词:“employee.DepartmentID>1”和“employee.status IN(‘full-time’,‘leave’)”的元数据。存储系统随后可根据所述布隆过滤器和所述两个谓词过滤取回的数据块。
4.0 其它实现例子
4.1 确定是否产生/发送布隆过滤器
按照一个实施例,数据库服务器并不总是产生布隆过滤器,和/或把布隆过滤器(或者其它联接条件)发送给存储服务器。取决于所涉及的各个表的大小、联接列中的数据的类型,和联接列中的相异值的数目,更高效的可能是在不产生哈希表和/或布隆过滤器的情况下进行联接操作。例如,产生哈希表或布隆过滤器需要不希望的大量内存和/或处理时间。作为另一个例子,和大多数的谓词不同,布隆过滤器谓词可能特别大。从而,就I/O带宽而论,与取回未过滤的原始数据相比,把布隆过滤器传送给存储系统可能成本高昂。
数据库服务器已被配置成执行成本计算函数,以关于任意给定的联接操作,估计和在没有布隆过滤器的情况下进行探测相比,产生布隆过滤器是否更高效。按照一个实施例,必须调整这些成本计算函数,以考虑因把布隆过滤器传送给存储系统而引起的对性能的影响。在一些情况下,当被传送到存储系统时,在数据库服务器产生和评估效率低的布隆过滤器事实上可能产生好处,因为通过根据布隆过滤器预先过滤数据,存储系统能够显著降低带宽消耗。在其它情况下,数据库服务器可估计布隆过滤器的应用可能会在数据库服务器获得更多的好处。从而,数据库服务器可能会产生布隆过滤器,但不把布隆过滤器传送给存储系统。
在一个实施例中,可以使用类似的处理来确定是否产生哈希表,把哈希表发给存储系统,或者把任何其它联接标准发给存储系统。
成本计算函数的确切实现会因环境而异。例如,取决于诸如带宽可用性、在数据库服务器和存储系统的计算功率、持久存储器速度之类的因素,与在存储系统和/或数据库服务器的资源使用的感知成本相比,感知的降低带宽消耗的好处常常不同。
4.2 仅仅传送一次布隆过滤器
按照一个实施例,与单一的I/O请求相反,数据库服务器借助多个I/O请求,从一个或多个存储系统取回联接操作的第二个表的数据。为了避免随同所述多个I/O请求中的每个I/O请求一起发送联接标准,数据库服务器可以仅仅传送一次联接标准。一个或多个存储系统可以保存该联接标准,并将该联接标准重复用于所述多个请求中的每个请求。由于诸如布隆过滤器或哈希表之类的某些联接标准的大小可能非常大,因此在许多情况下,这种技术将大大降低多个I/O请求消耗的带宽。
例如,由于大小约束条件的缘故,数据库服务器可确定通过多个I/O请求取回第二个表的数据。在第一个I/O请求之前,或者和第一个I/O请求一起,数据库服务器可发送关于第一个表的布隆过滤器。数据库服务器可以使布隆过滤器和利用标识符的上下文关联。存储系统可高速缓存该布隆过滤器和该上下文标识符。随后,所述多个I/O请求中的每个I/O请求可提供相同的上下文标识符。当识别出与I/O请求一起发送的上下文标识符时,存储服务器可定位高速缓存的布隆过滤器,并将该布隆过滤器应用于根据该I/O请求取回的任何数据块。
作为另一个例子,数据库服务器可依赖于镜像一个表的数据块的多个存储系统。数据库可并行地向不同的存储系统请求原始数据的不同部分,以便更快地取回原始数据。代替把布隆过滤器传送给各个存储系统,数据库服务器可将该布隆过滤器推送到所有存储系统可访问的位置(比如共用存储器或者指定的存储系统)。和前面的例子中一样,通过利用上下文标识符,多个存储系统随后可以引用和访问该布隆过滤器。
作为又一个例子,联接操作可分布在多个数据库服务器之间。借助在数据库服务器之间共用上下文标识符,可为整个联接操作确立联接操作的上下文。从而,如果一个数据库服务器产生布隆过滤器,那么可在来自所有数据库服务器的I/O请求中引用该布隆过滤器,而数据库服务器不必非得重新产生该布隆过滤器。
4.3 把整个联接操作传给存储服务器
按照一个实施例,联接操作的其它方面也可被传给多个存储系统。例如,存储服务器可负责图4的所有或大部分步骤。为此,数据库服务器可把关于联接操作的更多信息发给该存储服务器,比如第一个表和联接列的标识。利用该信息,该存储服务器可进行构建阶段的各个方面和/或产生联接的行集。在一个实施例中,多个存储服务器可参与联接操作的这些方面,并且可在多个存储系统之间共享诸如哈希表或布隆过滤器之类的信息。
4.4 处理不能参与预先过滤的存储系统
按照一个实施例,数据库服务器所依赖的存储系统中的至少一个存储系统可能缺少对参与一些或全部的预先过滤操作所必需的组件或子组件。例如,数据库服务器可能既依赖于存储系统100,又依赖于传统的存储系统。因此,该数据库服务器被配置成在把特定的过滤操作发给给定的存储系统之前,确定该存储系统是否支持该操作。例如,可根据保存的在与存储系统的初始交换中获取的配置信息,实现这样的确定。根据所述确定,数据库服务器可确定是否发送增强的I/O请求,以及把增强的I/O请求发送给谁。例如,数据库服务器可被配置成当为不一定因预先过滤而获益较多的操作请求数据时,采用传统的存储器阵列,但是当为其它操作请求数据时,采用存储系统100。
4.5 三个以上的表之间的联接
数据库服务器常常被要求进行不止两个表之间的联接。这样的联接操作可被内部实现成一系列的“嵌套”联接。例如,下述SQL语句规定关于三个表的联接操作:表1,表2和表3。
Figure BDA0000057681490000221
数据库服务器可通过首先联接其中的两个表(例如,把表2联接到表3),执行这样的联接。随后把该联接的结果与最后一个表联接(例如,把表2和表3的并集与表1联接)。如果数据库服务器依赖于布隆过滤器,那么为第一次联接操作产生布隆过滤器(例如,将对表3应用的关于表2的布隆过滤器),和为第二次联接操作产生布隆过滤器(例如,将对表2和表3的并集应用的关于表1的布隆过滤器)。
在一个实施例中,当处理不止两个表之间的联接时,数据库服务器使存储系统不仅根据被请求的表直接与之联接的表的布隆过滤器,而且根据最近的联接操作的结果所将联接的表的布隆过滤器,预先过滤被请求的表的原始数据。例如,如果将根据表2的布隆过滤器BF2探测表3,将根据表1的布隆过滤器BF1探测表3和表2的结果,那么数据库服务器可把BF1和BF2传给存储系统,以便应用于表3的数据块。
在一个实施例中,可利用最近的联接操作的结果随后将联接的表的布隆过滤器,过滤所述最近的联接操作中的两个表的原始数据。从而,在上面的情况下,在产生表2的布隆过滤器之前,数据库服务器可把BF1传给存储系统,以便应用于表2的数据块。
5.0 硬件概述
按照一个实施例,这里说明的技术由一个或多个专用计算设备实现。所述专用计算设备可被硬连线以实现所述技术,或者可包括永久被编程以实现所述技术的数字电子设备,比如一个或多个专用集成电路(ASIC)或现场可编程门阵列(FPGA),或者可包括被编程为按照固件、存储器、其它存储装置或它们的组合中的程序指令实现所述技术的一个或多个通用硬件处理器。这样的专用计算设备还可结合定制的硬连线逻辑、ASIC或FPGA与定制的程序设计以实现所述技术。所述专用计算设备可以是桌上型计算机系统、便携式计算机系统、手持设备、连网设备,或者包含硬连线和/或程序逻辑以实现所述技术的任何其它设备。
例如,图5是图解说明可在其上实现本发明的一个实施例的计算机系统500的方框图。计算机系统500包括总线502,或者传送信息的其它通信机构,和与总线502耦接的用于处理信息的硬件处理器504。例如,硬件处理器504可以是通用微处理器。
计算机系统500还包括与总线502耦接的用于保存信息和将由处理器504执行的指令的主存储器506,比如随机存取存储器(RAM)或者其它动态存储设备。主存储器506还可用于保存在由处理器504执行的指令的执行期间的临时变量或其它中间信息。当被保存在处理器504可访问的存储介质中时,这样的指令使计算机系统500变成为执行在指令中规定的操作而定制的专用机器。
计算机系统500还包括与总线502耦接的只读存储器(ROM)508或其它静态存储设备,用于为处理器504保存静态信息和指令。提供诸如磁盘或光盘之类的存储设备510,并使之与总线502耦接以用于保存信息和指令。
计算机系统500可通过总线502与显示器512,比如阴极射线管(CRT)耦接,以便向计算机用户显示信息。包括字母数字键和其它键的输入设备514与总线502耦接,以便把信息和命令选择传送给处理器504。另一种用户输入设备是光标控制器516,比如鼠标、跟踪球或光标方向键,用于把方向信息和命令选择传送给处理器504以及控制在显示器512上的光标移动。这种输入设备一般具有在两个轴,即第一轴(例如,x轴)和第二轴(例如,y轴)的两个自由度,使该装置可以指定平面中的位置。
计算机系统500可利用与计算机系统结合,使计算机系统500成为专用机器,或者把计算机系统500编程为专用机器的定制硬连线逻辑、一个或多个ASIC或FPGA、固件和/或程序逻辑来实现这里说明的技术。按照一个实施例,响应执行包含在主存储器506中的一个或多个指令的一个或多个序列的处理器504,计算机系统500执行这里的技术。这样的指令可从另一个存储介质,比如存储设备510被读入主存储器506中。包含在主存储器506中的指令序列的执行使处理器504执行这里说明的处理步骤。在备选实施例中,代替软件指令,或者与软件指令结合,可以使用硬连线电路。
这里使用的术语“存储介质”指的是保存使机器按照特定方式工作的数据和/或指令的任意介质。这样的存储介质可包括非易失性存储和/或易失性介质。例如,非易失性介质包括光盘或磁盘,比如存储设备510。易失性介质包括动态存储器,比如主存储器506。存储介质的常见形式包括,例如,软盘、柔性磁盘、硬盘、固态驱动器、磁带或者任何其它磁性数据存储介质、CD-ROM、任何其它任何光学数据存储介质、具有小孔图案的任何其它物理介质、RAM、PROM、EPROM、FLASH-EPROM、NVRAM、任何其它存储芯片或存储盒。
存储介质不同于传输介质,不过可以与传输介质一起使用。传输介质在存储介质之间参与传送信息。例如,传输介质包括同轴电缆、铜线和光纤,包括包含总线502的导线。传输介质也可采取声波或光波的形式,比如在无线电波和红外数据通信中产生的声波或光波。
各种形式的介质可参与向处理器504运送一个或多个指令的一个或多个序列以便执行。例如,指令最初可承载在远程计算机的磁盘或固态驱动器上。远程计算机可把指令装载到其动态存储器中,和利用调制解调器通过电话线发送该指令。计算机系统500本地的调制解调器能够接收电话线上的数据,并使用红外发射器把数据转换成红外信号。红外探测器能够接收承载在红外信号中的数据,并且适当的电路能够把数据放在总线502上。总线502把数据运送到主存储器506,处理器504从主存储器506取回并执行指令。在被处理器504执行之前或之后,主存储器506接收的指令可选地可被保存在存储设备510上。
计算机系统500还包括与总线502耦接的通信接口518。通信接口518提供与网络链路520耦接的双向数据通信,网络链路520与本地网络522连接。例如,通信接口518可以是综合业务数字网(ISDN)卡、线缆调制解调器、卫星调制解调器、或者提供与对应种类的电话线的数据通信连接的调制解调器。作为另一个例子,通信接口518可以是提供与兼容LAN的数据通信连接的局域网(LAN)卡。也可实现无线链路。在任何这样的实现中,通信接口518发送和接收承载表示各种信息的数字数据流的电、电磁或光信号。
网络链路520一般提供通过一个或多个网络到其它数据设备的数据通信。例如,网络链路520可提供通过本地网络522到主计算机524,或者到由因特网服务提供商(ISP)526操作的数据设备的连接。ISP 526又通过全球分组数据通信网络(目前一般称为“因特网”)528提供数据通信服务。本地网络522和因特网528都使用承载数字数据流的电、电磁或光信号。往来于计算机系统500运送数字数据的通过各种网络的信号和在网络链路520上并通过通信接口518的信号是传输介质的示例性形式。
通过网络、网络链路520和通信接口518,计算机系统500能够发送消息和接收包括程序代码的数据。在因特网例子中,服务器530可通过因特网528、ISP 526、本地网络522和通信接口518发送应用程序的所请求的代码。
接收的代码可在被接收时由处理器504执行,和/或可保存在存储设备510或者其它非易失性存储器中,以便稍后执行。
在上面的说明书中,关于因实现而异的众多具体细节说明了本发明的实施例。本发明仅由本申请提出的权利要求(包括任何后续修改)限定。这里关于包含在权利要求中的术语明确陈述的任何定义应决定在权利要求中使用的这些术语的含义。从而,权利要求中未明确陈述的任何限制、元件、性质、特征、优点或属性不应以任何方式限制权利要求的范围。因此,说明书和附图应被看作对本发明的举例说明,而不是对本发明的限制。

Claims (46)

1.一种方法,包括:
数据库服务器向数据存储系统发送:
a)对数据的请求,所述请求识别保存在数据存储子系统中的一个或多个数据单元,其中所述一个或多个数据单元是数据存储系统保存第一个表的数据的数据单元;和
b)描述第二个表的一个或多个特性的元数据;
其中所述请求是当被数据存储系统解读时,使数据存储系统从存储器取回所述一个或多个数据单元的通信;
其中所述元数据是当被数据存储系统解读时,使数据存储系统根据取回的一个或多个数据单元和在所述元数据中描述的第二个表的一个或多个特性,产生过滤后的数据的元数据;和
响应所述请求,数据库服务器从数据存储系统接收过滤后的数据;
其中所述方法由一个或多个计算设备执行。
2.按照权利要求1所述的方法,还包括:
在把元数据发送给数据存储系统之前,根据第二个表的一个或多个属性产生哈希表;
其中所述一个或多个特性包含所述哈希表。
3.按照权利要求1所述的方法,还包括:
在把元数据发送给数据存储系统之前,根据第二个表的一个或多个属性产生哈希表;
在把元数据发送给数据存储系统之前,根据第二个表的一个或多个属性产生布隆过滤器;
其中所述一个或多个特性中的至少一个特性以所述布隆过滤器为基础。
4.按照权利要求3所述的方法,还包括:
在把元数据发送给数据存储系统之前,根据所述布隆过滤器产生至少一个谓词;
其中所述一个或多个特性包含所述至少一个谓词。
5.按照权利要求1所述的方法,其中所述一个或多个数据单元是原始数据单元,其中识别所述一个或多个数据单元包含识别保存所述原始数据单元的一个或多个位置。
6.按照权利要求5所述的方法,其中过滤后的数据包括一个或多个原始数据单元。
7.按照权利要求1所述的方法,还包括向数据存储系统发送指示第一个表的逻辑结构的至少一部分的元数据。
8.按照权利要求1所述的方法,还包括数据库服务器根据过滤后的数据,对第一个表和第二个表进行第一联接操作。
9.按照权利要求8所述的方法,
其中所述元数据还描述第三个表的一个或多个特性;
其中所述元数据是当被数据存储系统解读时,使数据存储系统还根据在所述元数据中描述的第三个表的一个或多个特性,产生过滤后的数据的元数据;
所述方法还包括数据库服务器根据第一联接操作的结果,对第一个表、第二个表和第三个表进行第二联接操作。
10.一种进行联接操作的方法,所述方法包括:
数据库服务器向数据存储系统发送:
a)对数据的请求,所述请求识别保存在数据存储子系统中的一个或多个数据单元,其中所述一个或多个数据单元是数据存储系统保存第一个表的数据的数据单元;和
b)一个或多个联接过滤条件;
其中所述请求是当被数据存储系统解读时,使数据存储系统从存储器取回所述一个或多个数据单元;使得数据存储系统通过对取回的一个或多个数据单元应用所述一个或多个联接过滤条件,产生过滤后的数据的通信;和
响应所述请求,所述数据库服务器从数据存储系统接收过滤后的数据;
根据过滤后的数据,进行联接操作;
其中所述方法由一个或多个计算设备执行。
11.按照权利要求10所述的方法,还包括:
在把所述一个或多个联接过滤条件发给数据存储系统之前,根据第二个表的一个或多个属性产生哈希表;
在把所述一个或多个联接过滤条件发给数据存储系统之前,根据第二个表的一个或多个属性产生布隆过滤器;
其中所述一个或多个联接过滤条件中的至少一个联接过滤条件以布隆过滤器为基础。
12.按照权利要求11所述的方法,还包括:
在把所述一个或多个联接过滤条件发给数据存储系统之前,根据布隆过滤器,产生至少一个谓词;
其中所述一个或多个联接过滤条件包含所述至少一个谓词。
13.按照权利要求10所述的方法,其中所述一个或多个数据单元是原始数据单元,其中识别所述一个或多个数据单元包含识别保存所述原始数据单元的一个或多个位置。
14.按照权利要求13所述的方法,其中过滤后的数据包括一个或多个原始数据单元。
15.按照权利要求10所述的方法,还包括向数据存储系统发送指示第一个表的逻辑结构的至少一部分的元数据。
16.一种包括数据存储系统执行下述步骤的方法:
接收取回数据的请求,其中所述请求识别在数据存储系统保存被请求数据的一个或多个数据单元的一个或多个位置;
接收元数据,所述元数据描述要关于被请求数据执行的联接操作的一个或多个过滤条件;
响应所述请求,从所述一个或多个位置读取所述一个或多个数据单元;
根据所述一个或多个联接过滤条件,从所述一个或多个数据单元中过滤数据,从而产生过滤后的数据;
响应所述请求,其中响应包括过滤后的数据;
其中所述方法由一个或多个计算设备执行。
17.按照权利要求16所述的方法,其中所述一个或多个过滤条件包括哈希表。
18.按照权利要求16所述的方法,其中所述一个或多个过滤条件包括布隆过滤器。
19.按照权利要求16所述的方法,其中所述一个或多个过滤条件包括基于布隆过滤器的谓词。
20.按照权利要求16所述的方法,还包括数据存储系统执行下述步骤:
接收元数据,所述元数据指示其数据被保存在所述一个或多个数据单元中的表的逻辑结构的至少一部分;和
根据所述逻辑结构的至少一部分,识别由所述一个或多个数据单元代表的一个或多个属性值;
其中从所述一个或多个数据单元中过滤数据还基于把所述一个或多个过滤条件应用于识别出的一个或多个属性值。
21.按照权利要求16所述的方法,其中所述响应还包括所述一个或多个数据单元中的至少一个数据单元,其中所述一个或多个数据单元中的所述至少一个数据单元不被过滤。
22.一种包括数据存储系统执行下述步骤的方法:
从数据库服务器接收对数据的请求;
其中所述请求包括联接数据,所述联接数据指示联接保存在数据存储系统的数据单元中的数据行的操作;
响应于所述请求:
从存储器读取多个数据单元;
产生响应数据,其中产生响应数据包括通过根据联接数据至少过滤所述多个数据单元,以排除对所指示的操作将不被联接的一行或多行,来产生响应数据;
把响应数据发送给数据库服务器。
23.按照权利要求22所述的方法,其中产生响应数据还包括通过至少联接第一数据单元的一行或多行与第二数据单元的一行或多行,从而产生将在响应数据中返回给数据库服务器的一个或多个联接行,来产生响应数据。
24.保存指令的一个或多个存储介质,当被一个或多个计算设备执行时,所述指令导致下述步骤的执行:
数据库服务器向数据存储系统发送:
a)对数据的请求,所述请求识别保存在数据存储子系统中的一个或多个数据单元,其中所述一个或多个数据单元是数据存储系统保存第一个表的数据的数据单元;和
b)描述第二个表的一个或多个特性的元数据;
其中所述请求是当被数据存储系统解读时,使数据存储系统从存储器取回所述一个或多个数据单元的通信;
其中所述元数据是当被数据存储系统解读时,使数据存储系统根据取回的一个或多个数据单元,和在元数据中描述的第二个表的一个或多个特性,产生过滤后的数据的元数据;和
响应所述请求,数据库服务器从数据存储系统接收过滤后的数据;
其中所述方法由一个或多个计算设备执行。
25.按照权利要求24所述的一个或多个存储介质,其中当被一个或多个计算设备执行时,所述指令还导致:
在把元数据发送给数据存储系统之前,根据第二个表的一个或多个属性产生哈希表;
其中所述一个或多个特性包含所述哈希表。
26.按照权利要求24所述的一个或多个存储介质,其中当被一个或多个计算设备执行时,所述指令还导致:
在把元数据发送给数据存储系统之前,根据第二个表的一个或多个属性产生哈希表;
在把元数据发送给数据存储系统之前,根据第二个表的一个或多个属性产生布隆过滤器;
其中所述一个或多个特性中的至少一个特性以所述布隆过滤器为基础。
27.按照权利要求26所述的一个或多个存储介质,其中当被一个或多个计算设备执行时,所述指令还导致:
在把元数据发送给数据存储系统之前,根据所述布隆过滤器,产生至少一个谓词;
其中所述一个或多个特性包含所述至少一个谓词。
28.按照权利要求24所述的一个或多个存储介质,其中所述一个或多个数据单元是原始数据单元,其中识别所述一个或多个数据单元包含识别保存所述原始数据单元的一个或多个位置。
29.按照权利要求28所述的一个或多个存储介质,其中过滤后的数据包括一个或多个原始数据单元。
30.按照权利要求24所述的一个或多个存储介质,其中当被一个或多个计算设备执行时,所述指令还导致向数据存储系统发送指示第一个表的逻辑结构的至少一部分的元数据。
31.按照权利要求24所述的一个或多个存储介质,其中当被一个或多个计算设备执行时,所述指令还使数据库服务器根据过滤后的数据,对第一个表和第二个表进行第一联接操作。
32.按照权利要求31所述的一个或多个存储介质,
其中所述元数据还描述第三个表的一个或多个特性;
其中所述元数据是当被数据存储系统解读时,使数据存储系统还根据在所述元数据中描述的第三个表的所述一个或多个特性,产生过滤后的数据的元数据;
其中当被一个或多个计算设备执行时,所述指令还使数据库服务器根据第一联接操作的结果,对第一个表、第二个表和第三个表进行第二联接操作。
33.保存指令的一个或多个存储介质,当被一个或多个计算设备执行时,所述指令导致联接操作的执行,其中联接操作的执行包括:
数据库服务器向数据存储系统发送:
a)对数据的请求,所述请求识别保存在数据存储子系统中的一个或多个数据单元,其中所述一个或多个数据单元是数据存储系统保存第一个表的数据的数据单元;和
b)一个或多个联接过滤条件;
其中所述请求是当被数据存储系统解读时,使数据存储系统从存储器取回所述一个或多个数据单元;数据存储系统通过对取回的一个或多个数据单元应用所述一个或多个联接过滤条件,产生过滤后的数据的通信;和
响应所述请求,数据库服务器从数据存储系统接收过滤后的数据;
根据过滤后的数据,进行联接操作。
34.按照权利要求33所述的一个或多个存储介质,其中当被一个或多个计算设备执行时,所述指令还导致:
在把所述一个或多个联接过滤条件发给数据存储系统之前,根据第二个表的一个或多个属性产生哈希表;
在把所述一个或多个联接过滤条件发给数据存储系统之前,根据第二个表的一个或多个属性产生布隆过滤器;
其中所述一个或多个联接过滤条件中的至少一个联接过滤条件以布隆过滤器为基础。
35.按照权利要求34所述的一个或多个存储介质,其中当被一个或多个计算设备执行时,所述指令还导致:
在把所述一个或多个联接过滤条件发给数据存储系统之前,根据布隆过滤器产生至少一个谓词;
其中所述一个或多个联接过滤条件包含所述至少一个谓词。
36.按照权利要求33所述的一个或多个存储介质,其中所述一个或多个数据单元是原始数据单元,其中识别所述一个或多个数据单元包含识别保存所述原始数据单元的一个或多个位置。
37.按照权利要求36所述的一个或多个存储介质,其中过滤后的数据包括一个或多个原始数据单元。
38.按照权利要求33所述的一个或多个存储介质,其中当被一个或多个计算设备执行时,所述指令还导致向数据存储系统发送指示第一个表的逻辑结构的至少一部分的元数据。
39.保存指令的一个或多个存储介质,当被一个或多个计算设备执行时,所述指令导致在数据存储系统执行下述步骤:
接收取回数据的请求,其中所述请求识别在数据存储系统保存被请求数据的一个或多个数据单元的一个或多个位置;
接收元数据,所述元数据描述要关于被请求数据执行的联接操作的一个或多个过滤条件;
响应所述请求,从所述一个或多个位置读取所述一个或多个数据单元;
根据所述一个或多个联接过滤条件,从所述一个或多个数据单元过滤数据,从而产生过滤后的数据;
响应所述请求,其中所述响应包括过滤后的数据。
40.按照权利要求39所述的一个或多个存储介质,其中所述一个或多个过滤条件包括哈希表。
41.按照权利要求39所述的一个或多个存储介质,其中所述一个或多个过滤条件包括布隆过滤器。
42.按照权利要求39所述的一个或多个存储介质,其中所述一个或多个过滤条件包括基于布隆过滤器的谓词。
43.按照权利要求39所述的一个或多个存储介质,其中当被一个或多个计算设备执行时,所述指令还使数据存储系统执行下述步骤:
接收元数据,所述元数据指示其数据被保存在所述一个或多个数据单元中的表的逻辑结构的至少一部分;和
根据所述逻辑结构的至少一部分,识别由所述一个或多个数据单元代表的一个或多个属性值;
其中从所述一个或多个数据单元中过滤数据还基于把所述一个或多个过滤条件应用于识别出的一个或多个属性值。
44.按照权利要求39所述的一个或多个存储介质,其中所述响应还包括所述一个或多个数据单元中的至少一个数据单元,其中所述一个或多个数据单元中的所述至少一个数据单元不被过滤。
45.保存指令的一个或多个存储介质,当被一个或多个计算设备执行时,所述指令导致在数据存储系统执行下述步骤:
从数据库服务器接收对数据的请求;
其中所述请求包括联接数据,所述联接数据指示联接保存在数据存储系统的数据单元中的数据行的操作;
响应所述请求:
从存储器读取多个数据单元;
产生响应数据,其中产生响应数据包括通过根据联接数据至少过滤所述多个数据单元,以排除对于所指示的操作将不被联接的一行或多行,来产生响应数据;
把响应数据发送给数据库服务器。
46.按照权利要求45所述的一个或多个存储介质,其中产生响应数据还包括通过至少联接第一数据单元的一行或多行与第二数据单元的一行或多行,从而产生将在响应数据中返回给数据库服务器的一个或多个联接行,来产生响应数据。
CN200980142596.6A 2008-09-19 2009-09-18 在具有卸载的布隆过滤器的智能存储器中利用协同并行过滤的哈希联接 Active CN102203773B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US19266808P 2008-09-19 2008-09-19
US61/192,668 2008-09-19
US9987208P 2008-09-24 2008-09-24
US61/099,872 2008-09-24
PCT/US2009/057526 WO2010033834A1 (en) 2008-09-19 2009-09-18 Hash join using collaborative parallel filtering in intelligent storage with offloaded bloom filters

Publications (2)

Publication Number Publication Date
CN102203773A true CN102203773A (zh) 2011-09-28
CN102203773B CN102203773B (zh) 2014-03-19

Family

ID=41323504

Family Applications (3)

Application Number Title Priority Date Filing Date
CN200980142596.6A Active CN102203773B (zh) 2008-09-19 2009-09-18 在具有卸载的布隆过滤器的智能存储器中利用协同并行过滤的哈希联接
CN200980142588.1A Active CN102197395B (zh) 2008-09-19 2009-09-18 存储器端存储请求管理
CN201510182420.0A Active CN104731981B (zh) 2008-09-19 2009-09-18 存储器端存储请求管理

Family Applications After (2)

Application Number Title Priority Date Filing Date
CN200980142588.1A Active CN102197395B (zh) 2008-09-19 2009-09-18 存储器端存储请求管理
CN201510182420.0A Active CN104731981B (zh) 2008-09-19 2009-09-18 存储器端存储请求管理

Country Status (5)

Country Link
US (5) US8145806B2 (zh)
EP (3) EP2546765B1 (zh)
JP (3) JP5484470B2 (zh)
CN (3) CN102203773B (zh)
WO (2) WO2010033834A1 (zh)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102609446A (zh) * 2012-01-05 2012-07-25 厦门市美亚柏科信息股份有限公司 一种分布式Bloom过滤系统及其使用方法
CN105830063A (zh) * 2013-12-18 2016-08-03 亚马逊科技公司 协调卷组中的小卷
CN105917336A (zh) * 2014-01-16 2016-08-31 起元技术有限责任公司 数据库键识别
CN108141462A (zh) * 2015-08-18 2018-06-08 诺基亚通信公司 数据库查询的方法和系统
CN109716324A (zh) * 2016-09-28 2019-05-03 微软技术许可有限责任公司 存储器内数据库中的直接表关联
CN111095193A (zh) * 2017-07-17 2020-05-01 奥特瑞克斯股份有限公司 使用并行处理执行哈希连接
CN112905575A (zh) * 2020-12-30 2021-06-04 创盛视联数码科技(北京)有限公司 数据采集的方法、系统、存储介质及电子设备
CN112948370A (zh) * 2019-11-26 2021-06-11 上海哔哩哔哩科技有限公司 数据分类方法、装置以及计算机设备
CN113127475A (zh) * 2019-12-30 2021-07-16 中国移动通信集团四川有限公司 一种数据处理方法、系统及装置
US11068540B2 (en) 2018-01-25 2021-07-20 Ab Initio Technology Llc Techniques for integrating validation results in data profiling and related systems and methods
US11163670B2 (en) 2013-02-01 2021-11-02 Ab Initio Technology Llc Data records selection

Families Citing this family (173)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9262490B2 (en) 2004-08-12 2016-02-16 Oracle International Corporation Adaptively routing transactions to servers
US8892780B2 (en) 2007-03-08 2014-11-18 Oracle International Corporation Management of shared storage I/O resources
US10750023B2 (en) 2008-01-28 2020-08-18 Afiniti Europe Technologies Limited Techniques for hybrid behavioral pairing in a contact center system
US8868831B2 (en) 2009-09-14 2014-10-21 Oracle International Corporation Caching data between a database server and a storage system
US10430338B2 (en) * 2008-09-19 2019-10-01 Oracle International Corporation Selectively reading data from cache and primary storage based on whether cache is overloaded
US9772798B2 (en) * 2008-09-19 2017-09-26 Oracle International Corporation Method and system for implementing workload management by monitoring disk utilizations
US8145806B2 (en) 2008-09-19 2012-03-27 Oracle International Corporation Storage-side storage request management
US8612998B2 (en) 2010-09-23 2013-12-17 Intel Corporation Coordinating device and application break events for platform power saving
US8204892B2 (en) * 2009-10-26 2012-06-19 Oracle International Corporation Performance boost for sort operations
US8893146B2 (en) * 2009-11-13 2014-11-18 Hewlett-Packard Development Company, L.P. Method and system of an I/O stack for controlling flows of workload specific I/O requests
EP2544279A4 (en) * 2010-03-04 2015-01-07 Jx Nippon Mining & Metals Corp POSITIVE ELECTRODE ACTIVE MATERIAL FOR LITHIUM-ION BATTERY, POSITIVE ELECTRODE FOR LITHIUM-ION BATTERY, AND LITHIUM-ION BATTERY
US8671265B2 (en) * 2010-03-05 2014-03-11 Solidfire, Inc. Distributed data storage system providing de-duplication of data using block identifiers
US8560558B2 (en) * 2010-04-28 2013-10-15 Fujitsu Limited Computer product, search apparatus, management apparatus, search method, and management method
US9558247B2 (en) 2010-08-31 2017-01-31 Samsung Electronics Co., Ltd. Storage device and stream filtering method thereof
US20120054420A1 (en) * 2010-08-31 2012-03-01 Jeonguk Kang Storage device and stream filtering method thereof
US8589625B2 (en) * 2010-09-15 2013-11-19 Pure Storage, Inc. Scheduling of reconstructive I/O read operations in a storage environment
JP5666719B2 (ja) * 2010-12-20 2015-02-12 テレフオンアクチーボラゲット エル エム エリクソン(パブル) ピアツーピア・ネットワークにおける検索
US10311105B2 (en) * 2010-12-28 2019-06-04 Microsoft Technology Licensing, Llc Filtering queried data on data stores
CN102591668B (zh) 2011-01-05 2015-04-08 阿里巴巴集团控股有限公司 对弹性计算云系统升级的装置、方法及系统
US9667713B2 (en) * 2011-03-21 2017-05-30 Apple Inc. Apparatus and method for managing peer-to-peer connections between different service providers
US10380269B2 (en) * 2011-06-07 2019-08-13 Entit Software Llc Sideways information passing
CN102214236B (zh) * 2011-06-30 2013-10-23 北京新媒传信科技有限公司 一种海量数据处理方法和系统
US8554976B2 (en) * 2011-07-08 2013-10-08 Plx Technology, Inc. Single pipe non-blocking architecture
US9658892B2 (en) 2011-08-31 2017-05-23 International Business Machines Corporation Management of storage cluster performance with hybrid workloads
US8949367B2 (en) * 2011-10-31 2015-02-03 Oracle International Corporation Cooperative storage management
CN103218032B (zh) 2011-11-29 2017-07-14 英特尔公司 利用相对能量损益平衡时间的功率管理
US8762396B2 (en) * 2011-12-22 2014-06-24 Sap Ag Dynamic, hierarchical bloom filters for network data routing
US9838269B2 (en) 2011-12-27 2017-12-05 Netapp, Inc. Proportional quality of service based on client usage and system metrics
US9054992B2 (en) 2011-12-27 2015-06-09 Solidfire, Inc. Quality of service policy sets
DE112011106066T5 (de) * 2011-12-29 2014-10-02 Intel Corp. System und Verfahren zur Bereitstellung von differenziertem Speicherservice in der Datenbank
CN103188297B (zh) * 2011-12-29 2016-05-18 北大方正集团有限公司 一种消息存储和获取方法及系统
US8805850B2 (en) * 2012-05-23 2014-08-12 International Business Machines Corporation Hardware-accelerated relational joins
JP5936465B2 (ja) * 2012-07-04 2016-06-22 三菱電機株式会社 複数データベース自動検索装置
EP2870536B1 (en) * 2012-07-05 2020-10-07 Nokia Technologies Oy Method and apparatus for sensor data processing
US9047129B2 (en) * 2012-07-23 2015-06-02 Adobe Systems Incorporated Systems and methods for load balancing of time-based tasks in a distributed computing system
US8838535B2 (en) * 2012-10-05 2014-09-16 Oracle International Corporation Providing services across systems that manage distributed replicas
US9465826B2 (en) * 2012-11-27 2016-10-11 Hewlett Packard Enterprise Development Lp Estimating unique entry counts using a counting bloom filter
US9141532B2 (en) * 2012-12-26 2015-09-22 Western Digital Technologies, Inc. Dynamic overprovisioning for data storage systems
US9292571B1 (en) * 2013-01-18 2016-03-22 Microstrategy Incorporated Joining database tables
US8972337B1 (en) 2013-02-21 2015-03-03 Amazon Technologies, Inc. Efficient query processing in columnar databases using bloom filters
US20140250440A1 (en) * 2013-03-01 2014-09-04 Adaptive Computing Enterprises, Inc. System and method for managing storage input/output for a compute environment
KR102052964B1 (ko) 2013-03-12 2019-12-06 삼성전자 주식회사 컴퓨팅 스케줄링 방법 및 시스템
US10489365B2 (en) 2013-03-14 2019-11-26 Oracle International Corporation Predicate offload of large objects
US10152500B2 (en) 2013-03-14 2018-12-11 Oracle International Corporation Read mostly instances
US10642837B2 (en) 2013-03-15 2020-05-05 Oracle International Corporation Relocating derived cache during data rebalance to maintain application performance
US10296462B2 (en) 2013-03-15 2019-05-21 Oracle International Corporation Method to accelerate queries using dynamically generated alternate data formats in flash cache
US10528590B2 (en) * 2014-09-26 2020-01-07 Oracle International Corporation Optimizing a query with extrema function using in-memory data summaries on the storage server
WO2014209395A1 (en) * 2013-06-28 2014-12-31 Intel Corporation Adaptive interrupt coalescing for energy efficient mobile platforms
US8706798B1 (en) 2013-06-28 2014-04-22 Pepperdata, Inc. Systems, methods, and devices for dynamic resource monitoring and allocation in a cluster system
US9779137B2 (en) * 2013-07-09 2017-10-03 Logicblox Inc. Salient sampling for query size estimation
US9898490B2 (en) * 2013-09-20 2018-02-20 Oracle International Corporation Systems and methods for supporting multiple database server versions on a database machine
US9798655B2 (en) 2013-09-20 2017-10-24 Oracle International Corporation Managing a cache on storage devices supporting compression
US10229161B2 (en) 2013-09-20 2019-03-12 Oracle International Corporation Automatic caching of scan and random access data in computing systems
US9767178B2 (en) 2013-10-30 2017-09-19 Oracle International Corporation Multi-instance redo apply
US10515231B2 (en) * 2013-11-08 2019-12-24 Symcor Inc. Method of obfuscating relationships between data in database tables
US9219671B2 (en) * 2013-12-06 2015-12-22 Dell Products L.P. Pro-active MPIO based rate limiting to avoid iSCSI network congestion/incast for clustered storage systems
US10769149B2 (en) * 2013-12-06 2020-09-08 Micro Focus Llc Transitive local predicated across multiple joins
US9436405B2 (en) * 2013-12-23 2016-09-06 Oracle International Corporation Complex partitioning of storage library resources
US9740714B2 (en) 2014-02-06 2017-08-22 International Business Machines Corporation Multilevel filters for cache-efficient access
US10545917B2 (en) 2014-02-19 2020-01-28 Snowflake Inc. Multi-range and runtime pruning
US10325032B2 (en) 2014-02-19 2019-06-18 Snowflake Inc. Resource provisioning systems and methods
US20150244795A1 (en) 2014-02-21 2015-08-27 Solidfire, Inc. Data syncing in a distributed system
US9454574B2 (en) 2014-03-28 2016-09-27 Sybase, Inc. Bloom filter costing estimation
US10936595B2 (en) * 2014-04-03 2021-03-02 Sybase, Inc. Deferring and/or eliminating decompressing database data
US9798728B2 (en) 2014-07-24 2017-10-24 Netapp, Inc. System performing data deduplication using a dense tree data structure
US9940356B2 (en) * 2014-07-31 2018-04-10 International Business Machines Corporation Efficient join-filters for parallel processing
US10133511B2 (en) 2014-09-12 2018-11-20 Netapp, Inc Optimized segment cleaning technique
US9671960B2 (en) 2014-09-12 2017-06-06 Netapp, Inc. Rate matching technique for balancing segment cleaning and I/O workload
CN104468701B (zh) * 2014-10-17 2017-10-13 中国人民解放军国防科学技术大学 一种用于异构存储集群系统的i/o服务质量维护方法
US9836229B2 (en) 2014-11-18 2017-12-05 Netapp, Inc. N-way merge technique for updating volume metadata in a storage I/O stack
US10366068B2 (en) 2014-12-18 2019-07-30 International Business Machines Corporation Optimization of metadata via lossy compression
CA2876466C (en) 2014-12-29 2022-07-05 Ibm Canada Limited - Ibm Canada Limitee Scan optimization using bloom filter synopsis
CN104504114B (zh) * 2014-12-30 2018-05-04 杭州华为数字技术有限公司 基于多哈希表的关系操作优化方法、装置和系统
US9720601B2 (en) 2015-02-11 2017-08-01 Netapp, Inc. Load balancing technique for a storage array
US9563511B1 (en) * 2015-03-19 2017-02-07 EMC IP Holding Company LLC Performing input/output operations on a set of storage devices based on scalable input/output credits
US9762460B2 (en) 2015-03-24 2017-09-12 Netapp, Inc. Providing continuous context for operational information of a storage system
US9710317B2 (en) 2015-03-30 2017-07-18 Netapp, Inc. Methods to identify, handle and recover from suspect SSDS in a clustered flash array
US9842148B2 (en) 2015-05-05 2017-12-12 Oracle International Corporation Method for failure-resilient data placement in a distributed query processing system
US9922081B2 (en) * 2015-06-11 2018-03-20 Microsoft Technology Licensing, Llc Bidirectional cross-filtering in analysis service systems
US9740566B2 (en) 2015-07-31 2017-08-22 Netapp, Inc. Snapshot creation workflow
CN105893225A (zh) * 2015-08-25 2016-08-24 乐视网信息技术(北京)股份有限公司 一种错误自动处理方法及装置
US10248694B2 (en) * 2015-08-31 2019-04-02 International Business Machines Corporation Bloom filter utilization for join processing
CN106528287B (zh) 2015-09-09 2019-10-29 阿里巴巴集团控股有限公司 计算机系统资源分配方法和装置
US10430408B2 (en) 2015-09-24 2019-10-01 International Business Machines Corporation Technology to reduce cost of concatenation for hash array
US10678791B2 (en) * 2015-10-15 2020-06-09 Oracle International Corporation Using shared dictionaries on join columns to improve performance of joins in relational databases
US10726016B2 (en) 2015-10-15 2020-07-28 Oracle International Corporation In-memory column-level multi-versioned global dictionary for in-memory databases
US10678788B2 (en) 2015-10-22 2020-06-09 Oracle International Corporation Columnar caching in tiered storage
US11657037B2 (en) 2015-10-23 2023-05-23 Oracle International Corporation Query execution against an in-memory standby database
US10747752B2 (en) 2015-10-23 2020-08-18 Oracle International Corporation Space management for transactional consistency of in-memory objects on a standby database
US9600525B1 (en) * 2015-11-25 2017-03-21 International Business Machines Corporation Method for joining tables using a limited amount of memory
CN105893241A (zh) * 2015-12-07 2016-08-24 乐视网信息技术(北京)股份有限公司 测试数据的更新方法和装置
US9372892B1 (en) 2015-12-28 2016-06-21 International Business Machines Corporation Bloom filter construction method for use in a table join operation portion of processing a query to a distributed database
CN105893227A (zh) * 2015-12-29 2016-08-24 乐视网信息技术(北京)股份有限公司 数据处理方法及装置
CN105677903A (zh) * 2016-02-05 2016-06-15 华为技术有限公司 获取数据的方法和装置、计算机设备
US10157193B2 (en) * 2016-03-03 2018-12-18 International Business Machines Corporation Switching between a non-partitioned hash join and a partitioned hash join based on an amount of available memory
CN105868071A (zh) * 2016-03-23 2016-08-17 乐视网信息技术(北京)股份有限公司 监测数据的处理方法及装置
CN113382118B (zh) * 2016-04-18 2022-06-14 阿菲尼帝有限公司 用于对联系中心系统中的配对策略进行基准检测的技术
US10929022B2 (en) 2016-04-25 2021-02-23 Netapp. Inc. Space savings reporting for storage system supporting snapshot and clones
US10649991B2 (en) 2016-04-26 2020-05-12 International Business Machines Corporation Pruning of columns in synopsis tables
US10318514B2 (en) * 2016-05-04 2019-06-11 International Business Machines Corporation Reorganizing a data table to improve analytical database performance
CN106095683B (zh) * 2016-06-15 2019-09-17 广东小天才科技有限公司 一种测试移动终端电流的系统及方法
US10019456B2 (en) 2016-06-29 2018-07-10 Microsoft Technology Licensing, Llc Recovering free space in nonvolatile storage with a computer storage system supporting shared objects
US10437780B2 (en) 2016-07-14 2019-10-08 Snowflake Inc. Data pruning based on metadata
US11126503B2 (en) 2016-08-10 2021-09-21 International Business Machines Corporation Pre-filtering of join execution over multi-column range summaries and other synopses
CN106250565B (zh) * 2016-08-30 2019-05-07 福建天晴数码有限公司 基于分片关系型数据库的查询方法和系统
CN107784030B (zh) 2016-08-31 2020-04-28 华为技术有限公司 一种处理连接查询的方法及装置
US10503654B2 (en) 2016-09-01 2019-12-10 Intel Corporation Selective caching of erasure coded fragments in a distributed storage system
US10133667B2 (en) 2016-09-06 2018-11-20 Orcle International Corporation Efficient data storage and retrieval using a heterogeneous main memory
US10698771B2 (en) 2016-09-15 2020-06-30 Oracle International Corporation Zero-data-loss with asynchronous redo shipping to a standby database
US10642763B2 (en) 2016-09-20 2020-05-05 Netapp, Inc. Quality of service policy sets
US10474653B2 (en) 2016-09-30 2019-11-12 Oracle International Corporation Flexible in-memory column store placement
CN106970930B (zh) * 2016-10-10 2021-01-05 创新先进技术有限公司 消息发送确定方法及装置、数据表创建方法及装置
US10891291B2 (en) 2016-10-31 2021-01-12 Oracle International Corporation Facilitating operations on pluggable databases using separate logical timestamp services
US10331573B2 (en) 2016-11-04 2019-06-25 Oracle International Corporation Detection of avoidable cache thrashing for OLTP and DW workloads
CN106776248A (zh) * 2016-11-11 2017-05-31 乐视控股(北京)有限公司 一种数据处理的方法和装置
CN106776199A (zh) * 2016-11-11 2017-05-31 乐视控股(北京)有限公司 一种数据处理的方法和装置
CN106776019B (zh) * 2016-12-01 2019-11-19 成都华为技术有限公司 一种用户读写请求的调度方法及装置
US11475006B2 (en) 2016-12-02 2022-10-18 Oracle International Corporation Query and change propagation scheduling for heterogeneous database systems
US11093494B2 (en) * 2016-12-06 2021-08-17 Microsoft Technology Licensing, Llc Joining tables by leveraging transformations
US10803122B2 (en) * 2017-04-11 2020-10-13 International Business Machines Corporation Labeled graph isomorphism allowing for false positive
US10601938B2 (en) 2017-04-12 2020-03-24 Microsoft Technology Licensing, Llc Organizationally programmable intranet push notifications
CN107239380A (zh) * 2017-05-10 2017-10-10 杭州铭师堂教育科技发展有限公司 一种基于zabbix的消息队列监控方法
US10503412B2 (en) 2017-05-24 2019-12-10 Western Digital Technologies, Inc. Priority-based internal data movement
US10691722B2 (en) 2017-05-31 2020-06-23 Oracle International Corporation Consistent query execution for big data analytics in a hybrid database
US11630832B2 (en) * 2017-06-07 2023-04-18 Sap Se Dynamic admission control for database requests
US10599340B1 (en) 2017-07-13 2020-03-24 EMC IP Holding LLC Policy driven IO scheduler to improve read IO performance in hybrid storage systems
US10509739B1 (en) * 2017-07-13 2019-12-17 EMC IP Holding Company LLC Optimized read IO for mix read/write scenario by chunking write IOs
US10592123B1 (en) 2017-07-13 2020-03-17 EMC IP Holding Company LLC Policy driven IO scheduler to improve write IO performance in hybrid storage systems
CN107368596A (zh) * 2017-07-26 2017-11-21 郑州云海信息技术有限公司 一种布隆过滤器查询集合元素的方法及装置
US10719446B2 (en) 2017-08-31 2020-07-21 Oracle International Corporation Directly mapped buffer cache on non-volatile memory
US20190095448A1 (en) * 2017-09-22 2019-03-28 Microsoft Technology Licensing, Llc System of mobile notification delivery utilizing bloom filters
US11652776B2 (en) * 2017-09-25 2023-05-16 Microsoft Technology Licensing, Llc System of mobile notification delivery utilizing bloom filters
US11954117B2 (en) 2017-09-29 2024-04-09 Oracle International Corporation Routing requests in shared-storage database systems
US10956335B2 (en) 2017-09-29 2021-03-23 Oracle International Corporation Non-volatile cache access using RDMA
US10732836B2 (en) 2017-09-29 2020-08-04 Oracle International Corporation Remote one-sided persistent writes
US11086876B2 (en) 2017-09-29 2021-08-10 Oracle International Corporation Storing derived summaries on persistent memory of a storage device
US11010387B2 (en) 2017-10-06 2021-05-18 Microsoft Technology Licensing, Llc Join operation and interface for wildcards
US10552452B2 (en) 2017-10-16 2020-02-04 Alteryx, Inc. Asynchronously processing sequential data blocks
US10558364B2 (en) 2017-10-16 2020-02-11 Alteryx, Inc. Memory allocation in a data analytics system
US11615083B1 (en) * 2017-11-22 2023-03-28 Amazon Technologies, Inc. Storage level parallel query processing
US10613896B2 (en) * 2017-12-18 2020-04-07 International Business Machines Corporation Prioritizing I/O operations
CN108509148B (zh) * 2018-02-07 2021-08-06 新华三技术有限公司 一种i/o请求处理方法以及装置
US10642840B1 (en) 2018-03-07 2020-05-05 Amazon Technologies, Inc. Filtered hash table generation for performing hash joins
US10628063B2 (en) * 2018-08-24 2020-04-21 Advanced Micro Devices, Inc. Implementing scalable memory allocation using identifiers that return a succinct pointer representation
CN109271408B (zh) * 2018-08-31 2020-07-28 阿里巴巴集团控股有限公司 一种分布式数据连接处理方法、装置、设备及存储介质
GB2579071B (en) * 2018-11-19 2022-03-02 Canon Kk Method and apparatus for processing requests for thumbnail images in a video surveillance system
US11625398B1 (en) 2018-12-12 2023-04-11 Teradata Us, Inc. Join cardinality estimation using machine learning and graph kernels
US10970393B1 (en) * 2018-12-18 2021-04-06 Altiris, Inc. Probabilistic set membership using bloom filters
US11157478B2 (en) 2018-12-28 2021-10-26 Oracle International Corporation Technique of comprehensively support autonomous JSON document object (AJD) cloud service
US11316664B2 (en) 2019-04-05 2022-04-26 Bank Of America Corporation System for characterization and tracking of electronic data in a networked environment using cohesive information units
US10990596B2 (en) 2019-06-14 2021-04-27 Oracle International Corporation Non-disruptive referencing of special purpose operators for database management systems
US11200234B2 (en) 2019-06-14 2021-12-14 Oracle International Corporation Non-disruptive dynamic ad-hoc database catalog services
US11860869B1 (en) 2019-06-28 2024-01-02 Amazon Technologies, Inc. Performing queries to a consistent view of a data set across query engine types
US11455305B1 (en) 2019-06-28 2022-09-27 Amazon Technologies, Inc. Selecting alternate portions of a query plan for processing partial results generated separate from a query engine
US11403367B2 (en) 2019-09-12 2022-08-02 Oracle International Corporation Techniques for solving the spherical point-in-polygon problem
US11423001B2 (en) 2019-09-13 2022-08-23 Oracle International Corporation Technique of efficiently, comprehensively and autonomously support native JSON datatype in RDBMS for both OLTP and OLAP
US11016978B2 (en) 2019-09-18 2021-05-25 Bank Of America Corporation Joiner for distributed databases
US11126401B2 (en) 2019-09-18 2021-09-21 Bank Of America Corporation Pluggable sorting for distributed databases
US11514066B2 (en) * 2019-11-08 2022-11-29 Servicenow, Inc. System and methods for querying and updating databases
US11308090B2 (en) 2019-12-26 2022-04-19 Snowflake Inc. Pruning index to support semi-structured data types
US11372860B2 (en) * 2019-12-26 2022-06-28 Snowflake Inc. Processing techniques for queries where predicate values are unknown until runtime
US11567939B2 (en) 2019-12-26 2023-01-31 Snowflake Inc. Lazy reassembling of semi-structured data
US10769150B1 (en) 2019-12-26 2020-09-08 Snowflake Inc. Pruning indexes to enhance database query processing
US11835152B2 (en) * 2020-01-17 2023-12-05 Fisher Controls International Llc Method and system for executing online tests of valve seating integrity for control valves
US10877967B1 (en) * 2020-03-13 2020-12-29 Snowflake Inc. System and method for disjunctive joins
US11550949B2 (en) * 2020-07-21 2023-01-10 Constella Intelligence, Inc. Secure exchange of password presence data
US12001427B2 (en) 2020-12-28 2024-06-04 Samsung Electronics Co., Ltd. Systems, methods, and devices for acceleration of merge join operations
CN113311728B (zh) * 2021-05-25 2022-08-30 南京国电南自维美德自动化有限公司 一种仿真模型与控制器通信的方法和系统
US11516307B1 (en) * 2021-08-09 2022-11-29 Servicenow, Inc. Support for multi-type users in a single-type computing system
US11445045B1 (en) * 2021-12-21 2022-09-13 Akamai Technologies, Inc. Systems and methods for preventing the caching of rarely requested objects
US20240078237A1 (en) * 2022-09-07 2024-03-07 Google Llc Database Join Operations With Early Filtering
US11880369B1 (en) 2022-11-21 2024-01-23 Snowflake Inc. Pruning data based on state of top K operator
CN116248699B (zh) * 2023-03-14 2024-01-02 安超云软件有限公司 多副本场景下的数据读取方法、装置、设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060224451A1 (en) * 2004-10-18 2006-10-05 Xcelerator Loyalty Group, Inc. Incentive program
CN101150483A (zh) * 2007-11-02 2008-03-26 华为技术有限公司 路由表调整方法、路由查询方法和装置及路由表存储装置
US20080147599A1 (en) * 2006-12-18 2008-06-19 Ianywhere Solutions, Inc. Load balancing for complex database query plans

Family Cites Families (121)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4425615A (en) 1980-11-14 1984-01-10 Sperry Corporation Hierarchical memory system having cache/disk subsystem with command queues for plural disks
JP2753228B2 (ja) * 1987-04-30 1998-05-18 株式会社日立製作所 データ処理装置
EP0389151A3 (en) 1989-03-22 1992-06-03 International Business Machines Corporation System and method for partitioned cache memory management
US5551018A (en) 1993-02-02 1996-08-27 Borland International, Inc. Method of storing national language support text by presorting followed by insertion sorting
US5487164A (en) * 1993-09-14 1996-01-23 International Business Machines Corporation Distribution-based replacement selection sorting system
US5765034A (en) 1995-10-20 1998-06-09 International Business Machines Corporation Fencing system for standard interfaces for storage devices
US6044367A (en) * 1996-08-02 2000-03-28 Hewlett-Packard Company Distributed I/O store
US5848408A (en) 1997-02-28 1998-12-08 Oracle Corporation Method for executing star queries
US5987453A (en) 1997-04-07 1999-11-16 Informix Software, Inc. Method and apparatus for performing a join query in a database system
US5999943A (en) 1997-10-31 1999-12-07 Oracle Corporation Lob locators
US6128621A (en) 1997-10-31 2000-10-03 Oracle Corporation Apparatus and method for pickling data
US7756986B2 (en) * 1998-06-30 2010-07-13 Emc Corporation Method and apparatus for providing data management for a storage system coupled to a network
US6427187B2 (en) 1998-07-31 2002-07-30 Cache Flow, Inc. Multiple cache communication
JP3623697B2 (ja) 1999-07-29 2005-02-23 富士通株式会社 ディスク・タイムシェアリング装置及び方法
US6665684B2 (en) 1999-09-27 2003-12-16 Oracle International Corporation Partition pruning with composite partitioning
US6728823B1 (en) 2000-02-18 2004-04-27 Hewlett-Packard Development Company, L.P. Cache connection with bypassing feature
KR100372582B1 (ko) * 2000-02-23 2003-02-17 가부시키가이샤 히타치세이사쿠쇼 데이터처리방법 및 시스템 및 그 처리프로그램을 기록한계산기판독이 가능한 기록매체
US20030046396A1 (en) * 2000-03-03 2003-03-06 Richter Roger K. Systems and methods for managing resource utilization in information management environments
US6618729B1 (en) 2000-04-20 2003-09-09 Ncr Corporation Optimization of a star join operation using a bitmap index structure
US7069324B1 (en) 2000-06-30 2006-06-27 Cisco Technology, Inc. Methods and apparatus slow-starting a web cache system
US7024425B2 (en) 2000-09-07 2006-04-04 Oracle International Corporation Method and apparatus for flexible storage and uniform manipulation of XML data in a relational database system
US6526483B1 (en) 2000-09-20 2003-02-25 Broadcom Corporation Page open hint in transactions
US6745297B2 (en) 2000-10-06 2004-06-01 Broadcom Corporation Cache coherent protocol in which exclusive and modified data is transferred to requesting agent from snooping agent
US7237027B1 (en) * 2000-11-10 2007-06-26 Agami Systems, Inc. Scalable storage system
US6961728B2 (en) * 2000-11-28 2005-11-01 Centerboard, Inc. System and methods for highly distributed wide-area data management of a network of data sources through a database interface
JP2002244898A (ja) * 2001-02-19 2002-08-30 Hitachi Ltd データベース管理プログラム及びデータベースシステム
JP3987295B2 (ja) * 2001-03-19 2007-10-03 株式会社東芝 処理最適化方法、コンピュータ、及び記憶装置
US6820218B1 (en) 2001-09-04 2004-11-16 Microsoft Corporation Persistent stateful component-based applications via automatic recovery
AU2002334721B2 (en) 2001-09-28 2008-10-23 Oracle International Corporation An index structure to access hierarchical data in a relational database system
US7047253B1 (en) 2001-09-28 2006-05-16 Oracle Interntional Corporation Mechanisms for storing content and properties of hierarchically organized resources
JP4162184B2 (ja) * 2001-11-14 2008-10-08 株式会社日立製作所 データベース管理システムの実行情報を取得する手段を有する記憶装置
US8549048B2 (en) 2001-12-19 2013-10-01 Emc Corporation Workflow database for scalable storage service
US6886077B2 (en) 2001-12-21 2005-04-26 International Business Machines Corporation Context-sensitive caching
US6957210B1 (en) 2001-12-31 2005-10-18 Ncr Corporation Optimizing an exclusion join operation using a bitmap index structure
US7092954B1 (en) 2001-12-31 2006-08-15 Ncr Corporation Optimizing an equi-join operation using a bitmap index structure
US6957222B1 (en) 2001-12-31 2005-10-18 Ncr Corporation Optimizing an outer join operation using a bitmap index structure
US7420987B1 (en) 2002-01-17 2008-09-02 Juniper Networks, Inc. Arbiter for multiple mutually exclusive vectors
AU2003213113A1 (en) 2002-02-21 2003-09-09 Precise Software Solutions, Inc. System and method for analyzing input/output activity on local attached storage
US6801905B2 (en) 2002-03-06 2004-10-05 Sybase, Inc. Database system providing methodology for property enforcement
US7689623B1 (en) 2002-04-08 2010-03-30 Syncsort Incorporated Method for performing an external (disk-based) sort of a large data file which takes advantage of “presorted” data already present in the input
US7228354B2 (en) * 2002-06-28 2007-06-05 International Business Machines Corporation Method for improving performance in a computer storage system by regulating resource requests from clients
JP3977698B2 (ja) * 2002-07-05 2007-09-19 株式会社日立製作所 記憶制御装置、記憶制御装置の制御方法、及びプログラム
US7461147B1 (en) 2002-08-26 2008-12-02 Netapp. Inc. Node selection within a network based on policy
US7370068B1 (en) * 2002-09-04 2008-05-06 Teradata Us, Inc. Sorting of records with duplicate removal in a database system
US7051161B2 (en) 2002-09-17 2006-05-23 Nokia Corporation Memory admission control based on object size or request frequency
US7203691B2 (en) * 2002-09-27 2007-04-10 Ncr Corp. System and method for retrieving information from a database
US7120645B2 (en) 2002-09-27 2006-10-10 Oracle International Corporation Techniques for rewriting XML queries directed to relational database constructs
US6922754B2 (en) 2002-12-09 2005-07-26 Infabric Technologies, Inc. Data-aware data flow manager
JP4318914B2 (ja) * 2002-12-26 2009-08-26 富士通株式会社 ストレージシステム及びその動的負荷管理方法
JP4322068B2 (ja) * 2003-03-07 2009-08-26 富士通株式会社 ストレージシステム及びそのデイスク負荷バランス制御方法
US7103603B2 (en) * 2003-03-28 2006-09-05 International Business Machines Corporation Method, apparatus, and system for improved duplicate record processing in a sort utility
US7895191B2 (en) * 2003-04-09 2011-02-22 International Business Machines Corporation Improving performance of database queries
US20040230753A1 (en) 2003-05-16 2004-11-18 International Business Machines Corporation Methods and apparatus for providing service differentiation in a shared storage environment
US7159076B2 (en) 2003-06-24 2007-01-02 Research In Motion Limited Cache operation with non-cache memory
ATE455332T1 (de) 2003-07-08 2010-01-15 Sap Ag Verfahren und computersystem zur abfrageverarbeitung
US7444515B2 (en) * 2003-08-14 2008-10-28 Washington University Method and apparatus for detecting predefined signatures in packet payload using Bloom filters
US7251650B2 (en) 2003-08-25 2007-07-31 International Business Machines Corporation Method, system, and article of manufacture for processing updates to insert operations
US7042716B2 (en) * 2003-08-25 2006-05-09 Simon John Edward Shearman Ergonomic pull-out computer housing
US7478100B2 (en) 2003-09-05 2009-01-13 Oracle International Corporation Method and mechanism for efficient storage and query of XML documents based on paths
US7558850B2 (en) 2003-09-15 2009-07-07 International Business Machines Corporation Method for managing input/output (I/O) performance between host systems and storage volumes
CA2543746C (en) 2003-10-27 2018-01-16 Archivas, Inc. Policy-based management of a redundant array of independent nodes
JP2005165852A (ja) * 2003-12-04 2005-06-23 Hitachi Ltd ストレージシステム、ストレージ制御装置、ストレージシステムの制御方法
US7769802B2 (en) 2003-12-04 2010-08-03 Microsoft Corporation Systems and methods that employ correlated synchronous-on-asynchronous processing
US7421562B2 (en) 2004-03-01 2008-09-02 Sybase, Inc. Database system providing methodology for extended memory support
US7165144B2 (en) 2004-03-19 2007-01-16 Intel Corporation Managing input/output (I/O) requests in a cache memory system
US7366735B2 (en) 2004-04-09 2008-04-29 Oracle International Corporation Efficient extraction of XML content stored in a LOB
US7320061B2 (en) 2004-05-10 2008-01-15 Oracle International Corporation Storage optimization for VARRAY columns
US7340651B2 (en) 2004-05-28 2008-03-04 International Business Machines Corporation System and method for maintaining functionality during component failures
US8078607B2 (en) * 2006-03-30 2011-12-13 Google Inc. Generating website profiles based on queries from webistes and user activities on the search results
US20060064405A1 (en) * 2004-09-21 2006-03-23 Xiaoye Jiang Hybrid client-server protocol for fast writes to a file
US7373554B2 (en) 2004-09-24 2008-05-13 Oracle International Corporation Techniques for automatic software error diagnostics and correction
EP1800227A2 (en) * 2004-10-04 2007-06-27 Clearpace Software Limited Method and system for implementing an enhanced database
US7454420B2 (en) 2004-11-08 2008-11-18 Sas Institute Inc. Data sorting method and system
US7734582B2 (en) 2004-11-16 2010-06-08 International Business Machines Corporation Apparatus, system, and method for cache synchronization
US8126870B2 (en) 2005-03-28 2012-02-28 Sybase, Inc. System and methodology for parallel query optimization using semantic-based partitioning
US7512625B2 (en) * 2005-04-01 2009-03-31 International Business Machines Corporation Method, system and program for joining source table rows with target table rows
JP2006285811A (ja) * 2005-04-04 2006-10-19 Hitachi Ltd ストレージシステム及びデータ処理方法
JP2006318014A (ja) * 2005-05-10 2006-11-24 Mitsubishi Electric Corp プラント運転履歴データ管理装置
US7603660B2 (en) 2005-06-01 2009-10-13 Microsoft Corporation Code coverage test selection
US20060294049A1 (en) * 2005-06-27 2006-12-28 Microsoft Corporation Back-off mechanism for search
US20070067575A1 (en) 2005-09-20 2007-03-22 Morris John M Method of managing cache memory based on data temperature
US7636767B2 (en) * 2005-11-29 2009-12-22 Cisco Technology, Inc. Method and apparatus for reducing network traffic over low bandwidth links
US7327547B1 (en) * 2006-01-20 2008-02-05 Epstein Barry M Circuit element and use thereof
US7698597B2 (en) 2006-02-28 2010-04-13 International Business Machines Corporation Method of isolating erroneous software program components
US7506119B2 (en) 2006-05-04 2009-03-17 International Business Machines Corporation Complier assisted victim cache bypassing
US8555288B2 (en) 2006-05-17 2013-10-08 Teradata Us, Inc. Managing database utilities to improve throughput and concurrency
US8909871B2 (en) 2006-08-03 2014-12-09 International Business Machines Corporation Data processing system and method for reducing cache pollution by write stream memory access patterns
US7739470B1 (en) 2006-10-20 2010-06-15 Emc Corporation Limit algorithm using queue depth to control application performance
US8683139B2 (en) 2006-10-31 2014-03-25 Hewlett-Packard Development Company, L.P. Cache and method for cache bypass functionality
US7797468B2 (en) * 2006-10-31 2010-09-14 Hewlett-Packard Development Company Method and system for achieving fair command processing in storage systems that implement command-associated priority queuing
US20080155229A1 (en) * 2006-12-21 2008-06-26 Kevin Scott Beyer System and method for generating a cache-aware bloom filter
US8706687B2 (en) * 2007-01-24 2014-04-22 Hewlett-Packard Development Company, L.P. Log driven storage controller with network persistent memory
US20080222111A1 (en) * 2007-03-07 2008-09-11 Oracle International Corporation Database system with dynamic database caching
US8892780B2 (en) * 2007-03-08 2014-11-18 Oracle International Corporation Management of shared storage I/O resources
US8099565B2 (en) * 2007-03-27 2012-01-17 The Board Of Regents Of The University Of Texas System Methods and devices for determining quality of services of storage systems
US7761425B1 (en) * 2007-03-29 2010-07-20 Symantec Corporation Low-overhead means of performing data backup
US7882304B2 (en) * 2007-04-27 2011-02-01 Netapp, Inc. System and method for efficient updates of sequential block storage
US7698272B2 (en) * 2007-08-30 2010-04-13 International Business Machines Corporation Apparatus, system, and method for deterministic file allocations for parallel operations
CN101425039A (zh) * 2007-11-02 2009-05-06 鹏智科技(深圳)有限公司 控制存储装置文件拷贝的电子设备及方法
US7890504B2 (en) 2007-12-19 2011-02-15 Netapp, Inc. Using the LUN type for storage allocation
JP4973560B2 (ja) 2008-03-26 2012-07-11 富士通株式会社 サーバおよび接続先サーバ切替制御方法
US20100017556A1 (en) 2008-07-19 2010-01-21 Nanostar Corporationm U.S.A. Non-volatile memory storage system with two-stage controller architecture
US8868831B2 (en) 2009-09-14 2014-10-21 Oracle International Corporation Caching data between a database server and a storage system
US10430338B2 (en) 2008-09-19 2019-10-01 Oracle International Corporation Selectively reading data from cache and primary storage based on whether cache is overloaded
AU2010276462B1 (en) 2010-12-27 2012-01-12 Limelight Networks, Inc. Partial object caching
US8145806B2 (en) * 2008-09-19 2012-03-27 Oracle International Corporation Storage-side storage request management
US8244984B1 (en) 2008-12-08 2012-08-14 Nvidia Corporation System and method for cleaning dirty data in an intermediate cache using a data class dependent eviction policy
US20100191717A1 (en) 2009-01-28 2010-07-29 Goetz Graefe Optimization of query processing with top operations
JP4659888B2 (ja) * 2009-02-13 2011-03-30 株式会社日立製作所 データベース処理システム、計算機及びデータベース処理方法
US8103822B2 (en) 2009-04-26 2012-01-24 Sandisk Il Ltd. Method and apparatus for implementing a caching policy for non-volatile memory
US8281185B2 (en) 2009-06-30 2012-10-02 Oracle America, Inc. Advice-based feedback for transactional execution
US8966033B2 (en) 2009-08-17 2015-02-24 At&T Intellectual Property I, L.P. Integrated proximity routing for content distribution
US9274950B2 (en) 2009-08-26 2016-03-01 Hewlett Packard Enterprise Development Lp Data restructuring in multi-level memory hierarchies
US8204892B2 (en) * 2009-10-26 2012-06-19 Oracle International Corporation Performance boost for sort operations
US8560598B2 (en) 2009-12-22 2013-10-15 At&T Intellectual Property I, L.P. Integrated adaptive anycast for content distribution
US8898324B2 (en) 2010-06-24 2014-11-25 International Business Machines Corporation Data access management in a hybrid memory server
US9507880B2 (en) 2010-06-30 2016-11-29 Oracle International Corporation Regular expression optimizer
US8458511B2 (en) 2010-09-17 2013-06-04 Oracle International Corporation Fault isolation using code paths
US8938644B2 (en) 2010-12-03 2015-01-20 Teradata Us, Inc. Query execution plan revision for error recovery
US9112935B2 (en) 2012-03-05 2015-08-18 Microsoft Technology Licensing, Llc Manipulating binary large objects
US10489365B2 (en) 2013-03-14 2019-11-26 Oracle International Corporation Predicate offload of large objects

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060224451A1 (en) * 2004-10-18 2006-10-05 Xcelerator Loyalty Group, Inc. Incentive program
US20080147599A1 (en) * 2006-12-18 2008-06-19 Ianywhere Solutions, Inc. Load balancing for complex database query plans
CN101150483A (zh) * 2007-11-02 2008-03-26 华为技术有限公司 路由表调整方法、路由查询方法和装置及路由表存储装置

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102609446B (zh) * 2012-01-05 2013-12-25 厦门市美亚柏科信息股份有限公司 一种分布式Bloom过滤系统及其使用方法
CN102609446A (zh) * 2012-01-05 2012-07-25 厦门市美亚柏科信息股份有限公司 一种分布式Bloom过滤系统及其使用方法
US11163670B2 (en) 2013-02-01 2021-11-02 Ab Initio Technology Llc Data records selection
CN105830063A (zh) * 2013-12-18 2016-08-03 亚马逊科技公司 协调卷组中的小卷
CN105830063B (zh) * 2013-12-18 2020-12-15 亚马逊科技公司 协调卷组中的小卷
CN105917336B (zh) * 2014-01-16 2021-06-29 起元技术有限责任公司 数据库键识别
CN105917336A (zh) * 2014-01-16 2016-08-31 起元技术有限责任公司 数据库键识别
KR20160107188A (ko) * 2014-01-16 2016-09-13 아브 이니티오 테크놀로지 엘엘시 데이터베이스 키 식별
US11487732B2 (en) 2014-01-16 2022-11-01 Ab Initio Technology Llc Database key identification
KR102240137B1 (ko) 2014-01-16 2021-04-13 아브 이니티오 테크놀로지 엘엘시 데이터베이스 키 식별
CN108141462A (zh) * 2015-08-18 2018-06-08 诺基亚通信公司 数据库查询的方法和系统
CN109716324A (zh) * 2016-09-28 2019-05-03 微软技术许可有限责任公司 存储器内数据库中的直接表关联
CN109716324B (zh) * 2016-09-28 2023-07-11 微软技术许可有限责任公司 存储器内数据库中的直接表关联
CN111095193A (zh) * 2017-07-17 2020-05-01 奥特瑞克斯股份有限公司 使用并行处理执行哈希连接
CN111095193B (zh) * 2017-07-17 2022-03-25 奥特瑞克斯股份有限公司 使用并行处理执行哈希连接
US11334524B2 (en) 2017-07-17 2022-05-17 Alteryx, Inc. Performing hash joins using parallel processing
US11068540B2 (en) 2018-01-25 2021-07-20 Ab Initio Technology Llc Techniques for integrating validation results in data profiling and related systems and methods
CN112948370A (zh) * 2019-11-26 2021-06-11 上海哔哩哔哩科技有限公司 数据分类方法、装置以及计算机设备
CN113127475A (zh) * 2019-12-30 2021-07-16 中国移动通信集团四川有限公司 一种数据处理方法、系统及装置
CN112905575A (zh) * 2020-12-30 2021-06-04 创盛视联数码科技(北京)有限公司 数据采集的方法、系统、存储介质及电子设备

Also Published As

Publication number Publication date
JP6100712B2 (ja) 2017-03-22
US9336275B2 (en) 2016-05-10
WO2010033877A1 (en) 2010-03-25
CN104731981B (zh) 2018-03-20
EP2350879A1 (en) 2011-08-03
EP2350875A1 (en) 2011-08-03
US20120173774A1 (en) 2012-07-05
EP2546765A2 (en) 2013-01-16
JP5484470B2 (ja) 2014-05-07
WO2010033834A1 (en) 2010-03-25
CN102197395B (zh) 2015-05-20
US8521923B2 (en) 2013-08-27
US8874807B2 (en) 2014-10-28
JP2014142940A (ja) 2014-08-07
US8145806B2 (en) 2012-03-27
US20100077107A1 (en) 2010-03-25
CN102197395A (zh) 2011-09-21
US20130339636A1 (en) 2013-12-19
JP2012503257A (ja) 2012-02-02
EP2546765A3 (en) 2015-11-11
CN102203773B (zh) 2014-03-19
CN104731981A (zh) 2015-06-24
JP5484471B2 (ja) 2014-05-07
JP2012503256A (ja) 2012-02-02
US20100082648A1 (en) 2010-04-01
EP2546765B1 (en) 2018-05-09
US8825678B2 (en) 2014-09-02
US20140337314A1 (en) 2014-11-13

Similar Documents

Publication Publication Date Title
CN102203773B (zh) 在具有卸载的布隆过滤器的智能存储器中利用协同并行过滤的哈希联接
US10769148B1 (en) Relocating data sharing operations for query processing
US10528599B1 (en) Tiered data processing for distributed data
US8782075B2 (en) Query handling in databases with replicated data
US20180285418A1 (en) Executing queries for structured data and not-structured data
US9654586B2 (en) Resource server providing a rapidly changing resource
US9805080B2 (en) Data driven relational algorithm formation for execution against big data
US20160292303A1 (en) Distributed graph processing system that support remote data read with proactive bulk data transfer
CN106326381B (zh) 基于MapDB构建的HBase数据检索方法
US11074261B1 (en) Format independent processing for distributed data
CN103164507B (zh) 行与列数据库表在原生方向上的混合联接
US9081837B2 (en) Scoped database connections
CN103106249B (zh) 一种基于Cassandra的数据并行处理系统
EP3625707A1 (en) Systems, methods, and apparatus for hierarchical database
US20130191523A1 (en) Real-time analytics for large data sets
US11321330B1 (en) Combining nested data operations for distributed query processing
US20170185647A1 (en) System and method for adaptive filtering of data requests
CN105683956A (zh) 密集分组的维度数据
CN102364464A (zh) 对象实例版本化
US10909119B2 (en) Accessing electronic databases
US10990627B1 (en) Sharing character data across lookups to identify matches to a regular expression
CN103377269A (zh) 传感器数据定位方法和装置
CN103778258B (zh) 一种数据库数据的发送、接收方法、客户端、服务器
US11500931B1 (en) Using a graph representation of join history to distribute database data
CN112699149A (zh) 目标数据获取方法、装置和存储介质及电子装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant