CN104346433A - 用于数据库查询操作的可缩放加速的方法和系统 - Google Patents

用于数据库查询操作的可缩放加速的方法和系统 Download PDF

Info

Publication number
CN104346433A
CN104346433A CN201410380355.8A CN201410380355A CN104346433A CN 104346433 A CN104346433 A CN 104346433A CN 201410380355 A CN201410380355 A CN 201410380355A CN 104346433 A CN104346433 A CN 104346433A
Authority
CN
China
Prior art keywords
accelerator
query
described multiple
available
available accelerator
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
CN201410380355.8A
Other languages
English (en)
Other versions
CN104346433B (zh
Inventor
S·W·阿萨德
P·杜布
闵红
B·苏克瓦尼
M·S·特内斯
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN104346433A publication Critical patent/CN104346433A/zh
Application granted granted Critical
Publication of CN104346433B publication Critical patent/CN104346433B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/24542Plan optimisation
    • G06F16/24545Selectivity estimation or determination
    • 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/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/24542Plan optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • G06F16/1744Redundancy elimination performed by the file system using compression, e.g. sparse files
    • 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/2453Query optimisation
    • G06F16/24532Query optimisation of parallel queries
    • 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/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/24542Plan optimisation
    • G06F16/24544Join order optimisation
    • 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

Landscapes

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

Abstract

本发明涉及一种用于数据库查询操作的可缩放加速的方法和系统。各实施例包括用于将多个处理操作卸载到加速器的方法、系统和计算机程序产品。各方面包括接收来自应用的数据库查询,针对所述查询执行分析,以及标识多个可用加速器。各方面还包括针对所述多个可用加速器中的每一个上可用的一个或多个模板检索成本信息,基于所述成本信息和针对所述查询的分析确定查询执行计划,以及基于所述查询执行计划,将一个或多个查询操作卸载到所述多个加速器中的至少一个。

Description

用于数据库查询操作的可缩放加速的方法和系统
技术领域
本发明涉及加速多个查询处理操作,更具体地说,涉及用于数据库查询操作的可缩放加速的加速器系统。
背景技术
一般而言,单个数据库查询包括多个查询处理操作。这些查询处理操作包括但不限于排序操作、解压缩操作、谓词计算(predicate evaluation)操作和联接操作。查询操作的硬件加速显示出较之软件实现的显著性能改进。这种性能改进归因于可以以硬件实现获得的定制数据路径和并行性。
目前,针对单个硬件加速器计算查询操作符。单个加速器上的可用资源可以限制该加速器提供的性能增益。尽管为了获得更高整体性能而需要将更多操作从主机卸载到加速器,但将多个操作卸载到单个加速器芯片上可以减少可用于每个操作的资源量,从而可能导致较低的性能增益。
发明内容
各实施例包括用于将多个处理操作卸载到加速器的方法、系统和计算机程序产品。各方面包括接收来自应用的数据库查询,针对所述查询执行分析,以及标识多个可用加速器。各方面还包括针对所述多个可用加速器中的每一个上可用的一个或多个模板检索成本信息,基于所述成本信息和针对所述查询的分析确定查询执行计划,以及基于所述查询执行计划,将一个或多个查询操作卸载到所述多个加速器中的至少一个。
通过本发明的技术实现其它特性和优点。在此详细描述了本发明的其它实施例和方面,并且它们被视为要求保护的本发明的一部分。为了更好地理解本发明以及优点和特性,请参考说明书和附图。
附图说明
在说明书结尾处的权利要求中具体指出并明确要求保护了被视为本发明的主题。从下面结合附图的详细描述,本发明的上述和其它特性和优点将变得显而易见,这些附图是:
图1示出根据一个实施例的用于实现此处教导的计算机系统的框图;
图2示出根据一个示例性实施例的用于数据库查询操作的可缩放加速的加速器系统的框图;
图3示出根据一个示例性实施例的加速器的框图;
图4示出根据一个示例性实施例的跨多个加速器分布数据库查询操作的框图;
图5示出根据一个示例性实施例的跨多个加速器分布数据库查询操作的框图;
图6示出根据一个示例性实施例的跨多个加速器分布数据库查询操作的框图;
图7示出根据一个示例性实施例的跨多个加速器分布数据库查询操作的框图;以及
图8示出根据一个示例性实施例的用于加速多个查询处理操作的方法的流程图。
具体实施方式
在此公开的各实施例包括一种用于数据库查询操作的可缩放加速的加速器系统。在各示例性实施例中,将一个或多个查询处理操作卸载到多个加速器,从而增加可用于每个查询处理操作的硬件资源量。此外,通过使用多个加速器,可以增加查询间和/或查询内并行性。因此,改进数据库查询操作的性能。例如,可以增加数据库查询操作的速度和能力。
现在参考图1,示出与此处的教导一起使用的示例性计算机系统100的框图。在此描述的方法可以以硬件软件(例如,固件)或其组合实现。在一个示例性实施例中,在此描述的方法以硬件实现,并且是专用或通用数字计算机(例如个人计算机、工作站、小型计算机或大型计算机)的微处理器的一部分。因此,系统100包括通用计算机101。
在一个示例性实施例中,在硬件体系架构方面,如图1中所示,计算机101包括处理器105、经由存储控制器115耦合的存储器110、存储设备120,以及经由本地输入/输出控制器135以通信方式耦合的一个或多个输入和/或输出(I/O)设备140、145(或外围设备)。输入/输出控制器135例如可以是但不限于一条或多条总线或者其它有线或无线连接,如所属技术领域公知的那样。输入/输出控制器135可以具有其它元件(为简单起见而被省略),例如控制器、缓冲器(高速缓存)、驱动器、中继器和接收器,以便实现通信。此外,本地接口可以包括地址、控制和/或数据连接,以便在上述组件之间实现适当的通信。存储设备120可以包括一个或多个硬盘驱动器(HDD)、固态驱动器(SSD),或者任何其它合适形式的存储装置。
处理器105是用于执行特别是存储在存储器110中的硬件指令或软件的计算设备。处理器105可以是任何定制或商用处理器、中央处理单元(CPU)、与计算机101关联的多个处理器之间的辅助处理器、基于半导体的微处理器(采用微芯片或芯片组的形式)、宏处理器,或者通常为用于执行指令的任何设备。处理器105可以包括高速缓存170,其可以组织为具有多个高速缓存级别(L1、L2等)的层次结构。
存储器110可以包括以下各项的任何一个或组合:易失性存储元件(例如,随机存取存储器(RAM,例如DRAM、SRAM、SDRAM等))和非易失性存储元件(例如,ROM、可擦式可编程只读存储器(EPROM)、电可擦式可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁带、紧凑盘只读存储器(CD-ROM)、磁盘、软盘、盒带、卡带等)。此外,存储器110可以包括电、磁、光和/或其它类型的存储介质。注意,存储器110可以具有分布式体系架构,其中各种组件可以彼此远离,但可以由处理器105访问。
存储器110中的指令可以包括一个或多个单独程序,每个程序包括用于实现逻辑功能的可执行指令的有序列表。在图1的实例中,存储器110中的指令包括合适的操作系统(O/S)111。操作系统111基本上控制其它计算机程序的执行,并且提供调度、输入输出控制、文件和数据管理、存储器管理以及通信控制和相关服务。
在一个示例性实施例中,可以将常规键盘150和鼠标155耦合到输入/输出控制器135。其它输出设备(例如I/O设备140、145)可以包括输出设备,例如但不限于打印机、扫描仪、麦克风等。最后,I/O设备140、145还可以包括传送输入和输出的设备,例如但不限于网络接口卡(NIC)或调制器/解调器(用于访问其它文件、设备、系统或网络)、射频(RF)或其它收发器、电话接口、桥接器、路由器等。系统100还可以包括耦合到显示器130的显示控制器125。在一个示例性实施例中,系统100还可以包括用于耦合到网络165的网络接口160。网络165可以是基于IP的网络,其用于经由宽带连接在计算机101和任何外部服务器、客户机等之间通信。网络165在计算机101和外部系统之间发送和接收数据。在一个示例性实施例中,网络165可以是服务提供商管理的受管IP网络。网络165可以以无线方式实现,例如使用诸如Wi-Fi、WiMax之类的无线协议和技术。网络165还可以是分组交换网络,例如局域网、广域网、城域网、因特网,或者其它类似类型的网络环境。网络165可以是固定无线网络、无线局域网(LAN)、无线广域网(WAN)、个人区域网络(PAN)、虚拟专用网络(VPN)、内联网或其它合适的网络系统,并且包括用于接收和发送信号的设备。
如果计算机101是PC、工作站、智能设备等,则存储器110中的指令还可以包括基本输入输出系统(BIOS)(为简单起见而被省略)。BIOS是一组必需例程,其在启动时初始化和测试硬件,启动O/S 111,并且支持在存储设备之间传输数据。BIOS存储在ROM中,以便可以在激活计算机101时执行BIOS。
当计算机101处于操作中时,处理器105被配置为执行存储在存储器110中的指令,以便将数据传送到存储器110并从存储器110传送数据,并且总体上根据指令控制计算机101的操作。在一个示例性实施例中,计算机系统100包括一个或多个加速器180,它们被配置为与处理器105通信。加速器180可以是现场可编程门阵列(FPGA),或者被配置为执行特定处理任务的其它合适设备。在各示例性实施例中,计算机系统100可以被配置为将某些处理任务卸载到加速器180,因为加速器180可以比处理器105更高效地执行处理任务。
现在参考图2,示出显示根据一个示例性实施例的具有多个加速器206以便加速数据库查询操作的系统200的框图。系统200包括主机204,其可以是图1中所示的计算机,具有被配置为执行数据库管理软件的中央处理单元。在一个示例性实施例中,主机204从应用202接收数据库查询,并且作为响应,将一个或多个查询处理操作卸载到加速器206中的一个或多个。
在各示例性实施例中,主机204包括查询优化器208,其从应用202接收查询并且针对查询执行分析。基于对查询的分析,查询优化器208从多个加速器中选择一个或多个加速器206以便执行查询处理操作。在各示例性实施例中,查询优化器208还可以从可用于每个加速器206的多个加速器模板中选择加速器模板。在各示例性实施例中,多个加速器模板中的每一个是加速器206能够执行的存储的处理配置。
在各示例性实施例中,每个加速器206和加速器模板具有与其关联的成本模型。成本模型包括加速器/模板的吞吐量和延迟。每个加速器206还具有报告给主机204的状态。状态指示加速器206是否以及何时可用。在各示例性实施例中,查询优化器208使用成本模型和状态信息来确定具有优化性能和资源利用的查询执行计划。查询优化器208使用该信息结合其它软件运营商成本来确定以下查询执行计划:其包括要卸载哪些查询操作、要使用哪些加速器,以及应该如何组合多个加速后的运营商和软件运营商。主机204可以在多个选项之间确定优化目标,这些选项例如包括最短查询时间、最大化加速器利用,或者最小化主机资源(例如CPU和存储器)的使用。在各示例性实施例中,查询优化器208使用动态编程、试探法或其它优化算法或它们的组合,确定具有指定的优化目标(多个)的查询计划。
在各示例性实施例中,可以以各种配置在系统200中布置多个加速器206。例如,多个加速器芯片可以位于单个加速器卡(例如PCIe卡)上,单个加速器芯片可以位于系统中的多个加速器卡中的每一个上,或者可以使用这两种布置的组合。在各示例性实施例中,可以基于系统配置,以各种方式执行不同加速器之间的通信。例如,不同加速器之间的通信可以是直接芯片到芯片通信、通过系统总线的对等通信,或者经由主机CPU存储器的通信。在各示例性实施例中,跨不同加速器以流水线方式执行数据库查询操作可以减少从一个加速器到下一个加速器的数据传输延迟,并且保持高的持续查询处理吞吐量。在各示例性实施例中,多个加速器可以是异构的,并且可以加速单个查询的不同部分或者并行加速不同查询。
在各示例性实施例中,数据库查询可以包括多个操作,例如解压缩、谓词计算、投影、排序、联接等。在加速器(例如FPGA)上执行这些操作可以增强数据库查询性能。此外,在加速器上并发和/或以流水线方式执行多个操作(如图3中所示)将增加主机卸载的处理,更好地分摊设置/清除和数据传输开销,并且提供更高的整体查询处理性能。
现在参考图3,示出加速器310的框图。如图所示,加速器310被配置为执行多个查询操作,并且包括对应于多个查询操作中的每一个的模块。具体地说,加速器310包括页解包模块311、解压缩模块312、谓词计算模块313、投影模块314、联接模块315、排序模块316和页打包模块317。
在一个实施例中,可以将多个查询操作卸载到单个加速器上,如图3中所示。在其它实施例中,可以跨多个加速器卸载数据库查询的多个查询操作,这可以导致增加整体数据库查询性能。在各示例性实施例中,可以以流水线/并发方式布置多个加速器以便加速查询操作。此外,加速器可以具有相同类型或不同类型。例如,具有多个加速器的系统可以包括多个FPGA,而另一个系统可以包括FPGA、GPU和其它加速器的组合。在各示例性实施例中,可以利用多个加速器以便加速数据库查询中的一个或多个运算符,或者用于以多种不同方式并行加速多个查询。
现在参考图4,示出跨多个加速器分布数据库查询操作的框图。如图所示,将每个数据库查询操作布置在单独加速器上。具体地说,第一加速器410包括页解包模块411,第二加速器420包括解压缩模块421,第三加速器430包括谓词计算模块431,第四加速器440包括投影模块441,第五加速器450包括联接模块451,第六加速器460包括排序模块461,并且第七加速器470包括页打包模块471。在各示例性实施例中,可以将单个操作分解成多个部分,并且单个加速器可以迭代执行多个部分,然后将结果转发到下一个加速器。
现在参考图5,示出跨多个加速器分布数据库查询操作的框图。如图所示,一个或多个加速器包括多个数据库查询操作,并且某些加速器仅包括单个数据库查询操作。具体地说,第一加速器510包括页解包模块511和解压缩模块512,第二加速器520包括谓词计算模块521和投影模块522,第三加速器530包括联接模块531,第四加速器540包括排序模块541,并且第五加速器550包括页打包模块551。
现在参考图6,示出跨多个加速器分布数据库查询操作的框图。如图所示,可以跨多个加速器布置一个或多个数据库查询操作。具体地说,第一加速器610包括页解包模块611,第二加速器620包括解压缩模块621,第三加速器630包括谓词计算模块的第一部分631,第四加速器640包括谓词计算模块的第二部分641,第五加速器650包括投影模块651,第六加速器660包括联接模块661,第七加速器670包括排序模块671,并且第八加速器680包括页打包模块681。
现在参考图7,示出跨多个加速器分布数据库查询操作的框图。如图所示,可以将所有数据库查询操作布置在单个加速器710上,并且一个或多个加速器720、730可以被配置为同时工作。在各示例性实施例中,个体加速器710、720、730可以被配置为针对单个数据库查询在数据库表的不同部分上独立地工作。在其它示例性实施例中,可以将数据库查询的所有数据库查询操作布置在单个加速器710上,并且多个加速器720、730针对不同查询同时而独立地工作。
现在参考图8,示出根据一个实施例的用于跨多个加速器分布数据库查询操作的方法800的流程图。如在方框802中所示,方法800包括接收来自应用的数据库查询。接下来,如在方框804中所示,方法800包括针对所述查询执行分析。方法800还包括标识多个可用加速器,如在方框806中所示。接下来,如在方框808中所示,方法800包括针对所述多个可用加速器中的每一个上可用的一个或多个模板,检索成本信息。方法800还包括基于所述成本信息和针对所述查询的分析,确定查询执行计划,如在方框810中所示。接下来,如在方框812中所示,方法800包括基于所述查询执行计划,将一个或多个查询操作卸载到所述多个加速器中的至少一个。
所属技术领域的技术人员知道,本发明的各个方面可以实现为系统、方法或计算机程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。此外,本发明的各个方面还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读存储介质。计算机可读存储介质例如可以是—但不限于—电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括—但不限于—无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明的各个方面的操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
上面已经参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、其它可编程数据处理装置、或其它设备以特定方式工作,从而,存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品(article ofmanufacture)。
也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令提供实现流程图和/或框图中的一个或多个方框中规定的功能/动作的过程。
公开的流程图和框图显示了根据本发明的不同实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
在此使用的术语只是为了描述特定的实施例并且并非旨在作为本发明的限制。如在此使用的,单数形式“一”、“一个”和“该”旨在同样包括复数形式,除非上下文明确地另有所指。还将理解,当在此说明书中使用时,术语“包括”和/或“包含”指定了声明的特性、整数、步骤、操作、元素和/或组件的存在,但是并不排除一个或多个其它特性、整数、步骤、操作、元素、组件和/或其组合的存在或增加。
下面权利要求中的对应结构、材料、操作以及所有功能性限定的装置或步骤的等同替换,旨在包括任何用于与在权利要求中具体指出的其它元件相组合地执行该功能的结构、材料或操作。出于示例和说明目的给出了对本发明的描述,但所述描述并非旨在是穷举的或是将本发明限于所公开的形式。在不偏离本发明的范围和精神的情况下,对于所属技术领域的普通技术人员来说许多修改和变化都将是显而易见的。实施例的选择和描述是为了最佳地解释本发明的原理和实际应用,并且当适合于所构想的特定使用时,使得所属技术领域的其它普通技术人员能够理解本发明的具有各种修改的各种实施例。
在此示出的流程图只是一个实例。在此描述的这些图或步骤(或操作)可以存在许多变化而不偏离本发明的精神。例如,可以按不同的顺序执行步骤,或者可以添加、删除或修改步骤。所有这些变化都被视为要求保护的本发明的一部分。
尽管描述了本发明的优选实施例,但所属技术领域的技术人员应该理解,可以在现在和将来进行各种落入下面权利要求范围的改进和增强。这些权利要求应该被解释为维护对最初描述的本发明的正确保护。

Claims (15)

1.一种用于将多个处理操作卸载到加速器的方法,所述方法包括:
由处理设备接收来自应用的数据库查询;
针对所述查询执行分析;
标识多个可用加速器;
针对所述多个可用加速器中的每一个上可用的一个或多个模板,检索成本信息;
基于所述成本信息和针对所述查询的分析,确定查询执行计划;以及
基于所述查询执行计划,将一个或多个查询操作卸载到所述多个加速器中的至少一个。
2.根据权利要求1的方法,其中所述成本信息包括所述多个可用加速器中的每一个上可用的所述一个或多个模板的吞吐量和延迟。
3.根据权利要求1的方法,其中所述数据库查询包括多个查询操作。
4.根据权利要求3的方法,其中查询执行计划包括将所述多个查询操作中的每一个分配给所述多个可用加速器中的一个不同可用加速器。
5.根据权利要求3的方法,其中查询执行计划包括将所述多个查询操作中的两个或更多查询操作分配给所述多个可用加速器中的一个可用加速器。
6.根据权利要求3的方法,其中查询执行计划包括将所述多个查询操作中的全部查询操作分配给所述多个可用加速器中的一个可用加速器。
7.根据权利要求3的方法,其中查询执行计划包括将所述数据库查询拆分成多个部分,以及将所述多个查询操作中的一个查询操作的第一部分分配给所述多个可用加速器中的一个可用加速器,将所述多个查询操作中的所述一个查询操作的第二部分分配给所述多个可用加速器中的另一个可用加速器。
8.根据权利要求1的方法,其中所述多个加速器是异构的,并且被配置为加速单个查询的不同部分或者并行加速不同查询。
9.一种包括处理设备的系统,所述处理设备被配置为:
接收来自应用的数据库查询;
针对所述查询执行分析;
标识多个可用加速器;
针对所述多个可用加速器中的每一个上可用的一个或多个模板,检索成本信息;
基于所述成本信息和针对所述查询的分析,确定查询执行计划;以及
基于所述查询执行计划,将一个或多个查询操作卸载到所述多个加速器中的至少一个。
10.根据权利要求9的系统,其中所述成本信息包括所述多个可用加速器中的每一个上可用的所述一个或多个模板的吞吐量和延迟。
11.根据权利要求9的系统,其中所述数据库查询包括多个查询操作。
12.根据权利要求11的系统,其中查询执行计划包括将所述多个查询操作中的每一个分配给所述多个可用加速器中的一个不同可用加速器。
13.根据权利要求11的系统,其中查询执行计划包括将所述多个查询操作中的两个或更多查询操作分配给所述多个可用加速器中的一个可用加速器。
14.根据权利要求11的系统,其中查询执行计划包括将所述多个查询操作中的全部查询操作分配给所述多个可用加速器中的一个可用加速器。
15.根据权利要求11的系统,其中查询执行计划包括将所述数据库查询拆分成多个部分,以及将所述多个查询操作中的一个查询操作的第一部分分配给所述多个可用加速器中的一个可用加速器,将所述多个查询操作中的所述一个查询操作的第二部分分配给所述多个可用加速器中的另一个可用加速器。
CN201410380355.8A 2013-08-07 2014-08-05 用于数据库查询操作的可缩放加速的方法和系统 Active CN104346433B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/961,095 2013-08-07
US13/961,095 US9495418B2 (en) 2013-08-07 2013-08-07 Scalable acceleration of database query operations

Publications (2)

Publication Number Publication Date
CN104346433A true CN104346433A (zh) 2015-02-11
CN104346433B CN104346433B (zh) 2017-10-17

Family

ID=52449513

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410380355.8A Active CN104346433B (zh) 2013-08-07 2014-08-05 用于数据库查询操作的可缩放加速的方法和系统

Country Status (2)

Country Link
US (3) US9495418B2 (zh)
CN (1) CN104346433B (zh)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108600299A (zh) * 2018-03-02 2018-09-28 中国科学院上海微系统与信息技术研究所 分布式多用户间计算任务卸载方法及系统
US10146833B1 (en) 2016-03-30 2018-12-04 Amazon Technologies, Inc. Write-back techniques at datastore accelerators
US10191663B1 (en) 2016-09-19 2019-01-29 Amazon Technologies, Inc. Using data store accelerator intermediary nodes and write control settings to identify write propagation nodes
US10275489B1 (en) 2016-03-30 2019-04-30 Amazon Technologies, Inc. Binary encoding-based optimizations at datastore accelerators
US10482062B1 (en) 2016-03-30 2019-11-19 Amazon Technologies, Inc. Independent evictions from datastore accelerator fleet nodes
CN111198766A (zh) * 2020-01-06 2020-05-26 中科驭数(北京)科技有限公司 数据库访问操作部署方法、数据库访问方法及装置
WO2021044263A1 (en) * 2019-09-03 2021-03-11 International Business Machines Corporation Reducing temp size over base table
CN113168147A (zh) * 2018-12-29 2021-07-23 阿里巴巴集团控股有限公司 使用硬件加速高效地扫描数据库的系统和方法
CN113168372A (zh) * 2019-01-10 2021-07-23 阿里巴巴集团控股有限公司 使用可编程逻辑器件(pld)来提供数据库加速的系统和方法
CN113448967A (zh) * 2021-07-20 2021-09-28 威讯柏睿数据科技(北京)有限公司 一种对数据库操作进行加速的方法和装置
TWI777481B (zh) * 2021-04-08 2022-09-11 鴻海精密工業股份有限公司 數據控制方法、數據處理方法、電子設備及儲存介質
CN115335821A (zh) * 2020-03-24 2022-11-11 国际商业机器公司 卸载统计收集

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9495418B2 (en) 2013-08-07 2016-11-15 International Business Machines Corporation Scalable acceleration of database query operations
US9251218B2 (en) 2013-08-07 2016-02-02 International Business Machines Corporation Tunable hardware sort engine for performing composite sorting algorithms
US9830354B2 (en) 2013-08-07 2017-11-28 International Business Machines Corporation Accelerating multiple query processing operations
US10310813B2 (en) 2014-12-29 2019-06-04 International Business Machines Corporation Hardware implementation of a tournament tree sort algorithm using an external memory
CN105159597A (zh) * 2015-06-17 2015-12-16 北京空间机电研究所 不确定数目大数量数据的高速实时排序方法
US9934272B2 (en) 2015-10-22 2018-04-03 International Business Machines Corporation Processing a database query in a database system
US10671607B2 (en) * 2016-09-23 2020-06-02 Futurewei Technologies, Inc. Pipeline dependent tree query optimizer and scheduler
US10691658B2 (en) 2018-05-09 2020-06-23 International Business Machines Corporation Automatically optimizing resource usage on a target database management system to increase workload performance
US11144290B2 (en) * 2019-09-13 2021-10-12 Huawei Technologies Co., Ltd. Method and apparatus for enabling autonomous acceleration of dataflow AI applications
US11249651B2 (en) 2019-10-29 2022-02-15 Samsung Electronics Co., Ltd. System and method for hierarchical sort acceleration near storage
US11153404B2 (en) 2020-01-13 2021-10-19 International Business Machines Corporation Client-server workload sharing

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003071447A2 (en) * 2002-02-21 2003-08-28 Infocyclone Ltd. Adaptive acceleration of retrieval queries
US20100005077A1 (en) * 2008-07-07 2010-01-07 Kickfire, Inc. Methods and systems for generating query plans that are compatible for execution in hardware
CN102004804A (zh) * 2010-12-31 2011-04-06 西北大学 一种范围型数据的存储及查询方法
CN102447688A (zh) * 2010-10-15 2012-05-09 盛绩信息技术(上海)有限公司 网页游戏资源加速器及加速方法
EP2528000A1 (en) * 2003-05-23 2012-11-28 Washington University Intelligent data storage and processing using FPGA devices

Family Cites Families (64)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US738247A (en) 1902-09-12 1903-09-08 Ernst Schoof Feed apparatus for steam-boilers.
US5274805A (en) 1990-01-19 1993-12-28 Amalgamated Software Of North America, Inc. Method of sorting and compressing data
US5210870A (en) 1990-03-27 1993-05-11 International Business Machines Database sort and merge apparatus with multiple memory arrays having alternating access
US5287494A (en) 1990-10-18 1994-02-15 International Business Machines Corporation Sorting/merging tree for determining a next tournament champion in each cycle by simultaneously comparing records in a path of the previous tournament champion
US5355478A (en) 1991-12-23 1994-10-11 International Business Machines Corporation Method for avoiding cache misses during external tournament tree replacement sorting procedures
US5579514A (en) 1993-10-22 1996-11-26 International Business Machines Corporation Methodology for increasing the average run length produced by replacement selection strategy in a system consisting of multiple, independent memory buffers
US5619693A (en) 1994-05-02 1997-04-08 Tandem Computers Incorporated Method for sorting and storing data employing dynamic sort tree reconfiguration in volatile memory
US6282541B1 (en) 1997-07-28 2001-08-28 International Business Machines Corporation Efficient groupby aggregation in tournament tree sort
WO1999054833A2 (en) 1998-04-20 1999-10-28 Recursion Dynamics Inc. Dynamically configurable data storage and processing system optimized for performing database operations
JP3344559B2 (ja) 1998-06-19 2002-11-11 三菱電機株式会社 マージソート処理装置
JP2001000018A (ja) 1999-06-18 2001-01-09 Mitsubishi Agricult Mach Co Ltd 移植機における補助苗載せ台
US6891834B1 (en) 1999-09-09 2005-05-10 Avici Systems Apparatus and method for packet scheduling
US7139743B2 (en) * 2000-04-07 2006-11-21 Washington University Associative database scanning and information retrieval using FPGA devices
US20020078023A1 (en) 2000-10-02 2002-06-20 Lawton Scott S. Method and system for combining user-supplied sort information with secondary sort information
US20040205692A1 (en) 2001-01-12 2004-10-14 Robinson Marck R. Method and system for creating reusable software components through a uniform interface
US6748386B1 (en) 2001-04-24 2004-06-08 Nec Corporation System and method for automated construction of URL, cookie, and database query mapping
US7010521B2 (en) 2002-05-13 2006-03-07 Netezza Corporation Optimized database appliance
JP4035600B2 (ja) 2002-05-22 2008-01-23 国立大学法人 東京大学 イマチニブに対する感受性の判定方法
US7158996B2 (en) 2003-01-27 2007-01-02 International Business Machines Corporation Method, system, and program for managing database operations with respect to a database table
EP1624386B1 (en) 2004-08-06 2013-08-28 Sap Ag Searching for data objects
KR20070101288A (ko) 2005-01-25 2007-10-16 가부시키가이샤 터보 데이터 라보라토리 트리의 검색, 집계, 소트 방법, 정보 처리 장치, 및 트리의검색, 집계, 소트 프로그램
US7640230B2 (en) * 2005-04-05 2009-12-29 Microsoft Corporation Query plan selection control using run-time association mechanism
US7707163B2 (en) 2005-05-25 2010-04-27 Experian Marketing Solutions, Inc. Software and metadata structures for distributed and interactive database architecture for parallel and asynchronous data processing of complex data and for real-time query processing
US7373475B2 (en) 2005-06-21 2008-05-13 Intel Corporation Methods for optimizing memory unit usage to maximize packet throughput for multi-processor multi-threaded architectures
US7383247B2 (en) * 2005-08-29 2008-06-03 International Business Machines Corporation Query routing of federated information systems for fast response time, load balance, availability, and reliability
WO2007061430A1 (en) 2005-11-22 2007-05-31 Bea Systems, Inc. System and method for translating sql queries into xml query language
US7926046B2 (en) 2005-12-13 2011-04-12 Soorgoli Ashok Halambi Compiler method for extracting and accelerator template program
US20080222121A1 (en) 2006-06-02 2008-09-11 Wolfgang Wiessler System for Adaptively Querying a Data Storage Repository
US7814112B2 (en) 2006-06-09 2010-10-12 Ebay Inc. Determining relevancy and desirability of terms
US7908259B2 (en) 2006-08-25 2011-03-15 Teradata Us, Inc. Hardware accelerated reconfigurable processor for accelerating database operations and queries
US7788099B2 (en) 2007-04-09 2010-08-31 International Business Machines Corporation Method and apparatus for query expansion based on multimodal cross-vocabulary mapping
US8645623B1 (en) 2007-06-28 2014-02-04 Emc Corporation Method for performing a raid operation in a data storage system
US9135073B2 (en) 2007-11-15 2015-09-15 International Business Machines Corporation Server-processor hybrid system for processing data
US8176256B2 (en) 2008-06-12 2012-05-08 Microsoft Corporation Cache regions
US10089379B2 (en) 2008-08-18 2018-10-02 International Business Machines Corporation Method for sorting data
US8225074B2 (en) * 2008-10-02 2012-07-17 Nec Laboratories America, Inc. Methods and systems for managing computations on a hybrid computing platform including a parallel accelerator
US20100115100A1 (en) 2008-10-30 2010-05-06 Olga Tubman Federated configuration data management
US20100185954A1 (en) 2009-01-21 2010-07-22 Microsoft Corporation Collaborative Environment Project Extensibility with Composition Containers
US8161244B2 (en) 2009-05-13 2012-04-17 Microsoft Corporation Multiple cache directories
US8745065B2 (en) 2009-07-07 2014-06-03 Google Inc. Query parsing for map search
US8688683B2 (en) * 2009-11-30 2014-04-01 Business Objects Software Ltd. Query plan reformulation
US8874547B2 (en) * 2010-01-04 2014-10-28 Microsoft Corporation Parameter-sensitive plans
US8321476B2 (en) 2010-03-29 2012-11-27 Sybase, Inc. Method and system for determining boundary values dynamically defining key value bounds of two or more disjoint subsets of sort run-based parallel processing of data from databases
US8392463B2 (en) 2010-04-22 2013-03-05 International Business Machines Corporation GPU enabled database systems
US8468151B2 (en) 2010-06-29 2013-06-18 Teradata Us, Inc. Methods and systems for hardware acceleration of database operations and queries based on multiple hardware accelerators
JP5539080B2 (ja) 2010-07-15 2014-07-02 キヤノン株式会社 情報処理装置、情報処理システム、情報処理装置の制御方法、通信状態確認方法、及びプログラム
US8706750B2 (en) 2010-08-19 2014-04-22 Google Inc. Predictive query completion and predictive search results
JP5555116B2 (ja) * 2010-09-29 2014-07-23 キヤノン株式会社 情報処理装置、及び、プロセッサ間通信制御方法
EP2437161A1 (en) * 2010-10-01 2012-04-04 Intel Mobile Communications Technology Dresden GmbH Hardware accelerator module and method for setting up same
US9171045B2 (en) 2010-11-11 2015-10-27 Microsoft Technology Licensing, Llc Recommending queries according to mapping of query communities
CN102479239B (zh) 2010-11-29 2016-03-09 国际商业机器公司 预存储rdf三元数据的方法和装置
US8447767B2 (en) 2010-12-15 2013-05-21 Xerox Corporation System and method for multimedia information retrieval
US20120246170A1 (en) 2011-03-22 2012-09-27 Momentum Consulting Managing compliance of data integration implementations
US20120310882A1 (en) 2011-06-03 2012-12-06 Apple Inc. Key value data storage
US8756582B2 (en) 2011-08-22 2014-06-17 International Business Machines Corporation Tracking a programs calling context using a hybrid code signature
CN103988483B (zh) 2011-10-14 2018-08-28 思杰系统有限公司 用于网络加速器的动态适应的系统和方法
US20140351239A1 (en) * 2013-05-23 2014-11-27 Microsoft Corporation Hardware acceleration for query operators
US9619499B2 (en) 2013-08-07 2017-04-11 International Business Machines Corporation Hardware implementation of a tournament tree sort algorithm
US9495418B2 (en) 2013-08-07 2016-11-15 International Business Machines Corporation Scalable acceleration of database query operations
US9830354B2 (en) 2013-08-07 2017-11-28 International Business Machines Corporation Accelerating multiple query processing operations
US9251218B2 (en) 2013-08-07 2016-02-02 International Business Machines Corporation Tunable hardware sort engine for performing composite sorting algorithms
US9613096B2 (en) * 2014-03-04 2017-04-04 International Business Machines Corporation Dynamic result set caching with a database accelerator
US10127275B2 (en) 2014-07-11 2018-11-13 International Business Machines Corporation Mapping query operations in database systems to hardware based query accelerators
US10310813B2 (en) 2014-12-29 2019-06-04 International Business Machines Corporation Hardware implementation of a tournament tree sort algorithm using an external memory

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003071447A2 (en) * 2002-02-21 2003-08-28 Infocyclone Ltd. Adaptive acceleration of retrieval queries
EP2528000A1 (en) * 2003-05-23 2012-11-28 Washington University Intelligent data storage and processing using FPGA devices
US20100005077A1 (en) * 2008-07-07 2010-01-07 Kickfire, Inc. Methods and systems for generating query plans that are compatible for execution in hardware
CN102447688A (zh) * 2010-10-15 2012-05-09 盛绩信息技术(上海)有限公司 网页游戏资源加速器及加速方法
CN102004804A (zh) * 2010-12-31 2011-04-06 西北大学 一种范围型数据的存储及查询方法

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10146833B1 (en) 2016-03-30 2018-12-04 Amazon Technologies, Inc. Write-back techniques at datastore accelerators
US10275489B1 (en) 2016-03-30 2019-04-30 Amazon Technologies, Inc. Binary encoding-based optimizations at datastore accelerators
US10482062B1 (en) 2016-03-30 2019-11-19 Amazon Technologies, Inc. Independent evictions from datastore accelerator fleet nodes
US11561930B2 (en) 2016-03-30 2023-01-24 Amazon Technologies, Inc. Independent evictions from datastore accelerator fleet nodes
US10191663B1 (en) 2016-09-19 2019-01-29 Amazon Technologies, Inc. Using data store accelerator intermediary nodes and write control settings to identify write propagation nodes
CN108600299B (zh) * 2018-03-02 2021-08-24 中国科学院上海微系统与信息技术研究所 分布式多用户间计算任务卸载方法及系统
CN108600299A (zh) * 2018-03-02 2018-09-28 中国科学院上海微系统与信息技术研究所 分布式多用户间计算任务卸载方法及系统
CN113168147A (zh) * 2018-12-29 2021-07-23 阿里巴巴集团控股有限公司 使用硬件加速高效地扫描数据库的系统和方法
CN113168372A (zh) * 2019-01-10 2021-07-23 阿里巴巴集团控股有限公司 使用可编程逻辑器件(pld)来提供数据库加速的系统和方法
CN113168372B (zh) * 2019-01-10 2023-12-26 阿里巴巴集团控股有限公司 使用可编程逻辑器件(pld)来提供数据库加速的系统和方法
US11023464B2 (en) 2019-09-03 2021-06-01 International Business Machines Corporation Reducing temp size over a base table
GB2603361B (en) * 2019-09-03 2023-01-04 Ibm Reducing temp size over base table
WO2021044263A1 (en) * 2019-09-03 2021-03-11 International Business Machines Corporation Reducing temp size over base table
GB2603361A (en) * 2019-09-03 2022-08-03 Ibm Reducing temp size over base table
CN111198766A (zh) * 2020-01-06 2020-05-26 中科驭数(北京)科技有限公司 数据库访问操作部署方法、数据库访问方法及装置
CN111198766B (zh) * 2020-01-06 2021-02-05 中科驭数(北京)科技有限公司 数据库访问操作部署方法、数据库访问方法及装置
CN115335821A (zh) * 2020-03-24 2022-11-11 国际商业机器公司 卸载统计收集
CN115335821B (zh) * 2020-03-24 2023-08-15 国际商业机器公司 卸载统计收集
TWI777481B (zh) * 2021-04-08 2022-09-11 鴻海精密工業股份有限公司 數據控制方法、數據處理方法、電子設備及儲存介質
CN113448967A (zh) * 2021-07-20 2021-09-28 威讯柏睿数据科技(北京)有限公司 一种对数据库操作进行加速的方法和装置

Also Published As

Publication number Publication date
US9336274B2 (en) 2016-05-10
US10169413B2 (en) 2019-01-01
US20150046430A1 (en) 2015-02-12
US20160357817A1 (en) 2016-12-08
US9495418B2 (en) 2016-11-15
CN104346433B (zh) 2017-10-17
US20150046428A1 (en) 2015-02-12

Similar Documents

Publication Publication Date Title
CN104346433A (zh) 用于数据库查询操作的可缩放加速的方法和系统
US11290534B2 (en) System and method for scheduling computer tasks
US10558483B2 (en) Optimal dynamic placement of virtual machines in geographically distributed cloud data centers
US20220391260A1 (en) Method and Apparatus for Creating Container, Device, Medium, and Program Product
US20160119198A1 (en) Deep Packet Inspection Method and Device, and Coprocessor
KR102310187B1 (ko) 복수의 엣지와 클라우드를 포함하는 분산 컴퓨팅 시스템 및 이의 적응적 지능 활용을 위한 분석 모델 제공 방법
US20180248934A1 (en) Method and System for a Scheduled Map Executor
US20190044999A1 (en) Application Deployment Engine
US10268741B2 (en) Multi-nodal compression techniques for an in-memory database
US10193969B2 (en) Parallel processing system, method, and storage medium
KR20210134937A (ko) 데이터베이스 통합을 위한 자격증명이 없는 외부 스테이지
US11138038B1 (en) Adaptive freepool size prediction
US10326824B2 (en) Method and system for iterative pipeline
CN108566393B (zh) 数据加密的方法、装置和系统
US20180288099A1 (en) Secure software defined storage
US20180260246A1 (en) Runtime piggybacking of concurrent jobs in task-parallel machine learning programs
CN104717286B (zh) 数据处理方法、终端、服务器和系统
US10938742B1 (en) Multiplexed resource allocation architecture
US9436523B1 (en) Holistic non-invasive evaluation of an asynchronous distributed software process
KR102256361B1 (ko) 데이터의 접근 제어를 위한 네트워크 장치 및 방법, 그리고 이를 이용한 데이터 접근 제어 시스템
Srikrishnan et al. A log data analytics based scheduling in open source cloud software
Hilgendorf et al. FORTE: an extensible framework for robustness and efficiency in data transfer pipelines
US20170336991A1 (en) System and methodology for automatic classification and separation of storage resources based on optimizing i/o requirements
CN117793100A (zh) 一种流量转发系统及方法
WO2022108726A1 (en) Distributed medical software platform

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