WO2014020795A1 - 分散システム制御装置、プログラム、及び制御方法 - Google Patents

分散システム制御装置、プログラム、及び制御方法 Download PDF

Info

Publication number
WO2014020795A1
WO2014020795A1 PCT/JP2013/002179 JP2013002179W WO2014020795A1 WO 2014020795 A1 WO2014020795 A1 WO 2014020795A1 JP 2013002179 W JP2013002179 W JP 2013002179W WO 2014020795 A1 WO2014020795 A1 WO 2014020795A1
Authority
WO
WIPO (PCT)
Prior art keywords
data storage
storage device
processing
input
load
Prior art date
Application number
PCT/JP2013/002179
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 JP2014527946A priority Critical patent/JPWO2014020795A1/ja
Publication of WO2014020795A1 publication Critical patent/WO2014020795A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • 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/25Integrating or interfacing systems involving database management systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2206/00Indexing scheme related to dedicated interfaces for computers
    • G06F2206/10Indexing scheme related to storage interfaces for computers, indexing schema related to group G06F3/06
    • G06F2206/1012Load balancing

Definitions

  • the present invention relates to a distributed system control device, a program, and a control method.
  • a distributed system has been developed that divides a process involving data input or output into a plurality of processes and distributes the divided processes to a plurality of computers.
  • the plurality of computers are connected to all other computers or some computers via a network.
  • a distributed system for storing data input or output by the process in a distributed manner in a storage device included in a computer executing the process or a plurality of storage devices distributed on a network constituting the distributed system.
  • a distributed system in which data is distributed and arranged, the same data is often arranged in a plurality of storage devices in order to increase data availability.
  • each process can input necessary data by accessing the remaining storage devices even if some storage devices are damaged or part of the network that constitutes the distributed system is disconnected. Or output.
  • Patent Documents 1 to 4 There are inventions disclosed in Patent Documents 1 to 4 as an invention for determining a storage destination when data is distributed and stored in a plurality of storage devices.
  • Patent Document 1 discloses a distributed system that determines a computer that is an input source or an output destination of data.
  • a computer that is an input source or an output destination of data is determined by sequentially selecting the nearest and available data storage server from computers that process individual data.
  • Patent Documents 2 and 3 disclose a distributed system that includes computers in which data is distributed and stored, and determines the access order of the computers so that the data input load is uniform when data is input. This distributed system randomly selects computers to be arranged when data is stored. Thereby, when data is read, the computer that is the data input source is determined so that the selection frequency of the computer storing the data is stochastically uniform.
  • Patent Document 4 discloses an apparatus and a system for connecting a data storage computer that transfers a sequence of instructions to a plurality of connected data storage computers so that data replication is generated on different computers. .
  • This apparatus and system distributes the data read request transmitted by the computer to the computers in which the data replicas are stored and transfers the data read load to a plurality of data storage computers. scatter.
  • Patent Document 1 a storage device in which a process inputs or outputs data is determined without considering the load status of the storage device. Therefore, when a plurality of processes input or output data to the same storage device, it may take a long time to input or output data.
  • Each technique described in Patent Documents 2, 3, and 4 is a technique for performing load distribution stochastically, and therefore it may take a long time to input or output data.
  • An object of the present invention is to provide a distributed system control device, a program, and a control method that shorten the time required for data input or output by a process in a distributed system.
  • the distributed system control device is a distributed system control device that controls a distributed system that performs distributed processing of a plurality of processing processes for inputting or outputting data.
  • the distributed system includes a plurality of data storage devices and a processing process execution device that executes the processing process and is connected to the plurality of data storage devices so as to communicate with each other.
  • the distributed system control device includes a data storage device load information acquisition unit that acquires data storage device load information representing a processing load of each data storage device, and the processing processes input or output the data.
  • Candidate information acquisition means for acquiring candidate information indicating a candidate for a data storage device, and the data storage having a low processing load indicated in the data storage device load information from among data storage device candidates related to the respective processing processes I / O destination information generating means for generating I / O destination information by associating the processing process with the data storage device to which the processing process inputs or outputs the data, by preferentially selecting a device Have.
  • the program provided by the present invention is a program that causes a computer to function as a distributed system control device that controls a distributed system that performs distributed processing of a plurality of processing processes for inputting or outputting data.
  • the distributed system includes a plurality of data storage devices and a processing process execution device that executes the processing process and is connected to the plurality of data storage devices so as to communicate with each other.
  • the program has a function of acquiring data storage device load information representing a processing load of each data storage device in the computer, and a candidate for the data storage device in which each processing process inputs or outputs the data. And preferentially selecting the data storage device with a low processing load indicated in the data storage device load information from the data storage device candidates related to each processing process.
  • a function of generating input / output destination information that associates the processing process with the data storage device that inputs or outputs the data is provided.
  • the control method provided by the present invention is executed by a computer that controls a distributed system that distributes a plurality of processing processes for inputting or outputting data.
  • the distributed system includes a plurality of data storage devices and a processing process execution device that executes the processing process and is connected to the plurality of data storage devices so as to communicate with each other.
  • the control method includes a step of obtaining data storage device load information indicating a processing load of each data storage device, and a candidate indicating the data storage device candidate in which each processing process inputs or outputs the data Obtaining the information, and by preferentially selecting the data storage device having a low processing load indicated in the data storage device load information from among the data storage device candidates related to each processing process, A step of generating input / output destination information in which a processing process and the data storage device that inputs or outputs the data are associated with each other.
  • FIG. 1 It is a block diagram which shows the structure of the distributed system control apparatus which concerns on Embodiment 1 with the use environment. It is a figure which shows the structure of a data storage apparatus load table. It is a figure which shows the structure of a candidate table. It is a figure which shows the structure of an input / output destination table. 4 is a flowchart illustrating a flow of input / output destination information generation processing in the first embodiment. It is a figure which shows the structure of the distributed system control apparatus in the operation example 1, and its use environment. It is a figure which shows the distributed system control apparatus in the operation examples 1 and 2, the computer which implement
  • FIG. 10 is a flowchart illustrating a flow of input / output destination information generation processing in the second embodiment. It is a figure which shows the structure of the distributed system control apparatus in the operation example 2, and its use environment. It is a figure which shows the communication path load table in the operation example 2.
  • 14 is a flowchart illustrating the flow of the first half of input / output destination information generation processing according to the third embodiment.
  • 14 is a flowchart illustrating the flow of the latter half of the input / output destination information generation process according to the third embodiment.
  • It is a figure which shows the structure of the distributed system control apparatus in the operation example 3, and its use environment.
  • It is a figure which shows the distributed system control apparatus in the operation example 3, the computer which implement
  • FIG. It is a figure which shows the communication path load table in the operation example 3.
  • FIG. It is a figure which shows the process execution apparatus allocation table in the operation example 3.
  • FIG. 15 is a flowchart illustrating a flow of input / output destination information generation processing in the fourth embodiment. It is a figure which shows the structure of the distributed system control apparatus in the operation example 4, and its use environment.
  • the operation example 4 it is a figure which shows the computer which implement
  • each component of each device indicates a functional unit block, not a hardware unit configuration.
  • Each component of each device includes a CPU, a memory of a computer, a program that realizes the components of this figure loaded in the memory, a storage medium such as a hard disk that stores the program, and a network connection interface. It is realized by any combination of software and software. There are various modifications of the implementation method and apparatus.
  • FIG. 1 is a block diagram showing a configuration of a distributed system control apparatus 2000 according to the first embodiment, together with its use environment.
  • arrows indicate the flow of information.
  • the distributed system control apparatus 2000 controls the distributed system 3000.
  • the distributed system 3000 includes a process execution device 3100 and a data storage device 3200.
  • the process execution device 3100 operates the processing process 10 by executing a program in which processing involving data input or output to the data storage device 3200 is described.
  • data input or output by the processing process 10 is collectively referred to as processing data 20.
  • the process execution device 3100 may execute a plurality of processing processes 10.
  • the process execution device 3100 is connected to a plurality of data storage devices 3200 so that data communication is possible.
  • the data storage device 3200 stores the processing data 20 input or output by the processing process 10.
  • the distributed system control device 2000 controls input or output of the processing data 20 by the processing process 10.
  • the distributed system control device 2000 includes a data storage device load information acquisition unit 2040 and a candidate information acquisition unit 2060.
  • the data storage device load information acquisition unit 2040 acquires data storage device load information indicating the processing load of each data storage device 3200.
  • the candidate information acquisition unit 2060 acquires candidate information indicating candidates of the data storage device 3200 to which each processing process 10 inputs or outputs the processing data 20.
  • the distributed system control device 2000 further includes an input / output destination information generation unit 2020.
  • the input / output destination information generation unit 2020 includes, for each processing process 10, a processing process 10 and a data storage device 3200 to which the processing process 10 inputs or outputs the processing data 20. Generate input / output destination information to be associated. Specifically, the input / output destination information generation unit 2020 first acquires candidates for the data storage device 3200 with which the processing process 10 can input or output the processing data 20 with reference to the candidate information.
  • the input / output destination information generation unit 2020 refers to the data storage information load information and preferentially selects the data storage device 3200 having a low processing load from the candidate data storage devices 3200, and the processing process 10 And the data storage device 3200 are associated with each other. Then, the input / output destination information generation unit 2020 generates input / output destination information indicating the association between the processing process 10 and the data storage device 3200 performed as described above.
  • the distributed system control device 2000 is a data storage device 3200 in which each processing process 10 inputs or outputs processing data 20, from among candidates for the data storage device 3200 indicated by candidate information.
  • the data storage device 3200 having a low processing load indicated by the data storage device load information is selected. Thereby, the processing load of the data storage device 3200 generated when the processing process 10 inputs or outputs the processing data 20 is distributed. As a result, the time required to input or output the processing data 20 by the processing process 10 is shortened.
  • the distributed system control device 2000 is realized on various computers such as a dedicated device, a server machine, or a personal computer (PC).
  • the process execution device 3100 is realized on various computers.
  • the distributed system control apparatus 2000 and the process execution apparatus 3100 may be realized on the same computer or may be realized on different computers.
  • the data storage device 3200 is realized on the same computer as the process execution device 3100, for example. Specifically, for example, it is realized by various storage devices such as a dedicated storage device, a secondary storage device such as a hard disk, or a memory. Further, the data storage device 3200 may be realized by a portable storage device such as a USB memory connected to the process execution device 3100.
  • the data storage device 3200 may be realized on a computer different from the computer that implements the process execution device 3100.
  • the data storage device 3200 is realized as a storage device on various computers such as a network attached storage (NAS), a PC having a storage device such as a hard disk, or a server machine.
  • NAS network attached storage
  • PC having a storage device such as a hard disk
  • server machine a server machine
  • the various computers have, for example, a CPU (Central Processing Unit), a memory, an input / output interface (I / F), and the like that are connected to each other via a bus.
  • the memory is a RAM (Random Access Memory), a ROM (Read Only Memory), a hard disk, a portable storage medium, or the like. A hard disk, a portable storage medium, and the like are also referred to as a storage device.
  • the input / output I / F is connected to a communication device or the like that communicates with other devices via a network.
  • the input / output I / F may be connected to a user interface device such as a display device or an input device. Note that the hardware configurations of the distributed system control device 2000, the process execution device 3100, and the data storage device 3200 are not limited in this embodiment and all the embodiments described below.
  • the process execution device 3100 and the data storage device 3200 There are various methods for connecting the process execution device 3100 and the data storage device 3200.
  • the data storage device 3200 and the process execution device 3100 are realized on the same computer, for example, both are connected by a bus.
  • the data storage device 3200 and the process execution device 3100 are realized on different computers, for example, the two are connected via a network such as a Local Area Network (LAN) or a Wide Area Network (WAN).
  • the network connecting the process execution device 3100 and the data storage device 3200 may be a wired network, a wireless network, or a network in which both are mixed.
  • the data storage device load information includes, for example, a data storage device load table 100 shown in FIG.
  • the data storage device load table 100 includes, for example, a data storage device ID 110 and processing load information 120.
  • the record of the data storage device load table 100 indicates the load information of the data storage device 3200 specified by the data storage device ID 110 in the processing load information 120.
  • the data storage device ID 110 is an identifier for identifying the data storage device 3200.
  • the data storage device ID 110 is, for example, a logical device name given to the data storage device 3200 by the operating system (OS).
  • the processing load information 120 is information indicating the load of the data storage device 3200.
  • the processing load information 120 includes, for example, a data transfer amount that the data storage device 3200 inputs / outputs per unit time, and a data input / output request that is stored in a queue that stores a data input / output request received by the data storage device 3200 (Hereinafter, the request queue length). Further, the processing load information 120 may include, for example, load information of a computer such as a server or a PC that implements the data storage device 3200 specified by the data storage device ID 110. An example is the usage rate of the CPU of the computer. The processing load information 120 may be 1-bit information indicating whether the load is high or low. Further, the processing load information 120 may include a plurality of pieces of load information as exemplified in the above example for each data storage device 3200.
  • the data storage device load information acquisition unit 2040 acquires data storage device load information automatically generated by a monitoring system that monitors the load status of the data storage device 3200. Further, for example, the data storage device load information acquisition unit 2040 may acquire the data storage device load information manually input by the administrator of the distributed system 3000.
  • the data storage device load information is acquired at various times.
  • the data storage device load information acquisition unit 2040 acquires the data storage device load information when the input / output destination information generation unit 2020 starts generation processing of the input / output destination information.
  • the data storage device load information acquisition unit 2040 may repeatedly acquire the data storage device load information at regular time intervals or irregular time intervals.
  • the data storage device load information acquisition unit 2040 may acquire data storage device load information indicating a new processing load of the data storage device 3200 when the processing load of the data storage device 3200 fluctuates.
  • the data storage device load information acquisition unit 2040 may acquire only the data storage device load information related to the data storage device 3200 in which the processing load has changed, or the data storage device load information related to all the data storage devices 3200. You may get it.
  • the candidate information has a candidate table 200 shown in FIG. 3, for example.
  • the candidate table has, for example, a process ID 210, a processing type 220, a processing data ID 230, and a data storage device ID 240.
  • the records in the candidate table are data that are candidates for each combination of “processing process 10 specified by process ID 210, processing type (input or output) indicated by processing type 220, and processing data 20 specified by processing data ID 230”.
  • the ID of the storage device 3200 is shown.
  • the process ID 210 is an identifier that identifies the processing process 10.
  • the process type 220 is information (hereinafter, process type information) indicating whether the candidate of the data storage device 3200 indicated by the record is an input source candidate or an output destination candidate.
  • the processing type 220 is represented by, for example, binary values of 0 and 1, where 1 indicates output and 0 indicates input.
  • the process data ID 230 indicates an identifier of the process data 20.
  • the data storage device ID 240 indicates an identifier of the data storage device 3200.
  • the data storage device with the data storage device ID DISK1 3200.
  • the candidate table 200 preferably includes a plurality of records indicating different data storage device IDs 240 for the same combination of “process ID 210, processing type 220, processing data ID 230”. By doing so, the input / output destination information generation unit 2020 can select the data storage device 3200 having a low processing load from a plurality of candidates.
  • the processing type 220 or the processing data ID 230 may be omitted.
  • the processing process 10 sets the same data storage device 3200 as a candidate for both data input and output.
  • the processing process 10 sets the same data storage device 3200 as the input source or output destination candidate for all the processing data 20.
  • the processing process 10 sets the same data storage device 3200 as the input source and output destination candidates for all the processing data 20.
  • a process group ID that is an identifier of the group of the processing process 10 may be specified.
  • the processing processes 10 belonging to the same process group use the same data storage device 3200 as a candidate for each combination of “processing type, processing data 20”.
  • processing type, processing data 20 As an example in which a plurality of processes belong to one process group in a distributed system, there is a case where one job is divided into a plurality of processing processes and executed in parallel. In this case, each of the divided processing processes belongs to the same process group.
  • the candidate information may associate the processing process 10 with the data storage device 3200 that is estimated that the processing process 10 can input or output the processing data 20.
  • the candidate information acquisition unit 2060 acquires candidate information from a management server that performs processing for assigning the processing process 10 to the process execution device 3100 and processing for assigning the processing data 20 to the data storage device 3200. For example, when the process execution device 3100 that executes the processing process 10 and the data storage device 3200 that stores the processing data 20 are on the same computer, the management server moves the data storage device 3200 to the processing performed by the processing process 10. It is assumed that the input source or output destination of the data 20 is a candidate. Further, for example, the candidate information acquisition unit 2060 acquires candidate information from a monitoring system that monitors input or output of the processing data 20 to the data storage device 3200. In addition, for example, the candidate information acquisition unit 2060 acquires candidate information manually input by the administrator of the distributed system 3000.
  • the input / output destination information generation unit 2020 generates input / output destination information that associates the processing process 10 with the data storage device 3200 to which the processing process 10 inputs or outputs the processing data 20.
  • the input / output destination information is represented by, for example, an input / output destination table 300 shown in FIG. Each record in the input / output destination table 300 corresponds to a combination of “the processing process 10 specified by the process ID 310, the processing type indicated by the processing type 320, the processing data 20 specified by the processing data ID 330”, and the data storage device 3200. Indicates.
  • the process ID 310 is an identifier for identifying the processing process 10.
  • the process type 320 is process type information.
  • the process data ID 330 is an identifier of the process data 20.
  • the data storage device ID 340 is an identifier of the data storage device 3200.
  • Input from the data storage device 3200 with ID340 DISK2.
  • the input / output destination table 300 may include a plurality of records in which the data storage device 3200 is associated with the same combination of “process ID 310, process type 320, process data ID 330”. In this case, for example, the data storage device 3200 included in the record having a smaller row number is used with priority to control the processing process 10.
  • the processing type 320 or the processing data ID 330 may be omitted.
  • the processing process 10 is associated with the same data storage device 3200 with respect to both input and output of data.
  • the processing data ID 330 is omitted, for example, a combination of “processing process 10 and processing type” is associated with the same data storage device 3200 for all the processing data 20.
  • the processing process 10 is associated with the same data storage device 3200 with respect to all combinations of “processing type and processing data 20”.
  • FIG. 5 is a flowchart illustrating an example of a flow of input / output destination information generation processing in which the input / output destination information generation unit 2020 generates input / output destination information.
  • step S102 the input / output destination information generation unit 2020 acquires candidate information from the candidate information acquisition unit 2060.
  • step S104 the input / output destination information generation unit 2020 acquires the data storage device load information from the data storage device load information acquisition unit 2040.
  • step S106 the input / output destination information generation unit 2020 searches the candidate table 200 included in the candidate information, acquires a record indicating the candidate of the data storage device 3200, and adds it to the set R.
  • the input / output destination information generation unit 2020 searches the candidate table 200 using the ID of the processing process 10 as a key.
  • the input / output destination information generation unit 2020 displays “process ID of process 10, processing Search is performed using “ID of data 20” as a key.
  • the input / output destination information generation unit 2020 sets “ID of processing process 10, processing type”. Search as a key.
  • the input / output destination information generation unit 2020 selects “processing process 10, processing data”. The search is performed using “type, processing data 20” as a key.
  • Each record added to the set R only needs to include the data storage device ID 240. Therefore, the input / output destination information generation unit 2020 may add only a part of the records including the data storage device ID 240 to the set R for each record.
  • step S108 the input / output destination information generation unit 2020 searches the data storage device load table 100 using the value of the data storage device ID 240 included in each record included in the set R as a key, and stores each data storage included in the candidate.
  • the processing load of the device 3200 is acquired.
  • the input / output destination information generation unit 2020 sorts the records included in the set R in ascending order of processing load.
  • step 110 the input / output destination information generation unit 2020 generates an input / output destination table having the records included in the set R in the sorted order, and sets the input / output destination information as input / output destination information.
  • the processing load of the data storage device 3200 may be indicated by different indexes such as record 1 and record 2 of the data storage device load table 100 shown in FIG.
  • the records of the set R cannot be sorted using the value of the processing load information 120 as it is. Therefore, for example, the input / output destination information generation unit 2020 standardizes the value indicated by the processing load information 120 and sorts records based on the standardized value.
  • the input / output destination information may be generated from some of the records in the set R.
  • the input / output destination information generation unit 2020 sets an upper limit on the number of records included in the input / output destination information. For example, when the number of records included in the input / output destination information is N, the input / output destination information generation unit 2020 is a record limited to only N records from the top of the records of the set R sorted in ascending order of processing load.
  • the configured input / output destination table 300 is used as input / output destination information.
  • the input / output destination information generation processing is not limited to the processing in the above flowchart.
  • the input / output destination information generation unit 2020 may determine the processing load of each data storage device 3200 based on a binary value indicating whether the load is low or high.
  • the input / output destination information generation unit 2020 provides a threshold for each index of the processing load such as the data transfer amount and the request queue length. Then, the input / output destination information generation unit 2020 compares the processing load with a threshold for each data storage device 3200 included in the candidate, and determines whether the load is high or low. Then, the input / output destination information generation unit 2020 uses the set of data storage devices 3200 determined to have a low load as the input / output destination information.
  • the input / output destination information generation unit 2020 generates data input / output destination information in response to a request from the process execution device 3100. For example, when the process execution device 3100 starts executing a new processing process 10, the input / output destination information generation unit 2020 determines the determination of the data storage device 3200 to which the processing process 10 inputs or outputs each processing data 20. It is a case to request to. Further, the input / output destination information generation unit 2020 may generate input / output destination information in response to a request from the management server that allocates the processing process 10 to the process execution device 3100.
  • the determination of the data storage device 3200 to which each processing process 10 inputs or outputs the processing data 20 is performed according to the input / output destination. This is a case where the information generation unit 2020 is requested.
  • the input / output destination information generation unit 2020 may generate input / output destination information collectively for a plurality of processing processes 10. There are various methods. For example, the input / output destination information generation unit 2020 executes a greedy algorithm that associates the data storage device 3200 with each processing process 10 in order. Also, for example, the input / output destination information generation unit 2020 refers to the set of processing processes 10 and the set of data storage devices 3200, and optimizes a plurality of associations of “processing process 10, data storage device 3200”. An algorithm may be executed.
  • the distributed system control apparatus 2000 includes an input / output destination notification unit that notifies each processing process 10 of an instruction based on the input / output destination information.
  • the input / output destination notification unit may notify the data storage device 3200.
  • the data storage device 3200 exchanges the processing process 10 and the processing data 20 in accordance with the notification.
  • the input / output destination notification unit may be provided outside the distributed system control apparatus 2000.
  • the management server may include an input / output destination notification unit.
  • the management server receives the input / output destination information generated by the input / output destination information generation unit 2020 and controls the processing process 10 and the data storage device 3200 based on the received input / output destination information.
  • processing process 10 and the data storage device 3200 may request the distributed system control device 2000 to transmit the input / output destination information by itself.
  • FIG. 6 is a diagram showing a functional configuration of the distributed system control apparatus 2000 and its usage environment in the operation example 1.
  • the same functional blocks as those in FIG. 1 have the same functions as the functional blocks in FIG.
  • Management server 3400 is a management server that assigns processing process 10 to process execution device 3100 and assigns processing data 20 to data storage device 3200.
  • the management server 3400 includes a candidate information providing unit 3420 and an input / output destination notifying unit 3440.
  • the candidate information providing unit 3420 provides candidate information to the candidate information acquiring unit 2060.
  • the input / output destination notification unit 3440 receives the input / output destination information from the input / output destination information generation unit 2020 and designates the data storage device 3200 that is the input source or output destination of the processing data 20 to the process execution device 3100.
  • the data storage device load information providing unit 3500 monitors the load status of the data storage device 3200, generates data storage device load information, and transmits the data storage device load information acquisition unit 2040.
  • FIG. 7 is a diagram conceptually showing a hardware configuration and an operation state of the distributed system control device 2000 and the distributed system 3000 in the operation example 1.
  • the computer C0 functions as a distributed system control device 2000 and a management server.
  • Each of the computers C1 to C4 functions as a process execution device 3100.
  • the disks DISK1 to DISK5 each function as a data storage device 3200.
  • the disk DISK1 is provided in the computer C1
  • the disk DISK2 is provided in the computer C2
  • the disk DISK3 is provided in the computer C3
  • the disk DISK4 is provided in the computer C4.
  • the disk DISK5 is provided inside the computer C5.
  • the computers C1 to C3 are connected to be communicable with each other via the switch SW1.
  • the switch SW1, the computer C0, the computer C4, and the computer C5 are communicably connected to each other via the switch SW2. Therefore, each computer constituting the distributed system 3000 in FIG. 7 is connected to all other computers so that they can communicate with each other. Further, the computers C1 to C5 also function as the data storage device load information providing unit 3500.
  • processing process 10 (hereinafter, processing process 10-p1) whose ID is p1 is executed on the computer C1
  • the processing process 10-p3 is executed on the computer C3
  • the processing process 10- p4 and p5 are executed on the computer C4.
  • the processing process p1 is outputting processing data 20 with ID D2 (hereinafter, processing data 20-D2) to the disk DISK1.
  • processing data 20-D2 hereinafter, processing data 20-D2
  • the processing processes 10-p3, p4, and p5 are in the process of calculation, and input / output of the processing data 20 is not performed.
  • the processing process 10-p2 is newly assigned to the computer C1 by the management server.
  • the processing process 10-p2 performs a process involving the input of the processing data 20-D1. Therefore, the distributed system control device 2000 generates input / output destination information that associates the data storage device 3200 with the combination of “processing process 10-p2, input processing, processing data 20-D1”.
  • the specific operation will be described below.
  • the processing data 20-D1 input by the processing process 10-p2 is duplicated into four and stored in the disks DISK1 to DISK4, respectively.
  • the candidate information acquisition unit 2060 acquires candidate information from the candidate information provision unit 3420.
  • a candidate table 200-1 shown in FIG. 8 is a table showing only information related to the processing process 10-p2 among the candidate tables 200 included in the acquired candidate information.
  • a data storage device load table 100-1 in FIG. 9 is a table showing processing load information of the disks DISK1 to DISK5.
  • the data storage device load table 100-1 indicates that the data transfer amounts per second of the disks DISK1 to DISK5 are 120 MB, 5 MB, 30 MB, 20 MB, and 10 MB, respectively.
  • the input / output destination information generation unit 2020 refers to the data storage device load table 100-1 for each of the candidate disks DISK1 to DISK4, and sorts the records included in the set R in ascending order of processing load. Then, the input / output destination information generation unit 2020 generates an input / output destination table 300-1 including the sorted records (see FIG. 10).
  • the input / output destination notification unit 3440 included in the management server 3400 receives the input / output destination table 300-1. Then, according to the received input / output destination table 300-1, notification is made to the processing process 10-p2. Specifically, first, the management server 3400 refers to the record 1 of the input / output destination table 300-1. Then, the management server 3400 instructs the processing process 10-p2 to input the processing data 20-D1 from the DISK2. Receiving the instruction, the processing process 10-p2 inputs the processing data 20-D1 from the DISK2.
  • the processing process 10-p2 inputs the processing data 20-D1 from the disk DISK2 having the lowest processing load among the disks that can input the processing data 20-D1. Therefore, the time required for inputting the processing data 20-D1 by the processing process 10-p2 is shortened.
  • the management server 3400 refers to the record 2 in the next line. Then, the processing process 10-p2 is instructed to acquire the processing data 20-D1 from the disk DISK4 indicated by the record 2. By doing so, the processing process 10-p2 can shorten the time for inputting or outputting the processing data 20 as much as possible even when some of the data storage devices 3200 cannot be used due to failure or the like.
  • the distributed system control device 2000 uses the candidate information acquisition unit 2060 to display candidate information indicating candidates for the data storage device 3200 in which each processing process 10 inputs or outputs the processing data 20. To get. Further, the distributed system control device 2000 acquires data storage device load information indicating the processing load of each data storage device 3200 by the data storage device load information acquisition unit 2040. Then, the distributed system control device 2000 uses the input / output destination information generation unit 2020 to select a data storage device 3200 having a low processing load from among the data storage devices 3200 that are candidates based on the data storage device load information and the candidate information.
  • the input / output destination information that associates the processing process 10 with the data storage device 3200 to which the processing data 20 is input or output is generated.
  • the distributed system control device 2000 can distribute the input or output of the processing data 20 to the data storage device 3200 by the processing process 10 in the distributed system.
  • the processing load on each data storage device 3200 is reduced, and the time required for the processing process 10 to input or output the processing data 20 is shortened.
  • the distributed system control device 2000 can update the association between the processing process 10 and the data storage device 3200 by repeatedly performing the input / output destination information generation processing.
  • the distributed system control device 2000 can distribute the input or output of the processing data 20 to the data storage device 3200 by the processing process 10 in the distributed system.
  • FIG. 11 is a diagram illustrating the configuration of the distributed system control apparatus 2000 according to the second embodiment, together with the usage environment.
  • functional blocks having the same reference numerals as those in FIG. 1 have the same functions as those in FIG.
  • the configuration of the distributed system 3000 in FIG. 11 is the same as the configuration of the distributed system 3000 in FIG. 1, for example. Therefore, the configuration of the distributed system 3000 is omitted in FIG.
  • the distributed system control apparatus 2000 further includes a communication path load information acquisition unit 2080.
  • the communication path load information acquisition unit 2080 acquires communication path load information indicating the communication load of the communication path between the process execution device 3100 and the data storage device 3200.
  • the input / output destination information generation unit 2020 in the present embodiment is based on the candidate information, the data storage device load information, and the communication path load information, and the processing process 10 inputs or outputs the processing data 20.
  • Input / output destination information for associating the data storage device 3200 is generated. Specifically, first, the input / output destination information generation unit 2020 refers to the candidate information for the processing process 10 and acquires candidates for the data storage device 3200 to which the processing process 10 can input or output the processing data 20. Then, the input / output destination information generation unit 2020 refers to the data storage device load information and acquires a processing load for each of the candidate data storage devices 3200.
  • the input / output destination information generation unit 2020 refers to the communication path load information and acquires the communication load of the communication path between each candidate data storage device 3200 and the process execution device 3100 that executes the processing process 10. .
  • the input / output destination information generation unit 2020 stores data from among the candidate data storage devices 3200 with a low processing load and a low communication load on the communication path with the process execution device 3100 that executes the processing process 10.
  • the device 3200 is selected with priority. Then, input / output destination information that associates the processing process 10 with the selected data storage device 3200 is generated.
  • the distributed system control device 2000 considers the communication load on the communication path between the data storage device 3200 and the process execution device 3100 that executes the processing process 10 in addition to the processing load of the data storage device 3200. To do. Thereby, the processing process 10 inputs or outputs the processing data 20 to the data storage device 3200 having a low processing load and a low communication load on the communication path with the process execution device 3100 executing the processing process 10. It becomes like this. As a result, the time required for the processing process 10 to input or output the processing data 20 is further shortened.
  • the communication path load information includes, for example, a communication path load table 600 shown in FIG.
  • the communication path between the process execution device 3100 and the data storage device 3200 is a bus that directly connects the two or a network line that connects the two via a network.
  • the communication path load table 600 includes a process ID 610, a data storage device ID 620, and communication load information 630.
  • Each record of the communication path load table 600 communicates the load on the communication path between the process execution device 3100 that executes the processing process 10 specified by the process ID 610 and the data storage device 3200 specified by the data storage device ID 620. This is indicated by road load information 630.
  • road load information 630 For example, the record in the first line in FIG.
  • the information indicated by the communication load information 630 is various.
  • the communication load information 630 represents a data communication amount of a communication path between the process execution device 3100 and the data storage device 3200.
  • the communication load information 630 may indicate the processing load of the communication device interposed on the communication path.
  • the communication device interposed on the communication path is a device for configuring a network connecting the process execution device 3100 and the data storage device 3200, and is, for example, a switch or a router.
  • the communication device may be a server computer or a PC.
  • the processing load of the communication device is represented, for example, by the number of packets stored in a packet queue that stores packets to be processed by the communication device. Further, the processing load of the communication device may indicate the processing load of the components of the communication device such as a CPU.
  • the communication load information 630 may indicate the number of communication devices interposed on the communication path between the process execution device 3100 and the data storage device 3200.
  • the communication path load table 600 may separately indicate a communication path load when the processing process 10 inputs the processing data 20 and a communication path load when the processing process 10 outputs the processing data 20.
  • the communication path load table 600 further includes, for example, a column of processing type.
  • the input type is processing type information indicating whether the processing process 10 inputs the processing data 20 from the data storage device 3200 or outputs the processing data 20 to the data storage device 3200.
  • the communication load information 630 indicates the communication load information 630 for a combination of “process ID 610, data storage device ID 620, processing type”.
  • the communication path load table 600 may have a process execution device ID instead of the process ID 610.
  • the communication path load table 600 shows the communication load of the communication path between the process execution device 3100 specified by the process execution device ID and the data storage device specified by the data storage device ID 620 as communication load information 630. Show.
  • the distributed system control apparatus 2000 acquires information indicating the association between the processing process 10 and the process execution device 3100, for example. This information can be acquired from, for example, the management server that manages the distributed system 3000 described above.
  • the communication path load information acquisition unit 2080 acquires communication path load information automatically generated by a monitoring system that monitors the load status of each communication path. Further, for example, the communication path load information acquisition unit 2080 may acquire the communication path load information manually input by the administrator of the distributed system 3000.
  • the communication path load information acquisition unit 2080 acquires the communication path load information when the input / output destination information generation unit 2020 starts the generation process of the input / output destination information. Further, the communication path load information acquisition unit 2080 may repeatedly acquire the communication path load information at regular time intervals or irregular time intervals. Further, the communication path load information acquisition unit 2080 may acquire communication path load information indicating a new communication load of the communication path when the communication load of any communication path changes. In this case, the communication path load information acquisition unit 2080 may acquire only the communication path load information regarding the communication path whose processing load has changed, or may acquire the communication path load information regarding all the communication paths.
  • FIG. 14 is a flowchart illustrating an example of the flow of input / output destination information generation processing.
  • steps having the same reference numerals as those in FIG. 5 are steps for performing the same processing, and thus description thereof will be omitted as appropriate.
  • step S202 the input / output destination information generation unit 2020 acquires communication path load information from the communication path load information acquisition unit 2140.
  • Steps S204 to S210 are loop processing A performed for each record of the set R.
  • the set R is a set having records acquired from the candidate table.
  • the input / output destination information generation unit 2020 checks whether or not the loop processing A has been performed for all the records in the set R. If there is a record that has not been subjected to the loop processing A yet, the input / output destination information generation unit 2020 selects one unprocessed record from the set R, and the process proceeds to step S206. If the loop process A has been completed for all records, the process proceeds to step S212.
  • step S206 the input / output destination information generation unit 2020 searches the data storage device load table 100 for the data storage device 3200 indicated in the selected record, and acquires the processing load information of the data storage device 3200. Then, the input / output destination information generation unit 2020 determines whether the data storage device 3200 has a low load. If it is determined that the data storage device 3200 has a low load, the process proceeds to step S208, and the selected record is added to the set S. On the other hand, if the data storage device 3200 determines that the load is not low, the process proceeds to step S210. In this way, the input / output destination information generation unit 2020 adds only the record indicating the low-load data storage device 3200 to the set S.
  • step S210 is the end of the loop process A starting from step S204, the process returns to step S204.
  • step S212 the input / output destination information generation unit 2020 searches the communication path load table 600 for each record of the set S, and sets the communication path between the process execution device 3100 and the data storage device 3200 that execute the processing process 10. Get communication load.
  • the input / output destination information generation unit 2020 sorts the records included in the set S in ascending order of communication load.
  • step S214 the input / output destination information generation unit 2020 generates an input / output destination table having the records included in the set S in the sorted order, and sets the input / output destination information as input / output destination information.
  • the input / output destination table 300 may be configured by a part of the sorted records as in the first embodiment.
  • the communication load indicated by the communication path load table 600 may be indicated by different indexes such as record 1 and record 3 of the communication path load table 600 shown in FIG.
  • the records of the set S cannot be sorted using the value of the communication load information 630 as it is. Therefore, for example, the input / output destination information generation unit 2020 standardizes the value indicated by the communication load information 630 and sorts the records based on the standardized value.
  • the input / output destination information generation process in the present embodiment is not limited to the process shown in the flowchart.
  • the candidate data storage device 3200 is determined based on a binary value indicating whether the processing load is low.
  • the data storage device 3200 having a low communication path load with the process execution device 3100 is preferentially selected from the data storage devices 3200 determined to have a low load.
  • the communication load of the communication path with the process execution device 3100 is determined based on a binary value indicating whether the load is low.
  • the data storage device 3200 having a low processing load is preferentially selected from the data storage devices 3200 determined to have a low communication load.
  • both the processing load and the communication path load are determined based on whether or not the load is low, and both the processing load and the communication path load are low.
  • the distributed system control device 2000 displays input / output destination information that associates the data storage device 3200 with each combination of “processing process 10 and processing data 20”. It may be generated. Similarly, the distributed system control device 2000 may generate input / output destination information in which the data storage device 3200 is associated with each combination of “processing process 10, processing type”. Further, similarly, the distributed system control device 2000 may generate input / output destination information in which the data storage device 3200 is associated with each combination of “processing process 10, processing type, processing data 20”.
  • FIG. 15 is a diagram showing a functional configuration of the distributed system control apparatus 2000 and its usage environment in the operation example 2.
  • functional blocks having the same reference numerals as those in FIG. 6 or FIG. 11 have the same functions as the functional blocks in FIG. 6 or FIG.
  • the distributed system 3000 of the operation example 2 includes a communication path load information providing unit 3600.
  • the communication path load information providing unit 3600 monitors communication path load information between the process execution device 3100 and the data storage device 3200, generates communication path load information, and transmits it to the communication path load information acquisition unit 2080.
  • the hardware configuration and operation status of the distributed system control device 2000 and the distributed system 3000 in the operation example 2 are represented in FIG. Therefore, explanation is omitted.
  • the input / output destination information generation unit 2020 generates input / output destination information that associates the data storage device 3200 with the combination of “processing process 10-p2, input processing, processing data 20-D1”. To do.
  • processing process 10-p2 input processing, processing data 20-D1”.
  • the specific operation will be described below. Similarly to the operation example 1, it is assumed that the processing data 20-D1 is stored in each of the disks DISK1 to DISK4.
  • the table indicating only the information related to the processing process 10-p2 is represented by the candidate table 200-1 of FIG.
  • the data storage device load information acquired by the data storage device load information acquisition unit 2040 is represented by the data storage device load table 100-1 in FIG.
  • the communication path load information acquisition unit 2080 acquires the communication path load information from the communication path load information provision unit 3600.
  • a communication path load table 600-2 shown in FIG. 16 is a table showing the communication path load between the computer C1 executing the processing process 10-p2 and each disk in the acquired communication path load information.
  • the input / output destination information generation unit 2020 first acquires the candidate data storage device 3200 from the candidate table 200 and adds it to the set R.
  • the set R includes records 1 to 4 in the candidate table 200-1 as in the first operation example. Therefore, candidate data storage devices 3200 are disks DISK1 to DISK4. This is the same as the operation example 1.
  • the input / output destination information generation unit 2020 refers to the data storage device load information for each of the candidate disks DISK1 to DISK4, and determines whether or not each of the disks DISK1 to DISK4 has a low load.
  • the input / output destination information generation unit 2020 determines that a disk having a data transfer amount of less than 100 MB / s has a low load.
  • the disk DISK1 is determined to have a high load
  • the disks DISK2 to 4 are determined to have a low load.
  • the input / output destination information generation unit 2020 adds a record indicating the data storage device 3200 in which the processing load is determined to be low among the records included in the set R to the set S. In the case of this operation example, records 2 to 4 of the candidate table 200-1 are added to the set S.
  • the input / output destination information generation unit 2020 refers to the communication path load information and sorts the records of the set S in ascending order of the communication path load. Then, the input / output destination table 300-2 including the sorted records is generated (see FIG. 17).
  • the input / output destination notifying unit 3440 receives the input / output destination table 300-2. Then, the process process 10-p2 is notified in accordance with the received input / output destination table 300-2. In the case of this operation example, the management server 3400 instructs the processing process 10-p2 to input the processing data 20-D1 from the disk DISK4. Receiving the instruction, the processing process 10-p2 inputs the processing data 20-D1 from the disk DISK4.
  • the processing process 10-p2 inputs the processing data 20-D1 from the disk DISK4 having the lowest processing load and the lowest communication load among the disks that can input the processing data 20-D1. Therefore, the time required for inputting the processing data 20-D1 by the processing process 10-p2 is shortened.
  • the input / output destination information generation unit 2020 has a low processing load indicated by the data storage device load information among the candidate data storage devices 3200 indicated by the candidate information regarding the processing process 10.
  • the data storage device 3200 having a low communication load on the communication path with the process execution apparatus 3100 that executes the processing process 10 indicated by the communication path load information is preferentially selected and associated with the processing process 10.
  • the processing process 10 inputs the processing data 20 to the data storage device 3200 having a low processing load and a low communication load on the communication path with the process execution device 3100 that executes the processing process 10. Output.
  • the time taken to input or output the processing data 20 by the processing process 10 is further shortened.
  • FIG. 18 is a diagram illustrating the configuration of the distributed system control apparatus 2000 according to the third embodiment, together with the usage environment. 18, functional blocks having the same reference numerals as those in FIG. 1 have the same functions as those in FIG. Also, the configuration of the distributed system 3000 in FIG. 18 is the same as the configuration of the distributed system 3000 in FIG. 1, for example. Therefore, the configuration of the distributed system 3000 is omitted in FIG.
  • the distributed system 3000 includes a communication device 3300.
  • the communication device 3300 is a device interposed between the communication paths of the process execution device 3100 and the data storage device 3200.
  • the communication device 3300 is a network device such as a switch or a router.
  • the distributed system control apparatus 2000 includes a network configuration information acquisition unit 2100 and a process execution device allocation information acquisition unit 2110.
  • the network configuration information acquisition unit 2100 determines which process execution device 3100, data storage device 3200, and communication device 3300 the process execution device 3100, data storage device 3200, and communication device 3300 of the distributed system 3000 are connected to. Get the network configuration information shown.
  • the process execution device allocation information acquisition unit 2110 acquires process execution device allocation information, which is information indicating the association between the processing process 10 and the process execution device 3100 that executes the processing process 10.
  • the communication path load information in the present embodiment indicates a communication load on a communication path between computers included in the distributed system 3000.
  • the input / output destination information generation unit 2020 is based on the candidate information, the data storage device load information, the network configuration information, and the process execution device allocation information. Input / output destination information that associates the data storage device 3200 that performs input or output is generated. Specifically, the input / output destination information generation unit 2020 refers to the candidate information for the processing process 10 and acquires candidates for the data storage device 3200 to which the processing process 10 can input or output the processing data 20. Then, the input / output destination information generation unit 2020 preferentially selects the data storage device 3200 satisfying the following three conditions from the candidate data storage devices 3200 and associates the data storage device 3200 with the processing process 10 to input / output destination information. Is generated.
  • the first condition is that the number of communication devices interposed on the communication path between the data storage device 3200 and the process execution device 3100 that executes the processing process 10 is small.
  • the number of communication devices is calculated from network configuration information and process execution device allocation information.
  • the second condition is that the processing load of the data storage device 3200 indicated by the data storage device load information is low.
  • the third condition is that the communication load on the communication path between the process execution device 3100 and the data storage device 3200 indicated by the communication path load information is low.
  • the distributed system control apparatus 2000 according to the present embodiment is different from the distributed system control apparatus 2000 according to the second embodiment in that the number of communication apparatuses 3300 interposed on the communication path with the process execution apparatus 3100 that executes the processing process 10.
  • the data storage device 3200 with a small amount is preferentially selected.
  • the processing process 10 inputs or outputs the processing data 20 to the data storage device 3200 with a small number of communication devices interposed on the communication path with the data storage device 3200.
  • the process execution device 3100 executes data input / output with respect to the data storage device 3200, there is a high possibility that the number of communication devices 3300 to which a load is applied is reduced.
  • the process execution device allocation information includes, for example, a process execution device allocation table 700 shown in FIG.
  • the process execution apparatus allocation table 700 includes, for example, a process ID 710 indicating an identifier of the processing process 10 and a process execution apparatus ID 720 indicating an identifier of the process execution apparatus 3100.
  • Each record in the process execution device allocation table 700 indicates that the processing process 10 specified by the process ID 710 is being executed on the process execution device 3100 specified by the process execution device ID 720.
  • the network configuration information includes, for example, a network configuration table 800 shown in FIG.
  • the network configuration table 800 includes, for example, a first computer ID 810 and a second computer ID 820.
  • Each record of the network configuration table 800 represents that the computer specified by the ID of the first computer ID 810 and the computer specified by the second computer ID 820 are directly connected to each other without using the communication device 3300. .
  • the network configuration table 800 shown in FIG. 20 represents the configuration of the distributed system 3000 shown in FIG. Records 1 to 3 indicate that the switch SW1 is connected to the computer C1, the disk DISK1, and the switch SW2, respectively. Records 4 and 5 indicate that the switch SW2 is connected to the disk DISK2 and the disk DISK3, respectively.
  • the network configuration information acquisition unit 2100 acquires network configuration information.
  • the communication path load information generation unit 2160 receives an input of a file having network configuration information from the administrator of the distributed system 3000 in advance, and acquires the network configuration information by referring to the file or the like.
  • the network configuration information acquisition unit 2100 acquires information about which other computer the computer is connected to from each computer included in the distributed system 3000, and obtains network configuration information based on the acquired information. It may be configured.
  • the network configuration information acquisition unit 2100 acquires information indicating which computer the switch SW1 is connected to from the switch SW1, whereby the network configuration table 800 illustrated in FIG. Records 1 to 3 can be acquired.
  • the network configuration information acquisition unit 2100 can acquire the records 4 and 5 of the network configuration table 800 shown in FIG. 20 by acquiring information indicating which computer the switch SW2 is connected to from the switch SW2. Then, the network configuration information acquisition unit 2100 can configure the network configuration table 800 shown in FIG. 20 by combining the information acquired from the switch SW1 and the information acquired from the switch SW2.
  • the communication path load information in the present embodiment includes, for example, a communication path load table 1000 illustrated in FIG.
  • the communication path load table 1000 includes, for example, a first computer ID 1010, a second computer ID 1020, and communication load information 1030.
  • the communication path load table indicates the communication load of the communication path between the computer specified by the first computer ID 1010 and the computer specified by the second computer ID 1020 as communication load information 1030.
  • Information indicated by the communication load information 1030 is various.
  • the communication load information 1030 indicates the same information as the communication path load information 630 indicated by the communication path load table 600 in the second embodiment, for example.
  • the communication path load table 1000 may indicate the processing load on the communication path between the first computer ID 1010 and the second computer ID 1020 separately for each communication direction.
  • the communication path load table 1000 includes a processing load when the processing data 20 is transmitted from the first computer ID 1010 to the second computer ID 1020 and a processing when the processing data 20 is transmitted from the second computer ID 1020 to the first computer ID 1010.
  • the load may be shown separately.
  • the communication path load table 1000 further includes, for example, a column of communication direction.
  • the communication path load information 1030 indicates the communication path load information 1030 for a combination of “first computer ID 1010, second computer ID 1020, communication direction”. There is also a method in which the first computer ID 1010 represents a transmitting computer, and the second computer ID 1020 represents a receiving computer.
  • the input / output destination information generation unit 2020 is a data storage device 3200 that satisfies the following three conditions for the processing process 10.
  • I / O destination information that associates with priority is generated.
  • the first condition is that 1) the number of communication devices intervening on the communication path between the data storage device 3200 and the process execution device 3100 that executes the processing process 10 is small.
  • the second condition is that 2) the communication load on the communication path between the data storage device 3200 and the process execution device 3100 that executes the processing process 10 is low.
  • the third condition is that 3) the processing load of the data storage device 3200 is low.
  • the input / output destination information generation unit 2020 creates a load determination table 900 shown in FIG. 22 based on the network configuration information, data storage device load information, and communication path load information.
  • a method for creating the load determination table 900 will be described later.
  • the load determination table 900 includes a communication device ID 910 and a data storage device ID list 920. Each record in the load determination table 900 associates the communication device 3300 specified by the communication device ID 910 with the data storage device 3200 that satisfies the following three conditions.
  • the first condition is that the data storage device 3200 is communicably connected to the communication device 3300.
  • the second condition is that the processing load of the data storage device 3200 indicated by the data storage device load information is low.
  • the third condition is that the communication load on the communication path between the data storage device 3200 and the communication apparatus 3300 indicated by the communication path load information is low.
  • FIG. 23 and 24 are flowcharts illustrating an example of the flow of processing (hereinafter referred to as load determination table creation processing) in which the input / output destination information generation unit 2020 creates a load determination table.
  • load determination table creation processing the input / output destination information generation unit 2020 performs each step illustrated in FIG. 23 and then performs each step illustrated in FIG. 24 to create a load determination table.
  • step S301 the input / output destination information generation unit 2020 acquires the data storage device load information from the data storage device load information acquisition unit 2040.
  • step S ⁇ b> 302 the input / output destination information generation unit 2020 acquires communication path load information from the communication path load information acquisition unit 2080.
  • step S ⁇ b> 303 the input / output destination information generation unit 2020 acquires network configuration information from the network configuration information acquisition unit 2100.
  • step S304 the input / output destination information generation unit 2020 refers to the network configuration information and adds the IDs of all the data storage devices 3200 included in the distributed system 3000 to the set R.
  • Step S306 to Step S322 are loop processing A performed by the input / output destination information generation unit 2020 for each ID of each data storage device 3200 included in the set R.
  • the input / output destination information generation unit 2020 checks whether the loop processing A has been performed for the IDs of all the data storage devices 3200 included in the set R. When there is an ID that is not yet the target of the loop process A, the input / output destination information generation unit 2020 selects one of the IDs that are not yet the target. Here, the selected ID is i. Further, the data storage device 3200 with ID i is referred to as a data storage device 3200-i. If the loop processing A has been completed for all the IDs of the data storage devices 3200 included in the set R, the process proceeds to step S324 in FIG.
  • step S308 the input / output destination information generation unit 2020 refers to the data storage device load information for the data storage device 3200-i, and determines whether the processing load of the data storage device 3200-i is low. If the processing load is low, the process proceeds to step S310. On the other hand, if the processing load is not low, the process proceeds to step S321.
  • step S310 the input / output destination information generation unit 2020 selects the communication device 3300 directly connected to the data storage device 3200-i from the communication device 3300 indicated by the network configuration information without passing through the other communication device 3300. Select all and add to set S.
  • Steps S312 to S320 are loop processing B performed for the IDs of the communication devices 3300 included in the set S.
  • step S312 it is checked whether the loop process B has been performed on the IDs of all the communication devices 3300 included in the set S. If there is an ID that is not yet the target of loop processing B, the input / output destination information generation unit 2020 selects one of the IDs that are not yet the target of loop processing B, and proceeds to step S314.
  • the selected ID is j.
  • the communication device 3300 whose ID is j is represented as a communication device 3300-j. If the loop process B has been completed for all the IDs of the communication devices 3300 included in the set S, the process proceeds to step S321.
  • step S314 the input / output destination information generation unit 2020 refers to the communication path load information and determines whether or not the communication load on the communication path between the data storage device 3200-i and the communication apparatus 3300-j is low. . If the communication load is low, the process proceeds to step S316. On the other hand, when the communication load is not low, the process proceeds to step S320.
  • step S318, j that is the ID of the communication device 3300-j is added to the set T.
  • Step S320 is the end of the loop process B. Therefore, the process returns to step S312.
  • step S321 the input / output destination information generation unit 2020 empties the set S.
  • Step S322 is the end of loop processing A. Therefore, the process returns to step S306.
  • step S324 is the processing shown in the flowchart of FIG.
  • Steps S324 to S344 are loop processing C that is repeatedly performed while the set T has elements (IDs of the communication devices 3300).
  • the input / output destination information generation unit 2020 checks whether the set T has the ID of the communication device 3300. When the set T has the ID of the communication device 3300, the process proceeds to step S326. When the set T does not have the ID of the communication device 3300, the load determination table creation process ends.
  • step S326 the input / output destination information generation unit 2020 generates a set U including elements included in the set T, and makes the set T empty.
  • Steps S328 to S342 are loop processing D performed for each ID of the communication device 3300 included in the set U.
  • step S328 it is checked whether the loop processing D has been performed on the IDs of all the communication devices 3300 included in the set U. If there is an ID that is not yet the target of loop processing D, the input / output destination information generation unit 2020 selects one of the IDs that are not yet the target of loop processing D, and proceeds to step S329. Here, the selected ID is k. If the loop process D has been completed for all the IDs of the communication devices 3300 included in the set U, the process proceeds to step S344.
  • step S329 the input / output destination information generation unit 2020 adds the communication device 3300-k to the set X.
  • the set X is a set of communication apparatuses 3300 that have been selected as targets for the loop processing D.
  • step S330 the input / output destination information generation unit 2020 is connected directly to the communication device 3300-k without passing through the communication device 3300, and the IDs of all communication devices not included in the set X are set to the set V. Add to.
  • Steps S332 to S340 are loop processing E performed for each communication device 3300 having an ID included in the set V.
  • the input / output destination information generation unit 2020 checks whether the loop processing E has been performed for the IDs of all the communication apparatuses 3300 included in the set V. When there is an ID that is not yet the target of the loop process E, the input / output destination information generation unit 2020 selects one of the IDs that are not yet the target of the loop process E, and the process proceeds to step S334.
  • the selected ID is n.
  • step S334 the input / output destination information generation unit 2020 refers to the communication path load information and determines whether or not the communication load on the communication path between the communication apparatus 3300-k and the communication apparatus 3300-n is low. To do. If the communication load is low, the process proceeds to step S336. On the other hand, if the communication load is not low, the process proceeds to step S340.
  • step S3308 n that is the ID of the communication device 3300-n is added to the set T.
  • Step S340 is the end of the loop processing E. Therefore, the process returns to step S332.
  • Step S342 is the end of the loop process D. Therefore, the process returns to step S328.
  • Step S344 is the end of the loop process C. Therefore, the process returns to step S324.
  • the input / output destination information generation unit 2020 creates the load determination table 900.
  • the load determination table creation recording process is not limited to the above.
  • the input / output destination information generation unit 2020 generates the input / output destination information by performing the processing in each step illustrated in FIG. 26 after performing the processing in each step illustrated in FIG. 25.
  • the input / output destination information generation unit 2020 has already acquired the data storage device load information, the communication path load information, and the network configuration information in order to create the load determination table 900 before the input / output destination information generation processing.
  • step S350 the input / output destination information generation unit 2020 acquires candidate information from the candidate information acquisition unit 2060.
  • step S352 the input / output destination information generation unit 2020 acquires candidates for the data storage device 3200 associated with the target processing process 10 from the candidate table included in the candidate information, and adds the candidates to the set R.
  • the input / output destination information generation unit 2020 refers to the process execution device allocation information and acquires the ID of the process execution device 3100 that is executing the target processing process 10.
  • the ID of the process execution device 3100 is i
  • the process execution device 3100 is represented as a process execution device 3100-i.
  • the input / output destination information generation unit 2020 acquires network configuration information, acquires all the IDs of the data storage device 3200 directly connected to the process execution device 3100-i without passing through the communication device 3300, Add to S.
  • Steps S356 to S362 are loop processing A performed for each data storage device 3200 having an ID included in the set S.
  • the input / output destination information generation unit 2020 checks whether the loop processing A has been performed for all IDs included in the set S. If there is an ID that has not yet been subject to loop processing A, the input / output destination information generation unit 2020 selects one of the IDs that are not yet subject to loop processing A, and proceeds to step S358. Here, the selected ID is j.
  • the process proceeds to step S364.
  • step S358 the input / output destination information generation unit 2020 has a low processing load indicated by the data storage device load information and a process execution device 3100-i indicated by the communication path load information for the data storage device 3200-j. It is determined whether the communication load of the communication path between and is low. If the processing load and communication load are low, the process proceeds to step S360. If either the processing load or the communication load is not low, the process proceeds to step S362.
  • step S360 the input / output destination information generation unit 2020 adds j, which is the ID of the data storage device 3200-j, to the set T.
  • the set T is a set for storing the ID of the data storage device 3200 included in the input / output destination information.
  • Step S362 is the end of the loop process A. Therefore, the process returns to step S356.
  • step S364 the input / output destination information generation unit 2020 refers to the network configuration information and the communication path load information, is directly connected to the process execution device 3100-i without passing through the communication device 3300, and the process execution device 3100. All IDs of the communication devices 3300 having a low communication load on the communication path to -i are added to the set U.
  • Step S366 and subsequent steps are the processing shown in FIG.
  • Steps S366 to S382 are loop processing B that is repeatedly performed while the set U has an element (ID of the communication device 3300).
  • the input / output destination information generation unit 2020 checks whether the set U has the ID of the communication device 3300. When the set U has the ID of the communication device 3300, the process proceeds to step S368. When the set U does not have the ID of the communication device 3300, the process proceeds to step S384.
  • step S368 the input / output destination information generation unit 2020 generates a set V including the same elements as the set U, and makes the set U empty.
  • Steps S370 to S380 are loop processing C performed for each communication device 3300 having an ID included in the set V.
  • the input / output destination information generation unit 2020 checks whether the loop processing C has been performed for all IDs included in the set V. If there is an ID that is not yet the target of the loop process C, the input / output destination information generation unit 2020 selects one of the IDs that are not yet the target of the loop process C, and the process proceeds to step S371. Here, the selected ID is k. If the loop process C has been completed for all IDs included in the set V, the process proceeds to step S382.
  • step S371 the input / output destination information generation unit 2020 adds k, which is the ID of the communication device 3300-k, to the set X.
  • the set X is a set having all the IDs of the communication devices 3300 that have been selected as processing targets of the loop processing C.
  • step S374 the input / output destination information generation unit 2020 determines whether the list indicated by the data storage device ID list 920 of the acquired record is empty. If the list is not empty, the process proceeds to step S376. If the list is empty, the process proceeds to step S378.
  • step S376 the input / output destination information generation unit 2020 adds all the IDs of the data storage devices 3200 included in the list acquired above to the set T.
  • the input / output destination information generation unit 2020 refers to the network configuration information and the communication path load information, selects all the communication devices 3300 that satisfy the following three conditions, and adds the ID to the set U.
  • the first condition is that the communication device 3300 to be selected is not included in the set X.
  • the second condition is that the communication device 3300 to be selected is directly connected to the communication device 3300-k without passing through another communication device 3300.
  • the third condition is that the communication load on the communication path with the communication device 3300-k is low.
  • Step S380 is the end of the loop process C. Therefore, the process returns to step S370.
  • Step S382 is the end of the loop process B. Therefore, the process returns to step S366.
  • step S384 the input / output destination information generation unit 2020 generates an input / output destination table 300 that associates the target processing process 10 with the data storage device 3200 of the set T, and generates input / output destination information.
  • the input / output destination information generation unit 2020 includes the number of communication devices 3300 interposed on the communication path between the process execution device 3100 that executes the processing process 10 and the data storage device 3200 that is associated with the target processing process 10.
  • an upper limit value may be provided.
  • the input / output destination information generation unit 2020 sets, for example, the upper limit of the number of times of performing the loop process C performed in steps S370 to S380 as the upper limit value of the number of communication paths. In this way, the input / output destination information generation unit 2020 preferentially selects the data storage device 3200 with a small number of communication devices interposed between it and the process execution device 3100 executing the target processing process 10. However, the time required for the input / output destination information generation process can be shortened.
  • the above is a flow of processing in which the input / output destination information generation unit 2020 uses the load determination table 900 to generate input / output destination information.
  • the flowcharts shown in FIGS. 25 and 26 are an example of the input / output destination information generation process.
  • the input / output destination information generation process using the load determination table 900 is not limited to the above process.
  • the input / output destination information generation processing in the present embodiment is not limited to a method using the load determination table 900.
  • the input / output destination information generation unit 2020 selects candidate data storage devices 3200 in order from the smallest number of communication devices intervening with the process execution device 3100 that executes the processing process 10, and the processing load is increased. It is determined whether or not the communication load on the communication path with the process execution apparatus 3100 is low. Then, the data storage device 3200 having a low processing load and a low communication load with the process execution device 3100 is associated with the processing process 10 to generate input / output destination information.
  • the input / output destination information generation unit 2020 selects the data storage device 3200 that is the object of the determination, communication that is interposed between the data storage device 3200 and the process execution device 3100 that executes the processing process 10 is performed.
  • An upper limit may be set for the number of devices.
  • the input / output destination information generation unit 2020 associates only the data storage device 3200 with the number of communication devices interposed between the process execution device 3100 and the upper limit value with the processing process 10. By doing so, the number of data storage devices 3200 to be determined can be reduced, so that the time required for the input / output destination information generation process is shortened.
  • the distributed system control device 2000 displays input / output destination information that associates the data storage device 3200 with each combination of “processing process 10 and processing data 20”. It may be generated. Similarly, the distributed system control device 2000 may generate input / output destination information in which the data storage device 3200 is associated with each combination of “processing process 10, processing type”. Further, similarly, the distributed system control device 2000 may generate input / output destination information in which the data storage device 3200 is associated with each combination of “processing process 10, processing type, processing data 20”.
  • FIG. 27 is a diagram showing a functional configuration of the distributed system control apparatus 2000 and its usage environment in the operation example 2.
  • functional blocks having the same reference numerals as those in FIG. 15 or FIG. 18 have the same functions as the functional blocks in FIG. 15 or FIG.
  • the management server 3400 of the operation example 3 includes a network configuration information providing unit 3450 and a process execution device allocation information providing unit 3460.
  • the network configuration information providing unit 3450 provides the network configuration information acquisition unit 2100 with network configuration information indicating the connection relationship between the computers constituting the distributed system 3000.
  • the process execution device allocation information providing unit 3460 provides the process execution device allocation information acquisition unit 2110 with process execution device allocation information indicating the association between the processing process 10 and each computer that implements the process execution device 3100.
  • FIG. 28 is a diagram illustrating a hardware configuration and an operation state of the distributed system control device 2000 and the distributed system 3000 in the operation example 3.
  • the computers C1 to C8 function as the process execution device 3100.
  • the disks DISK1 to DISK8 function as the data storage device 3200.
  • the disks DISK1 to DISK8 are provided inside the computers C1 to C8, respectively.
  • the switches SW1 to SW7 function as the communication device 3300.
  • the connection relationship of each computer is as shown in FIG.
  • the processing process 10-p1 is executed on the computer C1.
  • the processing process p1 is outputting processing data 20-D2 to the disk DISK1.
  • the processing process 10-p2 is newly assigned to the computer C1 by the management server.
  • the processing process 10-p2 performs a process involving the input of the processing data 20-D1. Therefore, the distributed system control device 2000 generates input / output destination information that associates the data storage device 3200 with the combination of “processing process 10-p2, input processing, processing data 20-D1”.
  • the specific operation will be described below.
  • the processing data 20-D1 input by the processing process 10-p2 is duplicated into seven and stored in all the disks other than the disk DISK4.
  • the data storage device load information acquisition unit 2040 acquires the data storage device load information from the data storage device load information provision unit 3500.
  • a data storage device load table 100-3 in FIG. 29 is a table showing processing load information of the disks DISK1 to DISK8.
  • the processing load indicated by the processing load information 120 is represented by a binary value indicating whether the load is low or high.
  • the communication path load information acquisition unit 2080 acquires the communication path load information from the communication path load information provision unit 3600.
  • the communication path load table 1000-3 in FIG. 30 shows the communication load of the communication path between the computers.
  • the communication load indicated by the communication load information 1030 is represented by a binary value indicating whether the load is low or high.
  • the process execution device allocation information acquisition unit 2110 acquires process execution device allocation information from the process execution device allocation information provision unit 3460.
  • a process execution device allocation table 700-3 shown in FIG. 31 is a table showing only information related to the processing process 10-p2 among the process execution device allocation information acquired by the process execution device allocation information acquisition unit 2110.
  • FIG. 32 shows a network configuration table 800-3 included in the network configuration information acquired by the network configuration information acquisition unit 2100.
  • the input / output destination information generation unit 2020 performs load determination table creation processing based on these pieces of information. Then, a load determination table 900-3 shown in FIG. 33 is generated.
  • a load determination table 900-3 shown in FIG. 33 is generated.
  • the process of creating the load determination table 900-3 will be described.
  • the input / output destination information generation unit 2020 refers to the data storage device load table 100-3 for the disk DISK2. As a result, it is determined that the disk DISK2 has a low load. Then, the input / output destination information generation unit 2020 refers to the network configuration table 800-3 and determines that the switch directly connected to the disk DISK2 is the switch SW1. Then, the input / output destination information generation unit 2020 refers to the communication path load table 1000-3 and determines that the communication load on the communication path between the disk DISK2 and the switch SW1 is low.
  • the input / output destination information generation unit 2020 refers to the data storage device load table 100-3 for the disk DISK5. As a result, it is determined that the disk DISK5 has a low load.
  • the input / output destination information generation unit 2020 refers to the network configuration table 800-3 and determines that the switch directly connected to the disk DISK5 is the switch SW3. Then, the input / output destination information generation unit 2020 refers to the communication path load table 1000-3 and determines that the communication load on the communication path between the disk DISK5 and the switch SW3 is low.
  • the input / output destination information generation unit 2020 has, for each disk, the disk processing load, the communication load of the communication path between the switch and the disk directly connected to the disk, and the switch and the switch directly connected thereto.
  • the communication load on the communication path with the higher-order switch is determined, and a load determination table 900-3 is created.
  • the candidate information acquisition unit 2060 acquires candidate information from the candidate information providing unit 3420.
  • a candidate table 200-3 shown in FIG. 34 is a table showing only information related to the processing process 10-p2 among the candidate tables 200 included in the acquired candidate information.
  • the process execution device allocation information acquisition unit 2110 acquires process execution device allocation information from the process execution device allocation information provision unit 3640. As described above, the process execution device allocation information includes information that the allocation destination of the processing process 10-p2 is the computer C1.
  • the input / output destination information generation unit 2020 first acquires candidate information from the candidate information acquisition unit 2060. Then, the input / output destination information generation unit 2020 refers to the process execution device allocation table 700-3 to determine that the process execution device 3100 executing the processing process 10-p2 is the computer C1.
  • the input / output destination information generation unit 2020 refers to the network configuration table 800-3 to determine that the disk DISK1 is directly connected to the computer C1. Then, the input / output destination information generation unit 2020 refers to the data storage device load table 100-3 to obtain the processing load information of the disk DISK1. As a result, it is determined that the disk DISK1 has a high load. Therefore, the disk DISK1 is not included in the input / output destination information.
  • the input / output destination information generation unit 2020 refers to the network configuration information, and determines that the communication device 3300 directly connected to the computer C1 is the switch SW1. Then, the input / output destination information generation unit 2020 refers to the communication path load table 1000-3 for the combination of the switch SW1 and the computer C1. Here, the communication load on the communication path between the switch SW1 and the computer C1 indicated by the communication path load table 1000-3 is low. Therefore, the input / output destination information generation unit 2020 refers to the load determination table 900-3 for the switch SW1. As a result, a list of IDs of the data storage devices 3200 included in the data storage device ID list 920 is acquired.
  • the input / output destination information generation unit 2020 refers to the network configuration table 800-3, and determines that the upper switch directly connected to the switch SW1 is the switch SW5.
  • the communication path load table 1000-3 is referred to for the combination of the switch W5 and the switch SW1.
  • the input / output destination information generation unit 2020 refers to the load determination table 900-3 as in the case of the switch SW1, and acquires the ID of the data storage device 3200 included in the data storage device ID list 920. In this case, “disk DISK2, disk DISK3, disk DISK4” is acquired.
  • the input / output destination information generation unit 2020 refers to the candidate table 200-3. Then, it is determined that the disk DISK2 and the disk DISK3 are included in the candidates, but the disk DISK4 is not included in the candidates. Further, the disk DISK2 is already included in the input / output destination information. Therefore, the input / output destination information generation unit 2020 adds the disk DISK3 to the input / output destination information. Next, the input / output destination information generation unit 2020 performs the same processing for the switch SW7, which is a higher-order switch.
  • the input / output destination information generation unit 2020 climbs the network configuration of the distributed system 3000 to the upper level and associates it with the processing process 10 starting from the process execution device 3100 executing the target processing process 10.
  • the data storage device 3200 is searched.
  • the input / output destination information generation unit 2020 gives priority to the communication device 3300 with a small number of communication devices 3300 interposed between the process execution device 3100 as the data storage device 3200 associated with the processing process 10. Select.
  • the input / output destination information generation unit 2020 generates an input / output destination table 300-3 shown in FIG.
  • the input / output destination information generation unit 2020 may set an upper limit on the number of communication devices 3300 interposed between the process execution device 3100 and the data storage device 3200. In this case, the input / output destination information generation unit 2020 ends the process of sequentially referring to the load determination table 900-3 described above. For example, in the case of this operation example, the upper limit of the number of times of searching for a higher-order switch starting from the process execution device 3100 is set to two. In this case, the input / output destination information generation unit 2020 refers to the load determination table 900-3 for the switch SW1 and the switch SW5 above it, and generates input / output destination information.
  • the switch SW7 above the switch SW5 is not searched because it exceeds the upper limit of the number of times of searching for the upper switch. Therefore, even if the disks DISK5 to DISK8 connected to the process execution device 3100 via the switch SW7 have low processing loads and low communication loads with the process execution device 3100, they are input. Not included in output destination information. In this way, by setting an upper limit on the number of searches for the communication device 3300 positioned above the process execution device 3100, the time required for the input / output destination information generation processing can be shortened. This is effective, for example, when it is desired to estimate in advance the time required for the input / output destination information generation processing, or when the overall performance of the distributed system 3000 is hindered if the input / output destination information generation processing takes too long.
  • the distributed system control device 2000 further includes the network configuration information acquisition unit 2100 and the process execution device allocation information acquisition unit 2110.
  • the network configuration information acquisition unit 2100 acquires network configuration information.
  • the process execution device allocation information acquisition unit 2110 acquires process execution device allocation information.
  • the input / output destination information generation unit 2020 selects a data storage device 3200 that satisfies the following three conditions based on the network configuration information, process execution device allocation information, candidate information, data storage device load information, and communication path load information. It is selected with priority and is set as the input source or output destination of the processing data 20 by the processing process 10.
  • the first condition is that the number of communication devices interposed on the communication path between the data storage device 3200 and the process execution device 3100 that executes the processing process 10 is small.
  • the number of communication devices is acquired from the network configuration information and process execution device allocation information.
  • the second condition is that the processing load of the data storage device 3200 indicated by the data storage device load information is low.
  • the third condition is that the communication load on the communication path between the process execution device 3100 and the data storage device 3200 indicated by the communication path load information is low.
  • FIG. 36 is a diagram showing a functional configuration of the distributed system control apparatus 2000 according to the present embodiment, together with its use environment.
  • functional blocks having functional blocks with the same reference numerals in FIG. 1 have the same functions as the functional blocks in FIG.
  • the configuration of the distributed system 3000 in FIG. 28 is the same as the configuration of the distributed system 3000 in FIG. 1, for example. Therefore, in FIG. 36, the configuration of the distributed system 3000 is omitted.
  • the distributed system control device 2000 includes a data storage device allocation information acquisition unit 2120.
  • the data storage device allocation information acquisition unit 2120 acquires data storage device allocation information indicating the number of processing processes 10 associated with each data storage device 3200.
  • the input / output destination information generation unit 2020 includes a processing process 10 and a data storage device in which the processing process 10 inputs or outputs the processing data 20 Input / output destination information that associates 3200 is generated. Specifically, the input / output destination information generation unit 2020 first refers to the candidate information, and acquires candidates for the data storage device 3200 where the processing process 10 can input or output the processing data 20. Then, the data storage device 3200 having a low processing load indicated by the data storage device load information is selected from the candidate data storage devices 3200.
  • the input / output destination information generation unit 2020 refers to the data storage device allocation information and processes 10 associated with each data storage device 3200.
  • the data storage device 3200 to be associated with the processing process 10 is determined so as to equalize the number of.
  • the distributed system control device 2000 associates the processing processes 10 with the data storage devices 3200 so as to equalize the number of processing processes 10 associated with the respective data storage devices 3200. Thereby, the probability that input requests or output requests for the processing data 20 are concentrated on a specific data storage device 3200 is reduced.
  • the data storage device allocation information includes, for example, a data storage device allocation table 400 shown in FIG.
  • the data storage device allocation table 400 includes a data storage device ID 410 and a process number 420 indicating the number of processing processes 10 associated with the data storage device 3200.
  • the distributed system control device 2000 includes a data storage device allocation information storage unit that stores data storage device allocation information.
  • the data storage device allocation information acquisition unit 2120 acquires the data storage device allocation information from the data storage device allocation information storage unit.
  • the management server described above may store data storage device allocation information.
  • the data storage device allocation information acquisition unit 2120 acquires the data storage device allocation information from the management server.
  • FIG. 38 is a flowchart illustrating an example of a flow of input / output destination information generation processing performed by the input / output destination information generation unit 2020 according to the fourth embodiment.
  • steps with the same reference numerals as in FIG. 5 perform the same processing as in FIG. Therefore, the description of the steps having the same reference numerals as those in FIG.
  • Steps S502 to S508 are loop processing A performed by the input / output destination information generation unit 2020 for each record of the set R that is a set of records acquired from the candidate table.
  • the input / output destination information generation unit 2020 checks whether the loop processing A has been performed for all the records included in the set R. When the loop process A is completed for all the records included in the set R, the process proceeds to step S510. If there is a record that has not yet been processed, one record that has not yet been processed is selected, and the process proceeds to step S504.
  • step S504 the input / output destination information generation unit 2020 refers to the data storage device load information for the data storage device 3200 indicated by the record selected in step S502, and determines whether or not the data storage device 3200 has a low load. judge. If the data storage device 3200 has a low load, the process advances to step S506 to add the selected record to the set S. On the other hand, if the data storage device 3200 is not lightly loaded, the process proceeds to step S508.
  • step S508 is the end of the loop process A, the process returns to step S502.
  • step S510 it is determined whether or not the set S includes a plurality of records. If the set S includes a plurality of records, the process proceeds to step S512. On the other hand, if the set S does not include a plurality of records, the process proceeds to step S516.
  • step S512 the input / output destination information generation unit 2020 refers to the data storage device allocation information for the data storage device 3200 indicated by each record included in the set S, and the number of processes associated with each data storage device 3200. To get.
  • step S514 the input / output destination information generation unit 2020 sorts the records included in the set S in ascending order of the number of processes associated with the data storage device 3200.
  • step S5166 the input / output destination information generation unit 2020 generates an input / output destination table 300 including the records of the set S as input / output destination information.
  • the input / output destination information generation unit 2020 preferentially selects the data storage device 3200 with a small number of associated processing processes 10 as the data storage device 3200 associated with the processing process 10. Therefore, the number of processing processes 10 associated with the data storage device 3200 is leveled.
  • the input / output destination information generated by the input / output destination information generation unit 2020 of the present embodiment also includes the records included in the set S It may be generated from a part of the records.
  • the method of leveling the number of processes allocated to the data storage device 3200 is not limited to the above method.
  • the number of processing processes 10 assigned to the data storage device 3200 may be leveled using an algorithm such as the Min-Max method or the round robin method.
  • the input / output destination information generation unit 2020 desirably operates as follows, for example. First, the input / output destination information generation unit 2020 stores the acquired data storage device allocation information in a temporary storage area of the distributed system control device 2000.
  • the input / output destination information generation unit 2020 updates the data storage device allocation information stored in the temporary storage area while generating input / output destination information for each of the plurality of processing processes 10. After generating the input / output destination information for each of the plurality of processing processes 10, the data storage device allocation information stored in the temporary storage area is transmitted to the management server and stored in the management server. Update data storage device allocation information.
  • the distributed system control apparatus 2000 may generate the input / output destination information by further considering the communication path load information.
  • the input / output destination information generation unit 2020 has a low processing load indicated by the data storage device load information from among the candidates of the data storage device 3200 associated with the processing process 10 acquired from the candidate information, and the communication path load.
  • the data storage device 3200 having a low communication load on the communication path with the process execution device 3100 indicated by the information is preferentially selected.
  • the input / output destination information generation unit 2020 refers to the data storage device allocation information so as to equalize the number of processes associated with the data storage device 3200.
  • the processing process 10 and the data storage device 3200 are associated with each other.
  • the distributed system control apparatus 2000 may generate the input / output destination information by further considering the network configuration information and the process execution apparatus allocation information as shown in the third embodiment.
  • the input / output destination information generation unit 2020 is on the communication path with the process execution device 3100 that executes the processing process 10 from among the candidates of the data storage device 3200 that are associated with the processing process 10 acquired from the candidate information.
  • a data storage device 3200 with a small number of intervening communication devices and a low processing load is preferentially selected.
  • the input / output destination information generation unit 2020 refers to the data storage device allocation information so as to level the number of processes associated with the data storage device 3200.
  • the processing process 10 and the data storage device 3200 are associated with each other.
  • the distributed system control apparatus 2000 generates input / output destination information by further considering the communication path load information, the network configuration information, and the process execution apparatus allocation information, as described in the third embodiment. May be.
  • the input / output destination information generation unit 2020 is on the communication path with the process execution device 3100 that executes the processing process 10 from among the candidates of the data storage device 3200 that are associated with the processing process 10 acquired from the candidate information.
  • the data storage device 3200 having a small number of intervening communication devices, a low processing load, and a low communication load on the communication path with the process execution device 3100 is preferentially selected.
  • the input / output destination information generation unit 2020 refers to the data storage device allocation information so as to level the number of processes associated with the data storage device 3200.
  • the processing process 10 and the data storage device 3200 are associated with each other.
  • FIG. 39 is a diagram showing a functional configuration of the distributed system control apparatus 2000 and its usage environment in the operation example 4.
  • functional blocks having the same reference numerals as those in FIG. 27 or FIG. 36 have the same functions as the functional blocks in FIG. 24 or FIG.
  • the distributed system 3000 of the operation example 4 includes a data storage device allocation information providing unit 3470.
  • the data storage device allocation information providing unit 3470 provides the data storage device allocation information acquisition unit 2120 with data storage device allocation information indicating the number of processing processes 10 associated with each data storage device 3200.
  • the hardware configuration and operation status of the distributed system control device 2000 and the distributed system 3000 in the operation example 4 are shown in FIG.
  • the hardware configuration of the distributed system 3000 is the same as that of the operation example 1.
  • the processing process 10-p3 inputs the processing data 20-D1 from the disk DISK3
  • the processing process 10-p4 outputs the processing data 20-D4 to the disk DISK4.
  • processing data 20-D1 is input from the disk DISK4.
  • the input / output destination information generation unit 2020 generates input / output destination information that associates the data storage device 3200 with the combination of “processing process 10-p2, input processing, processing data 20-D1”. To do.
  • processing process 10-p2 input processing, processing data 20-D1”.
  • the specific operation will be described below. Similarly to the operation example 1, it is assumed that the processing data 20-D1 is stored in each of the disks DISK1 to DISK4.
  • the table indicating only the information related to the processing process 10-p2 is represented by the candidate table 200-1 of FIG.
  • a table indicating the load on the communication path between the computer C1 and each disk is represented by a communication path load table 600-2 shown in FIG.
  • FIG. 41 shows the data storage device load table 100-4 included in the data storage device load information acquired by the data storage device load information acquisition unit 2040.
  • the data storage device load table 100-4 indicates that the data transfer amounts per second of the disks DISK1 to DISK5 are 120 MB, 5 MB, 60 MB, 150 MB, and 10 MB, respectively.
  • FIG. 42 shows a data storage device allocation table 400-4 included in the data storage device allocation information acquired by the data storage device allocation information acquisition unit 2120.
  • the input / output destination information generation unit 2020 first acquires the candidate data storage device 3200 from the candidate table 200 and adds it to the set R.
  • the set R includes records 1 to 4 in the candidate table 200-1 as in the first operation example. Therefore, candidate data storage devices 3200 are disks DISK1 to DISK4. This is the same as the operation example 1.
  • the input / output destination information generation unit 2020 refers to the data storage device load information and the communication path load information for each of the candidate disks DISK1 to DISK4, and the disks DISK1 to DISK4 each have a low processing load and are computers. It is determined whether or not the communication load on the communication path with C1 is low. Here, it is assumed that the input / output destination information generation unit 2020 determines that the processing load is low for a disk having a data transfer amount of less than 100 MB / s.
  • the input / output destination information generation unit 2020 performs communication on the communication path between the process execution device 3100 and the data storage device 3200 when the data communication amount 100 MB / s on the communication path with the process execution device 3100 is less than 100 MB / s. Assume that the load is low. In this case, the disks DISK2 and DISK3 are determined to have a low processing load and communication load. Therefore, the input / output destination information generation unit 2020 adds the records 2 and 3 of the candidate table 200-1 among the records included in the set R to the set S.
  • the set S includes a plurality of records indicating the data storage device 3200. Therefore, the input / output destination information generation unit 2020 refers to the data storage device allocation information and acquires the number of processes associated with each of the disks DISK2 and DISK3. In the case of this operation example, the number of processes associated with the disk DISK2 is 0, and the number of processes associated with the disk DISK3 is 1.
  • the input / output destination information generation unit 2020 sorts the records in the set S by the number of processes associated with the data storage device 3200 indicated by each record. Then, the input / output destination table 300-4 including the sorted records is generated (see FIG. 43).
  • the input / output destination notification unit 3440 receives the input / output destination table 300-4. Then, the process process 10-p2 is notified in accordance with the received input / output destination table 300-4. In the case of this operation example, the management server 3400 instructs the processing process 10-p2 to input the processing data 20-D1 from the disk DISK2. Upon receiving the instruction, the processing process 10-p2 inputs the processing data 20-D1 from the disk DISK2.
  • the processing process 10-p2 is a disk that can input the processing data 20-D1 and has a low processing load, a low communication load, and a small number of associated processing processes 10.
  • the processing data 20-D1 is input from the DISK2. Therefore, the number of processes associated with each disk is leveled, and input requests or output requests are prevented from being concentrated on a specific disk.
  • the distributed system control device 2000 acquires the data storage device allocation information by the data storage device allocation information acquisition unit 2120.
  • the input / output destination information generation unit 2020 refers to the data storage device allocation information, and when there are a plurality of data storage devices 3200 determined to have low load among candidates for the data storage device 3200 to be allocated to the processing process 10,
  • the data storage device 3200 assigned to the processing process 10 is determined so as to equalize the number of processing processes 10 assigned to the data storage device 3200. Thereby, the probability that the processing load is concentrated on the specific data storage device 3200 becomes lower.
  • FIG. 44 is a diagram showing a functional configuration of the distributed system control apparatus 2000 according to the present embodiment, together with its use environment.
  • the functional blocks whose functional blocks are denoted by the same reference numerals in FIG. 1 have the same functions as the functional blocks in FIG.
  • the configuration of the distributed system 3000 in FIG. 44 is the same as the configuration of the distributed system 3000 in FIG. 1, for example. Therefore, in FIG. 44, the configuration of the distributed system 3000 is omitted.
  • the distributed system control apparatus 2000 includes a resource request information acquisition unit 2140 that acquires resource request information.
  • the resource request information is information representing a constraint condition when assigning the processing process 10 to the process execution device 3100.
  • the administrator of the distributed system 3000 causes the processing process 10 to be executed on the process execution device 3100 that can input or output the processing data 20 at high speed.
  • the processing process 10 is executed on the process execution device 3100 that is realized by the same computer as the data storage device 3200 that stores the input processing data 20. Therefore, the data storage device 3200 that allows the processing process 10 to input or output the processing data 20 can be inferred by referring to the constraint condition regarding the execution environment of each processing process 10 indicated in the resource request information.
  • the resource request information includes a resource request table 500 shown in FIG. 45, for example.
  • the resource request table 500 includes, for example, a program ID 510 and requested resource specifying information 520.
  • Program ID 510 identifies a program.
  • the requested resource identification information 520 is information that identifies which process execution device 3100 is executing the process 10 that performs the process described in the program identified by the program ID 510.
  • the requested resource identification information 520 is represented by, for example, an ID of the process execution device 3100, an ID of a computer that implements the process execution device 3100, a condition required for the process execution device 3100, and the like.
  • the management server refers to the resource request table 500 and performs process execution on all processing processes 10 that execute the program specified by the program ID 510 based on the conditions indicated by the same request resource specifying information 520.
  • Assign device 3100 the resource request table 500 may have a process ID instead of the program ID 510.
  • the requested resource identification information 520 is specified for each processing process 10.
  • the resource request table 500 may have a process group ID representing the group ID of the processing process 10 instead of the program ID 510.
  • the process execution devices 3100 are assigned to the processing processes 10 specified by the same process group ID based on the same requested resource specifying information 520.
  • the distributed system control apparatus 2000 further includes a candidate information generation unit 2160.
  • the candidate information generation unit 2160 Based on the resource request information acquired by the resource request information acquisition unit 2140, the candidate information generation unit 2160 estimates a data storage device 3200 to which each processing process 10 can input or output the processing data 20, and generates candidate information. For example, when the resource request information includes the resource request table 500, the candidate information generation unit 2160 searches the resource request table 500 using the ID of the program executed by the processing process 10 as a key. Then, the candidate information generation unit 2160 infers a data storage device 3200 from which the processing process 10 can input or output the processing data 20 from the information indicated in the requested resource specifying information 520 of the acquired record. And the candidate information which makes the said estimated data storage apparatus 3200 the candidate of the input source of the process data 20 by the process process 10, or an output destination is produced
  • the candidate information generation unit 2160 generates candidate information based on the resource request table 500 shown in FIG.
  • the candidate information generating unit 2160 sets the disk DISK1 provided in the computer C1 as a candidate for the data storage device 3200 that is associated with the processing process 10 that is executing the program whose program ID is program1.
  • the candidate information generation unit 2160 applies the disk DISK2 provided inside the computer C2 and the disk DISK3 provided inside the computer C3 to the processing process 10 that is executing the program whose program ID is program2. It is assumed that the data storage device 3200 to be associated is a candidate.
  • the candidate information generation unit 2160 transfers the disk DISK1 and disk DISK2 provided in the computers C1 and C2 connected to the switch SW1 to the processing process 10 executing the program whose program ID is program1. It is assumed that the data storage device 3200 to be associated is a candidate.
  • the distributed system control apparatus 2000 generates input / output destination information based on the candidate information generated by the candidate information generation unit 2160.
  • the method of generating input / output destination information may be any of the methods shown in the first to fourth embodiments.
  • the distributed system control device 2000 When the distributed system control device 2000 generates the input / output destination information by the same method as in the second embodiment, the distributed system control device 2000 further includes a functional block included in the distributed system control device 2000 in the second embodiment. Further, when the input / output destination information is generated by the same method as in the second embodiment, the distributed system control device 2000 further includes a functional block included in the distributed system control device 2000 in the third embodiment. Further, when the input / output destination information is generated by the same method as that of the fourth embodiment, the distributed system control device 2000 further includes functional blocks included in the distributed system control device 2000 of the fourth embodiment.
  • the distributed system control apparatus 2000 further includes a resource request information acquisition unit 2140 and a candidate information generation unit 2160.
  • the resource request information acquisition unit 2140 acquires resource request information representing a constraint condition when assigning the processing process 10 to the process execution device 3100.
  • the candidate information generation unit 2160 estimates a data storage device 3200 to which the processing process 10 can input or output the processing data 20 based on the resource request information. Then, the candidate information generation unit 2160 generates candidate information with the estimated data storage device 3200 as a candidate.
  • the distributed system control device 2000 takes time required for data input or output by the processing process 10 even in an environment where candidate information for specifying the data storage device 3200 that can input or output the processing data 20 cannot be obtained. Can be shortened.
  • a distributed system control device that controls a distributed system that performs distributed processing of a plurality of processing processes for inputting or outputting data
  • the distributed system is: A plurality of data storage devices; A processing process execution device that executes the processing process and is communicably connected to the plurality of data storage devices;
  • the distributed system control device includes: Data storage device load information acquisition means for acquiring data storage device load information representing the processing load of each data storage device; Candidate information acquisition means for acquiring candidate information indicating candidates of the data storage device in which each processing process inputs or outputs the data; By preferentially selecting the data storage device having a low processing load indicated in the data storage device load information from the data storage device candidates related to each processing process, the processing process and the processing process
  • a distributed system control device comprising input / output destination information generating means for generating input / output destination information associated with the data storage device for inputting or outputting the data.
  • the candidate information indicates, for each piece of data, a candidate for the data storage device in which each processing process inputs or outputs the data
  • the input / output destination information generating unit is configured to determine a processing load indicated in the data storage device load information from among data storage device candidates related to the combination of the processing process and the data input or output by the processing process. By preferentially selecting the lower data storage device, input / output destination information that associates the data storage device with each combination of the processing process and the data input or output by the processing process is generated. 1.
  • the processing process inputs and outputs the data
  • the candidate information indicates a candidate for the data storage device that inputs the data and a candidate for the data storage device that outputs the data for each processing process
  • the input / output destination information generation means indicates the data storage device load information from among the data storage device candidates for each combination of the processing process and information indicating whether the processing process inputs or outputs the data.
  • the data storage device is selected for each combination of the processing process and information indicating whether the processing process inputs or outputs the data by preferentially selecting the data storage device that has a low processing load. 1. Generate input / output destination information corresponding to each Or 2.
  • the input / output destination information generating means is configured to store the data from among data storage device candidates for each combination of “the processing process, information indicating whether the processing process inputs or outputs the data, and the data”. By preferentially selecting the data storage device having a low processing load indicated in the device load information, “the processing process, information indicating whether the processing process inputs or outputs the data, the data” 1. Generate input / output destination information in which each of the data storage devices is associated with each combination. To 3. The distributed system control apparatus according to any one of the above. 5.
  • communication path load information acquisition means for acquiring communication path load information indicating a communication load of each communication path between the process execution device and the plurality of data storage devices;
  • the input / output destination information generation means has a low processing load indicated in the data storage device load information and is indicated in the communication path load information from among data storage device candidates related to the respective processing processes. By preferentially selecting the data storage device having a low load on the communication path with the processing process execution device executing the processing process, the processing process and the processing process input or output the data. 1. Generate input / output destination information associated with the data storage device To 4.
  • the distributed system control apparatus according to any one of the above. 6). 5.
  • the distributed system control device has a plurality of communication devices interposed between the process execution device and the data storage device,
  • the distributed system control device includes: Network configuration information acquisition means for acquiring network configuration information indicating a connection relationship between the process execution device, the data storage device, and the communication device;
  • a process execution device allocation information acquisition means for acquiring process execution device allocation information indicating a correspondence between each processing process and the process execution device executing the processing process;
  • the input / output destination information generating means selects the processing process indicated in the network configuration information from among data storage device candidates related to each processing process based on the network configuration information and the process execution device allocation information.
  • the data storage device with a small number of the communication devices intervening with the process execution device to be executed is preferentially selected, and the data storage device load information is selected from the selected data storage devices.
  • the data storage device that has a low processing load and that has a low communication path load with the processing process execution device that is executing the processing process indicated in the communication path load information is preferentially selected.
  • the input / output destination information that associates the processing process with the data storage device to which the processing process inputs or outputs the data is generated.
  • Distributed system controller that. 7). 6).
  • the input / output destination information generating means includes: For each communication device, the number of the communication devices interposed on the communication path between the communication devices indicated by the network configuration information is small, and the processing load between the communication devices indicated by the communication path load information is small. Generating load determination information that is information that is preferentially associated with the data storage device that is low and has a low processing load indicated by the data storage device load information; Based on the network configuration information and the process execution device allocation information, priority is given to the communication devices in which there are few other communication devices interposed between the communication device and the processing process execution device that executes the processing process. The data storage device associated with the selected communication device in the load determination information is preferentially selected from the candidates related to the processing processes indicated by the candidate information.
  • a distributed system controller that generates input / output destination information. 8). 1. To 7. The distributed system control device according to any one of the above, A data storage device allocation information acquisition means for acquiring data storage device allocation information indicating the number of the processing processes that are inputting or outputting the processing data to the data storage device; The input / output destination information generating means includes: For each candidate data storage device related to each processing process, determine whether the processing load indicated in the data storage device load information is low, When there are a plurality of data storage device candidates determined to have a low processing load, the processing data is input or output to each data storage device based on the data storage device allocation information A distributed system control device that generates input / output destination information that associates the processing process with the data storage device to which the processing process inputs or outputs the data so as to level the number of processes.
  • Resource request information acquisition means for acquiring resource request information indicating a constraint condition required for the processing process execution device for executing the processing process; Based on the resource request information, the processing process estimates the data storage device to which the data can be input or output, and indicates the estimated data storage device as a candidate of an input source or output destination of the data by the process 1. It further has candidate information generation means for generating candidate information.
  • the distributed system control apparatus according to any one of the above. 10.
  • a program that causes a computer to function as a distributed system control device that controls a distributed system that performs distributed processing of a plurality of processing processes for inputting or outputting data The distributed system is: A plurality of data storage devices; A processing process execution device that executes the processing process and is communicably connected to the plurality of data storage devices; The program is stored in the computer.
  • the function of generating the input / output information is the processing load indicated in the data storage device load information from among the data storage device candidates related to each combination of the processing process and the data input or output by the processing process.
  • input / output destination information that associates the data storage device with each combination of the processing process and the data input or output by the processing process is obtained.
  • the processing process inputs and outputs the data
  • the candidate information indicates a candidate for the data storage device that inputs the data and a candidate for the data storage device that outputs the data for each processing process
  • the function of generating the input / output destination information is characterized in that the data storage device load information is selected from among data storage device candidates related to each combination of the processing process and information indicating whether the processing process inputs or outputs the data.
  • the function of generating the input / output destination information includes: the processing process, the information indicating whether the processing process inputs or outputs the data, and the data storage device candidate for each combination of the data.
  • the processing process information indicating whether the processing process inputs or outputs the data
  • the data storage device candidate for each combination of the data.
  • the computer further has a function of acquiring communication path load information indicating a communication load of each communication path between the process execution device and the plurality of data storage devices,
  • the function of generating the input / output destination information has a low processing load indicated in the data storage device load information and is indicated in the communication path load information from among data storage device candidates related to the respective processing processes.
  • the processing process and the processing process input the data by preferentially selecting the data storage device having a low load on the communication path with the processing process execution device executing the processing process.
  • input / output destination information is generated in association with the data storage device to be output.
  • the distributed system control apparatus according to any one of the above. 15.
  • the program described in The distributed system has a plurality of communication devices interposed between the process execution device and the data storage device,
  • the program is A function of acquiring network configuration information indicating a connection relationship between the process execution device, the data storage device, and the communication device in the computer; and each of the processing processes and the process execution device executing the processing processes.
  • Provide a function to acquire process execution device allocation information indicating the correspondence The function of generating the input / output destination information is based on the network configuration information and the process execution device allocation information, and the processing indicated in the network configuration information from among data storage device candidates related to each processing process.
  • the data storage device with a small number of communication devices interposed between the process execution devices that execute the process is selected with priority, and the data storage device load information is selected from the selected data storage devices.
  • the data storage device having a low processing load and a low communication channel load with the processing process execution device executing the processing process indicated in the communication channel load information is given priority.
  • input / output destination information that associates the processing process with the data storage device to which the processing process inputs or outputs the data.
  • Generated program. 16 The function of generating the input / output destination information is as follows: For each communication device, the number of the communication devices interposed on the communication path between the communication devices indicated by the network configuration information is small, and the processing load between the communication devices indicated by the communication path load information is small.
  • Generating load determination information that is information that is preferentially associated with the data storage device that is low and has a low processing load indicated by the data storage device load information; Based on the network configuration information and the process execution device allocation information, priority is given to the communication devices in which there are few other communication devices interposed between the communication device and the processing process execution device that executes the processing process.
  • the data storage device associated with the selected communication device in the load determination information is preferentially selected from the candidates related to the processing processes indicated by the candidate information. 15.
  • Generate associated input / output destination information The program described in. 17. 10. To 16.
  • the computer further has a function of acquiring data storage device allocation information indicating the number of the processing processes that are inputting or outputting the processing data to the data storage device,
  • the function of generating the input / output destination information is as follows: For each candidate data storage device related to each processing process, determine whether the processing load indicated in the data storage device load information is low, When there are a plurality of data storage device candidates determined to have a low processing load, the processing data is input or output to each data storage device based on the data storage device allocation information
  • a control method executed by a computer that controls a distributed system that performs distributed processing of a plurality of processing processes for inputting or outputting data The distributed system is: A plurality of data storage devices; A processing process execution device that executes the processing process and is communicably connected to the plurality of data storage devices; The control method is Obtaining data storage device load information representing the processing load of each data storage device; Obtaining candidate information indicating candidates of the data storage device in which each processing process inputs or outputs the data; By preferentially selecting the data storage device having a low processing load indicated in the data storage device load information from the data storage device candidates related to each processing process, the processing process and the processing process A control method including a step of generating input / output destination information in association with each of the data storage devices that input or output the data.
  • the step of generating the input / output information includes a processing load indicated in the data storage device load information from among data storage device candidates related to the combination of the processing process and the data input or output by the processing process. By preferentially selecting the data storage device having a low value, input / output destination information that associates the data storage device with each combination of the processing process and the data input or output by the processing process is obtained. 19. a generating step The control method described in 1. 21.
  • the processing process inputs and outputs the data
  • the candidate information indicates a candidate for the data storage device that inputs the data and a candidate for the data storage device that outputs the data for each processing process
  • the step of generating the input / output destination information includes selecting the data storage device load information from among data storage device candidates related to each combination of the processing process and information indicating whether the processing process inputs or outputs the data. For each combination of information indicating whether the processing process inputs or outputs the data by preferentially selecting the data storage device having a low processing load shown in FIG. 18. A step of generating input / output destination information associated with each storage device. Or 20. The control method described in 1. 22.
  • the step of generating the input / output destination information includes, among the candidates of the data storage device for each combination of “the processing process, information indicating whether the processing process inputs or outputs the data, and the data”, By preferentially selecting the data storage device having a low processing load indicated in the data storage device load information, “the processing process, information indicating whether the processing process inputs or outputs the data, 18. Input / output destination information in which the data storage device is associated with each combination of “data”. Thru 21. The control method as described in any one. 23.
  • the step of generating the input / output destination information includes a low processing load indicated in the data storage device load information from among data storage device candidates related to the respective processing processes, and is indicated in the communication path load information.
  • the processing process and the processing process input the data by preferentially selecting the data storage device having a low load on the communication path with the processing process execution device executing the processing process. Alternatively, it is a step of generating input / output destination information associated with the data storage device to be output. Thru 22. The control method as described in any one. 24. 23.
  • a control method according to claim 1,
  • the distributed system has a plurality of communication devices interposed between the process execution device and the data storage device,
  • the control method is Obtaining network configuration information indicating a connection relationship between the process execution device, the data storage device, and the communication device;
  • the step of generating the input / output destination information includes, based on the network configuration information and the process execution device allocation information, the processing indicated in the network configuration information from among data storage device candidates related to the processing processes.
  • the data storage device with a small number of communication devices interposed between the process execution devices that execute the process is selected with priority, and the data storage device load information is selected from the selected data storage devices.
  • the data storage device having a low processing load and a low communication channel load with the processing process execution device executing the processing process indicated in the communication channel load information is given priority.
  • the input / output destination that associates the processing process with the data storage device to which the processing process inputs or outputs the data is a step of generating a broadcast. 25.
  • the step of generating the input / output destination information includes: For each communication device, the number of the communication devices interposed on the communication path between the communication devices indicated by the network configuration information is small, and the processing load between the communication devices indicated by the communication path load information is small.
  • Generating load determination information that is information that is preferentially associated with the data storage device that is low and has a low processing load indicated by the data storage device load information; Based on the network configuration information and the process execution device allocation information, priority is given to the communication devices in which there are few other communication devices interposed between the communication device and the processing process execution device that executes the processing process.
  • the data storage device associated with the selected communication device in the load determination information is preferentially selected from the candidates related to the processing processes indicated by the candidate information.
  • a control method Further comprising obtaining data storage device allocation information indicating the number of the processing processes that are inputting or outputting the processing data to the data storage device;
  • the step of generating the input / output destination information includes: For each candidate data storage device related to each processing process, determine whether the processing load indicated in the data storage device load information is low, When there are a plurality of data storage device candidates determined to have a low processing load, the processing data is input or output to each data storage device based on the data storage device allocation information
  • a control method which is a step of generating input / output destination information that associates the processing process with the data storage device to which the data is input or output so as to equalize the number of processes. 27.
  • resource request information indicating a constraint condition required for the processing process execution device that executes the processing process
  • the processing process estimates the data storage device to which the data can be input or output, and indicates the estimated data storage device as a candidate of an input source or output destination of the data by the process 18. further comprising generating candidate information; Thru 26.
  • the control method as described in any one.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Hardware Redundancy (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

 分散システム(3000)は、複数のデータ格納装置(3200)と、処理データ(20)の入力又は出力を行う処理プロセス(10)を実行するプロセス実行装置(3100)とを有する。分散システム制御装置(2000)は、各データ格納装置(3200)の処理負荷を示すデータ格納装置負荷情報を取得するデータ格納装置負荷情報取得部(2040)、及び各処理プロセス(10)が処理データ(20)の入力又は出力を行うデータ格納装置(3200)の候補を示す候補情報を取得する候補情報取得部(2060)を有する。さらに、分散システム制御装置(2000)は、処理プロセス(10)に関する候補のデータ格納装置(3200)の中から、処理負荷が低いデータ格納装置(3200)を優先して選択して各処理プロセス(10)と対応づける入出力先情報を生成する入出力先情報生成部(2020)を有する。

Description

分散システム制御装置、プログラム、及び制御方法
 本発明は、分散システム制御装置、プログラム、及び制御方法に関する。
 データの入力又は出力を伴う処理を複数のプロセスに分割し、分割した各プロセスを複数の計算機に分散して実行させる分散システムが開発されている。上記複数の計算機は、他の全ての計算機、又は一部の計算機とネットワークを介して接続されている。
 さらに、上記プロセスが入力又は出力するデータを、上記プロセスを実行する計算機が有する記憶装置や、上記分散システムを構成するネットワーク上に分散配置された複数の記憶装置に分散して格納する分散システムが開発されている。そして、このようにデータを分散配置する分散システムでは、データの可用性を高めるために、同一のデータを複数の記憶装置に配置することが多い。こうすることで各プロセスは、一部の記憶装置が破損したり、分散システムを構成するネットワークの一部が不通になったりした場合でも、残りの記憶装置にアクセスすることで必要なデータを入力又は出力できる。
 データを複数の記憶装置に分散して格納する際の格納先を決定する発明として、特許文献1~4に示す発明がある。
 特許文献1は、データの入力元もしくは出力先となる計算機を決定する分散システムを開示する。この分散システムは、個々のデータを処理する計算機から最も近傍かつ利用可能なデータ格納用サーバを逐次選択することで、データの入力元もしくは出力先となる計算機を決定する。
 特許文献2及び3は、データが分散して格納された計算機を備え、データを入力する際に、データ入力の負荷が均一になるように計算機のアクセス順序を決定する分散システムを開示する。この分散システムは、データの格納時に配置先となる計算機をランダムに選択する。これにより、データの読み込み時に、データが格納された計算機の選択頻度が確率的に均一となるように、データの入力元となる計算機を決定する。
 特許文献4は、接続された複数のデータ格納用計算機に対し、異なる計算機上でデータの複製が生成されるように命令列の転送を行う、データ格納用計算機を接続する装置及びシステムを開示する。この装置及びシステムは、データの読み込み時に、計算機が送信したデータの読み込み要求をデータの複製が格納されている計算機へ分散して転送することで、データの読み込み負荷を複数のデータ格納用計算機に分散する。
米国特許第7650331号明細書 特表2002-500393号公報 特開2011-154702号公報 国際公開第2009/084314号パンフレット
 分散システムにおいて、プロセスによるデータの入力又は出力にかかる時間を短くすることが求められている。特許文献1記載の発明は、プロセスがデータの入力又は出力を行う記憶装置を、記憶装置の負荷状況を考慮せずに決定する。そのため、複数のプロセスが同じ記憶装置に対してデータの入力又は出力を行った場合、データの入力又は出力にかかる時間が長くなる場合がある。特許文献2、3及び4記載の各技術は、負荷分散を確率的に行う技術であるため、データの入力又は出力にかかる時間が長くなってしまう場合がある。
 本発明の目的は、分散システムにおいて、プロセスによるデータの入力又は出力にかかる時間を短くする分散システム制御装置、プログラム、及び制御方法を提供することである。
 本発明が提供する分散システム制御装置は、データの入力又は出力を行う複数の処理プロセスを分散処理する分散システムを制御する分散システム制御装置である。前記分散システムは、複数のデータ格納装置と、前記処理プロセスを実行し、前記複数のデータ格納装置と通信可能に接続されている処理プロセス実行装置を有する。そして、当該分散システム制御装置は、前記各データ格納装置の処理負荷を表すデータ格納装置負荷情報を取得するデータ格納装置負荷情報取得手段と、前記各処理プロセスが前記データの入力又は出力を行う前記データ格納装置の候補を示す候補情報を取得する候補情報取得手段と、前記各処理プロセスに関するデータ格納装置の候補の中から、前記データ格納装置負荷情報に示されている処理負荷が低い前記データ格納装置を優先的に選択することにより、前記処理プロセスと該処理プロセスが前記データの入力又は出力を行う前記データ格納装置とをそれぞれ対応づけた入出力先情報を生成する入出力先情報生成手段を有する。
 本発明が提供するプログラムは、コンピュータを、データの入力又は出力を行う複数の処理プロセスを分散処理する分散システムを制御する分散システム制御装置として機能させるプログラムである。前記分散システムは、複数のデータ格納装置と、前記処理プロセスを実行し、前記複数のデータ格納装置と通信可能に接続されている処理プロセス実行装置を有する。そして、当該プログラムは、前記コンピュータに、前記各データ格納装置の処理負荷を表すデータ格納装置負荷情報を取得する機能と、前記各処理プロセスが前記データの入力又は出力を行う前記データ格納装置の候補を示す候補情報を取得する機能と、前記各処理プロセスに関するデータ格納装置の候補の中から、前記データ格納装置負荷情報に示されている処理負荷が低い前記データ格納装置を優先的に選択することにより、前記処理プロセスと該処理プロセスが前記データの入力又は出力を行う前記データ格納装置とをそれぞれ対応づけた入出力先情報を生成する機能を持たせる。
 本発明が提供する制御方法は、データの入力又は出力を行う複数の処理プロセスを分散処理する分散システムを制御するコンピュータによって実行される。前記分散システムは、複数のデータ格納装置と、前記処理プロセスを実行し、前記複数のデータ格納装置と通信可能に接続されている処理プロセス実行装置を有する。そして、当該制御方法は、前記各データ格納装置の処理負荷を表すデータ格納装置負荷情報を取得するステップと、前記各処理プロセスが前記データの入力又は出力を行う前記データ格納装置の候補を示す候補情報を取得するステップと、前記各処理プロセスに関するデータ格納装置の候補の中から、前記データ格納装置負荷情報に示されている処理負荷が低い前記データ格納装置を優先的に選択することにより、前記処理プロセスと該処理プロセスが前記データの入力又は出力を行う前記データ格納装置とをそれぞれ対応づけた入出力先情報を生成するステップを有する。
  本発明によれば、分散システムにおいて、プロセスによるデータの入力又は出力にかかる時間を短くする分散システム制御装置、プログラム、及び制御方法を提供することができる。
 上述した目的、およびその他の目的、特徴および利点は、以下に述べる好適な実施の形態、およびそれに付随する以下の図面によってさらに明らかになる。
実施形態1に係る分散システム制御装置の構成をその使用環境と共に示すブロック図である。 データ格納装置負荷テーブルの構成を示す図である。 候補テーブルの構成を示す図である。 入出力先テーブルの構成を示す図である。 実施形態1における入出力先情報生成処理の流れを示すフローチャートである。 動作例1における分散システム制御装置及びその使用環境の構成を示す図である。 動作例1及び2における分散システム制御装置及びその使用環境を実現する計算機とそれらの動作状況を示す図である。 動作例1、2、及び4における候補テーブルの一部を示す図である。 動作例1及び2におけるデータ格納装置負荷テーブルの一部を示す図である。 動作例1における入出力先テーブルを示す図である。 実施形態2に係る分散システム制御装置の構成をその使用環境と共に示すブロック図である。 通信路負荷テーブルの構成を示す図である。 プロセス実行装置、データ格納装置、及び通信装置の接続関係を例示する図である。 実施形態2における入出力先情報生成処理の流れを示すフローチャートである。 動作例2における分散システム制御装置及びその使用環境の構成を示す図である。 動作例2における通信路負荷テーブルを示す図である。 動作例2における入出力先テーブルを示す図である。 実施形態3に係る分散システム制御装置の構成を、その使用環境と共に示すブロック図である。 プロセス実行装置割当テーブルの構成を示す図である。 ネットワーク構成テーブルの構成を示す図である。 実施形態3における通信路負荷テーブルの構成を示す図である。 負荷判定テーブルの構成を示す図である。 負荷判定テーブル作成処理の前半部分の流れを示すフローチャートである。 負荷判定テーブル作成処理の後半部分の流れを示すフローチャートである。 実施形態3における入出力先情報生成処理の前半部分の流れを示すフローチャートである。 実施形態3における入出力先情報生成処理の後半部分の流れを示すフローチャートである。 動作例3における分散システム制御装置及びその使用環境の構成を示す図である。 動作例3における分散システム制御装置及びその使用環境を実現する計算機と、それらの動作状況を示す図である。 動作例3におけるデータ格納装置負荷テーブルを示す図である。 動作例3における通信路負荷テーブルを示す図である。 動作例3におけるプロセス実行装置割当テーブルを示す図である。 動作例3におけるネットワーク構成テーブルを示す図である。 動作例3における負荷判定テーブルを示す図である。 動作例3における候補テーブルを示す図である。 動作例3における入出力先テーブルを示す図ある。 実施形態4に係る分散システム制御装置の構成を、その使用環境と共に示すブロック図である。 データ格納装置割当テーブルの構成を示す図である。 実施形態4における入出力先情報生成処理の流れを示すフローチャートである。 動作例4における分散システム制御装置及びその使用環境の構成を示す図である。 動作例4において、分散システム制御装置及びその使用環境を実現する計算機とそれらの動作状況を示す図である。 動作例4におけるデータ格納装置負荷テーブルを示す図である。 動作例4におけるデータ格納装置割当テーブルを示す図である。 動作例4における入出力先テーブルを示す図である。 実施形態5に係る分散システム制御装置の構成を、その使用環境と共に示すブロック図である。 資源要求テーブルの構成を示す図である。 プロセス実行装置、データ格納装置、及び通信装置の接続関係の別の例を示す図である。
 以下、本発明の実施の形態について、図面を用いて説明する。尚、すべての図面において、同様な構成要素には同様の符号を付し、適宜説明を省略する。
 なお、以下に示す説明において、各装置の各構成要素は、ハードウエア単位の構成ではなく、機能単位のブロックを示している。各装置の各構成要素は、任意のコンピュータのCPU、メモリ、メモリにロードされた本図の構成要素を実現するプログラム、そのプログラムを格納するハードディスクなどの記憶メディア、ネットワーク接続用インターフェースを中心にハードウエアとソフトウエアの任意の組合せによって実現される。そして、その実現方法、装置には様々な変形例がある。
[実施形態1]
<概要>
 図1は、実施形態1に係る分散システム制御装置2000の構成を、その使用環境と共に示すブロック図である。図1において、矢印は情報の流れを表す。
 分散システム制御装置2000は、分散システム3000を制御する。分散システム3000は、プロセス実行装置3100及びデータ格納装置3200を有する。プロセス実行装置3100は、データ格納装置3200に対するデータの入力又は出力を伴う処理が記述されているプログラムを実行することで、処理プロセス10を動作させる。ここで、処理プロセス10が入力又は出力するデータを総称して処理データ20と呼ぶ。プロセス実行装置3100は、複数の処理プロセス10を実行してもよい。プロセス実行装置3100は、複数のデータ格納装置3200とデータ通信可能に接続されている。データ格納装置3200は、処理プロセス10によって入力又は出力される処理データ20を格納する。
 分散システム制御装置2000は、処理プロセス10による処理データ20の入力又は出力を制御する。分散システム制御装置2000は、データ格納装置負荷情報取得部2040及び候補情報取得部2060を有する。データ格納装置負荷情報取得部2040は、各データ格納装置3200の処理負荷を示すデータ格納装置負荷情報を取得する。候補情報取得部2060は、各処理プロセス10が処理データ20の入力又は出力を行うデータ格納装置3200の候補を示す候補情報を取得する。
 分散システム制御装置2000はさらに、入出力先情報生成部2020を有する。入出力先情報生成部2020は、上記データ格納装置負荷情報及び候補情報に基づき、各処理プロセス10について、処理プロセス10と該処理プロセス10が処理データ20の入力又は出力を行うデータ格納装置3200を対応づける入出力先情報を生成する。具体的には、入出力先情報生成部2020はまず、候補情報を参照して、処理プロセス10が処理データ20を入力又は出力できるデータ格納装置3200の候補を取得する。さらに入出力先情報生成部2020は、データ保存情報負荷情報を参照して、候補である各データ格納装置3200の中から、処理負荷が低いデータ格納装置3200を優先して選択し、処理プロセス10とデータ格納装置3200を対応づける。そして入出力先情報生成部2020は、上記で行った処理プロセス10とデータ格納装置3200の対応付けを示す入出力先情報を生成する。
 以上のように、本実施形態の分散システム制御装置2000は、各処理プロセス10が処理データ20の入力又は出力を行うデータ格納装置3200として、候補情報が示すデータ格納装置3200の候補の中から、データ格納装置負荷情報が示す処理負荷の低いデータ格納装置3200を選択する。これにより、処理プロセス10が処理データ20を入力又は出力することによって発生するデータ格納装置3200の処理負荷が分散される。その結果、処理プロセス10による処理データ20の入力又は出力に要する時間が短くなる。
 以下、本実施形態の詳細を述べる。
<構成詳細>
 分散システム制御装置2000は、例えば専用の装置、サーバマシン、又はパーソナルコンピュータ(PC)といった種々の計算機上に実現される。プロセス実行装置3100も同様に種々の計算機上に実現される。分散システム制御装置2000とプロセス実行装置3100は、同じ計算機上に実現されてもよいし、異なる計算機上に実現されてもよい。
 データ格納装置3200は例えば、プロセス実行装置3100と同じ計算機上に実現される。具体的には例えば、専用の記憶装置、ハードディスクなどの二次記憶装置、又はメモリなど、種々の記憶装置によって実現される。さらにデータ格納装置3200は、プロセス実行装置3100に接続されるUSBメモリ等の可搬型の記憶装置によって実現されてもよい。
 データ格納装置3200は、プロセス実行装置3100を実現する計算機と異なる計算機上に実現されてもよい。その場合、データ格納装置3200は例えば、Network Attached Storage(NAS)や、ハードディスク等の記憶装置を有するPCやサーバマシン等の種々の計算機上の記憶装置として実現される。
 上記種々の計算機は、例えば、バスで相互に接続される、CPU(Central Processing Unit)、メモリ、入出力インタフェース(I/F)等を有する。メモリは、RAM(Random Access Memory)、ROM(Read Only Memory)、ハードディスク、可搬型記憶媒体等である。ハードディスク、可搬型記憶媒体等は記憶装置とも称される。入出力I/Fは、ネットワークを介して他の装置と通信を行う通信装置等と接続される。入出力I/Fは、表示装置や入力装置等のようなユーザインタフェース装置と接続されてもよい。なお、本実施形態及び以降に示す全ての実施形態において、分散システム制御装置2000、プロセス実行装置3100、及びデータ格納装置3200のハードウエア構成は限定されない。
 プロセス実行装置3100とデータ格納装置3200の接続方法は様々である。データ格納装置3200とプロセス実行装置3100が同じ計算機上に実現されている場合、例えば両者はバスで接続される。データ格納装置3200とプロセス実行装置3100が異なる計算機上に実現されている場合、例えば両者はLocal Area Network(LAN)やWide Area Network(WAN)などのネットワークを介して接続される。プロセス実行装置3100とデータ格納装置3200を接続するネットワークは、有線で構成されるネットワークであっても、無線で構成されるネットワークであっても、又は双方が混在するネットワークであってもよい。
<データ格納装置負荷情報の詳細>
 データ格納装置負荷情報は、例えば図2に示すデータ格納装置負荷テーブル100を有する。データ格納装置負荷テーブル100は例えば、データ格納装置ID110及び処理負荷情報120を有する。データ格納装置負荷テーブル100のレコードは、データ格納装置ID110で特定されるデータ格納装置3200の負荷情報を、処理負荷情報120に示す。データ格納装置ID110は、データ格納装置3200を識別する識別子である。データ格納装置ID110は例えば、オペレーティングシステム(OS)によってデータ格納装置3200に対して与えられた論理的な機器名である。処理負荷情報120は、データ格納装置3200の負荷を示す情報である。処理負荷情報120は例えば、データ格納装置3200が単位時間当たりに入出力しているデータ転送量や、データ格納装置3200が受信したデータ入出力要求を格納するキューに格納されているデータ入出力要求の数(以下、要求キュー長)である。また、処理負荷情報120は例えば、データ格納装置ID110で特定されるデータ格納装置3200を実現するサーバやPC等の計算機の負荷情報を有してもよい。その例は、上記計算機が有するCPUの使用率などである。また、処理負荷情報120は、高負荷か低負荷かを表す1ビットの情報であってもよい。さらに、処理負荷情報120は、各データ格納装置3200について、上記の例に挙げたような負荷情報を複数有してもよい。
 データ格納装置負荷情報の取得方法は様々である。例えば、データ格納装置負荷情報取得部2040は、データ格納装置3200の負荷状況を監視する監視システムによって自動生成されるデータ格納装置負荷情報を取得する。また例えば、データ格納装置負荷情報取得部2040は、分散システム3000の管理者が手動で入力したデータ格納装置負荷情報を取得してもよい。
 データ格納装置負荷情報を取得する時点は様々である。例えばデータ格納装置負荷情報取得部2040は、入出力先情報生成部2020が入出力先情報の生成処理を開始した時に、データ格納装置負荷情報を取得する。また、データ格納装置負荷情報取得部2040は、定期的な時間間隔、又は不定期な時間間隔で、繰り返しデータ格納装置負荷情報を取得してもよい。また、データ格納装置負荷情報取得部2040は、データ格納装置3200の処理負荷が変動した際に、そのデータ格納装置3200の新たな処理負荷を示すデータ格納装置負荷情報を取得してもよい。この場合、データ格納装置負荷情報取得部2040は、処理負荷が変動したデータ格納装置3200に関するデータ格納装置負荷情報のみを取得してもよいし、全てのデータ格納装置3200に関するデータ格納装置負荷情報を取得してもよい。
<候補情報の詳細>
 候補情報は、例えば図3に示す候補テーブル200を有する。候補テーブルは例えば、プロセスID210、処理種別220、処理データID230、及びデータ格納装置ID240を有する。候補テーブルのレコードは、「プロセスID210で特定される処理プロセス10,処理種別220が示す処理種別(入力又は出力),処理データID230で特定される処理データ20」の各組み合わせについて、候補とするデータ格納装置3200のIDを示す。プロセスID210は、処理プロセス10を識別する識別子である。処理種別220は、レコードが示すデータ格納装置3200の候補が、入力元の候補なのか出力先の候補なのかを示す情報(以下、処理種別情報)である。処理種別220は例えば、0と1の2値で表され、1の場合は出力、0の場合は入力を表す。処理データID230は、処理データ20の識別子を示す。データ格納装置ID240は、データ格納装置3200の識別子を示す。例えば図3の1行目のレコードは、プロセスID=proc1の処理プロセス10による、処理データID=D1の処理データ20の入力元の候補の一つは、データ格納装置ID=DISK1のデータ格納装置3200であることを示す。
 候補テーブル200は、同じ「プロセスID210,処理種別220,処理データID230」の組み合わせに対して異なるデータ格納装置ID240を示すレコードを複数有することが望ましい。そうすることで、入出力先情報生成部2020は、複数の候補の中から、処理負荷が低いデータ格納装置3200を選択することができる。
 候補テーブル200は、処理種別220又は処理データID230を省略してもよい。例えば処理種別220を省略した場合、処理プロセス10は、データの入力と出力の双方に関し、同じデータ格納装置3200を候補とする。また例えば処理データID230を省略した場合、処理プロセス10は、全ての処理データ20に関し、同じデータ格納装置3200を入力元又は出力先の候補とする。さらに例えば、処理種別220及び処理データID230の双方を省略した場合、処理プロセス10は、全ての処理データ20に関し、同じデータ格納装置3200を入力元及び出力先の候補とする。
 プロセスID210には、処理プロセス10のグループの識別子であるプロセスグループIDを指定してもよい。この場合、同じプロセスグループに属する処理プロセス10は、「処理種別,処理データ20」の各組み合わせに対し、同じデータ格納装置3200を候補とする。分散システムにおいて複数のプロセスが一つのプロセスグループに属する例としては、1つのジョブを複数の処理プロセスに分割して並列実行する場合がある。この場合、上記分割された各処理プロセスは、同じプロセスグループに属する。
 候補情報は、処理プロセス10と、該処理プロセス10が処理データ20を入力又は出力できると推測されるデータ格納装置3200を対応付けていてもよい。
 候補情報の取得方法は様々である。例えば候補情報取得部2060は、処理プロセス10をプロセス実行装置3100に割り当てる処理やデータ格納装置3200に処理データ20を割り当てる処理を行う管理サーバから候補情報を取得する。上記管理サーバは例えば、処理プロセス10を実行するプロセス実行装置3100と処理データ20を格納するデータ格納装置3200が同じ計算機上にある場合に、上記データ格納装置3200を、上記処理プロセス10による上記処理データ20の入力元又は出力先の候補とする。また例えば候補情報取得部2060は、データ格納装置3200に対する処理データ20の入力又は出力を監視する監視システムから候補情報を取得する。その他にも、例えば候補情報取得部2060は、分散システム3000の管理者が手動で入力した候補情報を取得する。
<入出力先情報の詳細>
 入出力先情報生成部2020は、処理プロセス10と、該処理プロセス10が処理データ20の入力又は出力を行うデータ格納装置3200を対応づける入出力先情報を生成する。入出力先情報は、例えば図4に示す入出力先テーブル300で表される。入出力先テーブル300の各レコードは、「プロセスID310で特定される処理プロセス10,処理種別320が示す処理種別,処理データID330で特定される処理データ20」の組み合わせと、データ格納装置3200の対応を示す。プロセスID310は、処理プロセス10を識別する識別子である。処理種別320は、処理種別情報である。処理データID330は、処理データ20の識別子である。データ格納装置ID340は、データ格納装置3200の識別子である。例えば、図4における入出力先テーブル300の1行目のレコードに従って処理プロセス10を制御する場合、プロセスID310=proc1の処理プロセス10は、処理データID330=D1である処理データ20を、データ格納装置ID340=DISK2であるデータ格納装置3200から入力する。
 入出力先テーブル300は、同じ「プロセスID310,処理種別320,処理データID330」の組み合わせについてデータ格納装置3200を対応付けるレコードを複数有してもよい。この場合、例えば行番号が小さいレコードが有するデータ格納装置3200ほど優先して、処理プロセス10の制御に利用される。
 入出力先情報は、処理種別320又は処理データID330を省略してもよい。処理種別320を省略した場合、例えば処理プロセス10は、データの入力と出力の双方に関し、同じデータ格納装置3200と対応づけられる。処理データID330を省略した場合、例えば「処理プロセス10,処理種別」の組み合わせは、全ての処理データ20に関し、同じデータ格納装置3200に対応付けられる。さらに例えば、処理種別320及び処理データID330の双方を省略した場合、処理プロセス10は、全ての「処理種別,処理データ20」の組み合わせに関し、同じデータ格納装置3200と対応づけられる。
<入出力先情報生成処理の流れ>
 図5は、入出力先情報生成部2020が入出力先情報を生成する入出力先情報生成処理の流れの一例を示すフローチャートである。
 ステップS102において、入出力先情報生成部2020は、候補情報取得部2060から候補情報を取得する。そして、ステップS104において、入出力先情報生成部2020は、データ格納装置負荷情報取得部2040からデータ格納装置負荷情報を取得する。
 ステップS106において、入出力先情報生成部2020は、候補情報に含まれる候補テーブル200を検索してデータ格納装置3200の候補を示すレコードを取得し、集合Rに加える。ここで、処理プロセス10に対してデータ格納装置3200を対応づける入出力先情報を生成する場合、入出力先情報生成部2020は、処理プロセス10のIDをキーとして候補テーブル200を検索する。また、「処理プロセス10,処理データ20」の組み合わせに対してデータ格納装置3200を対応づける入出力先情報を生成する場合、入出力先情報生成部2020は、「処理プロセス10のプロセスID,処理データ20のID」をキーとして検索を行う。同様に、「処理プロセス10,処理種別」の組み合わせについてデータ格納装置3200を対応づける入出力先情報を生成する場合、入出力先情報生成部2020は、「処理プロセス10のID,処理種別」をキーとして検索を行う。さらに同様に、「処理プロセス10,処理種別,処理データ20」の組み合わせについてデータ格納装置3200を対応づける入出力先情報を生成する場合、入出力先情報生成部2020は、「処理プロセス10,処理種別,処理データ20」をキーとして検索を行う。
 集合Rに加える各レコードは、データ格納装置ID240を含んでいればよい。そのため入出力先情報生成部2020は、各レコードについて、データ格納装置ID240を含むレコードの一部だけを集合Rに加えてもよい。
 ステップS108において、入出力先情報生成部2020は、上記集合Rに含まれる各レコードが有するデータ格納装置ID240の値をキーとして、データ格納装置負荷テーブル100を検索し、候補に含まれる各データ格納装置3200の処理負荷を取得する。次に、入出力先情報生成部2020は、集合Rに含まれるレコードを、処理負荷の低い順にソートする。
 ステップ110において、入出力先情報生成部2020は、集合Rに含まれるレコードを上記ソートした順に有する入出力先テーブルを生成し、入出力先情報とする。
 ここで、データ格納装置3200の処理負荷は、図2に示すデータ格納装置負荷テーブル100のレコード1とレコード2のように異なる指標で示されている場合がある。この場合、処理負荷情報120の値をそのまま利用して集合Rのレコードをソートすることはできない。そこで例えば、入出力先情報生成部2020は、処理負荷情報120が示す値を標準化し、標準化した値に基づいてレコードのソートを行う。
 入出力先情報は、集合Rのレコードのうち、一部のレコードから生成してもよい。例えば入出力先情報生成部2020は、入出力先情報に含むレコードの数に上限を設ける。例えば、入出力先情報に含むレコードの数をNとした場合、入出力先情報生成部2020は、処理負荷の低い順にソートした集合Rのレコードの内、先頭からN個のみに限定したレコードで構成した入出力先テーブル300を、入出力先情報とする。
 入出力先情報生成処理は、上記フローチャートの処理に限定されない。その他にも例えば、入出力先情報生成部2020は、各データ格納装置3200の処理負荷を、低負荷であるか高負荷であるかの2値で判別してもよい。この場合、入出力先情報生成部2020は、例えばデータ転送量や要求キューの長さといった処理負荷の各指標のそれぞれについて閾値を設ける。そして、入出力先情報生成部2020は、候補に含まれる各データ格納装置3200について、処理負荷を閾値と比較し、高負荷であるか低負荷であるか判定する。そして、入出力先情報生成部2020は、低負荷であると判定したデータ格納装置3200の集合を入出力先情報とする。
 入出力先情報生成部2020が入出力先情報を生成する契機は様々である。例えば入出力先情報生成部2020は、プロセス実行装置3100の要求に応じてデータ入出力先情報を生成する。これは例えば、プロセス実行装置3100が新たな処理プロセス10の実行を開始する時に、その処理プロセス10が各処理データ20の入力又は出力を行うデータ格納装置3200の決定を入出力先情報生成部2020に依頼する場合である。また、入出力先情報生成部2020は、処理プロセス10をプロセス実行装置3100に割り当てる管理サーバからの依頼によって入出力先情報を生成してもよい。これは例えば、管理サーバが、あるプログラムを実行する複数の処理プロセス10の実行を開始する際に、各処理プロセス10が処理データ20を入力又は出力するデータ格納装置3200の決定を、入出力先情報生成部2020に依頼する場合である。
 入出力先情報生成部2020は、複数の処理プロセス10についてまとめて入出力先情報を生成してもよい。そして、その方法は様々である。例えば入出力先情報生成部2020は、各処理プロセス10について、順にデータ格納装置3200を対応づける貪欲アルゴリズムを実行する。また例えば入出力先情報生成部2020は、処理プロセス10の集合とデータ格納装置3200の集合を参照して、「処理プロセス10,データ格納装置3200」の複数の対応付けを最適化する数理最適化アルゴリズムを実行してもよい。
<入出力先情報に基づいた分散システム3000の制御>
 入出力先情報に基づいて処理データ20の入力又は出力を制御する方法は様々である。例えば分散システム制御装置2000は、各処理プロセス10に対し、入出力先情報に基づいた指示を通知する入出力先通知部を有する。この場合、入出力先通知部は、例えば図4における入出力先テーブル300の1行目のレコードを参照し、プロセスID310=proc1である処理プロセス10に対し、処理データID330=D1の処理データ20を、データ格納装置ID340=DISK2のデータ格納装置3200から入力するように通知する。上記通知を受け取った処理プロセス10は、データ格納装置ID340=DISK2であるデータ格納装置3200に対し、処理データID330=D1の処理データ20の入力要求を送信する。
 上記入出力先通知部は、データ格納装置3200に対して通知を行ってもよい。この場合、データ格納装置3200は、上記通知に従って処理プロセス10と処理データ20のやりとりをする。例えば入出力先通知部は、図4における入出力先テーブル300の1行目のレコードを参照し、データ格納装置ID340=DISK2であるデータ格納装置3200に通知を行う。この場合、通知を受信したデータ格納装置3200は、例えばプロセスID310=proc1である処理プロセス10に対し、処理データID330=D1である処理データ20を送信する。
 入出力先通知部は、分散システム制御装置2000の外部に備えられていてもよい。例えば、分散システム3000が前述した管理サーバを有する場合、上記管理サーバが入出力先通知部を有してもよい。この場合、例えば上記管理サーバは、入出力先情報生成部2020が生成した入出力先情報を受信し、受信した入出力先情報に基づいて、処理プロセス10やデータ格納装置3200の制御を行う。
 また、処理プロセス10やデータ格納装置3200は、分散システム制御装置2000に対し、自ら入出力先情報の送信を要求してもよい。
<動作例1>
 以下、本実施形態に係る分散システム制御装置2000の動作について、具体例を用いて説明する。なお、以下に示すのは、分散システム制御装置2000の動作の一例である。本実施形態は以下に示す動作例によって何らの限定を受けない。
 図6は、動作例1における分散システム制御装置2000及びその使用環境の機能構成を示す図である。ここで、図6において、図1と同じ機能ブロックは、図1における機能ブロックと同様の機能を有するとして、説明を省略する。
 管理サーバ3400は、プロセス実行装置3100に対する処理プロセス10の割り当て、及びデータ格納装置3200に対する処理データ20の割り当てを行う管理サーバである。管理サーバ3400は、候補情報提供部3420と入出力先通知部3440を有する。候補情報提供部3420は、候補情報取得部2060に対し、候補情報を提供する。入出力先通知部3440は、入出力先情報生成部2020から入出力先情報を受信し、プロセス実行装置3100に対して、処理データ20の入力元又は出力先とするデータ格納装置3200を指定する。データ格納装置負荷情報提供部3500は、データ格納装置3200の負荷状況を監視してデータ格納装置負荷情報を生成し、データ格納装置負荷情報取得部2040に送信する。
 図7は、動作例1における分散システム制御装置2000及び分散システム3000のハードウエア構成及び動作状況を概念的に示す図である。コンピュータC0は、分散システム制御装置2000及び管理サーバとして機能する。コンピュータC1~C4は、それぞれプロセス実行装置3100として機能する。ディスクDISK1~DISK5は、それぞれデータ格納装置3200として機能する。ディスクDISK1はコンピュータC1の内部に設けられており、ディスクDISK2はコンピュータC2の内部に設けられており、ディスクDISK3はコンピュータC3の内部に設けられており、ディスクDISK4はコンピュータC4の内部に設けられており、ディスクDISK5はコンピュータC5の内部に設けられている。また、コンピュータC1~C3は、スイッチSW1を介して互いに通信可能に接続されている。そして、スイッチSW1、コンピュータC0、コンピュータC4及びコンピュータC5は、スイッチSW2を介して互いに通信可能に接続されている。そのため、図7の分散システム3000を構成する各計算機は、他の全ての計算機と互いに通信可能に接続されている。さらに、コンピュータC1~C5は、データ格納装置負荷情報提供部3500としても機能する。
 動作例1において、IDがp1の処理プロセス10(以下、処理プロセス10-p1)はコンピュータC1上で実行されており、処理プロセス10-p3はコンピュータC3上で実行されており、処理プロセス10-p4及びp5はコンピュータC4上で実行されている。処理プロセスp1は、ディスクDISK1へIDがD2の処理データ20(以下、処理データ20-D2)を出力中である。一方、処理プロセス10-p3、p4及びp5は、計算処理中であり、処理データ20の入出力を行っていない。
 ここで、管理サーバによってコンピュータC1に対し、新たに処理プロセス10-p2が割り当てられたとする。処理プロセス10-p2は、処理データ20-D1の入力を伴う処理を行う。そこで、分散システム制御装置2000は、「処理プロセス10-p2,入力処理、処理データ20-D1」の組み合わせに対してデータ格納装置3200を対応づける入出力先情報を生成する。以下、その具体的な動作を説明する。ここで、処理プロセス10-p2が入力する処理データ20-D1は4つに複製されており、それぞれディスクDISK1~ディスクDISK4に格納されている。
 まず候補情報取得部2060は、候補情報提供部3420から、候補情報を取得する。図8に示す候補テーブル200-1は、取得した候補情報が有する候補テーブル200のうち、処理プロセス10-p2に関する情報のみを示したテーブルである。
 そして、データ格納装置負荷情報取得部2040は、データ格納装置負荷情報提供部3500からデータ格納装置負荷情報を取得する。図9のデータ格納装置負荷テーブル100-1は、ディスクDISK1~DISK5の処理負荷情報を示すテーブルである。データ格納装置負荷テーブル100-1は、ディスクDISK1~DISK5の毎秒当たりのデータ転送量がそれぞれ、120MB、5MB、30MB、20MB、10MBであることを示す。
 入出力先情報生成部2020はまず、候補情報取得部2060が取得した候補テーブル200を、「プロセスID210=p2,処理種別220=入力,処理データID230=D1」をキーとして検索してレコードを取得し、集合Rに加える。その結果、集合Rは、候補テーブル200-1の中のレコード1~4を有する。したがって、候補のデータ格納装置3200はディスクDISK1~DISK4である。
 次に入出力先情報生成部2020は、候補であるディスクDISK1~DISK4のそれぞれについてデータ格納装置負荷テーブル100-1を参照し、集合Rに含まれるレコードを処理負荷が低い順にソートする。そして、入出力先情報生成部2020は、ソートしたレコードから成る入出力先テーブル300-1を生成する(図10参照)。
 管理サーバ3400が有する入出力先通知部3440は、上記入出力先テーブル300-1を受信する。そして、受信した入出力先テーブル300-1に従い、処理プロセス10-p2に対して通知を行う。具体的にはまず、管理サーバ3400は、入出力先テーブル300-1のレコード1を参照する。そして、管理サーバ3400は、処理プロセス10-p2に対し、処理データ20-D1の入力をDISK2から行うように指示する。指示を受けた処理プロセス10-p2は、処理データ20-D1をDISK2から入力する。
 以上の動作により、処理プロセス10-p2は、処理データ20-D1の入力を行えるディスクのうち、最も処理負荷が低いディスクDISK2から処理データ20-D1の入力を行う。そのため、処理プロセス10-p2による処理データ20-D1の入力にかかる時間が短くなる。
 なお、例えば管理サーバ3400は、入出力先テーブル300-1のレコード1に示されているディスクDISK2が故障等で利用できない場合、次の行のレコード2を参照する。そして、処理プロセス10-p2に対し、レコード2が示すディスクDISK4から、処理データ20-D1を取得するように指示する。こうすることで、処理プロセス10-p2は、一部のデータ格納装置3200が故障等により利用できない場合でも、処理データ20の入力又は出力を行う時間をできる限り短くすることができる。
<作用・効果>
 以上の構成により、本実施形態によれば、分散システム制御装置2000は、候補情報取得部2060によって、各処理プロセス10が処理データ20の入力又は出力を行うデータ格納装置3200の候補を示す候補情報を取得する。また、分散システム制御装置2000は、データ格納装置負荷情報取得部2040によって、各データ格納装置3200の処理負荷を示すデータ格納装置負荷情報を取得する。そして分散システム制御装置2000は、入出力先情報生成部2020により、上記データ格納装置負荷情報及び候補情報に基づき、候補である各データ格納装置3200の中から、処理負荷が低いデータ格納装置3200を優先して選択し、処理プロセス10と、該処理プロセス10が処理データ20の入力又は出力を行うデータ格納装置3200を対応づける入出力先情報を生成する。これにより、分散システム制御装置2000は、処理プロセス10によるデータ格納装置3200に対する処理データ20の入力又は出力を、分散システム内で分散させることができる。その結果、各データ格納装置3200の処理負荷が低減され、処理プロセス10が処理データ20の入力又は出力に要する時間は短くなる。また、分散システム制御装置2000は、繰り返し入出力先情報生成処理を行うことで、処理プロセス10とデータ格納装置3200の対応付けを更新できる。こうすることで、データ格納装置3200の処理負荷が変化しても、その変化に応じて処理プロセス10とデータ格納装置3200の対応付けを変更できる。そのため、分散システム制御装置2000は、データ格納装置3200の処理負荷が変化する場合でも、処理プロセス10によるデータ格納装置3200に対する処理データ20の入力又は出力を、分散システム内で分散させることができる。
 [実施形態2]
<概要>
 図11は、実施形態2に係る分散システム制御装置2000の構成を、その使用環境と共に示した図である。図11において、図1と同符号の機能ブロックは、図1と同様の機能を有するとし、説明を省略する。また図11おける分散システム3000の構成は、例えば図1における分散システム3000の構成と同じである。そのため図9において、分散システム3000の構成は省略する。
 本実施形態に係る分散システム制御装置2000は、通信路負荷情報取得部2080をさらに有する。通信路負荷情報取得部2080は、プロセス実行装置3100とデータ格納装置3200の間の通信路の通信負荷を示す通信路負荷情報を取得する。
 本実施形態における入出力先情報生成部2020は、候補情報、データ格納装置負荷情報、及び通信路負荷情報に基づいて、処理プロセス10と、該処理プロセス10が処理データ20の入力又は出力を行うデータ格納装置3200を対応づける入出力先情報を生成する。具体的にはまず、入出力先情報生成部2020は、処理プロセス10について候補情報を参照し、処理プロセス10が処理データ20を入力又は出力できるデータ格納装置3200の候補を取得する。そして、入出力先情報生成部2020は、データ格納装置負荷情報を参照し、候補のデータ格納装置3200のそれぞれについて処理負荷を取得する。さらに入出力先情報生成部2020は、通信路負荷情報を参照し、候補のデータ格納装置3200のそれぞれについて、処理プロセス10を実行するプロセス実行装置3100との間の通信路の通信負荷を取得する。入出力先情報生成部2020は、候補のデータ格納装置3200の中から、処理負荷が低く、かつ、該処理プロセス10を実行するプロセス実行装置3100との間の通信路の通信負荷が低いデータ格納装置3200を優先して選択する。そして、処理プロセス10と選択したデータ格納装置3200を対応づける入出力先情報を生成する。
 以上により、本実施形態の分散システム制御装置2000は、データ格納装置3200の処理負荷に加え、データ格納装置3200と処理プロセス10を実行するプロセス実行装置3100との間の通信路の通信負荷を考慮する。これにより、処理プロセス10は、処理負荷が低く、かつ、処理プロセス10を実行するプロセス実行装置3100との通信路の通信負荷が低いデータ格納装置3200に対して処理データ20の入力又は出力を行うようになる。結果として、処理プロセス10が処理データ20の入力又は出力にかかる時間はさらに短くなる。
 以下、本実施形態について、詳細に説明する。
<通信路負荷情報の詳細>
 通信路負荷情報は例えば図12に示す通信路負荷テーブル600を有する。ここで、プロセス実行装置3100とデータ格納装置3200の間の通信路は、直接両者を接続するバスや、ネットワークを介して両者を接続するネットワーク回線などである。通信路負荷テーブル600は、プロセスID610、データ格納装置ID620、及び通信負荷情報630を有する。通信路負荷テーブル600の各レコードは、プロセスID610で特定される処理プロセス10を実行するプロセス実行装置3100と、データ格納装置ID620で特定されるデータ格納装置3200の間の通信路の負荷を、通信路負荷情報630で示している。例えば図7の1行目のレコードは、プロセスID610=proc1の処理プロセス10を実行するプロセス実行装置3100と、データ格納装置ID620=DISK1のデータ格納装置3200を接続する通信路における単位時間当たりのデータ通信量が、50MB/sであることを示している。
 通信負荷情報630が示す情報は様々である。例えば、通信負荷情報630は、プロセス実行装置3100とデータ格納装置3200の間の通信路のデータ通信量を表す。その他にも例えば、プロセス実行装置3100とデータ格納装置3200の間の通信路上に通信装置が介在する場合、通信負荷情報630は、該通信路上に介在する通信装置の処理負荷を示してもよい。通信路上に介在する通信装置とは、プロセス実行装置3100とデータ格納装置3200を接続するネットワークを構成するための機器であり、例えばスイッチやルータなどである。また、通信装置は、サーバ計算機やPCであってもよい。通信装置の処理負荷は、例えば通信装置が処理すべきパケットを格納するパケットキューに格納されているパケットの数で表される。また、通信装置の処理負荷は、CPU等、通信装置の構成要素の処理負荷を示してもよい。
 その他にも例えば、通信負荷情報630は、プロセス実行装置3100とデータ格納装置3200の間の通信路上に介在する通信装置の数を示してもよい。通信装置を介してデータ通信を行う場合、通信装置において処理待ちの時間等が発生する。そのため、通信路上に介在する通信装置の数が多いほど、通信負荷は高いと考えられる。そこで、通信路負荷テーブル600は、通信負荷情報630に示す負荷情報として、通信装置の数を有してもよい。この場合について、図13を用いて説明する。C1は、プロセスID=proc1の処理プロセス10を実行するプロセス実行装置3100を実現するコンピュータであり、DISK1、2、及び3はデータ格納装置3200を実現するディスクであり、SW1及びSW2は通信装置を実現するスイッチである。この構成において、コンピュータC1とディスクDISK1の間の通信路上には、スイッチSW1が介在する。したがって、通信路負荷テーブル600において、「プロセスID610=proc1,データ格納装置ID620=DISK1」のレコードが示す通信負荷情報630の値は、「通信装置の数 1」である。また、コンピュータC1とディスクDISK2の間の通信路上には、スイッチSW1及びスイッチSW2が介在する。したがって、通信路負荷テーブル600において、「プロセスID610=proc1,データ格納装置ID620=DISK2」のレコードが示す通信負荷情報630の値は、「通信装置の数 2」である。
 通信路負荷テーブル600は、処理プロセス10が処理データ20を入力する場合の通信路の負荷と、出力する場合の通信路の負荷をそれぞれ分けて示してもよい。この場合、通信路負荷テーブル600は、例えば処理種別という列をさらに持つ。入力種別は、処理プロセス10がデータ格納装置3200から処理データ20を入力するのか、データ格納装置3200へ処理データ20を出力するのかを示す処理種別情報である。そして、通信負荷情報630は、「プロセスID610、データ格納装置ID620、処理種別」の組み合わせについて、通信負荷情報630を示す。
 通信路負荷テーブル600は、プロセスID610の代わりに、プロセス実行装置IDを有していてもよい。この場合、通信路負荷テーブル600は、プロセス実行装置IDで特定されるプロセス実行装置3100と、データ格納装置ID620で特定されるデータ格納装置の間の通信路の通信負荷を、通信負荷情報630で示す。分散システム制御装置2000は、各処理プロセス10に関して、通信路負荷テーブルを参照するために、例えば処理プロセス10とプロセス実行装置3100の対応付けを示す情報を取得する。この情報は例えば、前述した分散システム3000を管理する管理サーバから取得できる。
 通信路負荷情報を取得する方法は様々である。例えば、通信路負荷情報取得部2080は、各通信路の負荷状況を監視する監視システムによって自動生成される通信路負荷情報を取得する。また例えば、通信路負荷情報取得部2080は、分散システム3000の管理者が手動で入力した通信路負荷情報を取得してもよい。
 通信路負荷情報を取得する時点は様々である。例えば通信路負荷情報取得部2080は、入出力先情報生成部2020が入出力先情報の生成処理を開始した時に、通信路負荷情報を取得する。また、通信路負荷情報取得部2080は、定期的な時間間隔、又は不定期な時間間隔で、繰り返し通信路負荷情報を取得してもよい。また、通信路負荷情報取得部2080は、いずれかの通信路の通信負荷が変動した際に、その通信路の新たな通信負荷を示す通信路負荷情報を取得してもよい。この場合、通信路負荷情報取得部2080は、処理負荷が変動した通信路に関する通信路負荷情報のみを取得してもよいし、全ての通信路に関する通信路負荷情報を取得してもよい。
<入出力先情報生成処理の流れ>
 図14は、入出力先情報生成処理の流れの一例を示すフローチャートである。なお、図14において、図5と同符号のステップは、同様の処理を行うステップであるため、説明を適宜省略する。
 ステップS202において、入出力先情報生成部2020は、通信路負荷情報取得部2140から通信路負荷情報を取得する。
 ステップS204~ステップS210は、集合Rの各レコードについて行うループ処理Aである。ここで、集合Rは、候補テーブルから取得したレコードを有する集合である。ステップS204において、入出力先情報生成部2020は、集合Rの全てのレコードについてループ処理Aを行ったか否かをチェックする。まだループ処理Aを行っていないレコードがある場合、入出力先情報生成部2020は、集合Rから未処理のレコードを一つ選択し、ステップS206に進む。全てのレコードについてループ処理Aを終えている場合は、ステップS212に進む。
 ステップS206において、入出力先情報生成部2020は、上記選択したレコードに示されているデータ格納装置3200についてデータ格納装置負荷テーブル100を検索し、該データ格納装置3200の処理負荷情報を取得する。そして、入出力先情報生成部2020は、該データ格納装置3200が低負荷であるかを判定する。データ格納装置3200が低負荷であると判定した場合は、ステップS208に進み、上記選択したレコードを集合Sに加える。一方、データ格納装置3200が低負荷ではないと判定した場合は、ステップS210に進む。こうすることで、入出力先情報生成部2020は、低負荷なデータ格納装置3200を示すレコードのみを集合Sに加える。
 ステップS210は、ステップS204から始まるループ処理Aの終端であるため、ステップS204に戻る。
 ステップS212において、入出力先情報生成部2020は、集合Sの各レコードについて、通信路負荷テーブル600を検索し、処理プロセス10を実行するプロセス実行装置3100とデータ格納装置3200の間の通信路の通信負荷を取得する。そして、入出力先情報生成部2020は、集合Sに含まれるレコードを、通信負荷が低い順にソートする。
 ステップS214において、入出力先情報生成部2020は、集合Sに含まれるレコードを上記ソートした順に有する入出力先テーブルを生成し、入出力先情報とする。なお、入出力先テーブル300は、実施形態1と同様に、上記ソートしたレコードの一部で構成されていてもよい。
 ここで、通信路負荷テーブル600が示す通信負荷は、例えば図7に示す通信路負荷テーブル600のレコード1とレコード3のように異なる指標で示されている場合がある。この場合、通信負荷情報630の値をそのまま利用して集合Sのレコードをソートすることはできない。そこで、例えば、入出力先情報生成部2020は、通信負荷情報630が示す値を標準化し、標準化した値に基づいてレコードのソートを行う。
 本実施形態における入出力先情報生成処理は、上記フローチャートが示す処理に限定されない。上記フローチャートでは、まず、候補のデータ格納装置3200について、処理負荷が低いか否かの二値で判定を行う。その後、低負荷であると判定されたデータ格納装置3200の中から、プロセス実行装置3100との間の通信路の負荷が低いデータ格納装置3200を優先的に選択している。上記フローチャートが示す方法とは別の方法として、例えば次の方法がある。まず、各データ格納装置3200について、プロセス実行装置3100との間の通信路の通信負荷について、低負荷であるか否かの二値で判定を行う。そして、通信負荷が低負荷であると判定されたデータ格納装置3200の中から、処理負荷の低いデータ格納装置3200を優先的に選択する。その他にも例えば、候補のデータ格納装置3200について、処理負荷及び通信路の負荷の双方について、低負荷であるか否かの二値で判定を行い、処理負荷と通信路の負荷が共に低負荷であると判定されたデータ格納装置3200の集合を入出力先情報とする方法がある。
<変形例>
 本実施形態における分散システム制御装置2000は、実施形態1の分散システム制御装置2000と同様に、「処理プロセス10,処理データ20」の各組み合わせについてデータ格納装置3200を対応づけた入出力先情報を生成してもよい。同様に、分散システム制御装置2000は、「処理プロセス10,処理種別」の各組み合わせについてデータ格納装置3200を対応づけた入出力先情報を生成してもよい。さらに同様に、分散システム制御装置2000は、「処理プロセス10,処理種別,処理データ20」の各組み合わせについてデータ格納装置3200を対応づけた入出力先情報を生成してもよい。
<動作例2>
 以下、本実施形態に係る分散システム制御装置2000の動作について、具体例を用いて説明する。ただし、下記に示すのは分散システム制御装置2000の動作の一例であり、本実施形態は下記に示す動作例によって何らの限定も受けない。
 図15は、動作例2における分散システム制御装置2000及びその使用環境の機能構成を示す図である。ここで、図15において、図6又は図11と同符号の機能ブロックは、図6又は図11における機能ブロックと同様の機能を有するとして、説明を省略する。
 動作例2の分散システム3000は、通信路負荷情報提供部3600を有する。通信路負荷情報提供部3600は、プロセス実行装置3100とデータ格納装置3200の間の通信路の負荷情報を監視して通信路負荷情報を生成し、通信路負荷情報取得部2080へ送信する。
 動作例2における分散システム制御装置2000及び分散システム3000のハードウエア構成及び動作状況は、動作例1と同様に図7で表される。そのため、説明を省略する。
 入出力先情報生成部2020は、動作例1と同様に、「処理プロセス10-p2,入力処理、処理データ20-D1」の組み合わせに対してデータ格納装置3200を対応づける入出力先情報を生成する。以下、その具体的な動作を説明する。また、動作例1と同様に、処理データ20-D1は、ディスクDISK1~ディスクDISK4のそれぞれに格納されているとする。
 候補情報取得部2060が取得する候補情報のうち、処理プロセス10-p2に関する情報のみを示したテーブルは、動作例1の場合と同様に、図8の候補テーブル200-1で表される。データ格納装置負荷情報取得部2040が取得するデータ格納装置負荷情報は、動作例1と同様に、図9のデータ格納装置負荷テーブル100-1で表される。
 通信路負荷情報取得部2080は、通信路負荷情報提供部3600から、通信路負荷情報を取得する。図16に示す通信路負荷テーブル600-2は、取得した通信路負荷情報のうち、処理プロセス10-p2を実行するコンピュータC1と各ディスクの間の通信路の負荷を示すテーブルである。
 入出力先情報生成部2020はまず、候補テーブル200から候補のデータ格納装置3200を取得し、集合Rに加える。集合Rは、動作例1と同様に、候補テーブル200-1の中のレコード1~4を有する。したがって、候補のデータ格納装置3200はディスクDISK1~DISK4である。これは、動作例1と同様である。
 次に、入出力先情報生成部2020は、候補であるディスクDISK1~DISK4のそれぞれについてデータ格納装置負荷情報を参照し、ディスクDISK1~DISK4がそれぞれ低負荷であるか否かを判定する。ここで、入出力先情報生成部2020は、データ転送量が100MB/s未満のディスクを低負荷と判定するとする。この場合、ディスクDISK1は高負荷と判定され、ディスクDISK2~4は低負荷と判定される。入出力先情報生成部2020は、集合Rが含むレコードのうち、処理負荷が低負荷と判定されたデータ格納装置3200を示すレコードを、集合Sに加える。本動作例の場合、候補テーブル200-1のレコード2~4が、集合Sに加わる。
 そして、入出力先情報生成部2020は、通信路負荷情報を参照し、集合Sのレコードを、通信路の負荷が低い順にソートする。そして、上記ソートしたレコードから成る入出力先テーブル300-2を生成する(図17参照)。
 入出力先通知部3440は、上記入出力先テーブル300-2を受信する。そして、受信した入出力先テーブル300-2に従い、処理プロセス10-p2に対して通知を行う。本動作例の場合、管理サーバ3400は、処理プロセス10-p2に対し、処理データ20-D1の入力をディスクDISK4から行うように指示する。指示を受けた処理プロセス10-p2は、処理データ20-D1をディスクDISK4から入力する。
 以上の動作により、処理プロセス10-p2は、処理データ20-D1の入力を行えるディスクのうち、処理負荷が低く、かつ最も通信負荷が低いディスクDISK4から、処理データ20-D1の入力を行う。そのため、処理プロセス10-p2による処理データ20-D1の入力にかかる時間が短くなる。
<作用・効果>
 以上の構成により、本実施形態によれば、入出力先情報生成部2020は、処理プロセス10に関する候補情報が示す候補のデータ格納装置3200の中から、データ格納装置負荷情報が示す処理負荷が低く、かつ、通信路負荷情報が示す該処理プロセス10を実行するプロセス実行装置3100との間の通信路の通信負荷が低いデータ格納装置3200を優先して選択し、該処理プロセス10と対応づける。これにより、処理プロセス10は、処理負荷が低く、かつ、該処理プロセス10を実行するプロセス実行装置3100との間の通信路の通信負荷が低いデータ格納装置3200に対して処理データ20の入力又は出力を行う。その結果、処理プロセス10による処理データ20の入力又は出力にかかる時間がさらに短くなる。
[実施形態3]
<概要>
 図18は、実施形態3に係る分散システム制御装置2000の構成を、その使用環境と共に示した図である。図18において、図1と同符号の機能ブロックは、図1と同様の機能を有するとし、説明を省略する。また図18おける分散システム3000の構成は、例えば図1における分散システム3000の構成と同じである。そのため図18において、分散システム3000の構成は省略する。
 本実施形態に係る分散システム3000は、通信装置3300を有する。通信装置3300は、プロセス実行装置3100とデータ格納装置3200の通信路の間に介在する装置である。通信装置3300は、例えばスイッチやルータなどのネットワーク機器である。
 実施形態3に係る分散システム制御装置2000は、ネットワーク構成情報取得部2100とプロセス実行装置割当情報取得部2110を有する。ネットワーク構成情報取得部2100は、分散システム3000が有するプロセス実行装置3100、データ格納装置3200及び通信装置3300が、互いにどのプロセス実行装置3100、データ格納装置3200及び通信装置3300と接続されているのかを示すネットワーク構成情報を取得する。プロセス実行装置割当情報取得部2110は、処理プロセス10と、該処理プロセス10を実行するプロセス実行装置3100の対応付けを示す情報であるプロセス実行装置割当情報を取得する。
  本実施形態における通信路負荷情報は、分散システム3000が有する各計算機間の通信路における通信負荷を示す。
 本実施形態における入出力先情報生成部2020は、候補情報、データ格納装置負荷情報、ネットワーク構成情報、及びプロセス実行装置割当情報に基づいて、処理プロセス10と、該処理プロセス10が処理データ20の入力又は出力を行うデータ格納装置3200を対応づける入出力先情報を生成する。具体的には、入出力先情報生成部2020は、処理プロセス10について候補情報を参照し、該処理プロセス10が処理データ20を入力又は出力できるデータ格納装置3200の候補を取得する。そして、入出力先情報生成部2020は、候補のデータ格納装置3200の中から、以下の3つの条件を満たすデータ格納装置3200を優先して選択して処理プロセス10と対応づけ、入出力先情報を生成する。第1の条件は、データ格納装置3200と、上記処理プロセス10を実行するプロセス実行装置3100との間の通信路上に介在する通信装置の数が少ないことである。上記通信装置の数は、ネットワーク構成情報及びプロセス実行装置割当情報から算出される。第2の条件は、データ格納装置負荷情報が示すデータ格納装置3200の処理負荷が低いことである。第3の条件は、通信路負荷情報が示す上記プロセス実行装置3100とデータ格納装置3200との間の通信路の通信負荷が低いことである。
 以上により、本実施形態における分散システム制御装置2000は、実施形態2の分散システム制御装置2000と異なり、処理プロセス10を実行するプロセス実行装置3100との間の通信路上に介在する通信装置3300の数が少ないデータ格納装置3200を優先して選択する。こうすることで、処理プロセス10は、データ格納装置3200との間の通信路上に介在する通信装置の数が少ないデータ格納装置3200に対して処理データ20の入力又は出力を行う。その結果、プロセス実行装置3100がデータ格納装置3200に対してデータ入出力を実行する際に、負荷を与える通信装置3300の数が少なくなる可能性が高くなる。また、データ格納装置3200との間に介在する通信装置3300の故障等により、データ格納装置3200に対して処理データ20の入力又は出力を行えなくなる可能性が低くなる。
 以下、本実施形態の詳細を述べる。
<プロセス実行装置割当情報の詳細>
 プロセス実行装置割当情報は、例えば図19に示すプロセス実行装置割当テーブル700を有する。プロセス実行装置割当テーブル700は例えば、処理プロセス10の識別子を示すプロセスID710と、プロセス実行装置3100の識別子を示すプロセス実行装置ID720を有する。プロセス実行装置割当テーブル700の各レコードは、プロセスID710で特定される処理プロセス10が、プロセス実行装置ID720で特定されるプロセス実行装置3100上で実行されていることを示す。
<ネットワーク構成情報の詳細>
 ネットワーク構成情報は、例えば図20に示すネットワーク構成テーブル800を有する。ネットワーク構成テーブル800は例えば、第1計算機ID810及び第2計算機ID820を有する。ネットワーク構成テーブル800の各レコードは、第1計算機ID810のIDで特定される計算機と、第2計算機ID820で特定される計算機とが、通信装置3300を介さずに互いに直接接続されていることを表す。
 ここで図20に示すネットワーク構成テーブル800は、図13に示す分散システム3000の構成を表している。レコード1~3はそれぞれ、スイッチSW1がコンピュータC1、ディスクDISK1、スイッチSW2に接続されていることを示している。そして、レコード4と5はそれぞれ、スイッチSW2がディスクDISK2、ディスクDISK3に接続されていることを示している。
 ネットワーク構成情報取得部2100がネットワーク構成情報を取得する方法は様々である。例えば通信路負荷情報生成部2160は、分散システム3000の管理者から予めネットワーク構成情報を有するファイル等の入力を受け付けておき、上記ファイル等を参照することでネットワーク構成情報を取得する。その他にも例えば、ネットワーク構成情報取得部2100は、分散システム3000が有する各計算機から、該計算機が他のどの計算機と接続されているかの情報を取得し、取得した情報に基づいてネットワーク構成情報を構成してもよい。例えば図13に示す分散システム3000において、ネットワーク構成情報取得部2100は、スイッチSW1から、スイッチSW1がどの計算機と接続されているかを示す情報を取得することで、図20に示すネットワーク構成テーブル800のレコード1~3までを取得できる。さらに、ネットワーク構成情報取得部2100は、スイッチSW2から、スイッチSW2がどの計算機と接続されているかを示す情報を取得することで、図20に示すネットワーク構成テーブル800のレコード4及び5を取得できる。そして、ネットワーク構成情報取得部2100は、スイッチSW1から取得した情報とスイッチSW2から取得した情報を合わせることにより、図20に示すネットワーク構成テーブル800を構成することができる。
<通信路負荷情報の詳細>
 本実施形態における通信路負荷情報は、例えば図21に示す通信路負荷テーブル1000を有する。通信路負荷テーブル1000は、例えば第1計算機ID1010、第2計算機ID1020、及び通信負荷情報1030を有する。通信路負荷テーブルは、第1計算機ID1010で特定される計算機と、第2計算機ID1020で特定される計算機の間の通信路の通信負荷を、通信負荷情報1030で示す。通信負荷情報1030が示す情報は様々である。通信負荷情報1030は、例えば実施形態2における通信路負荷テーブル600が示す通信路負荷情報630と同様の情報を示す。また、通信路負荷テーブル1000は、第1計算機ID1010と第2計算機ID1020の間の通信路の処理負荷を通信方向ごとに分けて示してもよい。つまり、通信路負荷テーブル1000は、第1計算機ID1010から第2計算機ID1020へ処理データ20を送信する場合の処理負荷と、第2計算機ID1020から第1計算機ID1010へ処理データ20を送信する場合の処理負荷を分けて示してもよい。この場合、通信路負荷テーブル1000は、例えば通信方向という列をさらに持つ。そして、通信路負荷情報1030は、「第1計算機ID1010、第2計算機ID1020、通信方向」の組み合わせについて、通信路負荷情報1030を示す。また、第1計算機ID1010は送信側の計算機、第2計算機ID1020は受信側の計算機を表すと定めておく方法もある。こうすれば、例えば、「第1計算機ID1010=PC1、第2計算機ID1020=SW1」であるレコードは、PC1からSW1へ処理データ20を送信する方向におけるPC1とSW1の間の通信路の通信負荷を示す。一方、「第1計算機ID1010=SW1、第2計算機ID1020=PC1」であるレコードは、SW1からPC1へ処理データ20を送信する方向におけるPC1とSW1の間の通信路の通信負荷を示す。
<入出力先情報生成処理>
 入出力先情報生成部2020は、候補情報、ネットワーク構成情報、プロセス割当情報、通信路負荷情報、データ格納装置負荷情報に基づき、処理プロセス10に対し、以下の3つの条件を満たすデータ格納装置3200を優先的に対応づける入出力先情報を生成する。第1の条件は、1)データ格納装置3200と該処理プロセス10を実行するプロセス実行装置3100との間の通信路上に介在する通信装置の数が少ないことである。第2の条件は、2)データ格納装置3200と該処理プロセス10を実行するプロセス実行装置3100との間の通信路の通信負荷が低いことである。そして、第3の条件は、3)データ格納装置3200の処理負荷が低いことである。以下、上記1)~3)の全ての条件を満たすデータ格納装置3200を優先して選択する方法について、詳しく説明する。
 まず入出力先情報生成部2020は、ネットワーク構成情報、データ格納装置負荷情報、通信路負荷情報に基づいて、図22に示す負荷判定テーブル900を作成する。負荷判定テーブル900の作成方法については、後述する。負荷判定テーブル900は、通信装置ID910及びデータ格納装置IDリスト920を有する。負荷判定テーブル900の各レコードは、通信装置ID910で特定される通信装置3300と以下の3つの条件を満たすデータ格納装置3200を対応付ける。第1の条件は、データ格納装置3200が、該通信装置3300と通信可能に接続されていることである。第2の条件は、データ格納装置負荷情報が示すデータ格納装置3200の処理負荷が低いことである。第3の条件は、通信路負荷情報が示すデータ格納装置3200と該通信装置3300との間の通信路の通信負荷が低いことである。
 図23及び図24は、入出力先情報生成部2020が、負荷判定テーブルを作成する処理(以下、負荷判定テーブル作成処理)の流れの一例を示すフローチャートである。ここで、入出力先情報生成部2020は、図23記載の各ステップを行った後、図24記載の各ステップを行うことで、負荷判定テーブルを作成する。
 ステップS301において、入出力先情報生成部2020は、データ格納装置負荷情報取得部2040からデータ格納装置負荷情報を取得する。ステップS302において、入出力先情報生成部2020は、通信路負荷情報取得部2080から通信路負荷情報を取得する。ステップS303において、入出力先情報生成部2020は、ネットワーク構成情報取得部2100からネットワーク構成情報を取得する。
 ステップS304において、入出力先情報生成部2020は、ネットワーク構成情報を参照し、分散システム3000が有する全てのデータ格納装置3200のIDを集合Rに加える。
 ステップS306~ステップS322は、入出力先情報生成部2020が、集合Rに含まれる各データ格納装置3200の各IDについて行うループ処理Aである。ステップS306において、入出力先情報生成部2020は、集合Rに含まれる全てのデータ格納装置3200のIDについてループ処理Aを行ったかをチェックする。まだループ処理Aの対象としていないIDがある場合、入出力先情報生成部2020は、上記まだ対象としていないIDの中から1つを選択する。ここで、選択したIDをiとする。また、IDがiのデータ格納装置3200を、データ格納装置3200-iと表記する。集合Rに含まれる全てのデータ格納装置3200のIDについてループ処理Aを終えている場合は、図23のステップS324に進む。
 ステップS308において、入出力先情報生成部2020は、データ格納装置3200-iについてデータ格納装置負荷情報を参照し、データ格納装置3200-iの処理負荷が低負荷か否かを判定する。上記処理負荷が低負荷である場合、ステップS310に進む。一方、上記処理負荷が低負荷でない場合、ステップS321に進む。
 ステップS310において、入出力先情報生成部2020は、ネットワーク構成情報が示す通信装置3300の中から、他の通信装置3300を介さずに直接データ格納装置3200-iと接続されている通信装置3300を全て選択し、集合Sに加える。
 ステップS312~ステップS320は、集合Sに含まれる各通信装置3300のIDについて行うループ処理Bである。ステップS312において、集合Sに含まれる全ての通信装置3300のIDについてループ処理Bを行ったかをチェックする。まだループ処理Bの対象としていないIDがある場合、入出力先情報生成部2020は、まだループ処理Bの対象としていないIDの中から1つを選択し、ステップS314に進む。ここで、選択したIDをjとする。また、IDがjである通信装置3300を通信装置3300-jと表記する。集合Sに含まれる全ての通信装置3300のIDについてループ処理Bを終えている場合は、ステップS321に進む。
 ステップS314において、入出力先情報生成部2020は、通信路負荷情報を参照し、データ格納装置3200-iと通信装置3300-jの間の通信路の通信負荷が低負荷か否かを判定する。上記通信負荷が低負荷である場合、ステップS316に進む。一方、上記通信負荷が低負荷でない場合、ステップS320に進む。
 ステップS316において、入出力先情報生成部2020は、負荷判定テーブル900を参照し、通信装置ID910=jであるレコードのデータ格納装置IDリスト920に、データ格納装置3200-iのIDであるiを追加する。ここで、負荷判定テーブル900が通信装置ID910=jであるレコードを有しない場合、入出力先情報生成部2020は、負荷判定テーブル900に、「通信装置ID910=j,データ格納装置IDリスト920=i」であるレコードを新規登録する。
 ステップS318において、通信装置3300-jのIDであるjを、集合Tに加える。
 ステップS320は、ループ処理Bの終端である。そのため、ステップS312に戻る。
 ステップS321において、入出力先情報生成部2020は、集合Sを空にする。
 ステップS322は、ループ処理Aの終端である。そのため、ステップS306に戻る。
 ステップS324以降の処理は、図24のフローチャートに示す処理である。
 ステップS324~ステップS344は、集合Tが要素(通信装置3300のID)を有する間、繰り返し行うループ処理Cである。ステップS324において、入出力先情報生成部2020は、集合Tが通信装置3300のIDを有するかチェックする。集合Tが通信装置3300のIDを有する場合、ステップS326に進む。集合Tが通信装置3300のIDを有しない場合、負荷判定テーブル作成処理を終了する。
 ステップS326において、入出力先情報生成部2020は、集合Tが有する要素から成る集合Uを生成し、集合Tを空にする。
 ステップS328~ステップS342は、集合Uに含まれる通信装置3300のIDのそれぞれについて行うループ処理Dである。ステップS328において、集合Uに含まれる全ての通信装置3300のIDについてループ処理Dを行ったかをチェックする。まだループ処理Dの対象としていないIDがある場合、入出力先情報生成部2020は、まだループ処理Dの対象としていないIDの中から1つを選択し、ステップS329に進む。ここで、選択したIDをkとする。集合Uに含まれる全ての通信装置3300のIDについてループ処理Dを終えている場合は、ステップS344に進む。
 ステップS329において、入出力先情報生成部2020は、通信装置3300-kを集合Xに加える。集合Xは、ループ処理Dの対象として選択済みの通信装置3300の集合である。
 ステップS330において、入出力先情報生成部2020は、通信機器3300-kと通信機器3300を介さずに直接接続されており、かつ、集合Xに含まれない全ての通信装置のIDを、集合Vに加える。
 ステップS332~ステップS340は、集合Vに含まれるIDを持つ各通信装置3300について行うループ処理Eである。ステップS332において、入出力先情報生成部2020は、集合Vに含まれる全ての通信装置3300のIDについてループ処理Eを行ったかをチェックする。まだループ処理Eの対象としていないIDがある場合、入出力先情報生成部2020は、まだループ処理Eの対象としていないIDの中から1つを選択し、ステップS334に進む。ここで、選択したIDをnとする。集合Vに含まれる全ての通信装置3300のIDについてループ処理Eを終えている場合は、ステップS342に進む。
 ステップS334において、入出力先情報生成部2020は、通信路負荷情報を参照し、通信装置3300-kと通信装置3300-nの間の通信路の通信負荷が低負荷であるか否かを判定する。上記通信負荷が低負荷である場合、ステップS336に進む。一方、上記通信負荷が低負荷でない場合、ステップS340に進む。
 ステップS336において、入出力先情報生成部2020は、負荷判定テーブル900を参照し、通信装置ID910=nであるレコードのデータ格納装置IDリスト920に、通信装置ID910=kであるレコードのデータ格納装置IDリスト920が示すデータ格納装置3200のIDのリストを追加する。ここで、負荷判定テーブル900が通信装置ID910=nであるレコードを有しない場合は、入出力先情報生成部2020は、負荷判定テーブル900に、通信装置ID910=nであり、データ格納装置IDリスト920に、通信装置ID910=kであるレコードのデータ格納装置IDリスト920が示すデータ格納装置3200のIDのリストを有するレコードを新規登録する。
 ステップS338において、集合Tに、通信装置3300-nのIDであるnを加える。
 ステップS340は、ループ処理Eの終端である。そのため、ステップS332に戻る。
 ステップS342は、ループ処理Dの終端である。そのため、ステップS328に戻る。
 ステップS344は、ループ処理Cの終端である。そのため、ステップS324に戻る。
 以上の処理により、入出力先情報生成部2020は、負荷判定テーブル900を作成する。なお、上記に示す処理の流れはあくまで一例であるため、負荷判定テーブル作成記処理は、上記に限定されない。
 次に、入出力先情報生成部2020が、負荷判定テーブル900を利用して、入出力先情報を生成する処理の流れを説明する。
 図25及び図26は、入出力先情報生成部2020が行う入出力先情報生成処理の流れである。入出力先情報生成部2020は、図25記載の各ステップにおける処理を行った後、図26記載の各ステップにおける処理を行うことで、入出力先情報を生成する。なお、入出力先情報生成部2020は、入出力先情報生成処理の前に負荷判定テーブル900を作成するため、データ格納装置負荷情報、通信路負荷情報、及びネットワーク構成情報を取得済みである。
 ステップS350において、入出力先情報生成部2020は、候補情報取得部2060から候補情報を取得する。ステップS352において、入出力先情報生成部2020は、候補情報が有する候補テーブルから、対象とする処理プロセス10と対応づけるデータ格納装置3200の候補を取得し、集合Rに加える。
 ステップS354において、入出力先情報生成部2020は、プロセス実行装置割当情報を参照し、対象の処理プロセス10を実行しているプロセス実行装置3100のIDを取得する。ここで、上記プロセス実行装置3100のIDをiとし、上記プロセス実行装置3100をプロセス実行装置3100-iと表記する。そして、入出力先情報生成部2020は、ネットワーク構成情報を取得し、プロセス実行装置3100-iと、通信装置3300を介さずに直接接続されているデータ格納装置3200のIDを全て取得し、集合Sに加える。
 ステップS356~ステップS362は、集合Sに含まれるIDを持つ各データ格納装置3200について行うループ処理Aである。ステップS356において、入出力先情報生成部2020は、集合Sに含まれる全てのIDについてループ処理Aを行ったかをチェックする。まだループ処理Aの対象としていないIDがある場合、入出力先情報生成部2020は、まだループ処理Aの対象としていないIDの中から1つを選択し、ステップS358に進む。ここで、選択したIDをjとする。集合Sに含まれる全てのIDについてループ処理Aを終えている場合は、ステップS364に進む。
 ステップS358において、入出力先情報生成部2020は、データ格納装置3200-jについて、データ格納装置負荷情報が示す処理負荷が低負荷であり、かつ、通信路負荷情報が示すプロセス実行装置3100-iとの間の通信路の通信負荷が低負荷であるかを判定する。上記処理負荷及び通信負荷が低負荷である場合は、ステップS360に進む。上記処理負荷及び通信負荷のいずれかが低負荷でない場合は、ステップS362に進む。
 ステップS360において、入出力先情報生成部2020は、データ格納装置3200-jのIDであるjを、集合Tに加える。集合Tは、入出力先情報に含めるデータ格納装置3200のIDを格納するための集合である。
 ステップS362は、ループ処理Aの終端である。そのため、ステップS356に戻る。
 ステップS364において、入出力先情報生成部2020は、ネットワーク構成情報と通信路負荷情報を参照し、プロセス実行装置3100-iと通信装置3300を介さずに直接接続されており、かつプロセス実行装置3100-iとの間の通信路の通信負荷が低い通信装置3300のIDを全て集合Uに加える。
 ステップS366以降は、図26記載の処理である。
 ステップS366~ステップS382は、集合Uが要素(通信装置3300のID)を有する間、繰り返し行うループ処理Bである。ステップS366において、入出力先情報生成部2020は、集合Uが通信装置3300のIDを有するかチェックする。集合Uが通信装置3300のIDを有する場合、ステップS368に進む。集合Uが通信装置3300のIDを有しない場合、ステップS384に進む。
 ステップS368において、入出力先情報生成部2020は、集合Uと同じ要素から成る集合Vを生成し、集合Uを空にする。
 ステップS370~ステップS380は、集合Vに含まれるIDを持つ各通信装置3300について行うループ処理Cである。ステップS370において、入出力先情報生成部2020は、集合Vに含まれる全てのIDについてループ処理Cを行ったかをチェックする。まだループ処理Cの対象としていないIDがある場合、入出力先情報生成部2020は、まだループ処理Cの対象としていないIDの中から1つを選択し、ステップS371に進む。ここで、選択したIDをkとする。集合Vに含まれる全てのIDについてループ処理Cを終えている場合は、ステップS382に進む。
 ステップS371において、入出力先情報生成部2020は、通信機器3300-kのIDであるkを集合Xに加える。集合Xは、ループ処理Cの処理対象として選択済みである通信装置3300のIDを全て有する集合である。
 ステップS372において、入出力先情報生成部2020は、通信装置ID910=kをキーとして、負荷判定テーブル900を検索する。
 ステップS373において、入出力先情報生成部2020は、ステップS372で通信装置ID910=kのレコードが取得できたかを判定する。上記レコードを取得できた場合は、ステップS374に進む。上記レコードを取得できなかった場合は、ステップS378に進む。
 ステップS374において、入出力先情報生成部2020は、上記取得したレコードのデータ格納装置IDリスト920が示すリストが空であるかを判定する。上記リストが空でない場合、ステップS376に進む。上記リストが空である場合は、ステップS378に進む。
 ステップS376において、入出力先情報生成部2020は、上記で取得したリストに含まれるデータ格納装置3200のIDを全て集合Tに加える。
 ステップS378において、入出力先情報生成部2020は、ネットワーク構成情報及び通信路負荷情報を参照し、下記3つの条件を満たす通信装置3300を全て選択して、そのIDを集合Uに加える。1つ目の条件は、選択する通信装置3300が集合Xに含まれないことである。2つ目の条件は、選択する通信装置3300が、通信装置3300-kと、他の通信装置3300を介さずに直接接続されていることである。3つ目の条件は、通信機器3300-kとの間の通信路の通信負荷が低いことである。
 ステップS380は、ループ処理Cの終端である。そのため、ステップS370に戻る。
 ステップS382は、ループ処理Bの終端である。そのため、ステップS366に戻る。
 ステップS384において、入出力先情報生成部2020は、対象の処理プロセス10と、集合Tが有するデータ格納装置3200とを対応づけた入出力先テーブル300を生成し、入出力先情報を生成する。
 ここで、入出力先情報生成部2020は、処理プロセス10を実行するプロセス実行装置3100と、対象の処理プロセス10に対応づけるデータ格納装置3200との間の通信路上に介在する通信装置3300の数に、上限値を設けてもよい。この場合、入出力先情報生成部2020は、例えば上記ステップS370~ステップS380で行われるループ処理Cを行う回数の上限を、上記通信路の数の上限値とする。こうすることで、入出力先情報生成部2020は、対象の処理プロセス10を実行しているプロセス実行装置3100との間に介在する通信装置の数が少ないデータ格納装置3200を優先して選択しつつ、入出力先情報生成処理にかかる時間を短くすることができる。
 以上が、入出力先情報生成部2020が、負荷判定テーブル900を利用して入出力先情報を生成する処理の流れである。なお、図25及び図26で示したフローチャートは、入出力先情報生成処理の一例である。負荷判定テーブル900を利用した入出力先情報生成処理は、上記の処理に限定されない。
 また、本実施形態における入出力先情報生成処理は、負荷判定テーブル900を利用する方法に限定されない。例えば入出力先情報生成部2020は、候補のデータ格納装置3200を、処理プロセス10を実行するプロセス実行装置3100との間に介在する通信装置の数が少ないものから順番に選択し、処理負荷が低いか否か、及び、該プロセス実行装置3100との間の通信路の通信負荷が低いか否かの判定を行う。そして、処理負荷が低く、かつ該プロセス実行装置3100との間の通信負荷が低いデータ格納装置3200を該処理プロセス10に対応づけ、入出力先情報を生成する。この方法において、入出力先情報生成部2020は、上記判定の対象であるデータ格納装置3200を選択する際、データ格納装置3200と処理プロセス10を実行するプロセス実行装置3100との間に介在する通信装置の数に上限を設けてもよい。この場合、入出力先情報生成部2020は、該プロセス実行装置3100との間に介在する通信装置の数が上記上限値以下であるデータ格納装置3200のみ、該処理プロセス10と対応づける。こうすることで、上記判定の対象とするデータ格納装置3200の数を減らすことができるため、入出力先情報生成処理にかかる時間が短くなる。
<変形例>
 本実施形態における分散システム制御装置2000は、実施形態1の分散システム制御装置2000と同様に、「処理プロセス10,処理データ20」の各組み合わせについてデータ格納装置3200を対応づけた入出力先情報を生成してもよい。同様に、分散システム制御装置2000は、「処理プロセス10,処理種別」の各組み合わせについてデータ格納装置3200を対応づけた入出力先情報を生成してもよい。さらに同様に、分散システム制御装置2000は、「処理プロセス10,処理種別,処理データ20」の各組み合わせについてデータ格納装置3200を対応づけた入出力先情報を生成してもよい。
<動作例3>
 以下、本実施形態に係る分散システム制御装置2000の動作について、具体例を用いて説明する。ただし、下記に示すのは分散システム制御装置2000の動作の一例であり、本実施形態は下記に示す動作例によって何らの限定も受けない。
 図27は、動作例2における分散システム制御装置2000及びその使用環境の機能構成を示す図である。ここで、図27において、図15又は図18と同符号の機能ブロックは、図15又は図18における機能ブロックと同様の機能を有するとして、説明を省略する。
 動作例3の管理サーバ3400は、ネットワーク構成情報提供部3450及びプロセス実行装置割当情報提供部3460を有する。ネットワーク構成情報提供部3450は、分散システム3000を構成する各計算機の接続関係を示すネットワーク構成情報を、ネットワーク構成情報取得部2100へ提供する。プロセス実行装置割当情報提供部3460は、処理プロセス10と、プロセス実行装置3100を実現する各コンピュータの対応付けを示すプロセス実行装置割当情報を、プロセス実行装置割当情報取得部2110に提供する。
 図28は、動作例3における分散システム制御装置2000及び分散システム3000のハードウエア構成及び動作状況を示す図である。コンピュータC1~C8は、プロセス実行装置3100として機能する。ディスクDISK1~DISK8は、データ格納装置3200として機能する。また、ディスクDISK1~DISK8はそれぞれ、コンピュータC1~C8の内部に設けられている。スイッチSW1~SW7は、通信装置3300として機能する。各計算機の接続関係は、図28に示す通りである。
 動作例3において、処理プロセス10-p1はコンピュータC1上で実行されている。処理プロセスp1は、ディスクDISK1へ処理データ20-D2をディスクDISK1へ出力中である。
 ここで、管理サーバによってコンピュータC1に対し、新たに処理プロセス10-p2が割り当てられたとする。処理プロセス10-p2は、処理データ20-D1の入力を伴う処理を行う。そこで、分散システム制御装置2000は、「処理プロセス10-p2,入力処理、処理データ20-D1」の組み合わせに対してデータ格納装置3200を対応づける入出力先情報を生成する。以下、その具体的な動作を説明する。ここで、処理プロセス10-p2が入力する処理データ20-D1は7つに複製されており、ディスクDISK4以外の全てのディスクにそれぞれ格納されている。
 まず、本動作例における負荷判定テーブル900の作成処理について説明する。
 データ格納装置負荷情報取得部2040は、データ格納装置負荷情報提供部3500からデータ格納装置負荷情報を取得する。図29のデータ格納装置負荷テーブル100-3は、ディスクDISK1~DISK8の処理負荷情報を示すテーブルである。ここで、本動作例において、処理負荷情報120が示す処理負荷は、低負荷であるか高負荷であるかという2値で表されている。
 通信路負荷情報取得部2080は、通信路負荷情報提供部3600から通信路負荷情報を取得する。図30の通信路負荷テーブル1000-3は、各計算機間の通信路の通信負荷を示している。ここで、本動作例において、通信負荷情報1030が示す通信負荷は、低負荷であるか高負荷であるかという2値で表されている。
 プロセス実行装置割当情報取得部2110は、プロセス実行装置割当情報提供部3460から、プロセス実行装置割当情報を取得する。図31に示すプロセス実行装置割当テーブル700-3は、プロセス実行装置割当情報取得部2110が取得するプロセス実行装置割当情報のうち、処理プロセス10-p2に関する情報のみを示したテーブルである。
 図32は、ネットワーク構成情報取得部2100が取得するネットワーク構成情報が有するネットワーク構成テーブル800-3を示している。
 入出力先情報生成部2020は、これらの情報に基づいて負荷判定テーブル作成処理を行う。そして、図33に示す負荷判定テーブル900-3を生成する。ここで、ディスクDISK2とディスクDISK5を例にとり、負荷判定テーブル900-3の作成過程について説明する。
 まず、ディスクDISK2について説明する。入出力先情報生成部2020は、ディスクDISK2について、データ格納装置負荷テーブル100-3を参照する。その結果、ディスクDISK2は低負荷であると判定される。そして、入出力先情報生成部2020は、ネットワーク構成テーブル800-3を参照し、ディスクDISK2と直接接続されているスイッチは、スイッチSW1であると割り出す。そして、入出力先情報生成部2020は、通信路負荷テーブル1000-3を参照し、ディスクDISK2とスイッチSW1との間の通信路の通信負荷は低いと判定する。そこで、入出力先情報生成部2020は、通信装置ID910=SW1である負荷判定テーブル900-3のレコードのデータ格納装置IDリスト920に、ディスクDISK2を加える。さらに、入出力先情報生成部2020は、ネットワーク構成テーブル800-3を参照し、スイッチSW1に直接接続されている上位のスイッチとして、スイッチSW5を割り出す。そして、通信路負荷テーブル1000-3を参照し、スイッチSW1とSW5の間の通信路の通信負荷が低負荷であると判定する。したがって、入出力先情報生成部2020は、通信装置ID910=SW5である負荷判定テーブル900-3のレコードのデータ格納装置IDリスト920にもDISK2を加える。同様にして、ディスクDISK2は、通信装置ID910=SW5である負荷判定テーブル900-3のレコードのデータ格納装置IDリスト920にも加えられる。
 次に、ディスクDISK5について説明する。入出力先情報生成部2020は、ディスクDISK5について、データ格納装置負荷テーブル100-3を参照する。その結果、ディスクDISK5は低負荷であると判定される。そして、入出力先情報生成部2020は、ネットワーク構成テーブル800-3を参照し、ディスクDISK5と直接接続されているスイッチは、スイッチSW3であると割り出す。そして、入出力先情報生成部2020は、通信路負荷テーブル1000-3を参照し、ディスクDISK5とスイッチSW3との間の通信路の通信負荷は低いと判定する。そこで、入出力先情報生成部2020は、通信装置ID910=SW3である負荷判定テーブル900-3のレコードのデータ格納装置IDリスト920に、ディスクDISK5を加える。さらに、入出力先情報生成部2020は、ネットワーク構成テーブル800-3を参照し、スイッチSW3に直接接続されている上位のスイッチとして、スイッチSW6を割り出す。次に、通信路負荷テーブル1000-3を参照し、スイッチSW3とSW6の間の通信路の通信負荷が高負荷であると判定する。したがって、入出力先情報生成部2020は、ディスクDISK5に関する処理を終了する。その結果、ディスクDISK5は、負荷判定テーブル900-3のうち、通信装置ID910=SW6のレコード、及び通信装置ID910=SW7であるレコードには加えられない。
 以上のように、入出力先情報生成部2020は、各ディスクについて、ディスクの処理負荷、ディスクに直接接続されているスイッチとディスクとの間の通信路の通信負荷、スイッチとそのスイッチに直接接続されている上位のスイッチとの間の通信路の通信負荷をそれぞれ判定していき、負荷判定テーブル900-3を作成する。
 次に、本動作例における分散システム制御装置2000が、負荷判定テーブル900-3を用いて入出力先情報生成処理を行う流れを説明する。
 候補情報取得部2060は、候補情報提供部3420から、候補情報を取得する。図34に示す候補テーブル200-3は、取得した候補情報が有する候補テーブル200のうち、処理プロセス10-p2に関する情報のみを示したテーブルである。さらに、プロセス実行装置割当情報取得部2110は、プロセス実行装置割当情報提供部3640からプロセス実行装置割当情報を取得する。前述したように、プロセス実行装置割当情報は、処理プロセス10-p2の割当先はコンピュータC1であるという情報を有している。
 入出力先情報生成部2020はまず、候補情報取得部2060から、候補情報を取得する。そして、入出力先情報生成部2020は、プロセス実行装置割当テーブル700-3を参照し、処理プロセス10―p2を実行しているプロセス実行装置3100がコンピュータC1であることを割り出す。
 次に、入出力先情報生成部2020は、ネットワーク構成テーブル800-3を参照し、ディスクDISK1がコンピュータC1に直接接続されていることを割り出す。そして、入出力先情報生成部2020は、データ格納装置負荷テーブル100-3を参照し、ディスクDISK1の処理負荷情報を得る。その結果、ディスクDISK1は高負荷であると判定する。そのため、ディスクDISK1は、入出力先情報に含まれない。
 入出力先情報生成部2020は、ネットワーク構成情報を参照し、コンピュータC1と直接接続されている通信機器3300は、スイッチSW1であることを割り出す。そして、入出力先情報生成部2020は、スイッチSW1とコンピュータC1の組み合わせについて、通信路負荷テーブル1000-3を参照する。ここで、通信路負荷テーブル1000-3が示すスイッチSW1とコンピュータC1の間の通信路の通信負荷は低い。そのため、次に入出力先情報生成部2020は、スイッチSW1について、負荷判定テーブル900-3を参照する。その結果、データ格納装置IDリスト920に含まれているデータ格納装置3200のIDのリストを取得する。ここで、データ格納装置IDリスト920に含まれていることは、そのディスクが低負荷であり、なおかつ、そのディスクまでの通信路の通信負荷が低いことを意味する。入出力先情報生成部2020は、上記データ格納装置IDリスト920に含まれているデータ格納装置3200のIDのリストを取得する。この場合、入出力先情報生成部2020は、「DISK2」を取得する。そして、入出力先情報生成部2020は、候補テーブル200-3を参照し、上記リストに含まれる各IDが、データ格納装置3200の候補に含まれるかどうかを判定する。候補テーブル200-3において、「プロセスID210=p2,処理種別220=入力,データID230=D1」のレコードの内の1つが、データ格納装置ID240=DISK2となっている。そのため、ディスクDISK2は候補に含まれている。そこで、入出力先情報生成部2020は、入出力先情報にディスクDISK2を加える。
 さらに入出力先情報生成部2020は、ネットワーク構成テーブル800-3を参照し、スイッチSW1に直接接続されている上位のスイッチは、スイッチSW5であることを割り出す。そこでまず、スイッチW5とスイッチSW1の組み合わせについて、通信路負荷テーブル1000-3を参照する。ここで、通信路負荷テーブル1000-3が示すスイッチSW1とスイッチSW5の間の通信路の通信負荷は低い。したがって、入出力先情報生成部2020は、スイッチSW1の場合と同様に、負荷判定テーブル900-3を参照し、データ格納装置IDリスト920に含まれるデータ格納装置3200のIDを取得する。この場合、「ディスクDISK2,ディスクDISK3,ディスクDISK4」を取得する。次に、入出力先情報生成部2020は、候補テーブル200-3を参照する。そして、ディスクDISK2及びディスクDISK3は候補に含まれているものの、ディスクDISK4は候補に含まれていないことを割り出す。また、ディスクDISK2は、すでに入出力先情報に含まれている。したがって、入出力先情報生成部2020は、ディスクDISK3を入出力先情報に加える。次いで、入出力先情報生成部2020は、同様の処理を、さらに上位のスイッチであるスイッチSW7についても行う。
 このように、入出力先情報生成部2020は、対象の処理プロセス10を実行しているプロセス実行装置3100を起点に、分散システム3000のネットワーク構成を上位に登っていき、処理プロセス10に対応づけるデータ格納装置3200を探索していく。こうすることで、入出力先情報生成部2020は、処理プロセス10と対応づけるデータ格納装置3200として、プロセス実行装置3100との間に介在する通信装置3300の数が少ない通信装置3300を優先して選択していく。その結果、入出力先情報生成部2020は、図35に示す入出力先テーブル300-3を生成する。
 前述したように、入出力先情報生成部2020は、プロセス実行装置3100とデータ格納装置3200の間に介在する通信装置3300の数に上限を設けてもよい。その場合、入出力先情報生成部2020は、上述した負荷判定テーブル900-3を順次参照する処理を途中で終了する。例えば、本動作例の場合において、プロセス実行装置3100を起点として上位のスイッチを探索する回数の上限を2回と定める。この場合入出力先情報生成部2020は、スイッチSW1、及びその上位にあるスイッチSW5について、負荷判定テーブル900-3を参照し、入出力先情報を生成する。一方、スイッチSW5の上位にあるスイッチSW7は、上位のスイッチを探索する回数の上限を超えているため、探索されない。したがって、スイッチSW7を介してプロセス実行装置3100と接続されているディスクDISK5~ディスクDISK8は、処理負荷が低く、かつ、プロセス実行装置3100との間の通信負荷が低いディスクであったとしても、入出力先情報に含まれない。このように、プロセス実行装置3100の上位に位置する通信装置3300の探索の回数に上限を設けることで、入出力先情報生成処理にかかる時間を短くすることができる。これは例えば、入出力先情報生成処理にかかる時間を予め見積もりたい場合や、入出力先情報生成処理に時間がかかり過ぎると分散システム3000全体の性能に支障をきたす場合などに有効である。
<作用・効果>
 以上の構成により、本実施形態によれば、分散システム制御装置2000は、ネットワーク構成情報取得部2100、プロセス実行装置割当情報取得部2110をさらに有する。ネットワーク構成情報取得部2100は、ネットワーク構成情報を取得する。プロセス実行装置割当情報取得部2110は、プロセス実行装置割当情報を取得する。そして、入出力先情報生成部2020は、ネットワーク構成情報、プロセス実行装置割当情報、候補情報、データ格納装置負荷情報、及び通信路負荷情報に基づき、以下の3つの条件を満たすデータ格納装置3200を優先して選択し、処理プロセス10による処理データ20の入力元又は出力先とする。第1の条件は、データ格納装置3200と、該処理プロセス10を実行するプロセス実行装置3100との間の通信路上に介在する通信装置の数が少ないことである。上記通信装置の数は、ネットワーク構成情報及びプロセス実行装置割当情報から取得する。第2の条件は、データ格納装置負荷情報が示すデータ格納装置3200の処理負荷が低いことである。第3の条件は、通信路負荷情報が示す該プロセス実行装置3100とデータ格納装置3200との間の通信路の通信負荷が低いことである。こうすることで、処理プロセス10は、上記3つの条件を満たすデータ格納装置3200に対して処理データ20の入力又は出力を行う。その結果、プロセス実行装置3100がデータ格納装置3200に対してデータ入出力を実行する際に、負荷を与える通信装置3300の数が少なくなる可能性が高くなる。また、データ格納装置3200との間に介在する通信装置3300の故障等により、データ格納装置3200に対して処理データ20の入力又は出力を行えなくなる可能性が低くなる。
[実施形態4]
<概要>
 図36は、本実施形態に係る分散システム制御装置2000の機能構成を、その使用環境と共に示す図である。図36において、図1に同符号の機能ブロックが示されている機能ブロックは、図1における機能ブロックと同じ機能を有するとし、説明を省略する。また図28における分散システム3000の構成は、例えば図1における分散システム3000の構成と同じである。そのため図36において、分散システム3000の構成は省略する。
 分散システム制御装置2000は、データ格納装置割当情報取得部2120を有する。データ格納装置割当情報取得部2120は、各データ格納装置3200に対応づけられた処理プロセス10の数を示すデータ格納装置割当情報を取得する。
 入出力先情報生成部2020は、候補情報、データ格納装置負荷情報、及びデータ格納装置割当情報に基づいて、処理プロセス10と、該処理プロセス10が処理データ20の入力又は出力を行うデータ格納装置3200を対応づける入出力先情報を生成する。具体的には、入出力先情報生成部2020はまず、候補情報を参照し、処理プロセス10が処理データ20の入力又は出力を行えるデータ格納装置3200の候補を取得する。そして、上記候補のデータ格納装置3200の中から、データ格納装置負荷情報が示す処理負荷が低いデータ格納装置3200を選択する。そして、入出力先情報生成部2020は、上記処理負荷が低いデータ格納装置3200が複数あった場合は、データ格納装置割当情報を参照し、各データ格納装置3200に対応づけられている処理プロセス10の数を平準化するように、処理プロセス10に対応づけるデータ格納装置3200を決定する。
 以上により、本実施形態の分散システム制御装置2000は、各データ格納装置3200に対応づけられている処理プロセス10の数を平準化するように、処理プロセス10とデータ格納装置3200を対応づける。これにより、特定のデータ格納装置3200に対して、処理データ20の入力要求又は出力要求が集中する確率が低くなる。
 以下、本実施形態の詳細を述べる。
<データ格納装置割当情報の詳細>
 データ格納装置割当情報は、例えば図37に示すデータ格納装置割当テーブル400を有する。データ格納装置割当テーブル400は例えば、データ格納装置ID410及び、データ格納装置3200に対応づけられている処理プロセス10の数を示すプロセス数420を有する。
 データ格納装置割当情報の取得方法は様々である。例えば、分散システム制御装置2000は、データ格納装置割当情報を記憶するデータ格納装置割当情報記憶部を有する。この場合、データ格納装置割当情報取得部2120は、上記データ格納装置割当情報記憶部からデータ格納装置割当情報を取得する。その他にも例えば、前述した管理サーバが、データ格納装置割当情報を記憶していてもよい。この場合、データ格納装置割当情報取得部2120は、上記管理サーバからデータ格納装置割当情報を取得する。
<入出力先情報生成処理の流れ>
 図38は、実施形態4に係る入出力先情報生成部2020が行う入出力先情報生成処理の流れの一例を示すフローチャートである。ここで、図38において、図5と同符号のステップは、図5と同様の処理を行う。そのため、図5と同符号のステップの説明は適宜省略する。
 ステップS502~ステップS508は、入出力先情報生成部2020が、候補テーブルから取得したレコードの集合である集合Rの各レコードについて行うループ処理Aである。ステップS502において、入出力先情報生成部2020は、集合Rに含まれる全てのレコードについてループ処理Aを行ったかをチェックする。集合Rに含まれる全てのレコードについてループ処理Aを終えた場合は、ステップS510に進む。まだ処理していないレコードがある場合は、まだ処理していないレコードを1つ選択してステップS504に進む。
 ステップS504において、入出力先情報生成部2020は、ステップS502で選択したレコードが示すデータ格納装置3200について、データ格納装置負荷情報を参照し、該データ格納装置3200が低負荷であるか否かを判定する。該データ格納装置3200が低負荷である場合はステップS506に進み、上記選択したレコードを集合Sに加える。一方、該データ格納装置3200が低負荷でない場合、ステップS508に進む。
 ステップS508はループ処理Aの終端であるため、ステップS502に戻る。
 ステップS510において、集合Sにレコードが複数含まれるか否かを判定する。集合Sに複数のレコードが含まれる場合は、ステップS512に進む。一方、集合Sに含まれるレコードが複数でない場合は、ステップS516に進む。
 ステップS512において、入出力先情報生成部2020は、集合Sに含まれる各レコードが示すデータ格納装置3200について、データ格納装置割当情報を参照し、各データ格納装置3200に対応づけられているプロセス数を取得する。
 ステップS514において、入出力先情報生成部2020は、集合Sに含まれるレコードを、データ格納装置3200に対応づけられているプロセス数が少ない順にソートする。
 ステップS516において、入出力先情報生成部2020は、集合Sのレコードで構成される入出力先テーブル300を、入出力先情報として生成する。これにより、入出力先情報生成部2020は、処理プロセス10に対応づけるデータ格納装置3200として、対応づけられた処理プロセス10の数が少ないデータ格納装置3200を優先的に選択する。そのため、データ格納装置3200に対応づけられる処理プロセス10の数が平準化される。ここで、実施形態1の入出力先情報生成部2020が生成する入出力先情報と同様に、本実施形態の入出力先情報生成部2020が生成する入出力先情報も、集合Sが含むレコードの中の、一部のレコードから生成してもよい。
 データ格納装置3200に割り当てるプロセス数を平準化する方法は、上記方法に限定されない。例えばMin-Max法やラウンドロビン法などのアルゴリズムを用いて、データ格納装置3200に割り当てる処理プロセス10の数を平準化してもよい。
 なお、複数の処理プロセス10のそれぞれについてデータ格納装置3200を決定する場合は、1つの処理プロセス10についてデータ格納装置3200を決定する度に、データ格納装置割当情報を更新することが望ましい。ただし、データ格納装置割当情報が、例えば外部の管理サーバに保存されている場合、管理サーバに保存されているデータ格納装置割当情報を逐次更新すると、入出力先情報生成処理に要する時間が長くなる可能性がある。この場合、入出力先情報生成部2020は、例えば次のように動作することが望ましい。まず入出力先情報生成部2020は、取得したデータ格納装置割当情報を分散システム制御装置2000が有する一時記憶領域に保存する。そして入出力先情報生成部2020は、上記複数の処理プロセス10のそれぞれについて入出力先情報を生成している間、上記一時記憶領域に記憶しているデータ格納装置割当情報を更新する。そして、上記複数の処理プロセス10のそれぞれにについて入出力先情報を生成し終えた後、一時記憶領域に記憶しているデータ格納装置割当情報を管理サーバに送信して、管理サーバに記憶されているデータ格納装置割当情報を更新する。
<変形例>
 本実施形態に係る分散システム制御装置2000は、実施形態2に示したように、通信路負荷情報をさらに考慮して、入出力先情報を生成してもよい。この場合、入出力先情報生成部2020は、候補情報から取得した処理プロセス10に対応づけるデータ格納装置3200の候補の中から、データ格納装置負荷情報が示す処理負荷が低く、かつ、通信路負荷情報が示すプロセス実行装置3100との間の通信路の通信負荷が低いデータ格納装置3200を優先的に選択する。そして、入出力先情報生成部2020は、上記選択したデータ格納装置3200が複数ある場合に、データ格納装置割当情報を参照して、データ格納装置3200に対応づけられるプロセス数を平準化するように、処理プロセス10とデータ格納装置3200を対応づける。
 本実施形態に係る分散システム制御装置2000は、実施形態3に示したように、ネットワーク構成情報及びプロセス実行装置割当情報をさらに考慮して、入出力先情報を生成してもよい。この場合、入出力先情報生成部2020は、候補情報から取得した処理プロセス10に対応づけるデータ格納装置3200の候補の中から、処理プロセス10を実行するプロセス実行装置3100との間の通信路上に介在する通信装置の数が少なく、かつ処理負荷が低いデータ格納装置3200を優先的に選択する。そして、入出力先情報生成部2020は、選択したデータ格納装置3200が複数ある場合に、データ格納装置割当情報を参照して、データ格納装置3200に対応づけられるプロセス数を平準化するように、処理プロセス10とデータ格納装置3200を対応づける。
 また、本実施形態に係る分散システム制御装置2000は、実施形態3に示したように、通信路負荷情報、ネットワーク構成情報、及びプロセス実行装置割当情報をさらに考慮して、入出力先情報を生成してもよい。この場合、入出力先情報生成部2020は、候補情報から取得した処理プロセス10に対応づけるデータ格納装置3200の候補の中から、処理プロセス10を実行するプロセス実行装置3100との間の通信路上に介在する通信装置の数が少なく、処理負荷が低く、かつプロセス実行装置3100との間の通信路の通信負荷が低いデータ格納装置3200を優先的に選択する。そして、入出力先情報生成部2020は、選択したデータ格納装置3200が複数ある場合に、データ格納装置割当情報を参照して、データ格納装置3200に対応づけられるプロセス数を平準化するように、処理プロセス10とデータ格納装置3200を対応づける。
<動作例4>
 以下、本実施形態に係る分散システム制御装置2000の動作について、具体例を用いて説明する。ただし、下記に示すのは分散システム制御装置2000の動作の一例であり、本実施形態は下記に示す動作例によって何らの限定も受けない。
 図39は、動作例4における分散システム制御装置2000及びその使用環境の機能構成を示す図である。ここで、図39において、図27又は図36と同符号の機能ブロックは、図24又は図28における機能ブロックと同様の機能を有するとして、説明を省略する。
 動作例4の分散システム3000は、データ格納装置割当情報提供部3470を有する。データ格納装置割当情報提供部3470は、各データ格納装置3200に対応づけられた処理プロセス10の数を示すデータ格納装置割当情報を、データ格納装置割当情報取得部2120に提供する。
 動作例4における分散システム制御装置2000及び分散システム3000のハードウエア構成及び動作状況は、図40で表される。分散システム3000のハードウェア構成は、動作例1と同様である。本動作例においては、処理プロセス10-p3は、ディスクDISK3から処理データ20-D1を入力しており、処理プロセス10-p4は、ディスクDISK4に処理データ20-D4を出力しており、処理プロセス10-p5は、ディスクDISK4から処理データ20-D1を入力している。
 入出力先情報生成部2020は、動作例1と同様に、「処理プロセス10-p2,入力処理、処理データ20-D1」の組み合わせに対してデータ格納装置3200を対応づける入出力先情報を生成する。以下、その具体的な動作を説明する。また、動作例1と同様に、処理データ20-D1は、ディスクDISK1~ディスクDISK4のそれぞれに格納されているとする。
 候補情報取得部2060が取得する候補情報のうち、処理プロセス10-p2に関する情報のみを示したテーブルは、動作例1の場合と同様に、図8の候補テーブル200-1で表される。さらに、通信路負荷情報取得部2080が取得する通信路負荷情報のうち、コンピュータC1と各ディスクの間の通信路の負荷を示すテーブルは、図16に示す通信路負荷テーブル600-2で表される。
 図41は、データ格納装置負荷情報取得部2040が取得するデータ格納装置負荷情報が有するデータ格納装置負荷テーブル100-4を示している。データ格納装置負荷テーブル100-4は、ディスクDISK1~DISK5の毎秒当たりのデータ転送量がそれぞれ、120MB、5MB、60MB、150MB、10MBであることを示す。
 図42は、データ格納装置割当情報取得部2120が取得するデータ格納装置割当情報が有するデータ格納装置割当テーブル400-4を示している。
 入出力先情報生成部2020はまず、候補テーブル200から候補のデータ格納装置3200を取得し、集合Rに加える。集合Rは、動作例1と同様に、候補テーブル200-1の中のレコード1~4を有する。したがって、候補のデータ格納装置3200はディスクDISK1~DISK4である。これは、動作例1と同様である。
 次に、入出力先情報生成部2020は、候補であるディスクDISK1~DISK4のそれぞれについて、データ格納装置負荷情報及び通信路負荷情報を参照し、ディスクDISK1~DISK4がそれぞれ処理負荷が低く、かつコンピュータC1との間の通信路の通信負荷が低いか否かを判定する。ここで、入出力先情報生成部2020は、データ転送量が100MB/s未満のディスクを処理負荷が低いと判定するとする。また、入出力先情報生成部2020は、プロセス実行装置3100との間の通信路におけるデータ通信量100MB/sが未満の場合に、プロセス実行装置3100とデータ格納装置3200の間の通信路の通信負荷が低いと判定するとする。この場合、ディスクDISK2及びDISK3は、処理負荷及び通信負荷が低いと判定される。したがって、入出力先情報生成部2020は、集合Rが含むレコードのうち、候補テーブル200-1のレコード2及び3を集合Sに加える。
 ここで、集合Sには、データ格納装置3200を示すレコードが複数含まれている。そこで入出力先情報生成部2020は、データ格納装置割当情報を参照し、ディスクDISK2及びDISK3のそれぞれについて、対応づけられているプロセス数を取得する。本動作例の場合、ディスクDISK2は、対応付けられているプロセス数が0であり、ディスクDISK3は、対応づけられているプロセス数が1である。入出力先情報生成部2020は、集合Sのレコードを、各レコードが示すデータ格納装置3200に対応づけられているプロセス数でソートする。そして、上記ソートしたレコードから成る入出力先テーブル300-4を生成する(図43参照)。
 入出力先通知部3440は、上記入出力先テーブル300-4を受信する。そして、受信した入出力先テーブル300-4に従い、処理プロセス10-p2に対して通知を行う。本動作例の場合、管理サーバ3400は、処理プロセス10-p2に対し、処理データ20-D1の入力をディスクDISK2から行うように指示する。指示を受けた処理プロセス10-p2は、処理データ20-D1をディスクDISK2から入力する。
 以上の動作により、処理プロセス10-p2は、処理データ20-D1の入力を行えるディスクのうち、処理負荷が低く、かつ通信負荷が低く、かつ対応づけられている処理プロセス10の数が少ないディスクDISK2から、処理データ20-D1の入力を行う。そのため、各ディスクに対応づけられるプロセス数が平準化され、特定のディスクに入力要求又は出力要求が集中することを防ぐ。
<作用・効果>
 以上の構成により、本実施形態によれば、分散システム制御装置2000は、データ格納装置割当情報取得部2120により、データ格納装置割当情報を取得する。そして、入出力先情報生成部2020は、データ格納装置割当情報を参照し、処理プロセス10に割り当てるデータ格納装置3200の候補の中に、低負荷と判定されたデータ格納装置3200が複数ある場合、データ格納装置3200に割り当てられている処理プロセス10の数を平準化するように、処理プロセス10に割り当てるデータ格納装置3200を決定する。これにより、特定のデータ格納装置3200に対して処理負荷が集中する確率がより低くなる。
[実施形態5]
<概要>
 図44は、本実施形態に係る分散システム制御装置2000の機能構成を、その使用環境と共に示す図である。図44において、図1に同符号の機能ブロックが示されている機能ブロックは、図1における機能ブロックと同じ機能を有するとし、説明を省略する。また図44おける分散システム3000の構成は、例えば図1における分散システム3000の構成と同じである。そのため図44において、分散システム3000の構成は省略する。
 実施形態5に係る分散システム制御装置2000は、資源要求情報を取得する資源要求情報取得部2140を有する。資源要求情報は、プロセス実行装置3100に対して処理プロセス10を割り当てる際の制約条件を表す情報である。一般に分散システム3000の管理者は、処理プロセス10を、処理データ20の入力又は出力が高速に行えるプロセス実行装置3100上で実行させる。例えば、処理プロセス10は、入力する処理データ20を保存しているデータ格納装置3200と同じ計算機で実現されているプロセス実行装置3100上で実行される。したがって、資源要求情報に示されている各処理プロセス10の実行環境に関する制約条件を参照することで、処理プロセス10が処理データ20の入力又は出力を行えるデータ格納装置3200を推測することができる。
 資源要求情報は、例えば図45に示す資源要求テーブル500を有する。資源要求テーブル500は例えば、プログラムID510及び要求資源特定情報520を有する。プログラムID510は、プログラムを特定する。要求資源特定情報520は、プログラムID510で特定されるプログラムに記述されている処理を行う処理プロセス10が、どのプロセス実行装置3100で実行されているかを特定する情報である。要求資源特定情報520は例えば、プロセス実行装置3100のID、プロセス実行装置3100を実現する計算機のID、プロセス実行装置3100に要求される条件などで表される。上記管理サーバは例えば、資源要求テーブル500を参照し、プログラムID510で特定されるプログラムを実行する全ての処理プロセス10に対し、同じ要求資源特定情報520で示されている条件に基づいて、プロセス実行装置3100を割り当てる。ここで、資源要求テーブル500は、プログラムID510の代わりに、プロセスIDを有してもよい。この場合、処理プロセス10ごとに要求資源特定情報520が指定される。さらに、資源要求テーブル500は、プログラムID510の代わりに、処理プロセス10のグループのIDを表すプロセスグループIDを有していてもよい。この場合、同じプロセスグループIDで特定される処理プロセス10は、同じ要求資源特定情報520に基づき、プロセス実行装置3100を割り当てられる。
 分散システム制御装置2000はさらに、候補情報生成部2160を有する。候補情報生成部2160は、資源要求情報取得部2140が取得した資源要求情報に基づいて、各処理プロセス10が処理データ20を入力又は出力できるデータ格納装置3200を推測し、候補情報を生成する。例えば資源要求情報が資源要求テーブル500を有している場合、候補情報生成部2160は、処理プロセス10が実行しているプログラムのIDをキーとして資源要求テーブル500を検索する。そして、候補情報生成部2160は、取得したレコードの要求資源特定情報520に示されている情報から、処理プロセス10が処理データ20を入力又は出力できるデータ格納装置3200を推測する。そして、上記推測したデータ格納装置3200を、処理プロセス10による処理データ20の入力元又は出力先の候補とする候補情報を生成する。
 例えば、候補情報生成部2160が図45に示す資源要求テーブル500に基づいて、候補情報を生成するとする。この時、分散システム3000における各計算機の接続関係は、図46で表されているとする。この場合、候補情報生成部2160は、コンピュータC1の内部に設けられているディスクDISK1を、プログラムIDがprogram1であるプログラムを実行している処理プロセス10に対応付けるデータ格納装置3200の候補とする。また、候補情報生成部2160は、コンピュータC2の内部に設けられているディスクDISK2及びコンピュータC3の内部に設けられているディスクDISK3を、プログラムIDがprogram2であるプログラムを実行している処理プロセス10に対応付けるデータ格納装置3200の候補とする。さらに、候補情報生成部2160は、スイッチSW1に接続されているコンピュータC1及びC2の内部に設けられているディスクDISK1及びディスクDISK2を、プログラムIDがprogram1であるプログラムを実行している処理プロセス10に対応付けるデータ格納装置3200の候補とする。
 分散システム制御装置2000は、候補情報生成部2160が生成した候補情報にも基づいて、入出力先情報を生成する。入出力先情報の生成方法は、実施形態1~4に示したいずれの方法であってもよい。
 分散システム制御装置2000は、実施形態2と同様の方法で入出力先情報を生成する場合は、実施形態2の分散システム制御装置2000が有する機能ブロックをさらに有する。また、分散システム制御装置2000は、実施形態2と同様の方法で入出力先情報を生成する場合は、実施形態3の分散システム制御装置2000が有する機能ブロックをさらに有する。また、分散システム制御装置2000は、実施形態4と同様の方法で入出力先情報を生成する場合は、実施形態4の分散システム制御装置2000が有する機能ブロックをさらに有する。
<作用・効果>
 以上の構成により、本実施形態によれば、分散システム制御装置2000は、資源要求情報取得部2140及び候補情報生成部2160をさらに有する。資源要求情報取得部2140は、プロセス実行装置3100に対して処理プロセス10を割り当てる際の制約条件を表す資源要求情報を取得する。候補情報生成部2160は、資源要求情報に基づき、処理プロセス10が処理データ20を入力又は出力できるデータ格納装置3200を推測する。そして、候補情報生成部2160は、上記推測したデータ格納装置3200を候補とする候補情報を生成する。これにより、分散システム制御装置2000は、処理プロセス10が処理データ20を入力又は出力できるデータ格納装置3200を特定する候補情報が得られない環境においても、処理プロセス10によるデータ入力又は出力にかかる時間を短くすることができる。
 以上、図面を参照して本発明の実施形態について述べたが、これらは本発明の例示であり、上記以外の様々な構成を採用することもできる。
 以下、参考形態の例を付記する。
1. データの入力又は出力を行う複数の処理プロセスを分散処理する分散システムを制御する分散システム制御装置であって、
 前記分散システムは、
  複数のデータ格納装置と、
  前記処理プロセスを実行し、前記複数のデータ格納装置と通信可能に接続されている処理プロセス実行装置を有し、
 前記分散システム制御装置は、
  前記各データ格納装置の処理負荷を表すデータ格納装置負荷情報を取得するデータ格納装置負荷情報取得手段と、
  前記各処理プロセスが前記データの入力又は出力を行う前記データ格納装置の候補を示す候補情報を取得する候補情報取得手段と、
  前記各処理プロセスに関するデータ格納装置の候補の中から、前記データ格納装置負荷情報に示されている処理負荷が低い前記データ格納装置を優先的に選択することにより、前記処理プロセスと該処理プロセスが前記データの入力又は出力を行う前記データ格納装置とをそれぞれ対応づけた入出力先情報を生成する入出力先情報生成手段を有する分散システム制御装置。
2. 前記候補情報は、各処理プロセスが前記データの入力又は出力を行う前記データ格納装置の候補を前記データごとに示し、
 前記入出力先情報生成手段は、前記処理プロセスと該処理プロセスが入力又は出力する前記データの各組み合わせに関するデータ格納装置の候補の中から、前記データ格納装置負荷情報に示されている処理負荷が低い前記データ格納装置を優先的に選択することにより、前記処理プロセスと該処理プロセスが入力又は出力する前記データとの各組み合わせに対して前記データ格納装置をそれぞれ対応づけた入出力先情報を生成する1.に記載の分散システム制御装置。
3. 前記処理プロセスは、前記データの入力及び出力を行い、
 前記候補情報は、前記各処理プロセスについて、前記データの入力を行う前記データ格納装置の候補と、前記データの出力を行う前記データ格納装置の候補をそれぞれ示し、
 前記入出力先情報生成手段は、前記処理プロセスと該処理プロセスが前記データを入力するか出力するかを示す情報の各組み合わせに関するデータ格納装置の候補の中から、前記データ格納装置負荷情報に示されている処理負荷が低い前記データ格納装置を優先的に選択することにより、前記処理プロセスと該処理プロセスが前記データを入力するか出力するかを示す情報の各組み合わせに対し、前記データ格納装置をそれぞれ対応づけた入出力先情報を生成する1.又は2.に記載の分散システム制御装置。
4. 前記入出力先情報生成手段は、「前記処理プロセス、該処理プロセスが前記データを入力するか出力するかを示す情報、前記データ」の各組み合わせに関するデータ格納装置の候補の中から、前記データ格納装置負荷情報に示されている処理負荷が低い前記データ格納装置を優先的に選択することにより、「前記処理プロセス、該処理プロセスが前記データを入力するか出力するかを示す情報、前記データ」の各組み合わせに対し、前記データ格納装置をそれぞれ対応づけた入出力先情報を生成する1.乃至3.いずれか一つに記載の分散システム制御装置。
5. 前記プロセス実行装置と前記複数のデータ格納装置の間の各通信路の通信負荷を示す通信路負荷情報を取得する通信路負荷情報取得手段をさらに有し、
 前記入出力先情報生成手段は、前記各処理プロセスに関するデータ格納装置の候補の中から、前記データ格納装置負荷情報に示されている処理負荷が低く、かつ、通信路負荷情報に示されている該処理プロセスを実行している前記処理プロセス実行装置との間の通信路の負荷が低い前記データ格納装置を優先的に選択することにより、前記処理プロセスと該処理プロセスが前記データを入力又は出力する前記データ格納装置を対応づけた入出力先情報を生成する1.乃至4.いずれか一つに記載の分散システム制御装置。
6. 5.に記載の分散システム制御装置であって、
 前記分散システムは、前記プロセス実行装置と前記データ格納装置の間に介在する複数の通信装置を有し、
 前記分散システム制御装置は、
  前記プロセス実行装置、前記データ格納装置、及び前記通信装置の接続関係を示すネットワーク構成情報を取得するネットワーク構成情報取得手段と、
  前記各処理プロセスと該処理プロセスを実行している前記プロセス実行装置の対応づけを示すプロセス実行装置割当情報を取得するプロセス実行装置割当情報取得手段を有し、
 前記入出力先情報生成手段は、前記ネットワーク構成情報と前記プロセス実行装置割当情報に基づき、前記各処理プロセスに関するデータ格納装置の候補の中から、前記ネットワーク構成情報に示されている該処理プロセスを実行する前記プロセス実行装置との間に介在する前記通信装置の数が少ない前記データ格納装置を優先して選択し、該選択したデータ格納装置の中から、前記データ格納装置負荷情報に示されている処理負荷が低く、かつ、通信路負荷情報に示されている該処理プロセスを実行している前記処理プロセス実行装置との間の通信路の負荷が低い前記データ格納装置を優先的に選択することにより、前記処理プロセスと該処理プロセスが前記データを入力又は出力する前記データ格納装置を対応づけた入出力先情報を生成する分散システム制御装置。
7. 6.に記載の分散システム制御装置であって、
 前記入出力先情報生成手段は、
  前記各通信装置に対し、前記ネットワーク構成情報が示す該通信装置との間の通信路上に介在する前記通信装置の数が少なく、前記通信路負荷情報が示す該通信装置との間の処理負荷が低く、かつ前記データ格納装置負荷情報が示す処理負荷が低い前記データ格納装置を優先的に対応づけた情報である負荷判定情報を生成し、
  前記ネットワーク構成情報と前記プロセス実行装置割当情報に基づき、前記各通信装置の中から該処理プロセスを実行する処理プロセス実行装置との間に介在する他の前記通信装置が少ない前記通信装置を優先的に選択し、前記候補情報が示す前記各処理プロセスに関する候補の中から、前記負荷判定情報において該選択した通信装置と対応づけられている前記データ格納装置を優先的に選択して該処理プロセスと対応づけた入出力先情報を生成する分散システム制御装置。
8. 1.乃至7.いずれか一つに記載の分散システム制御装置であって、
 前記データ格納装置に対して前記処理データの入力又は出力を行っている前記処理プロセスの数を示すデータ格納装置割当情報を取得するデータ格納装置割当情報取得手段をさらに有し、
 前記入出力先情報生成手段は、
  前記各処理プロセスに関するデータ格納装置の各候補について、前記データ格納装置負荷情報に示されている処理負荷が低いか否かを判別し、
  処理負荷が低いと判別された前記データ格納装置の候補が複数ある場合は、前記データ格納装置割当情報に基づき、前記各データ格納装置に対して前記処理データの入力又は出力を行っている前記処理プロセスの数を平準化するように、前記処理プロセスと該処理プロセスが前記データを入力又は出力する前記データ格納装置を対応づけた入出力先情報を生成する分散システム制御装置。
9. 前記処理プロセスを実行する前記処理プロセス実行装置に求められる制約条件を示す資源要求情報を取得する資源要求情報取得手段と、
 前記資源要求情報に基づいて、前記処理プロセスが前記データを入力又は出力できる前記データ格納装置を推測し、前記推測した前記データ格納装置を該プロセスによる前記データの入力元または出力先の候補として示す候補情報を生成する候補情報生成手段をさらに有する1.乃至8.いずれか一つに記載の分散システム制御装置。
10. コンピュータを、データの入力又は出力を行う複数の処理プロセスを分散処理する分散システムを制御する分散システム制御装置として機能させるプログラムであって、
 前記分散システムは、
  複数のデータ格納装置と、
  前記処理プロセスを実行し、前記複数のデータ格納装置と通信可能に接続されている処理プロセス実行装置を有し、
 当該プログラムは、前記コンピュータに、
  前記各データ格納装置の処理負荷を表すデータ格納装置負荷情報を取得する機能と、
  前記各処理プロセスが前記データの入力又は出力を行う前記データ格納装置の候補を示す候補情報を取得する機能と、
  前記各処理プロセスに関するデータ格納装置の候補の中から、前記データ格納装置負荷情報に示されている処理負荷が低い前記データ格納装置を優先的に選択することにより、前記処理プロセスと該処理プロセスが前記データの入力又は出力を行う前記データ格納装置とをそれぞれ対応づけた入出力先情報を生成する機能を持たせるプログラム。
11. 前記入出力情報を生成する機能は、前記処理プロセスと該処理プロセスが入力又は出力する前記データの各組み合わせに関するデータ格納装置の候補の中から、前記データ格納装置負荷情報に示されている処理負荷が低い前記データ格納装置を優先的に選択することにより、前記処理プロセスと該処理プロセスが入力又は出力する前記データとの各組み合わせに対して前記データ格納装置をそれぞれ対応づけた入出力先情報を生成する10.に記載のプログラム。
12. 前記処理プロセスは、前記データの入力及び出力を行い、
 前記候補情報は、前記各処理プロセスについて、前記データの入力を行う前記データ格納装置の候補と、前記データの出力を行う前記データ格納装置の候補をそれぞれ示し、
 前記入出力先情報を生成する機能は、前記処理プロセスと該処理プロセスが前記データを入力するか出力するかを示す情報の各組み合わせに関するデータ格納装置の候補の中から、前記データ格納装置負荷情報に示されている処理負荷が低い前記データ格納装置を優先的に選択することにより、前記処理プロセスと該処理プロセスが前記データを入力するか出力するかを示す情報の各組み合わせに対し、前記データ格納装置をそれぞれ対応づけた入出力先情報を生成する10.又は11.に記載のプログラム。
13. 前記入出力先情報を生成する機能は、「前記処理プロセス、該処理プロセスが前記データを入力するか出力するかを示す情報、前記データ」の各組み合わせに関するデータ格納装置の候補の中から、前記データ格納装置負荷情報に示されている処理負荷が低い前記データ格納装置を優先的に選択することにより、「前記処理プロセス、該処理プロセスが前記データを入力するか出力するかを示す情報、前記データ」の各組み合わせに対し、前記データ格納装置をそれぞれ対応づけた入出力先情報を生成する10.乃至12.いずれか一つに記載のプログラム。
14. 前記コンピュータに、前記プロセス実行装置と前記複数のデータ格納装置の間の各通信路の通信負荷を示す通信路負荷情報を取得する機能をさらに持たせ、
 前記入出力先情報を生成する機能は、前記各処理プロセスに関するデータ格納装置の候補の中から、前記データ格納装置負荷情報に示されている処理負荷が低く、かつ、通信路負荷情報に示されている該処理プロセスを実行している前記処理プロセス実行装置との間の通信路の負荷が低い前記データ格納装置を優先的に選択することにより、前記処理プロセスと該処理プロセスが前記データを入力又は出力する前記データ格納装置を対応づけた入出力先情報を生成する10.乃至13.いずれか一つに記載の分散システム制御装置。
15. 14.に記載のプログラムであって、
 前記分散システムは、前記プロセス実行装置と前記データ格納装置の間に介在する複数の通信装置を有し、
 当該プログラムは、
  前記コンピュータに、前記プロセス実行装置、前記データ格納装置、及び前記通信装置の接続関係を示すネットワーク構成情報を取得する機能と、前記各処理プロセスと該処理プロセスを実行している前記プロセス実行装置の対応づけを示すプロセス実行装置割当情報を取得する機能をさらに持たせ、
  前記入出力先情報を生成する機能は、前記ネットワーク構成情報と前記プロセス実行装置割当情報に基づき、前記各処理プロセスに関するデータ格納装置の候補の中から、前記ネットワーク構成情報に示されている該処理プロセスを実行する前記プロセス実行装置との間に介在する前記通信装置の数が少ない前記データ格納装置を優先して選択し、該選択したデータ格納装置の中から、前記データ格納装置負荷情報に示されている処理負荷が低く、かつ、通信路負荷情報に示されている該処理プロセスを実行している前記処理プロセス実行装置との間の通信路の負荷が低い前記データ格納装置を優先的に選択することにより、前記処理プロセスと該処理プロセスが前記データを入力又は出力する前記データ格納装置を対応づけた入出力先情報を生成するプログラム。
16. 前記入出力先情報を生成する機能は、
  前記各通信装置に対し、前記ネットワーク構成情報が示す該通信装置との間の通信路上に介在する前記通信装置の数が少なく、前記通信路負荷情報が示す該通信装置との間の処理負荷が低く、かつ前記データ格納装置負荷情報が示す処理負荷が低い前記データ格納装置を優先的に対応づけた情報である負荷判定情報を生成し、
  前記ネットワーク構成情報と前記プロセス実行装置割当情報に基づき、前記各通信装置の中から該処理プロセスを実行する処理プロセス実行装置との間に介在する他の前記通信装置が少ない前記通信装置を優先的に選択し、前記候補情報が示す前記各処理プロセスに関する候補の中から、前記負荷判定情報において該選択した通信装置と対応づけられている前記データ格納装置を優先的に選択して該処理プロセスと対応づけた入出力先情報を生成する15.に記載のプログラム。
17. 10.乃至16.いずれか一つに記載のプログラムであって、
 前記コンピュータに、前記データ格納装置に対して前記処理データの入力又は出力を行っている前記処理プロセスの数を示すデータ格納装置割当情報を取得する機能をさらに持たせ、
 前記入出力先情報を生成する機能は、
  前記各処理プロセスに関するデータ格納装置の各候補について、前記データ格納装置負荷情報に示されている処理負荷が低いか否かを判別し、
  処理負荷が低いと判別された前記データ格納装置の候補が複数ある場合は、前記データ格納装置割当情報に基づき、前記各データ格納装置に対して前記処理データの入力又は出力を行っている前記処理プロセスの数を平準化するように、前記処理プロセスと該処理プロセスが前記データを入力又は出力する前記データ格納装置を対応づけた入出力先情報を生成するプログラム。
18. 前記コンピュータに、
  前記処理プロセスを実行する前記処理プロセス実行装置に求められる制約条件を示す資源要求情報を取得する機能と、
  前記資源要求情報に基づいて、前記処理プロセスが前記データを入力又は出力できる前記データ格納装置を推測し、前記推測した前記データ格納装置を該プロセスによる前記データの入力元または出力先の候補として示す候補情報を生成する機能をさらに持たせる10.乃至17.いずれか一つに記載のプログラム。
19. データの入力又は出力を行う複数の処理プロセスを分散処理する分散システムを制御するコンピュータによって実行される制御方法であって、
 前記分散システムは、
  複数のデータ格納装置と、
  前記処理プロセスを実行し、前記複数のデータ格納装置と通信可能に接続されている処理プロセス実行装置を有し、
 当該制御方法は、
  前記各データ格納装置の処理負荷を表すデータ格納装置負荷情報を取得するステップと、
  前記各処理プロセスが前記データの入力又は出力を行う前記データ格納装置の候補を示す候補情報を取得するステップと、
  前記各処理プロセスに関するデータ格納装置の候補の中から、前記データ格納装置負荷情報に示されている処理負荷が低い前記データ格納装置を優先的に選択することにより、前記処理プロセスと該処理プロセスが前記データの入力又は出力を行う前記データ格納装置とをそれぞれ対応づけた入出力先情報を生成するステップを有する制御方法。
20. 前記入出力情報を生成するステップは、前記処理プロセスと該処理プロセスが入力又は出力する前記データの各組み合わせに関するデータ格納装置の候補の中から、前記データ格納装置負荷情報に示されている処理負荷が低い前記データ格納装置を優先的に選択することにより、前記処理プロセスと該処理プロセスが入力又は出力する前記データとの各組み合わせに対して前記データ格納装置をそれぞれ対応づけた入出力先情報を生成するステップである19.に記載の制御方法。
21. 前記処理プロセスは、前記データの入力及び出力を行い、
 前記候補情報は、前記各処理プロセスについて、前記データの入力を行う前記データ格納装置の候補と、前記データの出力を行う前記データ格納装置の候補をそれぞれ示し、
 前記入出力先情報を生成するステップは、前記処理プロセスと該処理プロセスが前記データを入力するか出力するかを示す情報の各組み合わせに関するデータ格納装置の候補の中から、前記データ格納装置負荷情報に示されている処理負荷が低い前記データ格納装置を優先的に選択することにより、前記処理プロセスと該処理プロセスが前記データを入力するか出力するかを示す情報の各組み合わせに対し、前記データ格納装置をそれぞれ対応づけた入出力先情報を生成するステップである19.又は20.に記載の制御方法。
22. 前記入出力先情報を生成するステップは、「前記処理プロセス、該処理プロセスが前記データを入力するか出力するかを示す情報、前記データ」の各組み合わせに関するデータ格納装置の候補の中から、前記データ格納装置負荷情報に示されている処理負荷が低い前記データ格納装置を優先的に選択することにより、「前記処理プロセス、該処理プロセスが前記データを入力するか出力するかを示す情報、前記データ」の各組み合わせに対し、前記データ格納装置をそれぞれ対応づけた入出力先情報を生成する19.乃至21.いずれか一つに記載の制御方法。
23. 前記プロセス実行装置と前記複数のデータ格納装置の間の各通信路の通信負荷を示す通信路負荷情報を取得するステップをさらに有し、
 前記入出力先情報を生成するステップは、前記各処理プロセスに関するデータ格納装置の候補の中から、前記データ格納装置負荷情報に示されている処理負荷が低く、かつ、通信路負荷情報に示されている該処理プロセスを実行している前記処理プロセス実行装置との間の通信路の負荷が低い前記データ格納装置を優先的に選択することにより、前記処理プロセスと該処理プロセスが前記データを入力又は出力する前記データ格納装置を対応づけた入出力先情報を生成するステップである19.乃至22.いずれか一つに記載の制御方法。
24. 23.に記載の制御方法であって、
 前記分散システムは、前記プロセス実行装置と前記データ格納装置の間に介在する複数の通信装置を有し、
 当該制御方法は、
  前記プロセス実行装置、前記データ格納装置、及び前記通信装置の接続関係を示すネットワーク構成情報を取得するステップと、
  前記各処理プロセスと該処理プロセスを実行している前記プロセス実行装置の対応づけを示すプロセス実行装置割当情報を取得するステップを有し、
 前記入出力先情報を生成するステップは、前記ネットワーク構成情報と前記プロセス実行装置割当情報に基づき、前記各処理プロセスに関するデータ格納装置の候補の中から、前記ネットワーク構成情報に示されている該処理プロセスを実行する前記プロセス実行装置との間に介在する前記通信装置の数が少ない前記データ格納装置を優先して選択し、該選択したデータ格納装置の中から、前記データ格納装置負荷情報に示されている処理負荷が低く、かつ、通信路負荷情報に示されている該処理プロセスを実行している前記処理プロセス実行装置との間の通信路の負荷が低い前記データ格納装置を優先的に選択することにより、前記処理プロセスと該処理プロセスが前記データを入力又は出力する前記データ格納装置を対応づけた入出力先情報を生成するステップである制御方法。
25. 前記入出力先情報を生成するステップは、
  前記各通信装置に対し、前記ネットワーク構成情報が示す該通信装置との間の通信路上に介在する前記通信装置の数が少なく、前記通信路負荷情報が示す該通信装置との間の処理負荷が低く、かつ前記データ格納装置負荷情報が示す処理負荷が低い前記データ格納装置を優先的に対応づけた情報である負荷判定情報を生成し、
  前記ネットワーク構成情報と前記プロセス実行装置割当情報に基づき、前記各通信装置の中から該処理プロセスを実行する処理プロセス実行装置との間に介在する他の前記通信装置が少ない前記通信装置を優先的に選択し、前記候補情報が示す前記各処理プロセスに関する候補の中から、前記負荷判定情報において該選択した通信装置と対応づけられている前記データ格納装置を優先的に選択して該処理プロセスと対応づけた入出力先情報を生成する24.に記載の制御方法。
26. 19.乃至25.いずれか一つに記載の制御方法であって、
 前記データ格納装置に対して前記処理データの入力又は出力を行っている前記処理プロセスの数を示すデータ格納装置割当情報を取得するステップをさらに有し、
 前記入出力先情報を生成するステップは、
  前記各処理プロセスに関するデータ格納装置の各候補について、前記データ格納装置負荷情報に示されている処理負荷が低いか否かを判別し、
  処理負荷が低いと判別された前記データ格納装置の候補が複数ある場合は、前記データ格納装置割当情報に基づき、前記各データ格納装置に対して前記処理データの入力又は出力を行っている前記処理プロセスの数を平準化するように、前記処理プロセスと該処理プロセスが前記データを入力又は出力する前記データ格納装置を対応づけた入出力先情報を生成するステップである制御方法。
27. 前記処理プロセスを実行する前記処理プロセス実行装置に求められる制約条件を示す資源要求情報を取得するステップと、
 前記資源要求情報に基づいて、前記処理プロセスが前記データを入力又は出力できる前記データ格納装置を推測し、前記推測した前記データ格納装置を該プロセスによる前記データの入力元または出力先の候補として示す候補情報を生成するステップをさらに有する19.乃至26.いずれか一つに記載の制御方法。
 この出願は、2012年7月30日に出願された日本出願特願2012-168949号を基礎とする優先権を主張し、その開示の全てをここに取り込む。

Claims (10)

  1.  データの入力又は出力を行う複数の処理プロセスを分散処理する分散システムを制御する分散システム制御装置であって、
     前記分散システムは、
      複数のデータ格納装置と、
      前記処理プロセスを実行し、前記複数のデータ格納装置と通信可能に接続されている処理プロセス実行装置を有し、
     前記分散システム制御装置は、
      前記各データ格納装置の処理負荷を表すデータ格納装置負荷情報を取得するデータ格納装置負荷情報取得手段と、
      前記各処理プロセスが前記データの入力又は出力を行う前記データ格納装置の候補を示す候補情報を取得する候補情報取得手段と、
      前記各処理プロセスに関するデータ格納装置の候補の中から、前記データ格納装置負荷情報に示されている処理負荷が低い前記データ格納装置を優先的に選択することにより、前記処理プロセスと該処理プロセスが前記データの入力又は出力を行う前記データ格納装置とをそれぞれ対応づけた入出力先情報を生成する入出力先情報生成手段を有する分散システム制御装置。
  2.  前記候補情報は、前記各処理プロセスが前記データの入力又は出力を行う前記データ格納装置の候補を前記データごとに示し、
     前記入出力先情報生成手段は、前記処理プロセスと該処理プロセスが入力又は出力する前記データとの各組み合わせに関するデータ格納装置の候補の中から、前記データ格納装置負荷情報に示されている処理負荷が低い前記データ格納装置を優先的に選択することにより、前記処理プロセスと該処理プロセスが入力又は出力する前記データとの各組み合わせに対して前記データ格納装置をそれぞれ対応づけた入出力先情報を生成する請求項1記載の分散システム制御装置。
  3.  前記処理プロセスは、前記データの入力及び出力を行い、
     前記候補情報は、前記各処理プロセスについて、前記データの入力を行う前記データ格納装置の候補と、前記データの出力を行う前記データ格納装置の候補をそれぞれ示し、
     前記入出力先情報生成手段は、前記処理プロセスと該処理プロセスが前記データを入力するか出力するかを示す情報との各組み合わせに関するデータ格納装置の候補の中から、前記データ格納装置負荷情報に示されている処理負荷が低い前記データ格納装置を優先的に選択することにより、前記処理プロセスと該処理プロセスが前記データを入力するか出力するかを示す情報の各組み合わせに対し、前記データ格納装置をそれぞれ対応づけた入出力先情報を生成する請求項1又は2記載の分散システム制御装置。
  4.  前記入出力先情報生成手段は、「前記処理プロセス、該処理プロセスが前記データを入力するか出力するかを示す情報、前記データ」の各組み合わせに関するデータ格納装置の候補の中から、前記データ格納装置負荷情報に示されている処理負荷が低い前記データ格納装置を優先的に選択することにより、「前記処理プロセス、該処理プロセスが前記データを入力するか出力するかを示す情報、前記データ」の各組み合わせに対し、前記データ格納装置をそれぞれ対応づけた入出力先情報を生成する請求項1乃至3いずれか一項に記載の分散システム制御装置。
  5.  前記各処理プロセスについて、該処理プロセスを実行している前記プロセス実行装置と前記複数のデータ格納装置の間の通信路の通信負荷を示す通信路負荷情報を取得する通信路負荷情報取得手段をさらに有し、
     前記入出力先情報生成手段は、前記各処理プロセスに関するデータ格納装置の候補の中から、前記データ格納装置負荷情報に示されている処理負荷が低く、かつ、通信路負荷情報に示されている該処理プロセスを実行している前記処理プロセス実行装置との間の通信路の負荷が低い前記データ格納装置を優先的に選択することにより、前記処理プロセスと該処理プロセスが前記データを入力又は出力する前記データ格納装置を対応づけた入出力先情報を生成する請求項1乃至4いずれか一項に記載の分散システム制御装置。
  6.  請求項5に記載の分散システム制御装置であって、
     前記分散システムは、前記プロセス実行装置と前記データ格納装置の間に介在する複数の通信装置を有し、
     前記分散システム制御装置は、
      前記プロセス実行装置、前記データ格納装置、及び前記通信装置の接続関係を示すネットワーク構成情報を取得するネットワーク構成情報取得手段と、
      前記各処理プロセスと該処理プロセスを実行している前記プロセス実行装置の対応づけを示すプロセス実行装置割当情報を取得するプロセス実行装置割当情報取得手段を有し、
      前記通信路負荷情報は、前記各プロセス実行装置、前記各データ格納装置、及び前記各通信装置の内の2つの装置の各組み合わせについて、該組み合わせが有する装置間の通信路の通信負荷を示し、
      前記入出力先情報生成手段は、前記候補情報が示す前記各処理プロセスに関するデータ格納装置の候補の中から、前記ネットワーク構成情報、前記プロセス実行装置割当情報、データ格納装置負荷情報、及び通信路負荷情報に基づいて、該処理プロセスを実行する前記プロセス実行装置との間に介在する前記通信装置の数が少なく、かつ、処理負荷が低く、かつ、前記処理プロセス実行装置との間の通信路の負荷が低い前記データ格納装置を優先的に選択することにより、前記処理プロセスと該処理プロセスが前記データを入力又は出力する前記データ格納装置を対応づけた入出力先情報を生成する分散システム制御装置。
  7.  請求項1乃至6いずれか一項に記載の分散システム制御装置であって、
     前記データ格納装置に対して前記処理データの入力又は出力を行っている前記処理プロセスの数を示すデータ格納装置割当情報を取得するデータ格納装置割当情報取得手段をさらに有し、
     前記入出力先情報生成手段は、
      前記各処理プロセスに関するデータ格納装置の各候補について、前記データ格納装置負荷情報に示されている処理負荷が低いか否かを判別し、
      処理負荷が低いと判別された前記データ格納装置の候補が複数ある場合は、前記データ格納装置割当情報に基づき、前記各データ格納装置に対して前記処理データの入力又は出力を行っている前記処理プロセスの数を平準化するように、前記処理プロセスと該処理プロセスが前記データを入力又は出力する前記データ格納装置を対応づけた入出力先情報を生成する分散システム制御装置。
  8.  前記処理プロセスを実行する前記処理プロセス実行装置に求められる制約条件を示す資源要求情報を取得する資源要求情報取得手段と、
     前記資源要求情報に基づいて、前記処理プロセスが前記データを入力又は出力できる前記データ格納装置を推測し、前記推測したデータ格納装置を該プロセスによる前記データの入力元または出力先の候補として示す候補情報を生成する候補情報生成手段をさらに有する請求項1乃至7いずれか一項に記載の分散システム制御装置。
  9.  コンピュータを、データの入力又は出力を行う複数の処理プロセスを分散処理する分散システムを制御する分散システム制御装置として機能させるプログラムであって、
     前記分散システムは、
      複数のデータ格納装置と、
      前記処理プロセスを実行し、前記複数のデータ格納装置と通信可能に接続されている処理プロセス実行装置を有し、
     当該プログラムは、前記コンピュータに、
      前記各データ格納装置の処理負荷を表すデータ格納装置負荷情報を取得する機能と、
      前記各処理プロセスが前記データの入力又は出力を行う前記データ格納装置の候補を示す候補情報を取得する機能と、
      前記各処理プロセスに関するデータ格納装置の候補の中から、前記データ格納装置負荷情報に示されている処理負荷が低い前記データ格納装置を優先的に選択することにより、前記処理プロセスと該処理プロセスが前記データの入力又は出力を行う前記データ格納装置とをそれぞれ対応づけた入出力先情報を生成する機能を持たせるプログラム。
  10.  データの入力又は出力を行う複数の処理プロセスを分散処理する分散システムを制御するコンピュータによって実行される制御方法であって、
     前記分散システムは、
      複数のデータ格納装置と、
      前記処理プロセスを実行し、前記複数のデータ格納装置と通信可能に接続されている処理プロセス実行装置を有し、
     当該制御方法は、
      前記各データ格納装置の処理負荷を表すデータ格納装置負荷情報を取得するステップと、
      前記各処理プロセスが前記データの入力又は出力を行う前記データ格納装置の候補を示す候補情報を取得するステップと、
      前記各処理プロセスに関するデータ格納装置の候補の中から、前記データ格納装置負荷情報に示されている処理負荷が低い前記データ格納装置を優先的に選択することにより、前記処理プロセスと該処理プロセスが前記データの入力又は出力を行う前記データ格納装置とをそれぞれ対応づけた入出力先情報を生成するステップを有する制御方法。
PCT/JP2013/002179 2012-07-30 2013-03-29 分散システム制御装置、プログラム、及び制御方法 WO2014020795A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014527946A JPWO2014020795A1 (ja) 2012-07-30 2013-03-29 分散システム制御装置、プログラム、及び制御方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2012168949 2012-07-30
JP2012-168949 2012-07-30

Publications (1)

Publication Number Publication Date
WO2014020795A1 true WO2014020795A1 (ja) 2014-02-06

Family

ID=50027513

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2013/002179 WO2014020795A1 (ja) 2012-07-30 2013-03-29 分散システム制御装置、プログラム、及び制御方法

Country Status (2)

Country Link
JP (1) JPWO2014020795A1 (ja)
WO (1) WO2014020795A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016204833A (ja) * 2015-04-15 2016-12-08 Simplex Quantum株式会社 トイレ情報システム、トイレ情報処理方法、及びトイレ情報処理プログラム

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012043098A (ja) * 2010-08-17 2012-03-01 Fujitsu Ltd 管理装置,ファイルサーバシステム,処理方法及び管理プログラム

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012043098A (ja) * 2010-08-17 2012-03-01 Fujitsu Ltd 管理装置,ファイルサーバシステム,処理方法及び管理プログラム

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
KAZUMA ANDO: "Kaibo! Cloud Technology", NIKKEI SYSTEMS, vol. 217, 26 April 2011 (2011-04-26), pages 70 - 75 *
SHUNSUKE MIKAMI: "Using the Gfarm File System as a POSIX Compatible Storage Platform for Hadoop MapReduce Applications, Grid Computing (GRID)", 2011 12TH IEEE/ACM INTERNATIONAL CONFERENCE ON, 23 September 2011 (2011-09-23), pages 181 - 189 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016204833A (ja) * 2015-04-15 2016-12-08 Simplex Quantum株式会社 トイレ情報システム、トイレ情報処理方法、及びトイレ情報処理プログラム

Also Published As

Publication number Publication date
JPWO2014020795A1 (ja) 2016-07-21

Similar Documents

Publication Publication Date Title
JP7431902B2 (ja) リソース管理システム及び方法
US11620313B2 (en) Multi-cluster warehouse
US10635664B2 (en) Map-reduce job virtualization
CN109565515B (zh) 分布式资源管理系统中的动态租户结构调整的系统、设备和过程
US20130219036A1 (en) Assigning server categories to server nodes in a heterogeneous cluster
CN102859961B (zh) 具有自适应的文件处理的分布式视频转码系统
US20060095435A1 (en) Configuring and deploying portable application containers for improved utilization of server capacity
WO2013018916A1 (ja) 分散処理管理サーバ、分散システム、及び分散処理管理方法
US8874751B2 (en) Candidate set solver with user advice
JP2016515228A (ja) 低レイテンシデータアクセス用のデータストリーム分割
CN107533483A (zh) 服务编排
US10664278B2 (en) Method and apparatus for hardware acceleration in heterogeneous distributed computing
JP6582445B2 (ja) シンクライアントシステム、接続管理装置、仮想マシン稼働装置、方法、および、プログラム
US10097416B2 (en) System and method for group-policy-based configuration
CN103414657A (zh) 一种跨数据中心的资源调度方法、超级调度中心和系统
JP2016024612A (ja) データ処理制御方法、データ処理制御プログラムおよびデータ処理制御装置
WO2018079162A1 (ja) 情報処理システム
WO2018235739A1 (ja) 情報処理システムおよびリソース割り当て方法
WO2011070716A1 (ja) 情報処理システム、制御方法およびプログラムが格納された非一時的なコンピュータ可読媒体
WO2014020795A1 (ja) 分散システム制御装置、プログラム、及び制御方法
JP2016177324A (ja) 情報処理装置、情報処理システム、情報処理方法、及びプログラム
JP6287261B2 (ja) システム制御装置、制御方法、及びプログラム
JP2008210117A (ja) 情報管理システム及びユーザ情報の管理方法
US10824640B1 (en) Framework for scheduling concurrent replication cycles
JP2010287172A (ja) 計算機ノード、計算機システム、プロセス生成方法およびプロセス生成プログラム

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

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2014527946

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

Country of ref document: EP

Kind code of ref document: A1