WO2012032799A1 - 計算機システム、データ検索方法及びデータベース管理計算機 - Google Patents

計算機システム、データ検索方法及びデータベース管理計算機 Download PDF

Info

Publication number
WO2012032799A1
WO2012032799A1 PCT/JP2011/054175 JP2011054175W WO2012032799A1 WO 2012032799 A1 WO2012032799 A1 WO 2012032799A1 JP 2011054175 W JP2011054175 W JP 2011054175W WO 2012032799 A1 WO2012032799 A1 WO 2012032799A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
distribution
load
processing procedures
computer
Prior art date
Application number
PCT/JP2011/054175
Other languages
English (en)
French (fr)
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 US13/814,989 priority Critical patent/US9384219B2/en
Publication of WO2012032799A1 publication Critical patent/WO2012032799A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • 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/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof

Definitions

  • the present invention relates to a database search processing system that performs database search processing by combining a plurality of storage devices, and more particularly to a technique for improving search processing performance in database search processing.
  • the analysis processing is executed according to the processing procedure with the highest processing performance in consideration of the performance difference between the combined storage devices.
  • the performance of other storage devices is fully utilized to achieve high performance. It is important to be able to maintain processing performance.
  • the processing procedure that maximizes the processing performance is based on the processing content predicted in advance.
  • a method of selecting one is known (see, for example, Patent Document 1).
  • a method is known in which the processing procedure is dynamically switched during processing so that the throughput is maximized based on processing characteristics at the time of execution (see, for example, Patent Document 2).
  • Patent Literature 1 a processing procedure that maximizes processing performance is selected based on a prior prediction, and processing is executed.
  • the optimal processing procedure cannot always be selected, and the performance of the computer system cannot be fully utilized.
  • Patent Document 2 it is possible to deal with load fluctuations and slowdown during processing execution by selecting a processing procedure that maximizes processing performance during processing execution. However, since only one selected processing procedure is executed, the computer resource portion that is closest to the performance limit becomes a bottleneck, and processing performance is vacant with respect to other computer resources.
  • the method that selects and processes only one processing procedure that maximizes the processing performance is the storage device closest to the performance limit. It becomes a bottleneck and processing performance is vacant for other storage devices.
  • a typical example of the invention disclosed in the present application is as follows. That is, a computer system that includes a computer that outputs a result for a received request and a storage system that stores data output based on the request, the computer including a first processor, the first processor, A first memory connected to the processor; and a first network interface connected to the first processor, wherein the storage system is connected to the second processor and the second processor. Two memories, a plurality of storage devices connected to the second processor and storing a plurality of the data, and a second network interface connected to the second processor, the computer comprising: A request receiving unit that receives the request, and accesses the data stored in each storage device based on the request.
  • a processing procedure generation unit that generates a plurality of processing procedures including an order, a data division unit that divides the data stored in each storage device, and an information acquisition unit that acquires load information indicating a load state of the storage system And, based on the acquired load information, a distribution determination unit that determines a distribution for allocating the divided data processed by each of the generated processing procedures, and based on the determined distribution, And a processing execution unit that executes the generated processing procedures in parallel.
  • FIG. 1 is an explanatory diagram showing a configuration of a computer system according to an embodiment of this invention.
  • the computer system includes an input / output device 10, a server device 11, and a storage device 12.
  • the input / output device 10 and the server device 11 are connected via a communication network 13.
  • the server apparatus 11 and the storage apparatus 12 are connected via a storage network 14.
  • the input / output device 10 transmits a system setting request and a search request input by the user to the server device 11 and displays a search result transmitted from the server device.
  • the input / output device 10 is realized by, for example, a computer including a CPU (not shown) and a memory (not shown).
  • the server device 11 transmits a data read request to the storage device 12 based on the search request input from the input / output device 10 and returns a search result for the search request to the input / output device 10.
  • the server apparatus 11 includes a CPU 101, a memory 102, a network interface 103, and a network interface 104.
  • the CPU 101 executes various processes by executing programs stored in the memory 102.
  • the server device 11 may include a plurality of CPUs 101 so that a plurality of processes can be executed in parallel.
  • the memory 102 stores a program executed by the CPU 101 and information necessary for executing the program.
  • the memory 102 stores a database management system 111 as a program executed by the CPU 101. Based on the search request, the database management system 111 reads data from the storage device 12, executes predetermined processing on the read data, and returns the processing result to the input / output device 10. Details of the database management system 111 will be described later with reference to FIG.
  • memory 102 may store other programs such as application programs.
  • the network interface 103 is an interface for connecting to the input / output device 10 via the communication network 13.
  • the network interface 104 is an interface for connecting to the storage apparatus 12 via the storage network 14.
  • the storage device 12 stores various processing target data.
  • the storage device 12 reads the specified data in accordance with the data read request transmitted from the server device 11 and transmits the read data to the server device 11.
  • the storage device 12 includes a CPU 105, a memory 106, a disk interface 107, a storage device 108, and a network interface 109.
  • the CPU 105 executes various processes by executing programs stored in the memory 106.
  • the memory 106 stores a program executed by the CPU 105 and information necessary for executing the program.
  • the disk interface 107 is an interface for accessing the storage device 108.
  • Storage device 108 stores various processing target data.
  • the storage device 108 may be a storage device such as a hard disk drive (HDD), an optical disk drive, or a semiconductor storage device. It should be noted that a disk array may be configured from a plurality of storage devices 108.
  • one or more data storage units 123 are generated from the storage area of the storage device 108.
  • the data storage units 123 are created in storage areas of different storage devices 108, respectively. That is, the storage area of one storage device 108 is configured not to be used by the plurality of data storage units 123. As a result, when a plurality of data storage units 123 (see FIG. 2) are accessed, different storage devices 108 are accessed. Therefore, the load is not concentrated on one storage device 108.
  • the computer system may be configured to include a storage system including a plurality of storage apparatuses 12.
  • FIG. 2 is an explanatory diagram showing a software configuration according to the embodiment of the present invention.
  • a database management system 111 includes a request reception unit (search request reception unit) 112, a processing procedure generation unit (processing procedure candidate set generation unit) 113, a data division unit (processing target data division unit) 114, a distribution A determination unit (divided data allocation determination unit) 115, an allocation unit (processing procedure-divided data allocation unit) 116, a processing procedure execution unit (processing procedure multiple execution unit) 117, and an information collection unit (storage device information collection unit) 118 Including.
  • the request reception unit 112 receives a search request from the input / output device 10 and outputs the received search request to the processing procedure generation unit 113.
  • the request receiving unit 112 also receives a system setting request from the input / output device 10 and adjusts the processing timing of each component included in the database management system 111.
  • the processing procedure generation unit 113 generates a plurality of processing procedures based on the search request input from the request reception unit 112. Hereinafter, the generated processing procedure is also referred to as a processing procedure candidate.
  • the processing procedure generation unit 113 generates a candidate set 131 that is a set of a plurality of processing procedure candidates.
  • the processing procedure generation unit 113 further outputs the candidate set 131 generated to the distribution determination unit 115.
  • the data dividing unit 114 generates a plurality of divided data by dividing a part or all of the processing target data stored in the storage device 12 into a plurality of pieces. Further, the data dividing unit 114 generates a divided data set 132 that is a set of divided data. The data dividing unit 114 outputs the generated divided data set 132 to the assigning unit 116.
  • the data to be processed is divided based on a preset division method.
  • the division method is set by the division designation included in the system setting request. The division designation will be described later with reference to FIG.
  • the information collection unit 118 collects storage device information 133 including information related to the storage device 12 by communicating with the storage device 12. In addition, the information collection unit 118 outputs the storage device information 133 collected by the distribution determination unit 115.
  • the storage device information 133 in the embodiment of the present invention includes at least configuration information that is information related to the configuration of the storage device 12 and load information that is information related to the load state of the storage device 12.
  • the storage device information 133 may include other information.
  • the allocation determination unit 115 refers to the candidate set 131 input from the processing procedure generation unit 113 and the storage device information 133 input from the information collection unit 118, and assigns the allocation to a plurality of processing procedures included in the candidate set 131. Determine the distribution of data.
  • the distribution determining unit 115 outputs distribution information 134 including the determined distribution to the allocating unit 116.
  • the assigning unit 116 assigns the divided data included in the divided data set 132 to each processing procedure included in the candidate set 131 based on the distribution information 134 input from the distribution determining unit 15. Furthermore, the assigning unit 116 outputs a plurality of processing procedures to which the divided data is assigned to the processing procedure executing unit 117.
  • the processing procedure execution unit 117 issues a plurality of data read requests to the storage apparatus 12 according to a plurality of processing procedures input from the allocation unit 116 and assigned with the divided data.
  • the storage device 12 includes a data reading unit 122 and a data storage unit 123.
  • the data reading unit 122 is a program stored in the memory 106, reads data from the data storage unit 123 according to the data read request issued by the processing procedure execution unit 117, and sends the read processing target data to the server device 11. Send back.
  • the data storage unit 123 is a storage area for storing processing target data, and stores various processing target data. In the example shown in FIG. 2, customer information, purchase history, and usage history are stored in each data storage unit 123.
  • the database management system 111 determines the distribution of divided data to be assigned to a plurality of processing procedures based on the storage device information 133. Thereby, a plurality of processing procedures are executed in parallel according to the distribution of the divided data. The distribution of the divided data is determined so as not to exceed the upper limit value of the load set in the data storage unit 123.
  • FIG. 3A is an explanatory diagram illustrating an example of configuration information included in the storage device information 133 according to the embodiment of this invention.
  • FIG. 3B is an explanatory diagram illustrating an example of load information included in the storage device information 133 according to the embodiment of this invention.
  • the configuration information 401 stores information related to the configuration of the data storage unit 123 included in the storage device 12. Specifically, the configuration information 401 includes a storage unit identifier 4011, a throughput upper limit value 4012, and storage data 4013.
  • the storage unit identifier 4011 is an identifier for identifying the data storage unit 123.
  • the throughput upper limit value 4012 represents the maximum number of data read requests that the data storage unit 123 corresponding to the storage unit identifier 4011 can process per unit time, that is, the upper limit value of the throughput.
  • the storage data 4013 is information on processing target data stored in the data storage unit 123 corresponding to the storage unit identifier 4011.
  • customer information is stored in the data storage unit 123 whose throughput upper limit value 4012 is “60 records / second”, and the data storage unit 123 whose throughput upper limit value 4012 is “10 records / second”. It can be seen that the purchase history is stored in the data storage unit 123 whose throughput upper limit value 4012 is “50 records / second”.
  • the load information 402 stores load information in the data storage unit 123 included in the storage device 12. Specifically, the load information 402 includes a storage unit identifier 4021, a throughput value 4022 and a collection time 4023.
  • the storage unit identifier 4021 is an identifier for identifying the data storage unit 123.
  • the throughput value 4022 is the number of data read requests (throughput) processed per unit time in the data storage unit 123 corresponding to the storage unit identifier 4021.
  • the collection time 4023 is a time when a value corresponding to the throughput value 4022 is collected.
  • the throughput of the data storage unit 123 whose storage unit identifier 4021 is “S1” is “53 records / second”
  • 4A to 4C are explanatory diagrams showing an example of search target data in the embodiment of the present invention.
  • table data including customer information 601, purchase history 602, and usage history 603 is assumed as search target data.
  • Customer information 601 stores various types of customer information.
  • the customer information 601 stores a record including information on “customer ID 6011, gender 6012, age 6013, hobby 6014”.
  • a table representing customer information is also referred to as customer information T1 (601).
  • the purchase history 602 stores the purchase history of each customer.
  • the purchase history 602 stores a record including information on “customer ID 6021, purchase category 6022, purchase amount 6023”.
  • the table representing the purchase history is also referred to as purchase history T2 (602).
  • the usage history 603 stores the usage history of stores used by each customer.
  • the usage history 603 stores a record including information on “customer ID 6031, usage store 6032, usage time 6033”.
  • the table representing the usage history is also referred to as usage history T3 (603).
  • customer information 601, the purchase history 602, and the usage history 603 may include other information.
  • FIG. 5 is a flowchart for explaining search processing executed by the database management system 111 according to the embodiment of this invention.
  • the database management system 111 starts processing (step 300), before receiving a search request from the input / output device 10, the information collection unit 118 executed in advance by the CPU 101 executes the configuration information 401 and the load.
  • Storage device information 133 including information 402 and the like is collected (step 301).
  • the CPU 101 may execute the information collection unit 118 periodically, or may execute the information collection unit 118 at a predetermined timing such as when the configuration of the storage device 12 is changed.
  • the data division unit 114 executed by the CPU 101 divides part or all of the processing target data stored in the data storage unit 123 based on a preset division designation, and generates a divided data set ⁇ T ⁇ 132 (Step 302). Thereafter, the database management system 111 waits until a search request is accepted.
  • a method of generating the divided data set ⁇ T ⁇ 132 not only a method of dividing the processing target data in units of records but also a method of dividing the processing target data in units of blocks (a plurality of records) can be considered. At this time, even in the method of dividing the processing target data in units of blocks, the number of records constituting the block may be equalized or unequal. Further, various embodiments are conceivable, such as dividing all of the processing target data at the start of processing, or dividing the processing target data while dynamically changing the number of records constituting the block during the search processing.
  • the division designation is information for generating the divided data set ⁇ T ⁇ 132, and is information included in the system setting request.
  • FIG. 6 is an explanatory diagram showing an example of division designation included in the system setting request according to the embodiment of the present invention.
  • the division designation 701 shown in FIG. 6 stores a division designation that designates a generation method of the divided data set ⁇ T ⁇ 132.
  • the division designation 701 includes a division unit 7011, an equality 7012, a division range 7013, and a division size 7014.
  • the division unit 7011 represents a unit for dividing the processing target data.
  • the uniformity 7012 indicates whether the data to be processed is divided equally or non-equally.
  • a division range 7013 represents a range of data to be divided.
  • the division size 7014 indicates whether or not the division unit of the processing target data is changed during processing.
  • the division unit is a record unit, the data is divided equally, all the processing target data is the division target, and the division unit is not changed during the processing.
  • the request receiving unit 112 executed by the CPU 101 receives a search request from the input / output device 10 (step 303).
  • the accepted search request is output to the processing procedure generation unit 113.
  • the search request is described in an SQL statement used in a general database management system.
  • the description syntax of the SQL sentence is disclosed in SQL99 established by ISO (International Organization for Standardization) / IEC (International Electrotechnical Commission) in 1999.
  • FIG. 7 is an explanatory diagram showing an example of a search request used in the embodiment of the present invention.
  • the search request shown in FIG. 7 uses three types of business process target data shown in FIGS. 4A to 4C as search targets.
  • the search request is intended to “extract customer information satisfying specified conditions for use history and purchase history having the same customer ID among customer information satisfying specific conditions”. To do. More specifically, “to extract customer information that is a woman in her 30s, has a visit history to the Shinjuku store, and has a purchase history in the living category” is specified.
  • the information is 1/4, 1/8, 1/5 based on the conditions regarding the gender and age (customer information), the purchase category (purchase history), and the use store (use history). It is assumed that it is narrowed down to. In other words, females in their 30s out of all customers included in the customer information are 1 ⁇ 4, and records whose purchase category is “living” in the purchase history are 8 of the whole. Furthermore, in the usage history, the record that the usage store is “Shinjuku store” is 1/5 of the total.
  • the processing procedure generation unit 113 executed by the CPU 101 generates a plurality of processing procedure candidates based on the search request input from the request reception unit 112, and includes a plurality of generated processing procedure candidates.
  • a candidate set ⁇ S ⁇ 131 to be generated is generated (step 304).
  • Non-Patent Document 1 discloses a method of counting processing procedure candidates from an SQL sentence. Specifically, all processes that process a specified SQL sentence by using the Bottom-up method. It is described that the number of procedure candidates is counted.
  • FIGS. 8A and 8B are diagrams illustrating an example of processing procedure candidates generated by the processing procedure generation unit 113 according to the embodiment of this invention.
  • the processing procedure candidates shown in FIGS. 8A and 8B are expressed in a tree structure.
  • the processing procedure candidate shown in FIG. 8A is: “First, a customer ID of a record in which the gender is female and the age is 30's is extracted from the customer information, and the purchase category is determined from the purchase history among the customers corresponding to the extracted customer ID.
  • This is a processing procedure of extracting a record that is a living room, and further extracting a record that indicates that the use store is Shinjuku from the use history among the customers corresponding to the extracted customer ID.
  • the candidate processing procedure shown in FIG. 8B is: “First, the customer ID of a record in which the gender is female and the age is in 30s is extracted from the customer information, and among the customers corresponding to the extracted customer ID, the use store is determined from the usage history. This is a processing procedure of extracting a record that is Shinjuku and further extracting a record whose purchase category is “living” from the purchase history among customers corresponding to the extracted customer ID ”.
  • the distribution determination unit 115 executed by the CPU 101 determines the distribution of divided data to be allocated to each processing procedure candidate included in the candidate set ⁇ S ⁇ 131 (step 305).
  • the distribution determination unit 115 executed by the CPU 101 determines whether or not there is divided data that is not assigned to the divided data set ⁇ T ⁇ 132 (step 306). Specifically, it is determined whether or not the divided data set ⁇ T ⁇ 132 is empty.
  • the allocation unit 116 executed by the CPU 101 allocates the divided data to each processing candidate according to the determined distribution (step 307).
  • the processing procedure execution unit 117 executed by the CPU 101 executes a plurality of processing procedure candidates to which divided data is assigned (step 308). As a result, processing according to a plurality of processing procedure candidates is executed in parallel and in multiple.
  • the information collecting unit 118 executed by the CPU 101 collects the load information 402 after the execution of the processing procedure is started (step 309).
  • the acquired load information 402 is output to the distribution determination unit 115.
  • the collected load information 402 is output to the distribution determination unit 115.
  • load information 402 may be collected after the start of processing, may be collected periodically after the start of processing, or may be collected at other timings.
  • the distribution determination unit 115 refers to the newly input load information 402 and compares it with the load information 402 used when the previous distribution was determined (step 305), and whether or not there is a large load fluctuation in the data storage unit 123. Is determined (step 310).
  • the difference in the collection time corresponds to at least one of the threshold value or the load fluctuation range or less. If any of the conditions is met, it is determined that there is no large load fluctuation in the data storage unit 123. On the other hand, when the difference in the collection time is equal to or greater than the threshold value and the load fluctuation range is equal to or greater than the threshold value, it is determined that the data storage unit 123 has a large load fluctuation.
  • the threshold value for the difference in the collection time and the threshold value for the fluctuation range of the load may be included in the system setting request, or may be held by the database management system 111 from the beginning.
  • the database management system 111 monitors the load state of the storage apparatus 12 during processing execution. As a result, when the load on the storage apparatus 12 increases, the database management system 111 can select a processing procedure candidate corresponding to the load state of the storage apparatus 12 and dynamically change the distribution of the divided data.
  • step 306 If it is determined that there is no large load fluctuation in the data storage unit 123, the CPU 101 returns to step 306 and executes the same processing (step 306 to step 310).
  • the CPU 101 If it is determined that there is a large load fluctuation in the data storage unit 123, the CPU 101 returns to step 305 and determines the distribution again (step 305). That is, the distribution of the divided data allocated to each processing procedure candidate is reviewed.
  • step 306 If it is determined in step 306 that there is no divided data to be allocated, the CPU 101 ends the search process and determines whether to end the system (step 311). For example, when a command for instructing system termination is input from the input / output device 10, it is determined to terminate the system.
  • the CPU 101 If it is determined not to terminate the system, the CPU 101 returns to step 305 and waits for reception of a new search request. When receiving a new search request, the CPU 101 repeatedly executes the same processing (step 303 to step 311).
  • the CPU 101 terminates the system (step 312).
  • search processing is executed in a plurality of processing procedures in order to make maximum use of the performance of the storage apparatus 12.
  • the data to be distributed to the plurality of processing procedures is distributed so that the throughput of the storage apparatus 12 is maximized in consideration of the load state of the storage apparatus 12.
  • the performance of the storage apparatus 12 can be utilized to the maximum extent.
  • the order of accessing the data storage unit 123 is always the same. For this reason, the load on the specific data storage unit 123 may increase, and the load on the other data storage unit 123 may decrease. At this time, the data input / output with respect to the data storage unit 123 having a high load may become a bottleneck and the performance may be deteriorated.
  • a plurality of processing procedures having different access orders to the data storage unit 123 are executed at the same time. Therefore, the load of the data storage unit 123 is distributed, and the performance of the specific data storage unit 123 is vacant. Can be prevented. Further, by determining the distribution of divided data for a plurality of processing procedures executed at the same time using a method described later, the performance of each data storage unit 123 can be utilized to the maximum.
  • linear programming is a method for obtaining a value that maximizes (or minimizes) an objective function under constraints.
  • FIG. 9 is a flowchart illustrating processing executed by the distribution determination unit 115 executed by the CPU 101 according to the embodiment of this invention. This processing corresponds to the processing in step 305 in FIG. 9 is executed by the distribution determining unit 115 executed by the CPU 101.
  • Steps 801 to 806 are processes for determining the objective function and constraint conditions.
  • the allocation determining unit 115 sets the upper limit value max_Xn of the throughput set in the nth data storage unit 123 (step 801).
  • the allocation determining unit 115 refers to the throughput upper limit value 4012 of the configuration information 401 included in the input storage device information 133, and sets the value stored in the throughput upper limit value 4012 as the throughput upper limit value max_Xn. To do.
  • n represents a character for identifying the data storage unit 123.
  • the distribution determination unit 115 generates a subset ⁇ S [Tj] ⁇ from the candidate set ⁇ S ⁇ (step 802).
  • the distribution determination unit 115 collects processing procedure candidates having the same processing target data (processing start table Tj) accessed first among the processing procedure candidates si ⁇ ⁇ S ⁇ .
  • a subset ⁇ S [Tj] ⁇ is generated. That is, in the embodiment of the present invention, a subset ⁇ S [Tj] ⁇ having elements of processing procedure candidates whose processing target data to be processed first is common is generated.
  • j is a character for identifying a subset, and there are as many subsets as there are tables (processing target data).
  • processing start tables Tj are assigned the same processing procedure candidates. As a result, the consistency of the processing is ensured.
  • step 804 to step 807 is repeatedly executed for each subset ⁇ S [Tj] ⁇ (step 803).
  • the allocation determining unit 115 defines the predicted I / O number Cjk for each element (processing procedure candidate) included in the subset S [Tj] (step 804).
  • the allocation determination unit 115 sets the predicted total number of I / Os generated in the processing procedure candidate Sjk as Cjk for the processing procedure candidate Sjk ⁇ S [Tj] that is an element of the subset S [Tj].
  • the letter k is a natural number from 1 to nj and represents the number of elements included in the subset.
  • Nj is the number of elements of the subset S [Tj].
  • the distribution determination unit 115 defines a processing throughput Xjkm for each table (processing target data) for each processing procedure candidate Sjk included in the subset S [Tj] (step 805).
  • the distribution determining unit 115 sets the processing throughput for the m-th table to Xjkm when the processing is started from the processing start table Tj with a load of the throughput Xjk. That is, in the processing procedure candidate Sjk, a load when processing the m-th processing target data is defined.
  • m is a character representing the processing order in the processing procedure candidate Sjk.
  • the processing throughput for the mth table (processing target data) can be calculated.
  • the distribution determination unit 115 defines the sum total sum_Xjk of the throughput of each data storage unit 123 when all the processing procedure candidates included in the subset S [Tj] are executed in parallel (step 806).
  • the allocation determination unit 115 refers to the configuration information 401 included in the input storage device information 133, and confirms the table (processing target data) Tjkm stored in the nth data storage unit 123.
  • the distribution determination unit 115 sets sum_Xjkm as the sum of the throughputs Xjkm of the tables stored in the data storage unit 123. That is, the sum total of the throughputs for all tables (processing target data) stored in the data storage unit 123 is sum_Xjkm.
  • the distribution determining unit 115 obtains a variable Xjk that maximizes the value of the objective function TotalXj under the constraint condition (step 807). That is, the variable Xjk is calculated using linear programming.
  • Expression (1) and Expression (2) are the total throughputs when the processing procedure candidates included in the candidate set are executed in parallel within a range not exceeding the upper limit value of the throughput set in each data storage unit 123. This is an expression for determining the distribution that maximizes.
  • the throughput that maximizes the objective function TotalXj is defined as Xjk_max.
  • the distribution determining unit 115 repeatedly executes the processing from step 804 to step 807 for each subset S [Tj] (step 808).
  • the allocation determination unit 115 determines the allocation based on the total throughput TotalXj in each subset (step 809), and ends the processing (step 810). .
  • the allocation determination unit 115 selects a subset S [Tj] having the maximum value of the total throughput TotalXj.
  • the distribution determination unit 115 determines the ratio of the throughput Xjk_max in the selected subset S [Tj] as the distribution ratio of the divided data for each processing procedure candidate Sjk included in the selected subset S [Tj]. To do.
  • the allocation determining unit 115 is within a range that does not exceed the performance limit of each data storage unit 123, and the total value of the throughput of each data storage unit 123 is maximized.
  • the distribution of the divided data to be assigned to a plurality of processing procedures is determined so that the total value of the throughput of each data storage unit 123 is maximized within a range that does not exceed the performance limit of each data storage unit 123. Therefore, a plurality of processing procedures are executed based on the determined distribution, thereby enabling a search process that makes the best use of the performance of the storage apparatus 12.
  • the processing target data is customer information T1 (601), purchase history T2 (602), and usage history T3 (603). Further, the customer information T1 (601), the purchase history T2 (602), and the usage history T3 (603) are respectively stored in different data storage units 123 as shown in FIG. That is, as shown in FIG. 3A, the customer information T1 (601) is stored in the data storage unit 123 whose storage unit identifier 4011 is “S1”, and the purchase history T2 (602) is stored in the storage unit identifier 4011 as “S2”. The data is stored in a data storage unit 123, and the usage history T3 (603) is stored in the data storage unit 123 whose storage unit identifier 4011 is “S3”.
  • step 304 six possible processing procedure candidates are generated from combinations of reference orders of the three processing target data.
  • the distribution determining unit 115 refers to the configuration information 401 and stores “150” as the throughput upper limit value max_X1 of the data storage unit 123 in which the customer information T1 (601) is stored, and stores the purchase history T2 (602).
  • the throughput upper limit value max_X2 of the data storage unit 123 to be stored is “100”
  • the throughput upper limit value max_X3 of the data storage unit 123 in which the usage history T3 (603) is stored is “50”.
  • the allocation determining unit 115 sets a subset S [T1] having the customer information T1 (601) as a process start table, a subset S [T2] having a purchase history T2 (602) as a process start table, and A subset S [T3] having the usage history T3 (603) as a processing start table is generated.
  • the subsets S [T1], S [T2], and S [T3] include the following elements (processing procedure candidates).
  • elements (processing procedure candidates) included in each of the subsets S [T1], S [T2], and S [T3] are as follows.
  • Processing procedure candidate s11 Customer information ⁇ Purchase history ⁇ Usage history: Allocation throughput: X11
  • Processing procedure candidate s12 Customer information ⁇ Usage history ⁇ Purchase history: Allocation throughput: X12
  • Processing procedure candidate s21 purchase history ⁇ customer information ⁇ use history: allocated throughput: X21
  • Processing procedure candidate s22 purchase history ⁇ use history ⁇ customer information: allocated throughput: X22
  • Processing procedure candidate s32 usage history ⁇ customer information ⁇ purchasing history: allocated throughput: X32
  • the allocation throughput is a variable related to the amount of data allocated to each processing procedure.
  • step 804 to step 807 is repeatedly executed for each subset, but the subset S [T1] whose processing start table is customer information T1 (601) will be described for simplicity of explanation.
  • the allocation determining unit 115 defines the predicted total I / O numbers in the processing procedure candidates s11 and s12 included in the subset S [T1] as c11 and c12. Note that the predicted total number of I / Os can be calculated based on the processing procedure candidates s11 and s12. The distribution determination unit 115 sets the calculated total predicted I / O numbers as c11 and c12.
  • the allocation determining unit 115 sets the processing throughputs assigned to the processing procedure candidates s11 and s12 to X11 and X12. Further, the distribution determining unit 115 defines the load throughput in the table processed in order in the processing procedure candidate s11 as X111, X112, and X113, and the load throughput in the table processed in order in the processing procedure candidate s12. It is defined as X121, X122, and X123.
  • customer information T1 (601), purchase history T2 (602), and usage history T3 (603) are stored in different data storage units 123, respectively. That is, customer information T1 (601), purchase history T2 (602), usage history T3 (603), and data storage unit 123 correspond one-to-one. Therefore, the throughput for each data storage unit 123 and the throughput for each table (processing target data) can be treated as being equal. That is, the throughput of the data storage unit 123 is represented by the processing throughputs X11 and X12 assigned to the processing procedure candidates.
  • the distribution determining unit 115 can define sum_X111, sum_X112, and sum_X113 as in the equations (3) to (5).
  • step 807 the distribution determining unit 115 satisfies the constraints shown in the equations (9) to (11) (that is, within a range where the sum of the load throughputs does not exceed the throughput upper limit value) and is shown in the equation (12). X11 and X12 that maximize TotalXj are calculated.
  • the value of the objective function TotalX1 is 9.990.
  • the value of the objective function TotalX2 is calculated as 5.0.
  • the value of the objective function TotalX2 is 8.988.
  • step 809 the allocation determining unit 115 refers to the value of the objective function in each subset, and selects the subset with the maximum objective function value. In this case, the subset S [T1] is selected.
  • the distribution ratio is determined.
  • step 306 the processing procedure candidates s11 and s12 are executed based on the determined distribution ratio.
  • the data storage unit 123 has been described as an example, but the present invention can also be applied to a computer system including a storage system. In this case, the throughput of the storage device 12 unit may be considered.
  • the allocation of the data amount to be allocated to the plurality of processing procedures is determined based on the load status of the storage device included in the storage apparatus 12, and the plurality of processing procedures are simultaneously performed according to the determined allocation. Executed. As a result, a plurality of processing procedures can be executed so that the usage rate of the storage apparatus 12 is maximized, and the search processing can be performed at high speed while maximizing the performance of the storage apparatus. Further, according to the embodiment of the present invention, when a plurality of processing procedures are executed in parallel, the processing procedure to be executed and the distribution of data to be assigned to each processing procedure are controlled according to the load status of the storage apparatus 12. Can be changed. Accordingly, it is possible to perform a search process that flexibly copes with a decrease in performance such as when a load is concentrated on a specific storage device.

Landscapes

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

Abstract

 受信した要求に対する問い合わせ結果を出力する計算機と、要求に基づいて出力されるデータを格納するストレージシステムとを備える計算機システムであって、計算機は、要求を受信する要求受付部と、要求に基づいて、各記憶装置に格納されるデータにアクセスする順序を含む複数の処理手順を生成する処理手順生成部と、各記憶装置に格納されるデータを分割するデータ分割部と、ストレージシステムの負荷状態を表す負荷情報を取得する情報取得部と、取得された負荷情報に基づいて、生成された各処理手順によって処理される分割されたデータを割り当てるための配分を決定する配分決定部と、決定された配分に基づいて、生成された各処理手順を並列実行する処理実行部と、を有する。

Description

計算機システム、データ検索方法及びデータベース管理計算機 参照による取り込み
 本出願は、平成22年(2010年)9月10日に出願された日本特許出願特願2010-203377の優先権を主張し、その内容を参照することにより、本出願に取り込む。
 本発明は、複数のストレージ装置を組合せてデータベース検索処理を行うデータベース検索処理システムに関し、特に、データベース検索処理における検索処理性能の向上を図る技術に関する。
 近年、企業内情報システムの構築において、計算機資源の共用化による機器コスト削減、及び運用容易化による運用管理コスト削減を目的として、様々な業務データを格納する複数のストレージ装置を論理に一元化してアクセス可能とする業務システムの構築を行い、それら業務データを組み合わせた業務解析処理を行えるようにすることが一般化しつつある。
 業務データを組合せた解析処理を行う場合、組合せられた複数のストレージ装置の性能差を考慮して、最も処理性能の高い処理手順に従って解析処理が実行される。しかし、ストレージ装置側で事前の予測とは異なる大きな負荷変動・障害スローダウン、又は、大幅な構成若しくは性能特性の変更が発生した場合に、他のストレージ装置の性能を最大限活用して、高い処理性能を維持できるようにすることが重要である。
 大きな性能特性の変動が予測される企業内情報システムにおいても、常に処理性能の最大化を図ることができるデータベース管理システムを実現したい。
 ストレージ装置の性能に大きな特性変動が予測されるデータベースにおいて処理性能の最大化を図る第一の従来技術としては、事前に予測された処理内容に基づいて、最も処理性能が大きくなる処理手順を一つ選択する方法が知られている(例えば、特許文献1参照)。また、実行時の処理特性に基づいてスループットが最大となるように、処理途中において処理手順を動的に切り替える方法が知られている(例えば、特許文献2参照)。
特開2005-301353号公報 特開平9-282287号公報
Hector Garcia-Molina著 ,Jeffrey D. Ullman著 ,Jennifer D. Widom著 ,「Database System Implementation」,Prentice Hall社 ,p.388-389
 特許文献1には、事前の予測に基づいて最も処理性能が大きくなる処理手順を選択して、処理が実行される。しかし、処理実行中に大きな負荷変動、又はスローダウンが発生した場合に、必ずしも最適な処理手順を選択することができず、計算機システムの性能を十分に活用することができない。
 また、特許文献2には、処理実行中に最も処理性能が大きくなる処理手順が選択されることによって、処理実行時の負荷変動及びスローダウンに対処することができる。しかし、選択された一つの処理手順のみを実行するため、最も性能限界に近い計算機資源部分がボトルネックとなり、他の計算機資源に対して、処理性能の空きが発生してしまう。
 複数ストレージ装置に分散格納された業務データを用いて検索解析処理を行う場合に、最も処理性能が大きくなる処理手順を一つだけ選択して処理を行う方法では、最も性能限界に近いストレージ装置がボトルネックとなり、他のストレージ装置に対して処理性能の空きが発生する。
 本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、受信した要求に対する結果を出力する計算機と、前記要求に基づいて出力されるデータを格納するストレージシステムとを備える計算機システムであって、前記計算機は、第1のプロセッサと、前記第1のプロセッサと接続される第1のメモリと、前記第1のプロセッサに接続される第1のネットワークインタフェースとを備え、前記ストレージシステムは、第2のプロセッサと、前記第2のプロセッサに接続される第2のメモリと、前記第2のプロセッサに接続され、複数の前記データが格納される複数の記憶装置と、前記第2のプロセッサに接続される第2のネットワークインタフェースとを備え、前記計算機は、前記要求を受信する要求受付部と、前記要求に基づいて、前記各記憶装置に格納される前記データにアクセスする順序を含む複数の処理手順を生成する処理手順生成部と、前記各記憶装置に格納される前記データを分割するデータ分割部と、前記ストレージシステムの負荷状態を表す負荷情報を取得する情報取得部と、前記取得された負荷情報に基づいて、前記生成された各処理手順によって処理される前記分割されたデータを割り当てるための配分を決定する配分決定部と、前記決定された配分に基づいて、前記生成された各処理手順を並列実行する処理実行部と、を有することを特徴とする。
 本発明の代表的な実施形態によれば、性能特性の異なる記憶装置が混在する環境においてもストレージシステムの性能を最大限利用する検索処理が可能となる。
本発明の実施形態の計算機システムの構成を示す説明図である。 本発明の実施形態のソフトウェア構成を示す説明図である。 本発明の実施形態のストレージ装置情報に含まれる構成情報の一例を示す説明図である。 本発明の実施形態のストレージ装置情報に含まれる負荷情報の一例を示す説明図である。 本発明の実施形態における検索対象データの一例を示す説明図である。 本発明の実施形態における検索対象データの一例を示す説明図である。 本発明の実施形態における検索対象データの一例を示す説明図である。 本発明の実施形態のデータベース管理システムによって実行される検索処理を説明するフローチャートである。 本発明の実施形態におけるシステム設定要求に含まれる分割指定の一例を示す説明図である。 本発明の実施形態で用いられる検索要求の一例を示す説明図である。 本発明の実施形態の処理手順生成部によって生成される処理手順候補の一例を示す図である。 本発明の実施形態の処理手順生成部によって生成される処理手順候補の一例を示す図である。 本発明の実施形態のCPUによって実行される配分決定部が実行する処理を説明するフローチャートである。
 以下に図面を参照しながら本発明の実施の形態を説明する。
 図1は、本発明の実施形態の計算機システムの構成を示す説明図である。
 本発明の実施形態の計算機システムは、入出力装置10、サーバ装置11及びストレージ装置12から構成される。
 入出力装置10及びサーバ装置11は、通信用ネットワーク13を介して接続される。また、サーバ装置11及びストレージ装置12は、ストレージ用ネットワーク14を介して接続される。
 入出力装置10は、利用者から入力されたシステム設定要求及び検索要求をサーバ装置11に送信し、サーバ装置から送信される検索結果を表示する。入出力装置10は、例えば、CPU(図示省略)、メモリ(図示省略)を備える計算機によって実現される。
 サーバ装置11は、入出力装置10から入力された検索要求に基づいて、ストレージ装置12にデータ読み出し要求を送信し、検索要求に対する検索結果を入出力装置10に返信する。
 サーバ装置11は、CPU101、メモリ102、ネットワークインタフェース103、及びネットワークインタフェース104を備える。
 CPU101は、メモリ102に格納されたプログラムを実行することによって各種処理を実行する。また、サーバ装置11は、CPU101を複数備えることによって複数の処理を並列して実行できるように構成してもよい。
 メモリ102は、CPU101によって実行されるプログラム及び当該プログラムを実行するために必要な情報を格納する。
 メモリ102は、CPU101に実行されるプログラムとして、データベース管理システム111を格納する。データベース管理システム111は、検索要求に基づいて、ストレージ装置12からデータを読み出し、読み出されたデータに対して所定の処理を実行し、当該処理結果を入出力装置10に返信する。データベース管理システム111の詳細については、図2を用いて後述する。
 なお、メモリ102は、アプリケーションプログラム等の他のプログラムを格納してもよい。
 ネットワークインタフェース103は、通信用ネットワーク13を介して入出力装置10と接続するためのインタフェースである。ネットワークインタフェース104は、ストレージ用ネットワーク14を介してストレージ装置12と接続するためのインタフェースである。
 ストレージ装置12は、各種処理対象データを格納する。ストレージ装置12は、サーバ装置11から送信されたデータ読み出し要求に従って、指定されたデータを読み出し、サーバ装置11に読み出されたデータを送信する。
 ストレージ装置12は、CPU105、メモリ106、ディスクインタフェース107、記憶装置108及びネットワークインタフェース109を備える。
 CPU105は、メモリ106に格納されたプログラムを実行することによって各種処理を実行する。
 メモリ106は、CPU105によって実行されるプログラム及び当該プログラムを実行するために必要な情報を格納する。
 ディスクインタフェース107は、記憶装置108にアクセスするためのインタフェースである。
 記憶装置108は、各種処理対象データを格納する。記憶装置108は、ハードディスクドライブ(HDD)、光ディスクドライブ、半導体記憶装置等の記憶装置が考えられる。なお、複数の記憶装置108からディスクアレイを構成するようにしてもよい。
 本実施形態では、記憶装置108の記憶領域から一以上のデータ格納部123(図2参照)が生成される。
 なお、データ格納部123(図2参照)は、それぞれ、異なる記憶装置108の記憶領域上に作成される。すなわち、一つの記憶装置108の記憶領域が複数のデータ格納部123によって使用されないように構成される。これによって、複数のデータ格納部123(図2参照)がアクセスされる場合には、それぞれ、異なる記憶装置108にアクセスされることになる。したがって、一つの記憶装置108に負荷が集中しない。
 なお、計算機システムは、複数のストレージ装置12から構成されるストレージシステムを備える構成であってもよい。
 図2は、本発明の実施形態のソフトウェア構成を示す説明図である。
 本発明の実施形態のデータベース管理システム111は、要求受付部(検索要求受付部)112、処理手順生成部(処理手順候補集合生成部)113、データ分割部(処理対象データ分割部)114、配分決定部(分割データ配分決定部)115、割当部(処理手順-分割データ割当部)116、処理手順実行部(処理手順多重実行部)117、及び情報収集部(ストレージ装置情報収集部)118を含む。
 なお、太線で囲われた部分は、本発明の特徴的な処理を実行する部分を示す。
 要求受付部112は、入出力装置10から検索要求を受け付け、処理手順生成部113に受け付けた検索要求を出力する。また、要求受付部112は、入出力装置10からシステム設定要求を受け付け、データベース管理システム111に含まれる各構成の処理タイミングを調整する。
 処理手順生成部113は、要求受付部112から入力された検索要求に基づいて、複数の処理手順を生成する。以下、生成された処理手順を処理手順候補とも記載する。処理手順生成部113は、複数の処理手順候補の集合である候補集合131を生成する。処理手順生成部113は、さらに、配分決定部115に生成された候補集合131を出力する。
 なお、候補集合131の詳細については、図7を用いて後述する。
 データ分割部114は、ストレージ装置12に格納された処理対象データの一部又は全部を複数個に分割することによって、複数個の分割データを生成する。さらに、データ分割部114は、分割データの集合である分割データ集合132を生成する。データ分割部114は、割当部116に生成された分割データ集合132を出力する。
 本発明の実施形態では、予め設定された分割方法に基づいて、処理対象データが分割される。なお、分割方法は、システム設定要求に含まれる分割指定によって設定される。分割指定については、図5に用いて後述する。
 情報収集部118は、ストレージ装置12と通信することによって、ストレージ装置12に関する情報が含まれるストレージ装置情報133を収集する。また、情報収集部118は、配分決定部115に収集されたストレージ装置情報133を出力する。
 本発明の実施形態におけるストレージ装置情報133には、少なくとも、ストレージ装置12の構成に関する情報である構成情報と、ストレージ装置12の負荷状態に関する情報である負荷情報とが含まれる。なお、ストレージ装置情報133は、他の情報を含んでもよい。
 配分決定部115は、処理手順生成部113から入力された候補集合131及び情報収集部118から入力されたストレージ装置情報133を参照して、候補集合131に含まれる複数個の処理手順に割り当てる分割データの配分を決定する。配分決定部115は、割当部116に決定された配分を含む配分情報134を出力する。
 割当部116は、配分決定部15から入力された配分情報134に基づいて、候補集合131に含まれる各処理手順に、分割データ集合132に含まれる分割データを割り当てる。さらに、割当部116は、分割データが割り当てられた複数の処理手順を処理手順実行部117に出力する。
 処理手順実行部117は、割当部116から入力され、分割データが割り当てられた複数の処理手順に従って、ストレージ装置12に対して複数のデータ読み出し要求を発行する。
 本実施形態のストレージ装置12は、データ読出部122、及びデータ格納部123を含む。
 データ読出部122は、メモリ106に格納されるプログラムであり、処理手順実行部117が発行したデータ読み出し要求に従って、データ格納部123からデータを読み出し、読み出された処理対象データをサーバ装置11に返信する。
 データ格納部123は、処理対象データを格納する記憶領域であり、各種処理対象データを格納する。図2に示す例では、顧客情報、購入履歴及び利用履歴がそれぞれのデータ格納部123に格納される。
 本発明の実施形態のデータベース管理システム111は、ストレージ装置情報133に基づいて、複数の処理手順に割り当てる分割データの配分を決定する。これによって、分割データの配分に従って、複数の処理手順が並列で実行される。また、分割データの配分は、データ格納部123に設定された負荷の上限値を超えないように決定される。
 図3Aは、本発明の実施形態のストレージ装置情報133に含まれる構成情報の一例を示す説明図である。図3Bは、本発明の実施形態のストレージ装置情報133に含まれる負荷情報の一例を示す説明図である。
 構成情報401は、ストレージ装置12が備えるデータ格納部123の構成に関する情報を格納する。具体的には、構成情報401は、格納部識別子4011、スループット上限値4012及び格納データ4013を含む。
 格納部識別子4011は、データ格納部123を識別するための識別子である。スループット上限値4012は、格納部識別子4011に対応するデータ格納部123が単位時間当たりに処理することができるデータ読み出し要求の最大個数、すなわち、スループットの上限値を表す。格納データ4013は、格納部識別子4011に対応するデータ格納部123に格納される処理対象データの情報である。
 図3Aに示す構成情報401では、スループット上限値4012が「60レコード/秒」であるデータ格納部123に顧客情報が格納され、スループット上限値4012が「10レコード/秒」であるデータ格納部123に購買履歴が格納され、スループット上限値4012が「50レコード/秒」であるデータ格納部123に利用履歴が格納されることが分かる。
 負荷情報402は、ストレージ装置12が備えるデータ格納部123における負荷情報を格納する。具体的には、負荷情報402は、格納部識別子4021、スループット値4022及び収集時刻4023を含む。
 格納部識別子4021は、データ格納部123を識別するための識別子である。スループット値4022は、格納部識別子4021に対応するデータ格納部123における単位時間あたりに処理されるデータ読み出し要求の個数(スループット)である。収集時刻4023は、スループット値4022に対応する値が収集された時刻である。
 図3Bに示す負荷情報402では、格納部識別子4021が「S1」のデータ格納部123のスループットが「53レコード/秒」であり、格納部識別子4021が「S2」のデータ格納部123のスループットが「10レコード/秒」であり、格納部識別子4021が「S3」のデータ格納部123のスループットが「50レコード/秒」であることが分かる。
 図4A~図4Cは、本発明の実施形態における検索対象データの一例を示す説明図である。
 本発明の実施形態では、検索対象データとして顧客情報601、購買履歴602、及び利用履歴603を含む表データを想定する。
 顧客情報601は、顧客の各種情報を格納する。例えば、顧客情報601には「顧客ID6011,性別6012,年代6013,趣味6014」に関する情報を含むレコードが格納される。以下、顧客情報を表すテーブルを顧客情報T1(601)とも記載する。
 購買履歴602は、各顧客の購入履歴を格納する。例えば、購買履歴602には「顧客ID6021,購買カテゴリ6022,購買額6023」に関する情報を含むレコードが格納される。以下、購買履歴を表すテーブルを購買履歴T2(602)とも記載する。
 利用履歴603は、各顧客が利用した店舗等の利用履歴を格納する。例えば、利用履歴603には「顧客ID6031,利用店舗6032,利用時間6033」に関する情報を含むレコードが格納される。以下、利用履歴を表すテーブルを利用履歴T3(603)とも記載する。
 なお、顧客情報601、購買履歴602、及び利用履歴603には他の情報が含まれてもよい。
 図5は、本発明の実施形態のデータベース管理システム111によって実行される検索処理を説明するフローチャートである。
 本発明の実施形態のデータベース管理システム111が処理を開始すると(ステップ300)、入出力装置10から検索要求を受け付ける前に、予め、CPU101によって実行される情報収集部118が、構成情報401及び負荷情報402等が含まれるストレージ装置情報133を収集する(ステップ301)。なお、CPU101は、周期的に情報収集部118を実行してもよいし、ストレージ装置12の構成が変更された等所定のタイミングで情報収集部118を実行してもよい。
 CPU101によって実行されるデータ分割部114は、予め設定された分割指定に基づいて、データ格納部123に格納される処理対象データの一部又は全部を分割し、分割データ集合{T}132を生成する(ステップ302)。その後、データベース管理システム111は、検索要求を受け付けるまで待ち状態となる。
 分割データ集合{T}132の生成方法としては、レコード単位に処理対象データを分割する方法だけでなく、ブロック(複数個のレコード)単位に処理対象データを分割する方法が考えられる。このとき、ブロック単位に処理対象データを分割する方法においても、ブロックを構成するレコード数均等にしてもよいし、不均等にしてもよい。さらに、処理対象データを処理開始時に全て分割するか、検索処理中に動的にブロックを構成するレコード数を変化させながら分割するかなど、様々な実施形態が考えられる。
 ここで、分割指定は、分割データ集合{T}132を生成するための情報であり、システム設定要求に含まれる情報である。
 図6は、本発明の実施形態におけるシステム設定要求に含まれる分割指定の一例を示す説明図である。
 図6に示す分割指定701は、分割データ集合{T}132の生成方法を指定する分割指定を格納する。
 具体的には、分割指定701は、分割単位7011、均等性7012、分割範囲7013、及び分割サイズ7014を含む。
 分割単位7011は、処理対象データを分割する単位を表す。均等性7012は、処理対象データを分割する場合に、均等に分割するか又は不均等に分割するかを表す。分割範囲7013は、分割するデータの範囲を表す。分割サイズ7014は、処理対象データの分割単位を処理中に変更するか否かを表す。
 図6に示す例では、分割の単位をレコード単位、データは均等に分割し、全ての処理対象データが分割対象、さらに、分割単位は処理中に変更しないことが指定される。
 ここで、図5のフローチャートの説明に戻る。
 次に、CPU101によって実行される要求受付部112は、入出力装置10から検索要求を受け付ける(ステップ303)。受け付けられた検索要求は、処理手順生成部113に出力される。
 本発明の実施形態では、検索要求は一般的なデータベース管理システムで利用されるSQL文で記述される。なお、SQL文の記述構文については、1999年にISO(国際標準化機構)/IEC(国際電気標準会議)によって制定されたSQL99などにおいて開示されている。
 図7は、本発明の実施形態で用いられる検索要求の一例を示す説明図である。
 図7に示す検索要求は、図4A~図4Cに示す三種類の業処理対象データを検索対象とする。
 具体的には、検索要求は「特定の条件を満たす顧客情報のうち、同一の顧客IDを有する利用履歴及び購買履歴について、それぞれ指定した条件を満たすような顧客情報を抽出すること」を目的とする。より具体的には、「30代女性であり、かつ新宿店への来店利用履歴があり、かつ、リビングカテゴリでの購買履歴がある顧客情報を抽出する」ことを指定している。
 さらに、本発明の実施形態では、性別及び年代(顧客情報)、購買カテゴリ(購買履歴)、並びに利用店舗(利用履歴)に関する条件に基づいて、情報が1/4、1/8、1/5に絞り込まれることを想定している。すなわち、顧客情報に含まれる全顧客のうち30代女性が1/4となっており、購買履歴のうち、購買カテゴリが「リビング」であるレコードが全体の1/8となっている。さらに、利用履歴のうち、利用店舗が「新宿店」であるレコードが全体の1/5となっている。
 ここで、図5のフローチャートの説明に戻る。
 次に、CPU101によって実行される処理手順生成部113は、要求受付部112から入力された検索要求に基づいて、複数個の処理手順候補を生成し、生成された複数個の処理手順候補から構成される候補集合{S}131を生成する(ステップ304)。
 なお、非特許文献1には、SQL文から処理手順候補を数え上げる手法が開示されており、具体的には、Bottom-up法を利用することによって、指定されたSQL文を処理する全ての処理手順候補を数え上げることが記載されている。
 図8A及び図8Bは、本発明の実施形態の処理手順生成部113によって生成される処理手順候補の一例を示す図である。
 図8A及び図8Bに示す処理手順候補は、処理手順が木構造で表現される。
 図8Aに示す処理手順候補は、「まず顧客情報から性別が女性、年代が30代であるレコードの顧客IDを抽出し、抽出された顧客IDに対応する顧客のうち、購買履歴から購買カテゴリがリビングであるレコードを抽出し、さらに、抽出された顧客IDに対応する顧客のうち、利用履歴から利用店舗が新宿であるレコードを抽出する」という処理手順である。
 図8Bに示す処理手順候補は、「まず顧客情報から性別が女性、年代が30代であるレコードの顧客IDを抽出し、抽出された顧客IDに対応する顧客のうち、利用履歴から利用店舗が新宿であるレコードを抽出し、さらに、抽出された顧客IDに対応する顧客のうち、購買履歴から購買カテゴリがリビングであるレコードを抽出する」という処理手順である。
 ここで、図5のフローチャートの説明に戻る。
 次に、CPU101によって実行される配分決定部115は、候補集合{S}131に含まれる各処理手順候補に対して割り当てる分割データの配分を決定する(ステップ305)。
 配分の決定処理については、図9を用いて後述する。
 CPU101によって実行される配分決定部115は、分割データ集合{T}132に割り当てられていない分割データが存在するか否かを判定する(ステップ306)。具体的には、分割データ集合{T}132が空であるか否かが判定される。
 割り当てる分割データが存在すると判定された場合、CPU101によって実行される割当部116は、決定された配分に従って、分割データを各処理手候補に割り当てる(ステップ307)。
 CPU101によって実行される処理手順実行部117は、分割データが割り当てられた複数の処理手順候補を実行する(ステップ308)。これによって、複数の処理手順候補に従った処理が、並列、かつ、多重に実行される。
 CPU101によって実行される情報収集部118は、処理手順の実行開始後に負荷情報402を収集する(ステップ309)。取得された負荷情報402は、配分決定部115に出力される。収集された負荷情報402は、配分決定部115に出力される。
 なお、負荷情報402は、処理開始後に収集されてもよいし、処理開始後周期的に収集されてもよいし、その他のタイミングで収集されてもよい。
 配分決定部115は、新たに入力された負荷情報402を参照し、前回配分を決定したとき(ステップ305)に用いた負荷情報402と比較し、データ格納部123に大きな負荷変動があるか否かを判定する(ステップ310)。
 例えば、収集時間の差が閾値以下、又は、負荷の変動幅が閾値以下の少なくともいずれか一方に該当するか否かが判定される。いずれかの条件に該当する場合には、データ格納部123に大きな負荷変動はないと判定される。一方、収集時間の差が閾値以上であり、かつ、負荷変動幅が閾値以上である場合には、データ格納部123に大きな負荷変動があると判定される。
 なお、収集時間の差の閾値及び負荷の変動幅の閾値は、システム設定要求に含めてもよいし、データベース管理システム111が当初より保持してもよい。
 本発明の実施形態のデータベース管理システム111は、処理実行中に、ストレージ装置12の負荷状態を監視する。これによって、データベース管理システム111は、ストレージ装置12の負荷が増大した場合に、ストレージ装置12の負荷状態に対応した処理手順候補を選択し、分割データの配分を動的に変更することができる。
 データ格納部123に大きな負荷変動がないと判定された場合、CPU101はステップ306に戻り、同様の処理を実行する(ステップ306~ステップ310)。
 データ格納部123に大きな負荷変動があると判定された場合、CPU101は、ステップ305に戻り、改めて配分を決定する(ステップ305)。すなわち、各処理手順候補に割り当てる分割データの配分が見直される。
 ステップ306において、割り当てる分割データが存在しないと判定された場合、CPU101は検索処理を終了し、システムを終了させるか否かを判定する(ステップ311)。例えば、入出力装置10からシステム終了を指示する命令が入力された場合に、システムを終了すると判定される。
 システムを終了しないと判定された場合、CPU101は、ステップ305に戻り、新たな検索要求の受付を待つこととなる。CPU101は、新たな検索要求を受け付けた場合に、同様の処理(ステップ303~ステップ311)を繰り返し実行する。
 システムを終了すると判定された場合、CPU101は、システムを終了させる(ステップ312)。
 本発明の実施形態では、ストレージ装置12の性能を最大限利用するために複数の処理手順で検索処理が実行される。このとき、複数の処理手順に分配するデータは、ストレージ装置12の負荷状態を考慮し、さらに、ストレージ装置12のスループットが最大になるように配分される。これによって、ストレージ装置12の性能を最大限に利用することが可能となる。
 従来は、一つの処理手順しか選択していないため、データ格納部123にアクセスする順序が常に同じになってしまっていた。そのため、特定のデータ格納部123の負荷が高くなり、他のデータ格納部123の負荷が少なくなってしまう場合があった。このとき、負荷の高いデータ格納部123に対するデータ入出力がボトルネックとなって性能が悪化してしまうことがあった。本発明の実施形態では、データ格納部123に対するアクセス順序が異なる複数の処理手順が同時に実行されるため、データ格納部123の負荷が分散し、特定のデータ格納部123の性能に空きが発生することを防ぐことができる。また、同時に実行される複数の処理手順に対する分割データの配分を後述する方法を用いて決定することによって、各データ格納部123の性能を最大限に利用できる。
 次に、ステップ305において実行される処理手順候補に割り当てる分割データの配分の決定処理について説明する。
 本発明の実施形態におけるステップ305の処理では、線形計画法が用いられる。線形計画法とは、制約条件の下、目的関数を最大(又は最小)にする値を求めるための方法である。
 本発明の実施形態では、ストレージ装置12の負荷が上限値を超えないという制約条件の下、複数の処理手順によって検索を実行することによって処理される総データを表す目的関数が最大となる分割データの配分が算出される。
 図9は、本発明の実施形態のCPU101によって実行される配分決定部115が実行する処理を説明するフローチャートである。本処理は、図5のステップ305の処理に対応する。なお、図9の処理は、CPU101によって実行される配分決定部115によって実行される。
 ステップ801~ステップ806までは、目的関数及び制約条件を決定するための処理である。
 まず、配分決定部115は、n番目のデータ格納部123に設定されたスループットの上限値max_Xnを設定する(ステップ801)。
 具体的には、配分決定部115は、入力されたストレージ装置情報133に含まれる構成情報401のスループット上限値4012を参照し、当該スループット上限値4012に格納される値をスループット上限値max_Xnに設定する。なお、nは、データ格納部123を識別するための文字を表す。
 配分決定部115は、候補集合{S}から部分集合{S[Tj]}を生成する(ステップ802)。
 具体的には、配分決定部115は、各処理手順候補si∈{S}のうち、最初にアクセスされる処理対象データ(処理開始表Tj)が共通である処理手順候補を一つにまとめて部分集合{S[Tj]}を生成する。すなわち、本発明の実施形態では、最初に処理される処理対象データが共通の処理手順候補を要素とする部分集合{S[Tj]}が生成される。ここで、jは部分集合を識別する文字であり、表(処理対象データ)の数だけ部分集合が存在することとなる。
 なお、処理開始表Tjが異なる処理手順が並列で実行された場合、処理結果に重複が出る可能性があるため、本発明の実施の形態では、処理開始表Tjが同一の処理手順候補を一つにまとめことによって、処理の整合性が確保される。
 以下、各部分集合{S[Tj]}について、ステップ804からステップ807まで処理が繰り返し実行される(ステップ803)。
 配分決定部115は、部分集合S[Tj]に含まれる要素(処理手順候補)毎の予測I/O数Cjkを定義する(ステップ804)。
 具体的には、配分決定部115は、部分集合S[Tj]の要素である処理手順候補Sjk∈S[Tj]について、当該処理手順候補Sjkにおいて発生する予測総I/O数をCjkとする。ここで、文字kは、1~njまでの自然数であり、部分集合に含まれる要素の数を表す。また、njは、部分集合S[Tj]の要素数である。
 配分決定部115は、部分集合S[Tj]に含まれる処理手順候補Sjk毎に、各表(処理対象データ)に対する処理のスループットXjkmを定義する(ステップ805)。
 具体的には、配分決定部115は、処理開始表TjからスループットXjkの負荷で処理を開始した場合に、m番目の表に対する処理のスループットをXjkmとする。すなわち、処理手順候補Sjkにおいて、m番目の処理対象データを処理する場合の負荷が定義される。ここで、mは、処理手順候補Sjkにおける処理順番を表す文字である。
 なお、スループットXjkは、任意の変数である。
 例えば、処理開始表Tjに付加されたスループットXjkに、処理途中で適用される問合せ処理の条件絞込み率を乗算することによって、m番目の表(処理対象データ)に対する処理のスループットを算出できる。
 配分決定部115は、部分集合S[Tj]に含まれる全ての処理手順候補が並列に実行された場合における各データ格納部123のスループットの総和sum_Xjkを定義する(ステップ806)。
 具体的には、以下のような処理が実行される。
 まず、配分決定部115は、入力されたストレージ装置情報133に含まれる構成情報401を参照し、n番目のデータ格納部123に格納される表(処理対象データ)Tjkmを確認する。
 次に、配分決定部115は、データ格納部123に格納される表のスループットXjkmを足し合わせたものをsum_Xjkmとする。すなわち、データ格納部123に格納される全ての表(処理対象データ)についてのスループットの総和がsum_Xjkmとなる。
 配分決定部115は、制約条件の下、目的関数TotalXjの値が最大となる変数Xjkを求める(ステップ807)。すなわち、線形計画法を用いて、変数Xjkが算出される。
 ここで、制約条件は式(1)に示すようになり、目的関数TotalXjは式(2)に示すようになる。
Figure JPOXMLDOC01-appb-M000001
Figure JPOXMLDOC01-appb-M000002
 すなわち、式(1)及び式(2)は、各データ格納部123に設定されたスループットの上限値を超えない範囲で、候補集合に含まれる処理手順候補を並列で実行した場合のスループットの合計が最大となる配分を決定するための式である。
 ここで、目的関数TotalXjが最大となるスループットをXjk_maxと定義する。
 配分決定部115は、ステップ804からステップ807までの処理を各部分集合S[Tj]について繰り返し実行する(ステップ808)。
 全ての部分集合S[Tj]について処理が実行された後、配分決定部115は、各部分集合におけるスループットの総和TotalXjに基づいて配分を決定し(ステップ809)、処理を終了する(ステップ810)。
 具体的には、以下のようの処理が実行される。
 まず、配分決定部115は、スループットの総和TotalXjの値が最大である部分集合S[Tj]を選択する。
 次に、配分決定部115は、選択された部分集合S[Tj]におけるスループットXjk_maxの比率を、選択された部分集合S[Tj]に含まれる各処理手順候補Sjkに対する分割データの配分比率に決定する。
 以上のように、本発明の実施形態では、配分決定部115が、各データ格納部123の性能限界を超えない範囲で、かつ、各データ格納部123のスループットの合計値が最大となるような複数の処理手順を選択する。また、複数の処理手順に割り当てる分割データの配分は、各データ格納部123の性能限界を超えない範囲で、かつ、各データ格納部123のスループットの合計値が最大となるように決定される。したがって、決定された配分に基づいて複数の処理手順が実行されることによって、ストレージ装置12の性能を最大限利用する検索処理が可能となる。
 次に、具体的な例を示して図9の処理を説明する。なお、説明を簡単にするため、以下のような前提とする。
 処理対象データは、顧客情報T1(601)、購買履歴T2(602)及び利用履歴T3(603)とする。また、顧客情報T1(601)、購買履歴T2(602)及び利用履歴T3(603)は、図2に示すように、それぞれ、異なるデータ格納部123に格納される。すなわち、図3Aに示すように、顧客情報T1(601)は格納部識別子4011が「S1」であるデータ格納部123に格納され、購買履歴T2(602)は格納部識別子4011が「S2」であるデータ格納部123に格納され、利用履歴T3(603)は格納部識別子4011が「S3」であるデータ格納部123に格納される。
 このとき、ステップ304において、3つの処理対象データの参照順番の組み合わせから考えられる6つの処理手順候補が生成される。
 以下、前述した前提の下、配分決定部115によって実行される処理について説明する。
 ステップ801において、配分決定部115は、構成情報401を参照して、顧客情報T1(601)が格納されるデータ格納部123のスループット上限値max_X1を「150」、購買履歴T2(602)が格納されるデータ格納部123のスループット上限値max_X2を「100」、利用履歴T3(603)が格納されるデータ格納部123のスループット上限値max_X3を「50」とする。
 ステップ802において、配分決定部115は、顧客情報T1(601)を処理開始表とする部分集合S[T1]、購買履歴T2(602)を処理開始表とする部分集合S[T2]、及び、利用履歴T3(603)を処理開始表とする部分集合S[T3]を生成する。
 部分集合S[T1]、S[T2]及びS[T3]は以下に示す要素(処理手順候補)を含む。
S[T1]={s11,s12}
S[T2]={s12,s22}
S[T3]={s31,s32}
 ここで、各部分集合S[T1]、S[T2]、S[T3]に含まれる要素(処理手順候補)は以下のようになる。
[処理開始表が顧客情報T1の場合]
 処理手順候補s11:顧客情報→購買履歴→利用履歴:割当てスループット:X11
 処理手順候補s12:顧客情報→利用履歴→購買履歴:割当てスループット:X12
[処理開始表が購買履歴T2の場合]
 処理手順候補s21:購買履歴→顧客情報→利用履歴:割当てスループット:X21
 処理手順候補s22:購買履歴→利用履歴→顧客情報:割当てスループット:X22
[処理開始表が利用履歴T3の場合]
 処理手順候補s31:利用履歴→購買履歴→顧客情報:割当てスループット:X31
 処理手順候補s32:利用履歴→顧客情報→購買履歴:割当てスループット:X32
なお、割当てスループットは、各処理手順に配分するデータ量に関連する変数である。
 以下、部分集合毎にステップ804からステップ807までの処理が繰り返し実行されるが、説明の簡単のために処理開始表が顧客情報T1(601)である部分集合S[T1]について説明する。
 ステップ804において、配分決定部115は、部分集合S[T1]に含まれる各処理手順候補s11、s12における予測総I/O数をc11、c12と定義する。なお、予測総I/O数は、処理手順候補s11、s12に基づいて算出することができる。配分決定部115は、算出された予測総I/O数をc11、c12とする。
 ステップ805において、配分決定部115は、各処理手順候補s11、s12に割り当てる処理スループットをX11、X12とする。さらに、配分決定部115は、処理手順候補s11において順番に処理される表における負荷スループットをX111、X112、X113と定義し、また、処理手順候補s12において、順番に処理される表における負荷スループットをX121、X122、X123と定義する。
 本発明の実施形態の場合、顧客情報T1(601)、購買履歴T2(602)及び利用履歴T3(603)は、それぞれ異なるデータ格納部123に格納される。すなわち、顧客情報T1(601)、購買履歴T2(602)及び利用履歴T3(603)とデータ格納部123とが一対一に対応する。したがって、データ格納部123毎のスループットと表(処理対象データ)毎のスループットとは等しいものとして扱える。すなわち、データ格納部123のスループットは、処理手順候補に割り当てられた処理スループットX11、X12で表される。
 したがって、ステップ806において、配分決定部115は、sum_X111、sum_X112、sum_X113を式(3)~(5)のように定義できる。
Figure JPOXMLDOC01-appb-M000003
Figure JPOXMLDOC01-appb-M000004
Figure JPOXMLDOC01-appb-M000005
 ここで、負荷スループットXjkmを処理スループットX11、X12を用いて表すと以下の式(6)~(8)に示すようになるものとする。
Figure JPOXMLDOC01-appb-M000006
Figure JPOXMLDOC01-appb-M000007
Figure JPOXMLDOC01-appb-M000008
 ステップ807において、配分決定部115は、式(9)~(11)に示す制約条件を満たし(すなわち、負荷スループットの総和がスループット上限値を超えない範囲で)、かつ、式(12)に示すTotalXjを最大とするX11及びX12を算出する。
Figure JPOXMLDOC01-appb-M000009
Figure JPOXMLDOC01-appb-M000010
Figure JPOXMLDOC01-appb-M000011
Figure JPOXMLDOC01-appb-M000012
 この場合、目的関数が最大となる解は、X11_max=3.846、X12_max=49.23と算出される。このとき、目的関数TotalX1の値は、9.990となる。
 以上が、部分集合S[T1]についてステップ804~ステップ807の処理が実行された場合の説明である。
 部分集合S[T2]についても同様の処理が実行されることによって、以下のような制約条件及び目的関数となる。
[処理開始表:購買履歴T2の場合]
Figure JPOXMLDOC01-appb-M000013
Figure JPOXMLDOC01-appb-M000014
Figure JPOXMLDOC01-appb-M000015
Figure JPOXMLDOC01-appb-M000016
 この場合、目的関数が最大となる解は、X21_max=10.0、X22_max=0.0となる。このとき、目的関数TotalX2の値は、5.0と算出される。
 部分集合S[T3]についても同様の処理が実行されることによって、以下のような制約条件及び目的関数となる。
[処理開始表:利用履歴T3の場合]
Figure JPOXMLDOC01-appb-M000017
Figure JPOXMLDOC01-appb-M000018
Figure JPOXMLDOC01-appb-M000019
Figure JPOXMLDOC01-appb-M000020
 この場合、目的関数が最大となる解は、X31_max=0.0、X32_max=40.0と算出される。このとき、目的関数TotalX2の値は、8.988となる。
 ステップ809において、配分決定部115は、各部分集合における目的関数の値を参照し、目的関数の値が最大となる部分集合を選択する。この場合、部分集合S[T1]が選択される。
 また、配分決定部115は、部分集合S[T1]における目的関数の解、すなわち、処理手順候補s11、s12のそれぞれのスループットX11_max=3.846、X12_max=49.23を、分割データ{T}の配分比率として決定する。
 以上の処理によって、ステップ306において、決定された配分比率に基づいて処理手順候補s11、s12が実行される。
 なお、本発明の実施形態では、データ格納部123を例に説明したが、ストレージシステムを備える計算機システムにも適用することができる。この場合、ストレージ装置12単位のスループットを考慮すればよい。
 本発明の実施形態によれば、ストレージ装置12に含まれる記憶装置の負荷状況に基づいて複数の処理手順に割り当てるデータ量の配分が決定され、また、決定された配分に従って複数の処理手順が同時に実行される。これによって、複数の処理手順をストレージ装置12の使用率が最大になるように実行することができ、ストレージ装置の性能を最大限利用し、かつ、高速に検索処理が可能となる。また、本発明の実施形態によれば、並列に複数の処理手順が実行されている場合に、ストレージ装置12の負荷状況に応じて、実行する処理手順及び各処理手順に割り当てるデータの配分を動的に変更できる。これによって、特定の記憶装置に負荷が集中した場合等性能の低下に柔軟に対応した検索処理が可能となる。
 以上、本発明を添付の図面を参照して詳細に説明したが、本発明はこのような具体的構成に限定されるものではなく、添付した請求の範囲の趣旨内における様々な変更及び同等の構成を含むものである。

Claims (12)

  1.  受信した要求に対する結果を出力する計算機と、前記要求に基づいて出力されるデータを格納するストレージシステムとを備える計算機システムであって、
     前記計算機は、第1のプロセッサと、前記第1のプロセッサと接続される第1のメモリと、前記第1のプロセッサに接続される第1のネットワークインタフェースとを有し、
     前記ストレージシステムは、第2のプロセッサと、前記第2のプロセッサに接続される第2のメモリと、前記第2のプロセッサに接続され、複数の前記データが格納される複数の記憶装置と、前記第2のプロセッサに接続される第2のネットワークインタフェースとを有し、
     前記計算機は、
     前記要求を受信する要求受付部と、
     前記要求に基づいて、前記各記憶装置に格納される前記データにアクセスする順序を含む複数の処理手順を生成する処理手順生成部と、
     前記各記憶装置に格納される前記データを分割するデータ分割部と、
     前記ストレージシステムの負荷状態を表す負荷情報を取得する情報取得部と、
     前記取得された負荷情報に基づいて、前記生成された各処理手順によって処理される前記分割されたデータを割り当てるための配分を決定する配分決定部と、
     前記決定された配分に基づいて、前記生成された各処理手順を並列実行する処理実行部と、を有することを特徴とする計算機システム。
  2.  請求項1に記載の計算機システムであって、
     前記取得された負荷情報には、前記ストレージシステムが有する前記各記憶装置の負荷の上限を表す負荷上限値が含まれ、
     前記配分決定部は、前記生成された複数の処理手順が実行された場合における前記各記憶装置の負荷が前記負荷上限値以下となり、かつ、前記生成された複数の処理手順によって処理されるデータ量の合計値が最大となる配分を算出することを特徴とする計算機システム。
  3.  請求項2に記載の計算機システムであって、
     前記配分決定部は、
     前記生成された複数の処理手順を、前記処理手順における最初にアクセスされるデータを格納する前記記憶装置が共通する前記処理手順を一つの集合とする部分集合を生成し、
     前記部分集合に含まれる複数の処理手順が実行された場合における前記各記憶装置の負荷が前記負荷上限値以下となり、かつ、前記部分集合に含まれる複数の処理手順によって処理されるデータ量の合計値が最大となる配分を前記部分集合毎に算出し、
     前記算出された合計値が最大となる部分集合を選択し、
     前記処理実行部は、前記選択された部分集合における配分に基づいて、前記選択された部分集合に含まれる複数の処理手順を並列実行することを特徴とする計算機システム。
  4.  請求項1に記載の計算機システムであって、
     前記情報取得部は、前記処理実行部が前記生成された複数の処理手順を並列実行中の前記各記憶装置の負荷情報を取得し、
     前記配分決定部は、
     前記負荷情報を参照して、いずれかの前記記憶装置において所定値以上の負荷変動があるか否かを判定し、
     前記いずれかの記憶装置において所定値以上の負荷変動があると判定された場合に、前記生成された処理手順に割り当てる前記分割されたデータの配分を再度算出し、
     前記処理実行部は、新たに算出された前記配分に基づいて、前記生成された複数の処理手順を並列実行することを特徴とするの計算機システム。
  5.  受信した要求に対する結果を出力する計算機と、前記要求に基づいて出力されるデータを格納するストレージシステムとを有する計算機システムにおけるデータ検索方法であって、
     前記計算機は、第1のプロセッサと、前記第1のプロセッサと接続される第1のメモリと、前記第1のプロセッサに接続される第1のネットワークインタフェースとを有し、
     前記ストレージシステムは、第2のプロセッサと、前記第2のプロセッサに接続される第2のメモリと、前記第2のプロセッサに接続され、複数の前記データが格納される複数の記憶装置と、前記第2のプロセッサに接続される第2のネットワークインタフェースとを有し、
     前記方法は、
     前記計算機が、前記要求を受信するステップと、
     前記計算機が、前記各記憶装置に格納される前記データを分割するステップと、
     前記計算機が、前記要求に基づいて、前記各記憶装置に格納される前記データにアクセスする順序を含む複数の処理手順を生成するステップと、
     前記計算機が、前記ストレージシステムの負荷状態を表す負荷情報を取得するステップと、
     前記計算機が、前記取得された負荷情報に基づいて、前記生成された各処理手順によって処理される前記分割されたデータを割り当てるための配分を決定するステップと、
     前記計算機が、前記決定された配分に基づいて、前記生成された各処理手順を並列実行するステップと、を含むことを特徴とするデータ検索方法。
  6.  請求項5に記載のデータ検索方法であって、
     前記取得された負荷情報には、前記ストレージシステムが有する前記各記憶装置の負荷の上限を表す負荷上限値が含まれ、
     前記配分を決定するステップでは、前記計算機が、前記生成された複数の処理手順が実行された場合における前記各記憶装置の負荷が前記負荷上限値以下となり、かつ、前記生成された複数の処理手順によって処理されるデータ量の合計値が最大となる配分を算出することを特徴とするデータ検索方法。
  7.  請求項6に記載のデータ検索方法であって、
     前記配分を決定するステップは、
     前記計算機が、前記生成された複数の処理手順を、前記処理手順における最初にアクセスされるデータを格納する前記記憶装置が共通する前記処理手順を一つの集合とする部分集合を生成するステップと、
     前記計算機が、前記部分集合に含まれる複数の処理手順が実行された場合における前記各記憶装置の負荷が前記負荷上限値以下となり、かつ、前記部分集合に含まれる複数の処理手順によって処理されるデータ量の合計値が最大となる配分を前記部分集合毎に算出するステップと、
     前記計算機が、前記算出された合計値が最大となる部分集合を選択するステップとを含み、
     前記処理手順を実行するステップは、前記選択された部分集合における配分に基づいて、前記選択された部分集合に含まれる複数の処理手順を並列実行するステップを含むことを特徴とするデータ検索方法。
  8.  請求項5に記載のデータ検索方法であって、
     前記方法は、
     さらに、前記計算機が、前記処理実行部が前記生成された複数の処理手順を並列実行中の前記各記憶装置の負荷情報を取得するステップと、
     前記計算機が、前記取得された負荷情報を参照して、いずれかの前記記憶装置において所定値以上の負荷変動があるか否かを判定するステップと、
     前記計算機が、前記いずれかの記憶装置において所定値以上の負荷変動があると判定された場合に、前記生成された処理手順に割り当てる前記分割されたデータの配分を再度算出するステップと、
     前記計算機が、新たに算出された前記配分に基づいて、前記生成された複数の処理手順を並列実行するステップと、を含むことを特徴とするデータ検索方法。
  9.  受信した要求に対して、前記要求の処理対象であるデータを格納するストレージシステムからデータを読み出し、前記読み出されたデータに対する処理を実行することによって結果を出力する管理計算機であって、
     前記管理計算機は、プロセッサと、前記プロセッサと接続されるメモリと、前記プロセッサに接続されるネットワークインタフェースとを有し、
     前記管理計算機は、
     前記要求を受信する要求受付部と、
     前記要求に基づいて、前記ストレージシステムが有する複数の記憶装置のそれぞれに格納される前記データにアクセスする順序を含む複数の処理手順を生成する処理手順生成部と、
     前記各記憶装置に格納される前記データを分割するデータ分割部と、
     前記ストレージシステムの負荷状態を表す負荷情報を取得する情報取得部と、
     前記取得された負荷情報に基づいて、前記生成された各処理手順によって処理される前記分割されたデータを割り当てるための配分を決定する配分決定部と、
     前記決定された配分に基づいて、前記生成された各処理手順を並列実行する処理実行部と、を有することを特徴とする管理計算機。
  10.  請求項9に記載の管理計算機であって、
     前記取得された負荷情報には、前記ストレージシステムが有する前記各記憶装置の負荷の上限を表す負荷上限値が含まれ、
     前記配分決定部は、前記生成された複数の処理手順が実行された場合における前記各記憶装置の負荷が前記負荷上限値以下となり、かつ、前記生成された複数の処理手順によって処理されるデータ量の合計値が最大となる配分を算出することを特徴とする管理計算機。
  11.  請求項10に記載の管理計算機であって、
     前記配分決定部は、
     前記生成された複数の処理手順を、前記処理手順における最初にアクセスされるデータを格納する前記記憶装置が共通する前記処理手順を一つの集合とする部分集合を生成し、
     前記部分集合に含まれる複数の処理手順が実行された場合における前記各記憶装置の負荷が前記負荷上限値以下となり、かつ、前記部分集合に含まれる複数の処理手順によって処理されるデータ量の合計値が最大となる配分を前記部分集合毎に算出し、
     前記算出された合計値が最大となる部分集合を選択し、
     前記処理実行部は、前記選択された部分集合における配分に基づいて、前記選択された部分集合に含まれる複数の処理手順を並列実行することを特徴とする管理計算機。
  12.  請求項9に記載の管理計算機であって、
     前記情報取得部は、前記処理実行部が前記生成された複数の処理手順を並列実行中の前記各記憶装置の負荷情報を取得し、
     前記配分決定部は、
     前記負荷情報を参照して、いずれかの前記記憶装置において所定値以上の負荷変動があるか否かを判定し、
     前記いずれかの記憶装置において所定値以上の負荷変動があると判定された場合に、前記生成された処理手順に割り当てる前記分割されたデータの配分を再度算出し、
     前記処理実行部は、新たに算出された前記配分に基づいて、前記生成された複数の処理手順を並列実行することを特徴とする管理計算機。
PCT/JP2011/054175 2010-09-10 2011-02-24 計算機システム、データ検索方法及びデータベース管理計算機 WO2012032799A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US13/814,989 US9384219B2 (en) 2010-09-10 2011-02-24 Computer system, data retrieval method and database management computer

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2010-203377 2010-09-10
JP2010203377A JP5043166B2 (ja) 2010-09-10 2010-09-10 計算機システム、データ検索方法及びデータベース管理計算機

Publications (1)

Publication Number Publication Date
WO2012032799A1 true WO2012032799A1 (ja) 2012-03-15

Family

ID=45810407

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2011/054175 WO2012032799A1 (ja) 2010-09-10 2011-02-24 計算機システム、データ検索方法及びデータベース管理計算機

Country Status (3)

Country Link
US (1) US9384219B2 (ja)
JP (1) JP5043166B2 (ja)
WO (1) WO2012032799A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9710515B2 (en) 2012-05-31 2017-07-18 Hitachi, Ltd. Analysis system, computer system, and analysis method for analyzing behavior of database management system
JPWO2016092604A1 (ja) * 2014-12-08 2017-06-01 株式会社日立製作所 データ処理システムおよびデータアクセス方法
WO2016110985A1 (ja) * 2015-01-08 2016-07-14 株式会社日立製作所 管理方法及び管理装置並びに記憶媒体
CN111597272B (zh) * 2020-05-26 2023-10-27 广州迈安信息科技有限公司 工程造价数据的存储方法、装置、数据服务器和存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004280528A (ja) * 2003-03-17 2004-10-07 Hitachi Ltd データベースシステム、サーバ、問い合わせ投入方法及びデータ更新方法
JP2009545060A (ja) * 2006-07-26 2009-12-17 マイクロソフト コーポレーション 超大規模データベースに対するデータ処理

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2912225B2 (ja) 1996-04-18 1999-06-28 四国日本電気ソフトウェア株式会社 通信処理システム
JP2005301353A (ja) 2004-04-06 2005-10-27 Canon Inc 分散情報検索方法及び検索中継装置、システム、プログラム、コンピュータ可読メモリ
US7555486B2 (en) * 2005-01-20 2009-06-30 Pi Corporation Data storage and retrieval system with optimized categorization of information items based on category selection
US7769754B2 (en) * 2006-05-15 2010-08-03 Algebraix Data Corporation Systems and methods for data storage and retrieval using algebraic optimization
US7870128B2 (en) * 2006-07-28 2011-01-11 Diskeeper Corporation Assigning data for storage based on speed with which data may be retrieved
US7908259B2 (en) * 2006-08-25 2011-03-15 Teradata Us, Inc. Hardware accelerated reconfigurable processor for accelerating database operations and queries

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004280528A (ja) * 2003-03-17 2004-10-07 Hitachi Ltd データベースシステム、サーバ、問い合わせ投入方法及びデータ更新方法
JP2009545060A (ja) * 2006-07-26 2009-12-17 マイクロソフト コーポレーション 超大規模データベースに対するデータ処理

Also Published As

Publication number Publication date
US9384219B2 (en) 2016-07-05
US20130159303A1 (en) 2013-06-20
JP5043166B2 (ja) 2012-10-10
JP2012059130A (ja) 2012-03-22

Similar Documents

Publication Publication Date Title
US11615091B2 (en) Database system implementation of a plurality of operating system layers
JP5244236B2 (ja) 計算機システム、方法、およびプログラム
JP4571609B2 (ja) リソース割当方法、リソース割当プログラム、および、管理コンピュータ
CN111913955A (zh) 数据的排序处理装置、方法和存储介质
JP6172649B2 (ja) 情報処理装置、プログラム、及び、情報処理方法
CN111406250A (zh) 无服务器计算环境中的使用经预取的数据的配设
KR20150019359A (ko) 분산 시스템에서 데이터를 처리하는 방법
CN110058940B (zh) 一种多线程环境下的数据处理方法及装置
US20170228373A1 (en) Dynamic Hash Table Size Estimation During Database Aggregation Processing
JP2009223497A (ja) 管理マシン、管理システム、管理プログラム、および、管理方法
CN111338779B (zh) 资源分配方法、装置、计算机设备和存储介质
US11151141B2 (en) Data processing device and data processing method
CN116560860B (zh) 一种基于机器学习的资源优先级的实时优化调整方法
CN113342477A (zh) 一种容器组部署方法、装置、设备及存储介质
JP5043166B2 (ja) 計算機システム、データ検索方法及びデータベース管理計算機
US20130124817A1 (en) Information processing apparatus
CN112925792A (zh) 数据存储控制方法、装置、计算设备及介质
CN113407108A (zh) 一种数据存储方法和系统
CN113703945B (zh) 微服务集群的调度方法、装置、设备及存储介质
US20230137673A1 (en) Systems and methods for dynamically scaling remote resources
CN114077481A (zh) 任务调度方法、装置、设备和存储介质
EP3048541A1 (en) File access method and device
CN111338782A (zh) 面向共享式突发数据缓存的基于竞争感知的节点分配方法
US20240028397A1 (en) Computational resource allocation advisor for elastic cloud databases
KR102024846B1 (ko) 파일 시스템 프로그램 및 이를 이용한 데이터 센터 제어 방법

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: 11823278

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 13814989

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 11823278

Country of ref document: EP

Kind code of ref document: A1