1. A computer readable recording medium having stored therein a program for causing a computer to execute a process, the computer included in a system including first and second storage devices, the first storage device storing first and second data, the second storage device storing the first data, the process comprising:
performing, on the first storage device, first access processing responsive to access requests to both of the first and second data; and
performing, on the second storage device, a second access processing responsive to an access request to the first data, upon receiving an access request to the first data after performing the first access processing.
2. The computer readable recording medium of claim 1, wherein the process further comprises:
measuring processing time for the first access processing performed on the first storage device; and
performing, on the second storage device, the second access processing responsive to an access request to the first data when the processing time obtained by the measuring after performing, on the first storage device, the first access processing responsive to access requests to both of the first and second data is longer than a predetermined time.
3. A computer readable recording medium having stored therein a program for causing a computer to execute a process, the computer writing target-status data characterizing a state of a monitoring target into a database that is set as a writing destination among a group of databases, the process comprising:
performing first database-detection processing to detect, from among the group of databases, a first database having a response-time index value that is greater than a first threshold value, the response-time index value indicating magnitude of a response time taken by a database to respond to a reference request; and
performing writing-destination change processing to change a writing destination of the target-status data characterizing a state of at least one monitoring target, for which the first database is currently set as a writing destination, from the first database to a second database included in the group of databases.
4. The computer readable recording medium of claim 3, wherein the process further includes performing second database-detection processing to detect, from among the group of databases, the second database having the response-time index value smaller than a second threshold value that is set at a value smaller than the first threshold value; and
the writing-destination change processing changes a writing destination of the target-status data characterizing a state of the at least one monitoring target, from the first database to the detected second database.
5. The computer readable recording medium of claim 3, wherein the process includes performing selection processing to select a first monitoring target from among one or more monitoring targets for which the first database is set as a writing destination, based on a first readout frequency indicating a frequency at which the target-status data characterizing a state of each of the one or more monitoring targets is read out from the first database; and
the writing-destination change processing changes a writing destination of the target-status data characterizing the selected first monitoring target, from the first database to the second database.
6. The computer readable recording medium of claim 5, wherein
the selection processing selects, as the first monitoring target, a monitoring target for which the first readout frequency of the target-status data is maximum among the one or more monitoring targets; and
under a condition that there exist a plurality of the second databases, the writing-destination change processing changes a writing destination of the target-status data characterizing the selected first monitoring target, from the first database to one of the plurality of the second databases that has the response-time value minimum among the plurality of the second databases.
7. The computer readable recording medium of claim 3, wherein the process further includes:
calculating, for each of pairs of monitoring targets, a second readout frequency at which two pieces of the target-status data characterizing respective monitoring targets included in the each pair of monitoring targets are simultaneously read out from the first database,
determining a first pair of monitoring targets of which the second readout frequency is greater than or equal to a second threshold value, based on the second readout frequency, and
selecting a first monitoring target included in the determined first pair of monitoring targets; and
the writing-destination change processing changes a writing destination of the target-status data characterizing a state of the selected first monitoring target, from the first database to the second database.
8. The computer readable recording medium of claim 7, wherein
under a condition that there exist a plurality of the second databases, the write-destination change processing changes a writing destination of the target-status data characterizing a state of each of the first pair of monitoring targets, from the first database to one of the plurality of second databases so that two writing destinations of the target-status data characterizing the first pair of monitoring targets are different from each other.
9. The computer readable recording medium of claim 3, wherein the process includes performing response-time calculation processing to calculate, as the response-time index value for each of the group of databases, an average value of response times of the each database; and
the first database-detection processing detects, from among the group of databases, the first database of which the average value of response times is greater than or equal to the first threshold value.
10. The computer readable recording medium of claim 3, wherein
under a condition that there exist a plurality of the second databases each having the response-time index value greater than or equal to the first threshold value, the first database-detection processing detects, as the first database, from among the group of databases, a database having the response-time index value that is maximum among the group of databases.
11. The computer readable recording medium of claim 3, wherein the process further including:
acquiring the target-status data characterizing a state of the at least one monitoring target after a writing destination of the target-status data characterizing a state of the at least one monitoring target has been changed to the second database; and
writing the acquired target-status data characterizing a state of the at least one monitoring target into the second database.
12. A computer readable recording medium having stored therein a program for causing a computer to execute a process, the computer controlling an information processing apparatus to write target-status data characterizing a state of a monitoring target into a database that is set as writing destinations among a group of databases, the process comprising:
detecting, from among the group of databases, a first database of which a response-time index value is greater than or equal to a predetermined threshold value, the response-time index value indicating magnitude of a response time of a database; and
changing a writing destination of the target-status data characterizing a state of at least one monitoring target for which the first database is set as a writing destination of the target-status data, from the first database to a second database included in the group of databases.
13. An apparatus comprising:
a processor to:
write target-status data characterizing a state of a monitoring target into a database that is set as writing destinations among a group of databases, detect, from among the group of databases, a first database of which a response-time value is greater than or equal to a predetermined threshold value, the response-time value indicating a length of a response time from issuing a request for reading out the data to receiving a response to the issued request; and
change a writing destination of the target-status data characterizing a state of at least one monitoring target for which the first database is set as a writing destination of the target-status data, from the first database to a second database included in the group of databases; and
a memory to store information on the writing destination of the target-status data.
14. An apparatus for controlling an information processing apparatus to write target-status data characterizing a state of a monitoring target into a database that is set as a writing destination among a group of databases, the apparatus comprising:
a detecting unit configured to detect, from among the group of databases, a first database of which a response-time value is greater than or equal to a predetermined threshold value, the response-time value indicating a length of a response time from issuing a request for reading out the data to receiving a response to the issued request; and
a changing unit configured to change a writing destination of the target-status data characterizing a state of at least one monitoring target for which the first database is set as a writing destination of the target-status data, from the first database to a second database included in the group of databases.
15. A method performed by a computer writing target-status data characterizing a state of a monitoring target into a database that is set as a writing destination among a group of databases, the method comprising:
detecting, from among the group of databases, a first database of which a response-time value is greater than or equal to a predetermined threshold value, the response-time value indicating a length of a response time from issuing a request for reading out the data to receiving a response to the issued request; and
changing a writing destination of the target-status data characterizing a state of at least one monitoring target for which the first database is set as a writing destination of the target-status data, from the first database to a second database included in the group of databases.
16. A method performed by a computer controlling an information processing apparatus to write target-status data characterizing a state of a monitoring target into a database that is set as writing destinations among a group of databases, the method comprising:
detecting, from among the group of databases, a first database of which a response-time value is greater than or equal to a predetermined threshold value, the response-time value indicating a length of a response time from issuing a request for reading out the data to receiving a response to the issued request; and
changing a writing destination of the target-status data characterizing a state of at least one monitoring target for which the first database is set as a writing destination of the target-status data, from the first database to a second database included in the group of databases.
The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.
1. A method for determining hot code in a client process comprising:
performing a hot code discovery operation;
performing a code partitioning operation;
performing a fall-through-only computation operation;
performing a hot call inlining operation;
performing a patch point selection operation; and,
performing a code pruning operation.
2. The method of claim 1 wherein:
the hot code discovery operation disassembles code of a client process forward starting from addresses known to be frequently executed, without requiring any static program information; and,
control flow of the client process is followed to provide a control flow graph which contains arbitrary control flow.
3. The method of claim 2 wherein:
the hot code discovery operation limits forward disassembly of a client process using a jumps-from-hot method to control an amount of less frequently executed code included in the control flow graph so as to allow nearby hot code to be connected into a single connected component.
4. The method of claim 2 wherein:
the hot code discovery operation efficiently detects overlapping instructions using an entry mapping and position structure which records information about instruction boundaries and overlapping code sequences; and,
overlapping instructions can occur when executing on an architecture with variable-length instructions and when a calling convention can have calls that never return.
5. The method of claim 2 wherein:
the hot code discovery operation uses load target address information provided by a hardware performance monitor to determine the targets of indirect control flow.
6. The method of claim 1 wherein:
the code partitioning operation further comprises moving basic blocks and control flow edges of each connected component of a single super region control flow graph into a separate super region.
7. The method of claim 3 wherein:
the fall-through-only computation operation further comprises computing control flow edge counts for edges that are not identified via hardware sampling.
8. The method of claim 1 wherein:
the hot call inlining operation further comprises
substituting a call for code in a routine that is called; and,
selecting only to substitute for heavily executed code.
9. The method of claim 1 wherein:
the patch point selection operation further comprises using loop properties, dominator properties, and post dominator properties of the hot code to determine a suitable set of entry points that have a property that the entry points can be used as patch points.
10. The method of claim 1 wherein:
the code pruning operation further comprises removing code that is determined to not contribute to hot loops.
11. An apparatus for determining hot code in a client process comprising:
means for performing a hot code discovery operation;
means for performing a code partitioning operation;
means for performing a fall through only computation operation;
means for performing a hot call inlining operation;
means for performing a patch point selection operation; and,
means for performing a code pruning operation.
12. The apparatus of claim 11 wherein:
the hot code discovery operation disassembles the code of a client process forward starting from addresses known to be frequently executed, without requiring any static program information; and,
control flow of the client process is followed to provide a control flow graph which contains arbitrary control flow.
13. The apparatus of claim 11 wherein:
the hot code discovery operation limits forward disassembly of the client process using a jumps-from-hot method to control an amount of less frequently executed code included in the control flow graph so as to allow nearby hot code to be connected into a single connected component.
14. The apparatus of claim 11 wherein:
the hot code discovery operation efficiently detects overlapping instructions using an entry mapping and position structure which records information about instruction boundaries and overlapping code sequences; and,
overlapping instructions can occur when executing on an architecture with variable-length instructions and when a calling convention can have calls that never return.
15. The apparatus of claim 11 wherein:
the hot code discovery operation uses load target address information provided by a hardware performance monitor to determine the targets of indirect control flow.
16. The apparatus of claim 11 wherein:
the code partitioning operation further comprises moving basic blocks and control flow edges of each connected component of a single super region control flow graph into a separate super region.
17. The apparatus of claim 11 wherein:
the fall-through-only computation operation further comprises computing control flow edge counts for edges that are not identified via hardware sampling.
18. The apparatus of claim 11 wherein:
the hot call inlining operation further comprises
substituting a call for code in a routine that is called; and,
selecting only to substitute for heavily executed code.
19. The apparatus of claim 12 wherein:
the patch point selection operation further comprises using loop properties, dominator properties, and post dominator properties of the hot code to determine a suitable set of entry points that have a property that the entry points can be used as patch points.
20. The apparatus of claim 11 wherein:
the code pruning operation further comprises removing code that is determined to not contribute to hot loops.