CN107924399A - 处理对主机而言数据传输量不明的检索请求的检索处理系统和方法 - Google Patents
处理对主机而言数据传输量不明的检索请求的检索处理系统和方法 Download PDFInfo
- Publication number
- CN107924399A CN107924399A CN201580082641.9A CN201580082641A CN107924399A CN 107924399 A CN107924399 A CN 107924399A CN 201580082641 A CN201580082641 A CN 201580082641A CN 107924399 A CN107924399 A CN 107924399A
- Authority
- CN
- China
- Prior art keywords
- retrieval
- retrieval request
- host
- write
- polyploidy
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/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/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明在主机与检索对象之间设有中间设备。作为从主机对中间设备的请求,对于能够由主机执行的n个进程(n是1以上的整数)中的至少1个进程,发出m个多倍性检索请求(对主机而言数据传输量不明的请求)。在主机中,设有与m个多倍性检索请求相关联的暂存区域。对于m个多倍性检索请求的每一个,中间设备识别与该检索请求相应的检索范围中的、与该检索请求相应的命中数据的容量即命中数据容量。对于m个多倍性检索请求的每一个,与该检索请求相应的命中数据能够写入至暂存区域中的与写入目标地址相应的区域。对于m个多倍性检索请求的每一个,写入目标地址能够基于识别出的命中数据容量更新。
Description
技术领域
本发明大致涉及对主机而言数据传输量不明的请求的处理。
背景技术
因为社交媒体的推广和金融、流通以及通信等业界中的IT(InformationTechnology:信息技术)应用,每日收集和蓄积的数据的量急速增大。对庞大的数据(例如从设置工厂等的传感器收集的数据)和大容量内容综合地分析的大数据分析随之成为趋势之一。大数据分析的代表性的应用,有通过社交媒体数据的分析进行的趋势预测,和通过从工业设备和IT系统(例如计算机系统)收集的大数据的分析进行的设备故障预测和库存管理等。
执行此种大数据分析的一般的系统由进行数据分析的主机和保存分析对象数据的存储构成,使用利用了关系数据库的数据库分析处理。
关系数据库包括由称为模式(schema)的列和保存实际数据的行构成的二维的数据阵列即表。对该二维结构数据库,使用查询语言进行数据库的操作。作为一种数据库操作有数据库检索。例如,可以列举对于模式是“价格”的列,提取其内容值是“10000”以上的行等检索。
对于数据库检索处理的高速化,采用了各种技术。例如,使用具有较高速的存储设备(例如SSD(Solid State Drive:固态硬盘))的存储代替具有较低速的存储设备(例如HDD(hard Disk Drive:硬盘驱动器))的存储。另外,在称为存储器内数据库(in-memorydatabase)的技术中,将较低速的存储设备内的数据事先复制至配置在主机的处理器附近的高速存储器(例如配置在主机中或外部的DRAM(Dynamic Random Access Memory:动态随机存取存储器)),对高速存储器进行检索处理从而改善性能。
另外,也可以考虑采用非专利文献1和非专利文献2所示的分流(offload)技术。根据该技术,在主机侧处理的数据库检索处理,被分流至SSD存储内的FPGA(Field-Programmable Gate Array:现场可编程门阵列)和控制CPU侧。根据该技术,特别是完整检索这样参考数据库整体进行检索的处理中,能够避免存储与主机之间的传输瓶颈。
另外,也可以考虑使用专利文献1所示的分流技术。根据该技术,作为Hadoop(注册商标)的1个功能的Map-Reduction运算被分流至SSD存储侧。能够用大容量数据库被分散至多个存储、按节点集群构成的服务器进行并行处理。
如上所述,为了数据库检索处理的高速化,使用作为较高速的存储设备的一例的SSD,或者将主机的处理分流至存储,或者采用集群化等并行处理,由此能够期待请求处理的高速化。
此处,在非专利文献1和非专利文献2所示的分流技术中,对于在主机内的主存储区域中预先分配的缓冲区域,写入检索命中的行数据,主机参考和操作在该缓冲区域中写入的行数据,由此数据库检索处理完成。
现有技术文献
专利文献
专利文献1:US8,819,335
非专利文献
非专利文献1:“Fast,Energy Efficient Scan inside Flash Memory SSDs”,ADMS(2011)
非专利文献2:Ibex:“An Intelligent Storage Engine with Support forAdvantage SQL Offloading”,VLDB,Volume 7Issue 11,July 2014
发明内容
发明要解决的课题
检索查询的处理,是对主机而言数据传输量不明的请求的处理的典型例。响应检索查询而发现(检索命中)多少数据,在主机发出检索查询的时刻不能得知。即主机不能得知响应检索查询的数据传输量。
根据非专利文献1和非专利文献2所示的技术,需要在主机内的主存储区域中预先分配缓冲区域。
如上所述,在检索处理前,检索命中行数及其容量不明。取决于检索查询,可能全部行都检索命中。因此,预先分配的缓冲区域的容量,需要设为能够保存全部行的容量。
但是,实际上检索命中的行数较少的情况下,缓冲区域中会产生较大的空白容量。即,分配的缓冲区域的使用效率较差。
并且,通过节点集群和多线程化等,数据库检索处理在1个主机内也并行地工作,所以缓冲区域也需要同样地分配多个。因为上述理由,全部缓冲区域的容量都需要设为能够保存全部行的容量。因此,在并行化的情况也同样地,存在命中行数较少的情况下,缓冲区域的使用效率较差的课题。
用于解决课题的技术方案
在主机与检索对象之间设有中间设备。作为从主机对中间设备的请求,发出作为对能够执行n个进程(n是1以上的整数)的主机而言数据传输量不明的请求的检索请求。对于n个进程中的至少1个进程,发出m个多倍性检索请求。m个多倍性检索请求中的每一个都是从检索对象中的一部分的检索范围检索符合检索条件的数据即命中数据的请求。主机具有1个以上存储器即主机存储器单元。在主机存储器单元中设有与m个多倍性检索请求相关联的暂存区域即对象暂存区域。对于m个多倍性检索请求的每一个,中间设备识别与该检索请求相应的检索范围中的、与该检索请求相应的命中数据的容量即命中数据容量。对于m个多倍性检索请求的每一个,与该检索请求相应的命中数据能够写入至对象暂存区域的与写入目标地址相应的区域。对于m个多倍性检索请求的每一个,写入目标地址能够基于识别出的命中数据容量更新。
发明的效果
在通过主机与中间设备(主机与检索对象之间的设备)的协调处理进行的检索处理中,能够削减主机的暂存区域的总量。
附图说明
图1表示数据库中包括的表的一例。
图2表示检索查询的一例。
图3表示比较例的课题(1个缓冲区域的情况)的一例。
图4表示比较例的课题(n×m个缓冲区域的情况)的一例。
图5表示实施例1的数据库检索系统的结构。
图6表示主存的结构。
图7表示初始设定命令的结构。
图8表示检索指示命令的结构。
图9是数据库检索处理的流程图。
图10是用于说明DB处理单位的多倍化的图。
图11表示写入目标缓冲区域中多个命中行数据串连续的一例。
图12表示实施例2的数据库检索系统的结构。
图13表示对多个检索进程各自的分配和管理进程。
图14表示实施例3的数据库检索系统的结构。
图15表示实施例4的数据库检索系统的结构。
图16表示实施例5的第一检索处理的概要(非同步型)。
图17表示实施例5的第二检索处理的概要(同步型)。
具体实施方式
以下参考附图说明几个实施例。
其中,以下说明中,将“数据库”适当简记为“DB”。
另外,以下说明中,采用“命令”作为请求的一例。命令的一例是检索查询。
另外,以下说明中,存在将“bbb部”(或bbb加速器)作为主语进行说明的情况,但这些功能部通过由处理器执行而能够使用存储器和通信端口(网络I/F)进行规定的处理,所以也可以改为用处理器作为主语的说明。处理器典型而言包括微处理器(例如CPU(CentralProcessing Unit:中央处理单元)),进而,也可以包括专用硬件(例如ASIC(ApplicationSpecific Integrated Circuit:专用集成电路)或FPGA(Field-Programmable GateArray:现场可编程门阵列))。另外,用这些功能部作为主语示出的处理,可以是存储或主机服务器进行的处理。另外,这些功能部的一部分或全部也可以用专用硬件实现。另外,各种功能部可以用程序发布服务器、或计算机可读取的存储介质安装在各计算机中。另外,各种功能部和服务器可以安装在1台计算机中执行,也可以安装在多台计算机中执行。处理器是控制部的一例,也可以包括进行处理的一部分或全部的硬件电路。程序可以从程序源安装至计算机这样的装置。程序源例如可以是程序发布服务器或计算机可读取的存储介质。程序源是程序发布服务器的情况下,程序发布服务器可以包括处理器(例如CPU)和存储部,存储部进而存储发布程序和作为发布对象的程序。然后,程序发布服务器的处理器可以执行发布程序,由此程序发布服务器的处理器将发布对象的程序对其他计算机发布。另外,以下说明中,2个以上程序可以实现为1个程序,1个程序也可以实现为2个以上程序。
另外,以下说明中,“命中行数据串”是与1个检索查询对应的全部命中行数据。1条“命中行数据”是检索命中的(符合由检索查询指定的检索条件的)数据。命中行数据可以是行或列中的全部数据,也可以是一部分数据(例如内容值(列值))。
实施例1
首先,参考图1和图2说明作为本实施例的对象的数据库检索处理的一例。
图1表示数据库中包括的表的一例。
如图1所示,数据库由以水平方向为列、以垂直方向为行的二维的数据结构构成。最上行被称为模式(schema),表示各列的标签。行方向是与各模式对应的内容值(列值),能够按字符串或数值等各种数据宽度定义。例如,就本例而言,“名称”模式是“名称1”的“高度”模式的内容值是“10”。另外,本数据库的表名是“TABLE1”。另外,数据库的元信息(例如模式名、模式数、各模式的数据宽度和表名)例如用通用数据库语言SQL(Structured QueryLanguage:结构化查询语言)预先定义。另外,每1行的数据量由各模式的数据宽度的定义来决定。
图2表示检索查询的一例。
检索查询是符合通用数据库语言SQL格式的查询。第1行的字符串SELECT表示输出形式。通配符(*)表示该行整体。另外,在指定了模式名(例如“diameter”)代替通配符的情况下,与该模式对应的值成为输出。第2行的FROM字符串表示表名,表示将表名是TABLE1的数据库作为对象。第3行的WHERE字符串表示检索条件,表示将模式名“shape”是“球体”的行作为检索对象。第4行的“AND”字符串是第3行的WHERE的追加条件,表示将模式名“weight”大于“9”的行作为检索对象。本检索查询的执行结果中,“shape”是“球体”、且“weight”大于“9”的行即第1行的数据成为输出。
本实施例的数据库处理是关于对话式地多次追加检索查询地、逐渐筛选检索对象的过程的处理,用于大数据分析中的进行有效数据的提取的过程。以下用本数据库检索例作为对象进行说明。
根据一个比较例,如图3所示,因为响应检索查询的数据传输量对主机而言不明,所以主机中分配的缓冲区域(例如在主机的主存中确保的缓冲区域)11的容量,是与由检索查询指定的检索单位容量12相同的容量、即与符合该检索查询的全部检索范围相当的容量(检索单位容量12可能是数据库10的容量,也可能是数据库10的一部分容量)。
但是,通常与检索查询相应的命中行数据串(检索中实际命中的全部命中行数据13)的合计容量即实际容量14一般小于检索单位容量12,因此可能产生较大的空白容量15。
实际的数据库处理中,例如将数据库10分割,用多线程对各分割数据库执行检索处理。另外,各进程为了提高检索处理吞吐率,而多倍地发出检索查询。该情况下,如图4所示,在进程方向和多倍性方向上分别需要分配缓冲区域11。即,需要与n进程和多倍性m对应的n×m个缓冲区域11。其中,n是1以上的整数,m是2以上的整数。另外,图4中,“缓冲区域(k,j)”表示与第k个进程(k是1以上n以下)和第j个命令(j是1以上m以下)对应的缓冲区域。
即使1个缓冲区域11的容量较小,总缓冲容量也与进程数(n)和多倍性(m)成正比地增加。另外,n×m个缓冲区域11中与检索命中行较少的检索查询对应的缓冲区域,如参考图3所说明地,可能产生较大的空白容量。
为了减少缓冲区域11的数量,可以考虑减小多倍性m(例如考虑设为m=1),但这样时,取决于检索单位容量12的大小,返回检索查询的响应的时间会变长。
另外,如果主机与数据库之间具备的中间设备能够将命中行数据串例如用DMA(Direct Memory Access:直接内存存取)写入至主机内的缓冲区域,则能够期待检索速度提高。而且,如果n进程分别能够共享m个缓冲区域中的至少2个以上缓冲区域11,则能够期待削减总缓冲容量。为了由中间设备在主机内的共享缓冲区域中写入命中行数据串,主机需要对中间设备指定共享缓冲区域中的写入目标地址。
但是,如上所述,响应检索查询而发现多少数据,在主机发出检索查询的时刻不能得知,所以主机难以对中间设备指定适当的写入目标地址。
因此,中间设备在主机内的缓冲区域中写入命中行数据串的数据库检索系统(计算机系统的一例)中,必须在主机中分配分别与检索单位容量12容量相同的n×m个缓冲区域11。
另外,中间设备在主机内的缓冲区域中写入命中行数据的数据库检索系统中,不能释放某一个缓冲区域(例如不能进行将缓冲区域内的数据转存(例如转存至盘中)的交换)。这是因为命中行数据串对缓冲区域的写入依赖于中间设备,所以需要使各缓冲区域常驻于主机中。
本实施例中,即使在中间设备在主机内的缓冲区域中写入命中行数据串的计算机系统中,也能够使缓冲区域的数量少于n×m个,具体而言,对于每1个进程且m个请求能够采用1个缓冲区域。
另外,本实施例中,即使在中间设备在主机内的缓冲区域中写入命中行数据串的计算机系统中,也能够释放缓冲区域。
进而,本实施例中,即使在中间设备在主机内的缓冲区域中写入命中行数据串的计算机系统中,也能够使至少1个缓冲区域的容量动态地变更。
以下详细说明实施例。
图5表示实施例1的数据库检索系统的结构。
数据库检索系统具备主机服务器100、经由主机总线135连接的存储200和对数据库检索进行加速的DB检索加速器300。
主机服务器100是主机的一例,可以是通用的CPU板。主机服务器100具备以CPU111和主存112作为主要构成要素的处理器110,和控制与连接到主机总线135的构成要素之间的通信的总线接口130。处理器110具有多个CPU核心。多个CPU核心可以存在于单个CPU111中,也可以存在于多个CPU111中。能够用1个CPU核心执行1个进程。处理器110执行经由记录介质121或网络122提供的数据库软件120,由此执行数据库处理。数据库软件120可以是计算机程序的一例,可以保存在未图示的1个以上存储器即主机存储器单元(存储资源)中。主机存储器单元的至少一部分可以存在于处理器110中,主存112可以包括在主机存储器单元中。数据库软件120例如是DBMS(Database Management System:数据库管理系统)。
存储200具有保存数据库的1个以上PDEV(物理存储设备),和控制对1个以上PDEV的数据输入输出的存储控制器50。
PDEV是FM(闪存)241。也可以用其他种类的半导体存储元件或HDD等磁介质代替FM。也可以构建包括多个FM241的1个以上RAID(Redundant Array of Independent(orInexpensive)Disks:独立(廉价)磁盘冗余阵列)组。
存储控制器50具有接收控制从主机总线135发来的命令的总线接口201;承担存储控制的嵌入式CPU210;暂时保存嵌入式CPU210所处理的命令和数据以及随存储访问而产生的数据的DRAM220;构成总线接口201与FM141的数据传输路径的路由器230;控制对多个FM241的数据I/O的多个闪存控制器240。总线接口201、DRAM220和路由器230与嵌入式CPU210连接。嵌入式CPU210对连接了数据的读取源或写入目标的FM241的闪存控制器240发送数据的读取或写入的命令。该命令被路由器230传输至目标的闪存控制器240。该闪存控制器接收命令,响应命令而从读取源的FM241读取数据,或者在写入目标的FM241中写入数据。
DB检索加速器300是在主机与数据库之间具备的中间设备的一例。DB检索加速器300可以用FPGA(Field-Programmable Gate Array)或ASIC(Application SpecificIntegrated Circuit)等实现。DB检索加速器300具有与主机总线135连接的总线接口301;进行DB检索加速器300的处理整体的控制和管理的嵌入式CPU310;进行实际的数据库检索处理的DB检索部320;暂时保存数据库的实际数据的存储器330。嵌入式CPU310与总线接口301、DB检索部302和存储器330连接。通过总线接口301进行命令和响应的发送接收。嵌入式CPU310是包括1个以上处理器的处理器单元中的1个以上处理器的一例。存储器330可以是SRAM(Static Random Access Memory:静态随机存取存储器)和DRAM等。DB检索部320是用FPGA或ASIC等实现的1个构成要素(例如硬件电路),但也可以是通过用嵌入式CPU310执行软件(计算机程序)而实现的功能。
本实施例中,在主机服务器100与DB检索加速器300之间、和DB检索加速器300与存储200之间,进行遵循使用PCIe(PCI-Express)协议的NVMe(Non-Volatile MemoryExpress:非易失存储器)标准的通信。主机总线135是PCIe总线。另外,总线接口130、201和301都是用于符合NVMe规格的通信的接口。
图6表示主存112的结构。
在主存112中设置有:保存主机服务器100对DB检索加速器300发出的命令(例如表示数据库检索处理的内容的检索查询这样的命令)的命令区域115;保存用DB检索加速器300实施的数据库检索中检索命中的数据串的缓冲区域116(暂存区域的一例);保存DB检索加速器300的DB处理单位的元信息的消息区域117。另外,主存112保存包括表示缓冲区域116的可写入容量的信息的信息即缓冲管理信息118。命令区域115和缓冲管理信息118由主机服务器100(CPU111)生成。DB检索加速器300用DMA(Direct Memory Access)从命令区域115读取命令,或者读取缓冲管理信息118的至少一部分。另外,DB检索加速器300用DMA在缓冲区域116中写入数据,或者在消息区域117中写入消息(例如元数据的至少一部分)。主机服务器100(CPU111)从缓冲区域116读取数据,或者从消息区域117读取消息。用DMA进行的读取和写入可以由DB检索加速器300的DMA控制部(未图示)进行。DMA控制部可以是嵌入式CPU310或DB检索部320的一部分,也可以作为独立的模块存在于嵌入式CPU310和DB检索部320之外。DMA控制部和DB检索部320中的至少一者可以是包含在包括嵌入式CPU310的处理器单元中的要素。
对于从主机服务器100对DB检索加速器300的命令的发送、和该命令的响应的发送中的至少一方,也可以采用DMA传输。例如主机服务器100(数据库软件120)可以在命令区域115中保存命令,将保存目标地址设定至DB检索加速器300,DB检索加速器300从该保存目标地址取得命令。该命令可以是I/O命令、初始设定命令和检索指示命令中的任一方。
作为从主机服务器100对DB检索加速器300的命令,有I/O命令(写命令和读命令)。在I/O命令中,指定I/O地址(读取源或写入目标的地址(例如LBA(Logical Block Address:逻辑区块地址)))、和I/O容量(I/O对象数据的容量)。即,通常的I/O命令是数据传输量预先可知的请求的一例。I/O命令是读命令的情况下,在I/O命令中进而指定传输目标地址(与读命令相应的读取对象数据的写入目标地址)。I/O命令是写命令的情况下,在I/O命令中进而指定传输源地址(与写命令相应的写入对象数据的读取源地址)。传输目标地址和传输源地址都是主机存储器单元(本实施例中为主存112)中的区域(特别是缓冲区域中的区域)的地址。
本实施例中,在上述通常的I/O命令之外,作为从主机服务器100对DB检索加速器300的命令,也支持初始设定命令和检索指示命令。初始设定命令是在与1个进程(例如1个检索)对应的多倍性m的命令(m个命令)之前发出的第一特殊命令的一例。检索指示命令是对每1个进程发出的第二特殊命令的一例。检索指示命令对于每1个进程按多倍性m发出。检索指示命令是检索请求(典型而言是检索查询)的一例。
图7表示初始设定命令的结构。
初始设定命令包括表示缓冲区域(本段中称为“指定缓冲区域”)116的识别编号的第一缓冲编号140、表示指定缓冲区域116的起始地址的起始地址141、表示指定缓冲区域的容量的缓冲容量142和缓冲管理信息地址143,该缓冲管理信息地址143表示保存有缓冲管理信息118的区域的起始地址,该缓冲管理信息118保存表示指定缓冲区域116的空白容量的信息。
图8表示检索指示命令的结构。
检索指示命令包括表示数据库的检索范围的起始地址(例如LBA)的数据库地址150、表示检索条件的数据库检索条件151、表示检索命中的数据的写入目标缓冲区域116的识别编号的第二缓冲编号152、和表示在检索结束时刻保存关于该检索的元信息的消息区域117的地址的消息区域地址153。
在同一进程的m个检索指示命令的各个中,数据库地址150可以不同。具体而言,例如,对于同一进程,第1个检索指示命令内的数据库地址150可以指定数据库中最初1GB的检索范围,第2个检索指示命令内的数据库地址150可以指定接下来的1GB的检索范围。此处的“1GB”是检索单位容量。
另外,初始设定命令包括的信息141~143也可以进而包括在检索指示命令中。
第二缓冲编号152所示的编号,与在包括该编号152的检索指示命令之前发送的初始设定命令内的第一缓冲编号140所示的编号相同。即,上述指定缓冲区域116是检索命中的数据的写入目标缓冲区域116。
图9是数据库检索处理的流程图。
本数据库检索处理不是对数据库的全部进行一齐检索,而是将数据库整体分割为特定的检索单位(DB处理单位)管道式地处理。检索单位容量可以考虑主机服务器100内的主存112的容量和DB加速器300的处理延迟等决定。例如,设数据库的总容量是1TB、检索单位容量是1GB。因此,为了检索数据库整体,使与检索单位容量相应的检索循环1024次,由此能够检索数据库整体。本例中,在主机服务器100与DB检索加速器300之间,实施1024次同步。
在主机服务器100中发出数据库检索的执行请求时,在步骤1中,主机服务器100的CPU111(数据库软件120)在主存112内分配命令区域115、缓冲区域116、消息区域117和缓冲管理信息118的区域。CPU111(数据库软件120)对缓冲区域116分配识别编号,并且在缓冲管理信息118中保存表示分配的缓冲区域116的容量的信息。另外,此处分配的缓冲区域116的容量(即初始容量)可以是预先决定的初始值,也可以与检索单位容量(例如后述的第一处理单位的容量)相同,也可以是小于检索单位容量的容量,也可以是大于检索单位容量的容量。缓冲区域116的容量如后所述能够动态地变更。
接着,在步骤2中,CPU111(数据库软件120)生成初始设定命令,将该初始设定命令对DB检索加速器300发送。该初始设定命令中,第一缓冲编号140表示分配的缓冲区域116的识别编号,缓冲起始地址141表示该缓冲区域116的起始地址,缓冲管理信息地址143表示保存有表示该缓冲区域116的容量的信息的缓冲管理信息118的区域的起始地址。该初始设定命令对于1个进程的多倍性m的检索指示命令发出1次。DB检索加速器300的嵌入式CPU310接收初始设定命令,按照该初始设定命令将内部状态初始化。具体而言,例如初始化可以包括将初始设定命令内的信息140~143设定至存储器330。此处,作为第一缓冲编号140所示的缓冲区域116的写指针(写入目标地址),设定缓冲起始地址141所示的地址。嵌入式CPU310对主机服务器100(数据库软件120)响应初始化完成。
接着,在步骤3中,为了按第一处理单位起动DB检索加速器300,主机服务器100的CPU111(数据库软件120)执行第一处理单位的前处理。该前处理例如可以包括与第一处理单位(检索单位容量)相应的多倍性m的检索指示命令的生成。
在步骤4中,主机服务器100的CPU111(数据库软件120)对DB检索加速器300发送多倍性m的检索指示命令。以下以1个检索指示命令为例说明步骤5~步骤13。
在步骤5中,DB检索加速器300(嵌入式CPU310)接收检索指示命令,进行与该检索指示命令相应的DB处理单位(第二处理单位)的前处理。此处的前处理,可以包括将第一处理单位分割为多个第二处理单位(即,可以对于1个检索指示命令多次进行步骤6~8)。第二处理单位可以这样比第一处理单位小,或者也可以是与第一处理单位相同的大小。另外,该前处理可以包括将检索指示命令内的信息150~153设定至存储器330。
在步骤6中,DB检索加速器300(嵌入式CPU310)将属于与第二处理单位相应的检索范围的全部数据的读请求对存储200发送。在步骤7中,存储200(嵌入式CPU210)按照该读请求,从1个以上FM241读取属于与第二处理单位相应的检索范围的数据组。在步骤8中,存储200(嵌入式CPU210)将读取的数据组返回至DB检索加速器300。返回的数据组被DB检索加速器300的嵌入式CPU310保存至存储器330。
在步骤9中,DB检索加速器300(DB检索部320)从返回的数据组中检索与检索指示命令内的检索条件151对应的数据。
在步骤10和11中,DB检索加速器300(嵌入式CPU310)为了确认可否对主机服务器100传输命中行数据串,而确认可否传输。具体而言,DB检索加速器300(嵌入式CPU310)参考初始设定命令内的地址143所示的缓冲管理信息118(步骤10),确定缓冲区域116的空白容量(步骤11)。
步骤11中确定的空白容量不足命中行数据串的容量的情况下,DB检索加速器300(嵌入式CPU310)中断命中行数据串对写入目标缓冲区域116的写入(传输)。DB检索加速器300(嵌入式CPU310)反复步骤10和11直到确定有命中行数据串的容量以上的空白容量。即,DB检索加速器300(嵌入式CPU310)定期地参考(轮询)缓冲管理区域118中的容量信息(表示缓冲区域的空白容量的信息)。这是因为,通过CPU111(数据库软件120)从缓冲区域116读取数据,缓冲管理信息118所示的空白容量可能增大。
步骤11中确定的空白容量在命中行数据串的容量以上的情况下(判断能够传输数据的情况),在步骤12中,DB检索加速器300(嵌入式CPU310)例如用DMA将命中行数据串写入至写入目标缓冲区域116的写指针所示的区域,并且将命中行数据串的元信息写入至写入目标消息区域117(检索指示命令内的地址153所示的区域)。命中行数据串的写入被中断的情况下,在检测出确定的空白容量在命中行数据串的容量以上的情况下,继续命中行数据串的写入。写入目标缓冲区域116是对象暂存区域的一例,是检索指示命令内的编号152所示的缓冲区域116。写指针是存储器330中设定的信息所示的写入目标地址。步骤12中写入的元信息中,包括表示命中行数据串的容量的信息。
步骤6~12的一系列处理也可以用比第二处理单位小的单位代替指示的第二处理单位。
在步骤13中,DB检索加速器300(嵌入式CPU310)执行每个第二处理单位的后处理。该后处理例如可以包括更新写入目标缓冲区域116的写指针的处理(例如对当前的写指针加上写入的命中行数据串的容量的值的处理)。与其他检索指示命令相应的命中行数据串能够从更新后的写指针所示的区域起写入。
在步骤14中,主机服务器100(数据库软件120)对于步骤12中对写入目标缓冲区域116写入(传输)的命中行数据串进行数据检索处理的后处理。该后处理可以包括基于步骤12中写入的命中行数据串的容量,识别写入目标缓冲区域116的更新后的写指针的处理。另外,该后处理可以包括从写入目标缓冲区域116的读指针(读取源地址)所示的区域读取、更新该读指针的处理。由写入目标缓冲区域116的整体容量、写指针和读指针定义写入目标缓冲区域116的空白容量。因此,写指针和读指针中的至少一方被更新的情况下,表示更新后的空白容量的信息(缓冲管理信息118内的信息)可以由主机服务器100(数据库软件120)更新,该更新也可以包括在步骤14的后处理中。
图10是用于说明DB处理单位的多倍化的图。
图9的步骤3~14的处理和步骤5~13的处理,对于每个DB处理单位多倍地执行。图10表示对DB处理单位执行4倍的情况的概念。
对于从第j个DB检索指示命令发出到响应该命令的命中行数据串返回,用4级队列管理,主机服务器100和DB检索加速器300管道式地多倍动作。
此处,如图9的说明所示,用步骤10和11的传输可否判断,DB检索加速器300使用写入目标缓冲区域16的空白容量(根据缓冲管理信息118确定的空白容量),使命中行数据串的数据传输中断(空白容量不足命中行数据串的容量的情况)和继续(空白容量在命中行数据串的容量以上的情况)。步骤13的后处理包括更新写入目标缓冲区域116的写指针(DB检索加速器300内的信息)。另外,步骤14的后处理包括根据写入的命中行数据串的容量(写入目标消息区域117中写入的信息表示的命中行数据串容量)识别写指针。另外,步骤14的后处理包括基于识别的写指针、写入目标缓冲区域116的读指针、和写入目标缓冲区域116的容量,更新表示空白容量的信息(缓冲管理信息118中的空白容量信息)。
图11表示写入目标缓冲区域116中多个命中行数据串连续的一例。
写入目标缓冲区域116是由同一进程的不同的m个检索指示命令共享的同一缓冲区域116。在该缓冲区域116中,与多个检索指示命令分别对应的多个命中行数据串连续地排列。
通过由DB检索加速器300管理和更新写入目标缓冲区域116的写指针,DB检索加速器300能够在缓冲区域116中追加地写入对于同一进程的多个检索指示命令分别对应的多个命中行数据串。
另外,通过由DB检索加速器300(嵌入式CPU310)识别写入目标缓冲区域116的空白容量,和基于该空白容量由DB检索加速器300控制数据传输的中断和继续,能够环形缓冲式地使用(缓冲区域116的细微使用)。读指针和写指针分别例如能够从起始地址向末端地址移动,并且从末端地址返回起始地址。
图6中示出了区域115~117和信息118,但这些要素115~118的组对于1个进程存在1个。从而,如图13所示,如果存在多个进程(以下称为检索进程)170,则对于多个检索进程170分别在主存112中设定要素115~118的组。具体而言,例如主机服务器100(数据库软件120)在主存112中设定与多个检索进程170分别对应的多个区域175。在多个区域175中分别设定与该区域175对应的检索进程170用的命令区域115、缓冲区域116、消息区域117、缓冲管理信息118的区域。另外,检索进程170是包括发出检索指示命令的检索处理用的进程。
可以用CPU111执行用于管理与多个检索进程170分别对应的多个缓冲区域116的进程即管理进程180。全部检索进程170的缓冲管理可以集中在管理进程180中。该情况下,检索进程170能够对管理进程180进行关于缓冲分配的请求。检索进程170和管理进程180是通过由CPU111执行数据库软件120而实现的进程。
例如,管理进程180管理与并行地动作的多个检索进程170分别对应的多个缓冲区域116的容量。因为主存112的容量是有限的,所以检索进程170增加的情况下,缓冲区域116也增加,所以可能占用主存190的容量。即使检索进程170是1个(例如进程数n=1),也可以存在管理进程180。
管理进程180在对检索进程170分配缓冲区域116时或之后,能够动态地变更缓冲区域116的容量。缓冲区域116的变更后的容量,是分配了该缓冲区域116的检索进程170的必要缓冲容量预测值(必要的缓冲容量的预测值)。管理进程180基于表示以下关系(X)和(Y)中的至少一方的信息,计算检索进程170的必要缓冲容量预测值:
(X)检索单位容量(检索范围容量)与缓冲容量的关系
(Y)检索命中率与缓冲容量的关系
表示(X)的关系的信息,可以是表示多个检索单位容量与多个缓冲容量的对应关系的管理表,也可以是用于使用检索单位容量计算出缓冲容量的计算式。同样地,表示(Y)的关系的信息,也可以是表示多个检索命中率与多个缓冲容量的对应关系的管理表,也可以是用于使用检索命中率计算出缓冲容量的计算式。根据(X)所示的信息,检索单位容量较大时缓冲容量较大,检索单位容量较小时缓冲容量也较小。根据(Y)所示的信息,检索命中率较大时缓冲容量较大,检索命中率较小时缓冲容量较小。“检索命中率”例如可以是命中行数据串的容量相对于检索范围容量的比例。例如,管理进程180对于检索进程170分配与检索单位容量相同容量的缓冲区域116之后,在与该检索进程170对应的m个检索指示命令(多倍性m的检索指示命令)中1个以上检索指示命令的平均检索命中率不足规定值的情况下,减少缓冲区域116的容量。
另外,管理进程180在满足以下中的至少(c2)的情况下,将与该检索进程170对应的缓冲区域116指定为交换对象:
(c1)主存112的空白容量不足规定值
(c2)检索进程170处于中断状态(例如,与该检索进程170对应的缓冲区域116的空白容量不足命中行数据串的容量)
可以用主机服务器的未图示的OS(Operating System:操作系统)将指定为交换对象的缓冲区域116交换出。例如,交换对象的缓冲区域116内的数据可以被转存至主机服务器100内的未图示的盘(辅助存储设备的一例)中。之后,该缓冲区域116可以从主存112中删除。
实施例2
对实施例2进行说明。此时,主要说明与实施例1的不同点,对于与实施例1的共通点省略或简化说明。
图12表示实施例2的数据库检索系统的结构。
对于总线交换器161,连接主机服务器160、多个存储200和多个DB检索加速器300。可以代替存储200或额外地将PDEV(例如HDD)与总线交换器161连接。
实施例3
对实施例3进行说明。此时,主要说明与实施例1和2的不同点,对于与实施例1和2的共通点省略或简化说明。
图14表示实施例3的数据库检索系统的结构。
主机服务器100和PDEV1400与主机总线135连接。PDEV1400具有存储介质(例如硬盘或闪存芯片)1403、和控制对存储介质1403的数据I/O的介质控制器1401。存储介质1403保存数据库。介质控制器1401具有DB检索加速器1402。DB检索加速器1402内的CPU(未图示)作为介质控制器1401的CPU、或者经由介质控制器1401的CPU(未图示),从数据库读取数据组,从数据组中寻找满足检索条件的命中行数据串,将命中行数据串写入至主机服务器100内的缓冲区域。
通常的I/O命令可以绕过DB检索加速器1402来处理。初始设定命令和检索指示命令可以用DB检索加速器1402处理。
中间设备的一例可以是DB检索加速器1402,也可以是介质控制器1401。
实施例4
对实施例4进行说明。此时,主要说明与实施例1~3的不同点,对于与实施例1~3的共通点省略或简化说明。
图15表示实施例4的数据库检索系统的结构。
主机服务器100和存储1500与主机总线135连接。存储1500具有PDEV组(1个以上PDEV(例如1个以上RAID组))1503、和控制对PDEV组1503的数据I/O的存储控制器1501。PDEV组1503保存数据库。存储控制器1501具有DB检索加速器1502。DB检索加速器1502内的CPU(未图示)作为存储控制器1501的CPU、或者经由存储控制器1501的CPU(未图示),从数据库读取数据组,从数据组中寻找满足检索条件的命中行数据串,将命中行数据串写入至主机服务器100内的缓冲区域。
通常的I/O命令可以绕过DB检索加速器1502来处理。初始设定命令和检索指示命令可以用DB检索加速器1502处理。
中间设备的一例可以是DB检索加速器1502,也可以是存储控制器1501。
实施例5
对实施例5进行说明。此时,主要说明与实施例1~4的不同点,对于与实施例1~4的共通点省略或简化说明。
实施例1~4中,对于主机服务器与DB检索加速器之间的通信,采用了遵循NVMe标准的通信。来自主机服务器(命令主设备)的命令是读命令的情况下,因为用读命令指定了传输目标地址,所以DB检索加速器(数据主设备)能够识别读取对象数据的传输目标(保存目标)。
本实施例中,主机服务器与DB检索加速器之间的通信是遵循SCSI(SmallComputer System Interface:小型计算机系统接口)协议(或FC(Fibre Channel:光纤通道)协议)的通信。因此,主机服务器具有的接口、DB检索加速器具有的接口和存储具有的接口分别是SCSI(或FC)用的接口。
以下说明多主的情况和单主的情况。
<多主的情况>
多主的情况下,在主机服务器之外,DB检索加速器成为SCSI总线主设备,对主机服务器的主存储写入命中行数据串。多主的情况下进行的检索处理的流程的概要如下所述。流程与实施例1~4(进行遵循NVMe规格的通信的数据库检索系统中的检索处理的流程)大致相同。
即,主机服务器的CPU将初始设定命令对DB检索加速器发出。另外,主机服务器的CPU将m个检索指示命令(多倍性m的检索指示命令)对DB检索加速器发出。DB检索加速器对于m个检索指示命令,作为SCSI总线主设备分别将命中行数据串写入至主机服务器的写入目标缓冲区域(SCSI总线主设备知道缓冲区域的地址,所以能够直接写入命中行数据串)。DB检索加速器在主机服务器的写入目标消息区域中写入表示命中行数据串的容量等的元信息。主机服务器的CPU用轮询(或中断)检查消息区域。
<单主的情况>
单主的情况下,仅主机服务器成为SCSI总线主设备,DB检索加速器不是SCSI总线主设备。因此,DB检索加速器不知道应当对何处传输命中行数据串。单主的情况下,可以考虑以下2种流程。
图16表示第一检索处理的概要(非同步型)。
(1)主机服务器1601(未图示的CPU)将初始设定命令(参考图7)和初始设定命令的命令ID(特殊命令ID)对DB检索加速器1603发送。主机服务器1601(CPU)对于主机服务器1601的设备驱动器(SCSI设备驱动器)1611,指示将该命令ID与缓冲区域1612相互关联。DB检索加速器1603(未图示的嵌入式CPU)将接收到的命令ID保存在DB检索加速器1603的存储器(未图示)中。
(2)主机服务器1601(CPU)将检索指示命令(参考图8)对DB检索加速器1603发送。另外,上述命令ID可以不是在初始设定命令发送时、而是改为在检索指示命令(例如第1个检索指示命令)发送时对DB检索加速器1603发送。
(3)DB检索加速器1603(嵌入式CPU)响应检索指示命令,将命中行数据串和命令ID返回至主机服务器1601。主机服务器1601接收命中行数据串和命令ID,设备驱动器1611在与该命令ID关联的缓冲区域1612中写入该命中行数据串。主机服务器1601(CPU或设备驱动器1611)管理缓冲区域1612的写指针(写入目标地址),每次写入命中行数据串等数据时更新写指针。DB检索加速器1603不知道缓冲区域1612的写指针(写入目标地址)。
(4)DB检索加速器1603(嵌入式CPU和DMA控制部)在主机服务器1601的消息区域1613中写入表示命中行数据串的容量等的元信息。
(5)主机服务器1601(CPU)用轮询(或中断)检查消息区域1613。
以上是第一检索处理的概要。另外,在(2)中,DB检索加速器1603(嵌入式CPU)在返回命中行数据串和命令ID之前,也可以如实施例1~4一般,参考主机服务器1601内的缓冲管理信息(未图示),判断缓冲区域1612的空白容量是否在命中行数据串的容量以上。该判断结果为真的情况下,DB检索加速器1603(嵌入式CPU)可以返回命中行数据串和命令ID。
图17表示第二检索处理的概要(同步型)。
(11)主机服务器1601(CPU)将初始设定命令对DB检索加速器1603发送。
(12)主机服务器1601(CPU)将检索指示命令对DB检索加速器1603发送。
(13)DB检索加速器1603(嵌入式CPU和DMA控制部)将对于每个命中行数据表示命中行数据的容量和该命中行数据的保存地址(从数据库读取并保存在存储器中的数据组中的命中行数据的地址)等的元信息写入至消息区域1613。
(14)主机服务器1601(CPU)用轮询(或中断)检查消息区域1613。如果保存有元信息,则主机服务器1601(CPU)识别出检索结束。识别出检索结束的情况下,主机服务器1601(CPU)将指定了根据元信息确定的容量(命中行数据的容量)和保存地址(传输源地址)、和缓冲区域1612的写指针(传输目标地址)的读命令(通常的读命令)对DB检索加速器1603发送。DB检索加速器1603接收该读命令。
(15)DB检索加速器1603(嵌入式CPU和DMA控制部)从用读命令指定的保存地址(传输源地址)对用该读命令指定的写入目标地址(传输目标地址)传输(写入)用读命令指定的容量的数据(命中行数据)。主机服务器1601(CPU或设备驱动器1611)管理缓冲区域1612的写指针,基于命中行数据的容量更新写指针。
如上所述,即使在发送对主机而言数据传输量不明的检索指示命令的数据库检索系统中进行的通信是遵循SCSI协议的通信,也能够在主机服务器1601的缓冲区域1612中追加命中行数据串。实施例5中,以SCSI为例,但对于遵循FC(Fibre Channel)协议的通信,也能够应用实施例5。另外,遵循SCSI协议的通信也可以应用于实施例1~4中的任意一个实施例的结构的数据库处理系统。
以上说明了几个实施例,但本发明不限定于这些实施例,能够在不脱离其主旨的范围内进行各种变更。
例如,在实施例1~4中的任意一个实施例中,可以采用PCIe代替NVMe。具体而言,例如计算机系统可以是主机服务器与存储综合而成的综合系统,在该系统中,主机服务器与DB检索加速器之间的通信和DB检索加速器与存储之间的通信都可以是PCIe通信(例如符合与主机服务器内的通信的协议相同的协议的通信的一例)。DB检索加速器是端点。因为中间存在DB检索加速器,即使主机服务器内的CPU和存储内的CPU是不同的路由设备,也能够在1个域中存在的路由设备为1个这样的制约下进行路由设备之间的通信、即主机服务器内的CPU与存储内的CPU之间的通信。
另外,例如检索对象不限定于数据库(特别是保存结构化数据的数据库)。例如,检索对象可以是文件系统,也可以是KVS(Key Value Store:键值存储)。另外,本发明也可以应用于数据挖掘处理(KDD(knowledge-Discovery in Databases:数据库中的知识发现)处理)、例如对多媒体数据库(典型而言是在数值和文本数据之外也处理图像和声音的数据库)这样的数据库进行的内容检索处理(特别是基于特征量的类似检索处理)。
另外,对于1个进程的多倍性m的检索指示命令设置了1个共享的缓冲区域,但多倍性m的检索指示命令可以是与1个进程对应的多倍性M的检索指示命令中的一部分。即,m是2以上M以下。
另外,实施例5中,采用多主和单主中的哪一方,依赖于主机总线135是多主型还是单主。此处定义的“主”指的是在发出命令时指定传输目标地址的组件。例如,SCSI中采用同步型(主机服务器为主进行管理),NVMe中采用非同步型(多个总线主设备能够相互连接)。具体而言,例如如下所述。
<单主(SCSI):同步型>
仅主机服务器知道读数据的保存目标地址。主机服务器在读命令的情况下,仅对加速器指示命令ID。加速器在返回读数据时,附加作为对象的命令ID。主机服务器基于附加的命令ID,自身管理数据的保存目标。
<多主(NVMe):非同步型>
主机服务器和加速器都知道读数据的保存目标地址。加速器返回数据时,加速器明确地指定保存目标地址,进行数据返回。
附图标记说明
300……DB检索加速器。
Claims (14)
1.一种处理检索请求的检索处理系统,所述检索请求是对于具有1个以上的存储器作为主机存储单元的、能够执行n个进程(n是1以上的整数)的主机而言数据传输量不明的请求,所述检索处理系统的特征在于:
具有作为设置在所述主机与检索对象之间的设备的中间设备;
所述中间设备包括:
与所述主机连接的包括1个以上的接口的接口单元;和
与所述接口单元连接的包括1个以上的处理器的处理器单元,
在所述n个进程中的至少1个进程中,所述接口单元接收m个多倍性检索请求(m是2以上的整数),
所述m个多倍性检索请求的每一个都是从检索对象中的一部分的检索范围中检索符合检索条件的数据即命中数据的请求,
在所述主机存储器单元中设有作为与所述m个多倍性检索请求相关联的暂存区域的对象暂存区域,
对于所述m个多倍性检索请求的每一个,所述处理器单元识别与该检索请求相应的检索范围中的、与该检索请求相应的命中数据的容量即命中数据容量,
对于所述m个多倍性检索请求的每一个,与该检索请求相应的命中数据能够写入至所述对象暂存区域中的与写入目标地址相应的区域,
对于所述m个多倍性检索请求的每一个,所述写入目标地址能够基于由所述处理器单元识别出的命中数据容量来更新。
2.如权利要求1所述的检索处理系统,其特征在于:
对于所述m个多倍性检索请求的每一个,所述处理器单元将与该检索请求相应的命中数据写入至与该检索请求相关联的所述对象暂存区域中的与写入目标地址相应的区域,
对于所述m个多倍性检索请求的每一个,所述处理器单元在每次将与该检索请求相应的命中数据写入至所述对象暂存区域时,更新所述写入目标地址。
3.如权利要求2所述的检索处理系统,其特征在于:
所述主机存储器单元保存暂存区域管理信息,所述暂存区域管理信息包括表示所述对象暂存区域的空白容量的信息,
对于所述m个多倍性检索请求的每一个,所述处理器单元进行以下处理:
参照所述暂存区域管理信息来确定所述对象暂存区域的空白容量,
在所确定的空白容量不足与该检索请求相应的命中数据容量的情况下,中断将与该检索请求相应的命中数据写入至所述对象暂存区域的处理,
在所确定的空白容量在与该检索请求相应的命中数据容量以上的情况下,将与该检索请求相应的命中数据写入至所述对象暂存区域。
4.如权利要求3所述的检索处理系统,其特征在于:
在所述主机存储器单元中设有消息区域,该消息区域是与所述m个多倍性检索请求相关联的、用来保存元信息的区域,
对所述m个多倍性检索请求的每一个关联作为所述消息区域的地址的消息区域地址,其中,所述消息区域的地址是用来保存元信息的区域的地址,所述元信息包括表示与该检索请求相应的命中数据容量的信息,
对于所述m个多倍性检索请求的每一个,所述处理器单元在与关联于该检索请求的消息区域地址相应的区域中写入元信息,其中,所述元信息包括表示与该检索请求相应的命中数据容量的信息,
所述暂存区域管理信息所表示的空白容量,能够基于写入到所述消息区域中的元信息所示的命中数据容量来更新。
5.如权利要求2所述的检索处理系统,其特征在于:
所述n个进程中的1个或作为不同进程的管理进程能够由所述主机执行,
所述管理进程在命中数据对所述对象暂存区域的写入被中断的情况下,将所述对象暂存区域指定为交换对象,
所述主机将指定为所述交换对象的对象暂存区域交换出去。
6.如权利要求2所述的检索处理系统,其特征在于:
所述n个进程中的1个或作为不同进程的管理进程能够由所述主机执行,
所述管理进程基于与所述m个多倍性检索请求对应的检索范围的容量和所述m个多倍性检索请求中的1个以上检索请求各自的命中率中的至少1者,控制所述对象暂存区域。
7.如权利要求2所述的检索处理系统,其特征在于:
所述主机与所述中间设备之间的通信是遵循PCIe、NVMe和SCSI(多主)中的任一者的通信,
在所述SCSI(多主)中,所述主机和所述中间设备都是主设备。
8.如权利要求1所述的检索处理系统,其特征在于:
对于所述m个多倍性检索请求,所述接口单元从所述主机接收ID,
对于所述m个多倍性检索请求的每一个,所述处理器单元将与该检索请求相应的命中数据与关于所述m个多倍性检索请求的ID一起返回至所述主机,
对于所述m个多倍性检索请求的每一个,所述主机接收与该检索请求相应的命中数据和所述ID,将该命中数据写入至与所述ID相关联的所述对象暂存区域中的与写入目标地址相应的区域,并更新该写入目标地址。
9.如权利要求8所述的检索处理系统,其特征在于:
所述主机与所述中间设备之间的通信是遵循SCSI(单主)的通信,
在所述SCSI(单主)中,所述主机与所述中间设备中仅所述主机是主设备。
10.如权利要求1所述的检索处理系统,其特征在于:
在所述主机存储器单元中设有消息区域,该消息区域是与所述m个多倍性检索请求相关联的、用来保存元信息的区域,
对所述m个多倍性检索请求的每一个关联作为所述消息区域的地址的消息区域地址,其中,所述消息区域的地址是用来保存关于基于该检索请求的检索的元信息的区域的地址,
对于所述m个多倍性检索请求的每一个,所述处理器单元进行以下处理:
在与关联于该检索请求的消息区域地址相应的区域中写入元信息,其中所述元信息包括与该检索请求相应的命中数据容量和保存有与该检索请求相应的命中数据的区域的地址,
从所述主机接收指定了所述对象暂存区域的写入目标地址和所写入的元信息所示的命中数据容量和地址的读命令,
响应所述读命令而将所述命中数据从所述写入的元信息所示的地址传输至所述写入目标地址。
11.如权利要求10所述的检索处理系统,其特征在于:
所述主机与所述中间设备之间的通信是遵循SCSI(单主)的通信,
在所述SCSI(单主)中,所述主机与所述中间设备中仅所述主机是主设备。
12.如权利要求1所述的检索处理系统,其特征在于:
除所述中间设备之外,还包括通过所述主机中至少由所述主机执行来生成所述n个进程的计算机程序。
13.如权利要求1所述的检索处理系统,其特征在于:
包括具有存储设备的存储,所述存储设备中保存有所述检索对象,
所述中间设备设置于所述存储。
14.一种处理检索请求的检索处理方法,所述检索请求是对于具有1个以上的存储器作为主机存储单元的、能够执行n个进程(n是1以上的整数)的主机而言数据传输量不明的请求,所述检索处理方法的特征在于:
在所述n个进程中的至少1个进程中,通过作为设置在所述主机与检索对象之间的设备的中间设备接收m个多倍性检索请求(m是2以上的整数),
所述m个多倍性检索请求的每一个都是从检索对象中的一部分的检索范围中检索符合检索条件的数据即命中数据的请求,
在所述主机存储器单元中设有作为与所述m个多倍性检索请求相关联的暂存区域的对象暂存区域,
对于所述m个多倍性检索请求的每一个,由所述中间设备识别与该检索请求相应的检索范围中的、与该检索请求相应的命中数据的容量即命中数据容量,
对于所述m个多倍性检索请求的每一个,与该检索请求相应的命中数据能够写入至所述对象暂存区域中的与写入目标地址相应的区域,
对于所述m个多倍性检索请求的每一个,所述写入目标地址能够基于由所述中间设备识别出的命中数据容量来更新。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2015/086111 WO2017109911A1 (ja) | 2015-12-24 | 2015-12-24 | ホストにとってデータ転送量が不明な検索リクエストを処理する検索処理システム及び方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107924399A true CN107924399A (zh) | 2018-04-17 |
CN107924399B CN107924399B (zh) | 2021-08-10 |
Family
ID=59089823
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580082641.9A Active CN107924399B (zh) | 2015-12-24 | 2015-12-24 | 处理对主机而言数据传输量不明的检索请求的检索处理系统和方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10860577B2 (zh) |
CN (1) | CN107924399B (zh) |
WO (1) | WO2017109911A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11328075B2 (en) * | 2019-01-04 | 2022-05-10 | Baidu Usa Llc | Method and system for providing secure communications between a host system and a data processing accelerator |
US11954495B1 (en) * | 2021-12-10 | 2024-04-09 | Amazon Technologies, Inc. | Database acceleration with coprocessor subsystem for offloading tuple filtering |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5623652A (en) * | 1994-07-25 | 1997-04-22 | Apple Computer, Inc. | Method and apparatus for searching for information in a network and for controlling the display of searchable information on display devices in the network |
US6182061B1 (en) * | 1997-04-09 | 2001-01-30 | International Business Machines Corporation | Method for executing aggregate queries, and computer system |
US20040186832A1 (en) * | 2003-01-16 | 2004-09-23 | Jardin Cary A. | System and method for controlling processing in a distributed system |
CN1848095A (zh) * | 2004-12-29 | 2006-10-18 | 英特尔公司 | 在多核心/多线程处理器中高速缓存的公平共享 |
CN1866925A (zh) * | 2003-02-25 | 2006-11-22 | 株式会社日立制作所 | 网络中继装置 |
US20100211577A1 (en) * | 2009-02-13 | 2010-08-19 | Hitachi, Ltd. | Database processing system and method |
CN101834801A (zh) * | 2010-05-20 | 2010-09-15 | 哈尔滨工业大学 | 基于缓冲池的数据缓存排序在线处理方法 |
CN102084357A (zh) * | 2008-07-01 | 2011-06-01 | 富士通株式会社 | 检索装置以及检索方法 |
CN102479159A (zh) * | 2010-11-25 | 2012-05-30 | 大唐移动通信设备有限公司 | 多进程harq数据的缓存方法和设备 |
US8819335B1 (en) * | 2013-08-30 | 2014-08-26 | NXGN Data, Inc. | System and method for executing map-reduce tasks in a storage device |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0728836A (ja) | 1993-06-24 | 1995-01-31 | Hitachi Ltd | データベース検索方法及びこの方法を用いたデータベースシステム |
US7953926B2 (en) * | 2002-08-15 | 2011-05-31 | Board Of Governors For Higher Education, State Of Rhode Island And Providence Plantations | SCSI-to-IP cache storage device and method |
US7152076B2 (en) * | 2003-01-23 | 2006-12-19 | Microsoft Corporation | System and method for efficient multi-master replication |
JP2010152435A (ja) | 2008-12-24 | 2010-07-08 | Mitsubishi Electric Corp | 情報処理装置及び情報処理方法及びプログラム |
-
2015
- 2015-12-24 US US15/754,808 patent/US10860577B2/en active Active
- 2015-12-24 WO PCT/JP2015/086111 patent/WO2017109911A1/ja active Application Filing
- 2015-12-24 CN CN201580082641.9A patent/CN107924399B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5623652A (en) * | 1994-07-25 | 1997-04-22 | Apple Computer, Inc. | Method and apparatus for searching for information in a network and for controlling the display of searchable information on display devices in the network |
US5819273A (en) * | 1994-07-25 | 1998-10-06 | Apple Computer, Inc. | Method and apparatus for searching for information in a network and for controlling the display of searchable information on display devices in the network |
US6182061B1 (en) * | 1997-04-09 | 2001-01-30 | International Business Machines Corporation | Method for executing aggregate queries, and computer system |
US20040186832A1 (en) * | 2003-01-16 | 2004-09-23 | Jardin Cary A. | System and method for controlling processing in a distributed system |
CN1866925A (zh) * | 2003-02-25 | 2006-11-22 | 株式会社日立制作所 | 网络中继装置 |
CN1848095A (zh) * | 2004-12-29 | 2006-10-18 | 英特尔公司 | 在多核心/多线程处理器中高速缓存的公平共享 |
CN102084357A (zh) * | 2008-07-01 | 2011-06-01 | 富士通株式会社 | 检索装置以及检索方法 |
US20100211577A1 (en) * | 2009-02-13 | 2010-08-19 | Hitachi, Ltd. | Database processing system and method |
CN101834801A (zh) * | 2010-05-20 | 2010-09-15 | 哈尔滨工业大学 | 基于缓冲池的数据缓存排序在线处理方法 |
CN102479159A (zh) * | 2010-11-25 | 2012-05-30 | 大唐移动通信设备有限公司 | 多进程harq数据的缓存方法和设备 |
US8819335B1 (en) * | 2013-08-30 | 2014-08-26 | NXGN Data, Inc. | System and method for executing map-reduce tasks in a storage device |
Also Published As
Publication number | Publication date |
---|---|
US10860577B2 (en) | 2020-12-08 |
WO2017109911A1 (ja) | 2017-06-29 |
CN107924399B (zh) | 2021-08-10 |
US20180239799A1 (en) | 2018-08-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2885728B1 (en) | Hardware implementation of the aggregation/group by operation: hash-table method | |
US9740706B2 (en) | Management of intermediate data spills during the shuffle phase of a map-reduce job | |
US9342574B2 (en) | Distributed storage system and distributed storage method | |
CN101916261B (zh) | 一种分布式并行数据库系统的数据分区方法 | |
CN102053982B (zh) | 一种数据库信息管理方法和设备 | |
US20180285167A1 (en) | Database management system providing local balancing within individual cluster node | |
US20160350302A1 (en) | Dynamically splitting a range of a node in a distributed hash table | |
US9928266B2 (en) | Method and computing device for minimizing accesses to data storage in conjunction with maintaining a B-tree | |
CN101375241A (zh) | 集群文件系统中的有效数据管理 | |
CN105117417A (zh) | 一种读优化的内存数据库Trie树索引方法 | |
WO2013152543A1 (zh) | 面向列存储数据仓库的多维olap查询处理方法 | |
CN102362273A (zh) | 用于关系数据库系统中高效数据存取的动态散列表 | |
CN104834484B (zh) | 基于嵌入式可编程逻辑阵列的数据处理系统及处理方法 | |
US20130254240A1 (en) | Method of processing database, database processing apparatus, computer program product | |
US20090254523A1 (en) | Hybrid term and document-based indexing for search query resolution | |
CN103970902A (zh) | 一种大量数据情况下的可靠即时检索方法及系统 | |
CN107491487A (zh) | 一种全文数据库架构及位图索引创建、数据查询方法、服务器及介质 | |
CN109918450B (zh) | 基于分析类场景下的分布式并行数据库及存储方法 | |
CN107590257A (zh) | 一种数据库管理方法及装置 | |
CN103595799A (zh) | 一种实现分布式共享数据库的方法 | |
US7769732B2 (en) | Apparatus and method for streamlining index updates in a shared-nothing architecture | |
CN103810219A (zh) | 一种基于行存储数据库的数据处理方法及装置 | |
US9275091B2 (en) | Database management device and database management method | |
CN107924399A (zh) | 处理对主机而言数据传输量不明的检索请求的检索处理系统和方法 | |
CN107346342A (zh) | 一种基于存储计算的文件调用方法与系统 |
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 |