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

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

Info

Publication number
WO2012017699A1
WO2012017699A1 PCT/JP2011/051347 JP2011051347W WO2012017699A1 WO 2012017699 A1 WO2012017699 A1 WO 2012017699A1 JP 2011051347 W JP2011051347 W JP 2011051347W WO 2012017699 A1 WO2012017699 A1 WO 2012017699A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
server
execution
frequency
state
Prior art date
Application number
PCT/JP2011/051347
Other languages
English (en)
French (fr)
Inventor
渡辺 聡
Original Assignee
株式会社日立製作所
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社日立製作所 filed Critical 株式会社日立製作所
Priority to US13/813,987 priority Critical patent/US20130144953A1/en
Publication of WO2012017699A1 publication Critical patent/WO2012017699A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • H04L65/403Arrangements for multi-party communication, e.g. for conferences
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/762Media network packet handling at the source 

Definitions

  • the present invention relates to a computer system, and more particularly to a computer system that determines data to be moved when a server is newly added to the computer system.
  • the system includes a scheduler that receives a request to execute a job and transmits the received request to a server for executing the job (hereinafter referred to as an execution server), and an execution server.
  • the scheduler of this system analyzes the job request, ie the request for the job, determines the execution server to execute the requested job, and sends the request to execute the job to the determined execution server (eg patent Reference 1).
  • Patent Document 2 proposes a system for storing data used in a job in a memory (main storage device) of an execution server.
  • JP 2008-152618 A Unexamined-Japanese-Patent No. 7-334402 JP, 2009-110129, A
  • the execution server having the uneven load may cause a bottleneck, that is, a delay in processing, and the overall processing may be delayed. For this reason, when scaling out an execution server, data needs to be moved so that the load on the execution server can be equalized.
  • jobs executed in the system not only jobs that process one data as an argument, but also jobs that process a plurality of data exist.
  • a bank account deposit and withdrawal system data of account numbers and account balances are managed in correspondence with each other. Then, in such a deposit and withdrawal system, a job of withdrawing from one account and depositing to the other account is executed. Such a job processes a plurality of data, such as account number and account balance data of the account being dispensed, and account number and account balance data of the deposited account.
  • a job that processes a plurality of data will be referred to as a linked job.
  • one server terminates the preceding process (e.g., payment process) and then notifies the other execution server that the preceding process has ended. Send to Then, the other execution server executes the subsequent process (for example, the deposit process) after receiving that effect.
  • the preceding process e.g., payment process
  • the subsequent process for example, the deposit process
  • the first object of the present invention is to move to an execution server to be added in order to perform load balancing among execution servers, reduce overhead in communication of cooperation jobs, or both when scaling out execution servers.
  • the data is to be determined properly.
  • a job that is not a linked job may access data according to a specific pattern. For example, there is a job that accesses data according to a specific pattern such as that it is likely to process another data (data 2) after processing one data (data 1).
  • the scheduler waits for the processing of data 1 to finish, in order to guarantee the order for processing the data. After the processing is completed, the execution server is instructed to process data 2.
  • the second object of the present invention is added when scaling out the execution server, in order to equalize the load of the execution server, reduce the processing load on the scheduler due to the difference in access pattern to data, or both.
  • the data to be moved to the execution server is properly determined.
  • a computer system comprising: a plurality of execution servers for executing a plurality of jobs; and a scheduler server connected to the execution server, the execution server holding a plurality of data processed by the jobs;
  • the scheduler server generates a plurality of first sets each including a plurality of data processed by the plurality of continuously executed jobs, the data held in one of the execution servers, and the other
  • a second set including data held by the execution server is extracted from the plurality of first sets, and data included in the extracted second set is newly added to the execution server Decide on the data to move.
  • the load among execution servers can be equalized to reduce the overhead in communication.
  • FIG. 1 is a block diagram showing the configuration of a computer system according to the embodiment of this invention.
  • the computer system shown in FIG. 1 includes a scheduler server 100 and one or more execution servers 101 (execution servers 101-1, 101-2,..., 101- (N-1)).
  • Reference numeral 101-N denotes an execution server 101 added to the computer system in the present embodiment.
  • the scheduler server 100 and the execution server 101 are connected by a network 102.
  • the scheduler server 100 is a computer including a CPU 112 and a memory.
  • the scheduler server 100 includes a request analysis unit 103, an execution server determination unit 104, a request transmission / reception unit 105, an access pattern analysis unit 106, a movement data determination unit 108, a job data arrangement table 109, a data use frequency table 110, and an access pattern.
  • a management table 111 is provided.
  • the request analysis unit 103, the execution server determination unit 104, the request transmission / reception unit 105, the access pattern analysis unit 106, and the movement data determination unit 108 included in the scheduler server 100 are stored in the memory of the scheduler server 100 and executed by the CPU 112. Implemented by a program.
  • the job data arrangement table 109, the data use frequency table 110, and the access pattern management table 111 are tables stored in the memory of the scheduler server 100.
  • the memory of the scheduler server 100 can store programs, data, and the like. Moreover, data etc. can be stored temporarily.
  • the request analysis unit 103 is implemented by a program for analyzing a request or the like sent by a manager or a user or another scheduler server 100 or the like, and sending information included in the request or the like to each program.
  • the access pattern analysis unit 106 is implemented by a program for measuring the usage frequency of the data 125 stored in each execution server 101.
  • the execution server determination unit 104 is implemented by a program that determines the execution server 101 to execute the job requested by the job execution request 130.
  • the request transmission / reception unit 105 is implemented by a program for sending information etc. of the job requested to be executed to the execution server 101 determined by the execution server determination unit 104. Also, the request transmission / reception unit 105 receives the execution result of the job from the execution server 101.
  • the migration data determination unit 108 is implemented by a program that determines data 125 to be migrated from the existing execution server 101 to the added execution server 101 when the execution server 101 is added.
  • the execution server 101 is a computer including a CPU 126 and a memory.
  • the execution servers 101-1 to 101- (N-1) include a request transmission / reception unit 120, a deposit job 121, a withdrawal job 122, a data transmission / reception unit 123, a job data arrangement table 109, and data 125. Further, the execution server 101 -N includes a request transmission / reception unit 120, a deposit job 121, a withdrawal job 122, and a data transmission / reception unit 123.
  • the request transmission / reception unit 120 and the data transmission / reception unit 123 included in the execution server 101 are stored in the memory of the execution server 101 and implemented by a program executed by the CPU 126.
  • the deposit job 121 and the withdrawal job 122 are jobs including a program executed by the CPU 126.
  • the job data arrangement table 109 and data 125 (data 125-1 to 125- (N-1)) provided in the execution servers 101-1 to 101- (N-1) are stored in the memory of the execution server 101. Table and data.
  • the request transmission / reception unit 120 is implemented by a program that receives information etc. of a job requested to be sent from the scheduler server 100 and sends the job execution result to the scheduler server 100.
  • the data transmission / reception unit 123 is implemented by a program for transmitting / receiving data 125 between the execution servers 101.
  • the deposit job 121 is a job that adds the number given by the argument to the value stored in the data 125.
  • the withdrawal job 122 is a job that subtracts the number given by the argument from the value stored in the data 125.
  • the execution server 101-N is the execution server 101 that is newly added to the computer system of this embodiment, that is, the execution server 101 to be scaled out.
  • the execution server 101 -N does not have the job data arrangement table 109 and the data 125 before being added to the computer system of this embodiment.
  • the scheduler server 100 determines data 125 stored in the execution server 101-N in order to add the execution server 101-N.
  • the scheduler server 100 and the execution server 101 illustrated in FIG. 1 are implemented by separate computers, but the scheduler server 100 and the execution server 101 according to the present embodiment may be implemented by a virtual computer.
  • a virtual computer is implemented by at least one physical CPU and at least one physical memory.
  • the execution server 101 shown in FIG. 1 holds the deposit job 121 and the withdrawal job 122, but the execution server 101 of the present embodiment is not limited to the deposit job 121 and the withdrawal job 122, and is executed by a program. Any job may be held as long as it is a job.
  • FIG. 2 is an explanatory view showing data 125 according to the embodiment of this invention.
  • Data 125 is data that the execution server 101 processes according to a job.
  • Data 125 includes account number 1251 and account balance 1252.
  • the account number 1251 indicates an identifier uniquely indicating each data 125
  • the account balance 1252 indicates the value of each data 125.
  • Different data 125-1 to 125- (N-1) are stored in the execution servers 101-1 to 101- (N-1).
  • the execution server 101-1 stores data 125 indicating that the account number 1251 is 1 to 1000
  • the execution server 101-2 stores data 125 indicating the account number 1251 of 1001 to 2000.
  • data of 1000 ⁇ (N ⁇ 1) +1 to 1000 ⁇ N is stored in the execution server 101-(N ⁇ 1) for the account number 1251.
  • FIG. 3 is an explanatory view showing the job data arrangement table 109 according to the embodiment of this invention.
  • the job data arrangement table 109 is held by the scheduler server 100 and the execution server 101.
  • the job data arrangement table 109 shows the correspondence between the types of jobs executed by the execution server 101 and the execution server 101 and the data processed by the execution server 101.
  • the job data arrangement table 109 is updated when the execution server 101 is scaled out.
  • the updated job data arrangement table 109 is transmitted to each execution server 101 by the scheduler server 100.
  • the job data arrangement table 109 includes an execution server 1091, a job 1092 and an account number 1093.
  • the execution server 1091 is an identifier that uniquely indicates the execution server 101.
  • the job data arrangement table 109 includes an entry for each execution server 101.
  • the job 1092 includes the type of job that can be executed on the execution server 101 indicated by the execution server 1091. Further, the account number 1093 includes an identifier of the data 125, that is, the account number 1251 shown in FIG. Account number 1093 may include multiple identifiers.
  • the execution server 1091 is the execution servers 101-1 to 101- (N-1) and the job 1092 is "payment job, withdrawal job"
  • the job data arrangement table 109 is The execution servers 101-1 to 101- (N-1) indicate that the deposit job and the deposit job can be executed.
  • the deposit job shown in the job data arrangement table 109 is a job for adding the input argument to the account balance 1252 of the data 125, and is a job executed by the deposit job 121.
  • the withdrawal job shown in the job data arrangement table 109 is a job for subtracting the input argument from the account balance 1252 of the data 125, and is a job executed by the withdrawal job 122.
  • the execution server 1091 when the execution server 1091 indicates the execution server 101-1 and the account number 1093 indicates 1 to 1000, the execution server 101-1 stores data 125 having the account numbers 1251 of 1 to 1000 shown in FIG. Be done. Further, when the execution server 1091 indicates the server execution server 101-2 and the account number 1093 indicates 1001 to 2000, the execution server 101-2 includes data 125 whose account number 1251 shown in FIG. 2 is 1001 to 2000. Stored.
  • the execution server 1091 When the execution server 1091 indicates the execution server 101- (N-1) and the account number 1093 indicates 1000 ⁇ (N-1) +1 to 1000 ⁇ N, the execution server 101- (N-1) Data in which the account number 1251 is 1000 ⁇ (N ⁇ 1) +1 to 1000 ⁇ N is stored.
  • deposit job 121 and one withdrawal job 122 are stored in each entry of the job 1092 of FIG. 3, a plurality of deposit jobs 121 or withdrawal jobs 122 may be stored.
  • FIG. 4 is an explanatory view showing the data use frequency table 110 according to the embodiment of this invention.
  • the data use frequency table 110 is held by the scheduler server 100.
  • the data use frequency table 110 indicates the use frequency of the data 125, that is, the frequency with which each entry of the data 125 is processed by the job.
  • the data use frequency table 110 includes an account number 1101 and a use frequency 1102.
  • the account number 1101 indicates an identifier of the data 125, and corresponds to the account number 1251 shown in FIG. 2 and the value of the account number 1093 shown in FIG.
  • the usage frequency 1102 indicates, for example, the frequency with which the data 125 indicated by the account number 1101 is processed by the job per minute.
  • the data use frequency table 110 shown in FIG. 4 is a table for storing the use frequency 1102 for each account number 1101, the data 125 may be used for each predetermined number in order to reduce the number of entries in the data use frequency table 110.
  • the use frequency 1102 may be stored in the plurality of data use frequency tables 110 by, for example, putting together the entries in which the account number 1101 is 1 to 100 and the account number 1101 is the execution servers 101 to 200, respectively.
  • FIG. 5 is an explanatory view showing the access pattern management table 111 according to the embodiment of this invention.
  • the access pattern management table 111 includes a pair of account numbers 1111 and usage frequencies 1112.
  • a set of account numbers 1111 indicates a set of data 125 when another data 125 is processed after one data 125 is processed.
  • the values shown in the account number set 1111 correspond to the account number 1251 shown in FIG. 2, the value of the account number 1093 shown in FIG. 3, and the account number 1101 shown in FIG.
  • the data 125 included in the set of account numbers 1111 is processed within a certain period of time when a normal job is executed, not only the set of data 125 continuously processed by the cooperation job. It may be a set of likely data 125.
  • the usage frequency 1112 indicates the frequency at which the set of data 125 shown in the set of account numbers 1111 is processed.
  • the usage frequency 1112 indicates, for example, the frequency with which the set of data 125 indicated by the set of account numbers 1111 is processed by the job per minute.
  • the access pattern management table 111 shown in FIG. 5 is a table for storing the use frequency 1112 for each set of account numbers 1111. However, in order to reduce the number of entries in the access pattern management table 111, the data is divided by a predetermined number. A plurality of access pattern management tables 111 may be created.
  • the first value of the values of the data 125 included in the set of account numbers 1111 is 1 to 100
  • the second value of the values of the data 125 included in the set of account numbers 1111 The use frequency 1112 may be stored in the plurality of access pattern management tables 111 by grouping the entries, such as a set of 1000 to 1100.
  • the data 125 in the present embodiment is not limited to the account number 1251 and the account balance 1252, but may be any type of data as long as it includes an identifier uniquely identifying each data 125 and a value. Therefore, the column names of the job data arrangement table 109, the data use frequency table 110, and the access pattern management table 111 may be different names according to the type of data stored in the data 125.
  • the scheduler server 100 causes the execution server 101 to execute the job requested by the job execution request 130 after the execution request 130 of the job is sent by the administrator or the user, or by another scheduler server 100 or the like.
  • the job execution request 130 includes information uniquely indicating a job to be executed and information uniquely indicating data 125 processed by the job to be executed.
  • the job execution request 130 includes, for example, arguments to be input to the job, as necessary.
  • the job execution request 130 in the present embodiment includes information requesting “execution of a withdrawal job for dispensing 1 yen from the account with the account number 1”.
  • "No. 1" indicates information uniquely indicating the data 125
  • "disbursement job” indicates information uniquely indicating the job to be executed
  • "one yen” indicates an argument.
  • the values included in the job execution request 130 may indicate the data 125 and the job uniquely, and may be an identifier or a name.
  • the job execution request 130 includes information indicating a request for execution of a cooperative job
  • the job execution request 130 includes two or more pieces of information indicating the job and the data 125, respectively.
  • “1 yen is deposited from the account with the account number of 1 and the payment of 1 yen to the account with the account number of 2 and the execution of the withdrawal job. Contains information to request job execution.
  • the job execution request 130 may be specified by any method, including the information as described above.
  • the job execution request 130 may be described, for example, in the form of CSV (Comma Separated Values).
  • the request analysis unit 103 extracts the job name and the identifier indicating the data 125, etc. included in the job execution request 130, and the access pattern analysis unit 106 and the execution are performed. It is sent to the server determination unit 104.
  • the access pattern analysis unit 106 measures the use frequency of the data 125 stored in all of the execution servers 101 at predetermined time intervals, such as one minute. Then, the use frequency 1102 of the data use frequency table 110 and the use frequency 1112 of the access pattern management table 111 are updated to the latest values.
  • the execution server 101 When executing a job, the execution server 101 transmits information indicating the processed data 125 and the job to the scheduler server 100. Therefore, the scheduler server 100 measures the frequency of use of the data 125 by transmitting information from the execution server 101. Also, the access pattern analysis unit 106 measures, for a certain period of time, the frequency at which the other data 125 is processed after one data 125 is processed.
  • the access pattern analysis unit 106 sends each job to the execution server 101 for a certain period of time based on the information indicating the data 125 received from the request analysis unit 103.
  • the usage frequency of the stored data 125 is measured.
  • the use frequency 1102 of the data use frequency table 110 and the use frequency 1112 of the access pattern management table 111 are updated according to the measured use frequency.
  • the access pattern analysis unit 106 receives information requesting “execution of a dispensing job for dispensing 1 yen from the account with the account number 1”, the data for which the account number 1251 is 1 The usage frequency of 125 is measured for a fixed time, for example, one minute. Then, the data use frequency table 110 is updated according to the measured use frequency.
  • the access pattern analysis unit 106 performs “execution of a withdrawal job to withdraw 1 yen from the account with the account number 1 and execution of a deposit job to deposit 1 yen to the account with the account number 2”.
  • the usage frequency is measured for a certain period of time for the combination of the data 125 whose account number 1251 is 1 and the data 125 whose account number 1251 is 2, and the access pattern management table 111 is updated.
  • the access pattern analysis unit 106 may update the access pattern management table 111 in addition to the case where the execution request of the cooperative job is received. For example, the access pattern analysis unit 106 measures the frequency of transmission from the execution server 101 that the data 125 with the account number 1251 is processed following the processing of the data 125 with the account number 1251. Do.
  • the access pattern analysis unit 106 sets the data 125 whose account number 1251 is 1 and the data 125 whose account number 1251 is 2.
  • the group is stored in the group of account numbers 1111 of the access pattern management table 111, and the frequency transmitted from the execution server 101 is stored in the use frequency 1112.
  • the access pattern analysis unit 106 updates the data usage frequency table 110 and the access pattern management table 111, the usage frequency 1102 or usage frequency 1112 measured in the past and the usage frequency 1102 or usage frequency newly measured The average with 1112 may be calculated, and the calculated average value may be stored in the use frequency 1102 or the use frequency 1112. Alternatively, the usage frequency 1102 or usage frequency 1112 measured in the past may be deleted, and the usage frequency 1102 or usage frequency 1112 newly measured may be stored.
  • the execution server determination unit 104 refers to the job data arrangement table 109, and the job 1092 indicated by the information sent by the request analysis unit 103 The account number 1093 is extracted. Then, the execution server 1091 including the extracted job 1092 and the account number 1093 is determined as the execution server 101 that executes the job requested by the job execution request 130. Then, the determined transmission server 101 and the job to be executed are transmitted to the request transmission / reception unit 105.
  • the request transmission / reception unit 105 transmits a request to execute a job to the request transmission / reception unit 120 of the execution server 101 determined by the execution server determination unit 104. At this time, the request sent to the request transmission / reception unit 120 includes the information included in the job execution request 130.
  • the request transmission / reception unit 120 After the request transmission / reception unit 120 receives the request for executing the job by the request transmission / reception unit 105, the CPU 126 of the execution server 101 executes the job according to the information included in the request. After the CPU 126 executes the job, the request transmission / reception unit 120 transmits the job execution result to the request transmission / reception unit 105.
  • the requested job is executed by the execution server 101.
  • the input job execution request 130 requests the execution of a cooperative job, there may be cases where it is executed by a plurality of execution servers 101.
  • the job execution request 130 “executes a withdrawal job in which 1 yen is dispensed from the account whose account number is No. 1 and execution of a deposit job in which 1 yen is deposited into the account whose account number is 1001”.
  • the scheduler server 100 first determines the execution server 101 that executes the first job according to the above-mentioned procedure.
  • the execution server determination unit 104 determines the execution server 101 to execute the first job as the execution server 101-1
  • the request transmission / reception unit 105 executes the withdrawal job 122 to the execution server 101-1.
  • the CPU 126 of the execution server 101-1 refers to the job data arrangement table 109 and executes the execution server 101 which executes the second job. decide.
  • the CPU 126 of the execution server 101-1 transmits a request for job execution to the execution server 101-2.
  • the request transmission / reception unit 120 of the execution server 101-1 and the request transmission / reception unit 120 of the execution server 101-2 transmit / receive a request for job execution.
  • a server scale-out command 131 is input to the scheduler server 100 by an administrator or the like.
  • the server scale-out command 131 includes a communication frequency threshold.
  • the threshold value of the communication frequency is a value used when the administrator or the like specifies the frequency of communication between the execution servers 101 which is generated by executing the cooperation job.
  • the communication frequency in the present embodiment is the communication frequency that occurs between existing execution servers 101, that is, between the execution servers 101-1 to 101- (N-1).
  • the threshold value of the communication frequency may be designated by the administrator or the like by the server scale-out command 131, or may be stored in advance in the scheduler server 100.
  • the movement data determination unit 108 of the scheduler server 100 determines the data 125 to be moved to the execution server 101 -N so as to be equal to or less than the specified communication frequency threshold by specifying the communication frequency threshold.
  • the threshold value of the communication frequency is specified, for example, by the number of communication occurring per minute.
  • the server scale out command 131 includes information indicating either equalization priority, communication reduction priority, or both.
  • the equalization priority is to be added to the added execution server 101 -N so that the loads of all the execution servers 101 are equalized based on the frequency of use of the data 125 when the execution server 101 -N is added. It is an instruction to move the data 125.
  • the communication reduction priority is an instruction to move the data 125 so that the data 125 processed by the cooperation job is stored in the same execution server 101.
  • the server scale-out command 131 indicates either the equalization priority or the communication reduction priority by the communication frequency threshold. That is, when the communication frequency threshold is specified as 0 times / minute, the server scale out command 131 indicates communication reduction priority, and when the communication frequency threshold is specified as infinite, the server scale out command 131 Indicates the equalization priority.
  • the server scale out command 131 indicates both equalization priority and communication reduction priority.
  • the server scale out command 131 indicates which of the equalization priority and the communication reduction priority is to be prioritized depending on the magnitude of the communication frequency threshold.
  • the movement data determination unit 108 is implemented by a program for determining data 125 to be moved to the execution server 101-N when the execution server 101-N is added.
  • the request analysis unit 103 sends the information indicated by the server scale out command 131 to the movement data determination unit 108.
  • the movement data determination unit 108 receives the information indicated by the server scale out command 131 from the request analysis unit 103, the movement data determination unit 108 moves to the newly added execution server 101-N according to the information indicated by the server scale out command 131. Data 125 is determined.
  • FIG. 100 shows the process which determines the data 125 which moves to the added execution server 101.
  • FIG. 6 is a flowchart showing a procedure of determining the data 125 to be moved to the execution server 101-N according to the embodiment of this invention.
  • the process of the movement data determination unit 108 will be described below with reference to the flowchart of FIG.
  • the process of the movement data determination unit 108 shown in FIG. 6 is performed to determine the data 125 to be moved so as to reduce the communication frequency between the execution servers 101, and to move the load amounts of all the execution servers 101 to be equalized. Determining the data 125 to be transmitted.
  • the movement data determination unit 108 determines data 125 to be moved so as to reduce the communication frequency.
  • the movement data determination unit 108 determines whether the communication frequency of the execution server 101 is higher than the threshold of the communication frequency specified by the server scale-out command 131 (601). Specifically, the movement data determination unit 108 refers to the job data arrangement table 109 to make an account number indicating a set of data 125 stored in different execution servers 101 among the entries of the access pattern management table 111. Extract an entry including a set 1111 of Then, the usage frequencies 1112 of all the extracted entries are summed up. By this, the movement data determination unit 108 calculates the communication frequency between the existing execution servers 101, that is, between the execution servers 101-1 to 101- (N-1).
  • step 601 the movement data determination unit 108 determines the communication frequency threshold value specified by the server scale out command 131 and the communication frequency among the calculated execution servers 101-1 to 101- (N-1). Compare. Then, in step 601, the movement data determination unit 108 determines whether the communication frequency between the execution servers 101-1 to 101- (N-1) is equal to or more than the threshold of the communication frequency specified by the server scale out command 131. It is determined whether or not.
  • step 601 If it is determined in step 601 that the communication frequency between the execution servers 101-1 to 101- (N-1) is equal to or more than the threshold of the communication frequency specified by the server scale-out command 131, between the execution servers 101
  • the mobile data determination unit 108 proceeds to step 603 in order to reduce the frequency of communication.
  • the movement data determination unit 108 selects the entry with the highest usage frequency 1112 among the set 1111 of account numbers indicating the set of data 125 stored in different execution servers 101 extracted in step 601. Do. Then, based on the selected entry, the movement data determination unit 108 determines to move the set of data 125 stored in the different execution server 101 with the highest usage frequency 1112 to the execution server 101-N. (603).
  • the movement data determination unit 108 sets the job data arrangement table 109 so that the set of data 125 determined to move to the execution server 101-N corresponds to the execution server 101-N in step 603. Update.
  • step 603 the movement data determination unit 108 continues until the communication frequency between the execution servers 101-1 to 101- (N-1) becomes equal to or less than the threshold of the communication frequency specified by the server scale out command 131. Steps 601 and 603 are repeated.
  • step 601 If it is determined in step 601 that the communication frequency between the execution servers 101-1 to 101- (N-1) is smaller than the communication frequency threshold value specified by the server scale-out command 131, the communication between the execution servers 101 is performed.
  • the communication frequency is a frequency that causes no problem, and there is no need to change the communication frequency between the execution servers 101, so the movement data determination unit 108 proceeds to step 604.
  • the movement data determination unit 108 determines the data 125 to be moved in order to equalize the load of the execution server 101.
  • the movement data determination unit 108 calculates the load amount of each of the execution servers 101 of the execution servers 101-1 to 101- (N-1), and generates the execution server load list 113 (604). Specifically, the movement data determination unit 108 adds the use frequency 1102 of the data use frequency table 110 for each execution server 101 by referring to the data use frequency table 110 and the job data arrangement table 109. By this, the load amount for each execution server 101 is calculated. Then, in step 604, the movement data determination unit 108 generates the active server load list 113 in which the information indicating the active server 101 is sorted in descending order of the calculated load amount.
  • FIG. 7 is an explanatory diagram of the execution server load list 113 according to the embodiment of this invention.
  • the execution server load list 113 includes an execution server 1131 and a load amount 1132.
  • the execution server 1131 is an identifier or name uniquely indicating the execution server 101.
  • the load amount 1132 is the load amount calculated in step 604.
  • the execution server load list 113 stores entries in the descending order of the load amount 1132.
  • the active server load list 113 illustrated in FIG. 7 sorts the load amount 1132 in descending order, but may be in ascending order as long as the movement data determination unit 108 can identify the size of the load amount 1132.
  • the movement data determination unit 108 stores 1 in the parameter K and stores 1 in the parameter J as an initial setting (605).
  • the parameter K is a parameter indicating the order in which the load amount is large.
  • the parameter J is a parameter indicating the order in which the frequency of use of the data 125 is large.
  • the movement data determination unit 108 refers to the active server load list 113 and extracts the active server 1131 (corresponding to the active server 101) having the Kth largest load amount 1132. Then, with reference to the job data arrangement table 109 and the data use frequency table 110, the J-th data 125 (corresponding to the account number 1093) held in the extracted execution server 101 (corresponding to the execution server 1091) Data 125 (corresponding to account number 1101) having a large usage frequency 1102 is extracted (606).
  • step 606 the movement data determination unit 108 moves the J-th largest data 125 out of the data 125 held by the execution server 101 having the largest K amount 1132 extracted to the execution server 101-N.
  • the job data arrangement table 109 in the case of having been made to generate temporarily.
  • the job data arrangement table 109 generated temporarily here is stored in a temporary storage area of a memory provided in the scheduler server 100.
  • the movement data determination unit 108 refers to the access pattern management table 111 and the job data arrangement table 109 generated temporarily, and executes the execution server 101-1 according to the same procedure as step 601. Calculate the communication frequency between ⁇ 101-N. That is, the movement data determination unit 108 refers to the temporarily generated job data arrangement table 109 to set a set of data 125 stored in different execution servers 101 among the entries of the access pattern management table 111. An entry is extracted that includes the indicated account number set 1111. Then, the communication frequency between the execution servers 101-1 to 101-N is calculated by totaling all the use frequencies 1112 of the extracted entries.
  • the movement data determination unit 108 determines whether the calculated communication frequency between the execution servers 101-1 to 101-N is equal to or higher than the threshold of the communication frequency specified by the server scale-out command 131. (607). That is, in step 607, when the data 125 of the J-th most frequently used among the data 125 of the K-th largest execution server 101 is moved to the execution server 101-N, the movement data determination unit 108 determines the communication frequency. It is determined whether or not the threshold value is greater than or equal to the threshold value.
  • the movement data determination unit 108 reduces the load on the execution server 101 by moving the frequently used data 125 to the execution server 101 -N. However, if the frequently used data 125 is the data 125 referred to by the cooperation job, the communication frequency may be increased by moving the frequently used data 125 to the execution server 101 -N. Therefore, in step 607, the movement data determination unit 108 determines whether the communication frequency between the execution servers 101 is equal to or more than the threshold of the communication frequency specified by the server scale-out command 131.
  • step 607 when the calculated communication frequency between the execution servers 101-1 to 101-N is equal to or more than the threshold of the communication frequency specified by the server scale-out command 131, the communication frequency between the execution servers 101 is Since the communication frequency specified by the administrator or the like is equal to or higher than the communication frequency, the mobile data determination unit 108 does not move the J-th most frequently used data 125 to the execution server 101 -N, but temporarily generates job data arrangement Delete the table 109. Then, the process proceeds to step 610.
  • step 607 if the calculated communication frequency between the execution servers 101-1 to 101-N is smaller than the communication frequency threshold value specified by the server scale-out command 131, the communication frequency between the execution servers 101 is managed
  • the mobile data determination unit 108 proceeds to step 608 because the communication frequency is smaller than the communication frequency designated by the person or the like.
  • step 608 the movement data determination unit 108 determines that the difference between the load amount of the execution server 101-N and the load amount of the execution server 101 with the K-th largest load amount is the J-th usage frequency. After moving the large data 125 to the execution server 101-N, it is determined whether or not it becomes smaller than before moving.
  • the movement data determination unit 108 loads the load amount 1132 of the execution server 101 -N and the K load amount before moving the J-th largest data 125 of the usage frequency 1102 to the execution server 101 -N.
  • the load amount 1132 of the execution server 101-N after calculating the difference between the large load amount 1132 of the execution server 101 and the Jth largest data 125 of the usage frequency 1102 to the execution server 101-N.
  • the difference between the load amount 1132 of the execution server 101 and the K-th largest load amount 1132 is calculated. Then, the calculated two differences are compared to determine whether the difference after moving the large data 125 of the J-th usage frequency 1102 to the execution server 101-N is small (608).
  • the load amount 1132 of the execution server 101 -N is larger than the load amount 1132 of the execution server 101 of the transfer source of the data 125 by moving the data 125 to the execution server 101 -N.
  • any calculation method may be used as long as it can be determined whether or not the difference between the load amount 1132 of the execution server 101 -N and the load amount 1132 of the execution server 101 of the migration source of the data 125 increases.
  • the movement data determination unit 108 adds the usage frequency 1102 of the J-th most frequently used data 125 to the load amount of the execution server 101-N to execute the J-th most frequently used data 125 as an execution server.
  • a new load amount of the execution server 101-N when moving to 101-N may be calculated.
  • a new load amount of the execution server 101 having the largest K amount 1132 when moving to 101-N may be calculated.
  • the movement data determination unit 108 may calculate the difference by subtracting the calculated new load amount of the execution server 101 -N and the new load amount of the execution server 101 having the largest K 1132. .
  • step 608 if the difference between the load amount 1132 of the execution server 101-N and the load amount 1132 of the execution server 101 having the K-th largest load amount 1132 is increased by moving the data 125, the execution server 101- Since the load amount 1132 of N is excessive and the load among the execution servers 101 is not equalized, the movement data determination unit 108 does not move the data 125 with the J-th highest usage frequency to the execution server 101 -N, step 606 Delete the job data arrangement table 109 temporarily generated at step. Then, the process proceeds to step 610.
  • step 608 if the difference between the load amount 1132 of the execution server 101-N and the load amount 1132 of the execution server 101 having the K-th largest load amount 1132 is reduced by moving the data 125, all the execution servers Since the load between 101 is leveled, the movement data determination unit 108 moves the Jth largest data 125 out of the data 125 held by the Kth largest execution server 101 to the execution server 101-N. Decide what to do (609). Then, the job data arrangement table 109 of the scheduler server 100 is updated based on the job data arrangement table 109 temporarily generated in step 606.
  • step 609 the movement data determination unit 108 returns to step 604. Then, in step 604, the execution server load list 113 is generated after moving the data 125 determined in step 609 to the execution server 101-N.
  • the movement data determination unit 108 proceeds to step 605, and stores 1 in each of the parameter K and the parameter J.
  • the movement data determination unit 108 of the scheduler server 100 determines the data 125 to be moved to the execution server 101-N in step 605, the movement data determination unit 108 can extract the execution server 101 having the largest load amount 1132 again. . That is, the movement data determination unit 108 of the scheduler server 100 of the present embodiment can extract the execution server 101 that should reduce the load amount 1132 most.
  • step 607 or step 608 the movement data determination unit 108 adds 1 to the parameter J in order to select the Jth next largest data 125.
  • the movement data determination unit 108 determines whether or not the value of the parameter J is larger than the number of all data 125 held by the execution server 101 having the K-th largest load amount 1132 (611). When the value of the parameter J is equal to or less than the number of all data 125 held by the execution server 101 having the K-th largest load amount 1132, all the data 125 held by the K-th largest execution amount 1012 is Since it is not determined whether the data can be moved to the execution server 101-N, the movement data determination unit 108 returns to step 606.
  • the movement data determination unit 108 proceeds to step 612.
  • the movement data determination unit 108 adds 1 to the parameter K, and stores 1 in the parameter J (612).
  • the movement data determination unit 108 determines whether the parameters K and N are equal (613). When the parameters K and N are different, it is not determined whether to move the data 125 held by all the existing execution servers 101-1 to 101- (N-1) to the execution server 101-N. The movement data determination unit 108 proceeds to step 606.
  • step 612 when the parameters K and N are equal, it is determined whether to move the data 125 held by the existing execution servers 101-1 to 101- (N-1) to the execution server 101-N, The movement data determination unit 108 ends the process shown in FIG.
  • the movement data determination unit 108 After determining the data 125 to be moved by the process shown in FIG. 6, the movement data determination unit 108 instructs the data transmission / reception unit 123 of the execution server 101 that is the movement source of the data 125 to move the data 125. Also, the movement data determination unit 108 transmits the job data arrangement table 109 updated by the process of FIG. 6 to the execution server 101.
  • the job data arrangement table 109 and the data 125 are stored in the execution server 101-N.
  • the computer system of this embodiment can determine the data 125 to be moved to the execution server 101-N. Further, when determining the data 125 to be moved, both the determination that places importance on the equalization of the load amount 1132 between the execution servers 101 and the determination that places importance on reduction of the communication frequency between the execution servers 101 are performed. By this, it is possible to generate a job execution environment more suitable for the administrator or the like.
  • the computer system is described when N is 3 or more, that is, when the number of existing execution servers 101 is 2 or more. However, when N is 2, that is, the existing execution server The computer system of this embodiment is effective even when there is only one 101. When N is 2, the processing from step 604 of FIG. 6 is executed.
  • FIG. 8 is a flowchart showing a procedure of determining data 125 to be moved to the execution server 101-N according to the embodiment of the present invention with priority given to the communication frequency.
  • the movement data determination unit 108 moves the set of data 125 stored in different execution servers 101 among the entries of the access pattern management table 111 to the execution server 101-N. Determine that (801).
  • the process shown in FIG. 8 can achieve load leveling among execution servers 101 and reduction of communication frequency, particularly when N is a small value such as 3. Therefore, the process shown in FIG. 6 and the process shown in FIG. 8 may be executed according to the number of execution servers 101.
  • the present embodiment it is possible to equalize the load among the execution servers 101, reduce the communication frequency, or both of them according to the request of the administrator or the like. Also, in order to reduce the communication frequency, a set of data 125 frequently processed by the cooperative job or a set of data 125 frequently processed continuously is extracted and added to the execution server 101 -N. Communication frequency can be reduced more efficiently.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

 複数のジョブを実行する複数の実行サーバと、前記実行サーバに接続されるスケジューラサーバとを備える計算機システムであって、前記実行サーバは、前記ジョブによって処理される複数のデータを保持し、前記スケジューラサーバは、連続して実行される前記複数のジョブによって処理される複数のデータを各々含む複数の第1の組を生成し、一つの前記実行サーバに保持されるデータと、他の前記実行サーバに保持されるデータとを含む第2の組を、前記複数の第1の組から抽出し、前記抽出された第2の組に含まれるデータを、新たに追加された前記実行サーバに移動するデータに決定する。

Description

計算機システム、及び、データ管理方法 参照による取り込み
 本出願は、平成22年(2010年)8月6日に出願された日本特許出願特願2010-176992の優先権を主張し、その内容を参照することにより、本出願に取り込む。
 本発明は、計算機システムに関し、特に、計算機システムに新たにサーバを追加する場合に、移動するデータを決定する計算機システムに関する。
 現在、スケジューラとジョブを実行するためのサーバとを用いてジョブを実行するシステムが、広く用いられている。このシステムは、ジョブを実行する要求を受信し、受信した要求を、ジョブを実行するためのサーバ(以降、実行サーバと記載)に送信するスケジューラと、実行サーバとを備える。
 このシステムのスケジューラは、ジョブリクエスト、すなわち、ジョブに関する要求を解析し、要求されたジョブを実行する実行サーバを決定し、ジョブを実行する要求を、決定された実行サーバに送信する(例えば、特許文献1参照)。
 また、ジョブの実行サーバのメモリにデータを格納する技術が提案されている(例えば、特許文献2参照)。特許文献2には、実行サーバのメモリ(主記憶装置)に、ジョブで使用するデータを格納するシステムが提案されている。
 さらに、スケジューラと実行サーバとを備えるシステムにおいて、システムの処理容量が不足する場合、実行サーバを追加することによって、システムの処理容量を大きくするシステムが提案されている。実行サーバを追加することを、実行サーバのスケールアウトと呼ぶ。このように、スケールアウトによって処理容量を増大させるシステムが提案されている(例えば、特許文献3参照)。
特開2008-152618号公報 特開平7-334402号公報 特開2009-110129号公報
 実行サーバのメモリにデータを保持するシステムにおいて、実行サーバをスケールアウトする場合、既存の実行サーバに保持されるデータの一部は、追加する実行サーバに移される必要がある。
 この際、実行サーバにかけられる負荷に偏りが生じると、負荷が偏った実行サーバは、ネック、すなわち処理の遅延の原因になり、全体的な処理が滞る可能性がある。このため、実行サーバをスケールアウトする場合、実行サーバにかかる負荷が平準化されるように、データが移動される必要がある。
 また、システムにおいて実行されるジョブには、一つのデータを引数として処理するジョブだけでなく、複数のデータを処理するジョブが存在する。
 例えば、銀行口座の入出金システムは、口座番号と口座残高とのデータが、相互に対応して管理される。そして、このような入出金システムでは、一方の口座から出金し、他の口座に入金するといったジョブが実行される。このようなジョブは、出金された口座の口座番号及び口座残高のデータと、入金された口座の口座番号及び口座残高のデータとの複数のデータを、処理する。
 複数のデータを処理するジョブを、以降、連携ジョブと記載する。
 連携ジョブによって処理されるデータが異なる実行サーバに格納される場合、一つのサーバは、先行する処理(例えば、出金処理)を終了させた後、先行する処理が終了した旨を他の実行サーバに送信する。そして、他の実行サーバは、その旨を受信した後、後続の処理(例えば、入金処理)を実行する。
 このように、連携ジョブによって処理されるデータが異なる実行サーバに格納される場合、一方の実行サーバから他方の実行サーバに通信が必要である。この通信のオーバヘッドによって、システムの性能が低下するため、連携ジョブによって処理されるデータは、同じ実行サーバに配置されることが望ましい。
 本発明の一つ目の課題は、実行サーバをスケールアウトする場合、実行サーバ間の負荷の平準化、連携ジョブの通信におけるオーバヘッドの削減、又はその両方を行うため、追加する実行サーバに移動するデータを、適切に決定することである。
 また、連携ジョブではないジョブも、特定のパターンによってデータにアクセスする場合がある。例えば、あるデータ(データ1)を処理した後に、別のデータ(データ2)を処理する可能性が高い、といった特定のパターンによって、データにアクセスするジョブが存在する。
 前述の例において、データ1とデータ2とが異なる実行サーバに格納される場合、データを処理するための順序を保証するため、スケジューラは、データ1の処理が終了するのを待ち、データ1の処理が終了後、実行サーバにデータ2の処理を指示する。
 一方、前述の例において、データ1とデータ2とが同じ実行サーバに格納される場合、実行サーバが指示を受けた順にジョブを実行するため、スケジューラは、データ1の処理を待たずに、データ2の処理を指示できる。そのため、スケジューラによる処理を低減するためには、データ1とデータ2とが同じ実行サーバに配置されることが望ましい。
 本発明の二つ目の課題は、実行サーバをスケールアウトする場合、実行サーバの負荷の平準化、データへのアクセスパターンの相違によるスケジューラの処理負担の低減、又は、その両方を行うため、追加する実行サーバに移動するデータを、適切に決定することである。
 本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、複数のジョブを実行する複数の実行サーバと、前記実行サーバに接続されるスケジューラサーバとを備える計算機システムであって、前記実行サーバは、前記ジョブによって処理される複数のデータを保持し、前記スケジューラサーバは、連続して実行される前記複数のジョブによって処理される複数のデータを各々含む複数の第1の組を生成し、一つの前記実行サーバに保持されるデータと、他の前記実行サーバに保持されるデータとを含む第2の組を、前記複数の第1の組から抽出し、前記抽出された第2の組に含まれるデータを、新たに追加された前記実行サーバに移動するデータに決定する。
 本発明の代表的な実施形態によると、実行サーバ間の負荷を平準化し、通信におけるオーバヘッドを低減できる。
本発明の実施形態の計算機システムの構成を示すブロック図である。 本発明の実施形態のデータを示す説明図である。 本発明の実施形態のジョブ・データ配置テーブルに格納される情報を示す説明図である。 本発明の実施形態のデータ利用頻度テーブルを示す説明図である。 本発明の実施形態のアクセスパターン管理テーブルを示す説明図である。 、本発明の実施形態の実行サーバに移動するデータを移動データ決定部が決定する手順を示すフローチャートである。 本発明の実施形態の実行サーバ負荷リストを示す説明図である。 本発明の実施形態の実行サーバに移動するデータを、通信頻度を優先して決定する手順を示すフローチャートである。
 図1は、本発明の実施形態の計算機システムの構成を示すブロック図である。
 図1に示す計算機システムは、スケジューラサーバ100と、1台以上の実行サーバ101(実行サーバ101-1、101-2、・・・、101-(N-1))とを備える。また、101-Nは、本実施形態における計算機システムに追加される実行サーバ101である。スケジューラサーバ100と実行サーバ101とは、ネットワーク102によって接続される。
 スケジューラサーバ100は、CPU112及びメモリを備える計算機である。スケジューラサーバ100は、リクエスト解析部103、実行サーバ決定部104、リクエスト送受信部105、アクセスパターン分析部106、移動データ決定部108、ジョブ・データ配置テーブル109、データ利用頻度テーブル110、及び、アクセスパターン管理テーブル111を備える。
 スケジューラサーバ100に備わるリクエスト解析部103、実行サーバ決定部104、リクエスト送受信部105、アクセスパターン分析部106、及び、移動データ決定部108は、スケジューラサーバ100のメモリに格納され、CPU112によって実行されるプログラムによって実装される。また、ジョブ・データ配置テーブル109、データ利用頻度テーブル110、及び、アクセスパターン管理テーブル111は、スケジューラサーバ100のメモリに格納されるテーブルである。
 スケジューラサーバ100のメモリは、プログラム及びデータ等を格納することができる。また、一時的に、データ等を格納することができる。
 リクエスト解析部103は、管理者若しくはユーザ、又は、別のスケジューラサーバ100等によって送られる要求等を解析し、要求等に含まれる情報を各プログラムに送るためのプログラムによって実装される。アクセスパターン分析部106は、各実行サーバ101に格納されたデータ125の利用頻度を測定するためのプログラムによって実装される。
 実行サーバ決定部104は、ジョブの実行要求130によって要求されたジョブを、実行する実行サーバ101を決定するプログラムによって実装される。リクエスト送受信部105は、実行サーバ決定部104によって決定された実行サーバ101に、実行を要求されたジョブの情報等を送るプログラムによって実装される。また、リクエスト送受信部105は、実行サーバ101からジョブの実行結果を受信する。
 移動データ決定部108は、実行サーバ101が追加される際に、既存の実行サーバ101から追加された実行サーバ101に移動するデータ125を、決定するプログラムによって実装される。
 実行サーバ101は、CPU126及びメモリを備える計算機である。実行サーバ101-1~101-(N-1)は、リクエスト送受信部120、入金ジョブ121、出金ジョブ122、データ送受信部123、ジョブ・データ配置テーブル109、及び、データ125を備える。また、実行サーバ101-Nは、リクエスト送受信部120、入金ジョブ121、出金ジョブ122、及び、データ送受信部123を備える。
 実行サーバ101に備わるリクエスト送受信部120及びデータ送受信部123は、実行サーバ101のメモリに格納され、CPU126によって実行されるプログラムによって実装される。また、入金ジョブ121、及び、出金ジョブ122は、CPU126によって実行されるプログラムを含むジョブである。
 また、実行サーバ101-1~101-(N-1)に備わるジョブ・データ配置テーブル109及びデータ125(データ125-1~125-(N-1))は、実行サーバ101のメモリに格納されるテーブル及びデータである。
 リクエスト送受信部120は、スケジューラサーバ100から送信される実行を要求されたジョブの情報等を受信し、ジョブの実行結果をスケジューラサーバ100に送信するプログラムによって実装される。データ送受信部123は、実行サーバ101間で、データ125を送受信するためのプログラムによって実装される。
 入金ジョブ121は、データ125に格納される値に、引数によって与えられた数を加算するジョブである。出金ジョブ122は、データ125に格納される値から、引数によって与えられた数を減算するジョブである。
 実行サーバ101-Nは、本実施形態の計算機システムに新たに追加される実行サーバ101、すなわちスケールアウトされる実行サーバ101である。実行サーバ101-Nは、本実施形態の計算機システムに追加される前の時点において、ジョブ・データ配置テーブル109及びデータ125を備えていない。本実施形態のスケジューラサーバ100は、実行サーバ101-Nを追加するために、実行サーバ101-Nに格納されるデータ125を決定する。
 なお、図1に示すスケジューラサーバ100と実行サーバ101とは、各々別の計算機によって実装されるが、本実施形態のスケジューラサーバ100及び実行サーバ101は、仮想的な計算機によって実装されてもよい。仮想的な計算機は、少なくとも一つの物理的なCPUと、少なくとも一つの物理的なメモリとによって実装される。
 また、図1に示す実行サーバ101は、入金ジョブ121及び出金ジョブ122を保持するが、本実施形態の実行サーバ101は、入金ジョブ121及び出金ジョブ122に限らず、プログラムによって実行されるジョブであれば、いかなるジョブを保持してもよい。
 図2は、本発明の実施形態のデータ125を示す説明図である。
 データ125は、実行サーバ101がジョブによって処理するデータである。
 データ125は、口座番号1251及び口座残高1252を含む。口座番号1251は、各データ125を一意に示す識別子を示し、口座残高1252は各データ125の値を示す。
 実行サーバ101-1~101-(N-1)には、異なるデータ125-1~125-(N-1)が格納される。例えば、実行サーバ101-1には、口座番号1251が1から1000を示すデータ125が格納され、実行サーバ101-2には、口座番号1251が1001から2000を示すデータ125が格納される。さらに、実行サーバ101-(N-1)には、口座番号1251が1000×(N-1)+1から1000×Nのデータが格納される。
 図3は、本発明の実施形態のジョブ・データ配置テーブル109を示す説明図である。
 ジョブ・データ配置テーブル109は、スケジューラサーバ100及び実行サーバ101によって保持される。ジョブ・データ配置テーブル109は、実行サーバ101と実行サーバ101が実行するジョブの種類と実行サーバ101が処理するデータとの対応関係を示す。ジョブ・データ配置テーブル109は、実行サーバ101がスケールアウトする際に更新される。更新されたジョブ・データ配置テーブル109は、スケジューラサーバ100によって、各実行サーバ101に送信される。
 ジョブ・データ配置テーブル109は、実行サーバ1091、ジョブ1092及び口座番号1093を含む。実行サーバ1091は、実行サーバ101を一意に示す識別子である。ジョブ・データ配置テーブル109は、実行サーバ101ごとにエントリを含む。
 ジョブ1092は、実行サーバ1091が示す実行サーバ101において実行できるジョブの種類を含む。また、口座番号1093は、データ125の識別子、すなわち図2に示す口座番号1251を含む。口座番号1093は、複数の識別子を含んでよい。
 例えば、図3に示すとおり、実行サーバ1091が実行サーバ101-1~101-(N-1)であり、ジョブ1092が"入金ジョブ、出金ジョブ"である場合、ジョブ・データ配置テーブル109は、実行サーバ101-1~101-(N-1)が、入金ジョブ及び出金ジョブを実行可能であることを示す。
 ここで、ジョブ・データ配置テーブル109に示される入金ジョブとは、入力された引数をデータ125の口座残高1252に加算するジョブであり、入金ジョブ121によって実行されるジョブである。また、ジョブ・データ配置テーブル109に示される出金ジョブとは、入力された引数をデータ125の口座残高1252から減算するジョブであり、出金ジョブ122によって実行されるジョブである。
 また、実行サーバ1091が実行サーバ101-1を示し、口座番号1093が1~1000を示す場合、実行サーバ101-1には、図2に示す口座番号1251が1~1000であるデータ125が格納される。また、実行サーバ1091がサーバ実行サーバ101-2を示し、口座番号1093が1001~2000を示す場合、実行サーバ101-2には、図2に示す口座番号1251が1001~2000であるデータ125が格納される。
 また、実行サーバ1091が実行サーバ101-(N-1)を示し、口座番号1093が1000×(N-1)+1~1000×Nを示す場合、実行サーバ101-(N-1)には、口座番号1251が1000×(N-1)+1~1000×Nであるデータが格納される。
 なお、図3のジョブ1092の各エントリには、入金ジョブ121と出金ジョブ122が一つずつ格納されているが、複数の入金ジョブ121又は出金ジョブ122が格納されてもよい。
 図4は、本発明の実施形態のデータ利用頻度テーブル110を示す説明図である。
 データ利用頻度テーブル110は、スケジューラサーバ100によって保持される。データ利用頻度テーブル110は、データ125の利用頻度、すなわち、データ125の各エントリがジョブによって処理される頻度を示す。
 データ利用頻度テーブル110は、口座番号1101及び利用頻度1102を含む。口座番号1101は、データ125の識別子を示し、図2に示す口座番号1251と、図3に示す口座番号1093の値とに相当する。利用頻度1102は、例えば、口座番号1101が示すデータ125が、ジョブによって1分あたりに処理される頻度を示す。
 なお、図4に示すデータ利用頻度テーブル110は、口座番号1101ごとに利用頻度1102を格納するテーブルであるが、データ利用頻度テーブル110のエントリの個数を減らすため、データ125を所定の数ごとに区切ることによって、複数のデータ利用頻度テーブル110が生成されてもよい。すなわち、例えば、口座番号1101が1~100、口座番号1101が実行サーバ101~200であるエントリを各々まとめることによって、複数のデータ利用頻度テーブル110に利用頻度1102が格納されてもよい。
 図5は、本発明の実施形態のアクセスパターン管理テーブル111を示す説明図である。
 アクセスパターン管理テーブル111は、口座番号の組1111及び利用頻度1112を含む。口座番号の組1111には、一つのデータ125が処理された後に、別のデータ125が処理される場合のデータ125の組を示す。口座番号の組1111に示される値は、図2に示す口座番号1251と、図3に示す口座番号1093の値と、図4に示す口座番号1101に相当する。ここで、口座番号の組1111に含まれるデータ125は、連携ジョブによって連続して処理されるデータ125の組だけでなく、通常のジョブが実行される際に、ある一定期間内に処理される可能性が高いデータ125の組であってもよい。
 利用頻度1112は、口座番号の組1111に示されるデータ125の組が、処理される頻度を示す。利用頻度1112は、例えば、口座番号の組1111が示すデータ125の組が、ジョブによって1分あたりに処理される頻度を示す。
 なお、図5に示すアクセスパターン管理テーブル111は、口座番号の組1111ごとに利用頻度1112を格納するテーブルであるが、アクセスパターン管理テーブル111のエントリの個数を減らすため、データを所定の数ごとに区切り、複数のアクセスパターン管理テーブル111が作成されてもよい。
 すなわち、例えば、口座番号の組1111に含まれるデータ125の値のうち一つ目の値が、1~100であり、口座番号の組1111に含まれるデータ125の値のうち二つ目の値が、1000~1100である組といったように、エントリを各々まとめることによって、複数のアクセスパターン管理テーブル111に利用頻度1112が格納されてもよい。
 なお、図5の口座番号の組1111には、二つの口座番号1101の値のみが格納されているが、三つ以上の口座番号1101の値が格納されてもよい。
 また、本実施形態のデータ125は、口座番号1251及び口座残高1252に限られず、各データ125を一意に識別する識別子と、値とを含めば、いかなる種類のデータでもよい。このため、ジョブ・データ配置テーブル109、データ利用頻度テーブル110、及び、アクセスパターン管理テーブル111の列名は、データ125に格納されるデータの種類に従い、異なる名称でもよい。
 (ジョブのスケジュール)
 スケジューラサーバ100は、管理者若しくはユーザ、又は、別のスケジューラサーバ100等によって、ジョブの実行要求130を送られた後、ジョブの実行要求130によって要求されたジョブを実行サーバ101に実行させる。ジョブの実行要求130には、実行されるジョブを一意に示す情報と、実行されるジョブが処理するデータ125を一意に示す情報とが含まれる。また、ジョブの実行要求130には、必要に応じて、ジョブに入力される引数等が含まれる。
 例えば、本実施形態におけるジョブの実行要求130には、「口座番号が1番の口座から、1円を出金する出金ジョブの実行」を要求する情報が含まれる。この場合、"1番"が、データ125を一意に示す情報を示し、"出金ジョブ"が実行されるジョブを一意に示す情報を示し、"1円"が引数を示す。なお、ジョブの実行要求130に含まれる値は、データ125及びジョブを一意に示せばよく、識別子でも名称でもよい。
 また、ジョブの実行要求130が、連携ジョブの実行の要求を示す情報を含む場合、ジョブの実行要求130には、ジョブとデータ125を示す情報が、それぞれ、二つ以上含まれる。例えば、ジョブの実行要求130には、「口座番号が1番である口座から、1円を出金する出金ジョブの実行と、口座番号が2番である口座に、1円を入金する入金ジョブの実行」を要求する情報が含まれる。
 ジョブの実行要求130は、前述のような情報を含めば、いかなる方法によって指定されてもよい。ジョブの実行要求130は、例えば、CSV(Comma Separated Values)形式によって、記載されてもよい。
 スケジューラサーバ100がジョブの実行要求130を受信した後、リクエスト解析部103は、ジョブの実行要求130に含まれる、ジョブ名とデータ125を示す識別子等とを抽出し、アクセスパターン分析部106及び実行サーバ決定部104に送る。
 アクセスパターン分析部106は、例えば1分等の一定時間ごとに、すべての実行サーバ101に格納されたデータ125の利用頻度を測定する。そして、データ利用頻度テーブル110の利用頻度1102及びアクセスパターン管理テーブル111の利用頻度1112を最新の値に更新する。
 実行サーバ101は、ジョブを実行する際に、処理したデータ125とジョブとを示す情報をスケジューラサーバ100に送信する。このため、スケジューラサーバ100は、実行サーバ101から情報を送信されることによって、データ125の利用頻度を測定する。また、アクセスパターン分析部106は、一つのデータ125が処理された後に、他のデータ125が処理される頻度を、一定時間測定する。
 リクエスト解析部103によってジョブとデータ125を示す情報とを送られた後、アクセスパターン分析部106は、リクエスト解析部103から受信したデータ125を示す情報に基づいて、一定時間、各実行サーバ101に格納されたデータ125の利用頻度を測定する。そして、測定された利用頻度によって、データ利用頻度テーブル110の利用頻度1102、及び、アクセスパターン管理テーブル111の利用頻度1112を更新する。
 具体的に、アクセスパターン分析部106は、「口座番号が1番の口座から、1円を出金する出金ジョブの実行」を要求する情報を受信した場合、口座番号1251が1であるデータ125の利用頻度を、例えば1分等の一定時間測定する。そして、測定された利用頻度によって、データ利用頻度テーブル110を更新する。
 また、アクセスパターン分析部106は、「口座番号が1番の口座から1円を出金する出金ジョブの実行と、口座番号が2番の口座に1円を入金する入金ジョブの実行」を要求する情報を受信した場合、口座番号1251が1であるデータ125と口座番号1251が2であるデータ125との組について、一定時間利用頻度を測定し、アクセスパターン管理テーブル111を更新する。
 アクセスパターン分析部106は、連携ジョブの実行要求を受信した場合以外にも、アクセスパターン管理テーブル111を更新してよい。例えば、アクセスパターン分析部106は、口座番号1251が1であるデータ125の処理に続いて、口座番号1251が2であるデータ125が処理されることを、実行サーバ101から送信される頻度を測定する。
 そして、アクセスパターン分析部106は、実行サーバ101から送信された頻度が、予め決められた頻度を上回った場合、口座番号1251が1であるデータ125と、口座番号1251が2であるデータ125の組とを、アクセスパターン管理テーブル111の口座番号の組1111に格納し、実行サーバ101から送信された頻度を利用頻度1112に格納する。
 なお、アクセスパターン分析部106は、データ利用頻度テーブル110及びアクセスパターン管理テーブル111を更新する場合、過去に測定された利用頻度1102又は利用頻度1112と、新たに測定された利用頻度1102又は利用頻度1112との平均を算出し、算出された平均値を利用頻度1102又は利用頻度1112に格納してもよい。また、過去に測定された利用頻度1102又は利用頻度1112を削除し、新たに測定された利用頻度1102又は利用頻度1112を格納してもよい。
 リクエスト解析部103によってジョブとデータ125を示す情報とを送られた後、実行サーバ決定部104は、ジョブ・データ配置テーブル109を参照し、リクエスト解析部103によって送られた情報が示すジョブ1092と口座番号1093とを抽出する。そして、抽出されたジョブ1092と口座番号1093とを含む実行サーバ1091を、ジョブの実行要求130によって要求されたジョブを実行する実行サーバ101に決定する。そして、決定された実行サーバ101と実行するジョブとを、リクエスト送受信部105に送信する。
 リクエスト送受信部105は、実行サーバ決定部104によって決定された実行サーバ101のリクエスト送受信部120に、ジョブを実行する要求を送信する。この際、リクエスト送受信部120に送られる要求には、ジョブの実行要求130に含まれる情報が含まれる。
 リクエスト送受信部120が、リクエスト送受信部105によってジョブを実行する要求を受信した後、実行サーバ101のCPU126は、要求に含まれる情報によって、ジョブを実行する。CPU126が、ジョブを実行した後、リクエスト送受信部120は、ジョブの実行結果をリクエスト送受信部105に送信する。
 前述のように、本実施形態の計算機システムにジョブの実行要求130が入力された後、実行サーバ101によって、要求されたジョブが実行される。ここで、入力されたジョブの実行要求130が連携ジョブの実行を要求する場合、複数の実行サーバ101によって実行される場合がある。
 例えば、ジョブの実行要求130が、「口座番号が1番である口座から1円を出金する出金ジョブの実行と、口座番号が1001番である口座に1円を入金する入金ジョブの実行」を要求する場合、スケジューラサーバ100は、まず、前述の手順によって、一つ目のジョブを実行する実行サーバ101を決定する。ここで、実行サーバ決定部104が一つ目のジョブを実行する実行サーバ101を実行サーバ101-1に決定した場合、リクエスト送受信部105は、実行サーバ101-1に出金ジョブ122を実行する要求を送信する。
 その後、実行サーバ101-1のCPU126が出金ジョブ122を終了した後、実行サーバ101-1のCPU126は、ジョブ・データ配置テーブル109を参照し、二つ目のジョブを実行する実行サーバ101を決定する。ここで、CPU126が二つ目のジョブ実行サーバ101に実行サーバ101-2を決定した場合、実行サーバ101-1のCPU126は、実行サーバ101-2にジョブの実行の要求を送信する。この際、実行サーバ101-1のリクエスト送受信部120、及び、実行サーバ101-2のリクエスト送受信部120は、ジョブの実行の要求を送受信する。
 (スケールアウトによって移動するデータ125の決定)
 本実施形態の計算機システムに、実行サーバ101-Nが追加される場合、管理者等によってスケジューラサーバ100にサーバスケールアウトのコマンド131が入力される。
 サーバスケールアウトのコマンド131には、通信頻度の閾値が含まれる。通信頻度の閾値とは、管理者等が、連携ジョブを実行することによって発生する実行サーバ101間の通信の頻度を、指定する場合に用いる値である。本実施形態の通信頻度は、既存の実行サーバ101間、すなわち、実行サーバ101-1~101-(N-1)間において発生する通信頻度である。なお、通信頻度の閾値は、サーバスケールアウトのコマンド131によって、管理者等から指定されてもよいし、スケジューラサーバ100にあらかじめ格納されていてもよい。
 スケジューラサーバ100の移動データ決定部108は、通信頻度の閾値を指定されることによって、指定された通信頻度の閾値以下になるように、実行サーバ101-Nへ移動するデータ125を決定する。通信頻度の閾値は、例えば、1分あたりに発生する通信の回数によって指定される。
 また、サーバスケールアウトのコマンド131には、平準化優先、通信削減優先、又は、その両方のいずれかを示す情報が含まれる。平準化優先とは、実行サーバ101-Nが追加される際、データ125の利用頻度に基づいて、すべての実行サーバ101の負荷が平準化されるように、追加された実行サーバ101-Nにデータ125を移動する指示である。通信削減優先とは、連携ジョブによって処理されるデータ125が、同じ実行サーバ101に格納されるようにデータ125を移動する指示である。
 本実施形態のサーバスケールアウトのコマンド131は、平準化優先又は通信削減優先のいずれかを、通信頻度の閾値によって示す。すなわち、通信頻度の閾値が0回/分に指定された場合、サーバスケールアウトのコマンド131は、通信削減優先を示し、通信頻度の閾値が無限大に指定された場合、サーバスケールアウトのコマンド131は、平準化優先を示す。
 また、通信頻度の閾値が、0回/分と無限大との間の値である場合、サーバスケールアウトのコマンド131は、平準化優先及び通信削減優先の両方を示す。サーバスケールアウトのコマンド131は、通信頻度の閾値の大小によって、平準化優先又は通信削減優先のいずれを優先させるかを示す。
 移動データ決定部108は、実行サーバ101-Nが追加される際、実行サーバ101-Nへ移動するデータ125を決定するためのプログラムによって実装される。
 サーバスケールアウトのコマンド131がスケジューラサーバ100に入力された場合、リクエスト解析部103は、サーバスケールアウトのコマンド131が示す情報を移動データ決定部108に送る。移動データ決定部108は、リクエスト解析部103からサーバスケールアウトのコマンド131が示す情報を受信した場合、サーバスケールアウトのコマンド131が示す情報に従って、新たに追加される実行サーバ101-Nに移動するデータ125を決定する。
 以下に、100が、追加された実行サーバ101に移動するデータ125を、決定する処理を示す。
 図6は、本発明の実施形態の実行サーバ101-Nに移動するデータ125を移動データ決定部108が決定する手順を示すフローチャートである。
 以下、図6のフローチャートによって、移動データ決定部108の処理を説明する。図6に示す移動データ決定部108の処理は、実行サーバ101間の通信頻度を削減するように移動するデータ125を決定するステップと、すべての実行サーバ101の負荷量を平準化するように移動するデータ125を決定するステップを含む。
 ステップ601、及び、ステップ603において、移動データ決定部108は、通信頻度を削減するように移動するデータ125を決定する。
 まず、移動データ決定部108は、サーバスケールアウトのコマンド131によって指定された通信頻度の閾値より、実行サーバ101の通信頻度が大きいか否かを判定する(601)。具体的には、移動データ決定部108は、ジョブ・データ配置テーブル109を参照することによって、アクセスパターン管理テーブル111のエントリのうち、異なる実行サーバ101に格納されるデータ125の組を示す口座番号の組1111を含むエントリを抽出する。そして、抽出されたすべてのエントリの利用頻度1112を合計する。これによって、移動データ決定部108は、既存の実行サーバ101間、すなわち、実行サーバ101-1~101-(N-1)間の通信頻度を算出する。
 さらに移動データ決定部108は、ステップ601において、サーバスケールアウトのコマンド131によって指定された通信頻度の閾値と、算出された実行サーバ101-1~101-(N-1)間の通信頻度とを比較する。そして、移動データ決定部108は、ステップ601において、実行サーバ101-1~101-(N-1)間の通信頻度が、サーバスケールアウトのコマンド131によって指定された通信頻度の閾値以上であるか否かを判定する。
 ステップ601において、実行サーバ101-1~101-(N-1)間の通信頻度が、サーバスケールアウトのコマンド131によって指定された通信頻度の閾値以上であると判定された場合、実行サーバ101間の通信頻度を減らすため、移動データ決定部108は、ステップ603に移行する。
 ステップ601の後、移動データ決定部108は、ステップ601において抽出された、異なる実行サーバ101に格納されるデータ125の組を示す口座番号の組1111のうち、最も利用頻度1112が大きいエントリを選択する。そして、移動データ決定部108は、選択されたエントリに基づいて、最も利用頻度1112が高く、異なる実行サーバ101に格納されるデータ125の組を、実行サーバ101-Nに移動することを決定する(603)。
 また、移動データ決定部108は、ステップ603において、実行サーバ101-Nに移動することを決定されたデータ125の組と実行サーバ101-Nとが対応するように、ジョブ・データ配置テーブル109を更新する。
 ステップ603の後、移動データ決定部108は、実行サーバ101-1~101-(N-1)間の通信頻度が、サーバスケールアウトのコマンド131によって指定された通信頻度の閾値以下になるまで、ステップ601及びステップ603を繰り返す。
 ステップ601において、実行サーバ101-1~101-(N-1)間の通信頻度が、サーバスケールアウトのコマンド131によって指定された通信頻度の閾値より小さいと判定された場合、実行サーバ101間の通信頻度は問題ない頻度であり、実行サーバ101間の通信頻度を変更する必要はないため、移動データ決定部108は、ステップ604に移行する。
 ステップ604からステップ613までにおいて、移動データ決定部108は、実行サーバ101の負荷を平準化するために、移動するデータ125を決定する。
 ステップ601の後、移動データ決定部108は、実行サーバ101-1~101-(N-1)の実行サーバ101ごとの負荷量を算出し、実行サーバ負荷リスト113を生成する(604)。具体的には、移動データ決定部108は、データ利用頻度テーブル110とジョブ・データ配置テーブル109とを参照することによって、データ利用頻度テーブル110の利用頻度1102を実行サーバ101ごとに加算する。これによって、実行サーバ101ごとの負荷量を算出する。そして、ステップ604において、移動データ決定部108は、算出された負荷量が大きい順に、実行サーバ101を示す情報がソートされた、実行サーバ負荷リスト113を生成する。
 図7は、本発明の実施形態の実行サーバ負荷リスト113を示す説明図である。
 実行サーバ負荷リスト113は、実行サーバ1131及び負荷量1132を含む。実行サーバ1131は、実行サーバ101を一意に示す識別子、又は、名称である。負荷量1132は、ステップ604において算出された負荷量である。
 実行サーバ負荷リスト113には、負荷量1132が大きい順に、エントリが格納される。図7に示す実行サーバ負荷リスト113は、負荷量1132を降順にソートしているが、移動データ決定部108が負荷量1132の大小を識別できれば、昇順でもよい。
 ステップ604の後、移動データ決定部108は、初期設定として、パラメータKに1を格納し、パラメータJに1を格納する(605)。パラメータKは、負荷量が大きい順番を示すパラメータである。パラメータJは、データ125の利用頻度が大きい順番を示すパラメータである。
 ステップ605の後、移動データ決定部108は、実行サーバ負荷リスト113を参照し、K番目に負荷量1132が大きい実行サーバ1131(実行サーバ101に相当)を抽出する。そして、ジョブ・データ配置テーブル109及びデータ利用頻度テーブル110を参照し、抽出された実行サーバ101(実行サーバ1091に相当)に保持されるデータ125(口座番号1093に相当)のうち、J番目に利用頻度1102が大きいデータ125(口座番号1101に相当))を抽出する(606)。
 さらに、移動データ決定部108は、ステップ606において、抽出されたK番目に負荷量1132が大きい実行サーバ101が保持するデータ125のうち、J番目に大きいデータ125を、実行サーバ101-Nに移動させた場合のジョブ・データ配置テーブル109を一時的に生成する。なお、ここで一時的に生成されたジョブ・データ配置テーブル109は、スケジューラサーバ100に備わるメモリの一時的な記憶領域に格納される。
 そして、移動データ決定部108は、ステップ606において、アクセスパターン管理テーブル111と、一時的に生成されたジョブ・データ配置テーブル109とを参照し、ステップ601と同様な手順によって、実行サーバ101-1~101-N間の通信頻度を算出する。すなわち、移動データ決定部108は、一時的に生成されたジョブ・データ配置テーブル109を参照することによって、アクセスパターン管理テーブル111のエントリのうち、異なる実行サーバ101に格納されるデータ125の組を示す口座番号の組1111を含むエントリを抽出する。そして、抽出されたエントリの利用頻度1112をすべて合計することによって実行サーバ101-1~101-N間の通信頻度を算出する。
 ステップ606の後、移動データ決定部108は、算出された実行サーバ101-1~101-N間の通信頻度が、サーバスケールアウトのコマンド131によって指定された通信頻度の閾値以上であるか否かを判定する(607)。すなわち移動データ決定部108は、ステップ607において、K番目に負荷の大きい実行サーバ101のデータ125のうち、J番目に利用頻度の大きいデータ125を、実行サーバ101-Nに移動した場合、通信頻度が閾値以上であるか否かを判定する。
 本実施形態の移動データ決定部108は、利用頻度の大きいデータ125を、実行サーバ101-Nに移動することによって、実行サーバ101の負荷を軽減する。しかし、利用頻度の大きいデータ125が、連携ジョブによって参照されるデータ125である場合、その利用頻度の大きいデータ125を実行サーバ101-Nに移動することによって、通信頻度が高くなる場合がある。このため、移動データ決定部108は、ステップ607において、実行サーバ101間の通信頻度が、サーバスケールアウトのコマンド131によって指定された通信頻度の閾値以上であるか否かを判定する。
 ステップ607において、算出された実行サーバ101-1~101-N間の通信頻度が、サーバスケールアウトのコマンド131によって指定された通信頻度の閾値以上である場合、実行サーバ101間の通信頻度が、管理者等が指定する通信頻度以上になるため、移動データ決定部108は、J番目に利用頻度の大きいデータ125を実行サーバ101-Nに移動せず、一時的に生成されたジョブ・データ配置テーブル109を削除する。そして、ステップ610に移行する。
 ステップ607において、算出された実行サーバ101-1~101-N間の通信頻度が、サーバスケールアウトのコマンド131によって指定された通信頻度の閾値より小さい場合、実行サーバ101間の通信頻度は、管理者等が指定する通信頻度より小さいため、移動データ決定部108は、ステップ608に移行する。
 ステップ607の後、移動データ決定部108は、ステップ608において、実行サーバ101-Nの負荷量と、K番目に負荷量が大きい実行サーバ101の負荷量との差が、J番目に利用頻度の大きいデータ125を実行サーバ101-Nに移動した後において、移動する前より小さくなるか否かを判定する。
 具体的には、移動データ決定部108は、J番目に利用頻度1102の大きいデータ125を実行サーバ101-Nに移動する前における、実行サーバ101-Nの負荷量1132と、K番目に負荷量1132が大きい実行サーバ101の負荷量1132との差を算出し、さらに、J番目に利用頻度1102の大きいデータ125を実行サーバ101-Nに移動した後における、実行サーバ101-Nの負荷量1132と、K番目に負荷量1132が大きい実行サーバ101の負荷量1132との差を算出する。そして、算出された二つの差を比較して、J番目に利用頻度1102の大きいデータ125を実行サーバ101-Nに移動した後における差が小さいか否かを判定する(608)。
 なお、ステップ608における処理は、実行サーバ101-Nへデータ125を移動することによって、実行サーバ101-Nの負荷量1132が、データ125の移動元の実行サーバ101の負荷量1132よりも大きく、かつ、実行サーバ101-Nの負荷量1132とデータ125の移動元の実行サーバ101の負荷量1132との差が増加するか否かを判定できれば、いかなる算出方法を用いてもよい。
 例えば、移動データ決定部108は、J番目に利用頻度の大きいデータ125の利用頻度1102を、実行サーバ101-Nの負荷量に加算することによって、J番目に利用頻度の大きいデータ125を実行サーバ101-Nに移動した場合の実行サーバ101-Nの、新たな負荷量を算出してもよい。また、K番目に負荷量1132が大きい実行サーバ1131の負荷量1132から、J番目に利用頻度の大きいデータ125の利用頻度1102を減算することによって、J番目に利用頻度の大きいデータ125を実行サーバ101-Nに移動した場合のK番目に負荷量1132が大きい実行サーバ101の新たな負荷量を算出してもよい。そして、移動データ決定部108は、算出された、実行サーバ101-Nの新たな負荷量と、K番目に1132が大きい実行サーバ101の新たな負荷量を減算し、差を算出してもよい。
 ステップ608において、実行サーバ101-Nの負荷量1132と、K番目に負荷量1132が大きい実行サーバ101の負荷量1132との差が、データ125を移動することによって大きくなる場合、実行サーバ101-Nの負荷量1132が過多となり、実行サーバ101間の負荷が平準化されないため、移動データ決定部108は、J番目に利用頻度の大きいデータ125を実行サーバ101-Nに移動せず、ステップ606において一時的に生成されたジョブ・データ配置テーブル109を削除する。そして、ステップ610に移行する。
 ステップ608において、実行サーバ101-Nの負荷量1132と、K番目に負荷量1132が大きい実行サーバ101の負荷量1132との差が、データ125を移動することによって小さくなる場合、すべての実行サーバ101間の負荷が平準化されるため、移動データ決定部108は、K番目に1132が大きい実行サーバ101が保持するデータ125のうち、J番目に大きいデータ125を、実行サーバ101-Nへ移動することを決定する(609)。そして、ステップ606において一時的に生成されたジョブ・データ配置テーブル109によって、スケジューラサーバ100のジョブ・データ配置テーブル109を更新する。
 ステップ609の後、移動データ決定部108は、ステップ604に戻る。そして、ステップ604において、ステップ609において決定されたデータ125を、実行サーバ101-Nへ移動した後の、実行サーバ負荷リスト113を生成する。
 そして、移動データ決定部108は、ステップ605に移行し、パラメータK及びパラメータJに、各々1を格納する。本実施形態のスケジューラサーバ100の移動データ決定部108は、ステップ605によって、実行サーバ101-Nに移動するデータ125を決定した後、最も負荷量1132が大きい実行サーバ101を抽出しなおすことができる。すなわち、本実施形態のスケジューラサーバ100の移動データ決定部108は、最も負荷量1132を減らすべき実行サーバ101を抽出することができる。
 ステップ607又はステップ608の後、移動データ決定部108は、J番目の次に大きいデータ125を選択するため、パラメータJに1を加算する。
 そして移動データ決定部108は、パラメータJの値が、K番目に負荷量1132が大きい実行サーバ101が保持するすべてのデータ125の個数より、大きいか否かを判定する(611)。パラメータJの値が、K番目に負荷量1132が大きい実行サーバ101が保持するすべてのデータ125の個数以下である場合、K番目に負荷量1132が大きい実行サーバ101が保持するすべてのデータ125を、実行サーバ101-Nに移動できるか否かを判定していないため、移動データ決定部108は、ステップ606に戻る。
 パラメータJの値が、K番目に負荷量1132が大きい実行サーバ101が保持するすべてのデータ125の個数よりも大きい場合、K番目の次に負荷量1132が大きい実行サーバ101が保持するデータ125を実行サーバ101-Nへ移動するか否かを決定するため、移動データ決定部108は、ステップ612に移行する。移動データ決定部108は、パラメータKに1を加算し、パラメータJに1を格納する(612)。
 ステップ612の後、移動データ決定部108は、パラメータKとNとが等しいか否かを判定する(613)。パラメータKとNとが異なる場合、すべての既存の実行サーバ101-1~101-(N-1)が保持するデータ125を、実行サーバ101-Nに移動するか否かを判定していないため、移動データ決定部108は、ステップ606に移行する。
 ステップ612において、パラメータKとNとが等しい場合、既存の実行サーバ101-1~101-(N-1)が保持するデータ125を、実行サーバ101-Nに移動するか否かを判定したため、移動データ決定部108は、図6に示す処理を終了する。
 移動データ決定部108は、図6に示す処理によって移動するデータ125を決定すると、データ125の移動を、データ125の移動元となる実行サーバ101のデータ送受信部123に指示する。また、移動データ決定部108は、図6の処理によって更新されたジョブ・データ配置テーブル109を実行サーバ101に送信する。
 これによって、実行サーバ101-Nには、ジョブ・データ配置テーブル109及びデータ125が格納される。
 以上によって、本実施形態の計算機システムは、実行サーバ101-Nがシステムに追加された際に、実行サーバ101-Nに移動するデータ125を決定することができる。また、移動するデータ125を決定する際に、実行サーバ101間の負荷量1132の平準化を重視する判定と、実行サーバ101間の通信頻度の削減を重視する判定との両方の処理を行うことによって、より管理者等にとって最適なジョブの実行環境を生成することができる。
 なお、前述の説明は、Nが3以上である場合、すなわち、既存の実行サーバ101が2台以上である場合の計算機システムについて説明したが、Nが2である場合、すなわち、既存の実行サーバ101が1台のみである場合も、本実施形態の計算機システムは有効である。なお、Nが2である場合、図6のステップ604からの処理が実行される。
 図8は、本発明の実施形態の実行サーバ101-Nに移動するデータ125を、通信頻度を優先して決定する手順を示すフローチャートである。
 移動データ決定部108は、サーバスケールアウトのコマンド131を受信した後、アクセスパターン管理テーブル111のエントリのうち、異なる実行サーバ101に格納されているデータ125の組を実行サーバ101-Nに移動することを決定する(801)。
 図8に示す処理は、特にNが3などの少ない値である場合、実行サーバ101間の負荷の平準化と、通信頻度の低減とを図ることができる。このため、図6に示す処理と、図8に示す処理とは、実行サーバ101の数に従って実行されてもよい。
 本実施形態によれば、管理者等の要求に従って、実行サーバ101間の負荷の平準化、通信頻度の削減、又は、その両方を行うことができる。また、通信頻度の削減に際し、連携ジョブによって処理される頻度が多いデータ125の組、又は、連続して処理される頻度が多いデータ125の組を抽出し、実行サーバ101-Nに追加することを決定するため、より効率的に通信頻度を低減することができる。
 以上、本発明を添付の図面を参照して詳細に説明したが、本発明はこのような具体的構成に限定されるものではなく、添付した請求の範囲の趣旨内における様々な変更及び同等の構成を含むものである。

Claims (10)

  1.  複数のジョブを実行する複数の実行サーバと、前記実行サーバに接続されるスケジューラサーバとを備える計算機システムであって、
     前記実行サーバは、前記ジョブによって処理される複数のデータを保持し、
     前記スケジューラサーバは、
     連続して実行される前記複数のジョブによって処理される複数のデータを各々含む複数の第1の組を生成し、
     一つの前記実行サーバに保持されるデータと、他の前記実行サーバに保持されるデータとを含む第2の組を、前記複数の第1の組から抽出し、
     前記抽出された第2の組に含まれるデータを、新たに追加された前記実行サーバに移動するデータに決定することを特徴とする計算機システム。
  2.  前記計算機システムは、前記第2の組に含まれるデータを移動する前の第1の状態をとることが可能であり、
     前記スケジューラサーバは、
     前記第1の状態において、前記各データが前記ジョブによって処理される第1の頻度と、前記連続して実行される複数のジョブが前記第2の組に含まれる複数のデータを処理する第2の頻度とを算出し、
     前記第2の頻度と、所定の閾値とを比較する第1の比較を行い、
     前記第1の比較によって、前記第1の状態における前記第2の頻度が大きいと判定された場合、前記抽出された第2の組に含まれるデータを、前記新たに追加された実行サーバに移動するデータに決定し、
     前記第1の比較によって、前記第1の状態における前記第2の頻度が小さいと判定された場合、前記第1の頻度を合計することによって、前記各実行サーバの負荷量を算出し、前記算出された複数の負荷量に従って抽出された前記データを、前記新たに追加された実行サーバに移動するデータに決定することを特徴とする請求項1に記載の計算機システム。
  3.  前記計算機システムは、前記算出された複数の負荷量に従って抽出されたデータを移動する前の第2の状態と、移動した後の第3の状態とをとることが可能であり、
     前記スケジューラサーバは、
     前記第1の比較によって、前記第1の状態における前記第2の頻度が小さいと判定された場合、前記第3の状態における前記第2の頻度を算出し、前記第3の状態における第2の頻度と、前記所定の閾値とを比較する第2の比較を行い、
     前記第2の比較によって、前記第3の状態における第2の頻度が小さいと判定された場合、前記第2の状態における、前記各実行サーバの負荷量と前記新たに追加された実行サーバの負荷量との第1の差、及び、前記第3の状態における、前記各実行サーバの負荷量と前記新たに追加された実行サーバの負荷量との第2の差を算出し、前記第1の差と前記第2の差とを比較する第3の比較を行い、
     前記第3の比較によって、前記第2の差が小さいと判定された場合、前記負荷量に従って抽出されたデータを、新たに追加された前記実行サーバに移動するデータに決定することを特徴とする請求項2に記載の計算機システム。
  4.  複数のジョブを実行する複数の実行サーバと、前記実行サーバに接続されるスケジューラサーバとを備える計算機システムであって、
     前記実行サーバは、前記ジョブによって処理される複数のデータを保持し、
     前記スケジューラサーバは、
     連続して処理される前記複数のデータを含む第1の組を取得し、
     一つの前記実行サーバに保持されるデータと、他の前記実行サーバに保持されるデータとを含む第2の組を、前記複数の第1の組から抽出し、
     前記抽出された第2の組に含まれるデータを、新たに追加された前記実行サーバに移動するデータに決定することを特徴とする計算機システム。
  5.  前記計算機システムは、前記第2の組に含まれるデータを移動する前の第1の状態をとることが可能であり、
     前記スケジューラサーバは、
     前記第1の状態において、前記各データが前記ジョブによって処理される第1の頻度と、前記第2の組が連続して処理される第2の頻度とを算出し、
     前記第2の頻度と、所定の閾値とを比較する第1の比較を行い、
     前記第1の比較によって、前記第1の状態における前記第2の頻度が大きいと判定された場合、前記抽出された第2の組に含まれるデータを、前記新たに追加された実行サーバに移動するデータに決定し、
     前記第1の比較によって、前記第1の状態における前記第2の頻度が小さいと判定された場合、前記第1の頻度を合計することによって、前記各実行サーバの負荷量を算出し、前記算出された複数の負荷量に従って抽出された前記データを、前記新たに追加された実行サーバに移動するデータに決定することを特徴とする請求項4に記載の計算機システム。
  6.  前記計算機システムは、前記算出された複数の負荷量に従って抽出されたデータを移動する前の第2の状態と、移動した後の第3の状態とをとることが可能であり、
     前記スケジューラサーバは、
     前記第1の比較によって、前記第1の状態における前記第2の頻度が小さいと判定された場合、前記第3の状態における前記第2の頻度を算出し、前記第3の状態における第2の頻度と、前記所定の閾値とを比較する第2の比較を行い、
     前記第2の比較によって、前記第3の状態における第2の頻度が小さいと判定された場合、前記第2の状態における、前記各実行サーバの負荷量と前記新たに追加された実行サーバの負荷量との第1の差、及び、前記第3の状態における、前記各実行サーバの負荷量と前記新たに追加された実行サーバの負荷量との第2の差を算出し、前記第1の差と前記第2の差とを比較する、第3の比較を行い、
     前記第3の比較によって、前記第2の差が小さいと判定された場合、前記負荷量に従って抽出されたデータを、新たに追加された前記実行サーバに移動するデータに決定することを特徴とする請求項5に記載の計算機システム。
  7.  複数のジョブを実行する複数の実行サーバに接続されるスケジューラサーバにおける移動データ決定方法であって、
     前記実行サーバは、前記ジョブによって処理される複数のデータをメモリに保持し、
     前記方法は、
     前記スケジューラサーバが、連続して実行される前記複数のジョブによって処理される複数のデータを各々含む複数の第1の組を生成し、前記生成された第1の組をメモリに格納し、
     前記スケジューラサーバが、一つの前記実行サーバに保持されるデータと、他の前記実行サーバに保持されるデータとを含む第2の組を、前記メモリに格納された複数の第1の組から抽出し、
     前記スケジューラサーバが、前記抽出された第2の組に含まれるデータを、新たに追加された前記実行サーバに移動するデータに決定することを特徴とするデータ管理方法。
  8.  前記複数の実行サーバ及び前記スケジューラサーバは、計算機システムに含まれ、
     前記計算機システムは、前記第2の組に含まれるデータを移動する前の第1の状態と、前記データを移動する前の第2の状態と、前記データを移動した後の第3の状態とをとることが可能であり、
     前記方法は、
     前記スケジューラサーバが、前記第1の状態において、前記各データが前記ジョブによって処理される第1の頻度と、前記連続して実行される複数のジョブが前記第2の組に含まれる複数のデータを処理する第2の頻度とを算出し、
     前記スケジューラサーバが、前記第2の頻度と、所定の閾値とを比較する第1の比較を行い、
     前記第1の比較によって、前記第1の状態における前記第2の頻度が大きいと判定された場合、前記スケジューラサーバが、前記抽出された第2の組に含まれるデータを、前記新たに追加された実行サーバに移動するデータに決定し、
     前記第1の比較によって、前記第1の状態における前記第2の頻度が小さいと判定された場合、前記スケジューラサーバが、前記第1の頻度を合計することによって、前記各実行サーバの負荷量を算出し、前記算出された複数の負荷量に従って抽出された前記データを、前記新たに追加された実行サーバに移動するデータに決定し、
     前記第1の比較によって、前記第1の状態における前記第2の頻度が小さいと判定された場合、前記スケジューラサーバが、前記第3の状態における前記第2の頻度を算出し、前記第3の状態における第2の頻度と、前記所定の閾値とを比較する第2の比較を行い、
     前記第2の比較によって、前記第3の状態における第2の頻度が小さいと判定された場合、前記スケジューラサーバが、前記第2の状態における、前記各実行サーバの負荷量と前記新たに追加された実行サーバの負荷量との第1の差、及び、前記第3の状態における、前記各実行サーバの負荷量と前記新たに追加された実行サーバの負荷量との第2の差を算出し、前記第1の差と前記第2の差とを比較する第3の比較を行い、
     前記第3の比較によって、前記第2の差が小さいと判定された場合、前記スケジューラサーバが、前記負荷量に従って抽出されたデータを、新たに追加された前記実行サーバに移動するデータに決定することを特徴とする請求項7に記載のデータ管理方法。
  9.  複数のジョブを実行する複数の実行サーバに接続されるスケジューラサーバにおける移動データ決定方法であって、
     前記実行サーバは、前記ジョブによって処理される複数のデータを保持し、
     前記方法は、
     前記スケジューラサーバが、連続して処理される前記複数のデータを含む複数の第1の組を、メモリに格納し、
     前記スケジューラサーバが、一つの前記実行サーバに保持されるデータと、他の前記実行サーバに保持されるデータとを含む第2の組を、前記メモリに格納された複数の第1の組から抽出し、
     前記スケジューラサーバが、前記抽出された第2の組に含まれるデータを、新たに追加された前記実行サーバに移動するデータに決定することを特徴とするデータ管理方法。
  10.  前記複数の実行サーバ及び前記スケジューラサーバは、計算機システムに含まれ、
     前記計算機システムは、前記第2の組に含まれるデータを移動する前の第1の状態と、前記データを移動する前の第2の状態と、前記データを移動した後の第3の状態とをとることが可能であり、
     前記方法は、
     前記スケジューラサーバが、前記第1の状態において、前記各データが前記ジョブによって処理される第1の頻度と、前記第2の組が連続して処理される第2の頻度とを算出し、
     前記スケジューラサーバが、前記第2の頻度と、所定の閾値とを比較する第1の比較を行い、
     前記第1の比較によって、前記第1の状態における前記第2の頻度が大きいと判定された場合、前記スケジューラサーバが、前記抽出された第2の組に含まれるデータを、前記新たに追加された実行サーバに移動するデータに決定し、
     前記第1の比較によって、前記第1の状態における前記第2の頻度が小さいと判定された場合、前記スケジューラサーバが、前記第1の頻度を合計することによって、前記各実行サーバの負荷量を算出し、前記算出された複数の負荷量に従って抽出された前記データを、前記新たに追加された実行サーバに移動するデータに決定し、
     前記スケジューラサーバが、前記第1の状態における前記第2の頻度が小さいと判定された場合、前記第3の状態における前記第2の頻度を算出し、前記第3の状態における第2の頻度と、前記所定の閾値とにおいて、第2の比較を行い、
     前記第2の比較によって、前記第3の状態における第2の頻度が小さいと判定された場合、前記スケジューラサーバが、前記第2の状態における、前記各実行サーバの負荷量と前記新たに追加された実行サーバの負荷量との第1の差、及び、前記第3の状態における、前記各実行サーバの負荷量と前記新たに追加された実行サーバの負荷量との第2の差を算出し、前記第1の差と前記第2の差とを比較する第3の比較を行い、
     前記第3の比較によって、前記第2の差が小さいと判定された場合、前記スケジューラサーバが、前記負荷量に従って抽出されたデータを、新たに追加された前記実行サーバに移動するデータに決定することを特徴とする請求項9に記載のデータ管理方法。
PCT/JP2011/051347 2010-08-06 2011-01-25 計算機システム、及び、データ管理方法 WO2012017699A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US13/813,987 US20130144953A1 (en) 2010-08-06 2011-01-25 Computer system and data management method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2010-176992 2010-08-06
JP2010176992A JP5388134B2 (ja) 2010-08-06 2010-08-06 計算機システム、及び、移動データ決定方法

Publications (1)

Publication Number Publication Date
WO2012017699A1 true WO2012017699A1 (ja) 2012-02-09

Family

ID=45559215

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2011/051347 WO2012017699A1 (ja) 2010-08-06 2011-01-25 計算機システム、及び、データ管理方法

Country Status (3)

Country Link
US (1) US20130144953A1 (ja)
JP (1) JP5388134B2 (ja)
WO (1) WO2012017699A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014074950A (ja) * 2012-10-02 2014-04-24 Nec Corp 分散データストア管理装置、分散並列処理実行装置、分散並列処理システム、分散データストア管理方法、分散並列処理実行方法、および、コンピュータ・プログラム

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10097410B2 (en) 2014-06-26 2018-10-09 Vmware, Inc. Methods and apparatus to scale application deployments in cloud computing environments
CN107615905B (zh) * 2015-06-02 2020-01-21 雅马哈发动机株式会社 元件供给装置、表面安装机及元件的供给方法
CN108259583B (zh) * 2017-12-29 2020-05-26 广州云达信息技术有限公司 一种数据动态迁移方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002007364A (ja) * 2000-06-22 2002-01-11 Fujitsu Ltd 並列計算機システムのジョブスケジューリングを行うスケジューリング装置
JP2007102332A (ja) * 2005-09-30 2007-04-19 Toshiba Corp 負荷分散システム及び負荷分散方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4109153B2 (ja) * 2003-05-07 2008-07-02 富士通株式会社 ジョブ制御装置、ジョブ制御ファイル、ジョブ制御方法及びジョブ制御プログラム
GB0513045D0 (en) * 2005-06-27 2005-08-03 Vidus Ltd Resource scheduling method and system
JP2007041720A (ja) * 2005-08-01 2007-02-15 Fujitsu Ltd ジョブステップ実行プログラムおよびジョブステップ実行方法
JP5167589B2 (ja) * 2006-02-13 2013-03-21 富士通株式会社 アプリケーションサーバ装置および仮想マシンプログラム
JP2007249491A (ja) * 2006-03-15 2007-09-27 Fujitsu Ltd マルチサーバ環境においてバッチジョブを分散させるプログラム、装置、および方法
US8584122B2 (en) * 2006-03-31 2013-11-12 Ebay Inc. Batch scheduling
JP4992408B2 (ja) * 2006-12-19 2012-08-08 富士通株式会社 ジョブ割当プログラム、方法及び装置
JP5373295B2 (ja) * 2008-02-04 2013-12-18 インターナショナル・ビジネス・マシーンズ・コーポレーション マルチノード・サーバシステム、負荷分散方法、リソース管理サーバ、およびプログラム
JP4797095B2 (ja) * 2009-07-24 2011-10-19 株式会社日立製作所 バッチ処理多重化方法
JP2011123817A (ja) * 2009-12-14 2011-06-23 Fujitsu Ltd ジョブ振分装置、ジョブ振分プログラム及びジョブ振分方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002007364A (ja) * 2000-06-22 2002-01-11 Fujitsu Ltd 並列計算機システムのジョブスケジューリングを行うスケジューリング装置
JP2007102332A (ja) * 2005-09-30 2007-04-19 Toshiba Corp 負荷分散システム及び負荷分散方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
HIROKAZU UCHI: "Heiretsu Bunsan Program no Tameno Job Migration Scheduling no Jisso to Hyoka", IPSJ SIG NOTES, vol. 2005, no. 57, 2 June 2005 (2005-06-02), pages 27 - 32 *
TSUGUHIRO KONDO: "A Parallel Computing System on Data Grid Environment using Process Migration", IEICE TECHNICAL REPORT, vol. 104, no. 593, 20 January 2005 (2005-01-20), pages 31 - 36 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014074950A (ja) * 2012-10-02 2014-04-24 Nec Corp 分散データストア管理装置、分散並列処理実行装置、分散並列処理システム、分散データストア管理方法、分散並列処理実行方法、および、コンピュータ・プログラム

Also Published As

Publication number Publication date
JP5388134B2 (ja) 2014-01-15
JP2012038053A (ja) 2012-02-23
US20130144953A1 (en) 2013-06-06

Similar Documents

Publication Publication Date Title
Tang et al. An intermediate data placement algorithm for load balancing in spark computing environment
EP3335119B1 (en) Multi-priority service instance allocation within cloud computing platforms
JP5664098B2 (ja) 複合イベント分散装置、複合イベント分散方法および複合イベント分散プログラム
CN112162865A (zh) 服务器的调度方法、装置和服务器
CN104168332A (zh) 高性能计算中负载均衡与节点状态监控方法
KR101471749B1 (ko) 클라우드 서비스의 가상자원 할당을 위한 퍼지 로직 기반의 자원평가 장치 및 방법
CN108228349A (zh) 用于处理任务的方法、系统和存储介质
CN103391312B (zh) 资源离线下载方法及装置
CN106557471A (zh) 任务调度方法及装置
CN109885397A (zh) 一种边缘计算环境中时延优化的负载任务迁移算法
CN103401947A (zh) 多个服务器的任务分配方法和装置
CN110383764A (zh) 无服务器系统中使用历史数据处理事件的系统和方法
US9501326B2 (en) Processing control system, processing control method, and processing control program
CN107291544A (zh) 任务调度的方法及装置、分布式任务执行系统
JP6519111B2 (ja) データ処理制御方法、データ処理制御プログラムおよびデータ処理制御装置
CN105491150A (zh) 基于时间序列的负载均衡处理方法及系统
CN108089918B (zh) 一种面向异构服务器结构的图计算负载均衡方法
WO2012017699A1 (ja) 計算機システム、及び、データ管理方法
JP2017037492A (ja) 分散処理プログラム、分散処理方法および分散処理装置
CN109347982A (zh) 一种数据中心的调度方法及装置
CN109284229A (zh) 一种基于qps的动态调整方法以及相关设备
CN109120548A (zh) 一种流量控制方法及装置
GB2480764A (en) Load balancing traffic manager for multiple server cluster with multiple parallel queues running substantially independently
JP5540269B2 (ja) データ負荷分散配置システムおよびデータ負荷分散配置方法
US20140047454A1 (en) Load balancing in an sap system

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

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 13813987

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 11814330

Country of ref document: EP

Kind code of ref document: A1