WO2015155846A1 - System for storage device to execute database hash join process - Google Patents

System for storage device to execute database hash join process Download PDF

Info

Publication number
WO2015155846A1
WO2015155846A1 PCT/JP2014/060238 JP2014060238W WO2015155846A1 WO 2015155846 A1 WO2015155846 A1 WO 2015155846A1 JP 2014060238 W JP2014060238 W JP 2014060238W WO 2015155846 A1 WO2015155846 A1 WO 2015155846A1
Authority
WO
WIPO (PCT)
Prior art keywords
information
data
hash value
hash
storage device
Prior art date
Application number
PCT/JP2014/060238
Other languages
French (fr)
Japanese (ja)
Inventor
渡辺 聡
能毅 黒川
芳孝 辻本
Original Assignee
株式会社日立製作所
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 株式会社日立製作所 filed Critical 株式会社日立製作所
Priority to JP2016512523A priority Critical patent/JP6158430B2/en
Priority to PCT/JP2014/060238 priority patent/WO2015155846A1/en
Publication of WO2015155846A1 publication Critical patent/WO2015155846A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24558Binary matching operations
    • G06F16/2456Join operations

Definitions

  • the present invention relates to a storage apparatus and system having a function of assisting database processing.
  • a database management system for managing a database is software for efficiently executing data accumulation and analysis.
  • a relational database management system (RDBMS: Relational DataBase Management System), which is a type of DBMS, manages data using a set of data (hereinafter referred to as relations or tables). When the RDBMS performs data analysis, it combines relations.
  • a relation join is an operation of creating a new relation by combining a plurality of relations into one according to a join condition.
  • hash connection In connection of relations, a method called hash connection is widely used.
  • hash join a hash table for one relation (hereinafter referred to as the outer table) is first created.
  • a hash table of the other relation hereinafter referred to as the inner table.
  • the outer table and inner table are joined by collating the hash table of the outer table data with the hash table of the inner table data.
  • the hash join is described in, for example, Patent Document 1.
  • a situation called a memory overflow of the server device may occur.
  • the overflow of the memory of the server device occurs when the hash table of the outer table does not fit in the memory of the server device.
  • the hash table of the outer table is divided into small sections called buckets, and the hash table is written to the storage device.
  • the hash table of the inner table is also divided into buckets and written to the storage device.
  • the outer table bucket and the inner table bucket are read from the storage apparatus into the memory of the server apparatus, and the joining process is executed.
  • Japanese Patent Application Laid-Open No. 2003-259542 describes a memory overflow of the server device.
  • the purpose is to prevent the occurrence of memory overflow in the server device and improve the performance of data analysis processing.
  • the processing performance of the RDBMS can be reduced by preventing memory overflow of the server device caused by hash join in the RDBMS and reducing the consumption of the CPU resource of the server device and the consumption of the network resource between the server device and the storage device.
  • the purpose is to improve.
  • a system includes a server device that performs table join processing based on a hash value, and a storage device that is connected to the server device via a network.
  • the server device executes table joining processing, first information for designating data to be joined in the table, and second information for designating data for hash value calculation in the table;
  • a first processing unit for generating a command including the third information for designating a hash value, and a first input / output unit for transmitting the command to the storage device via the network
  • the apparatus includes a storage unit in which a plurality of tables are stored, a second input / output unit that receives a command via a network, and data to be combined among data constituting the table based on the first information.
  • a second processing unit that selects and calculates a hash value of data designated by the second information among data constituting the table, and selects a hash value designated by the third information;
  • the second input / output part A hash value that is selected based on the third information, and transmits the data selected based on the first information corresponding to the hash value, the hash table consists to the server apparatus via the network.
  • the storage device has a memory in which a temporary area is secured, and the second processing unit is based on the first information corresponding to the hash value not specified in the third information and the hash value.
  • a hash table composed of the selected data and the selected data is stored in the temporary area.
  • the command includes fourth information related to whether or not the temporary area is required, and the second processing unit uses the fourth information to set an unspecified hash value in the third information and the hash value.
  • it is determined whether or not to store a hash table composed of data selected based on the first information in the temporary area.
  • the second processing unit calculates a selection rate that is a ratio of data to be combined among data constituting the table, and the second input / output unit transmits the selection rate to the server device, and One processing unit determines whether or not to use the temporary area based on the selection rate.
  • a storage apparatus connected via a network to a server apparatus that executes table join processing based on a hash value.
  • the storage device stores a plurality of tables, first information for designating data to be combined in the tables, second information for designating data for hash value calculation in the tables, , Input / output unit for receiving a command including the third information specifying the hash value from the server device via the network, and data to be combined among the data constituting the table based on the first information
  • a processing unit that calculates a hash value of the data specified by the second information from among the data constituting the table, and selects the hash value specified by the third information.
  • the output unit generates a hash table composed of a hash value selected based on the third information and data selected based on the first information corresponding to the hash value via the network. In To trust.
  • a database assist unit that assists in database processing is provided in the storage device to improve database processing efficiency.
  • the storage device includes both a case of a device separate from the server device and a case of a storage medium connected to the inside of the server device.
  • the database assist unit of the present invention includes an implementation method for installing a CPU device, an implementation method for installing a hardware circuit, and an implementation method for installing both a CPU device and a hardware circuit.
  • the database assist unit of the present invention has a function of extracting data necessary for data analysis from the relation, calculating a hash value of the extracted data, and transmitting data having the hash value within a specific range to the server device.
  • the database assist unit of the present invention extracts data necessary for data analysis from the relation, calculates a hash value of the extracted data, transmits data in which the hash value falls within a specified range to the server device, and It has a function of storing data whose values are not included in the specified range in a temporary area of the storage device.
  • the database assist unit of the present invention has a function of calculating a selection rate that is a ratio necessary for data analysis out of all data included in the relation, and transmitting the selection rate to the server device.
  • a coupling method determination unit determines a method for executing the coupling process by using the function of the storage device.
  • the joining method determining unit determines a method for executing the joining process based on the selection rate received from the database assist unit.
  • the joining method determination unit acquires information related to the relation to be hash joined from the execution plan creation unit and database statistical information included in the database.
  • the joining method determining unit determines a command to be transmitted to the storage device based on the selection rate received from the database assist unit and the information received from the database.
  • the combination method determination unit has a cost model for calculating the processing cost.
  • the coupling method determination unit uses the cost model to select a method that minimizes the processing cost and determines a command to be transmitted to the storage apparatus.
  • FIG. 1 is a diagram illustrating a system configuration of the present invention.
  • a storage apparatus 102 is installed inside the server apparatus 101, and the CPU 103 of the server apparatus 101, the memory 104 of the server apparatus, and the storage apparatus 102 are connected by an internal network 111 of the server apparatus 101.
  • a DBMS 105 is stored in the memory 104.
  • the DBMS 105 is a program executed by the CPU 103.
  • a CPU 106 of the storage apparatus 102, a memory 108 of the storage apparatus 102, a database assist unit 107, and a flash memory 110 are installed and connected by an internal network 111.
  • a storage control program 109 is stored in the memory 108.
  • the storage control program 109 is executed by the CPU 106.
  • the flash memory 110 is assumed as the information storage medium, but other information storage media may be used.
  • the flash memory 110 stores a plurality of tables.
  • FIG. 2 is a diagram illustrating a system configuration different from FIG. As shown in FIG. 2, the present invention can also be implemented in a configuration in which the server apparatus 101 and the storage apparatus 102 are connected by an external network 201 via input / output interfaces 202 and 203.
  • the database assist unit 107 may be implemented as a program, stored in the memory 108, and executed by the CPU 106.
  • FIG. 3 is a diagram illustrating details of the DBMS 105.
  • the DBMS 105 is used for description of a query, a user transmission / reception unit 301 that transmits / receives data such as a query (processing request for a database) transmitted from the terminal device to the server apparatus 101 including the DBMS 105 and an execution result based on the query.
  • a query processing request for a database
  • An SQL analysis unit 302 that analyzes an SQL statement, an execution plan creation unit 303 that determines an execution method of the SQL statement, an execution control unit 304 that controls execution of the SQL statement, and a storage transmission / reception unit 310 that transmits / receives data to / from the storage device
  • Table area management information 306 for storing table storage area information
  • table structure information 307 for storing table structure information
  • database statistical information 308 for storing database statistical information
  • selection rate and processing received from the storage apparatus 102 Determining the coupling method based on the cost model 305, has a database performance information 309, the storage transceiver 310 to perform the transmission and reception of data between the storage device 102 for storing the performance information in the database.
  • FIG. 4 is a diagram illustrating the table area management information 306.
  • the table area management information 306 stores a table area name 401, a table area start address 402, and a table area end address 403.
  • the start address 402 and the end address 403 are addresses used for data input / output with the storage apparatus 102, and may be called logical block addresses.
  • FIG. 5 is a diagram illustrating the table structure information 307.
  • the table structure information 307 stores a column name 501 and a data format 502 for each table area name 401.
  • the column name 501 is the name of the column constituting the table
  • the data format 502 is the data type of the column.
  • FIG. 6 is a diagram illustrating the database statistical information 308.
  • the database statistical information 308 stores the number of rows 601, the average row length 602, and the index presence / absence 603 for each table area name.
  • the number of rows 601 is the number of rows stored in the table area name 401
  • the average row length 602 is the average number of bytes stored in the table area name 401
  • the index presence / absence 603 is the corresponding table. Is information indicating whether or not an index has been created.
  • the database performance information 309 describes the memory capacity that can be used by the database 105, the read performance of the storage device 102, and the write performance of the storage device 102.
  • FIG. 7 shows an example of an SQL sentence received by the user transmitting / receiving unit 301 from the terminal device of the database user.
  • the SQL statement 701 illustrated in FIG. 7 is an instruction to join the PART table and the LINEITEM table to extract the P_NAME column of the PART table and the L_LINENUMBER column of the LINEITEM table.
  • FIG. 8 shows an example of the SQL execution result 801 transmitted by the user transmission / reception unit 301.
  • the SQL execution result 801 the result of executing the processing in the database according to the instruction of the SQL statement 701 is described.
  • the SQL analysis unit 302 inspects the grammar of the SQL statement 701 received from the user transmission / reception unit 301 and transmits the SQL statement 701 to the execution plan creation unit 303.
  • the execution plan creation unit 303 refers to the database statistical information 308 and determines an execution method of the received SQL statement 701.
  • FIG. 9 is a diagram illustrating an execution plan 901 created by the execution plan creation unit 303.
  • the execution plan 901 is composed of a plurality of steps 902. By executing each step 902 in order, the processing specified in the SQL statement 701 is executed.
  • step 2 of the execution plan 901 processing for reading the LINEITEM table and creating the HASH table is specified. In this case, the selection condition is “L_SUPPKEY”, and the extraction sequence is specified to be “L_LINENUMBER”.
  • step 3 of the execution plan 901 describes that the combination method determination unit 305 performs processing for determining the combination method.
  • FIG. 10 is a flowchart showing communication performed between the server apparatus 101 and the storage apparatus 102 in order to execute STEP1 and STEP2 of FIG.
  • the outer table read command 1001 includes an address where the outer table is stored, a selection condition, a column specification for retrieving a hash value, and a column extraction condition.
  • the command 1001 and other commands are generated by the execution control unit 304.
  • FIG. 11 is a diagram illustrating an outer table read command 1001. The start address 1101 and the end address 1102 are determined by referring to the address where the PART table is stored from the table area management information 306.
  • a column 1104 for calculating a hash value indicates that a hash value is calculated from the 0th byte to the 7th byte of the row data.
  • the extraction condition 1105 indicates that the 8th to 63rd bytes of the row data are extracted.
  • the storage apparatus 102 that has received the command executes the data selection 1002 and the hash value calculation 1003 to select the outer table hash table and the selection rate that are configured by the hash value and the data extracted by the extraction condition 1105 corresponding to the hash value.
  • Transmission 1004 is executed. Data received by transmission 1004 is stored in memory 104.
  • the hash value calculated from P_PARTKEY is stored as the join column hash value, and the value of P_NAME of the corresponding row is stored in the extracted data.
  • the selection rate is the ratio of rows (or data) to be combined among all rows (or data) included in the table, that is, rows that meet the selection condition 1103 among all the rows included in the table. It means the ratio.
  • the inner table read command 1211 includes an address where the inner table is stored, a selection condition, a column specification for retrieving a hash value, and a column extraction condition.
  • the storage apparatus 102 that has received the command executes data selection 1212 and hash value calculation 1213, and executes transmission 1214 of the outer table hash table and the selection rate. Data received by transmission 1214 is stored in memory 104. The operation of the storage apparatus 102 will be described with reference to FIG.
  • the server apparatus 101 that has received the inner table hash table and the selection rate from the storage apparatus 102 executes the determination 1215 of the join process.
  • FIG. 12 is a flowchart showing the operation of the combination method determination unit 305 that executes the determination 1215 of the combination process.
  • the combining method determination unit 305 determines whether or not a memory overflow of the server device occurs. This is determined by comparing the memory capacity that can be used by the database described in the database performance information 309 with the size of the hash table received in the transmission 1004 of the outer table hash table and the selectivity. If it is determined that a memory overflow occurs, the combining method determination unit 305 calculates the number of buckets in processing 1203. The number of buckets is a numerical value indicating how many times the memory capacity of the hash table can be used by the DBMS 105.
  • ⁇ and ⁇ represent carry up to integer values.
  • the combination method determination unit 305 determines the combination method using the processing cost model.
  • FIG. 13 is an example of the processing cost model 1301 used by the combination method determination unit 305.
  • the processing cost model 1301 describes a combination method 1302, a READ amount 1303, and a Write amount 1304. As the join method 1302, selection is made as to whether or not to use a temporary area for the outer table and the inner table.
  • the Read amount is the amount of data to be read from the storage apparatus that is executed when the corresponding method is selected.
  • the amount of write is the amount of write to the storage device that is executed when the corresponding method is selected.
  • A represents the size of the outer table
  • B represents the size of the inner table. These can be determined by referring to the table area management information 306.
  • X is the number of buckets.
  • is the selectivity of the outer table received by the transmission 1004 of the outer table hash table and the selectivity.
  • is a selectivity of the inner table received by the transmission 1204 of the inner table hash table and the selectivity.
  • FIG. 14 is a flowchart showing communication performed between the server apparatus 101 and the storage apparatus 102 in order to execute Step 4 of FIG.
  • the server apparatus 101 transmits an outer table first bucket read command 1401 to the server apparatus 102.
  • FIG. 15 is a diagram exemplifying details of the outer table first bucket read command 1401.
  • the outer table first bucket read command includes an outer table start address 1501, an outer table end address 1502, an outer table selection condition 1503, a column 1504 for calculating a hash value, an extraction condition 1505, temporary area storage presence / absence 1506, and a temporary area start address 1507.
  • Temporary area end address 1508, hash value lower limit 1509, hash value upper limit 1510 are described.
  • the combination method determination unit 305 selects the use of temporary area, the presence of temporary area storage 1505 is described.
  • the combination method determination unit 305 selects the use of temporary area storage, the temporary area storage presence / absence 1505 is displayed. Enter none.
  • the storage apparatus 102 that has received the outer-table first bucket read command 1401 performs the operation 1405 of storing the hash table in the temporary area if there is data selection 1402, hash value calculation 1403, hash value selection 1404, temporary area storage presence / absence 1506. Do.
  • the hash table of data in this range is transmitted to the server apparatus 101 in accordance with the hash value lower limit 1509 and the hash value upper limit 1510 described in the outer table first bucket read command 1401 (1406).
  • the server apparatus 101 transmits an inner table first bucket read command 1407 to the storage apparatus. Details of the inner-table first bucket read command 1407 are the same as those of the outer-table first bucket read command 1401. If the combination method determination unit 305 selects the use of temporary area, the presence / absence of temporary area storage 1505 is described. If the combination method determination unit 305 selects the absence of temporary area use, the temporary area storage presence / absence 1505 is displayed. Enter none.
  • the server apparatus 101 performs a join process 1413 using the outer table hash table and the inner table hash table.
  • a join process using a hash table is described in Patent Document 2 and the like.
  • the server apparatus 101 repeats reading of the outer table and the inner table by the number of buckets.
  • the addresses of the temporary areas are specified as the start address 1501 and end address 1502 of the command shown in FIG.
  • the storage apparatus 102 generally executes data read and write processing.
  • Data read is a process of transmitting data stored in the flash memory 110 to the server apparatus 101.
  • Data write is a process of storing data received from the server apparatus 101 in the flash memory 101.
  • the storage apparatus 102 of the present invention uses data selection processing, hash table creation processing, data selection processing from a hash table, and a portion of the hash table as a temporary area.
  • a function for executing the storing process is provided.
  • FIG. 16 shows an example of a command used when the storage apparatus 102 executes data selection processing.
  • the command includes an operation code 1601, a start address 1602 of selection target data 1602, an end address 1603 of selection target data 1603, a selection condition 1604, a column extraction condition 1605 for extracting a column, and a result.
  • a result storage memory address 1606 which is a memory address of the server apparatus 101 for storing is included.
  • FIG. 17 shows an example of a command used when the storage apparatus 102 executes hash table creation processing.
  • the command includes an operation code 1701, a start address 1702 for selection target data, an end address 1703 for selection target data, a selection condition 1704, a column for calculating a hash value for designating a column for calculating a hash value. 1705, a column extraction condition 1706 for extracting a column, and a result storage memory address 1706 that is a memory address of the server apparatus 101 for storing the result.
  • FIG. 18 is an example of commands used when the storage apparatus 102 executes data selection processing from the hash table and processing for storing a part of the hash table in the temporary area.
  • the command includes an operation code 1812, a start address 1801 of selection target data 1801, an end address 1802 of selection target data 1802, a selection condition 1803, and a column for calculating a hash value for designating a column for calculating a hash value.
  • column extraction condition 1805 for extracting a column
  • temporary area storage presence / absence 1806 specifying whether or not to store in the temporary area
  • temporary area start address 1807 temporary area end address 1808
  • Hash value lower limit 1809 for specifying the lower limit of the hash value
  • hash value upper limit 1810 for specifying the upper limit of the hash value to be transmitted to the server apparatus 101
  • result storage memory address that is the memory address of the server apparatus 101 for storing the result 181 It is included.
  • the storage apparatus 102 that has received the command from the server apparatus 101 executes processing according to the content of the command.
  • the storage control program 109 reads the data specified by the command from the flash memory 110 and transmits it to the server apparatus 101. If the command is a write process, the storage control program 109 stores the data received from the server in the flash memory 110.
  • FIG. 19 is a diagram illustrating a flow of processing executed by the storage control program 109 when the storage apparatus 102 receives a command from the server apparatus 101.
  • the storage control program 109 determines whether the command is a read process or a write process. When the command is Read processing or Write processing, the storage control program 109 executes Read processing or Write processing in processing 1903. If the command is not Read processing or Write processing, the storage control program 109 transmits the command to the database assist unit 107 in processing 1904. In processing 1905, the storage control program 109 transmits data specified in the command to the database assist unit 107. In process 1906, the storage control program 109 transmits a process start instruction to the database assist unit 107.
  • FIG. 20 is a diagram illustrating details of the database assist unit 107.
  • the database assist unit 107 selects data according to the selection condition described in the input data storage memory 2001 for storing data received from the storage control program 109, the command storage memory 2002 for storing commands received from the storage control program 109, and the commands.
  • a hash value calculation unit 2006 that calculates a hash value of a column specified in the command, a hash value selection unit 2007 that selects a hash value in a range described in the command, and a server transmission data storage memory that stores data to be transmitted to the server device 101 200 Includes a processing end notification unit 2010 notifies the temporary area storage memory 2009 temporary area is secured, the process ends.
  • FIG. 21 is a flowchart showing the operation when the database assist unit 107 receives the command shown in FIG. 16 from the storage control program 109.
  • the row data selection unit 2003 reads data from the input data storage memory 2001.
  • the row data selection unit 2003 transmits data selected from the data read in processing 2102 to the column extraction unit 2005 according to the selection condition.
  • the column extraction unit 2005 extracts column data according to the column extraction condition and stores it in the server transmission data storage memory 2008.
  • the row data selection unit 2003 transmits the number of read data and the number of selected data to the selection rate calculation unit 2004.
  • the selection rate calculation unit 2004 calculates the selection rate and stores it in the server transmission data storage memory 2008.
  • the selection rate is a value obtained by dividing the number of selected data by the number of read data.
  • the process end notification unit 2010 notifies the storage control program 109 of the process end.
  • the storage control program 109 that has received the notification of the completion of processing transmits the data stored in the server transmission data storage memory 2008 to the server apparatus 101.
  • FIG. 22 is a flowchart showing the operation when the database assist unit 107 receives the command shown in FIG. 17 from the storage control program 109.
  • the row data selection unit 2003 reads data from the input data storage memory 2001.
  • the row data selection unit 2003 transmits data selected from the data read in processing 2202 to the column extraction unit 2005 according to the selection condition.
  • the column extraction unit 2005 extracts column data according to the column extraction condition and transmits the column data to the hash value calculation unit 2006.
  • the row data selection unit 2003 transmits the number of read data and the number of selected data to the selection rate calculation unit 2004.
  • the selection rate calculation unit 2004 calculates the selection rate and stores it in the server transmission data storage memory 2008.
  • the hash value calculation unit 2006 calculates a hash value in accordance with the designation of the column for calculating the hash value, and stores the calculated hash value and column data in the server transmission data storage memory 2008.
  • the calculation of the hash value is an operation for dividing the column data by a preset value and calculating a remainder.
  • the process end notification unit 2010 notifies the storage control program 109 of the process end.
  • the storage control program 109 that has received the notification of the completion of processing transmits the data stored in the server transmission data storage memory 2008 to the server apparatus 101.
  • FIG. 23 is a flowchart showing the operation when the database assist unit 107 receives the command shown in FIG. 18 from the storage control program 109.
  • the row data selection unit 2003 reads data from the input data storage memory 2001.
  • the row data selection unit 2003 transmits data selected from the data read in processing 2302 to the column extraction unit 2005 according to the selection condition.
  • the column extraction unit 2005 extracts column data according to the column extraction condition and transmits the column data to the hash value calculation unit 2006.
  • the row data selection unit 2003 transmits the number of read data and the number of selected data to the selection rate calculation unit 2004.
  • the selection rate calculation unit 2004 calculates the selection rate and stores it in the server transmission data storage memory 2008.
  • the hash value calculation unit 2006 calculates a hash value in accordance with the designation of the column for calculating the hash value, and transmits the calculated hash value and column data to the hash value calculation unit 2007.
  • the calculation of the hash value is an operation for dividing the column data by a preset value and calculating a remainder.
  • the hash value calculation unit stores the data to be transmitted to the server apparatus 101 and the hash value in the server transmission data storage memory 2008 according to the upper and lower limits of the hash value, and temporarily stores the data to be transmitted to the server apparatus 101 and the hash value. Store in the area storage memory 2009.
  • the process end notification unit 2010 notifies the storage control program 109 of the process end.
  • the storage control program 109 that has received the notification of the completion of processing transmits the data stored in the server transmission data storage memory 2008 to the server apparatus 101.
  • the storage control program 109 that has received the processing completion notification stores the temporary area storage memory 2009 in the temporary area storage memory 2009. Data stored in the range of addresses designated by the area start address 1807 and the temporary area end address 1808 is transmitted.

Abstract

In order to suppress a decrease in processing performance in the event of memory overflow in a server device during a database hash join process, according to the present invention, a storage device executes a process of selecting data as the object of a join, a hash value calculating process, a process of selecting data from a hash table, a selection rate calculating process, and a process of storing a part of the hash table in a temporary area, so as to suppress a decrease in database performance.

Description

[規則37.2に基づきISAが決定した発明の名称] データベースのハッシュ結合処理をストレージ装置が実行するシステム[Name of invention determined by ISA based on Rule 37.2] System in which storage device executes database hash join processing
 本発明は、データベースの処理をアシストする機能を有するストレージ装置およびシステムに関する。 The present invention relates to a storage apparatus and system having a function of assisting database processing.
 データベースを管理するデータベース管理システム(DBMS:DataBase Management System)はデータの蓄積や分析を効率的に実行するためのソフトウェアである。DBMSの一種であるリレーショナルデータベース管理システム(RDBMS:Relational DataBase Management System)は,データの集合(以下,リレーションまたは表と呼ぶ)を用いてデータを管理する。RDBMSがデータの分析を実行する際には,リレーションの結合を行う。リレーションの結合とは,複数のリレーションを結合条件に従って一つにまとめて,新たなリレーションを作成する操作である。 A database management system (DBMS: DataBase Management System) for managing a database is software for efficiently executing data accumulation and analysis. A relational database management system (RDBMS: Relational DataBase Management System), which is a type of DBMS, manages data using a set of data (hereinafter referred to as relations or tables). When the RDBMS performs data analysis, it combines relations. A relation join is an operation of creating a new relation by combining a plurality of relations into one according to a join condition.
 リレーションの結合では,ハッシュ結合と呼ばれる方式が広く用いられている。ハッシュ結合では,最初に一方のリレーション(以下,外表と呼ぶ)のハッシュ表を作成する。次に他方のリレーション(以下,内表と呼ぶ)のハッシュ表を作成する。外表のデータのハッシュ表と内表のデータのハッシュ表を照合することによって,外表と内表の結合を行う。ハッシュ結合に関しては,例えば,特許文献1に記載されている。 In connection of relations, a method called hash connection is widely used. In hash join, a hash table for one relation (hereinafter referred to as the outer table) is first created. Next, a hash table of the other relation (hereinafter referred to as the inner table) is created. The outer table and inner table are joined by collating the hash table of the outer table data with the hash table of the inner table data. The hash join is described in, for example, Patent Document 1.
 ハッシュ結合では,サーバ装置のメモリ溢れと呼ばれる状況が発生する場合がある。サーバ装置のメモリ溢れは,外表のハッシュ表がサーバ装置のメモリに収まりきらない場合に発生する。サーバ装置のメモリ溢れが発生した場合,外表のハッシュ表をバケットと呼ばれる小区間に分割し,ハッシュ表をストレージ装置に書き出す。次に,内表のハッシュ表もバケットに分割しストレージ装置に書き出す。そして,ストレージ装置から,外表のバケットと内表のバケットをサーバ装置のメモリに読み込んで結合処理を実行する。サーバ装置のメモリ溢れに関しては,例えば,特許文献2に記載されている。 In a hash join, a situation called a memory overflow of the server device may occur. The overflow of the memory of the server device occurs when the hash table of the outer table does not fit in the memory of the server device. When the server device overflows, the hash table of the outer table is divided into small sections called buckets, and the hash table is written to the storage device. Next, the hash table of the inner table is also divided into buckets and written to the storage device. Then, the outer table bucket and the inner table bucket are read from the storage apparatus into the memory of the server apparatus, and the joining process is executed. For example, Japanese Patent Application Laid-Open No. 2003-259542 describes a memory overflow of the server device.
特開平10-326215号公報Japanese Patent Laid-Open No. 10-326215 特開平10-269248号公報Japanese Patent Laid-Open No. 10-269248
 ハッシュ表を用いたデータの分析処理において、サーバ装置でメモリ溢れが発生すると、表のハッシュ表をバケットと呼ばれる小区間に分割してストレージ装置に書き出し、再度、ストレージ装置からハッシュ表を読み込む必要がある。そのため、メモリ溢れが発生しない場合に比べると、データの分析処理の性能が低下する。 In a data analysis process using a hash table, when a memory overflow occurs in the server device, it is necessary to divide the hash table of the table into small sections called buckets and write them to the storage device, and then read the hash table from the storage device again. is there. Therefore, the performance of the data analysis process is reduced as compared with the case where no memory overflow occurs.
 そこで、サーバ装置でのメモリ溢れの発生を防ぎ、データ分析処理の性能向上を目的とする。特に,RDBMSにおけるハッシュ結合によって発生するサーバ装置のメモリ溢れを防ぎ、サーバ装置のCPUリソースの消費量や,サーバ装置とストレージ装置間のネットワークリソースの消費量を削減することなどにより、RDBMSの処理性能を向上することを目的とする。 Therefore, the purpose is to prevent the occurrence of memory overflow in the server device and improve the performance of data analysis processing. In particular, the processing performance of the RDBMS can be reduced by preventing memory overflow of the server device caused by hash join in the RDBMS and reducing the consumption of the CPU resource of the server device and the consumption of the network resource between the server device and the storage device. The purpose is to improve.
 本発明の一つの観点から、ハッシュ値に基づいて表の結合処理を実行するサーバ装置と当該サーバ装置とネットワークを介して接続されるストレージ装置とを備えるシステムが提供される。当該システムは、サーバ装置が、表の結合処理を実行し、表における結合対象とするデータを指定する第一の情報と、表におけるハッシュ値の計算対象となるデータを指定する第二の情報と、ハッシュ値を指定する第三の情報と、が含まれるコマンドを生成する第一の処理部と、コマンドをネットワークを介してストレージ装置に送信する第一の入出力部と、を有し、ストレージ装置は、複数の表が格納される格納部と、コマンドをネットワークを介して受信する第二の入出力部と、第一の情報に基づいて表を構成するデータのうち結合対象とするデータを選択し、表を構成するデータのうち第二の情報で指定されたデータのハッシュ値を算出し、第三の情報で指定されたハッシュ値を選択する、第二の処理部と、を有し、第二の入出力部は、第三の情報に基づいて選択されたハッシュ値と、当該ハッシュ値に対応し第一の情報に基づいて選択されたデータと、から構成されるハッシュ表をネットワークを介してサーバ装置に送信する。 From one aspect of the present invention, a system is provided that includes a server device that performs table join processing based on a hash value, and a storage device that is connected to the server device via a network. In the system, the server device executes table joining processing, first information for designating data to be joined in the table, and second information for designating data for hash value calculation in the table; A first processing unit for generating a command including the third information for designating a hash value, and a first input / output unit for transmitting the command to the storage device via the network, The apparatus includes a storage unit in which a plurality of tables are stored, a second input / output unit that receives a command via a network, and data to be combined among data constituting the table based on the first information. A second processing unit that selects and calculates a hash value of data designated by the second information among data constituting the table, and selects a hash value designated by the third information; The second input / output part A hash value that is selected based on the third information, and transmits the data selected based on the first information corresponding to the hash value, the hash table consists to the server apparatus via the network.
 より好ましくは、ストレージ装置は、テンポラリ領域が確保されるメモリを有し、第二の処理部は、第三の情報に未指定のハッシュ値と当該ハッシュ値に対応し第一の情報に基づいて選択されたデータと、から構成されるハッシュ表をテンポラリ領域に格納する。 More preferably, the storage device has a memory in which a temporary area is secured, and the second processing unit is based on the first information corresponding to the hash value not specified in the third information and the hash value. A hash table composed of the selected data and the selected data is stored in the temporary area.
 更に好ましくは、コマンドはテンポラリ領域の利用要否に関する第四の情報を含み、第二の処理部は、第四の情報に基づいて、第三の情報に未指定のハッシュ値と当該ハッシュ値に対応し第一の情報に基づいて選択されたデータと、から構成されるハッシュ表をテンポラリ領域に格納するか否かを決定する。 More preferably, the command includes fourth information related to whether or not the temporary area is required, and the second processing unit uses the fourth information to set an unspecified hash value in the third information and the hash value. Correspondingly, it is determined whether or not to store a hash table composed of data selected based on the first information in the temporary area.
 更に好ましくは、第二の処理部は、表を構成するデータのうち結合対象とするデータの割合である選択率を算出し、第二の入出力部は選択率をサーバ装置に送信し、第一の処理部は、選択率に基づいてテンポラリ領域の利用要否を決定する。 More preferably, the second processing unit calculates a selection rate that is a ratio of data to be combined among data constituting the table, and the second input / output unit transmits the selection rate to the server device, and One processing unit determines whether or not to use the temporary area based on the selection rate.
 本発明の別の観点によれば、ハッシュ値に基づいて表の結合処理を実行するサーバ装置とネットワークを介して接続されるストレージ装置が提供される。当該ストレージ装置は、複数の表が格納される格納部と、表における結合対象とするデータを指定する第一の情報と、表におけるハッシュ値の計算対象となるデータを指定する第二の情報と、ハッシュ値を指定する第三の情報と、が含まれるコマンドをネットワークを介してサーバ装置から受信する入出力部と、第一の情報に基づいて表を構成するデータのうち結合対象とするデータを選択し、表を構成するデータのうち第二の情報で指定されたデータのハッシュ値を算出し、第三の情報で指定されたハッシュ値を選択する、処理部と、を有し、入出力部は、第三の情報に基づいて選択されたハッシュ値と、当該ハッシュ値に対応し第一の情報に基づいて選択されたデータと、から構成されるハッシュ表をネットワークを介してサーバ装置に送信する。 According to another aspect of the present invention, there is provided a storage apparatus connected via a network to a server apparatus that executes table join processing based on a hash value. The storage device stores a plurality of tables, first information for designating data to be combined in the tables, second information for designating data for hash value calculation in the tables, , Input / output unit for receiving a command including the third information specifying the hash value from the server device via the network, and data to be combined among the data constituting the table based on the first information A processing unit that calculates a hash value of the data specified by the second information from among the data constituting the table, and selects the hash value specified by the third information. The output unit generates a hash table composed of a hash value selected based on the third information and data selected based on the first information corresponding to the hash value via the network. In To trust.
 本発明によれば、メモリ溢れの発生を防ぎ、データ分析処理の性能を向上させることが可能となる。 According to the present invention, it is possible to prevent the occurrence of memory overflow and improve the performance of data analysis processing.
本発明のシステム構成の例を示す図である。It is a figure which shows the example of the system configuration | structure of this invention. 本発明の別のシステム構成の例を示す図である。It is a figure which shows the example of another system configuration | structure of this invention. DBMSの機能の例を示す図である。It is a figure which shows the example of the function of DBMS. 表領域管理情報を例示する図である。It is a figure which illustrates table area management information. 表構造情報を例示する図である。It is a figure which illustrates table structure information. データベース統計情報を例示する図である。It is a figure which illustrates database statistical information. データベースのユーザの端末装置から受信するSQL文の例を示す図である。It is a figure which shows the example of the SQL sentence received from the terminal device of the user of a database. SQL実行結果の例を示す図である。It is a figure which shows the example of a SQL execution result. 実行プラン作成部が作成した実行プランを例示する図である。It is a figure which illustrates the execution plan which the execution plan preparation part created. 本発明におけるサーバ装置とストレージ装置間で行われる通信フローの一例を示す図である。It is a figure which shows an example of the communication flow performed between the server apparatus and storage apparatus in this invention. 外表読み込みコマンドの例を示す図である。It is a figure which shows the example of an outer table read command. 結合処理の決定の動作フローの例を示す図である。It is a figure which shows the example of the operation | movement flow of determination of a joint process. 結合方式の判断に用いられる処理コストモデルの例を示す図である。It is a figure which shows the example of the processing cost model used for judgment of a coupling | bonding system. 本発明におけるサーバ装置とストレージ装置間で行われる通信フローの一例を示す図である。It is a figure which shows an example of the communication flow performed between the server apparatus and storage apparatus in this invention. 外表第一バケット読み込みコマンドの例を示す図である。It is a figure which shows the example of an outer surface 1st bucket read command. ストレージ装置がデータの選択処理を実行する際に使用するコマンドの例を示す図である。It is a figure which shows the example of the command used when a storage apparatus performs the selection process of data. ストレージ装置がハッシュ表の作成処理を実行する際に使用するコマンドの例を示す図である。It is a figure which shows the example of the command used when a storage apparatus performs the preparation process of a hash table. ストレージ装置がハッシュ表からのデータの選択処理,ハッシュ表の一部をテンポラリ領域に格納する処理を実行する際に使用するコマンドの例を示す図である。It is a figure which shows the example of the command used when the storage apparatus performs the selection process of the data from a hash table, and the process which stores a part of hash table in a temporary area | region. コマンドを受信した場合に,ストレージ装置によって実行される処理のフローを例示する図である。It is a figure which illustrates the flow of the process performed by the storage apparatus when a command is received. データベースアシスト部の詳細を例示する図である。It is a figure which illustrates the detail of a database assist part. 図16に示すコマンドを受信した場合のデータベースアシスト部における動作フローの例を示す図である。It is a figure which shows the example of the operation | movement flow in the database assistance part at the time of receiving the command shown in FIG. 図17に示すコマンドを受信した場合のデータベースアシスト部における動作フローの例を示す図である。It is a figure which shows the example of the operation | movement flow in the database assistance part at the time of receiving the command shown in FIG. 図18に示すコマンドを受信した場合のデータベースアシスト部における動作フローの例を示す図である。It is a figure which shows the example of the operation | movement flow in the database assistance part at the time of receiving the command shown in FIG. 外表ハッシュ表の例を示す図である。It is a figure which shows the example of an outer table hash table.
 本発明は,データベースの処理をアシストするデータベースアシスト部をストレージ装置に設けて,データベースの処理を効率化する。本発明において,ストレージ装置とは,サーバ装置とは別筐体の装置の場合と,サーバ装置の内部に接続される記憶媒体の場合の両方を含む。本発明のデータベースアシスト部は,CPU装置を設置する実現方法と,ハードウェア回路を設置する実現方法と,CPU装置とハードウェア回路の両方を設置する実現方法がある。 In the present invention, a database assist unit that assists in database processing is provided in the storage device to improve database processing efficiency. In the present invention, the storage device includes both a case of a device separate from the server device and a case of a storage medium connected to the inside of the server device. The database assist unit of the present invention includes an implementation method for installing a CPU device, an implementation method for installing a hardware circuit, and an implementation method for installing both a CPU device and a hardware circuit.
 本発明のデータベースアシスト部は,リレーションからデータ分析に必要なデータを抽出し,抽出したデータのハッシュ値を計算し,ハッシュ値が特定範囲に含まれるデータをサーバ装置に送信する機能を有する。 The database assist unit of the present invention has a function of extracting data necessary for data analysis from the relation, calculating a hash value of the extracted data, and transmitting data having the hash value within a specific range to the server device.
 また,本発明のデータベースアシスト部は,リレーションからデータ分析に必要なデータを抽出し,抽出したデータのハッシュ値を計算し,ハッシュ値が指定の範囲に含まれるデータをサーバ装置に送信し,ハッシュ値が指定の範囲に含まれないデータを,ストレージ装置のテンポラリ領域に格納する機能を有する。 In addition, the database assist unit of the present invention extracts data necessary for data analysis from the relation, calculates a hash value of the extracted data, transmits data in which the hash value falls within a specified range to the server device, and It has a function of storing data whose values are not included in the specified range in a temporary area of the storage device.
 また,本発明のデータベースアシスト部は,リレーションに含まれる全てのデータのうち,データ分析に必要な割合である選択率を算出し,選択率をサーバ装置に送信する機能を有する。 Further, the database assist unit of the present invention has a function of calculating a selection rate that is a ratio necessary for data analysis out of all data included in the relation, and transmitting the selection rate to the server device.
 本発明では,上記のストレージ装置の機能を用いて結合処理を実行する方法を決定する結合方式決定部を設ける。結合方式決定部は,データベースアシスト部から受信した選択率をもとに,結合処理を実行する方法を決定する。 In the present invention, a coupling method determination unit is provided that determines a method for executing the coupling process by using the function of the storage device. The joining method determining unit determines a method for executing the joining process based on the selection rate received from the database assist unit.
 結合方式決定部は,データベースに含まれる実行計画作成部とデータベース統計情報から,ハッシュ結合の対象となるリレーションに関する情報を取得する。結合方式決定部は,データベースアシスト部から受信した選択率と,データベースから受信した情報をもとに,ストレージ装置に送信するコマンドを決定する。 The joining method determination unit acquires information related to the relation to be hash joined from the execution plan creation unit and database statistical information included in the database. The joining method determining unit determines a command to be transmitted to the storage device based on the selection rate received from the database assist unit and the information received from the database.
 結合方式決定部は,処理コストを算出するためのコストモデルを有する。結合方式決定部は,該コストモデルを用いて処理コストが最小になる方法を選択し,ストレージ装置に送信するコマンドを決定する。 The combination method determination unit has a cost model for calculating the processing cost. The coupling method determination unit uses the cost model to select a method that minimizes the processing cost and determines a command to be transmitted to the storage apparatus.
 図1は,本発明のシステム構成を例示する図である。図1に示すように,サーバ装置101の内部にストレージ装置102が設置され,サーバ装置101のCPU103とサーバ装置のメモリ104とストレージ装置102がサーバ装置101の内部ネットワーク111によって接続される。メモリ104にはDBMS105が格納される。DBMS105はCPU103によって実行されるプログラムである。ストレージ装置102の内部には,ストレージ装置102のCPU106と,ストレージ装置102のメモリ108と,データベースアシスト部107と,フラッシュメモリ110が設置され,内部ネットワーク111によって接続される。メモリ108には,ストレージ制御プログラム109が格納される。ストレージ制御プログラム109はCPU106によって実行される。図1のシステム構成においては,情報記憶媒体としてフラッシュメモリ110を想定しているが,他の情報記憶媒体を用いてもよい。フラッシュメモリ110には複数の表が格納される。 FIG. 1 is a diagram illustrating a system configuration of the present invention. As shown in FIG. 1, a storage apparatus 102 is installed inside the server apparatus 101, and the CPU 103 of the server apparatus 101, the memory 104 of the server apparatus, and the storage apparatus 102 are connected by an internal network 111 of the server apparatus 101. A DBMS 105 is stored in the memory 104. The DBMS 105 is a program executed by the CPU 103. Inside the storage apparatus 102, a CPU 106 of the storage apparatus 102, a memory 108 of the storage apparatus 102, a database assist unit 107, and a flash memory 110 are installed and connected by an internal network 111. A storage control program 109 is stored in the memory 108. The storage control program 109 is executed by the CPU 106. In the system configuration of FIG. 1, the flash memory 110 is assumed as the information storage medium, but other information storage media may be used. The flash memory 110 stores a plurality of tables.
 図2は,図1とは別のシステム構成を例示する図である。図2に示すように,本発明は,サーバ装置101とストレージ装置102が入出力インターフェース202、203を介し、外部ネットワーク201によって接続した構成において実施することも可能である。 FIG. 2 is a diagram illustrating a system configuration different from FIG. As shown in FIG. 2, the present invention can also be implemented in a configuration in which the server apparatus 101 and the storage apparatus 102 are connected by an external network 201 via input / output interfaces 202 and 203.
 図1,図2では,データベースアシスト部107をハードウェアとして実装する構成図を示した。データベースアシスト部107は,プログラムとして実装し,メモリ108に格納してCPU106で実行する実施形態も可能である。 1 and 2 show a configuration diagram in which the database assist unit 107 is implemented as hardware. The database assist unit 107 may be implemented as a program, stored in the memory 108, and executed by the CPU 106.
 図3はDBMS105の詳細を例示する図である。DBMS105は,端末装置からDBMS105を備えるサーバ装置101に対して送信されるクエリ(データベースに対する処理要求)や当該クエリに基づく実行結果などのデータの送受信を行うユーザ送受信部301,クエリの記述に用いられるSQL文の解析を行うSQL解析部302,SQL文の実行方法を決定する実行プラン作成部303,SQL文の実行を制御する実行制御部304,ストレージ装置とのデータの送受信を行うストレージ送受信部310,表の格納領域情報を格納する表領域管理情報306と,表の構造情報を格納する表構造情報307,データベースの統計情報を格納するデータベース統計情報308,ストレージ装置102から受信した選択率と処理コストモデルをもとに結合方式を決定する結合方式決定部305,データベースの性能情報を格納するデータベース性能情報309,ストレージ装置102とのデータの送受信を実行するストレージ送受信部310を有する。 FIG. 3 is a diagram illustrating details of the DBMS 105. The DBMS 105 is used for description of a query, a user transmission / reception unit 301 that transmits / receives data such as a query (processing request for a database) transmitted from the terminal device to the server apparatus 101 including the DBMS 105 and an execution result based on the query. An SQL analysis unit 302 that analyzes an SQL statement, an execution plan creation unit 303 that determines an execution method of the SQL statement, an execution control unit 304 that controls execution of the SQL statement, and a storage transmission / reception unit 310 that transmits / receives data to / from the storage device Table area management information 306 for storing table storage area information, table structure information 307 for storing table structure information, database statistical information 308 for storing database statistical information, and selection rate and processing received from the storage apparatus 102 Determining the coupling method based on the cost model 305, has a database performance information 309, the storage transceiver 310 to perform the transmission and reception of data between the storage device 102 for storing the performance information in the database.
 図4は,表領域管理情報306を例示する図である。表領域管理情報306には,表領域名401,表領域の開始アドレス402,表領域の終了アドレス403が格納される。開始アドレス402と終了アドレス403は,ストレージ装置102とのデータ入出力において使用するアドレスであり,ロジカルブロックアドレスと呼ばれる場合もある。 FIG. 4 is a diagram illustrating the table area management information 306. The table area management information 306 stores a table area name 401, a table area start address 402, and a table area end address 403. The start address 402 and the end address 403 are addresses used for data input / output with the storage apparatus 102, and may be called logical block addresses.
 図5は,表構造情報307を例示する図である。表構造情報307には,表領域名401ごとに,列名501とデータ形式502が格納される。ここに,列名501は,表を構成するカラムの名称であり,データ形式502は,列のデータ型である。 FIG. 5 is a diagram illustrating the table structure information 307. The table structure information 307 stores a column name 501 and a data format 502 for each table area name 401. Here, the column name 501 is the name of the column constituting the table, and the data format 502 is the data type of the column.
 図6は,データベース統計情報308を例示する図である。データベース統計情報308には,表領域名ごとに,行数601,平均行長602,索引有無603が格納される。ここに,行数601は表領域名401に格納されている行の個数であり,平均行長602は表領域名401に格納されている行の平均バイト数,索引有無603は,該当の表に対して索引が作成されているか否かを示す情報である。 FIG. 6 is a diagram illustrating the database statistical information 308. The database statistical information 308 stores the number of rows 601, the average row length 602, and the index presence / absence 603 for each table area name. Here, the number of rows 601 is the number of rows stored in the table area name 401, the average row length 602 is the average number of bytes stored in the table area name 401, and the index presence / absence 603 is the corresponding table. Is information indicating whether or not an index has been created.
 データベース性能情報309には,データベース105が利用可能なメモリの容量や,ストレージ装置102の読み出し性能や,ストレージ装置102の書き出し性能が記載される。 The database performance information 309 describes the memory capacity that can be used by the database 105, the read performance of the storage device 102, and the write performance of the storage device 102.
 図7はユーザ送受信部301が,データベースのユーザの端末装置から受信するSQL文の例である。図7に例示するSQL文701は,PART表とLINEITEM表を結合して,PART表のP_NAMEのカラムと,LINEITEM表のL_LINENUMBERのカラムを取り出す指示である。 FIG. 7 shows an example of an SQL sentence received by the user transmitting / receiving unit 301 from the terminal device of the database user. The SQL statement 701 illustrated in FIG. 7 is an instruction to join the PART table and the LINEITEM table to extract the P_NAME column of the PART table and the L_LINENUMBER column of the LINEITEM table.
 図8はユーザ送受信部301が送信するSQL実行結果801の例である。SQL実行結果801には,SQL文701の指示に従ってデータベースで処理を実行した結果が記載される。 FIG. 8 shows an example of the SQL execution result 801 transmitted by the user transmission / reception unit 301. In the SQL execution result 801, the result of executing the processing in the database according to the instruction of the SQL statement 701 is described.
 SQL解析部302は,ユーザ送受信部301から受信したSQL文701の文法を検査し,SQL文701を実行プラン作成部303に送信する。 The SQL analysis unit 302 inspects the grammar of the SQL statement 701 received from the user transmission / reception unit 301 and transmits the SQL statement 701 to the execution plan creation unit 303.
 実行プラン作成部303は,データベース統計情報308を参照して,受信したSQL文701の実行方法を決定する。 The execution plan creation unit 303 refers to the database statistical information 308 and determines an execution method of the received SQL statement 701.
 図9は実行プラン作成部303が作成した実行プラン901を例示する図である。実行プラン901は複数のステップ902で構成される。それぞれのステップ902を順に実行することで,SQL文701に指定された処理が実行される。 FIG. 9 is a diagram illustrating an execution plan 901 created by the execution plan creation unit 303. The execution plan 901 is composed of a plurality of steps 902. By executing each step 902 in order, the processing specified in the SQL statement 701 is executed.
 実行プラン901のステップ1では,PART表をREADしHASH表を作成する処理が指定されている。この際の選択条件は「P_SIZE=3」であり,結合列は「P_PARTKEY」,抽出列は「P_NAME」であることが記載されている。実行プラン901のステップ2では,LINEITEM表をREADしHASH表を作成する処理が指定されている。この際の選択条件は「L_SUPPKEY」であり抽出列は「L_LINENUMBER」であることが指定されている。実行プラン901のステップ3には,結合方式決定部305が結合方式を決定する処理を行うことが記載されている。実行プラン901のステップ4では,PART表とLINITEM表を結合する処理が指定されている。この際の結合条件は「P_PARTKEY=L_PARTKEY」であり,抽出列はP_NAMEとL_LINENUMBERであることが指定されている。 In step 1 of the execution plan 901, processing for reading the PART table and creating the HASH table is specified. It is described that the selection condition at this time is “P_SIZE = 3”, the combined column is “P_PARTKEY”, and the extracted column is “P_NAME”. In step 2 of the execution plan 901, processing for reading the LINEITEM table and creating the HASH table is specified. In this case, the selection condition is “L_SUPPKEY”, and the extraction sequence is specified to be “L_LINENUMBER”. Step 3 of the execution plan 901 describes that the combination method determination unit 305 performs processing for determining the combination method. In step 4 of the execution plan 901, processing for combining the PART table and the LINEITE table is specified. The join condition at this time is “P_PARTKEY = L_PARTKEY”, and it is specified that the extracted columns are P_NAME and L_LINENUMBER.
 図10は図9のSTEP1及びSTEP2を実行するために,サーバ装置101とストレージ装置102の間で行われる通信を示すフロー図である。外表読み込みコマンド1001は,外表が格納されているアドレス,選択条件,ハッシュ値を検索するカラムの指定,カラムの抽出条件を含む。コマンド1001や他のコマンドは実行制御部304により生成される。図11は,外表読み込みコマンド1001を例示する図である。開始アドレス1101と終了アドレス1102は,表領域管理情報306からPART表が格納されているアドレスを参照することで決定する。選択条件1103は外表の選択条件「P_SIZE=3」を示しており,行データの先頭から123バイト目から131バイト目を「3」と比較することを示している。ハッシュ値を計算するカラム1104は,行データの0バイト目から7バイト目でハッシュ値を計算することを示している。抽出条件1105は,行データの8バイト目から63バイト目を抽出することを示している。 FIG. 10 is a flowchart showing communication performed between the server apparatus 101 and the storage apparatus 102 in order to execute STEP1 and STEP2 of FIG. The outer table read command 1001 includes an address where the outer table is stored, a selection condition, a column specification for retrieving a hash value, and a column extraction condition. The command 1001 and other commands are generated by the execution control unit 304. FIG. 11 is a diagram illustrating an outer table read command 1001. The start address 1101 and the end address 1102 are determined by referring to the address where the PART table is stored from the table area management information 306. The selection condition 1103 indicates the selection condition “P_SIZE = 3” of the outer table, and indicates that the 123rd to 131st bytes from the top of the row data are compared with “3”. A column 1104 for calculating a hash value indicates that a hash value is calculated from the 0th byte to the 7th byte of the row data. The extraction condition 1105 indicates that the 8th to 63rd bytes of the row data are extracted.
 コマンドを受信したストレージ装置102は,データ選択1002とハッシュ値計算1003を実行して,ハッシュ値と当該ハッシュ値に対応し抽出条件1105で抽出されたデータとから構成される外表ハッシュ表と選択率の送信1004を実行する。送信1004によって受信したデータはメモリ104に格納される。図24に外表ハッシュ表の例では,結合列ハッシュ値はP_PARTKEYから算出されたハッシュ値が格納され,抽出されたデータには,該当行のP_NAMEの値が格納される。選択率とは、表に含まれる全ての行(又はデータ)のうち、結合の対象となる行(又はデータ)の割合、即ち、表に含まれる全ての行のうち選択条件1103に合致する行の割合のことをいう。ストレージ装置102の動作については,図16以降で説明する。 The storage apparatus 102 that has received the command executes the data selection 1002 and the hash value calculation 1003 to select the outer table hash table and the selection rate that are configured by the hash value and the data extracted by the extraction condition 1105 corresponding to the hash value. Transmission 1004 is executed. Data received by transmission 1004 is stored in memory 104. In the example of the outer table hash table in FIG. 24, the hash value calculated from P_PARTKEY is stored as the join column hash value, and the value of P_NAME of the corresponding row is stored in the extracted data. The selection rate is the ratio of rows (or data) to be combined among all rows (or data) included in the table, that is, rows that meet the selection condition 1103 among all the rows included in the table. It means the ratio. The operation of the storage apparatus 102 will be described with reference to FIG.
 内表読み込みコマンド1211は,内表が格納されているアドレス,選択条件,ハッシュ値を検索するカラムの指定,カラムの抽出条件を含む。コマンドを受信したストレージ装置102は,データ選択1212とハッシュ値計算1213を実行して,外表ハッシュ表と選択率の送信1214を実行する。送信1214によって受信したデータはメモリ104に格納される。ストレージ装置102の動作については,図16以降で説明する。 The inner table read command 1211 includes an address where the inner table is stored, a selection condition, a column specification for retrieving a hash value, and a column extraction condition. The storage apparatus 102 that has received the command executes data selection 1212 and hash value calculation 1213, and executes transmission 1214 of the outer table hash table and the selection rate. Data received by transmission 1214 is stored in memory 104. The operation of the storage apparatus 102 will be described with reference to FIG.
 ストレージ装置102から内表ハッシュ表と選択率を受信したサーバ装置101は,結合処理の決定1215を実行する。 The server apparatus 101 that has received the inner table hash table and the selection rate from the storage apparatus 102 executes the determination 1215 of the join process.
 図12は,結合処理の決定1215を実行する結合方式決定部305の動作を示すフローチャートである。結合方式決定部305は,判断1202において,サーバ装置のメモリ溢れが発生するか否かを判定する。これは,データベース性能情報309に記載されたデータベースが利用できるメモリ容量と,外表ハッシュ表と選択率の送信1004で受信したハッシュ表のサイズを比較することで判断する。メモリ溢れが発生すると判定した場合、結合方式決定部305は,処理1203において,バケット数を算出する。バケット数とは,ハッシュ表の容量が,DBMS105が利用可能なメモリ容量の何倍かを示す数値である。バケット数Xは,DBMS105が利用可能なメモリ容量Mと外表ハッシュ表のサイズHを用いて,X=↑H/M↑で計算される。ここに,↑・↑は整数値への繰り上げを表す。メモリ溢れが発生しないと判定した場合はSTEP3の処理を終了し、受信した外表ハッシュ表と内表ハッシュ表を用いて結合処理1413を行う。 FIG. 12 is a flowchart showing the operation of the combination method determination unit 305 that executes the determination 1215 of the combination process. In the determination 1202, the combining method determination unit 305 determines whether or not a memory overflow of the server device occurs. This is determined by comparing the memory capacity that can be used by the database described in the database performance information 309 with the size of the hash table received in the transmission 1004 of the outer table hash table and the selectivity. If it is determined that a memory overflow occurs, the combining method determination unit 305 calculates the number of buckets in processing 1203. The number of buckets is a numerical value indicating how many times the memory capacity of the hash table can be used by the DBMS 105. The number of buckets X is calculated by X = ↑ H / M ↑ using the memory capacity M that can be used by the DBMS 105 and the size H of the outer table hash table. Here, ↑ and ↑ represent carry up to integer values. When it is determined that the memory overflow does not occur, the processing of STEP 3 is ended, and the join processing 1413 is performed using the received outer table hash table and inner table hash table.
 結合方式の決定1204において,結合方式決定部305は,処理コストモデルを用いて結合方式を決定する。図13は,結合方式判断部305が用いる処理コストモデル1301の例である。処理コストモデル1301には,結合方式1302と,READ量1303とWrite量1304が記載される。結合方式1302としては,外表と内表に関して,テンポラリ領域を使用するか使用しないかの選択を行う。Read量は,該当方式を選択した場合に実行されるストレージ装置からReadするデータ量である。Write量は,該当方式を選択した場合に実行されるストレージ装置へのWrite量である。 In the combination method determination 1204, the combination method determination unit 305 determines the combination method using the processing cost model. FIG. 13 is an example of the processing cost model 1301 used by the combination method determination unit 305. The processing cost model 1301 describes a combination method 1302, a READ amount 1303, and a Write amount 1304. As the join method 1302, selection is made as to whether or not to use a temporary area for the outer table and the inner table. The Read amount is the amount of data to be read from the storage apparatus that is executed when the corresponding method is selected. The amount of write is the amount of write to the storage device that is executed when the corresponding method is selected.
 図13において,Aは外表のサイズ,Bは内表のサイズを表す。これらは,表領域管理情報306を参照することで決定できる。Xはバケット数である。αは外表ハッシュ表と選択率の送信1004によって受信した外表の選択率である。βは内表ハッシュ表と選択率の送信1204によって受信した内表の選択率である。 In FIG. 13, A represents the size of the outer table, and B represents the size of the inner table. These can be determined by referring to the table area management information 306. X is the number of buckets. α is the selectivity of the outer table received by the transmission 1004 of the outer table hash table and the selectivity. β is a selectivity of the inner table received by the transmission 1204 of the inner table hash table and the selectivity.
 結合方式決定部305,図13の処理コストモデル1301と,データベース性能情報308に記載されたストレージ装置102の読み出し性能や,ストレージ装置102の書き出し性能を参照して,処理コストが最小になる方式を選択する。例えば,読み出し性能と書き出し性能の比が1対10であれば,処理コストモデル1301のRead量に1を乗じた値と,処理コストモデル1301のWrite量に10を乗じた値を合算し,結合方式の処理コストを算出する。 A method that minimizes the processing cost by referring to the combination method determining unit 305, the processing cost model 1301 of FIG. 13 and the reading performance of the storage apparatus 102 and the writing performance of the storage apparatus 102 described in the database performance information 308. select. For example, if the ratio between the read performance and the write performance is 1:10, the value obtained by multiplying the read amount of the processing cost model 1301 by 1 and the value obtained by multiplying the write amount of the processing cost model 1301 by 10 are combined and combined. The processing cost of the method is calculated.
 図14は図9のステップ4を実行するために,サーバ装置101とストレージ装置102の間で行われる通信を示すフロー図である。サーバ装置101は,外表第一バケット読み込みコマンド1401をサーバ装置102に送信する。 FIG. 14 is a flowchart showing communication performed between the server apparatus 101 and the storage apparatus 102 in order to execute Step 4 of FIG. The server apparatus 101 transmits an outer table first bucket read command 1401 to the server apparatus 102.
 図15は外表第一バケット読み込みコマンド1401の詳細を事例する図である。外表第一バケット読み込みコマンドには,外表の開始アドレス1501,外表の終了アドレス1502,外表の選択条件1503,ハッシュ値を計算するカラム1504,抽出条件1505,テンポラリ領域格納有無1506,テンポラリ領域開始アドレス1507,テンポラリ領域終了アドレス1508,ハッシュ値下限1509,ハッシュ値上限1510を記載する。 FIG. 15 is a diagram exemplifying details of the outer table first bucket read command 1401. The outer table first bucket read command includes an outer table start address 1501, an outer table end address 1502, an outer table selection condition 1503, a column 1504 for calculating a hash value, an extraction condition 1505, temporary area storage presence / absence 1506, and a temporary area start address 1507. , Temporary area end address 1508, hash value lower limit 1509, hash value upper limit 1510 are described.
 結合方式決定部305がテンポラリ領域使用ありを選択した場合は,テンポラリ領域格納有無1505にありを記載し,結合方法決定部305がテンポラリ領域使用なしを選択した場合には,テンポラリ領域格納有無1505になしを記載する。 When the combination method determination unit 305 selects the use of temporary area, the presence of temporary area storage 1505 is described. When the combination method determination unit 305 selects the use of temporary area storage, the temporary area storage presence / absence 1505 is displayed. Enter none.
 外表第一バケット読み込みコマンド1401を受信したストレージ装置102は,データ選択1402,ハッシュ値計算1403,ハッシュ値選択1404,テンポラリ領域格納有無1506がありの場合はテンポラリ領域にハッシュ表を格納1405の動作を行う。ハッシュ値選択1404では,外表第一バケット読み込みコマンド1401に記載されたハッシュ値下限1509とハッシュ値上限1510に従い,この範囲のデータのハッシュ表はサーバ装置101に送信する(1406)。ハッシュ値の範囲に含まれないデータのハッシュ表に関しては,テンポラリ領域格納有無1505にありが記載されている場合にはテンポラリ領域に格納し,テンポラリ領域格納有無1505になしが記載されている場合には,テンポラリ領域に格納しない。 The storage apparatus 102 that has received the outer-table first bucket read command 1401 performs the operation 1405 of storing the hash table in the temporary area if there is data selection 1402, hash value calculation 1403, hash value selection 1404, temporary area storage presence / absence 1506. Do. In the hash value selection 1404, the hash table of data in this range is transmitted to the server apparatus 101 in accordance with the hash value lower limit 1509 and the hash value upper limit 1510 described in the outer table first bucket read command 1401 (1406). For a hash table of data not included in the hash value range, if there is a description in the temporary area storage presence / absence 1505, it is stored in the temporary area, and if there is none in the temporary area storage presence / absence 1505, Is not stored in the temporary area.
 サーバ装置101は,内表第一バケット読み込みコマンド1407をストレージ装置に送信する。内表第一バケット読み込みコマンド1407の詳細は,外表第一バケット読み込みコマンド1401と同様である。結合方式判断部305がテンポラリ領域使用ありを選択した場合は,テンポラリ領域格納有無1505にありを記載し,結合方法判断部305がテンポラリ領域使用なしを選択した場合には,テンポラリ領域格納有無1505になしを記載する。 The server apparatus 101 transmits an inner table first bucket read command 1407 to the storage apparatus. Details of the inner-table first bucket read command 1407 are the same as those of the outer-table first bucket read command 1401. If the combination method determination unit 305 selects the use of temporary area, the presence / absence of temporary area storage 1505 is described. If the combination method determination unit 305 selects the absence of temporary area use, the temporary area storage presence / absence 1505 is displayed. Enter none.
 サーバ装置101は,外表ハッシュ表と内表ハッシュ表を用いて結合処理1413を行う。ハッシュ表を用いた結合処理に関しては,特許文献2などに記載されている。 The server apparatus 101 performs a join process 1413 using the outer table hash table and the inner table hash table. A join process using a hash table is described in Patent Document 2 and the like.
 以降,サーバ装置101は,バケットの個数だけ外表と内表の読み込みを繰り返す。但し,1回目の表の読み込みで,テンポラリ領域格納有無1505にありを指定した場合には,図15に示したコマンドの開始アドレス1501と終了アドレス1502にテンポラリ領域のアドレスを指定する。外表や内表からハッシュ表を作成する必要はなく,テンポラリ領域に格納されているハッシュ表から必要な情報を取得することができる。 Thereafter, the server apparatus 101 repeats reading of the outer table and the inner table by the number of buckets. However, when the temporary table storage presence / absence 1505 is specified in the first reading of the table, the addresses of the temporary areas are specified as the start address 1501 and end address 1502 of the command shown in FIG. There is no need to create a hash table from the outer table or the inner table, and the necessary information can be acquired from the hash table stored in the temporary area.
 ストレージ装置102は,一般に,データのReadやWriteの処理を実行する。データのReadとはフラッシュメモリ110に格納されたデータをサーバ装置101に送信する処理である。データのWriteとは,サーバ装置101から受信したデータをフラッシュメモリ101に格納する処理である。 The storage apparatus 102 generally executes data read and write processing. Data read is a process of transmitting data stored in the flash memory 110 to the server apparatus 101. Data write is a process of storing data received from the server apparatus 101 in the flash memory 101.
 データのReadとWriteの処理に加えて,本発明のストレージ装置102は,データの選択処理,ハッシュ表の作成処理,ハッシュ表からのデータの選択処理,および,ハッシュ表の一部をテンポラリ領域に格納する処理,を実行する機能を備える。 In addition to data read and write processing, the storage apparatus 102 of the present invention uses data selection processing, hash table creation processing, data selection processing from a hash table, and a portion of the hash table as a temporary area. A function for executing the storing process is provided.
 これらの機能を実行するために,サーバ装置101がストレージ装置102に送信するコマンドの例を図16,図17,図18に示す。図16は,ストレージ装置102がデータの選択処理を実行する際に使用するコマンドの例である。図16に示すように,コマンドには,オペレーションコード1601,選択対象データの開始アドレス1602,選択対象データの終了アドレス1603,選択条件1604,列を抽出するための列抽出条件1605,および,結果を格納するためのサーバ装置101のメモリアドレスである結果格納メモリアドレス1606が含まれる。 Examples of commands that the server apparatus 101 transmits to the storage apparatus 102 in order to execute these functions are shown in FIG. 16, FIG. 17, and FIG. FIG. 16 shows an example of a command used when the storage apparatus 102 executes data selection processing. As shown in FIG. 16, the command includes an operation code 1601, a start address 1602 of selection target data 1602, an end address 1603 of selection target data 1603, a selection condition 1604, a column extraction condition 1605 for extracting a column, and a result. A result storage memory address 1606 which is a memory address of the server apparatus 101 for storing is included.
 図17は,ストレージ装置102がハッシュ表の作成処理を実行する際に使用するコマンドの例である。図17に示すように,コマンドには,オペレーションコード1701,選択対象データの開始アドレス1702,選択対象データの終了アドレス1703,選択条件1704,ハッシュ値を計算するカラムを指定するハッシュ値を計算するカラム1705,列を抽出するための列抽出条件1706,および,結果を格納するためのサーバ装置101のメモリアドレスである結果格納メモリアドレス1706が含まれる。 FIG. 17 shows an example of a command used when the storage apparatus 102 executes hash table creation processing. As shown in FIG. 17, the command includes an operation code 1701, a start address 1702 for selection target data, an end address 1703 for selection target data, a selection condition 1704, a column for calculating a hash value for designating a column for calculating a hash value. 1705, a column extraction condition 1706 for extracting a column, and a result storage memory address 1706 that is a memory address of the server apparatus 101 for storing the result.
 図18は,ストレージ装置102がハッシュ表からのデータの選択処理,および,ハッシュ表の一部をテンポラリ領域に格納する処理を実行する際に使用するコマンドの例である。図18に示すように,コマンドには,オペレーションコード1812,選択対象データの開始アドレス1801,選択対象データの終了アドレス1802,選択条件1803,ハッシュ値を計算するカラムを指定するハッシュ値を計算するカラム1804,列を抽出するための列抽出条件1805,テンポラリ領域への格納をするかしないかを指定するテンポラリ領域格納有無1806,テンポラリ領域開始アドレス1807,テンポラリ領域終了アドレス1808,サーバ装置101に送信するハッシュ値の下限を指定するハッシュ値下限1809,サーバ装置101に送信するハッシュ値の上限を指定するハッシュ値上限1810,および,結果を格納するためのサーバ装置101のメモリアドレスである結果格納メモリアドレス1811が含まれる。 FIG. 18 is an example of commands used when the storage apparatus 102 executes data selection processing from the hash table and processing for storing a part of the hash table in the temporary area. As shown in FIG. 18, the command includes an operation code 1812, a start address 1801 of selection target data 1801, an end address 1802 of selection target data 1802, a selection condition 1803, and a column for calculating a hash value for designating a column for calculating a hash value. 1804, column extraction condition 1805 for extracting a column, temporary area storage presence / absence 1806 specifying whether or not to store in the temporary area, temporary area start address 1807, temporary area end address 1808, and transmitted to the server apparatus 101 Hash value lower limit 1809 for specifying the lower limit of the hash value, hash value upper limit 1810 for specifying the upper limit of the hash value to be transmitted to the server apparatus 101, and result storage memory address that is the memory address of the server apparatus 101 for storing the result 181 It is included.
 サーバ装置101からコマンドを受信したストレージ装置102はコマンドの内容に従った処理を実行する。コマンドがRead処理の場合,ストレージ制御プログラム109はコマンドに指定されたデータをフラッシュメモリ110から読み込み,サーバ装置101に送信する。コマンドがWrite処理の場合,ストレージ制御プログラム109は,サーバから受信したデータをフラッシュメモリ110に格納する。 The storage apparatus 102 that has received the command from the server apparatus 101 executes processing according to the content of the command. When the command is a read process, the storage control program 109 reads the data specified by the command from the flash memory 110 and transmits it to the server apparatus 101. If the command is a write process, the storage control program 109 stores the data received from the server in the flash memory 110.
 図19は,ストレージ装置102がサーバ装置101からコマンドを受信した場合に,ストレージ制御プログラム109によって実行される処理のフローを例示する図である。ストレージ制御プログラム109は,判断1902において,コマンドがRead処理またはWrite処理かの判断を行う。コマンドがRead処理またはWrite処理の場合、ストレージ制御プログラム109は,処理1903においてRead処理またはWrite処理を実行する。コマンドがRead処理またはWrite処理ではない場合、ストレージ制御プログラム109は,処理1904において,コマンドをデータベースアシスト部107に送信する。ストレージ制御プログラム109は,処理1905において,コマンドに指定されたデータをデータベースアシスト部107に送信する。ストレージ制御プログラム109は,処理1906において,データベースアシスト部107に対して処理開始の指示を送信する。 FIG. 19 is a diagram illustrating a flow of processing executed by the storage control program 109 when the storage apparatus 102 receives a command from the server apparatus 101. In the determination 1902, the storage control program 109 determines whether the command is a read process or a write process. When the command is Read processing or Write processing, the storage control program 109 executes Read processing or Write processing in processing 1903. If the command is not Read processing or Write processing, the storage control program 109 transmits the command to the database assist unit 107 in processing 1904. In processing 1905, the storage control program 109 transmits data specified in the command to the database assist unit 107. In process 1906, the storage control program 109 transmits a process start instruction to the database assist unit 107.
 図20はデータベースアシスト部107の詳細を例示する図である。データベースアシスト部107は,ストレージ制御プログラム109から受信したデータを格納する入力データ格納メモリ2001,ストレージ制御プログラム109から受信したコマンドを格納するコマンド格納メモリ2002,コマンドに記載された選択条件に従ってデータを選択する行データ選択部2003,行データ選択部2003が選択したデータの割合を算出する選択率算出部2004,コマンドに記載された列抽出条件に従ってデータから列データを抽出する列データ選択部2005,コマンドに指定された列のハッシュ値を算出するハッシュ値算出部2006,コマンドに記載された範囲のハッシュ値を選択するハッシュ値選択部2007,サーバ装置101に送信するデータを格納するサーバ送信データ格納メモリ2008,テンポラリ領域が確保されるテンポラリ領域格納メモリ2009,処理終了を通知する処理終了通知部2010を有する。 FIG. 20 is a diagram illustrating details of the database assist unit 107. The database assist unit 107 selects data according to the selection condition described in the input data storage memory 2001 for storing data received from the storage control program 109, the command storage memory 2002 for storing commands received from the storage control program 109, and the commands. A row data selection unit 2003, a column data selection unit 2005 that extracts column data from data in accordance with a column extraction condition described in the command, a selection rate calculation unit 2004 that calculates a ratio of data selected by the row data selection unit 2003 A hash value calculation unit 2006 that calculates a hash value of a column specified in the command, a hash value selection unit 2007 that selects a hash value in a range described in the command, and a server transmission data storage memory that stores data to be transmitted to the server device 101 200 Includes a processing end notification unit 2010 notifies the temporary area storage memory 2009 temporary area is secured, the process ends.
 図21はデータベースアシスト部107が,ストレージ制御プログラム109から図16に示すコマンドを受信した場合の動作を示すフローチャートである。処理2102において,行データ選択部2003は入力データ格納メモリ2001からデータを読み込む。処理2103において,行データ選択部2003は選択条件に従い,処理2102で読み込んだデータから選択したデータを列抽出部2005に送信する。処理2104において,列抽出部2005は列抽出条件に従い,列データを抽出し,サーバ送信データ格納メモリ2008に格納する。処理2105において,行データ選択部2003は読み込んだデータの個数と,選択したデータの個数を選択率算出部2004に送信する。処理2106において選択率算出部2004は選択率を算出し,サーバ送信データ格納メモリ2008に格納する。ここに,選択率は,選択したデータの個数を読み込んだデータの個数で除算して得られた値である。処理2107において,処理終了通知部2010がストレージ制御プログラム109に処理終了を通知する。処理終了の通知を受けたストレージ制御プログラム109は,サーバ送信データ格納メモリ2008に格納されたデータをサーバ装置101に送信する。 FIG. 21 is a flowchart showing the operation when the database assist unit 107 receives the command shown in FIG. 16 from the storage control program 109. In process 2102, the row data selection unit 2003 reads data from the input data storage memory 2001. In processing 2103, the row data selection unit 2003 transmits data selected from the data read in processing 2102 to the column extraction unit 2005 according to the selection condition. In processing 2104, the column extraction unit 2005 extracts column data according to the column extraction condition and stores it in the server transmission data storage memory 2008. In processing 2105, the row data selection unit 2003 transmits the number of read data and the number of selected data to the selection rate calculation unit 2004. In processing 2106, the selection rate calculation unit 2004 calculates the selection rate and stores it in the server transmission data storage memory 2008. Here, the selection rate is a value obtained by dividing the number of selected data by the number of read data. In process 2107, the process end notification unit 2010 notifies the storage control program 109 of the process end. The storage control program 109 that has received the notification of the completion of processing transmits the data stored in the server transmission data storage memory 2008 to the server apparatus 101.
 図22はデータベースアシスト部107が,ストレージ制御プログラム109から図17に示すコマンドを受信した場合の動作を示すフローチャートである。処理2202において,行データ選択部2003は入力データ格納メモリ2001からデータを読み込む。処理2203において,行データ選択部2003は選択条件に従い,処理2202で読み込んだデータから選択したデータを列抽出部2005に送信する。処理2204において,列抽出部2005は列抽出条件に従い,列データを抽出し,ハッシュ値算出部2006に送信する。処理2205において,行データ選択部2003は読み込んだデータの個数と,選択したデータの個数を選択率算出部2004に送信する。処理2206において選択率算出部2004は選択率を算出し,サーバ送信データ格納メモリ2008に格納する。処理2207において,ハッシュ値算出部2006はハッシュ値を算出する列の指定に従いハッシュ値を算出し,算出したハッシュ値と列データをサーバ送信データ格納メモリ2008に格納する。ここにハッシュ値の算出とは,列のデータをあらかじめ設定された値で除算し剰余を算出する演算である。処理2208では,処理終了通知部2010がストレージ制御プログラム109に処理終了を通知する。処理終了の通知を受けたストレージ制御プログラム109は,サーバ送信データ格納メモリ2008に格納されたデータをサーバ装置101に送信する。 FIG. 22 is a flowchart showing the operation when the database assist unit 107 receives the command shown in FIG. 17 from the storage control program 109. In processing 2202, the row data selection unit 2003 reads data from the input data storage memory 2001. In processing 2203, the row data selection unit 2003 transmits data selected from the data read in processing 2202 to the column extraction unit 2005 according to the selection condition. In processing 2204, the column extraction unit 2005 extracts column data according to the column extraction condition and transmits the column data to the hash value calculation unit 2006. In processing 2205, the row data selection unit 2003 transmits the number of read data and the number of selected data to the selection rate calculation unit 2004. In processing 2206, the selection rate calculation unit 2004 calculates the selection rate and stores it in the server transmission data storage memory 2008. In processing 2207, the hash value calculation unit 2006 calculates a hash value in accordance with the designation of the column for calculating the hash value, and stores the calculated hash value and column data in the server transmission data storage memory 2008. Here, the calculation of the hash value is an operation for dividing the column data by a preset value and calculating a remainder. In process 2208, the process end notification unit 2010 notifies the storage control program 109 of the process end. The storage control program 109 that has received the notification of the completion of processing transmits the data stored in the server transmission data storage memory 2008 to the server apparatus 101.
 図23はデータベースアシスト部107が,ストレージ制御プログラム109から図18に示すコマンドを受信した場合の動作を示すフローチャートである。処理2302において,行データ選択部2003は入力データ格納メモリ2001からデータを読み込む。処理2303において,行データ選択部2003は選択条件に従い,処理2302で読み込んだデータから選択したデータを列抽出部2005に送信する。処理2304において,列抽出部2005は列抽出条件に従い,列データを抽出し,ハッシュ値算出部2006に送信する。処理2305において,行データ選択部2003は読み込んだデータの個数と,選択したデータの個数を選択率算出部2004に送信する。処理2306において選択率算出部2004は選択率を算出し,サーバ送信データ格納メモリ2008に格納する。処理2307において,ハッシュ値算出部2006はハッシュ値を算出する列の指定に従いハッシュ値を算出し,算出したハッシュ値と列データをハッシュ値算出部2007に送信する。ここにハッシュ値の算出とは,列のデータをあらかじめ設定された値で除算し剰余を算出する演算である。処理2308において,ハッシュ値算出部は,ハッシュ値の上限と下限に従いサーバ装置101に送信するデータとハッシュ値をサーバ送信データ格納メモリ2008に格納し,サーバ装置101に送信しないデータとハッシュ値をテンポラリ領域格納メモリ2009に格納する。処理2309では,処理終了通知部2010がストレージ制御プログラム109に処理終了を通知する。処理終了の通知を受けたストレージ制御プログラム109は,サーバ送信データ格納メモリ2008に格納されたデータをサーバ装置101に送信する。また、ストレージ装置102がサーバ装置101から受信したコマンドのテンポラリ領域格納有無1806に「あり」の指定が有る場合は、処理終了の通知を受けたストレージ制御プログラム109は,テンポラリ領域格納メモリ2009のテンポラリ領域開始アドレス1807とテンポラリ領域終了アドレス1808に指定されたアドレスの範囲に格納されたデータを送信する。 FIG. 23 is a flowchart showing the operation when the database assist unit 107 receives the command shown in FIG. 18 from the storage control program 109. In processing 2302, the row data selection unit 2003 reads data from the input data storage memory 2001. In processing 2303, the row data selection unit 2003 transmits data selected from the data read in processing 2302 to the column extraction unit 2005 according to the selection condition. In processing 2304, the column extraction unit 2005 extracts column data according to the column extraction condition and transmits the column data to the hash value calculation unit 2006. In processing 2305, the row data selection unit 2003 transmits the number of read data and the number of selected data to the selection rate calculation unit 2004. In processing 2306, the selection rate calculation unit 2004 calculates the selection rate and stores it in the server transmission data storage memory 2008. In processing 2307, the hash value calculation unit 2006 calculates a hash value in accordance with the designation of the column for calculating the hash value, and transmits the calculated hash value and column data to the hash value calculation unit 2007. Here, the calculation of the hash value is an operation for dividing the column data by a preset value and calculating a remainder. In processing 2308, the hash value calculation unit stores the data to be transmitted to the server apparatus 101 and the hash value in the server transmission data storage memory 2008 according to the upper and lower limits of the hash value, and temporarily stores the data to be transmitted to the server apparatus 101 and the hash value. Store in the area storage memory 2009. In process 2309, the process end notification unit 2010 notifies the storage control program 109 of the process end. The storage control program 109 that has received the notification of the completion of processing transmits the data stored in the server transmission data storage memory 2008 to the server apparatus 101. When the storage device 102 has received “not” in the temporary area storage presence / absence 1806 of the command received from the server apparatus 101, the storage control program 109 that has received the processing completion notification stores the temporary area storage memory 2009 in the temporary area storage memory 2009. Data stored in the range of addresses designated by the area start address 1807 and the temporary area end address 1808 is transmitted.
101…サーバ装置
102…ストレージ装置
103…CPU
104…メモリ
105…データベース
106…CPU
107…データベースアシスト部
108…メモリ
109…ストレージ制御プログラム
110…フラッシュメモリ
111…内部ネットワーク
101 ... Server device 102 ... Storage device 103 ... CPU
104 ... Memory 105 ... Database 106 ... CPU
107: Database assist unit 108 ... Memory 109 ... Storage control program 110 ... Flash memory 111 ... Internal network

Claims (13)

  1.  ハッシュ値に基づいて表の結合処理を実行するサーバ装置と該サーバ装置とネットワークを介して接続されるストレージ装置とを備えるシステムであって、
     前記サーバ装置は、
     前記表の結合処理を実行し、前記表における結合対象とするデータを指定する第一の情報と、前記表におけるハッシュ値の計算対象となるデータを指定する第二の情報と、前記ハッシュ値を指定する第三の情報と、が含まれるコマンドを生成する第一の処理部と、
     前記コマンドを前記ネットワークを介して前記ストレージ装置に送信する第一の入出力部と、を有し、
     前記ストレージ装置は、
     複数の表が格納される格納部と、
     前記コマンドを前記ネットワークを介して受信する第二の入出力部と、
     前記第一の情報に基づいて前記表を構成するデータのうち結合対象とするデータを選択し、前記表を構成するデータのうち前記第二の情報で指定されたデータの前記ハッシュ値を算出し、前記第三の情報で指定された前記ハッシュ値を選択する、第二の処理部と、を有し、
     前記第二の入出力部は、前記第三の情報に基づいて選択された前記ハッシュ値と、該ハッシュ値に対応し前記第一の情報に基づいて選択されたデータと、から構成されるハッシュ表を前記ネットワークを介して前記サーバ装置に送信する、ことを特徴とするシステム。
    A system comprising a server device that executes table join processing based on a hash value, and a storage device connected to the server device via a network,
    The server device
    The table join process is executed, first information for designating data to be joined in the table, second information for designating data to be calculated for hash values in the table, and the hash value A first processing unit for generating a command including the third information to be specified;
    A first input / output unit that transmits the command to the storage device via the network;
    The storage device
    A storage unit for storing a plurality of tables;
    A second input / output unit for receiving the command via the network;
    Based on the first information, the data to be combined is selected from the data constituting the table, and the hash value of the data specified by the second information among the data constituting the table is calculated. A second processing unit that selects the hash value specified by the third information, and
    The second input / output unit includes a hash value selected from the hash value selected based on the third information and data selected based on the first information corresponding to the hash value. A system that transmits a table to the server device via the network.
  2.  請求項1に記載のシステムであって、
     前記ストレージ装置は、テンポラリ領域が確保されるメモリを有し、
     前記第二の処理部は、前記第三の情報に未指定の前記ハッシュ値と該ハッシュ値に対応し前記第一の情報に基づいて選択されたデータと、から構成されるハッシュ表を前記テンポラリ領域に格納する、ことを特徴とするシステム。
    The system of claim 1, comprising:
    The storage device has a memory in which a temporary area is secured,
    The second processing unit generates a temporary table including the hash value not specified in the third information and the data corresponding to the hash value and selected based on the first information. A system characterized by storing in an area.
  3.  請求項2に記載のシステムであって、
     前記コマンドは前記テンポラリ領域の利用要否に関する第四の情報を含み、
     前記第二の処理部は、前記第四の情報に基づいて、前記第三の情報に未指定の前記ハッシュ値と該ハッシュ値に対応し前記第一の情報に基づいて選択されたデータと、から構成されるハッシュ表を前記テンポラリ領域に格納するか否かを決定する、ことを特徴とするシステム。
    The system of claim 2, comprising:
    The command includes fourth information related to the necessity of using the temporary area,
    The second processing unit, based on the fourth information, the hash value not specified in the third information and the data selected based on the first information corresponding to the hash value, Determining whether or not to store a hash table composed of the temporary table in the temporary area.
  4.  請求項3に記載のシステムであって、
     前記第二の処理部は、前記表を構成するデータのうち結合対象とするデータの割合である選択率を算出し、
     前記第二の入出力部は前記選択率を前記サーバ装置に送信し、
     前記第一の処理部は、前記選択率に基づいて前記テンポラリ領域の利用要否を決定する、
    ことを特徴とするシステム。
    The system according to claim 3, wherein
    The second processing unit calculates a selection rate that is a ratio of data to be combined among data constituting the table,
    The second input / output unit transmits the selection rate to the server device,
    The first processing unit determines whether to use the temporary area based on the selection rate.
    A system characterized by that.
  5.  ハッシュ値に基づいて表の結合処理を実行するサーバ装置とネットワークを介して接続されるストレージ装置であって、
     複数の表が格納される格納部と、
     前記表における結合対象とするデータを指定する第一の情報と、前記表における前記ハッシュ値の計算対象となるデータを指定する第二の情報と、前記ハッシュ値を指定する第三の情報と、が含まれるコマンドを前記ネットワークを介して前記サーバ装置から受信する入出力部と、
     前記第一の情報に基づいて前記表を構成するデータのうち結合対象とするデータを選択し、前記表を構成するデータのうち前記第二の情報で指定されたデータのハッシュ値を算出し、前記第三の情報で指定された前記ハッシュ値を選択する、処理部と、を有し、
     前記入出力部は、前記第三の情報に基づいて選択された前記ハッシュ値と、該ハッシュ値に対応し前記第一の情報に基づいて選択されたデータと、から構成されるハッシュ表を前記ネットワークを介して前記サーバ装置に送信する、ことを特徴とするストレージ装置。
    A storage device connected via a network to a server device that performs table join processing based on a hash value,
    A storage unit for storing a plurality of tables;
    First information for designating data to be combined in the table, second information for designating data for calculation of the hash value in the table, third information for designating the hash value, An input / output unit that receives a command including the command from the server device via the network;
    Based on the first information, select the data to be combined among the data constituting the table, calculate the hash value of the data specified by the second information among the data constituting the table, A processing unit that selects the hash value designated by the third information,
    The input / output unit includes a hash table composed of the hash value selected based on the third information and data selected based on the first information corresponding to the hash value. A storage apparatus characterized by transmitting to the server apparatus via a network.
  6.  請求項5に記載のストレージ装置であって、
     テンポラリ領域が確保されるメモリを有し、
     前記処理部は、前記第三の情報に未指定の前記ハッシュ値と該ハッシュ値に対応し前記第一の情報に基づいて選択されたデータと、から構成されるハッシュ表を前記テンポラリ領域に格納する、ことを特徴とするストレージ装置。
    The storage apparatus according to claim 5,
    It has a memory where a temporary area is secured,
    The processing unit stores, in the temporary area, a hash table including the hash value not specified in the third information and data selected based on the first information corresponding to the hash value. A storage device characterized by that.
  7.  請求項6に記載のストレージ装置であって、
     前記コマンドは前記テンポラリ領域の利用要否に関する第四の情報を含み、
     前記処理部は、前記第四の情報に基づいて、前記第三の情報に未指定の前記ハッシュ値と該ハッシュ値に対応し前記第一の情報に基づいて選択されたデータと、から構成されるハッシュ表を前記テンポラリ領域に格納するか否かを決定する、ことを特徴とするストレージ装置。
    The storage device according to claim 6,
    The command includes fourth information related to the necessity of using the temporary area,
    The processing unit is configured based on the fourth information, the hash value not specified in the third information, and data selected based on the first information corresponding to the hash value. Determining whether to store the hash table in the temporary area.
  8.  請求項7に記載のストレージ装置であって、
     前記処理部は、前記表を構成するデータのうち結合対象とするデータの割合である選択率を算出し、
     前記入出力部は前記選択率を前記サーバ装置に送信する、ことを特徴とするストレージ装置。
    The storage device according to claim 7,
    The processing unit calculates a selection rate that is a ratio of data to be combined among data constituting the table,
    The input / output unit transmits the selection rate to the server device.
  9.  ハッシュ値に基づいて表の結合処理を実行するサーバ装置とストレージ装置における
    データベース管理方法であって、
     前記サーバ装置は、
     前記表の結合処理を実行し、
     前記表における結合対象とするデータを指定する第一の情報と、前記表におけるハッシュ値の計算対象となるデータを指定する第二の情報と、前記ハッシュ値を指定する第三の情報と、が含まれるコマンドを生成し、
     前記コマンドを前記ネットワークを介して前記ストレージ装置に送信し、
    前記ストレージ装置は、
     前記コマンドを受信し、
     前記第一の情報に基づいて前記ストレージ装置が記憶する前記表を構成するデータのうち結合対象とするデータを選択し、
     前記表を構成するデータのうち前記第二の情報で指定されたデータの前記ハッシュ値を算出し、
     前記第三の情報で指定された前記ハッシュ値を選択し、
     前記第三の情報に基づいて選択された前記ハッシュ値と、該ハッシュ値に対応し前記第一の情報に基づいて選択されたデータと、から構成されるハッシュ表を前記サーバ装置に送信する、ことを特徴とするデータベース管理方法。
    A database management method in a server apparatus and a storage apparatus that executes table join processing based on a hash value,
    The server device
    Execute the table join process,
    First information that specifies data to be combined in the table, second information that specifies data that is a calculation target of the hash value in the table, and third information that specifies the hash value. Generate included commands,
    Sending the command to the storage device via the network;
    The storage device
    Receiving the command,
    Based on the first information, select the data to be combined from the data constituting the table stored in the storage device,
    Calculating the hash value of the data specified by the second information among the data constituting the table;
    Select the hash value specified in the third information,
    A hash table composed of the hash value selected based on the third information and the data selected based on the first information corresponding to the hash value is transmitted to the server device; A database management method characterized by the above.
  10.  請求項9に記載のデータベース管理方法であって、
     前記ストレージ装置は、
     前記第三の情報に未指定の前記ハッシュ値と該ハッシュ値に対応し前記第一の情報に基づいて選択されたデータと、から構成されるハッシュ表をテンポラリ領域に格納する、ことを特徴とするデータベース管理方法。
    The database management method according to claim 9, comprising:
    The storage device
    A hash table composed of the hash value not specified in the third information and data selected based on the first information corresponding to the hash value is stored in a temporary area, Database management method.
  11.  請求項10に記載のデータベース管理方法であって、
     前記コマンドは前記テンポラリ領域の利用要否に関する第四の情報を含み、
     前記ストレージ装置は、前記第四の情報に基づいて、前記第三の情報に未指定の前記ハッシュ値と該ハッシュ値に対応し前記第一の情報に基づいて選択されたデータと、から構成されるハッシュ表を前記テンポラリ領域に格納するか否かを決定する、ことを特徴とするデータベース管理方法。
    The database management method according to claim 10, wherein
    The command includes fourth information related to the necessity of using the temporary area,
    The storage device is configured based on the fourth information, the hash value not specified in the third information, and data selected based on the first information corresponding to the hash value. Determining whether to store the hash table in the temporary area.
  12.  請求項11に記載のデータベース管理方法であって、
     前記ストレージ装置は、
     前記表を構成するデータのうち結合対象とするデータの割合である選択率を算出し、
     前記選択率を前記サーバ装置に送信し、
     前記サーバ装置は、前記選択率に基づいて前記テンポラリ領域の利用要否を決定する、
    ことを特徴とするデータベース管理方法。
    The database management method according to claim 11, comprising:
    The storage device
    Calculating a selection ratio which is a ratio of data to be combined among data constituting the table;
    Transmitting the selectivity to the server device;
    The server device determines whether or not to use the temporary area based on the selection rate;
    A database management method characterized by the above.
  13.  ハッシュ値に基づいて表の結合処理を実行するサーバ装置であって、
     前記表の結合処理を実行し、前記表における結合対象とするデータを指定する第一の情報と、前記表におけるハッシュ値の計算対象となるデータを指定する第二の情報と、前記ハッシュ値を指定する第三の情報と、が含まれるコマンドを生成する第一の処理部と、
     ストレージ装置と、
     該ストレージ装置から受信したデータを格納するメモリと、を有し、
     前記ストレージ装置は、
     複数の表が格納される格納部と、
     前記コマンドに含まれる前記第一の情報に基づいて前記表を構成するデータのうち結合対象とするデータを選択し、前記表を構成するデータのうち前記第二の情報で指定されたデータの前記ハッシュ値を算出し、前記第三の情報で指定された前記ハッシュ値を選択する、第二の処理部と、
     前記第三の情報に基づいて選択された前記ハッシュ値と、該ハッシュ値に対応し前記第一の情報に基づいて選択されたデータと、から構成されるハッシュ表を前記メモリに送信させる第三の処理部と、を有することを特徴とするサーバ装置。
    A server device that performs table join processing based on a hash value,
    The table join process is executed, first information for designating data to be joined in the table, second information for designating data to be calculated for hash values in the table, and the hash value A first processing unit for generating a command including the third information to be specified;
    A storage device;
    A memory for storing data received from the storage device,
    The storage device
    A storage unit for storing a plurality of tables;
    Based on the first information included in the command, the data to be combined is selected from the data constituting the table, and the data specified by the second information among the data constituting the table is selected. A second processing unit that calculates a hash value and selects the hash value designated by the third information;
    A third table for transmitting to the memory a hash table composed of the hash value selected based on the third information and the data corresponding to the hash value and selected based on the first information And a processing unit.
PCT/JP2014/060238 2014-04-09 2014-04-09 System for storage device to execute database hash join process WO2015155846A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016512523A JP6158430B2 (en) 2014-04-09 2014-04-09 A system in which the storage device executes database hash join processing
PCT/JP2014/060238 WO2015155846A1 (en) 2014-04-09 2014-04-09 System for storage device to execute database hash join process

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2014/060238 WO2015155846A1 (en) 2014-04-09 2014-04-09 System for storage device to execute database hash join process

Publications (1)

Publication Number Publication Date
WO2015155846A1 true WO2015155846A1 (en) 2015-10-15

Family

ID=54287449

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2014/060238 WO2015155846A1 (en) 2014-04-09 2014-04-09 System for storage device to execute database hash join process

Country Status (2)

Country Link
JP (1) JP6158430B2 (en)
WO (1) WO2015155846A1 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018003004A1 (en) * 2016-06-28 2018-01-04 株式会社日立製作所 Calculator system and database management method
US11016978B2 (en) 2019-09-18 2021-05-25 Bank Of America Corporation Joiner for distributed databases
CN113157203A (en) * 2021-01-19 2021-07-23 湖南汽车工程职业学院 Storage method of network computer
US11126401B2 (en) 2019-09-18 2021-09-21 Bank Of America Corporation Pluggable sorting for distributed databases

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
"Scalable Database HiRDB Version6", DB MAGAZINE, vol. 11, no. 8, 1 November 2001 (2001-11-01), pages 1 - 26 *
HIDEYUKI KAWASHIMA ET AL.: "A Proposal of Accelerator Coordination Architecture on Data Processing Infrastructure", IEICE TECHNICAL REPORT, vol. 113, no. 282, 1 November 2013 (2013-11-01), pages 55 - 60 *
KEISUKE SUZUKI ET AL.: "Performance Characteristics of Large Analytical Query Processing on Relational Database with SSDs", IPSJ SIG NOTES, vol. 2013 -DB, no. 21, 15 July 2013 (2013-07-15), pages 1 - 6 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018003004A1 (en) * 2016-06-28 2018-01-04 株式会社日立製作所 Calculator system and database management method
US11016978B2 (en) 2019-09-18 2021-05-25 Bank Of America Corporation Joiner for distributed databases
US11126401B2 (en) 2019-09-18 2021-09-21 Bank Of America Corporation Pluggable sorting for distributed databases
CN113157203A (en) * 2021-01-19 2021-07-23 湖南汽车工程职业学院 Storage method of network computer

Also Published As

Publication number Publication date
JP6158430B2 (en) 2017-07-05
JPWO2015155846A1 (en) 2017-04-13

Similar Documents

Publication Publication Date Title
US10860539B2 (en) De-duplication-based remote replication method, and apparatus
JP6158430B2 (en) A system in which the storage device executes database hash join processing
CN106611044B (en) SQL optimization method and equipment
JP6070936B2 (en) Information processing apparatus, information processing method, and program
WO2015110062A1 (en) Distributed data storage method, device and system
CN102902763B (en) The method of association, retrieving information process data and process information task and device
CN105574093A (en) Method for establishing index in HDFS based spark-sql big data processing system
JP2006031687A (en) External metadata processing
JP7098327B2 (en) Information processing system, function creation method and function creation program
WO2018149395A1 (en) Routing configuration method for view file, and storage medium, terminal device and apparatus
JP6167187B2 (en) Query generation method and query generation apparatus
WO2020215689A1 (en) Query method and apparatus for column-oriented files
KR20170037950A (en) Method and apparatus of controlling network payment
JP2007334627A (en) Service base software design support method, and device therefor
CN107798111B (en) Method for exporting data in large batch in distributed environment
JP6262505B2 (en) Distributed data virtualization system, query processing method, and query processing program
US9117005B2 (en) Statistics collection using path-value pairs for relational databases
CN108197187B (en) Query statement optimization method and device, storage medium and computer equipment
JPWO2020008991A1 (en) Verification automation equipment, verification automation methods, and programs
US8229924B2 (en) Statistics collection using path-identifiers for relational databases
US20090276404A1 (en) Method and system for efficient data structure for reporting on indeterminately deep hierarchies
CN109063210B (en) Resource object query method, device, equipment and storage medium of storage system
JPS6041160A (en) Control system of computer system
US9613090B2 (en) Simplified query generation from prior query results
US9679015B2 (en) Script converter

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 14888912

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2016512523

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 14888912

Country of ref document: EP

Kind code of ref document: A1