CN110291503B - 信息处理系统和信息处理方法 - Google Patents
信息处理系统和信息处理方法 Download PDFInfo
- Publication number
- CN110291503B CN110291503B CN201880009900.9A CN201880009900A CN110291503B CN 110291503 B CN110291503 B CN 110291503B CN 201880009900 A CN201880009900 A CN 201880009900A CN 110291503 B CN110291503 B CN 110291503B
- Authority
- CN
- China
- Prior art keywords
- processing
- task
- query
- accelerator
- server
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 230000010365 information processing Effects 0.000 title claims description 46
- 238000003672 processing method Methods 0.000 title claims description 5
- 238000012545 processing Methods 0.000 claims description 369
- 238000000034 method Methods 0.000 claims description 99
- 230000008569 process Effects 0.000 claims description 94
- 230000002776 aggregation Effects 0.000 claims description 60
- 238000004220 aggregation Methods 0.000 claims description 60
- 230000006870 function Effects 0.000 claims description 59
- 230000015654 memory Effects 0.000 claims description 52
- 238000006243 chemical reaction Methods 0.000 claims description 43
- 238000001914 filtration Methods 0.000 claims description 32
- 230000009466 transformation Effects 0.000 claims description 10
- 238000004458 analytical method Methods 0.000 description 59
- 238000004891 communication Methods 0.000 description 18
- 238000010586 diagram Methods 0.000 description 17
- 230000005540 biological transmission Effects 0.000 description 6
- 238000005457 optimization Methods 0.000 description 6
- 238000003860 storage Methods 0.000 description 5
- 238000011156 evaluation Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 238000012423 maintenance Methods 0.000 description 3
- 238000011282 treatment Methods 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 241000282813 Aepyceros melampus Species 0.000 description 1
- 239000000654 additive Substances 0.000 description 1
- 230000000996 additive effect Effects 0.000 description 1
- 230000004931 aggregating effect Effects 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 239000006185 dispersion Substances 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003936 working memory Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24532—Query optimisation of parallel queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24534—Query rewriting; Transformation
- G06F16/24542—Plan optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/24569—Query processing with adaptation to specific hardware, e.g. adapted for using GPUs or SSDs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5044—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5066—Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5017—Task decomposition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/509—Offload
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Operations Research (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
在分布式DB系统的作为工作节点的各服务器中搭载加速器,将由应用程序服务器的应用程序生成的查询分成要由加速器执行的第一任务和要由软件执行的第二任务,并对分布式DB系统的服务器分配,服务器使加速器执行第一任务,由软件执行第二任务。
Description
技术领域
本发明涉及信息处理系统和信息处理方法,例如适合应用于对大数据进行分析的分析系统。
背景技术
近年来,大数据(big data)的使用正在逐渐扩大。在使用大数据时,需要其分析,但在大数据的分析领域中,可以认为今后Hadoop和Spark这样横向扩展型的分布式数据库的应用会成为主流。另外,为了迅速进行决策,对于使用大数据的交互且短TAT(TurnAround Time,周转时间)的自助式分析的需求也在提高。
另外,专利文献1中,公开了与分别具有存储XLM数据的数据库的多个分散的数据库服务器连接的协调服务器,基于各数据库服务器的处理能力分别生成查询的技术。
现有技术文献
专利文献
专利文献1:日本特开2009-110052号公报
发明内容
发明要解决的课题
然而,在分布式数据库系统中,为了确保用于对大量的数据进行高速处理的性能而需要大量的节点,结果系统规模增大,存在引入成本和维护成本增加的课题。
作为用于解决这样的课题的方法之一,可以考虑通过在分布式数据库系统的节点中搭载加速器、提高每个节点的性能,而减少节点数、抑制系统规模的方法。实际上,在研究层面上,发表了多种与OSS(Open-Source Software,开源软件)数据库引擎具有同样的功能的加速器,认为通过使用这样的加速器,可以提高节点的性能。
但是,该种类的加速器以某种系统修改为前提,不存在不修改现有一般的数据库引擎就能够使用的加速器。
然而,近年来,存在对OSS的Apache类的分布式数据库引擎(Spark和Impala等)的用户定义函数(UDF)进行扩展的动向(Apache Arrow),实现不修改数据库引擎的OSS分布式数据库加速器的环境正在逐渐完善。另一方面,使用用户定义函数的情况下,仍然存在需要修改生成SQL(Structured Query Language,结构性查询语言)查询的应用程序的课题。
本发明是考虑以上方面得出的,提出一种不进行应用程序的修改、可以防止为了大容量数据的高速处理的系统规模增大、抑制引入成本和维护成本的增大的信息处理技术。
用于解决课题的技术方案
为了解决该课题,在本发明的一个方式中,在分布式DB系统的作为工作节点的各服务器中搭载加速器,将由应用程序服务器的应用程序生成的查询分成要由加速器执行的第一任务和要由软件执行的第二任务,并对分布式DB系统的服务器分配,服务器使加速器执行第一任务,由软件执行第二任务。
发明效果
根据本发明的一个方式,能够提供用于大容量数据的高速处理的技术。
附图说明
图1是表示第一和第二实施方式的信息处理系统的硬件结构的框图。
图2是表示第一和第二实施方式的信息处理系统的逻辑结构的框图。
图3是表示加速器信息表的概略结构的概念图。
图4是用于说明SQL查询变换部进行的SQL查询的变换的图。
图5是表示查询变换处理的处理流程的流程图。
图6是表示由主节点服务器执行的处理的处理流程的流程图。
图7是表示由工作节点服务器执行的Map处理的处理流程的流程图。
图8是表示由工作节点服务器执行的Reduce处理的处理流程的流程图。
图9是表示信息处理系统中的分析处理时的处理的流程的序列图。
图10是表示工作节点服务器中的Map处理时的处理的流程的序列图。
图11是表示在第二实施方式的信息处理系统中由工作节点服务器执行的Map处理的处理流程的流程图。
图12是表示在第二实施方式的信息处理系统中由工作节点服务器执行的Map处理的流程的序列图。
图13是表示其他实施方式的框图。
图14是表示其他实施方式的框图。
图15是表示第三实施方式的信息处理系统的逻辑结构的框图。
图16是用于说明标准查询计划和变换后查询计划的概念图。
图17是表示信息处理系统中的分析处理时的处理的流程的序列图。
图18是用于说明过滤处理的部分流程图。
图19(1)和(2)是用于说明过滤处理的图。
图20是用于说明扫描处理的部分流程图。
具体实施方式
以下对于附图,详细叙述本发明的一个实施方式。
(1)第一实施方式
(1-1)本实施方式的信息处理系统的结构
图1中,1表示本实施方式的信息处理系统整体。该信息处理系统是进行大数据的分析的分析系统。
实际上,信息处理系统1具备1个或多个客户端2、应用程序服务器3、分布式数据库系统4。然后,各客户端2经由由LAN(Local Area Network,局域网)或互联网等构成的第一网络5与应用程序服务器3连接。
另外,分布式数据库系统4由主节点服务器6和多个工作节点服务器7构成,该主节点服务器6和工作节点服务器7经由由LAN或SAN(Storage Area Network,存储区域网络)等构成的第二网络8与应用程序服务器3分别连接。
客户端2是用户使用的通用的计算机装置。客户端2按照用户操作或者来自该客户端2中安装的应用程序的请求,将包括指定的分析条件的大数据的分析请求经由第一网络5对应用程序服务器3发送。另外,客户端2显示从应用程序服务器3经由第一网络5发送来的分析结果。
应用程序服务器3是具有生成用于获取执行从客户端2请求的分析处理所需的数据的SQL查询并对分布式数据库系统4的主节点服务器6发送、基于从主节点服务器6发送的该SQL查询的结果执行分析处理、并使客户端2显示其分析结果的功能的服务器装置。
该应用程序服务器3具备CPU(Central Processing Unit,中央处理器)10、存储器11、本地驱动器12和通信装置13。
CPU10是负责应用程序服务器3整体的动作控制的处理器。另外,存储器11例如由易失性的半导体存储器构成,用作CPU10的工作存储器。本地驱动器12例如由硬盘装置或SSD(Solid State Drive,固态硬盘)等大容量的非易失性存储装置构成,用于长期保持各种程序和数据。
通信装置13例如由NIC(Network Interface Card,网络接口卡)构成,进行经由第一网络5与客户端2通信时、和经由第二网络8与主节点服务器6或工作节点服务器7通信时的协议控制。
主节点服务器6例如是起到Hadoop中的主节点的作用的通用的服务器装置(开放系统)。实际上,主节点服务器6对从应用程序服务器3经由第二网络8发送来的SQL查询进行解析,将基于该SQL查询的处理分解为Map处理和Reduce处理等任务。另外,主节点服务器6制定该Map处理的任务(以下将其称为Map处理任务)和Reduce处理的任务(以下将其称为Reduce处理任务)的执行计划,按照制定的执行计划将该Map处理任务和Reduce处理任务的执行请求对各工作节点服务器7发送。另外,主节点服务器6将从分配了Reduce处理任务的工作节点服务器7发送来的Reduce处理任务的处理结果作为SQL查询的处理结果对应用程序服务器3发送。
该主节点服务器6与应用程序服务器3同样地具备CPU20、存储器21、本地驱动器22和通信装置23。该CPU20、存储器21、本地驱动器22和通信装置23的功能和结构,与应用程序服务器3的对应部位(CPU10、存储器11、本地驱动器12和通信装置13)是同样的,所以省略它们的详细说明。
工作节点服务器7例如是起到Hadoop中的工作节点的作用的通用的服务器装置(开放系统)。实际上,工作节点服务器7将分散配置的大数据的一部分保持在后述的本地驱动器32内,按照从主节点服务器6给出的Map处理任务和Reduce处理任务的执行请求(以下将其称为任务执行请求)执行Map处理和Reduce处理,将其处理结果对其他工作节点服务器7和主节点服务器6发送。
该工作节点服务器7在CPU30、存储器31、本地驱动器32和通信装置33之外,还具备加速器34和DRAM(Dynamic Random Access Memory,动态随机存储器)35。CPU30、存储器31、本地驱动器32和通信装置33的功能和结构与应用程序服务器3的对应部位(CPU10、存储器11、本地驱动器12和通信装置13)是同样的,所以省略它们的详细说明。另外,本实施方式的情况下,主节点服务器6和工作节点服务器7之间的通信、和工作节点服务器7相互之间的通信,都经由第二网络8进行。
加速器34由FPGA(Field Programmable Gate Array,现场可编程门阵列)构成,执行由从主节点服务器6给出的任务执行请求中包括的规定格式的用户定义函数定义的Map处理任务和Reduce处理任务。另外,DRAM35用作加速器34的工作存储器。另外,以下,假设各工作节点服务器中搭载的加速器全部具有相同的性能和功能。
图2表示该信息处理系统1的逻辑结构。如该图2所示,在各客户端2中分别安装Web浏览器40。Web浏览器40是与通用的Web浏览器具有同样的功能的程序,显示用于由用户设定上述分析条件的分析条件设定画面、和用于显示分析结果的分析结果画面等。
另外,在应用程序服务器3中,实现分析BI(Business Intelligence,商业智能)工具41、JDBC/ODBC(Java(注册商标)Database Connectivity,数据库连接/Open DatabaseConnectivity,开放数据库互连)驱动程序42和查询变换部43。该分析BI工具41、JDBC/ODBC驱动程序42和查询变换部43分别是通过应用程序服务器3的CPU10(图1)执行存储器11(图1)中保存的未图示的程序而实现的功能部。
分析BI工具41是具有生成从分布式数据库系统4获取符合用户在客户端2上显示的分析条件设定画面上设定的分析条件的分析处理所需的数据库数据用的SQL查询的功能的应用程序。分析BI工具41基于获取的数据库数据,执行符合该分析条件的分析处理,使客户端显示包括处理结果的上述分析结果画面。
另外,JDBC/ODBC驱动程序42起到分析BI工具41访问分布式数据库系统4用的接口(API:Application Interface,应用程序接口)的作用。
查询变换部43继承JDBC/ODBC驱动程序42的类(class),作为附加了查询变换功能的子类实现。查询变换部43具有参照本地驱动器12中保存的加速器信息表44、将分析BI工具41生成的SQL查询变换为明确地分为应当由工作节点服务器7的加速器34(图1)执行的任务、和除此以外的任务的SQL查询的功能。
实际上,本实施方式的情况下,在应用程序服务器3的本地驱动器12中,保存有预先由系统管理员等保存了分布式数据库系统4的工作节点服务器7中搭载的加速器34的硬件规格信息的加速器信息表44。
该加速器信息表44如图3所示,具备项目列44A、可否加速列44B和条件列44C构成。然后,在项目列44A中,分别保存加速器34支持的全部功能,在条件列44C中,保存对于对应的功能的条件。另外,可否加速列44B被划分为条件/处理列44BA和可否列44BB,在条件/处理列44BA中,保存对应的功能中的条件和对应的功能中的具体的处理内容,在可否列44BB中,保存表示是否支持对应的条件和处理内容的信息(支持的情况下为“可”,不支持的情况下为“否”)。
然后,查询变换部43参照该加速器信息表44,将分析BI工具生成的SQL查询分解为Map处理任务和Reduce处理任务,在该Map处理任务和Reduce处理任务中,对于加速器34能够执行的Map处理任务和Reduce处理任务用上述用户定义函数定义(描述),对于除此以外的任务生成用分布式数据库系统4的工作节点服务器7中安装的软件能够识别的格式(即SQL)定义(描述)的SQL查询(即,将分析BI工具41生成的SQL任务变换为这样的SQL)。
例如,分析BI工具41生成的SQL查询仅包括如图4(A-1)所示的Map处理(过滤处理)任务、根据加速器信息表44中保存的加速器34的硬件规格信息能够由加速器34执行该Map处理任务的情况下,查询变换部43将该SQL查询变换为用上述用户定义函数定义该Map处理任务的如图4(A-2)所示的SQL查询。
另外,图4(A-1)是请求执行“从‘table1’中提取价格(‘price’)大于‘1000’的记录的‘id’和‘价格(‘price’)’”的Map处理的SQL查询的描述例,图4(A-2)中的“UDF(“SELECTid,price FROM table1 WHERE price>1000”)”的部分表示用该用户定义函数定义的Map处理任务。
另外,分析BI工具41生成的SQL查询包括如图4(B-1)所示的Map处理任务和Reduce处理任务,根据加速器信息表44中保存的加速器34的硬件规格信息能够由加速器34执行该Map处理任务和Reduce处理任务中的Map处理(过滤处理和聚合处理)任务的情况下,查询变换部43将该SQL查询变换为用上述用户定义函数定义该Map处理任务、用SQL定义其他任务的如图4(B-2)所示的SQL查询。
另外,图4(B-1)是请求执行“从‘table1’中仅提取价格(‘price’)大于‘1000’的记录并按‘id’分组,对分组后的‘id’的数量计数”的一系列处理的SQL查询的描述例,图4(B-2)中的“UDF(“SELECT id,COUNT(*)FROM table1 WHERE price>1000 GROUP BY id””的部分表示用该用户定义函数定义的Map处理(过滤处理和聚合处理)任务,“SUM(tmp.cnt)”和“GROUP BY tmp.id”的部分表示应当由软件处理执行的Reduce处理任务。
另一方面,在分布式数据库系统4的主节点服务器6中,如图2所示,实现Thrift服务器部45、查询解析器部46、查询规划器部47、资源管理部48和任务管理部49。该Thrift服务器部45、查询解析器部46、查询规划器部47、资源管理部48和任务管理部49是通过主节点服务器6的CPU20(图1)分别执行存储器21(图1)中保存的对应的程序(未图示)而实现的功能部。
Thrift服务器部45具有接收从应用程序服务器3发送来的SQL查询、将该SQL查询的执行结果对应用程序3发送的功能。另外,查询解析器部46具有对Thrift服务器部45接收的来自应用程序服务器3的SQL查询进行解析、变换为在查询规划器部47中处理的数据结构的集合体的功能。
查询规划器部47具有基于查询解析器部46的解析结果将由SQL查询指定的处理的内容分解为逐个的Map处理任务和Reduce处理任务、制定该Map处理任务和Reduce处理任务的执行计划的功能。
另外,资源管理部48具有管理各工作节点服务器7的硬件资源的规格信息、和从各工作节点服务器7收集的关于硬件资源的当前的使用状况的信息等、按照由查询规划器部47制定的执行计划对于每个任务分别决定执行上述Map处理任务和Reduce处理任务的工作节点服务器7的功能。
任务管理部49具有基于资源管理部48的决定结果、将请求执行该Map处理任务和Reduce处理任务的任务执行请求分别发送至对应的工作节点服务器7的功能。
另一方面,在分布式数据库系统4的各工作节点服务器7中,实现扫描处理部50、聚合处理部51、连接处理部52、过滤处理部53、处理切换部54和加速器控制部55。该扫描处理部50、聚合处理部51、连接处理部52、过滤处理部53、处理切换部54和加速器控制部55分别是通过工作节点服务器7的CPU30(图1)执行存储器31(图1)中保存的对应的程序(未图示)而实现的功能部。
扫描处理部50具有按照从主节点服务器6给出的任务执行请求、从本地驱动器32读取必要的数据库数据58并加载至存储器31(图1)的功能。另外,聚合处理部51、连接处理部52和过滤处理部53分别具有按照从主节点服务器6给出的任务执行请求、执行对读取至存储器31的数据库数据58的聚合处理(SUM、MAX或COUNT等)、连接处理(INNER JOIN或OUTERJOIN等)、或者过滤处理的功能。
处理切换部54具有对于从主节点服务器6给出的任务执行请求中包括的Map处理任务和Reduce处理任务、判定应当通过使用聚合处理部51、连接处理部52和/或过滤处理部53的软件处理执行、还是应当通过使用加速器34的硬件处理执行的功能。另外,任务执行请求中包括多个任务的情况下,处理切换部54按每个任务判定应当通过软件处理执行、还是应当通过硬件处理执行。
实际上,处理切换部54在任务执行请求中任务用SQL描述的情况下,判定应当通过软件处理执行该任务,使聚合处理部51、连接处理部52和过滤处理部53中的必要的处理部执行该任务。另外,处理切换部54在任务执行请求中任务用上述用户定义函数描述的情况下,判定应当通过硬件处理执行该任务,调用加速器控制部55,对加速器控制部55给出该用户定义函数。
加速器控制部55具有控制加速器34的功能。加速器控制部55在从处理切换部54调用时,基于此时从处理切换部54给出的用户定义函数,生成使加速器34执行由该用户定义函数定义的任务(Map处理任务或Reduce处理任务)所需的1个或多个命令(以下将其称为加速器命令)。然后,加速器控制部55对加速器顺次输出生成的加速器命令而使加速器34执行任务。
加速器34具备用于执行Map处理任务和Reduce处理任务的各种功能。图2是加速器34具备过滤处理功能和聚合处理功能的情况的一例,示出了加速器34具备分别与聚合处理部51和过滤处理部53具有同样的功能的聚合处理部56和过滤处理部57的情况。加速器34按照从加速器控制部55给出的加速器命令用聚合处理部56和过滤处理部57执行必要的聚合处理和过滤处理,将其处理结果对加速器控制部55输出。
这样,加速器控制部55执行将从加速器34输出的各加速器命令的处理结果汇总的汇总处理。工作节点服务器7在由加速器34执行的任务是Map处理任务的情况下将其处理结果对分配了Reduce处理的其他工作节点服务器7发送,在由加速器34执行的任务是Reduce处理任务的情况下将其处理结果对主节点服务器6发送。
(1-2)各种处理的内容
以下,对于本信息处理系统1中执行的各种处理的处理内容进行说明。
(1-2-1)查询变换处理
图5表示从应用程序服务器3的分析BI工具41(图2)对查询变换部43(图2)给出SQL查询时由该查询变换部43执行的查询变换处理的处理流程。
查询变换部43在从分析BI工具41给出SQL查询时开始该查询变换处理,首先对给出的SQL查询进行解析,将SQL查询的内容变换为查询变换部43处理的数据结构的集合体(S1)。
接着,查询变换部43基于该解析结果将由SQL查询指定的处理的内容分解为逐个的Map处理任务和Reduce处理任务,并且生成该Map处理任务和Reduce处理任务的执行计划(S2)。另外,查询变换部43参照加速器信息表44(图3)(S3),判定该Map处理任务和Reduce处理任务中,是否存在能够由工作节点服务器7的加速器34执行的任务(S4)。
然后,查询变换部43在该判定中得到否定结果时,将从分析BI工具41给出的SQL查询保持原样地对分布式数据库系统4的主节点服务器6发送(S5),之后,结束该查询变换处理。
与此相对,查询变换部43在步骤S4的判定中得到肯定结果时,将该SQL查询变换为用上述用户定义函数定义能够由工作节点服务器7的加速器34执行的任务(Map处理任务或Reduce处理任务)(S6)、进而用SQL定义除此以外的任务的SQL查询(S7)。
然后,查询变换部43将变换后的SQL查询对分布式数据库系统4的主节点服务器6发送(S8),之后,结束该查询变换处理。
(1-2-2)主节点服务器的处理
另一方面,图6表示从应用程序服务器3发送来SQL查询的主节点服务器6中执行的一系列处理的流程。
在主节点服务器6中,从应用程序服务器3发送来SQL查询时,开始该图6所示的处理,首先,Thrift服务器部45(图2)接收该SQL查询(S10),之后,查询解析器部46(图2)对该SQL查询进行解析(S11)。
然后,基于该解析结果,查询规划器部47(图2)将该SQL查询中指定的处理的内容分解为Map处理任务和Reduce处理任务,并且制定该Map处理任务和Reduce处理任务的执行计划(S12)。
之后,资源管理部48(图2)按照由查询规划器部47制定的执行计划,按每个任务分别决定该Map处理任务和Reduce处理任务的分配目标的工作节点服务器7(S13)。
接着,任务管理部49(图2)按照资源管理部48的决定,对于对应的工作节点服务器7,发送表示要执行对该工作节点服务器7分配的Map处理任务或Reduce处理任务的任务执行请求(S14)。通过以上所述,主节点服务器6的处理结束。
(1-2-3)工作节点服务器的处理
(1-2-3-1)Map处理
图7表示被给出了表示要执行Map处理的任务执行请求的工作节点服务器7中执行的一系列处理的流程。
从主节点服务器6对工作节点服务器7给出Map处理任务的任务执行请求时,在该工作节点服务器7中开始该图7所示的处理,首先,扫描处理部50(图2)从本地驱动器32(图1)中将必要的数据库数据58(图2)读取至存储器31(图1)(S20)。此时,扫描处理部50在该数据库数据58被压缩的情况下进行解压缩等,实施对该数据库数据58必要的数据处理。
接着,处理切换部54(图2)判定从主节点服务器6给出的任务执行请求中是否包括用户定义函数(S21)。
处理切换部54在该判定中得到否定结果时起动聚合处理部51(图2)、连接处理部52(图2)和过滤处理部53(图2)中的必要的处理部并使其顺次执行任务执行请求中包括的1个或多个Map处理任务(S22)。另外,执行该Map处理任务的处理部将处理结果对分配了Reduce处理任务的工作节点服务器7发送(S25)。通过以上所述,该工作节点服务器7中的处理结束。
与此相对,处理切换部54在步骤S21的判断中得到肯定结果时,对于未用用户定义函数定义的Map处理任务和Reduce处理任务使聚合处理部51、连接处理部52和过滤处理部53执行,另一方面,与其并行地调用加速器控制部55(图2)。
然后,被处理切换部54调用的加速器控制部55基于任务执行请求中包括的用户定义函数生成必要的1个或多个加速器命令,对加速器34顺次给出生成的加速器命令,由此使加速器34执行用该用户定义函数定义的Map处理任务(S23)。
另外,加速器控制部55在加速器34进行的上述Map处理任务完成时,执行将其处理结果汇总的汇总处理(S24),之后,将该汇总处理的处理结果、和软件处理的Map处理任务的处理结果对分配了Reduce处理的工作节点服务器7发送(S25)。通过以上所述,该工作节点服务器7中的处理结束。
(1-2-3-2)Reduce处理
另一方面,图8表示被给出表示要执行Reduce处理任务的任务执行请求的工作节点服务器7中执行的一系列处理的流程。
从主节点服务器6对工作节点服务器给出Reduce处理任务的任务执行请求时,在该工作节点服务器7中开始该图8所示的处理,首先,处理切换部54等待从其他工作节点服务器7发送来执行该Reduce处理所需的Map处理任务的处理结果(S30)。
然后,处理切换部54接受全部必要的Map处理任务的处理结果时,判定从主节点服务器6给出的任务执行请求中是否包括用户定义函数(S31)。
处理切换部54在该判定中得到否定结果时,起动聚合处理部51、连接处理部52和过滤处理部53中的必要的处理部并使其执行Reduce处理任务(S32)。另外,执行该Reduce处理任务的处理部将处理结果对主节点服务器6发送(S35)。通过以上所述,该工作节点服务器7中的处理结束。
与此相对,处理切换部54在步骤S31的判断中得到肯定结果时,调用加速器控制部55。然后,被处理切换部54调用的加速器控制部55基于任务执行请求中包括的用户定义函数生成必要的1个或多个加速器命令,对加速器34顺次给出生成的加速器命令,由此使加速器34执行由该用户定义函数定义的Reduce处理任务(S33)。
另外,加速器控制部55在加速器34进行的上述Reduce处理任务完成时,执行将其处理结果汇总的汇总处理(S34),之后,将该汇总处理的处理结果对主节点服务器6发送(S35)。通过以上所述,该工作节点服务器7中的处理结束。
(1-3)信息处理系统中的分析处理的流程
图9表示如上所述的本信息处理系统1中的分析处理的流程的一例。该分析处理通过从客户端2对程序服务器3给出指定了分析条件的分析指示而开始(S40)。
在应用程序服务器3中,被给出该分析指示时,生成基于分析指示的SQL查询,并且将生成的SQL查询变换为用上述用户定义函数定义能够由工作节点服务器7的加速器34执行的任务、用SQL定义其他任务的SQL查询(S41)。然后,应用程序服务器3将变换后的SQL查询对主节点服务器6发送(S42)。
主节点服务器6在从应用程序服务器3给出SQL查询时,制定查询执行计划,将该SQL查询分解为Map处理任务和Reduce处理任务。另外,主节点服务器6决定分解后的该Map处理任务和Reduce处理任务的分配目标的工作节点服务器7(S43)。
然后,主节点服务器6基于该决定结果,将该Map处理任务和Reduce处理任务的任务执行请求分别发送至对应的工作节点服务器7(S44~S46)。
被给出Map处理任务的任务执行请求的工作节点服务器7根据需要与其他工作节点服务器7交换数据库数据58(图2),同时执行在该任务执行请求中指定的Map处理任务(S46,S47)。然后,该工作节点服务器7在该Map处理任务完成时,对分配了Resuce处理任务的工作节点服务器7发送该Map处理任务的处理结果(S48,S49)。
另外,被给出Reduce处理任务的任务执行请求的工作节点服务器7在从相关的分配了Map处理任务的全部工作节点服务器7给出该Map处理任务的处理结果时,执行在该任务执行请求中指定的Reduce处理任务(S50)。然后,该工作节点服务器7在该Reduce处理任务完成时,将其处理结果对主节点服务器6发送(S51)。
另外,此时主节点服务器6接收的Reduce处理任务的处理结果,是当时主节点服务器6从应用程序服务器3给出的SQL查询的处理结果。这样,主节点服务器6将接收的Reduce处理任务的处理结果对应用程序服务器3发送(S52)。
应用程序服务器3在从主节点服务器6给出SQL查询的处理结果时,基于该处理结果执行分析处理,使客户端2显示分析结果(S53)。
另一方面,图10表示从主节点服务器6给出了Map处理任务的任务执行请求的工作节点服务器7中执行的Map处理任务的处理的流程的一例。该图10是在加速器34中执行该Map处理任务的情况的例子。
另外,上述扫描处理部50、聚合处理部51、连接处理部52、过滤处理部53、处理切换部54和加速器控制部55执行的各种处理,根本上是由CPU30执行的,所以该图10中,是CPU30的处理。
通信装置33接收从主节点服务器6发送来的Map处理任务的任务执行请求时,将其保存在存储器31中(S60)。然后,该任务执行请求之后被CPU30从存储器31中读取(S61)。
CPU30从存储器31读取任务执行请求时,对于其他工作节点服务器7和本地驱动器32指示传输必要的数据库数据58(图2)(S62)。另外,CPU30将作为该结果从其他工作节点服务器7和本地驱动器32发送来的数据库数据58保存在存储器中(S63,S64)。然后,CPU30之后对加速器34指示执行与该任务执行请求相应的Map处理任务(S65)。
加速器34与来自CPU30的指示相应地开始Map处理任务,随时适当地从存储器31读取必要的数据库数据58,同时执行必要的过滤处理和/或聚合处理(S66)。然后,加速器34将该Map处理任务的处理结果随时适当地保存在存储器31中(S67)。
存储器31中保存的该Map处理任务的处理结果之后被CPU30读取(S68)。然后,CPU30执行将读取的处理结果汇总的结果汇总处理(S69),将其处理结果保存在存储器31中(S70)。另外,CPU30之后以将该结果汇总处理的处理结果对分配了Reduce处理的工作节点服务器7发送的方式对通信装置33给出指示(S71)。
这样,被给出该指示的通信装置33从存储器31读取结果汇总处理的处理结果(S72),将其发送至分配了Reduce处理的工作节点服务器7(S73)
(1-4)本实施方式的效果
如上所述,本实施方式的信息处理系统1中,在应用程序服务器3中,将应用程序即分析BI工具41生成的SQL查询变换为用用户定义函数定义能够由分布式数据库系统4的工作节点服务器7的加速器34执行的任务、用SQL定义除此以外的任务的SQL查询,在主节点服务器6中,将该SQL查询的处理按每个任务分解并将这些任务分配给各工作节点服务器7,在各工作节点服务器7中,在加速器34中执行用用户定义函数定义的任务,对用SQL定义的任务进行软件处理。
从而,根据本信息处理系统1,例如不需要分析BI工具41的修改,就能够使加速器34执行一部分任务,提高每台工作节点服务器7的性能。另外,本信息处理系统1中,此时不需要分析BI工具41的修改。因此,根据本信息处理系统1,不需要应用程序的修改,能够防止为了大容量数据的高速处理的系统规模增大,抑制引入成本和维护成本的增大。
(2)第二实施方式
图1和图2中,60表示第二实施方式的信息处理系统整体。该信息处理系统60在分布式数据库系统61的工作节点服务器62的加速器63执行从主节点服务器6分配的Map处理任务时,从其他工作节点服务器7和本地驱动器32获取必要的数据库数据58(图2)的情况下,不经由存储器31而是直接从其他工作节点服务器7和本地驱动器32获取该数据库数据58,除这一点外与第一实施方式的信息处理系统1同样地构成。
实际上,第一实施方式的信息处理系统1中,如关于图10在以上所述,从其他工作节点服务器7和本地驱动器32对加速器34的数据库数据58的传输,经由存储器31进行。与此相对,本实施方式的信息处理系统60中,如后述的图12所示,从其他工作节点服务器7和本地驱动器32对加速器34的数据库数据58的传输不经由存储器31地直接进行,这一点与第一实施方式的信息处理系统1不同。
图11表示在本实施方式的信息处理系统60中、从分布式数据库系统61的主节点服务器6例如给出了Map处理任务的任务执行请求的工作节点服务器62中执行的一系列处理的流程。
从主节点服务器6对工作节点服务器62给出Map处理的任务执行请求时,在该工作节点服务器62中开始该图11所示的处理,首先,关于图2在以上所述的处理切换部54判定该任务执行请求中是否包括上述用户定义函数(S80)。
然后,处理切换部54在该判定中得到否定结果时起动聚合处理部51、连接处理部52和过滤处理部53中的必要的处理部并使其执行Map处理的任务(S81)。另外,执行了该Map处理任务的处理部将处理结果对分配了Reduce处理任务的工作节点服务器62发送(S85)。通过以上所述,该工作节点服务器62中的处理结束。
与此相对,处理切换部54在步骤S80的判断中得到肯定结果时,对于未用用户定义函数定义的Map处理任务和Reduce处理任务使聚合处理部51、连接处理部52和过滤处理部53执行,另一方面,与其并行地调用加速器控制部55。
然后,被处理切换部50调用的加速器控制部55将任务执行请求中包括的用户定义函数变换为加速器用的命令并对加速器63(图1和图2)给出,由此对加速器63指示执行该Map处理任务(S82)。
然后,加速器63在被给出该指示时,以直接传输必要的数据库数据的方式对本地驱动器32和其他工作节点服务器62给出指示(S83)。这样,加速器63使用从本地驱动器32和其他工作节点服务器62直接传输的数据库数据执行该任务执行请求中指定的Map处理任务。
接着,加速器控制部55在加速器63进行的Map处理完成时,执行将其处理结果汇总的结果汇总处理(S84),之后,将该结果汇总处理的处理结果、和软件处理的Map处理任务的处理结果对分配了Reduce处理的工作节点服务器62发送(S85)。通过以上所述,该工作节点服务器62中的处理结束。
图12表示在本实施方式的信息处理系统60中、从主节点服务器6给出了Map处理任务的任务执行请求的工作节点服务器62中的Map处理任务的流程的一例。该图12是在加速器63中执行该Map处理任务的情况的例子。
另外,与图10的情况同样地,在该图12中也将图2的扫描处理部50、聚合处理部51、连接处理部52、过滤处理部53、处理切换部54和加速器控制部55执行的各种处理记作CPU30的处理。
通信装置33在接收从主节点服务器6发送来的Map处理任务的任务执行请求时,将其保存在存储器31中(S90)。然后,该任务执行请求之后被CPU30从存储器31中读取(S91)。
CPU30在从存储器31读取任务执行请求时,以执行符合该任务执行请求的Map处理任务的方式对加速器63给出指示(S92)。然后,接受了该指示的加速器63对于本地驱动器32(和其他工作节点服务器62)请求传输必要的数据库数据。结果,从本地驱动器32(和其他工作节点服务器62)对加速器63直接给出必要的数据库数据(S93)。
然后,加速器63将从本地驱动器32(和其他工作节点服务器62)传输来的数据库数据保存在DRAM35(图1)中,随时适当地从DRAM35读取必要的数据库数据,同时执行必要的过滤处理和/或聚合处理等Map处理(S94)。然后,加速器63将该Map处理任务的处理结果随时适当地保存在存储器31中(S95)。
之后,在步骤S96~步骤S99中,执行与图10的步骤S68~步骤S71同样的处理,之后,由CPU30执行的汇总处理的处理结果被通信装置33从存储器31中读取(S100),对分配了Reduce处理的工作节点服务器62发送(S101)。
如上所述,根据本实施方式的信息处理系统60,因为加速器63不经由存储器31地从本地驱动器32直接获取数据库数据58,所以不需要从本地驱动器32对存储器31的数据库数据的传输、和从存储器31对加速器63的数据库数据的传输,能够减小CPU30的必要数据传输带宽,并且进行低延迟的数据传输,结果能够提高工作节点服务器62的性能。
(3)其他实施方式
另外,上述第一和第二实施方式中,叙述了应用程序服务器3保持的加速器信息表44(图2)中保存的加速器34、63的硬件规格信息预先由系统管理员等保存的情况,但本发明不限于此,例如也可以如对与图2的对应部分附加了同一附图标记的图13所示,在信息处理系统70的应用程序服务器71中设置从各工作节点服务器7、62收集该工作节点服务器7、62中搭载的加速器34、63的硬件规格信息的加速器信息获取部72,该加速器信息获取部72将定期或非定期地收集的各工作节点服务器7、62的加速器34、63的硬件规格信息保存在加速器信息表44中,或者基于收集的各加速器34的硬件规格信息更新加速器信息表44。通过这样,在更换了加速器34、63的情况、和增设了工作节点服务器7、62的情况下,应用程序服务器71也能够总是基于最新的加速器信息(加速器34、63的硬件规格信息)进行SQL查询的变换处理。
另外,该加速器信息获取部72可以是通过应用程序服务器3的CPU10执行存储器11中保存的程序而实现的软件结构、和由专用的硬件构成的硬件结构中的某一种结构。
另外,上述第一和第二实施方式中,叙述了经由第二网络8进行各工作节点服务器7、62之间的通信的情况,但本发明不限于此,例如也可以如对与图1的对应部分附加了同一附图标记的图14所示,将工作节点服务器7、62的加速器34、63之间经由高速串行通信用的线缆81菊花链连接,或者将全部工作节点服务器7、62的加速器34、63之间分别经由高速串行通信用的线缆81相互连接,以经由这些线缆81在工作节点服务器7、62之间交换数据库数据等必要的数据的方式构建信息处理系统80。
进而,上述第一和第二实施方式中,叙述了应用程序服务器3中安装的应用程序(程序)是分析BI工具41的情况,但本发明不限于此,即使该应用程序是分析BI工具41以外的应用程序,也能够广泛地应用本发明。
(4)第三实施方式
图1和图15中,90表示第三实施方式的信息处理系统整体。第一实施方式的信息处理系统1中,图2所示的查询变换部43变换为明确地分为能够由加速器执行的第一任务、和应当由软件执行的第二任务的查询。与此相对,本实施方式的信息处理系统90中,将分析BI工具41(图15)输出的查询不变换地经由JDBC/ODBC驱动程序42(图15)对工作节点服务器92发送,接着该工作节点服务器92中的查询规划器部93变换生成适合加速器处理的查询计划,用各工作节点中的执行引擎执行该查询计划,这一点与第一实施方式的信息处理系统不同。
图15表示第三实施方式中的信息处理系统90的逻辑结构。对于与已说明的结构具有同一功能的部分,附加同一附图标记,省略说明。
工作节点服务器92具有将图1和图2中的主节点服务器6和工作节点服务器7(62)合并的功能。在硬件结构上,与图1的工作节点服务器7是同样的。
对于从应用程序服务器91接收的查询,首先由查询解析器部46进行解析。查询规划器部93对于查询解析器部46解析后的查询,与加速器优化规则部95协作地生成适合加速器处理的查询计划。
加速器优化规则部95使用本地驱动器32内的加速器信息表44(图3),考虑加速器的制约条件,应用对于加速器处理优化的查询计划生成规则。
文件路径解析部96对于数据库文件在分布式文件系统100中的保存位置信息(分布式文件系统路径),检索并保持对本地文件系统101中的保存位置信息(本地文件系统路径)的变换信息,对文件路径的询问进行回应。
执行引擎部94由连接处理部52、聚合处理部51、过滤处理部53、扫描处理部50和交换处理部102构成,与加速器控制部97和加速器98协作地执行查询计划(所谓软件处理)。
分布式文件系统100将多个服务器组用网络连接而构成为一个文件系统。作为分布式文件系统的一例,有HDFS(Hadoop Distributed File System)。
文件系统101是操作系统(OS)具有的功能之一,管理在驱动器中保存的文件的逻辑位置信息(LBA(Logical Block Address,逻辑区块地址)和大小)等,对于来自应用程序等的基于文件名的读取请求,提供根据文件的位置信息读取驱动器中的数据的功能。
图16是说明第三实施方式中的查询计划的执行方法、和查询计划的变换方法的图。
标准查询计划110是查询规划器部93根据输入查询最初生成的查询计划。如后所述,可能变换为变换后查询计划124,也可能不变换地用执行引擎部94执行。标准查询计划110中,示出了从图中下部的处理起,按scan处理S122、filter处理S119、aggregate处理S116、exchange处理S113、aggregate处理S111的顺序执行。
scan处理S122由扫描处理部50进行,执行从分布式文件系统100读取数据库数据(S123)、和将该数据库数据变换为面向执行引擎部的存储器内格式并保存在主存(存储器31(图1))中(S121)。
filter处理S119由过滤处理部53进行,从主存读取scan处理结果的数据(S120),对于各行数据判定是否与filter条件一致,对于一致的行数据判定为命中,将其结果保存在主存中(S118)(filter处理)。
第一aggregate处理(聚合处理)S116由聚合处理部51进行,从主存读取判定为命中的行数据(S117),按照aggregate条件执行处理,将聚合结果数据保存在主存中(S115)。
exchange处理S113由交换处理部102进行,从主存读取聚合结果数据(S114),对执行关于S111在后文叙述的第二aggregate处理(汇总处理)的工作节点服务器92经由网络传输(S112)。
第二aggregate处理(汇总处理)S111中,负责汇总的工作节点服务器92实施从各工作节点服务器92收集的聚合结果数据的汇总聚合处理,对应用程序服务器91发送。
变换后查询计划124是基于标准查询计划110由加速器优化规则部95变换生成的。对于用加速器98进行处理的查询计划进行变换,对于用执行引擎部94处理的查询计划不进行变换。参照加速器的规格信息等,判断适合用哪一方处理,决定是否需要变换。变换后查询计划124示出了从图中下部的处理起,按FPGA并行处理S130、exchange处理S113、aggregate处理S111的顺序执行。
FPGA并行处理S130由加速器98(扫描处理部99、过滤处理部57和聚合处理部56)进行,按照aggregate条件131、filter条件132、scan条件133、数据局部性使用条件134,进行本地驱动器32的数据库数据的读取(S135)、和扫描处理、过滤处理和聚合处理,之后对加速器99的处理结果进行格式变换并保存在主存中(S129)。加速器优化规则部95检测标准查询计划内存在的scan处理S122、filter处理S119、aggregate处理S116,收集该处理的条件,并设定为FPGA并行处理S130的aggregate条件、filter条件、scan条件。aggregate条件131是聚合运算种类(SUM/MAX/MIN)、分组对象列、聚合运算对象列等聚合处理所需的信息,filter条件132是比较条件(=、>、<等)和比较对象列等过滤处理所需的信息,scan条件133是读取对象的数据库数据文件在分布式文件系统中的位置信息(分布式文件系统路径)等扫描处理所需的信息。数据局部性使用条件134是用于将本工作节点服务器92中的文件系统101中存在的数据库数据文件作为扫描处理对象的条件。FPGA并行处理S130通过加速器控制部97的指示由加速器99执行。
exchange处理S113和第二aggregate处理S111与标准查询计划同样地,由执行引擎部94内的交换处理部102和聚合处理部51进行。也可以将这些处理部设置在加速器99内。
标准查询计划110是以CPU处理为前提的,所以scan、filter、aggregate各处理中,在处理开始时和完成时将数据配置在主存中或者从主存读取是基本动作。这样的主存的数据输入输出,会发生CPU-存储器之间的数据移动,是使处理效率降低的原因。本发明的查询计划变换方式中,通过变换为将各处理整合而成的新的FPGA并行处理S130,而能够使各处理在加速器内部流水线并行处理,不需要FPGA-存储器之间的数据移动,具有提高处理效率的效果。
另外,标准查询计划中的scan处理S122从分布式文件系统100获取数据库数据,所以取决于分布式文件系统100的数据分散状况,存在从其他工作节点服务器92经由网络获取数据库数据的情况。本发明的查询计划变换中,通过由加速器98从附近的本地驱动器可靠地获取数据库数据,而能够使加速器效率良好地工作。
图17是第三实施方式中的全体序列的图。
客户端2首先对分布式文件系统100指示数据库数据保存指示(S140)。协调用的工作节点服务器#0的分布式文件系统100将该数据库数据分割为规定大小的块,为了复制而对其他工作节点服务器发送数据的副本(S141,S142)。在各工作节点中,文件路径解析部96通过来自分布式文件系统100的事件通知检测出保存了上述数据库数据的块,接着在各服务器92中的本地文件系统101中检索该块,由此生成分布式文件系统路径与本地文件系统路径的对应表(S143,S144,S145)。对应表可以在每次块被更新时更新,并且作为缓存保存在文件中。
接着,客户端2对应用程序服务器发送分析指示(S146)。应用程序服务器91对分布式数据库系统103发送SQL查询(S148)。接受了SQL查询的工作节点服务器#0,如上所述地对查询计划进行变换,将变换后查询计划(和未变换的标准查询计划)发送至其他工作节点服务器#1、#2(S150,S151)。
各工作节点#0、#1、#2将FPGA并行处理的扫描处理和过滤处理、聚合处理分流至加速器98执行(S152,S153,S154)。对于未变换的标准查询计划,用执行引擎94执行。接着,工作节点服务器#1、#2将加速器98和执行引擎94输出的结果数据发送至工作节点服务器#0用于汇总处理(S155,S156)。
工作节点服务器#0对于上述结果数据执行汇总处理(S157),将汇总结果数据发送至应用程序服务器(S158)。应用程序服务器对用于对用户显示的客户端进行结果发送(S159)。
本实施方式中,用工作节点服务器#0进行查询变换,但也可以用应用程序服务器或个别的工作节点服务器#1、#2进行。
图18是说明在第三实施方式中、对于加速器优化规则部95在查询计划中设定的过滤条件、由加速器控制部97变换为适合并行处理的方式时的处理流程的图。
加速器控制部97判定过滤条件是否规范形式(S170)。如果不是规范形式,则根据分配律和德·摩根定律变换为规范形式(S171)。接着,将规范形式的过滤条件式设定在加速器的并行执行命令中(S172)。规范形式是合取范式(乘法范式)或析取范式(加法范式)。
另外,在图19中示出过滤条件的变换的一例。变换前的过滤条件180包括列的大小比较(X1=(col1>10),X2=(col2>=20))和一致比较(X3=(col==30),X4=(col4==”ABDC”))、和它们的逻辑或和逻辑与(((X1 and X2)or X3)and X4)。现有的软件进行的逐次处理(1)中,首先顺次执行列的比较评价,接着从用内侧的括号包围的部分起顺序进行逻辑或、逻辑与的评价。面向加速器的过滤条件变换(2)中,将过滤条件式变换为合取范式(181)。合取范式中,因为是包括1个以上比较评价的逻辑或(or)的逻辑与(and)的形式,所以如图所示,能够使比较评价、逻辑或、逻辑与按该顺序并行地处理。
图20是表示第三实施方式中、从分布式文件系统路径到加速器的扫描处理所需的LBA和大小信息的变换流程的图。变换后查询计划中包括的扫描条件133包括对象数据库数据的位置信息即分布式文件系统路径(例如:/hdfs/data/…/DBfile)。加速器控制部97通过对文件路径解析部96询问,而将分布式文件系统路径变换为文件系统路径(例如:/root/data/…/blockfile),作为第一变换(S190)。
接着,加速器控制部97通过对OS的文件系统询问,而将上述文件系统路径变换为驱动器中的文件的逻辑位置信息即LBA(例如:0x0124abcd…)和大小信息,作为第二变换(S191)。然后,最后将扫描条件与上述LBA和大小信息一同设定在并行执行命令中(S192)。
根据本方式,加速器不需要对复杂的分布式文件系统和文件系统进行解析,能够根据并行执行命令中的LBA和大小信息直接访问驱动器的数据库数据。
产业上的利用可能性
本发明能够广泛应用于基于从分布式数据库系统获取的信息执行从客户端指示的处理的各种结构的信息处理系统。
附图标记说明
60、70、80、90……信息处理系统,2……客户端,3、71、91……应用程序服务器,4、61、103……分布式数据库系统,6……主节点服务器,7、62、92……工作节点服务器,10、20、30……CPU,11、21、31……存储器,12、22、32……本地驱动器,34、63、98……加速器,41……分析BI工具,43……查询变换部,44……加速器信息表,45……Thrift服务器部,46……查询解析器部,47……查询规划器部,48……资源管理部,49……任务管理部,50……扫描处理部,51、56……聚合处理部,52……连接处理部,53、57……过滤处理部,54……处理切换部,55、97……加速器控制部,58……数据库数据,72……加速器信息获取部,81……代码,95……加速器优化规则部,96……文件路径解析器,99……扫描处理部,100……分布式文件系统,101……文件系统。
Claims (12)
1.一种按照来自客户端的指示执行处理的信息处理系统,其特征在于,包括:
安装有用于执行与所述来自客户端的指示相应的处理的应用程序的应用程序服务器;和
用多个服务器分散保存数据的分布式数据库系统,
所述分布式数据库系统具有安装了处理器和加速器的多个服务器,其中所述处理器运行用于执行分配来的任务的软件,所述加速器是能够执行一部分或全部种类的该任务的硬件,
所述应用程序服务器生成查询并将其发送至所述分布式数据库系统,其中所述查询用于从所述分布式数据库系统获取用来执行与来自所述客户端的指示相应的处理的信息,
变换部将所述应用程序服务器生成的查询分成由所述加速器执行的第一任务和由所述软件执行的第二任务,
所述分布式数据库系统的多个服务器使所述加速器执行包含于所述查询的、要由所述加速器执行的第一任务,利用所述软件执行包含于所述查询的、要由所述软件执行的第二任务,并返回所述第一和/或第二任务的执行结果,
所述应用程序服务器从所述分布式数据库系统接收基于所述第一和第二任务的执行结果而获得的所述查询的处理结果,
所述变换基于所述服务器的加速器的规格信息来进行,
所述变换部设于所述应用程序服务器,将作为所述应用程序服务器生成的查询的第一查询,变换为分成由所述加速器执行的第一任务和由所述软件执行的第二任务的第二查询,
所述分布式数据库系统的主节点服务器接收所述第二查询并将其分解成任务,并且将各任务分配给所述多个服务器。
2.如权利要求1所述的信息处理系统,其特征在于:
所述加速器由能够执行用规定格式的用户定义函数定义的任务的FPGA(FieldProgrammable Gate Array)构成,
所述查询用所述用户定义函数定义所述第一任务,用能够由所述软件识别的规定格式定义所述第二任务。
3.如权利要求2所述的信息处理系统,其特征在于:
能够由所述软件识别的规定格式是使用了SQL(Structured Query Language)的格式。
4.如权利要求1所述的信息处理系统,其特征在于:
所述应用程序服务器包括加速器信息获取部,该加速器信息获取部从各所述服务器获取搭载于该服务器的所述加速器的所述硬件规格信息。
5.如权利要求1所述的信息处理系统,其特征在于:
所述第二任务是所述软件在进行各处理的期间在将数据保存于主存的同时进行多个处理的任务,所述第一任务包括所述加速器进行流水线并行处理的任务。
6.如权利要求5所述的信息处理系统,其特征在于:
基于所述查询来生成适合所述软件执行的第一查询计划,并将所述第一查询计划变换为适合所述加速器执行的第二查询计划。
7.如权利要求6所述的信息处理系统,其特征在于:
所述服务器中的至少一个服务器变更所述查询计划,将包含于所述查询的第一任务和第二任务分配给其他服务器,从其他服务器接收其处理结果并汇总而将其发送至所述应用程序服务器。
8.如权利要求7所述的信息处理系统,其特征在于:
所述变换的第一任务和第二任务包括扫描处理、过滤处理和聚合处理,
在所述第一任务中,以流水线并行处理的方式进行所述扫描处理、过滤处理和聚合处理。
9.如权利要求8所述的信息处理系统,其特征在于:
在所述过滤处理的查询计划变换处理中,变换为能够按比较运算、逻辑或、逻辑与的顺序并行处理的过滤条件式。
10.如权利要求8所述的信息处理系统,其特征在于:
所述多个服务器各自包括由多个服务器构成的分布式文件系统、由单独的服务器构成的文件系统、以及用于构成分布式文件系统和文件系统的驱动器,
在所述扫描处理的查询计划变换处理中,将包含于所述任务的分布式文件系统路径变换为文件系统路径,将所述文件系统路径变换为所述驱动器中的地址,并将所述驱动器中的地址设定至所述第一任务。
11.一种按照来自客户端的指示执行处理的信息处理方法,其特征在于:
安装有用于执行与所述来自客户端的指示相应的处理的应用程序的应用程序服务器,生成查询并将其发送至分布式数据库系统,其中所述查询用于从分布式数据库系统获取用来执行与来自所述客户端的指示相应的处理的信息,
变换部将所述应用程序服务器生成的查询分成由加速器执行的第一任务和由软件执行的第二任务,
所述分布式数据系统的多个服务器使所述服务器所具有的所述加速器执行包含于所述查询的、要由所述加速器执行的第一任务,利用所述服务器所具有的所述软件执行包含于所述查询的、要由在处理器上运行的所述软件执行的第二任务,并返回所述第一和/或第二任务的执行结果,
所述应用程序服务器从所述分布式数据系统接收基于所述第一和第二任务的执行结果而获得的所述查询的处理结果,
所述第二任务是所述软件在进行各处理的期间在将数据保存于主存中的同时进行多个处理的任务,所述第一任务是所述加速器进行流水线并行处理的任务,
基于所述查询生成适合所述软件执行的第一查询计划,并将所述第一查询计划变换为适合所述加速器执行的第二查询计划。
12.如权利要求11所述的信息处理方法,其特征在于:
所述变换基于所述服务器的加速器的规格信息来进行。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JPPCT/JP2017/004083 | 2017-02-03 | ||
PCT/JP2017/004083 WO2018142592A1 (ja) | 2017-02-03 | 2017-02-03 | 情報処理システム及び情報処理方法 |
PCT/JP2018/003703 WO2018143441A1 (ja) | 2017-02-03 | 2018-02-02 | 情報処理システム及び情報処理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110291503A CN110291503A (zh) | 2019-09-27 |
CN110291503B true CN110291503B (zh) | 2023-04-25 |
Family
ID=63039402
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880009900.9A Active CN110291503B (zh) | 2017-02-03 | 2018-02-02 | 信息处理系统和信息处理方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20190228009A1 (zh) |
JP (1) | JP6807963B2 (zh) |
CN (1) | CN110291503B (zh) |
WO (2) | WO2018142592A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200195731A1 (en) * | 2018-12-12 | 2020-06-18 | Sichuan University | Lccs system and method for executing computation offloading |
JP7247161B2 (ja) * | 2020-12-24 | 2023-03-28 | 株式会社日立製作所 | 情報処理システム及び情報処理システムにおけるデータ配置方法 |
JP7122432B1 (ja) | 2021-05-20 | 2022-08-19 | ヤフー株式会社 | 情報処理装置、情報処理方法及び情報処理プログラム |
CN113535745B (zh) * | 2021-08-09 | 2022-01-18 | 威讯柏睿数据科技(北京)有限公司 | 一种层次化数据库操作加速系统和方法 |
US20230244664A1 (en) * | 2022-02-02 | 2023-08-03 | Samsung Electronics Co., Ltd. | Hybrid database scan acceleration system |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4918596A (en) * | 1985-07-01 | 1990-04-17 | Akira Nakano | Hierarchical information processing system |
US6789074B1 (en) * | 1998-11-25 | 2004-09-07 | Hitachi, Ltd. | Database processing method and apparatus, and medium for recording processing program thereof |
JP2009110052A (ja) * | 2007-10-26 | 2009-05-21 | Toshiba Corp | コーディネータサーバ及び分散処理方法 |
CN103123652A (zh) * | 2013-03-14 | 2013-05-29 | 曙光信息产业(北京)有限公司 | 数据查询方法和集群数据库系统 |
CN105677812A (zh) * | 2015-12-31 | 2016-06-15 | 华为技术有限公司 | 一种数据查询方法及数据查询装置 |
WO2016185542A1 (ja) * | 2015-05-18 | 2016-11-24 | 株式会社日立製作所 | 計算機システム、アクセラレータ及びデータベースの処理方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030158842A1 (en) * | 2002-02-21 | 2003-08-21 | Eliezer Levy | Adaptive acceleration of retrieval queries |
US8176186B2 (en) * | 2002-10-30 | 2012-05-08 | Riverbed Technology, Inc. | Transaction accelerator for client-server communications systems |
CN104541247B (zh) * | 2012-08-07 | 2018-12-11 | 超威半导体公司 | 用于调整云计算系统的系统和方法 |
JP2014153935A (ja) * | 2013-02-08 | 2014-08-25 | Nippon Telegr & Teleph Corp <Ntt> | 並列分散処理制御装置、並列分散処理制御システム、並列分散処理制御方法および並列分散処理制御プログラム |
JP2015084152A (ja) * | 2013-10-25 | 2015-04-30 | 株式会社日立ソリューションズ | データ割当制御プログラム、MapReduceシステム、データ割当制御装置、データ割当制御方法 |
WO2015152868A1 (en) * | 2014-03-31 | 2015-10-08 | Hewlett-Packard Development Company, L.P. | Parallelizing sql on distributed file systems |
-
2017
- 2017-02-03 WO PCT/JP2017/004083 patent/WO2018142592A1/ja active Application Filing
-
2018
- 2018-02-02 CN CN201880009900.9A patent/CN110291503B/zh active Active
- 2018-02-02 WO PCT/JP2018/003703 patent/WO2018143441A1/ja active Application Filing
- 2018-02-02 JP JP2018566146A patent/JP6807963B2/ja active Active
- 2018-02-02 US US16/329,335 patent/US20190228009A1/en not_active Abandoned
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4918596A (en) * | 1985-07-01 | 1990-04-17 | Akira Nakano | Hierarchical information processing system |
US6789074B1 (en) * | 1998-11-25 | 2004-09-07 | Hitachi, Ltd. | Database processing method and apparatus, and medium for recording processing program thereof |
JP2009110052A (ja) * | 2007-10-26 | 2009-05-21 | Toshiba Corp | コーディネータサーバ及び分散処理方法 |
CN103123652A (zh) * | 2013-03-14 | 2013-05-29 | 曙光信息产业(北京)有限公司 | 数据查询方法和集群数据库系统 |
WO2016185542A1 (ja) * | 2015-05-18 | 2016-11-24 | 株式会社日立製作所 | 計算機システム、アクセラレータ及びデータベースの処理方法 |
CN105677812A (zh) * | 2015-12-31 | 2016-06-15 | 华为技术有限公司 | 一种数据查询方法及数据查询装置 |
Non-Patent Citations (1)
Title |
---|
performance improvement of spectrum visualization system by reducing communications traffic;Takuya Kato;《IEICE Technical Report》;20110224;85-90 * |
Also Published As
Publication number | Publication date |
---|---|
US20190228009A1 (en) | 2019-07-25 |
WO2018142592A1 (ja) | 2018-08-09 |
WO2018143441A1 (ja) | 2018-08-09 |
JPWO2018143441A1 (ja) | 2019-06-27 |
CN110291503A (zh) | 2019-09-27 |
JP6807963B2 (ja) | 2021-01-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110291503B (zh) | 信息处理系统和信息处理方法 | |
US10922316B2 (en) | Using computing resources to perform database queries according to a dynamically determined query size | |
US8135703B2 (en) | Multi-partition query governor in a computer database system | |
CN109815283B (zh) | 一种异构数据源可视化查询方法 | |
WO2017005191A1 (en) | System and method for data caching in processing nodes of massively parallel processing (mpp) database system | |
US20230124520A1 (en) | Task execution method and storage device | |
JP2016509294A (ja) | 分散型データベースクエリ・エンジン用のシステムおよび方法 | |
US10268741B2 (en) | Multi-nodal compression techniques for an in-memory database | |
US10158709B1 (en) | Identifying data store requests for asynchronous processing | |
US10102230B1 (en) | Rate-limiting secondary index creation for an online table | |
US11216462B1 (en) | Transient materialized view rewrite | |
WO2015029208A1 (ja) | データベース管理装置、データベース管理方法及び記憶媒体 | |
WO2020228534A1 (zh) | 一种基于微服务组件的数据库系统及相关方法 | |
US11966416B2 (en) | Cross-organization and cross-cloud automated data pipelines | |
JP2014120097A (ja) | 情報処理装置、プログラム、及び、情報処理方法 | |
CN110187835A (zh) | 用于管理访问请求的方法、装置、设备和存储介质 | |
US20220405285A1 (en) | Cutoffs for pruning of database queries | |
US11762860B1 (en) | Dynamic concurrency level management for database queries | |
US20230205770A1 (en) | Opportunistic cloud data platform pipeline scheduler | |
US20230237043A1 (en) | Accelerating change data capture determination using row bitsets | |
CN107453950B (zh) | 一种信息处理方法及监控系统 | |
CN111078975B (zh) | 一种多节点增量式数据采集系统及采集方法 | |
JP6506773B2 (ja) | 情報処理装置、方法およびプログラム | |
US11921700B1 (en) | Error tables to track errors associated with a base table | |
US20240061494A1 (en) | Monitoring energy consumption associated with users of a distributed computing system using tracing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |