WO2018158819A1 - 分散データベースシステム及び分散データベースシステムのリソース管理方法 - Google Patents

分散データベースシステム及び分散データベースシステムのリソース管理方法 Download PDF

Info

Publication number
WO2018158819A1
WO2018158819A1 PCT/JP2017/007799 JP2017007799W WO2018158819A1 WO 2018158819 A1 WO2018158819 A1 WO 2018158819A1 JP 2017007799 W JP2017007799 W JP 2017007799W WO 2018158819 A1 WO2018158819 A1 WO 2018158819A1
Authority
WO
WIPO (PCT)
Prior art keywords
task
data
node
database system
data processing
Prior art date
Application number
PCT/JP2017/007799
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 JP2019502321A priority Critical patent/JP6753999B2/ja
Priority to PCT/JP2017/007799 priority patent/WO2018158819A1/ja
Priority to US16/333,727 priority patent/US10936377B2/en
Publication of WO2018158819A1 publication Critical patent/WO2018158819A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5094Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/28Supervision thereof, e.g. detecting power-supply failure by out of limits supervision
    • 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/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/278Data partitioning, e.g. horizontal or vertical partitioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2043Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant where the redundant components share a common memory address space
    • 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/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2471Distributed queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/335Filtering based on additional data, e.g. user or group profiles
    • G06F16/337Profile generation, learning or modification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/509Offload
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/9994Distributed or remote access

Definitions

  • the present invention relates to a distributed database system and a distributed database system resource management method, and is particularly suitable for application to a resource management method in data analysis processing using a distributed database system.
  • a distributed database system that speeds up processing by distributing a large number of data processing servers and executing data processing in parallel.
  • a distributed database system for example, Apache Hadoop (registered trademark) is used.
  • nodes data processing servers
  • the system scale increases, and the introduction and maintenance costs increase. To do.
  • FPGA Field programmable gate array
  • GPGPU General-purpose computing on graphics processing units
  • ASIC Application specific integrator
  • Accelerator Integrate node etc. It is conceivable to apply technology that improves the performance of the system and reduces the required number of nodes to reduce the system scale.
  • an accelerator not only is it possible to install an accelerator with the same performance on all nodes in the distributed system, and the CPU (Central processing unit) performance of the node itself can have the same homogeneous configuration, but also the accelerator. It is assumed that there are various types of nodes, the nodes to be mounted are limited, and the CPU performance varies depending on the nodes. In such a case, non-uniformity occurs in the system, and the data processing performance of each node may vary.
  • Non-Patent Document 1 in a distributed processing system with non-uniform node performance, a node group having different performance is provided for each task type, which is a processing unit for performing divided processing in a distributed manner according to the CPU usage rate of the node.
  • An assigning technique is disclosed.
  • Patent Document 1 discloses a technique for adjusting the processing of each node of a parallel distributed system when a parallel distributed system coexists with a server used by an existing system. ing.
  • the calculation resources and I / O resources of the nodes that can be used by the distributed system vary depending on the execution status of the processing.
  • the node load and the resource usage are observed, and the data block is transferred from another node to the node having a sufficient load or resource of the node according to the progress of the processing of the data block held by the node. .
  • Patent Document 2 the maximum data amount processed per task executed by a node is determined based on the relationship between the number of tasks of each node and the number of nodes with respect to the input data amount. Thus, a method for leveling the processing time for each node is disclosed.
  • the order of allocating a plurality of different tasks to nodes is distributed, for example, so that the CPU usage rate of all the nodes is equal, but the same task as in Hadoop (registered trademark) processing. It is not applied to a system that distributes to multiple nodes.
  • Patent Document 1 the processing time of a node is leveled by transferring data to a node with a margin during the execution of processing according to the processing status of the node. Does not consider bias.
  • Patent Document 2 input data is divided equally according to the total number of tasks processed by the distributed system and arranged in each node. However, since the amount of data per task is equal, the variation in calculation performance of each node is Not considered.
  • the present invention has been made in consideration of the above points, and intends to propose a distributed database system and a resource management method for the distributed database system that can shorten the data processing time of the entire system.
  • a distributed database system including one or more data processing nodes equipped with one or more calculation devices for processing data
  • the calculation of each of the calculation devices in the data processing node is performed.
  • a calculation capability determination unit that determines a difference in capability; a device selection unit that selects a plurality of optimal calculation devices based on a difference in calculation capability of each of the calculation devices; and the task using the plurality of optimal calculation devices.
  • the data amount of the data processed by the processing instruction of the task is distributed among the optimum plurality of computing devices according to the difference in the computing ability of the optimum plurality of computing devices, and the optimum
  • a task distribution control unit that distributes and executes the task using a plurality of computing devices.
  • the control unit in the resource management method in a distributed database system including one or more computing devices for processing data and one or more data processing nodes equipped with a control unit, includes the data processing A calculation capability determination step for determining a difference in calculation capability of each of the calculation devices in a node; and a device selection step in which the control unit selects a plurality of optimal calculation devices based on the difference in calculation capability of each of the calculation devices;
  • the control unit executes the task using the optimal plurality of computing devices, the data amount of the data processed by the processing instruction of the task is determined based on the difference in calculation ability of the optimal plurality of computing devices.
  • the distribution of the plurality of optimum computing devices and using the plurality of optimum computing devices. It characterized by having a a task distribution control step of executing by dispersing the task.
  • data processing time can be shortened for the entire system.
  • FIG. 1 It is a figure showing the example of a structure of the distributed database system by this Embodiment. It is the figure which showed an example of the structure in the case of processing a data source by 20 data processing nodes. It is the figure which showed an example of the structure in the case of processing a data source with ten data processing nodes. It is the figure which showed another example of the structure in the case of processing a data source with ten data processing nodes. It is the figure which showed an example of the structure in the case of processing a data source with two accelerator mounting data processing nodes. It is the figure which showed another example of the structure in the case of processing a data source with two accelerator mounting data processing nodes.
  • FIG. 1 is a block diagram showing a configuration example of a distributed database system according to this embodiment.
  • the distributed database system includes a client node 101, a job management node 103, a resource management node 104, a data management node 105, data processing nodes 111 to 114, and data storage nodes 115 to 118.
  • these nodes 101 are connected via a network such as Ethernet (registered trademark), and control signals and data are transmitted and received through this network.
  • a network such as Ethernet (registered trademark)
  • this network may be a network (LAN: Local area network) closed within a local domain.
  • LAN Local area network
  • a part or all of each node may be arranged in a domain such as a different data center, and each node may be connected to each other via a global network (WAN: Wide area network).
  • WAN Wide area network
  • the data processing nodes 111 to 114 and the data storage nodes 115 to 118 may be connected via a so-called SAN (Storage area network).
  • SAN Storage area network
  • the client node 101 is a computer that includes at least a processor, a memory, and a network interface.
  • the client node 101 may further include a storage device and a user interface for operating the computer.
  • an application program (corresponding to an “application” shown) 102 is transmitted via a network (not shown), stored in a storage device (not shown), or installed via a user interface.
  • the application program 102 is loaded into a memory (not shown) and executed by a processor (not shown).
  • the application program 102 includes an instruction for executing data processing using a distributed database system in its source code. By executing the application program 102, an instruction for executing data processing is called, and data processing is executed in the distributed database system based on the instruction.
  • the job management node 103 is a computer having at least a processor, a memory, and a network interface. Further, the job management node 103 may include a storage device (not shown) and a user interface for operating the computer.
  • the job management node 103 receives the data processing command issued by the application program 102 on the client node 101, and configures jobs 107 to 110 for executing data processing on the distributed database system.
  • the job management node 103 generates a task that is a unit for executing data processing in a job in a distributed manner on a plurality of data processing nodes.
  • a unit for executing data processing by combining Map processing and Reduce processing corresponds to a “job”.
  • Each of the Map process and Reduce process corresponds to a “task”.
  • Tasks are executed in a distributed manner at a plurality of data processing nodes 111-114.
  • the job management node 103 requests the resource management node 104 to use the data processing nodes 111 to 114 that execute the generated task.
  • the resource management node 104 is a computer including at least a processor, a memory, and a network interface. Further, the resource management node 104 may include a storage device (not shown) and a user interface for operating the computer.
  • the resource management node 104 receives the use request of the data processing nodes 111 to 114 that execute the task from the job management node 103, selects the usable data processing nodes 111 to 114 based on the resource management information, These data processing nodes 111 to 114 are arranged and executed. Furthermore, the resource management node 104 schedules and executes the execution order and execution ratio of one or more jobs configured by the job management node based on priority and various conditions.
  • the data management node 105 is a computer that includes at least a processor, a memory, and a network interface. Further, the data management node 105 may include a storage device (not shown) and a user interface for operating the computer.
  • the data management node 105 acquires data to be processed by the distributed database system from the data source 106, divides the data into blocks having a specified division size, and stores the blocks in the data storage nodes 115 to 118. At this time, the data management node 105 creates one or more replicas for each block in order to ensure the availability and reliability of the data, for example, the replicas so that the data is not lost when a specific node stops. May be distributed to a plurality of nodes.
  • all of the job management node 103, the resource management node 104, and the data management node 105 or any two of them are configured on a physically common computer. It is also possible to make it.
  • the client node 101 may be configured on a computer that is physically common to any one of these nodes or all of these nodes.
  • the data processing nodes 111 to 114 execute a task set by the resource management node 104 using a specific computing device, memory, or the like. At this time, the data processing nodes 111 to 114 perform data processing by connecting to the partitions 123 to 134 which are logical data units set in advance for each task.
  • the data storage nodes 115 to 118 store the data blocks arranged according to the designation of the data management node 105, such as a hard disk or a flash memory device provided in each data storage node 115 to 118.
  • data blocks may be stored in a main memory such as a so-called DRAM instead of the storage devices such as the storage devices 119 to 122.
  • One or more data blocks stored in the data storage nodes 115 to 118 are allocated to the partitions 123 to 134 set in the data processing nodes 111 to 114, respectively.
  • the data blocks assigned to the partitions set in each data processing node are not limited to those installed in the data storage node paired with the data processing node, and are not limited to other data storage nodes.
  • the data block may be assigned to the mounted data block and referred to via the network.
  • the tasks of the data processing nodes 111 to 114 access the allocated data blocks via the partitions 123 to 134 that are logical data.
  • the system configuration shown in FIG. 1 is an example of the distributed database system configuration according to the present embodiment, but as another configuration example, for example, a data processing node and a data storage node may be shared. If the task on the data processing node and the data processed by the task exist on the same physical node, the data access speed is not limited by the network bandwidth performance between the nodes, so the task accesses the data. The speed may be high.
  • Each data processing node executes a node management program (not shown) for managing node resources.
  • a node for executing these node management programs is prepared separately from the data processing node via a network. May be connected to manage the data processing node. In this case, the job execution performance in the data processing node is not affected by the load of the node management program.
  • FIG. 2 is a diagram showing an example of the configuration of the data processing node shown in FIG. In the configuration shown in the figure, a computer having two (202, 203) four-core CPUs is illustrated as the data processing node 201.
  • the execution of tasks in the data processing node 201 can be multiplexed by the number of CPU cores, and 8 tasks are executed simultaneously according to the number of CPU cores 8 per node.
  • one partition 206 is associated with each of the eight tasks 205.
  • One data block is assigned to each partition, and each of the eight data blocks 208 stored in the data storage node 204 is assigned to the partition on a one-to-one basis.
  • the data source 207 processed by the distributed database system according to this embodiment is divided into 160 blocks based on a preset block size.
  • data block duplication is omitted. If one task defines the time taken to process data of one data block through one partition using one CPU core as “one unit time”, 20 8-core data processing nodes As shown in the graph 209, the time taken to process 160 data blocks is equal to one unit time at all data processing nodes. It should be noted that the numerical values of the CPU, the number of nodes, the number of tasks, the number of partitions, etc. in this example are examples set for explanation, and it goes without saying that these values are not necessarily required for the implementation of the present invention. . In this embodiment, overhead time other than data processing, such as task execution control, is assumed to be sufficiently smaller than the data processing time, and is not shown.
  • FIG. 3 shows a case where data of the same data source as in FIG. 2 is processed by 10 data processing nodes under the same conditions.
  • the data processing node 305 in FIG. 3 has two 4-core CPUs (302, 303), and can process tasks in eight multiplexes simultaneously.
  • one partition 306 is associated with each of the eight tasks 305 as in FIG. Since the number of data processing nodes 305 is set to 10 which is half of the example in FIG. 2, 160 data blocks are arranged in 16 blocks in each data storage node.
  • FIG. 4 shows another configuration example when 160 data blocks 404 are processed by 10 data processing nodes 401 as in FIG. In FIG. 4, 16 tasks 405 are executed for 8 cores.
  • FIG. 5 shows a configuration example in the case where an accelerator 504 for executing high-speed data processing such as FPGA and GPU is provided as a computing device of the data processing node 501 in addition to the CPUs 502 and 503.
  • an accelerator 504 for executing high-speed data processing such as FPGA and GPU is provided as a computing device of the data processing node 501 in addition to the CPUs 502 and 503.
  • one accelerator can process 88 data blocks in one unit time.
  • two accelerator-mounted data processing nodes 501 and a data storage node 505 are prepared, one task 506 to be executed by the accelerator is assigned to each, and 80 data blocks 509 are assigned to the corresponding partition 507,
  • the time required to process the data source 508 for 160 blocks is 10/11 unit time (data block 509), and the system scale can be reduced by reducing the number of data processing nodes.
  • FIG. 6 shows another configuration example in which a task is executed using a data processing node 601 equipped with an accelerator 605 having a data processing performance 88 times that of the CPU 1 core as in the example of FIG.
  • one task 606 is executed by each of the eight cores of the CPUs 602 and 603, and one task 608 is executed by the accelerator 604 in parallel.
  • Each task is associated with partitions 607 and 609 one by one.
  • Each data block 611 of the data storage node 605 is assigned to each of the eight partitions 607, and 72 data blocks 612 are associated with the partition 609. If two pairs of data processing nodes and data storage nodes having this configuration are prepared, the data sources 610 for 160 blocks can be processed in one unit time. At this time, it is sufficient that the accelerator has a performance 72 times that of the CPU core.
  • FIG. 7 shows a configuration example in which the data source 707 for 160 data blocks is processed in the same manner as in FIGS. 2 to 6, and only one data processing node 709 equipped with an accelerator is used.
  • the task is executed by 10 data processing nodes as in FIG. Data blocks are placed.
  • the 16 data blocks of the paired data storage node 713 include one task 714 and one partition.
  • execution of the task is completed in 2/11 unit time.
  • next task is executed after the distributed execution of one task is completed by Hadoop Map / Reduce processing, etc.
  • the job is executed until the task execution in the data processing node equipped with only the CPU is completed.
  • the entire system requires two unit hours to complete the execution of the task, and the effect of the accelerator cannot be utilized.
  • FIG. 8 (1-9) Configuration of Data Processing Node According to this Embodiment Therefore, in this embodiment, a configuration as shown in FIG. 8 is adopted. That is, in FIG. 8, eight data blocks 808 are stored in the data storage node 804 as data to be processed by the data processing node 805 equipped with only the CPUs 802 and 803. Further, in FIG. 8, one task is executed by each of the eight CPU cores, and one data block 808 is allocated to each of the eight partitions 806 associated with each task.
  • the task execution time in the nine data processing nodes having the same configuration as the data processing node 801 and the corresponding nine data storage nodes is one unit time.
  • a data processing node 809 equipped with an accelerator 812 having 88 times the performance of one CPU core has one task 814 executed by the accelerator, one partition 815 associated with the task, and the partition. If the 88 blocks are allocated and the task is executed, the data processing node 809 also completes the execution of the task for processing 88 blocks of data in one unit time.
  • the distributed database system can optimize the task execution time as a whole system ( (See graph 817).
  • FIG. 9 is a diagram illustrating an example of a resource management method according to the present embodiment. Specifically, FIG. 9 shows eight data processing nodes having the same configuration as the data processing node 901 configured with only the eight-core CPUs 902 and 903 as computing devices, and the CPU core in addition to the eight-core CPUs 910 and 911. A configuration example is shown in which a task for processing a data source 907 for 160 blocks is executed using a single data processing node 909 equipped with an accelerator 912 having 88 times the performance.
  • the task is executed in one unit time by the eight data processing nodes having the same configuration as the data processing node 901 and the data storage node 904 as in the data processing node 801 shown in FIG.
  • the data processing node 909 has eight tasks 914 executed by the CPU cores 910 and 911, one corresponding to each of the corresponding partitions 915 and one data block from the data block 916 of the data storage node 913.
  • the accelerator 912 executes a task 917 by assigning 88 data blocks to the corresponding partition 918 and the partition 918 and executing it in one unit time.
  • the task of processing the data source 907 can be executed in one unit time in all nine data processing nodes and the paired data storage nodes (see graph 919).
  • the number of data blocks may be determined and arranged in advance according to the calculation performance of the data processing node.
  • a data block to be arranged in the data storage node may be requested.
  • data transfer between the data storage nodes via the network and data reference from the data processing node to the data storage node via the network may be rate-limited depending on the network bandwidth. Therefore, if it is necessary to transfer data during task execution or to refer to data via the network, the data is transferred at a speed in time for the data processing of the node in order to make full use of the processing performance of the computing device. It is necessary to.
  • the nodes are connected by a sufficiently high-speed network, or a plurality of data storage nodes are implemented as centralized storage, data blocks are shared between the data storage nodes, and the data processing node and the centralized storage are fast It is conceivable to connect with a simple SAN or speed up data transfer between data storage nodes by an internal communication bus or the like.
  • a data block that is connected to a data processing node through a high-speed network or configured as a computer identical to the data processing node is used in advance for task execution before task execution.
  • the following implementation method will be described by taking as an example the case of arranging
  • FIG. 10 is a diagram showing in detail the function of adjusting the amount of data arranged in the data storage nodes 115 to 118 in accordance with the data processing performance of the data processing node 111 in the distributed database system shown in FIG.
  • each node is connected by a network.
  • the application execution unit 102A is executed in the client node 101, a data processing instruction is issued to the distributed database system.
  • the data processing command interpretation unit 1001 interprets the data processing command issued by the application execution unit 102A, and the job configuration unit 1002 configures a job that can be executed in the distributed database system.
  • the task generation unit 1003 is associated with the job configured as described above as a unit of a data processing program that is distributed and executed on any one of the one or more data processing nodes 111 to 114. Generate a task.
  • the job issuing unit 1004 requests the resource management node 104 for necessary resources from the data processing nodes 111 to 114 managed by the resource management node 104, and specifies a specific resource allocated in response to the request. Issues a job and a task that is a component of the job to the data processing node.
  • the job management unit 1005 schedules one or more issued jobs according to conditions such as priority, issue order, and / or calculation resource occupancy, and the specific data processing node assigned Execute.
  • the resource management unit 1006 manages resource elements such as computing devices and memories on the data processing nodes 111 to 114 included in the distributed database system.
  • the task execution determination unit 1007 interprets the task load, performance requirements, and the like generated by the task generation unit 1003, and calculates task execution performance for each resource such as a calculation device of the data processing nodes 111 to 114.
  • the task distribution unit 1008 distributes tasks to the data processing nodes 111 to 114 based on the task execution performance determined by the task execution determination unit 1007.
  • the data management node 105 distributes and arranges the data source to be processed by the application execution unit 102A in the distributed database system.
  • the data input unit 1009 takes in data from the data source and converts it into a format suitable for distributed processing as necessary.
  • the block division unit 1010 divides the data source data into a preset block size.
  • the data placement unit 1011 stores the data blocks in the storage units 119 of the data storage nodes 115 to 118 paired with the data processing nodes for each data amount corresponding to the data processing performance of the data processing nodes 111 to 114. .
  • the block management unit 1016 manages access from the tasks executed by the data processing nodes 111 to 114 to the data blocks stored in the data storage node.
  • the task management unit 1012 of the data processing nodes 111 to 114 manages the execution order of tasks arranged in the data processing nodes 111 to 114, and manages task assignment to the computing devices to be executed.
  • the device selection unit 1013 selects which calculation device, such as a CPU, FPGA, GPU, or ASIC, the arranged task is to be executed based on the task execution performance for each calculation device determined by the task execution determination unit.
  • calculation device such as a CPU, FPGA, GPU, or ASIC
  • the logical data generation unit 1014 determines the data amount to be processed by the task based on the task execution performance when the task is executed by the selected computing device, generates a logical data partition corresponding to the data amount, and generates Allocate a quantity of data blocks corresponding to the partition size.
  • the task execution unit 1015 executes the task arranged in the data processing node by using the computing device selected to execute the task, and processes the data block assigned to the partition associated with the task To do.
  • FIG. 11 is a diagram showing a flow of interpreting a command of a task placed in the data processing node 1105, determining the number of data blocks to be executed by the task, and placing it in the data storage node 1116 accessed by the data processing node 1105. It is.
  • job 1 (corresponding to reference numeral 1101 in the figure) is illustrated as a job configured to be executed in the distributed database system.
  • This job 1 holds task 1.1 (corresponding to reference numeral 1102 in the figure), task 1.2 (corresponding to reference numeral 1103 in the figure), and task 1.3 (corresponding to reference numeral 1104 in the figure) as constituent elements.
  • task 1.1 corresponding to reference numeral 1102 in the figure
  • task 1.2 corresponding to reference numeral 1103 in the figure
  • task 1.3 (corresponding to reference numeral 1104 in the figure) as constituent elements.
  • the task load determination unit 1111 interprets the instructions (Op1 to Op6) of the task 1.1, task 1.2, and task 1.3, and executes each task. A processing load such as a calculation amount is determined.
  • the resource performance determination unit 1112 of the resource management unit 1006 performs each calculation based on data processing performance information such as the operating frequency, the number of parallel executions, and the memory bandwidth of calculation devices such as the CPU 1109 and FPGA 1110 included in the data processing nodes 1105 to 1107. Determine the data processing performance of the device.
  • the task execution performance calculation unit 1113 executes each task on each calculation device based on the processing load of each task determined by the task load determination unit 1111 and the performance of each calculation device determined by the resource performance determination unit 1112. Calculate the task execution performance at the time of execution.
  • the device selection unit 1013 selects a device that is optimal for execution of the task, such as being able to execute each task in the shortest time based on the calculated task execution performance.
  • the data distribution calculation unit 1114 performs data processing for each task so as to equalize the task execution time in each of the data processing nodes 1105 to 1107 based on the task execution performance when the task is executed using the selected device. The amount is determined, and the partitions 1120 to 1124 for each task are created in the logical data generation unit 1014 according to the determined data processing amount.
  • the data distribution unit 1115 stores, for each of the data storage nodes 1116 to 1118, a quantity of data blocks corresponding to the amount of data processed by the data processing node paired with each data storage node.
  • FIG. 12 shows an example of a resource management method according to this embodiment. More specifically, in the illustrated example, data distribution processing is shown in which the data distribution is adjusted based on the task execution performance of the computing device and the task is executed.
  • the application execution unit 102A requests execution of a data processing command (step S1201).
  • the job management node 103 determines a job configuration for executing the data processing command in the distributed database system based on the data processing command issued by the application execution unit 102A (step S1202).
  • the job management node 103 Based on the determined job configuration, the job management node 103 generates a task to be distributed and executed by each data processing node (step S1203), and the data management node 104 has a resource processing resource for executing this task. The use of the node is requested (step S1204).
  • the job management node 103 calculates the execution performance for each node of the generated task based on the performance of the computing device possessed by each data processing node (step S1205).
  • the job management node 103 selects a computing device that executes each task based on the execution performance of each task in each data processing node (step S1206).
  • the job management node 103 determines, for each computing device that executes each task, a processing data amount that makes the execution time between the nodes substantially equal (step S1207).
  • the resource management node 104 generates a partition as logical data processed by the task based on the processing data amount determined in this way (step S1208).
  • the data management node 105 Based on the amount of data processed by each task, the data management node 105 arranges data blocks of a quantity corresponding to the amount of data processed by the data processing node in each data storage node paired with each data processing node ( Step S1209).
  • the data management node 105 allocates a number of data blocks corresponding to the amount of data set in the partition to each partition associated with each task (step S1210).
  • Each data management node 105 executes a task and processes data assigned to the partition associated with this task (step S1211). When the execution of the task is completed, each data management node 105 determines whether there is a task for the next calculation stage. If there is a task to be executed next (step S1212), the process returns to step S1205. Repeat the process. If there is no task at the next calculation stage, the data management node 105 determines whether there is another job to be executed.
  • step S1203 If there is a job to be executed next, the data management node 105 returns to step S1203 and repeats the process. If there is no other job to be processed (step S1213), the data management node 105 ends the process.
  • FIG. 13 shows an example of the execution time based on the processing load of each task determined by the task load determination unit 1111 of FIG.
  • job 1 includes three tasks, task 1.1, task 1.2, and task 1.3, as components.
  • a plurality of jobs executed in the distributed database system according to the present embodiment are independent with no dependency relationship between them, and the computing devices mounted on the data processing nodes 1105 to 1107 are also independent. Can be executed.
  • different types of tasks in the same job cannot be executed in parallel, and the execution of the next task can be started after the previous task is completed in the order of task 1.1, task 1.2, and task 1.3. To do.
  • Task 1.2 cannot be executed on the GPU due to the nature of task processing.
  • Task 1.3 cannot be executed by the FPGA. These numerical values may be estimated based on the performance model generated from the processing contents of the task program, and converted from the results actually executed in advance on a specific computing device. Is also possible.
  • FIG. 14 is a configuration example of a computing device mounted on the data processing nodes 1105 to 1107 shown in FIG.
  • the node 1 indicates that a 20-core CPU (operation frequency: 4 GHz), one FPGA, and one GPU are mounted.
  • FIG. 15 shows an example of the result of calculating the task execution time for each computing device in the task execution performance calculation unit 1113 of FIG. 11 based on FIG. 13 and FIG.
  • the execution time Time when the task 1.1 is executed by the FPGA or GPU of the node 1 can be similarly calculated as follows.
  • Time (task 1.1, node 1, FPGA) 1 ms
  • Time (task 1.1, node 1, GPU) 5 ms
  • FIG. 16 is an example showing the task execution time when an optimal computing device is selected for each task at each node.
  • the execution time is calculated based on the method shown in the explanation of FIG.
  • the execution time of task 1.1 is 1 ms by using FPGA
  • task 1.2 uses the CPU
  • task 1.3 uses the CPU 5 ms.
  • Nodes 2 and 3 are similarly shown in the table.
  • FIG. 17 shows a comparison of the execution times of FIG. 16 using data processing performance (TB / s).
  • FIG. 18 shows the amount of data allocated to equalize the execution time for each node using the resource management method according to the present embodiment when 1 TB (terabyte) data is processed as a data source by three data processing nodes. Show.
  • task 1.1 completes processing in the same execution time on all nodes.
  • the tasks 1.2 and 1.3 are as shown in the table of FIG.
  • FIG. 19 shows the effect when the data distribution is adjusted according to the calculation performance of the data processing node by the resource management processing according to the present embodiment.
  • FIG. 19A shows the execution time of each task when data distribution is not adjusted and 333 GB is evenly distributed to all data processing nodes.
  • Task 1, 1, Task 1.2, and Task 1.3 are conditions for starting execution of the next task after the previous task is completed, in each task, processing is performed in Node 1 and Node 2. Although it is completed early, it waits until the processing of the node 3 is completed, and the processing time of the entire system is limited by the execution performance of the node 3.
  • FIG. 19B by performing the data distribution shown in the table of FIG. 18 for each task, the execution time for each task is leveled between the nodes, the waiting time is eliminated, Execution time is greatly reduced.
  • FIG. 19C does not optimize the data distribution for each task, but the geometric average of the execution performance for each node of the tasks 1.1, 1.2, and 1.3 (the geometric average column in the table of FIG. 17).
  • the data is distributed (described in the geometric average column in the table of FIG. 18) based on
  • the geometric average of task execution performance is used as the data distribution ratio.
  • the method for determining the distribution ratio is not limited to the geometric average, and for example, arithmetic average, harmonic average, etc. It is possible to select an optimal calculation method according to the property.
  • the task execution performance may be adjusted according to the data amount allocated in advance.
  • the task execution time in the node is shorter than that of other nodes.
  • standby time occurs in the node, the operating time of the entire system is leveled by reducing the operating frequency, limiting the number of cores used, etc., and the power consumption of a specific node is reduced.
  • Software license costs can be reduced.
  • task execution time is used as an evaluation measure as calculation capacity.
  • performance indicators such as data transfer amount, network load, and memory usage during task execution, and power associated with task execution
  • the job execution may be optimized using the consumption amount or the calculation resource usage fee as an evaluation scale.
  • the amount of data to be processed can be distributed according to the calculation capability of each data processing nose, so that the execution time required for data processing in the entire system can be shortened.
  • the present invention can be widely applied to a resource management method in data analysis processing using a distributed database system.
  • Task execution determination unit 1007: Task execution determination unit, 1008: Task distribution unit, 1011: Data arrangement unit, 1014: Logical data generation unit, 1111: Task load determination unit, 1112: Resource performance determination unit, 1113: Task Execution performance calculator, 1114... Data allocation calculator, 1115.

Abstract

【課題】各データ処理ノードにおけるデータ処理時間が均一でないため、システム全体として実行時間が最適化されない。 【解決手段】最適な複数の計算デバイスを用いてタスクを実行する時に、タスクの処理命令によって処理されるデータのデータ量を、最適な複数の計算デバイスの計算能力の違いに応じて最適な複数の計算デバイス間で配分し、最適な複数の計算デバイスを用いてタスクを分散して実行させる。

Description

分散データベースシステム及び分散データベースシステムのリソース管理方法
 本発明は、分散データベースシステム及び分散データベースシステムのリソース管理方法に関し、特に、分散データベースシステムを用いたデータ分析処理におけるリソース管理方法に適用して好適なものである。
 一般的に、様々に視点を変えてビッグデータを解釈するためのインタラクティブな分析においては、多数のデータ処理用サーバを分散配置し、データ処理を並列実行することで高速化を図る分散データベースシステムが適している。このような分散データベースシステムとしては、例えばApache Hadoop(登録商標)が用いられる。大量のデータを高速に処理するためには、通常は、計算性能を確保するために多数のデータ処理用サーバ(ノード)が必要となり、この結果システム規模が増大し、導入コストや維持コストが増加する。
 そこで、高速なデータ処理が可能なFPGA(Field programmable gate array)、GPGPU(General-purpose computing on graphics processing units)、専用ASIC(Application specific integrated circuit)等を用いたアクセラレータをノードに搭載することによってノードあたりの性能を向上し、必要ノード数を減らしてシステム規模を抑える技術の適用が考えられる。アクセラレータを適用する際は、分散システム上の全てのノードに同じ性能を持つアクセラレータを搭載し、ノード自体が有するCPU(Central processing unit)の性能も同じ均質な構成を取り得る場合のみでなく、アクセラレータの種別が様々であったり、搭載するノードが限定されていたり、CPU性能がノードによって異なる場合が想定される。このような場合には、システムに不均一性が生じ、各ノードのデータ処理性能がばらつくことがある。
 非特許文献1には、ノード性能が不均一な分散処理システムにおいて、ノードのCPU使用率に応じて、ジョブを細分化して分散実行する処理単位であるタスク種別毎に、異なる性能のノード群を割り当てる技術が開示されている。
 国際公開2012/105056(特許文献1)には、既存システムが利用しているサーバに、追加して並列分散システムを共存させる場合に、並列分散システムの各ノードの処理を調整する技術が開示されている。既存システムで実行される処理を優先する場合には、当該処理の実行状況によって分散システムが使用できるノードの計算リソース及びI/Oリソースが変化する。この時、ノードの負荷及びリソース使用量を観測し、ノードが保持するデータブロックの処理の進行状況に応じて、ノードの負荷またはリソースに余裕があるノードに、他のノードからデータブロックを転送する。
 特開2014-215764(特許文献2)には、ノードで実行するタスク1つあたりが処理する最大データ量を、入力データ量に対する各ノードのタスク数とノード数との関係に基づいて決定することにより、ノード毎の処理時間を平準化する方法が開示されている。
国際公開2012/105056号 特開2014-215764号公報
S. F. El-Zoghdy and Ahmed Ghoneim, "A Multi-Class Task Scheduling Strategy for Heterogeneous Distributed Computing Systems," KSII Transactions on Internet and Information Systems, vol.10, no.1, pp.117-135, 2016.
 上述した非特許文献1では、複数の異なるタスクをノードに割り振る順番を、例えば全ノードのCPU使用率が等しくなるように配分しているが、Hadoop(登録商標)処理のように、同一のタスクを複数のノードに分散するシステムには適用されない。
 特許文献1では、ノードの処理状況に応じて処理の実行中にデータを余裕のあるノードに転送することによりノードの処理時間を平準化しているが、ノードが有する計算リソースに基づくタスク実行性能の偏りを考慮していない。
 特許文献2では、分散システムで処理する全タスク数に合わせて均等に入力データを分割して各ノードに配置するが、タスクあたりのデータ量が均等になるため、各ノードの計算性能のばらつきは考慮されていない。
 本発明は以上の点を考慮してなされたもので、システム全体としてデータ処理時間を短縮できる分散データベースシステム及び分散データベースシステムのリソース管理方法を提案しようとするものである。
 かかる課題を解決するため、本発明においては、データを処理する1つ以上の計算デバイスを搭載する1つ以上のデータ処理ノードを備える分散データベースシステムにおいて、前記データ処理ノードにおける各前記計算デバイスの計算能力の違いを判定する計算能力判定部と、各前記計算デバイスの計算能力の違いに基づいて最適な計算デバイスを複数選択するデバイス選択部と、前記最適な複数の計算デバイスを用いて前記タスクを実行する時に、前記タスクの処理命令によって処理される前記データのデータ量を、前記最適な複数の計算デバイスの計算能力の違いに応じて前記最適な複数の計算デバイス間で配分し、前記最適な複数の計算デバイスを用いて前記タスクを分散して実行させるタスク分配制御部と、を備えることを特徴とする。
 また、本発明においては、データを処理する1つ以上の計算デバイス、及び制御部を搭載する1つ以上のデータ処理ノードを備える分散データベースシステムにおけるリソース管理方法において、前記制御部が、前記データ処理ノードにおける各前記計算デバイスの計算能力の違いを判定する計算能力判定ステップと、前記制御部が、各前記計算デバイスの計算能力の違いに基づいて最適な計算デバイスを複数選択するデバイス選択ステップと、前記制御部が、前記最適な複数の計算デバイスを用いて前記タスクを実行する時に、前記タスクの処理命令によって処理される前記データのデータ量を、前記最適な複数の計算デバイスの計算能力の違いに応じて前記最適な複数の計算デバイス間で配分し、前記最適な複数の計算デバイスを用いて前記タスクを分散して実行させるタスク分配制御ステップと、を有することを特徴とする。
 本発明によれば、システム全体としてデータ処理時間を短縮することができる。
本実施の形態による分散データベースシステムの構成例を表す図である。 データソースを20台のデータ処理ノードで処理する場合の構成の一例を示した図である。 データソースを10台のデータ処理ノードで処理する場合の構成の一例を示した図である。 データソースを10台のデータ処理ノードで処理する場合の構成の別の一例を示した図である。 データソースを2台のアクセラレータ搭載データ処理ノードで処理する場合の構成の一例を示した図である。 データソースを2台のアクセラレータ搭載データ処理ノードで処理する場合の構成の別の一例を示した図である。 データソースを9台のアクセラレータ非搭載データ処理ノードと、1台のアクセラレータ搭載データ処理ノードで処理する場合の構成の一例を示した図である。 データソースを9台のアクセラレータ非搭載データ処理ノードと、1台のアクセラレータ搭載データ処理ノードで処理する場合の、本実施の形態によるリソース管理方法を用いた構成の一例を示した図である。 データソースを9台のアクセラレータ非搭載データ処理ノードと、1台のアクセラレータ搭載データ処理ノードで処理する場合の、本実施の形態によるリソース管理方法を用いた構成の別の一例を示した図である。 データ処理ノードのデータ処理性能に応じて、データ格納ノードに配置するデータ量を調整する機能を詳細に示した図である。 データ処理ノードに配置されたタスクの命令を解釈し、タスクが実行するデータブロックの数量を決定して、データ処理ノードがアクセスするデータ格納ノードに配置する流れを示す図である。 本実施の形態により、計算デバイスのタスク実行性能に基づいてデータ配分を調整してタスクを実行する方法を示すフローチャートである。 タスク負荷判定部において判定した、各タスクの処理負荷に基づいた実行時間の例である。 データ処理ノードに搭載された計算デバイスの構成例である。 タスク実行性能計算部において、計算デバイス毎のタスク実行時間を計算した結果である。 各ノードでタスク毎に最適な計算デバイスを選択した場合のタスク実行時間を示した例である。 図16の実行時間の比較を、データ処理性能(TB/s)で表現したものである。 本実施の形態によるリソース管理方法を用いてノード毎の実行時間を平準化した場合のデータ配分量を示す図である。 本実施の形態によるリソース管理方法を用いてデータ処理ノードの計算性能に応じてデータ配分を調整した場合の効果を示す図である。
 以下、図面について、本発明の一実施の形態について詳述する。
 (1)本実施の形態によるシステム構成
 (1-1)全体構成
 図1は、本実施の形態による分散データベースシステムの構成例を示すブロック図である。分散データベースシステムは、クライアントノード101、ジョブ管理ノード103、リソース管理ノード104、データ管理ノード105、データ処理ノード111~114、及びデータ格納ノード115~118を備える。
 これらのノード101などは、図示は省略するが、イーサネット(登録商標)等のネットワークを介して接続されており、このネットワークを通じて制御信号及びデータの送受信を実施する構成となっている。
 なお、このネットワークは、ローカルなドメイン内で閉じたネットワーク(LAN:Local area network)であっても良い。各ノードの一部または全部が、それぞれ異なるデータセンタ等のドメインに配置され、各ノード間がグローバルなネットワーク(WAN:Wide area network)で接続された構成であっても良い。データ処理ノード111~114とデータ格納ノード115~118とは、いわゆるSAN(Storage area network)を介して接続された構成であっても良い。
 (1-2)クライアントノード
 クライアントノード101は、少なくともプロセッサ、メモリ及びネットワークインタフェースを備える計算機である。クライアントノード101は、さらにストレージ装置、及び、計算機を操作するためのユーザインタフェースを備えても良い。
 クライアントノード101では、アプリケーションプログラム(図示の「アプリケーション」に相当)102は、図示しないネットワーク経由で伝送されるか、図示しないストレージ装置に格納されているか、ユーザインタフェースを介してインストールされている。このアプリケーションプログラム102は、図示しないメモリにロードされ、図示しないプロセッサによって実行される。
 アプリケーションプログラム102には、そのソースコードに、分散データベースシステムを用いてデータ処理を実行する命令が含まれている。アプリケーションプログラム102を実行することによって、データ処理を実行する命令が呼び出され、該命令に基づいて分散データベースシステムにおいてデータ処理が実行される。
 (1-3)ジョブ管理ノード
 ジョブ管理ノード103は、少なくともプロセッサ、メモリ及びネットワークインタフェースを備える計算機である。さらにジョブ管理ノード103は、図示しないストレージ装置、及び、計算機を操作するためのユーザインタフェースを備えても良い。
 ジョブ管理ノード103は、クライアントノード101上のアプリケーションプログラム102が発行したデータ処理命令を受信し、分散データベースシステム上でデータ処理を実行するためのジョブ107~110を構成する。
 さらにジョブ管理ノード103は、ジョブにおけるデータ処理を、複数のデータ処理ノードに分散配置して実行する単位であるタスクを生成する。例えば、Hadoop(登録商標)分散処理システムにおいては、Map処理及びReduce処理を組み合わせてデータ処理を実行する単位が「ジョブ」に相当する。これらMap処理及びReduce処理はそれぞれ「タスク」に相当する。
 タスクは、複数のデータ処理ノード111~114において分散実行される。ジョブ管理ノード103は、生成したタスクを実行するデータ処理ノード111~114の使用を、リソース管理ノード104に対して要求する。
 (1-4)リソース管理ノード
 リソース管理ノード104は、少なくともプロセッサ、メモリ及びネットワークインタフェースを備える計算機である。さらにリソース管理ノード104は、図示しないストレージ装置、及び、計算機を操作するためのユーザインタフェースを備えても良い。
 リソース管理ノード104は、ジョブ管理ノード103からタスクを実行するデータ処理ノード111~114の使用要求を受信し、リソース管理情報に基づいて使用可能なデータ処理ノード111~114を選択し、タスクを、これらデータ処理ノード111~114に配置して実行させる。さらにリソース管理ノード104は、ジョブ管理ノードが構成した1つ以上のジョブの実行順や実行割合等を優先度や諸条件に基づいてスケジューリングして実行する。
 (1-5)データ管理ノード
 データ管理ノード105は、少なくともプロセッサ、メモリ及びネットワークインタフェースを備える計算機である。さらにデータ管理ノード105は、図示しないストレージ装置、及び、計算機を操作するためのユーザインタフェースを備えても良い。
 データ管理ノード105は、分散データベースシステムによって処理されるデータをデータソース106から取得し、指定された分割サイズのブロックに分割してデータ格納ノード115~118に格納する。この時、データ管理ノード105は、データの可用性、信頼性を担保するために、ブロックごとに1つ以上の複製を作成し、例えば特定のノードが停止した時にデータが失われないように当該複製を、複数のノードに分散して配置しても良い。
 なお、本実施の形態による分散データベースシステムにおいては、ジョブ管理ノード103、リソース管理ノード104及びデータ管理ノード105の全て又はこれらのうちのいずれか2つのノードが、物理的に共通の計算機上に構成されているようにすることも可能である。さらにはクライアントノード101は、これらのうちのいずれかのノード、又はこれら全てのノードと物理的に共通の計算機上に構成されるようにことも可能である。
 (1-6)データ処理ノード
 データ処理ノード111~114は、リソース管理ノード104によって設定されたタスクを、特定の計算デバイスやメモリ等を用いて実行する。この時、データ処理ノード111~114は、タスク毎に、予め設定された論理的なデータ単位であるパーティション123~134に接続してデータ処理を行う。
 (1-7)データ格納ノード
 データ格納ノード115~118は、データ管理ノード105の指定によって配置されたデータブロックを、各データ格納ノード115~118が備えるハードディスク又はフラッシュメモリデバイス等であるストレージ装置119~122に格納する。なお、本実施の形態では、ストレージ装置119~122のようなストレージ装置の代わりに、いわゆるDRAMのようなメインメモリにデータブロックを格納するようにしても良い。
 各データ格納ノード115~118に格納されたデータブロックは、データ処理ノード111~114において設定されたパーティション123~134それぞれに一つ以上割り当てられる。なお、各データ処理ノードにおいて設定されたパーティションに割り当てるデータブロックは、当該データ処理ノードとペアになっているデータ格納ノードに搭載されているものに限定されるものではなく、他のデータ格納ノードに搭載されているデータブロックに割り当て、ネットワークを介してデータブロックを参照しても良い。
 データ処理ノード111~114のタスクは、論理データであるパーティション123~134を介して、割り当てられたデータブロックにアクセスする。
 なお、図1に示すシステム構成は、本実施の形態による分散データベースシステム構成の一例であるが、他の構成例としては、例えば、データ処理ノードとデータ格納ノードを共通にしても良い。データ処理ノード上のタスクと、タスクが処理するデータとが、同じ物理ノード上に存在すれば、ノード間のネットワーク帯域性能によってデータ転送速度が制限されることが無いため、タスクがデータにアクセスする速度が高速になる場合がある。
 また、各データ処理ノードでは、ノードのリソースを管理するノード管理プログラム(図示省略)が実行されるが、これらのノード管理プログラムを実行するノードを、データ処理ノードとは別に用意し、ネットワークを介して接続して、データ処理ノードを管理しても良い。この場合、ノード管理プログラムの負荷によってデータ処理ノードにおけるジョブ実行性能が影響を受けることが無くなる。
 次に、分散データベースシステムにおいてタスクを並列実行する場合に、処理にかかる時間を、いくつかの条件毎に説明する。
 (1-8)比較例としてのデータ処理ノードの構成例
 図2は、図1に示したデータ処理ノード構成の一例を示した図である。図示の構成では、データ処理ノード201として、4コアのCPUを2つ(202、203)搭載した計算機を例示している。
 データ処理ノード201におけるタスクの実行は、CPUコア数だけ多重化できるものとし、ノードあたりのCPUコア数8に合わせて8つのタスクを同時に実行する場合を示している。
 この例では、8つのタスク205の各々に対して1つずつパーティション206が対応付けられている。各パーティションに対して1つずつデータブロックを割り当てるものとし、データ格納ノード204に格納されている8つのデータブロック208のそれぞれを1対1でパーティションに割り当てる。
 本実施の形態による分散データベースシステムで処理するデータソース207は、予め設定されたブロックサイズに基づいて、160個のブロックに分割されるものとする。
 160個のデータブロックをすべてのデータ処理ノードに均等に分配する場合、すべてのデータブロックを処理するためには、20台のデータ処理ノード、及びデータ格納ノードのペアが必要となる。
 ただし、図示の例では、データブロックの複製は省略している。1つのタスクが、1つのCPUコアを用いて、1つのパーティションを介して1つのデータブロックのデータを処理するのにかかる時間を「1単位時間」と定義すると、8コアのデータ処理ノード20台で160個のデータブロックを処理するのに掛かる時間は、グラフ209に示す通り、すべてのデータ処理ノードで等しく1単位時間となる。なお、本例のCPUやノード数、タスク数、パーティション数等の数値は、説明のために設定した一例であり、本発明の実施に対し、これらの数値に必然性を求めるものでないことは言うまでもない。なお、本実施の形態では、タスクの実行制御等、データ処理以外にかかるオーバーヘッド時間は、データ処理時間に比べ十分小さいものとし、図示を省略している。
 図3は、図2と同様のデータソースのデータを、同じ条件のデータ処理ノード10台で処理する場合を示している。図3のデータ処理ノード305は、4コアのCPU2つ(302、303)を持ち、同時に8多重でタスクを処理可能である。
 図示の例では、図2と同様に8つのタスク305に1つずつパーティション306が対応付けられている。データ処理ノード305の台数を、図2の例の半分の10台に設定したため、160個のデータブロックは、各データ格納ノードに16ブロックずつ配置される。
 8つのタスクで16個のブロックを処理するために、各々のパーティションに2つずつデータブロックを割り当てるとすると、1つのタスクが2つのデータブロックを処理するのにかかる時間は、グラフ309に示すように、2単位時間となり、データ処理ノードを20台使用する場合の2倍の時間が必要になる。
 図4は、図3と同様に160個のデータブロック404を10台のデータ処理ノード401で処理する場合の別の構成例である。図4では、8つのコアに対し、16個のタスク405を実行する。
 パーティション406は、タスクをパーティションと1対1で対応づけ、各パーティションに1つのデータブロックを割り当てる場合、CPUコアあたり2つのタスクを実行する必要があるため、データ処理時間は、図3と同様に2単位時間となる。
 図5は、データ処理ノード501の計算デバイスとして、CPU502、503の他にも、FPGA及びGPU等のようなデータ処理を高速実行するためのアクセラレータ504を設けた場合の構成例である。
 例えば、搭載しているアクセラレータ504が、CPU1コアに対し、88倍の性能を有すると仮定すると、アクセラレータ1台で、1単位時間の間に88個のデータブロックを処理することができる。この場合、2台のアクセラレータ搭載データ処理ノード501、及びデータ格納ノード505を用意し、各々にアクセラレータで実行するタスク506を1つ、対応するパーティション507に80個のデータブロック509を割り当てれば、160ブロック分のデータソース508を処理するのに必要な時間は、10/11単位時間となり(データブロック509)、データ処理ノード数を削減してシステム規模を抑えることが可能になる。
 この時、CPUをタスク実行に使用する必要がないため、コア数が少ない廉価なCPUを搭載してコストを低減するか、CPUに別の処理を行わせることにより、システム全体の負荷を分散させることが可能になる。なお、8コアCPUのみを搭載したデータ処理ノード20台分と同じ1単位時間でデータ処理を完了するには、80倍のアクセラレータ性能があればよいことは明らかである。
 図6は、図5の例と同様にCPU1コアの88倍のデータ処理性能を有するアクセラレータ605を搭載したデータ処理ノード601を用いてタスクを実行する別の構成例である。図6では、CPU602、603の8つのコアそれぞれで1つずつタスク606を実行し、平行してアクセラレータ604で1つのタスク608を実行する。各タスクには1つずつパーティション607、609を対応づける。
 8つのパーティション607には、それぞれデータ格納ノード605の1つずつのデータブロック611を割り当て、パーティション609には、72個のデータブロック612を対応づける。この構成のデータ処理ノード及びデータ格納ノードのペアを2つ用意すれば、160ブロック分のデータソース610は、1単位時間で処理することができる。なお、この時、アクセラレータは、CPUコアの72倍の性能を有すれば十分である。
 図7は、図2~図6と同様に160データブロック分のデータソース707を処理する場合で、アクセラレータを搭載したデータ処理ノード709が1台のみとしたときの構成例である。
 これまでの例と同様に、データ格納ノードあたりのデータブロック数を均等配置する場合、図3と同様に10台のデータ処理ノードでタスクを実行する際には、1データ格納ノードあたり16個のデータブロックが配置される。
 この時は、8コアCPUのみを搭載したデータ処理ノード701x9台では、8つのタスク705に対応づけた8つのパーティション706それぞれに対し、データ格納ノードに格納されているデータブロック708から2つずつを割り当てるため、データ処理ノード708では、タスクを処理するのに2単位時間必要になる。
 一方、CPUコアの88倍のデータ処理性能を有するアクセラレータ712を搭載したデータ処理ノード709では、ペアリングされているデータ格納ノード713の16個のデータブロックは、1つのタスク714、及び1つのパーティション715において処理され、2/11単位時間でタスクの実行が完了する。
 しかしながら、HadoopのMap/Reduce処理等で、ひとつのタスクの分散実行が完了してから次のタスクを実行するような場合では、CPUのみを搭載したデータ処理ノードにおけるタスク実行が完了するまで、ジョブの次の処理の実行を待つため、システム全体としては、タスクの実行完了に2単位時間必要となり、アクセラレータの効果を活用することができない。
 (1-9)本実施の形態によるデータ処理ノードの構成
 そこで、本実施の形態では図8に示すような構成を採用している。すなわち、図8では、CPU802、803のみを搭載したデータ処理ノード805が処理するデータとして、8個のデータブロック808をデータ格納ノード804に格納しておく。さらに、図8では、8個のCPUコアそれぞれで1つずつタスクを実行し、各タスクに1つずつ対応付けた8個のパーティション806のそれぞれに1つずつデータブロック808を割り当てる。
 これにより、データ処理ノード801と同等の構成を持つ9台のデータ処理ノード、及び、対応する9台のデータ格納ノードにおけるタスク実行時間は、1単位時間となる。
 一方、CPUコア1台の88倍の性能を有するアクセラレータ812を搭載したデータ処理ノード809には、アクセラレータで実行する1つのタスク814と、該タスクに対応づけた1つのパーティション815、及び該パーティションに88個のブロックを割り当てて、タスクを実行すれば、データ処理ノード809においても、1単位時間で88ブロックのデータを処理するタスクの実行が完了する。
 このように、データ処理ノードの計算性能に合わせて、処理するデータ量を調整することにより、本実施の形態による分散データベースシステムは、システム全体としてタスク実行時間を最適化することが可能になる(グラフ817参照)。
 図9は、本実施の形態によるリソース管理方法の一例を示す図である。具体的には、図9は、全8コアのCPU902、903のみを計算デバイスとして構成されたデータ処理ノード901と同等構成のデータ処理ノード8台と、同じく8コアのCPU910、911に加えCPUコア1台の88倍の性能を持つアクセラレータ912を搭載したデータ処理ノード909を用いて160ブロック分のデータソース907を処理するタスクを実行する場合の構成例を示している。
 図9では、データ処理ノード901、及びデータ格納ノード904と同等の構成を持つデータ処理ノード8台で、図8に示したデータ処理ノード801と同様に1単位時間でタスクを実行している。これにより、データ処理ノード909は、CPUコア910、911で実行する8つのタスク914を、対応パーティション915、それぞれにデータ格納ノード913のデータブロック916から各1つずつ対応づけたデータブロックをそれぞれ1単位時間で実行するとともに、アクセラレータ912でタスク917を、対応パーティション918、及びパーティション918に88個のデータブロックを割り当てて1単位時間で実行している。
 これにより、全9台のデータ処理ノード、及びペアリングしたデータ格納ノードにおいては、データソース907を処理するタスクを1単位時間で実行することができる(グラフ919参照)。
 なお、データブロックをデータ格納ノードに配置する際は、予めデータ処理ノードの計算性能に合せてデータブロック数を決定して配置しておいても良いし、タスク実行時に、データ管理ノードに対し、データ格納ノードに配置するデータブロックを要求しても良い。
 ただし、必要なデータブロックが、データ処理ノードと高速ネットワークで直結しているデータ格納ノード上、又は、データ処理ノードと同一の計算機として構成されているデータ格納ノード上に存在していなかった場合は、他のデータ格納ノードから転送するか、直接他のデータ格納ノードのデータを参照する必要がある。
 この場合、データ格納ノード間のネットワークを介したデータ転送、及び、データ処理ノードからネットワークを介したデータ格納ノードへのデータ参照は、ネットワークの帯域によって律速する場合がある。従って、仮にタスク実行中にデータ転送、又は、ネットワークを介したデータ参照を行う必要が生じた場合、計算デバイスの処理性能を十分に活かすためには、ノードのデータ処理に間に合う速度でデータを転送することが必要である。
 このためには、ノード間を十分高速なネットワークで接続するか、複数のデータ格納ノードを集中ストレージとして実装し、データブロックをデータ格納ノード間で共有し、データ処理ノードと集中ストレージの間を高速なSANで接続するか、又は、データ格納ノード間のデータ転送を内部通信バス等により高速化することが考えられる。
 本実施の形態では、データ処理ノードと高速ネットワークで接続しているか、データ処理ノードと同一の計算機として構成されているデータ格納ノードに、タスク実行の前に、予めタスクの実行に使用するデータブロックを配置しておく場合を例に、以下の実施方法を説明する。
 図10は、図1で示した分散データベースシステムにおいて、データ処理ノード111のデータ処理性能に応じて、データ格納ノード115~118に配置するデータ量を調整する機能を詳細に示した図である。
 図10では、図1における説明と同様に、図示しないが、各ノードがネットワークで接続されている。クライアントノード101においてアプリケーション実行部102Aが実行されると、分散データベースシステムに対してデータ処理命令が発行される。
 ジョブ管理ノード103は、データ処理命令解釈部1001がアプリケーション実行部102Aによって発行されたデータ処理命令を解釈し、ジョブ構成部1002が分散データベースシステムにおいて実行可能なジョブを構成する。
 タスク生成部1003は、このように構成されたジョブに対応付けて、1つ以上のデータ処理ノード111~114のいずれかのデータ処理ノードに分散配置して実行される、データ処理プログラムの単位としてのタスクを生成する。
 ジョブ発行部1004は、リソース管理ノード104に対して、このリソース管理ノード104によって管理されているデータ処理ノード111~114のうちから必要なリソースを要求し、当該要求に応じて割り当てられた特定のデータ処理ノードに対してジョブ、及びジョブの構成要素であるタスクを発行する。
 リソース管理ノード104では、ジョブ管理部1005が、発行された1つ以上のジョブを、優先度、発行順及び/又は計算リソース占有率等の条件に従ってスケジューリングし、割り当てられた特定のデータ処理ノードにおいて実行する。
 リソース管理部1006は、分散データベースシステムに含まれるデータ処理ノード111~114上における計算デバイス及びメモリ等のリソース要素を管理する。
 タスク実行判定部1007は、タスク生成部1003によって生成されたタスクの負荷、性能要件等を解釈し、データ処理ノード111~114の計算デバイス等のリソース毎のタスク実行性能を計算する。
 タスク分配部1008は、タスク実行判定部1007で判定されたタスク実行性能に基づいて、各データ処理ノード111~114にタスクを分配する。
 データ管理ノード105は、アプリケーション実行部102Aが処理する対象のデータソースを分散データベースシステムに分散配置する。
 データ入力部1009は、データソースからデータを取り込み、必要に応じて分散処理に適したフォーマットに変換する。ブロック分割部1010は、データソースのデータを、予め設定したブロックサイズに分割する。
 データ配置部1011は、データブロックを、データ処理ノード111~114のデータ処理性能に応じたデータ量毎に各データ処理ノードとペアリングされているデータ格納ノード115~118のストレージ部119に格納する。
 ブロック管理部1016は、データ格納ノードに格納されたデータブロックに対する、データ処理ノード111~114で実行されるタスクからのアクセスを管理する。
 データ処理ノード111~114のタスク管理部1012は、データ処理ノード111~114に配置されたタスクの実行順を管理するとともに、実行する計算デバイスへのタスク割り当てを管理する。
 デバイス選択部1013は、配置されたタスクを、CPU、FPGA、GPU及びASIC等のどの計算デバイスで実行するかについて、タスク実行判定部において判定した計算デバイス毎のタスク実行性能に基づいて選択する。
 論理データ生成部1014は、選択した計算デバイスでタスクを実行した時のタスク実行性能に基づいて、該タスクが処理するデータ量を決定し、該データ量に応じた論理データパーティションを生成し、生成したパーティションのサイズに対応した数量のデータブロックを割り当てる。
 タスク実行部1015は、データ処理ノードに配置されたタスクを、当該タスクを実行するものとして選択された計算デバイスを用いて実行し、該タスクに対応づけられたパーティションに割り当てられたデータブロックを処理する。
 図11は、データ処理ノード1105に配置されたタスクの命令を解釈し、タスクが実行するデータブロックの数量を決定して、データ処理ノード1105がアクセスするデータ格納ノード1116に配置する流れを示す図である。
 図11に示す例では、分散データベースシステムにおいて実行するべく構成されたジョブとして、ジョブ1(図示の符号1101に相当)を例示している。このジョブ1は、タスク1.1(図示の符号1102に相当)、タスク1.2(図示の符号1103に相当)、タスク1.3(図示の符号1104に相当)を構成要素として保持する。また、本実施の形態においては、説明のために、データ処理ノードおよびデータ格納ノードが、それぞれ3台ずつの例を示しているが、データ処理ノードおよびデータ格納ノードの台数は、3台に限定されるものではない。
 図10に示すタスク実行判定部1007では、タスク負荷判定部1111において、タスク1.1、タスク1.2、タスク1.3の命令(Op1~Op6)を解釈し、各タスクを実行した時の計算量等の処理負荷を判定する。
 リソース管理部1006のリソース性能判定部1112は、データ処理ノード1105~1107が有するCPU1109及びFPGA1110等のような計算デバイスの動作周波数、並列実行数、メモリ帯域等のデータ処理性能情報に基づいて各計算デバイスのデータ処理性能を判定する。
 タスク実行性能計算部1113は、タスク負荷判定部1111によって判定された各タスクの処理負荷と、リソース性能判定部1112によって判定された各計算デバイスの性能に基づいて、各計算デバイスで各タスクを実行した時のタスク実行性能を計算する。
 デバイス選択部1013は、計算されたタスク実行性能に基づいて、各タスクを最短時間で実行可能等、当該タスクの実行に最適なデバイスを選択する。
 データ配分計算部1114は、選択されたデバイスを用いてタスクを実行した時のタスク実行性能に基づいて、各データ処理ノード1105~1107におけるタスク実行時間を平準化するように、タスク毎のデータ処理量を決定し、該決定されたデータ処理量に応じて論理データ生成部1014においてタスク毎のパーティション1120~1124を作成する。
 データ配分部1115は、データ格納ノード1116~1118毎に、各データ格納ノードとペアリングされているデータ処理ノードが処理するデータ量に応じた数量のデータブロックを格納する。
 パーティション1120~1124には、そのデータ量に対応した数量のデータブロック1125~1129が、データ格納ノード1116~1119から割り当てられる。
 図12は、本実施の形態によるリソース管理方法の一例を示す。より具体的には、図示の例では、計算デバイスのタスク実行性能に基づいてデータ配分を調整してタスクを実行するデータ配分処理を示している。
 データ処理が開始されると、クライアントノード101において、アプリケーション実行部102Aがデータ処理命令の実行を要求する(ステップS1201)。
 ジョブ管理ノード103では、アプリケーション実行部102Aが発行したデータ処理命令に基づき、分散データベースシステムでデータ処理命令を実行するジョブ構成を決定する(ステップS1202)。
 ジョブ管理ノード103では、決定されたジョブの構成に基づいて、各データ処理ノードで分散実行するタスクを生成し(ステップS1203)、リソース管理ノード104に対し、このタスクを実行するリソースを有するデータ処理ノードの使用を要求する(ステップS1204)。
 ジョブ管理ノード103は、各データ処理ノードが有する計算デバイスの性能に基づいて、生成されたタスクのノード毎の実行性能を計算する(ステップS1205)。
 さらにジョブ管理ノード103は、各タスクの各データ処理ノードにおける実行性能に基づいて、各タスクを実行する計算デバイスを選択する(ステップS1206)。
 ジョブ管理ノード103は、これらに基づいて、各タスクを実行する計算デバイス毎に、ノード間の実行時間が概ね等しくなる処理データ量を決定する(ステップS1207)。
 リソース管理ノード104は、このように決定した処理データ量に基づいて、タスクによって処理される論理データとしてのパーティションを生成する(ステップS1208)。
 データ管理ノード105は、各タスクが処理するデータ量に基づいて、各データ処理ノードとペアリングした各データ格納ノードに、データ処理ノードが処理するデータ量に対応する数量のデータブロックを配置する(ステップS1209)。
 データ管理ノード105は、各タスクに対応づけた各パーティションに、パーティションに設定したデータ量に応じた数量のデータブロックを割り当てる(ステップS1210)。
 各データ管理ノード105は、タスクを実行し、このタスクに対応づけたパーティションに割り当てられたデータを処理する(ステップS1211)。各データ管理ノード105は、タスクの実行が完了したら、次の計算ステージのタスクが存在するかを判定し、まだ次に実行すべきタスクが存在する場合(ステップS1212)は、ステップS1205に戻って処理を反復する。データ管理ノード105は、次の計算ステージのタスクが存在しない場合は、実行すべき他のジョブが存在するかを判定する。
 データ管理ノード105は、次に実行すべきジョブが存在する場合は、ステップS1203に戻って処理を反復する。データ管理ノード105は、処理すべき他のジョブが存在しない場合(ステップS1213)、処理を終了する。
 図13は、図11のタスク負荷判定部1111において判定された各タスクの処理負荷に基づいた実行時間の一例を示す。ここでは、図11の例に従って、ジョブ1にタスク1.1、タスク1.2、タスク1.3の3つのタスクが構成要素として含まれるものとする。また、本実施の形態による分散データベースシステムで実行される複数のジョブは、それぞれの間に依存関係を持たず独立であるとし、各データ処理ノード1105~1107に搭載されている計算デバイスもそれぞれ独立に実行可能であるとする。さらに、同一ジョブ内の異なる種類のタスクは並列実行不可であり、タスク1.1、タスク1.2、タスク1.3の順番に、前のタスク完了後に次のタスクの実行を開始できるものとする。
 このとき、図13に示す表では、タスク1.1で100GBのデータを処理した場合における処理負荷は、CPUで実行したときに、1コアあたり、動作周波数1GHzあたり1000msの実行時間が掛かるとする。また、タスク1.1をFPGAで処理した場合には1msの実行時間であるとする一方、GPUで実行した場合は10msの実行時間であるとする。タスク1.2及びタスク1.3については、表に示す通りである。
 ただし、タスク1.2は、タスクの処理の性質上GPUで実行することができないものとした。タスク1.3は、FPGAで実行することができないものとした。なお、これらの数値は、タスクプログラムの処理内容から性能モデルを生成し、該生成モデルに基づいて推定しても良いし、実際に特定の計算デバイスで予め実行しておいた結果から換算することも可能である。
 図14は、図11等で示したデータ処理ノード1105~1107に搭載された計算デバイスの構成例である。例えば、ノード1には、20コアのCPU(動作周波数:4GHz)と、FPGA及びGPUが1台ずつ搭載されていることを示している。
 図15は、図13及び図14に基づいて、図11のタスク実行性能計算部1113において、計算デバイス毎のタスク実行時間を計算した結果の一例を示す。
 例えば、ノード1のCPUでタスク1.1を実行した場合の実行時間Timeは、以下のように計算される。
 Time(タスク1.1、ノード1、CPU)=1000/20/4=12.5ms
 例えば、ノード1のFPGA又はGPUでタスク1.1を実行した場合の実行時間Timeも同様に以下のように計算することができる。
 Time(タスク1.1、ノード1、FPGA)=1ms
 Time(タスク1.1、ノード1、GPU)=5ms
 以上より、ノード1でタスク1.1を実行する場合は、FPGAを使用した場合に最も短い実行時間で処理が完了するため、計算デバイスとしてFPGAを選択する。なお、ノード2及びノード3の場合は図15に示す通りである。
 図16は、各ノードでタスク毎に最適な計算デバイスを選択した場合のタスク実行時間を示した一例である。実行時間は、図15の説明で示した方法に基づいて計算する。100GBのデータを処理する場合、ノード1では、タスク1.1の実行時間は、FPGAを使用することにより1ms、タスク1.2ではCPUを使用し6.25ms、タスク1.3ではCPUを使用し5msとなる。ノード2、ノード3についても同様に表に示す。
 図17は、図16の実行時間の比較を、データ処理性能(TB/s)を用いて示す。図18は、データソースとして1TB(テラバイト)のデータを3台のデータ処理ノードで処理する場合に、本実施の形態によるリソース管理方法を用いてノード毎の実行時間を平準化するデータ配分量を示す。
 例えば、タスク1.1では、ノード1、ノード2、ノード3における計算性能比が、図17より、10対2対0.2となっている。そこで、この比率で1TB=1024GBのデータを配分すると、ノード1では、
データ配分量(ノード1)= 1024x10/(10+2+0.2)=839GB
となる。
 同様にノード2には168GB、ノード3には17GBを割り当てることにより、タスク1.1は、全てのノードで同じ実行時間で処理を完了する。タスク1.2、タスク1.3については、図18の表の通りである。
 図19は、本実施の形態によるリソース管理処理により、データ処理ノードの計算性能に応じてデータ配分を調整した場合の効果を示す。
 図19(A)は、データ配分の調整を行わず、全てのデータ処理ノードに333GBずつ均等に配分した場合の各タスクの実行時間を示している。
 タスク1、1、タスク1.2、タスク1.3は、それぞれ前のタスクが完了してから次のタスクの実行を開始する条件であるため、各タスクにおいて、ノード1やノード2では処理が早期に完了しているにも関わらず、ノード3の処理が完了するまで待機することになり、システム全体の処理時間は、ノード3の実行性能で律速している。
 これに対し、図19(B)では、タスク毎に、図18の表に記載したデータ配分を行うことで、タスク毎の実行時間がノード間で平準化され、待機時間が無くなり、システム全対の実行時間が大幅に短縮される。
 図19(C)は、タスク毎にデータ配分を最適化するのではなく、タスク1.1、1.2、1.3のノード毎の実行性能の幾何平均(図17の表における幾何平均欄に記載)に基づいてデータを配分(図18の表における幾何平均欄に記載)した場合である。
 この場合は、実行するタスクによらず同じデータ配分を用いる。Hadoop(登録商標)の分散ファイルシステムであるHDFSのデータ配分機能等を用いてデータを配分する場合、データ格納ノードへのデータ転送が発生するため、タスク実行の度にデータ配分を行うと、データ転送のオーバーヘッド時間が全体の実行時間に影響を与える可能性がある。
 そこで本実施の形態では、データ転送のオーバーヘッドの影響が大きい場合には、実行する複数のタスクに対し準最適なデータ配分を予め行うことにより、タスク実行時のデータ転送オーバーヘッドの影響を回避しても良い。
 図19(C)では、タスク毎に多少の待機時間が生じているが、システム全体の実行時間は、データを均等配置した場合(A)に比べ、十分短くなっている。
 本実施の形態では、データ配分比として、タスク実行性能の幾何平均を用いたが、配分比を決定する方法は幾何平均に限定されるものではなく、例えば、算術平均、調和平均等、タスクの性質に応じて最適な計算方法を選択することが可能である。
 本実施の形態による分散データベースシステムでは、そのリソース管理方法として、ここまで、データ処理ノードが備える計算デバイスを用いてタスクを実行した際における、タスク実行性能に応じてタスクが処理するデータ量を配分する方法を開示したが、このようにタスク実行性能に応じてデータ量を配分する代わりに、予め配分されたデータ量に応じてタスクの実行性能を調整するようにしても良い。
 例えば、特定のタスクを実行する際に、高い動作周波数を持つCPU、又は、コア数の多いCPUを有するノードでタスクを実行する場合に、該ノードにおけるタスク実行時間が他のノードより短くなり、当該ノードに待機時間が生じてしまうときは、動作周波数を下げたり、使用するコア数を制限する等により、システム全体の実行時間を平準化し、かつ特定のノードの消費電力を削減したり、データベースソフトのライセンス費を削減することが可能である。
 また、計算デバイスとしてFPGAを使用する場合も、対象タスクを実行する論理回路の並列度を落としたり、論理回路規模を削減する等により、タスク実行性能を、他のFPGA非搭載データ処理ノードと平準化しながら、消費電力を削減したり、他の処理を実行する論理を追加する等により機能性を向上することが考えられる。
 本実施の形態では、計算能力としてタスク実行時間を評価尺度とする例について記載したが、例えば、タスク実行時のデータ転送量やネットワーク負荷、メモリ使用量等の性能指標や、タスク実行に伴う電力消費量や、計算リソース使用料金等を評価尺度として、ジョブ実行を最適化しても良い。
 (2)本実施の形態の効果等
 以上説明したように、上記実施の形態における分散データベースシステムでは、最適な複数の計算デバイスを用いてタスクを実行する時に、タスクの処理命令によって処理されるデータのデータ量を、最適な複数の計算デバイスの計算能力の違いに応じて最適な複数の計算デバイス間で配分し、最適な複数の計算デバイスを用いてタスクを分散して実行させている。
 このような構成によれば、各データ処理ノーゾにおける計算能力に応じて処理対象のデータのデータ量を分散できるため、システム全体でのデータの処理に掛かる実行時間を短縮することができる。
 (3)その他の実施形態
 上記実施形態は、本発明を説明するための例示であり、本発明をこれらの実施形態にのみ限定する趣旨ではない。本発明は、その趣旨を逸脱しない限り、様々な形態で実施することができる。例えば、上記実施形態では、各種プログラムの処理をシーケンシャルに説明したが、特にこれにこだわるものではない。従って、処理結果に矛盾が生じない限り、処理の順序を入れ替え又は並行動作するように構成しても良い。
 本発明は、分散データベースシステムを用いたデータ分析処理におけるリソース管理方法に広く適用することができる。
 1007……タスク実行判定部、1008……タスク分配部、1011……データ配置部、1014……論理データ生成部、1111……タスク負荷判定部、1112……リソース性能判定部、1113……タスク実行性能計算部、1114……データ配分計算部、1115……データ配分部。

Claims (14)

  1.  データを処理する1つ以上の計算デバイスを搭載する1つ以上のデータ処理ノードを備える分散データベースシステムにおいて、
     前記データ処理ノードにおける各前記計算デバイスの計算能力の違いを判定する計算能力判定部と、
     各前記計算デバイスの計算能力の違いに基づいて最適な計算デバイスを複数選択するデバイス選択部と、
     前記最適な複数の計算デバイスを用いて前記タスクを実行する時に、前記タスクの処理命令によって処理される前記データのデータ量を、前記最適な複数の計算デバイスの計算能力の違いに応じて前記最適な複数の計算デバイス間で配分し、前記最適な複数の計算デバイスを用いて前記タスクを分散して実行させるタスク分配制御部と、
     を備えることを特徴とする分散データベースシステム。
  2.  各前記計算デバイスは、
     前記タスクを処理するアクセラレータであることを特徴とする請求項1に記載の分散データベースシステム。
  3.  各前記計算デバイスは、
     CPU、FPGA、GPU及びASICのいずれか又はいずれかの組み合わせであることを特徴とする請求項2に記載の分散データベースシステム。
  4.  前記タスク分配制御部は、
     複数の前記データ処理ノードに搭載された各前記計算デバイスを用いて前記タスクを分散して実行させることを特徴とする請求項1に記載の分散データベースシステム。
  5.  前記タスク分配制御部は、
     1つの前記データ処理ノードに搭載された複数の前記計算デバイスを用いて前記タスクを分散して実行させることを特徴とする請求項1に記載の分散データベースシステム。
  6.  前記計算能力判定部は、
     前記タスクの処理命令を解釈してタスク負荷を判定するタスク負荷判定部と、
     各前記計算デバイスのリソース性能を判定するリソース性能判定部と、
     を備え、
     前記タスク分配制御部は、
     前記最適な複数の計算デバイスを用いて前記タスクを実行する時に、前記タスクの処理命令によって処理される前記データのデータ量を、前記タスク負荷及び前記リソース性能に基づくタスク実行性能の比に応じて前記最適な複数の計算デバイス間で配分し、前記最適な複数の計算デバイスを用いて前記タスクを分散して実行させることを特徴とする請求項1に記載の分散データベースシステム。
  7.  前記タスク分配制御部は、
     前記タスクによって処理される前記データのデータ量を前記タスク実行性能の比に応じて分配する際に、前記タスク実行性能の平均値に基づいて分配することを特徴とする請求項6に記載の分散データベースシステム。
  8.  前記タスク分配制御部は、
     前記平均値の導出に幾何平均を用いることを特徴とする請求項7に記載の分散データベースシステム。
  9.  データを処理する1つ以上の計算デバイス、及び制御部を搭載する1つ以上のデータ処理ノードを備える分散データベースシステムにおけるリソース管理方法において、
     前記制御部が、前記データ処理ノードにおける各前記計算デバイスの計算能力の違いを判定する計算能力判定ステップと、
     前記制御部が、各前記計算デバイスの計算能力の違いに基づいて最適な計算デバイスを複数選択するデバイス選択ステップと、
     前記制御部が、前記最適な複数の計算デバイスを用いて前記タスクを実行する時に、前記タスクの処理命令によって処理される前記データのデータ量を、前記最適な複数の計算デバイスの計算能力の違いに応じて前記最適な複数の計算デバイス間で配分し、前記最適な複数の計算デバイスを用いて前記タスクを分散して実行させるタスク分配制御ステップと、
     を有することを特徴とする分散データベースシステムのリソース管理方法。
  10.  前記タスク分配制御ステップでは、
     前記制御部が、複数の前記データ処理ノードに搭載された各前記計算デバイスを用いて前記タスクを分散して実行させることを特徴とする請求項9に記載の分散データベースシステムのリソース管理方法。
  11.  前記タスク分配制御ステップでは、
     前記制御部が、1つの前記データ処理ノードに搭載された複数の前記計算デバイスを用いて前記タスクを分散して実行させることを特徴とする請求項9に記載の分散データベースシステムのリソース管理方法。
  12.  前記計算能力判定ステップでは、
     前記制御部が、前記タスクの処理命令を解釈してタスク負荷を判定するタスク負荷判定ステップと、
     前記制御部が、各前記計算デバイスのリソース性能を判定するリソース性能判定ステップと、
     を含み、
     前記タスク分配制御ステップでは、
     前記制御部が、前記最適な複数の計算デバイスを用いて前記タスクを実行する時に、前記タスクの処理命令によって処理される前記データのデータ量を、前記タスク負荷及び前記リソース性能に基づくタスク実行性能の比に応じて前記最適な複数の計算デバイス間で配分し、前記最適な複数の計算デバイスを用いて前記タスクを分散して実行させる
     ことを特徴とする請求項9に記載の分散データベースシステムのリソース管理方法。
  13.  前記タスク分配制御ステップでは、
     前記制御部が、前記タスクによって処理される前記データのデータ量を前記タスク実行性能の比に応じて分配する際に、前記タスク実行性能の平均値に基づいて分配することを特徴とする請求項12に記載の分散データベースシステムのリソース管理方法。
  14.  前記タスク分配制御ステップでは、
     前記制御部が、前記平均値の導出に幾何平均を用いることを特徴とする請求項13に記載の分散データベースシステムのリソース管理方法。
PCT/JP2017/007799 2017-02-28 2017-02-28 分散データベースシステム及び分散データベースシステムのリソース管理方法 WO2018158819A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2019502321A JP6753999B2 (ja) 2017-02-28 2017-02-28 分散データベースシステム及び分散データベースシステムのリソース管理方法
PCT/JP2017/007799 WO2018158819A1 (ja) 2017-02-28 2017-02-28 分散データベースシステム及び分散データベースシステムのリソース管理方法
US16/333,727 US10936377B2 (en) 2017-02-28 2017-02-28 Distributed database system and resource management method for distributed database system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2017/007799 WO2018158819A1 (ja) 2017-02-28 2017-02-28 分散データベースシステム及び分散データベースシステムのリソース管理方法

Publications (1)

Publication Number Publication Date
WO2018158819A1 true WO2018158819A1 (ja) 2018-09-07

Family

ID=63370395

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2017/007799 WO2018158819A1 (ja) 2017-02-28 2017-02-28 分散データベースシステム及び分散データベースシステムのリソース管理方法

Country Status (3)

Country Link
US (1) US10936377B2 (ja)
JP (1) JP6753999B2 (ja)
WO (1) WO2018158819A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220086449A (ko) * 2020-12-16 2022-06-23 한국과학기술원 스케줄링 방법 및 장치

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7305990B2 (ja) * 2019-03-12 2023-07-11 富士通株式会社 転送プログラム、転送方法、および情報処理装置
US11675515B2 (en) * 2021-02-17 2023-06-13 Bank Of America Corporation Intelligent partitioning engine for cluster computing
CN115061825B (zh) * 2022-08-09 2022-11-18 深圳致星科技有限公司 隐私计算、隐私数据和联邦学习的异构计算系统及方法
CN115268800B (zh) * 2022-09-29 2022-12-20 四川汉唐云分布式存储技术有限公司 基于计算路由重定向的数据处理方法及数据存储系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010122758A (ja) * 2008-11-17 2010-06-03 Fujitsu Ltd ジョブ管理装置、ジョブ管理方法およびジョブ管理プログラム
JP2013186770A (ja) * 2012-03-09 2013-09-19 Hitachi Ltd データ処理装置
US20140245298A1 (en) * 2013-02-27 2014-08-28 Vmware, Inc. Adaptive Task Scheduling of Hadoop in a Virtualized Environment
JP2016532183A (ja) * 2013-10-03 2016-10-13 華為技術有限公司Huawei Technologies Co.,Ltd. ソフトウェアプログラムの計算ブロックをマルチプロセッサシステムのコアに割り当てるための方法及びシステム

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09259091A (ja) * 1996-03-22 1997-10-03 Nec Corp トランザクション処理のホスト負荷分散方式
JPH09265459A (ja) * 1996-03-28 1997-10-07 Mitsubishi Electric Corp データ処理装置の制御方法
US7054934B2 (en) * 2001-10-26 2006-05-30 Hewlett-Packard Development Company, L.P. Tailorable optimization using model descriptions of services and servers in a computing environment
US8301742B2 (en) * 2008-04-07 2012-10-30 International Business Machines Corporation Systems and methods for coordinated management of power usage and runtime performance in performance-managed computing environments
US7979426B2 (en) * 2008-06-05 2011-07-12 Samsung Electronics Co., Ltd. Clustering-based interest computation
US8122269B2 (en) * 2009-01-07 2012-02-21 International Business Machines Corporation Regulating power consumption in a multi-core processor by dynamically distributing power and processing requests by a managing core to a configuration of processing cores
US8874961B2 (en) * 2010-03-22 2014-10-28 Infosys Limited Method and system for automatic failover of distributed query processing using distributed shared memory
US9244737B2 (en) 2011-02-04 2016-01-26 Hitachi, Ltd. Data transfer control method of parallel distributed processing system, parallel distributed processing system, and recording medium
JP2014215764A (ja) 2013-04-24 2014-11-17 日本電信電話株式会社 設定値生成装置、分散処理装置、設定値生成方法、および、設定値生成プログラム
EP3063708A2 (en) * 2013-10-28 2016-09-07 Intel Corporation Methods, systems and computer program products for using a distributed associative memory base to determine data correlations and convergence therein
WO2017013758A1 (ja) * 2015-07-22 2017-01-26 株式会社日立製作所 データベース検索システム及びデータベース検索方法
US9900378B2 (en) * 2016-02-01 2018-02-20 Sas Institute Inc. Node device function and cache aware task assignment
US10649996B2 (en) * 2016-12-09 2020-05-12 Futurewei Technologies, Inc. Dynamic computation node grouping with cost based optimization for massively parallel processing

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010122758A (ja) * 2008-11-17 2010-06-03 Fujitsu Ltd ジョブ管理装置、ジョブ管理方法およびジョブ管理プログラム
JP2013186770A (ja) * 2012-03-09 2013-09-19 Hitachi Ltd データ処理装置
US20140245298A1 (en) * 2013-02-27 2014-08-28 Vmware, Inc. Adaptive Task Scheduling of Hadoop in a Virtualized Environment
JP2016532183A (ja) * 2013-10-03 2016-10-13 華為技術有限公司Huawei Technologies Co.,Ltd. ソフトウェアプログラムの計算ブロックをマルチプロセッサシステムのコアに割り当てるための方法及びシステム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220086449A (ko) * 2020-12-16 2022-06-23 한국과학기술원 스케줄링 방법 및 장치
KR102559658B1 (ko) 2020-12-16 2023-07-26 한국과학기술원 스케줄링 방법 및 장치

Also Published As

Publication number Publication date
US20190272201A1 (en) 2019-09-05
JPWO2018158819A1 (ja) 2019-06-27
JP6753999B2 (ja) 2020-09-09
US10936377B2 (en) 2021-03-02

Similar Documents

Publication Publication Date Title
WO2018158819A1 (ja) 分散データベースシステム及び分散データベースシステムのリソース管理方法
Chowdhury et al. Implementation and performance analysis of various VM placement strategies in CloudSim
US9916183B2 (en) Scheduling mapreduce jobs in a cluster of dynamically available servers
EP3254196B1 (en) Method and system for multi-tenant resource distribution
US10715587B2 (en) System and method for load balancing computer resources
US9501325B2 (en) System and method for shared utilization of virtualized computing resources
Piao et al. A network-aware virtual machine placement and migration approach in cloud computing
EP3274859B1 (en) Cluster computing service assurance apparatus and method
US20230136661A1 (en) Task scheduling for machine-learning workloads
KR101656706B1 (ko) 고성능 컴퓨팅 환경에서의 작업 분배 시스템 및 방법
CN104518897A (zh) 虚拟防火墙的资源管理优化处理方法和装置
Acharya et al. Docker container orchestration management: A review
CN107528871B (zh) 存储系统中的数据分析
US20210390405A1 (en) Microservice-based training systems in heterogeneous graphic processor unit (gpu) cluster and operating method thereof
Pandya et al. Dynamic resource allocation techniques in cloud computing
US9584594B2 (en) Dynamic provisioning of processing resources in a virtualized computational architecture
KR20140044597A (ko) 태스크 처리 장치 및 방법
Heidari et al. A cost-efficient auto-scaling algorithm for large-scale graph processing in cloud environments with heterogeneous resources
Yan et al. Affinity-aware virtual cluster optimization for mapreduce applications
KR20140125893A (ko) 가상화된 매니코어 서버의 작업분배 시스템과 그 방법 및 기록매체
Kyi et al. An efficient approach for virtual machines scheduling on a private cloud environment
KR101639947B1 (ko) 하둡 선점 데드라인 제약 스케줄링 방법 및 그 방법을 수행하는 컴퓨터프로그램과, 그 프로그램이 기록된 매체
Peng et al. BQueue: A coarse-grained bucket QoS scheduler
Patel et al. Implementation of Load balancing in Cloud computing through Round Robin & Priority using cloudSim
Gu et al. Elastic model aggregation with parameter service

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

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2019502321

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

Country of ref document: EP

Kind code of ref document: A1