This application is based upon and claims the benefit of priority of the prior Japanese Patent Application No. 2009-219437, filed on Sep. 24, 2009, the entire contents of which are incorporated herein by reference.
The embodiments discussed herein are related to a priority control apparatus and a priority control method.
A job operation system performing a job operation in response to a user request with a plurality of servers over a network is known. A three-layer architecture is known as an architecture for such a job operation system. The three-layer architecture includes a web server as a presentation layer, an application server as an application layer, and a database server as a data layer. A user may access the web server from the user's terminal such as a personal computer (PC) and request a desired job operation to be done. In response to the request, the job operation system performs the job operation with servers cooperating with each other.
Japanese Laid-open Patent Publication No. 2007-156796 and Japanese Laid-open Patent Publication No. 11-203149 discuss a technique in which a specific priority is set for a particular application program and application programs are executed in the order of high to low priority. Japanese Laid-open Patent Publication No. 11-242658 discusses a technique of solving a delay problem by setting a priority on application programs. International Publication 2005/041038 discusses a technique of solving a delay problem by reducing the number of processes of an application program having a low priority if a bottleneck occurs in an application server.
According to an aspect of an embodiment, a priority control apparatus includes a job operation information storage unit which stores, as job operation information on a per job operation basis for a plurality of job operations, a process and an object used by the process with the process mapped to the object, each job operation being executed by a plurality of processes; a delay determiner which determines a first job operation that is delayed from among the plurality of job operations; and a priority controller which identifies a second job operation sharing an object used in the first job operation by referencing the job operation information storage unit, identifies a process, using an object not used in the first job operation, from among the processes executing the second job operation identified, and lowers a priority at which the identified process is to be executed.
The object and advantages of the invention will be realized and attained by means of the elements and combinations particularly pointed out in the claims.
It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are not restrictive of the invention, as claimed.
The above-described techniques are not sufficient to solve the delay problem of the job operation. The above-described technique of processing the job operations in the order of high to low priority merely processes a particular job operation with priority, and a job operation having a low priority is not necessarily free from the delay problem. The technique of solving the delay problem with the applications prioritized is not sufficient to solve the delay problem in a job operation that is related to a low-priority application.
If a job operation having a low priority is delayed, or if a job operation related to a low-priority application is delayed, an administrator of the job operation system needs to handle the system depending on the delay.
A priority control apparatus and a priority control method of the embodiments are described below with reference to the drawings.
The job operation information storage 4 stores job operation information on a per job operation basis with each job operation executed by a plurality of processes. The job operation information includes a process executing a job operation and an object used by the process with the process respectively mapped to the object. For example, the job operation information storage 4 stores information indicating that process a1 uses object X1 and process a2 uses object X2 in job operation A. The job operation information storage 4 also stores information indicating that process b1 uses object Y1 and process a2 uses object X2 in job operation B. The job operation information storage 4 also stores information indicating that process c1 uses object Z1 and process c2 uses object Z2 in job operation C.
The delay determiner 2 determines a delayed job operation that has suffered from a delay in operation from among a plurality of job operations. For example, the delay determiner 2 determines job operation A as a delayed job operation from among job operations A, B, and C.
The priority controller 3 in a control operation thereof references the job operation information stored on the job operation information storage 4 and identifies a shared job operation as another job operation sharing an object with the delayed job operation. The priority controller 3 identifies a process using an object not used in the delayed job operation from among the processes executing the identified shared job operation, and lowers the priority of execution of the identified process. For example, the priority controller 3 identifies as the shared job operation the job operation B sharing the object X2 used in the job operation A determined as the delayed job operation. The priority controller 3 identifies the process b1 using the object Y1 not used in the job operation A as the delayed job operation from among the process b1 and the process a2 executing the job operation B identified as the shared job operation. The priority controller 3 in the control operation thereof lowers the priority of execution of the identified process b1.
In accordance with the first embodiment as described above, the priority at which the job operation B is executed is lowered, and a use rate of the process a2 in the job operation B sharing the object X2 with the job operation A is also lowered. The use rate of the process a2 in the job operation A is increased. The priority control apparatus 1 autonomously operates in response to a delay at any job operation, and thus solves the delay problem in the job operation.
The term “delayed job operation” refers to a job operation that suffers from a delay.
The term “sub delayed job operation” refers to a job operation having a degree of delay falling within a tolerance range.
The term “shared job operation” refers to another job operation sharing an object used in the delayed job operation.
The term “sub shared job operation” refers to another job operation that shares an object used in the sub delayed job operation.
The term “high shared job operation” refers to a shared job operation that has a high shared use frequency of an object in the delayed job operation and has a minimum degree of delay.
The term “priority modification process” refers to a process having an execution priority that is lowered in the job operation system.
The priority control apparatus 10 includes priority controller 20, storage 30, input-output control I/F (interface) unit 40, and communication unit 50. The priority control apparatus 10 is connected to a Web server 71, an AP server 72, and a DB server 73 via a network 60.
A terminal device 80 transmits via the network 60 an execution request of a job operation to a job operation system including the Web server 71, the AP server 72, and the DB server 73. The priority control apparatus 10 monitors a process status of the job operation executed by the job operation system.
The Web server 71 is a Web server, the AP server 72 is an application server, and the DB server 73 is a database server. Referring to
The money receiving operation (job operation G) is described below with reference to
The Web server 71 performs a process (wp5) using an object (webapl5). For example, the Web server 71 displays a money receiving operation on a screen of the ATM, and receives money from a user.
The AP server 72 performs a process (ap5) using an object (aplproc5). For example, the AP server 72 performs an addition operation of a received amount of money on an account the user inputs.
The DB server 73 performs a process (db5) using an object (dbtbl5). For example, the DB server 73 records a balance of the account after the money is received.
The money transfer operation (job operation H) illustrated in
The Web server 71 performs a process (wp6) using an object (webapl6), thereby presenting a money transfer operation on the screen and performing a money receiving operation.
The AP server 72 performs a process (ap6) using the object (aplproc5) and the object (aplproc6), thereby performing the money transfer operation.
The DB server 73 performs the process (db5) using an object (dbtbl6), thereby recording a balance of an account as a transfer destination after the money transfer.
The objects used by the process performed in the Web server 71 include a variety of information displayed on the screen of the ATM and operation trail. The objects used by the process performed by the AP server 72 includes a variety of application programs and log files. The objects used by the process performed by the DB server 73 include a database of accounts of a bank. The objects may be stored on a read-only memory (ROM), a random-access memory (RAM), or a hard disk.
If job operations performed on the same server are similar to each other in the job operation system, an object such as the object (aplproc5) illustrated in
A single process may use a plurality of objects in the job operation of the job operation system (see, for example, the process (ap6) in
Referring back to
The Web server 71 presents via the network 60 a variety of job operations on the terminal device 80 to be discussed later. The Web server 71 receives an execution request of a job operation desired by a user, and performs an operation responsive to the received execution request. The WEB server 71 sends to the AP server 72 the received execution request of the job operation and a variety of information input by the user. The Web server 71 sends to the terminal device 80 results of the job operation performed in cooperation with the AP server 72 and the DB server 73.
The AP server 72 performs an application in response to the execution request of the job operation received from the Web server 71 and the variety of information input by the user and sends the operation results to the DB server 73. The DB server 73 stores the operation results received from the AP server 72 onto a storage device thereof.
The terminal device 80 serves as a device on which the user inputs an execution request to the job operation system. For example, the terminal device 80 may be one of a personal computer (PC), a workstation, a cellular phone, a personal handy-phone system (PHS), a personal digital assistant (PDA) owned by the user, or an automated teller machine (ATM) at a bank.
The input-output control I/F unit 40 is an interface relaying a variety of information to be exchanged between the communication unit 50 and each of the priority controller 20 and the storage 30. The communication unit 50 communicates with each of the Web server 71, the DB server 73, and the DB server 73.
The storage 30 stores programs and data for a variety of operations performed by the priority controller 20 to be discussed later. The storage 30 also stores information received from the Web server 71, the AP server 72, and the DB server 73 and operation results of an operation controlled by the priority controller 20. The storage 30 may be a storage device such as a random-access memory (RAM), a read-only memory (ROM), a flash memory, a semiconductor memory, a hard disk, or an optical disk. As illustrated in
The job operation information storage unit 31 stores job operation information on a per job operation basis, each job operation executed by a plurality of processes. The job operation information includes a process executing a job operation, and an object used by the process with the process mapped to the object. For example, a job operation information acquisition apparatus (not illustrated) acquires from each server a process on a per job operation basis, the process being performed by each server when the job operation is performed. The object is used by the process. The job operation information acquisition apparatus may be a switching hub having a port mirroring function that outputs communication contents on a network to another communication path. Alternatively, the job operation information acquisition apparatus may be an agent that is arranged in each server to monitor the server and report the process of the server.
The shared use information storage unit 32 stores shared use information that that maps to each job operation a shared use frequency of an object shared by another job operation. The shared use information stored on the shared use information storage unit 32 is generated by the priority controller 20 to be discussed later.
As illustrated in
The determination criteria storage unit 33 stores determination criteria indicating a degree of delay and mapped to each job operation. The determination criteria stored on the determination criteria storage unit 33 is information of a range of a process time of a job operation, set by the user of the priority control apparatus 10. The determination criteria are used by the priority controller 20 to be discussed later.
Referring to
The determination result storage unit 34 stores determination results that map the job operation information received from the job operation information acquisition apparatus (not illustrated) to the process results of the determination process of the priority controller 20.
As illustrated in
The average process time, the information as to the bottleneck server, and the transaction count (count/time) from the job operation information acquisition apparatus may be obtained using a technique discussed in Japanese Laid-open Patent Publication No. 2006-92358, a technique discussed in Japanese Laid-open Patent Publication No. 2006-11683, and a technique discussed in Japanese Laid-open Patent Publication No. 2007-272693.
The delay handling information storage unit 35 stores, on a per job operation basis, delay handling information that maps to each job operation a shared use frequency of an object shared by the delayed job operation in each server. The delay handling information stored on the delay handling information storage unit 35 is generated by the priority controller 20 to be discussed later.
As illustrated in
The handling result storage unit 36 stores results of the handling to the delay executed by the priority controller 20. The handling results stored on the handling result storage unit 36 are information generated by the priority controller 20.
As illustrated in
Referring back to
In accordance with the job operation information stored on the job operation information storage unit 31, the shared use information generator 21 generates the shared use information mapping to a job operation a shared use frequency of an object shared with another job operation on a per job operation basis. The shared use information generator 21 then stores the generated shared use information onto the shared use information storage unit 32. For example, the shared use information generator 21 generates the shared use information that maps information of an object shared with another job operation to each server on a per job operation basis, and stores the generated shared use information onto the shared use information storage unit 32.
The shared use information generator 21 references the job operation information of
The delay determiner 22 determines a job operation suffering from a delay from among a plurality of job operations. For example, the delay determiner 22 compares the determination criteria stored on the determination criteria storage unit 33 with the job operation information received from the job operation information acquisition apparatus (not illustrated), determines the degree of delay of all the job operations executed, and stores determination results on the determination result storage unit 34.
The delay determiner 22 may now receive from the job operation information acquisition apparatus (not illustrated) the job operation information “job operation: A, average process time: 10.5, transition count (count/time): 10.” Since the average process time is longer than 10 seconds, the delay determiner 22 determines according to the determination criteria of
The delay determiner 22 further determines a cause area serving as a main cause of delay from among a plurality of execution areas through which a process of the job operation determined as the delayed job operation is performed. For example, the delay determiner 22 identifies a server taking the longest process time from among the servers performing the delayed job operation, based on the job operation information received from the job operation information acquisition apparatus (not illustrated). The delay determiner 22 thus determines the identified server as a bottleneck server. The delay determiner 22 then stores on the determination result storage unit 34 the bottleneck server mapped to the determination results.
For example, the process time of the “DB server” may be the longest among the process times of the servers received from the job operation information acquisition apparatus (not illustrated). The delay determiner 22 determines the bottleneck server of the “job operation: A” as the “DB server.” The delay determiner 22 maps the “DB server” to the determination results and then stores these pieces of information in a mapped state on the determination result storage unit 34. For example, the delay determiner 22 stores on the determination result storage unit 34 the determination results with the “bottleneck server” of the “job operation: A” set to be the “DB server.”
For a job operation that is not delayed, the delay determiner 22 stores “bottleneck server: -” indicating that there is no bottleneck server. For example, the delay determiner 22 stores on the determination result storage unit 34 the determination results that the “bottleneck server” of the “job operation: B” is “-,” as illustrated in
The delay handling information generator 23 identifies a shared job operation that shares an object used in the delayed job operation, and generates information that identifies a process using an object not used in the delayed job operation from among the processes executing the identified shared job operation. For example, using the shared use information stored on the shared use information storage unit 32, and the determination results stored on the determination result storage unit 34, the delay handling information generator 23 generates delay handling information as the information for identifying the process, and stores the generated delay handling information on the delay handling information storage unit 35.
For example, the delay handling information generator 23 generates, as the delay handling information for the “job operation: A,” “job operation: B, Web server: 0, AP server: 1, DB server: 1, shared use frequency: 2” as illustrated in
The delay handling information generator 23 further generates delay handling information related to the object which is used by the process executed in an area determined by the delay determiner 22 as the cause area serving as a main cause for delay and which is weighted with a specific weight from among the shared job operations. For example, the delay handling information generator 23 updates the delay handling information stored on the delay handling information storage unit 35 by weighting the object shared in the bottleneck server of the delayed job operation with a specific weight.
Similarly, the delay handling information generator 23 updates the delay handling information of the “job operation: D” illustrated in
Using the variety of information and operation results stored on the memory units, the priority control apparatus 10 of the embodiment performs a first handling and a second handling to the delayed job operation to solve the delay of the delayed job operation. The first handling of the delayed job operation is described first followed by the discussion of the second handling of the delayed job operation.
In the first handling of the delayed job operation, the delay handling control unit 24 identifies the shared job operation sharing an object used in the delayed job operation by referencing the job operation information stored on the job operation information storage unit 31. The delay handling control unit 24 further identifies as a high shared job operation a job operation having a high shared use frequency with the delayed job operation and having a minimum degree of delay, from among the shared job operations. The delay handling control unit 24 further identifies, from among the shared job operations, a high shared job operation by referencing the shared use information after the shared use frequency of an object used by a process executed in the cause area determined by the delay determiner 22 is weighted with a specific weight.
For example, the delay handling control unit 24 identifies the shared job operation sharing the object with the delayed job operation by referencing the delay handling information stored on the delay handling information storage unit 35. The delay handling control unit 24 references the delay handling information having the weighted shared use frequency of the object shared in the bottleneck server and also references the determination results stored on the determination result storage unit 34. The delay handling control unit 24 identifies as the high shared job operation with priority a job operation in the S zone and having a high shared use frequency.
For example, the delay handling control unit 24 identifies as a high shared job operation the “job operation: B” having a maximum shared use frequency of “2.5” as illustrated in
The delay handling control unit 24 further identifies as a control target a process from among the processes to be executed in the identified high shared job operation. For example, the delay handling control unit 24 identifies a process using an object not used in the delayed job operation from among the processes executing the identified high shared job operation. For example, in the delay handling information of
The delay handling control unit 24 in a control operation thereof lowers the priority of the identified process. For example, the delay handling control unit 24 sends to a server executing the identified process a command to lower the priority of the identified process. For example, the delay handling control unit 24 sends to the Web server 71 a command to lower the priority at which the identified process “wp2” is executed.
Since a server having a shared use frequency of “0” is only the “Web server,” “wp2” is identified. If a plurality of servers have a shared use frequency of “0,” a higher layered server is preferably selected in the three-layered job operation system.
As described above, the delay handling control unit 24 solves the delay of the job operation through the first handling of the delayed job operation, in which the priority of the process of the high shared job operation corresponding to the delayed job operation is lowered. For example, the delay handling control unit 24 solves the delay of the job operation by varying a ratio of an object shared by a plurality of job operations.
The delay handling control unit 24 of the embodiment lowers the priority of the process using an object not used in the delayed job operation from among the processes executed in the high shared job operation, thereby lowering the process speed of the high shared job operation and lowering the ratio of the use of the object. For example, of the object shared by the delayed job operation and the high shared object operation, the delay handling control unit 24 lowers the ratio of use of the object in the high shared object operation. The delay handling control unit 24 thus increases the ratio of use of the object in the delayed job operation, thereby solving the delay problem.
Referring to
Referring to
In the second handling of the delayed job operation, if the high shared job operation is determined as a sub delayed job operation, the delay handling control unit 24 references the job operation information and identifies as a high shared job operation a sub shared job operation sharing an object used in the sub delayed job operation. For example, if no shared job operation is in the S zone, the delay handling control unit 24 references delay handling information newly generated for a shared job operation having a highest shared use frequency with the delayed job operation and determination results. The delay handling control unit 24 identifies as a target of priority modification a job operation having a highest shared use frequency and in the S zone, from among the job operations sharing an object with the shared job operation having the highest shared use frequency with the delayed job operation.
The delay handling control unit 24 then identifies a process using an object not used in a shared job operation having the highest shared use frequency with the delayed job operation, from among the processes executed in the identified job operation. For example, the delay handling control unit 24 references the job operation information and identifies a process “ap4” using an object “aplproc4” not used in the “job operation: B” as a target process of priority modification in the identified “job operation: F.”
The delay handling control unit 24 in the control operation thereof lowers the priority of the identified process. For example, the delay handling control unit 24 sends to a server executing the identified process a command to lower the priority of the identified process. For example, the delay handling control unit 24 sends to the AP server 72 a command to lower the priority at which the identified process “ap4” is executed.
As described above, the delay handling control unit 24 solves a delay of a job operation through the second handling of the delayed job operation. In the second handling of the delayed job operation, the delay handling control unit 24 lowers the priority of the process of the sub shared job operation to the shared job operation as the sub delayed job operation. For example, the delay handling control unit 24 shifts the shared job operation from the under-R zone to the S zone, thereby enabling the first handling to the delayed job operation to be performed. The delay handling control unit 24 thus solves the delay problem of the delayed job operation.
For example, the delay handling control unit 24 lowers the process speed of the job operation F in the S zone as illustrated in
If the priority of a particular process has been lowered in connection with the same job operation before, the delay handling control unit 24 in the control operation thereof lowers the priority of the process on condition that a specific period of time has elapsed since the time of lowering the priority. For example, each time the handling of the delayed job operation is executed, the delay handling control unit 24 stores on the handling result storage unit 36 handling results that map the priority modification time to the delayed job operation and the priority modified process. When the delay handling control unit 24 performs newly the handling of the delayed job operation, the delay handling control unit 24 lowers the priority only if the same delayed job operation and the priority modification process are not stored within the specific period of time on the handling result storage unit 36.
For example, the delay handling control unit 24 stores on the handling result storage unit 36 “priority modification time: 2:29:50, delayed job operation: C, priority modification process: wp2” as illustrated in
The delay handling control unit 24 references the handling results of
Referring to
On a per job operation, the shared use information generator 21 generates the shared use information that maps information of an object shared with another job operation to the other job operation. The shared use information generator 21 stores the generated shared use information on the shared use information storage unit 32 (at S103).
The delay determiner 22 compares the determination criteria stored on the determination criteria storage unit 33 with the average process time of each job operation received from the communication unit 50, and determines the degree of delay of the job operation (at S104). The determination process of the degree of delay is described in detail later with reference to
The delay handling control unit 24 executes the handling of the delayed job operation that is determined by the delay determiner 22 (at S105), and determines whether an end command has been received (at S106). The process of the handling of the delayed job operation is described in detail later with reference to
If the delay handling control unit 24 at S106 that the end command has not been received from the user (no branch from S106), the delay determiner 22 returns to S104. The delay determiner 22 compares the determination criteria with the average process time of the job operations newly received from the communication unit 50 and determines the degree of delay of the job operation.
If the delay handling control unit 24 determines at S106 that the end command has been received from the user (yes branch from S106), the priority control apparatus 10 of the second embodiment ends the process.
The determination process of the degree of delay of the job operation executed at S104 of
If the priority control apparatus 10 of the second embodiment stores the shared use information (yes branch from S201) in
If it is determined that the average process time is in the R zone (yes branch from S203), the delay determiner 22 determines a bottleneck server of the job operation that is in the R zone based on time for a process received from the job operation information acquisition apparatus (at S204). For example, the delay determiner 22 determines one of the Web server 71, the AP server 72, and the DB server 73 having the longest time for processing as a bottleneck server.
If the average process time is not in the R zone (no branch from S203), the delay determiner 22 determines whether the received average process time is in the S zone set in the determination criteria (at S205). If the average process time is not in the S zone (no branch from S205), the delay determiner 22 determines that the average process time is in the under-R zone (at S206).
The delay determiner 22 stores the determination results on the determination result storage unit 34 (at S207). For example, the delay determiner 22 stores the determination results on the determination result storage unit 34 on a per job operation basis. The determination results include the average process time, the determined zone, the bottleneck server, and the transaction count mapped to each other. The information related to the average process time, and the bottleneck server and the transaction count is acquired from the job operation information acquisition apparatus (not illustrated).
The delay determiner 22 determines whether all the job operations have been determined (at S208). If not all the job operations have been determined (no branch from S208), the delay determiner 22 returns to S202 to compare the determination criteria with the average process time of the job operation. If all the job operations have been determined (yes branch from S208), the delay determiner 22 ends the determination process.
The handling of the delayed job operation executed at S105 of
Referring to
If no R zone job operation is present (no branch from S302), the priority control apparatus 10 of the second embodiment ends the process thereof. If an R zone job operation is present (yes branch from S302), the delay handling control unit 24 performs the first handling of the delayed job operation (at S303). The first handling of the delayed job operation is described in detail with reference to
The delay handling control unit 24 determines whether a handled flag is set (at S304). For example, the handled flag is set if the first handling of the delayed job operation is performed. The timing of setting the handled flag is described later.
If the handled flag is set (yes branch from S304), the delay handling control unit 24 completes the process thereof. If the handled flag is not set (no branch from S304), the delay handling control unit 24 executes the second handling of the delayed job operation (at S305), and completes the process thereof. The second handling of the delayed job operation is described later with reference to
The first handling of the delayed job operation executed at S303 of
Referring to
The delay handling control unit 24 sets the number n for the overall shared use frequency to be n=1 based on the delay handling information (at S404), and acquires the zone of the job operation having the n-th highest overall shared use frequency (at S405). For example, the delay handling control unit 24 acquires from the determination result storage unit 34 the zone of the job operation having the highest overall shared use frequency. The delay handling control unit 24 determines whether the acquired zone is in the S zone (at S406).
If it is determined that the acquired zone is the S zone (yes branch from S406), the delay handling control unit 24 acquires the transaction count of the job operation determined as being in the S zone (at S407), and determines whether the transaction count is higher than “0” (at S408). For example, the delay handling control unit 24 determines whether the job operation is a job operation currently in progress.
If it is determined at S408 that the transaction count is higher than “0” (yes branch from S408), the delay handling control unit 24 identifies as the high shared job operation the job operation in the S zone (at S409) and identifies the modification target server (at S410). For example, the delay handling control unit 24 identifies as the modification target server a server executing a process using an object not used in the delayed job operation, from among the processes executing the job operation identified as the high shared job operation.
The delay handling control unit 24 identifies a process that executes the high shared job operation in the identified modification target server (at S411). For example, the delay handling control unit 24 references the job operation information stored on the job operation information storage unit 31, thereby identifying the process executing the high shared job operation in the identified modification target server.
The delay handling control unit 24 performs a loop control process that prevents the priority modification being repeated in the same combination of the delayed job operation and the priority modification process (at S412). The control loop process is described in detail later with reference to
The delay handling control unit 24 determines whether a loop disable flag is set (at S413). For example, the delay handling control unit 24 determines whether the priority of the identified high shared job operation has been lowered within a specific period of time in the same combination of the delayed job operation and the priority modification process.
Upon determining at S413 that the loop disable flag is not set (no branch from S413), the delay handling control unit 24 in the control operation thereof lowers the priority of the process identified at S411 (at S414). For example, the delay handling control unit 24 then sends to the modification target server a command to lower the priority of the identified process.
The delay handling control unit 24 sets a handled flag indicating that the handling of the delayed job operation has been executed (at S415). For example, the delay handling control unit 24 stores on the handling result storage unit 36 the handled flag that is information indicating that the first handling of the delayed job operation has been executed.
The delay handling control unit 24 then stores on the handling result storage unit 36 the handling results including the priority modification time, the delayed job operation, and the priority modification process mapped to each other (at S416). In accordance with the delay handling information, the delay handling control unit 24 sets the number n, set for the overall shared use frequency to, n=n+1 (at S417). The delay handling control unit 24 executes the handling of a job operation having the second highest shared use frequency.
Similarly, upon determining at S406 that the job operation is not in the S zone (no branch at S406), the delay handling control unit 24 sets the number n, set for the shared use frequency in accordance with the delay handling information, to n=n+1 (at S417). Upon determining at S408 that the transaction count is not higher than “0” (no branch from S408), the delay handling control unit 24 sets the number n, set for the overall shared use frequency in accordance with the delay handling information, to n=n+1 (at S417). Upon determining at S413 that the loop disable flag is set (yes branch from S413), the delay handling control unit 24 sets the number n, set for the overall shared use frequency in accordance with the delay handling information, to n=n+1 (at S417).
The delay handling control unit 24 then determines whether n is greater than a value that results from subtracting 1 from the overall transaction count (at S418). In other words, the delay handling control unit 24 determines whether the first handling has been performed on all the job operations other than the delayed job operation.
Upon determining that n is not greater than a value that results from subtracting 1 from all the transaction count (no branch from S418), the delay handling control unit 24 returns to S405 to acquire the zone of the job operation having the second highest shared use frequency (at S405). Upon determining that n is greater than a value that results from subtracting 1 from all the transaction count (no branch from S418), the delay handling control unit 24 ends the process thereof (yes branch from S418).
The second handling of the delayed job operation executed at S305 of
If the priority control apparatus 10 of the second embodiment determines at S304 of
The delay handling control unit 24 acquires the zone of the job operation having the n-th highest overall shared use frequency (at S502), and determines whether the zone is the under-R zone (at S503). For example, the delay handling control unit 24 acquires the zone of the job operation having the highest overall shared use frequency and determines whether the zone is the under-R zone.
If it is determined at S503 that the zone acquired is the under-R zone (yes branch from S503), the delay handling information generator 23 generates the delay handling information for the job operation in the under-R zone and stores the generated delay handling information on the delay handling information storage unit 35 (at S504). The delay handling information generator 23 attaches numbers to the overall shared use frequencies in the order of high to low overall shared use frequency (at S505). The delay handling control unit 24 sets the number m, set in the order from high to low overall shared use frequency, to m=1 (at S506).
The delay handling control unit 24 acquires the zone of a job operation having the m-th highest overall shared use frequency (at S507) and determines whether the acquired zone is the S zone (at S508). For example, the delay handling control unit 24 acquires the zone of the job operation having the highest overall shared use frequency and determines whether the acquired zone is the S zone. As in S406-S414 of
To identify a process at S513, the delay handling control unit 24 identifies a process that does not execute a currently delayed job operation. For example, to identify at S513 a process having the priority thereof to be lowered, the delay handling control unit 24 identifies, as a process with the priority thereof to be lowered, a process not executed in a job operation currently in the R zone.
After the priority of the process identified at S516 is lowered, the delay handling control unit 24 stores the handling results on the handling result storage unit 36 as in a similar manner as at S416 of
In accordance with the delay handling information, the delay handling control unit 24 sets the number m, set for the overall shared use frequency, to m=m+1 (at S518). For example, the delay handling control unit 24 performs the control operation thereof on the job operation having the next highest shared use frequency. Similarly, upon determining at S508 that the job operation is not in the S zone (no branch from S508), the delay handling control unit 24 sets the number m, set for the overall shared use frequency, to m=m+1 (at S518). Upon determining at S510 that the transaction count is not higher than “0” (no branch from S510), the delay handling control unit 24 sets the number m, set for the overall shared use frequency in accordance with the delay handling information, to m=m+1 (at S518). Upon determining at S515 that the loop disable flag is set (yes branch from S515), the delay handling control unit 24 sets the number m, set for the overall shared use frequency in accordance with the delay handling information, to m=m+1 (at S518).
The delay handling control unit 24 determines whether m is greater than the record count of delay handling information (at S519). For example, the delay handling control unit 24 determines whether the second handling of the delayed job operation is executed on all the job operations in the under-R zone.
Upon determining that m is not greater than the record count of delay handling information (no branch from S519), the delay handling control unit 24 returns to S507 to acquire the zone of a job operation having the next highest shared use frequency (at S507). Upon determining that m is greater than the record count of delay handling information (yes branch from S519), the delay handling control unit 24 sets the number n, set for the overall shared use frequency of the shared job operation to the delayed job operation, to n=n+1 (at S520). Similarly, upon determining at S503 that the zone is not the under-R zone, the delay handling control unit 24 sets the number n, set for the overall shared use frequency of the shared job operation to the delayed job operation, to n=n+1 (at S520). The delay handling control unit 24 then determines whether n is greater than a value that results from subtracting 1 from the overall job operation count (at S521).
Upon determining at S521 that n is not greater than a value that results from subtracting 1 from the overall job operation count (no branch from S521), the delay handling control unit 24 returns to S502 to acquire the zone of a job operation having the next high share use frequency (at S502). Upon determining at S521 that n is greater than a value that results from subtracting 1 from the overall job operation count (yes branch from S521), the delay handling control unit 24 ends the process thereof.
The loop control process executed at S412 in
Referring to
The delay handling control unit 24 acquires the present time (at S603), and acquires the detection time band stored on the storage 30 (at S604). The delay handling control unit 24 sets numbers to the handling results stored on the handling result storage unit 36 in the order of new to old results (at S605).
The delay handling control unit 24 sets the number l, set for the handling result, to l=1 (at S606), and acquires the priority modification time from the 1-th handling result of the latest handling results (at S607). The delay handling control unit 24 calculates a difference between the present time and the priority modification time (at S608), and determines whether the calculated difference is within the detection time band (at S609).
Upon determining that the difference is not within the detection time band (no branch from S609), the delay handling control unit 24 ends the process thereof. Upon determining that the difference is within the detection time band (yes branch from S609), the delay handling control unit 24 determines whether the process of the delayed job operation and the high shared job operation are similar to the process of the delayed job operation having undergone the delay handling before and the priority modification process (at S610). For example, the delay handling control unit 24 determines whether the identified process of the high shared job operation and the delayed job operation are similar to the priority modification process mapped to the priority modification time acquired at S607 and the delayed job operation.
Upon determining at S610 that the process of the delayed job operation and the high shared job operation are similar to the process of the delayed job operation having undergone the delay handling before and the priority modification process (no branch from S610), the delay handling control unit 24 sets the number l, set for the handling result, to l=l+1 (at S611). The delay handling control unit 24 then returns to S607 to acquire the priority modification time from the (l+1)-th handling result (at S607). In other words, the delay handling control unit 24 acquires the priority modification time of the next newest handling result.
Upon determining at S610 that the process of the delayed job operation and the high shared job operation are similar to the process of the delayed job operation having undergone the delay handling before and the priority modification process (yes branch from S610), the delay handling control unit 24 sets the loop disable flag (at S612), and ends the process thereof. For example, the delay handling control unit 24 stores on the storage 30 the loop disable flag indicating that the priority of the same process has been modified with the detection time band, and then ends the process thereof.
In accordance with the second embodiment as described above, the job operation information storage unit 31 stores the job operation information that maps on a per job operation basis the process executing the job operation and the object used by the process with each job operation executed by a plurality of processes. The delay determiner 22 determines the delayed job operation that is delayed in operation from among the plurality of job operations. The priority controller 20 references the job operation information stored on the job operation information storage unit 31 and identifies the shared job operation that is another job operation sharing the object used in the delayed job operation. The priority controller 20 in the control operation thereof identifies the process using the object not used in the delayed job operation, from among the processes executing the identified shared job operation, and lowers the priority at which the identified process is to be executed. The priority control apparatus 10 responds autonomously in response to a delay of any job operation, and solves the delay problem.
The identified process may have the priority that has been lowered in response to the same delayed object operation before. In accordance with the second embodiment, the priority controller 20 in the control operation thereof lowers the priority of the identified process on condition that a specific period of time has elapsed since the time of lowering the priority. This arrangement prevents the priority from being modified repeatedly in the same job operation and lightens the load of lowering the priority.
In accordance with the second embodiment, the shared use information storage unit 32 stores on a per job operation basis the shared use information that maps the shared use frequency of the object shared in another job operation to each job operation. The delay determiner 22 determines the degree of delay generated in the job operation. The priority controller 20 references the shared use information and identifies as the high shared job operation from the shared job operations the job operation having a high shared use frequency with the delayed job operation and having a minimum degree of delay determined by the delay determiner 22. The priority controller 20 in the control operation thereof identifies the process using the object not used in the delayed job operation, from among the processes executing the identified high shared job operation, and lowers the priority of the identified process. A job operation having a high effectiveness to delay solving and having a minimum effect on priority lowering can thus be selected, and the delaying of the job operation is solved even further.
In accordance with the second embodiment, the shared use information storage unit 32 stores the shared use frequency of the shared use information with the execution area of the process mapped thereto. The delay determiner 22 determines the cause area serving as the main cause of delay in a plurality of execution areas on which the process of the job operation determined as the delayed job operation is executed. The priority controller 20 determines from the shared use information storage unit 32 the shared use frequency of the object used by the process executed in the cause area determined by the delay determiner 22 with respect to the delayed job operation. The priority controller 20 identifies the high shared job operation by referencing the shared use information having the identified shared use frequency weighted with a specific weight, and identifies the process using the object not used in the delayed job operation, from among the processes executing the identified high shared job operation. The priority controller 20 in the control operation thereof lowers the priority of the identified process. The job operation sharing the object in the bottleneck server is identified with priority, and the delay is effectively solved. The delaying of the job operation is even further effectively solved.
In accordance with the second embodiment, the delay determiner 22 sorts the job operations other than the delayed job operation into a sub delayed job operation having the degree of delay falling within a specific tolerance range, and a no-delay job operation that is free from delay, and then determines the job operations. If the delay determiner 22 determines the high shared job operation as a no-delay job operation, the priority controller 20 in the control operation thereof lowers in the high shared job operation the priority of the process using the object not used in the delayed job operation. If the high shared job operation is determined as a sub delayed job operation, the priority controller 20 references the job operation information stored on the job operation information storage unit 31 and identifies as a high shared job operation the sub shared job operation sharing the object used in the sub delayed job operation. In the high shared job operation, the priority controller 20 in the control operation thereof lowers the priority of the process using the object not used in the sub delayed job operation. Even if the high shared job operation is a sub delayed job operation, the delay of the delayed job operation is solved without lowering the priority of the sub delayed job operation. The bad effect of lowering the priority is minimized.
In accordance with the second embodiment, the priority of the same process is not lowered on the same delayed job operation within the specific period of time in the loop control process of the delay handling control unit 24. In accordance with a third embodiment, the loop control process accounts for the operation count in addition to the specific period of time as conditions thereof.
An example structure of a priority control apparatus 10 of the third embodiment is described with reference to
The degree of influence storage unit 37 stores degree of influence information that maps the present operation count to each job operation. The priority controller 20 generates and updates the degree of influence information stored on the degree of influence storage unit 37 in response to a transaction count per job operation acquired from the job operation information acquisition apparatus (not illustrated) as appropriate.
If the process currently executing the delayed job operation has the priority that has been lowered before, the delay handling control unit 24 identifies the job operation having a currently processed job count larger than that of the delayed job operation. The delay handling control unit 24 determines whether the priority of the process has been lowered with respect to the identified job operation. If the priority has been lowered, the delay handling control unit 24 lowers the priority of the identified process on condition that a specific period of time has elapsed since the time of lowering of the priority.
When a handling of the delayed job operation is newly executed, the delay handling control unit 24 determines whether a process of executing a currently delayed job operation (hereinafter referred to as a delayed job process) within a specific period of time is stored on the handling result storage unit 36. Only if the delay handling control unit 24 determines that the delayed job process within the specific period of time is stored on the handling result storage unit 36, the delay handling control unit 24 references the degree of influence storage unit 37. The delay handling control unit 24 then compares the transaction count of the currently delayed job operation with the current transaction count of the job operation stored on the handling result storage unit 36 and mapped to the delayed job process. Only if the current transaction count of the job operation stored and mapped to the delayed job process is higher than the transaction count of the currently delayed job operation, the delay handling control unit 24 sets the loop disable flag. If the delayed job process within the specific period of time is not stored on the handling result storage unit 36 in the execution of the new handling of the delayed job operation, the delay handling control unit 24 in the control operation thereof lowers the priority of the identified process. If it is determined that the delayed job process within the specific period of time is stored, and if the current transaction count of the job operation mapped to the delayed job process is lower than the transaction count of the delayed job operation, the delay handling control unit 24 in the control operation thereof lowers the priority.
For example, the present time may be “2:31:00,” 60 seconds may be stored as the detection time band on the storage 30, and the priority of the “process: wp1” may be newly lowered with respect to the “delayed job operation: B.” In such a case, the delay handling control unit 24 references the handling result storage unit 36 and determines whether the priority of the process executing the “job operation: B” within the detection time band has been lowered. If none of the processes “wp2, ap1, db1” executing the “job operation: B” are stored within the specific period of time on the handling result storage unit 36, the delay handling control unit 24 in the control operation thereof lowers the priority of the “process: wp1” with respect to the “delayed job operation: B.”
If the process “wp2” executing “B” within the detection time band is stored as illustrated in
If the “transaction count: 30” of “A” is higher than the “transaction count: 10” of “B” as illustrated in
The loop control process executed by the priority control apparatus of the third embodiment is described below with reference to
The process of the priority control apparatus of the third embodiment is similar to the process of the priority control apparatus of the second embodiment discussed with reference to
If the priority control apparatus of the third embodiment identifies a process the priority of which is to be lowered as illustrated in
Upon determining at S709 that the difference fails to fall within the detection time band (no branch from S709), the delay handling control unit 24 ends the process thereof. Upon determining at S709 that the difference falls within the detection time band (yes branch from S709), the delay handling control unit 24 determines whether the priority modification process stored on the handling result storage unit 36 is a delayed job process (at S710).
If it is determined at S710 that the priority modification process is not a delayed job process (no branch from S710), the delay handling control unit 24 sets the number l, set for the handling results, to l=l+1 (at S711), and then returns to S707 to acquire the priority modification time from the (l+1)-th handling results.
If it is determined at S710 that the priority modification process is a delayed job process (yes branch from S710), the delay handling control unit 24 determines whether the current transaction count of the job operation mapped to the delayed job process is higher than the transaction count of the delayed job operation (at S712). For example, the delay handling control unit 24 determines whether the transaction count of the delayed job operation in the degree of influence information stored on the degree of influence storage unit 37 is higher than the transaction count of the job operation mapped to the delayed job process.
If it is determined at S712 that the transaction count of the job operation mapped to the delayed job process is not higher than the transaction count of the delayed job operation (no branch from S712), the delay handling control unit 24 returns to S711 to set the number l, set for the handling results, to l=l+1. If it is determined at S712 that the transaction count of the job operation mapped to the delayed job process is higher than the transaction count of the delayed job operation (yes branch from S712), the delay handling control unit 24 sets the loop disable flag (at S713), and ends the process thereof.
In accordance with the third embodiment, the loop control process is performed using the handling results that map the delayed job operation to the priority modification process. The embodiment is not limited to this arrangement. For example, the loop control process may be performed using the handling results that map the delayed job operation to the job operation with the priority thereof modified.
In accordance with the third embodiment, the priority controller 20 identifies the job operation having the number of currently processed jobs higher than that of the delayed job operation if the process executing the currently delayed job operation has the priority thereof lowered. The priority controller 20 then determines whether the priority of the process has been lowered with respect to the identified job operation. If the priority has been lowered, the priority controller 20 in the control operation thereof lowers the priority of the identified process on condition that the specific period of time has elapsed since the lowering of the priority of the process. Even if the handling of the delayed job operation is temporarily restricted through the loop control, the job operation having a low transaction count can be selected, and the effect of delay on the job operation is minimized.
The first through third embodiments have been discussed. A variety of embodiments may be implemented in addition to the first through third embodiments. The variety of embodiments may include the following modifications (1)-(6) to the first through third embodiments.
(1) Shared Job Operation
In accordance with the first through third embodiments, the high shared job operation having a high shared use frequency with the delayed job operation and having a minimum degree of delay is identified, and the priority of the process executing the identified high shared job operation is lowered. The embodiments are not limited to this arrangement. For example, the priority of the process executing the shared job operation sharing the object with the delayed job operation may be lowered without identifying the high shared job operation.
(2) Shared Use Frequency
In accordance with the first through third embodiments, the high shared job operation is identified using the shared use frequency of the object shared in the bottleneck server after the shared use frequency is weighted with a specific weight. The embodiments are not limited to this arrangement. For example, the high shared job operation may be identified using the shared use frequency that has not been weighted with the specific weight.
(3) Loop Control
In accordance with the first through third embodiments, the loop control process is performed when the priority, at which the process of the same high shared job operation is executed on the same delayed job operation, is lowered. The embodiments are not limited to this arrangement. For example, the loop control process may not be performed.
(4) Determination Criteria
In accordance with the first through third embodiments, the average process time is used as determination criteria of the degree of delay of the job operation. The embodiments are not limited to this arrangement. The longest process time or a 85 percentile value may be used.
(5) Communication Path
In accordance with the first through third embodiments, the priority control apparatus is connected to the Web server, the AP server, and the DB server via the network. The embodiments are not limited to this arrangement. For example, the priority control apparatus may be connected to the Web server, the AP server, and the DB server different communication paths.
(6) System Structure
Information including the process procedure, the specific designations, the variety of data, and the variety of parameters described with reference to the embodiments may be updated unless otherwise noted. For example, if a new job operation is added to the job operations performed in the job operation system, the job operation information stored on the job operation information storage unit 31 may be updated as appropriate.
Each element of the apparatuses illustrated above does not necessarily represent a physical structure as illustrated. For example, integration or separation of elements of each apparatus is not limited to a specific configuration (such as the configuration illustrated in
The processes described above are automatically performed. Part or whole of the processes may be manually performed. For example, the generation and the storage of the shared use information illustrated in
All examples and conditional language recited herein are intended for pedagogical purposes to aid the reader in understanding the invention and the concepts contributed by the inventor to furthering the art, and are to be construed as being without limitation to such specifically recited examples and conditions, nor does the organization of such examples in the specification relate to a showing of the superiority and inferiority of the invention. Although the embodiments of the present inventions have been described in detail, it should be understood that the various changes, substitutions, and alterations could be made hereto without departing from the spirit and scope of the invention.
Number | Date | Country | Kind |
---|---|---|---|
2009-219437 | Sep 2009 | JP | national |