This application claims the benefit of Japanese Patent Application No. 2009-148046, filed on Jun. 22, 2009, which is incorporated by reference herein in its entirety. The present invention relates to a processing node selection system, an information processing node, a processing execution method and computer-readable storage medium storing a program, and in particular to a processing node selection system that has a plurality of information processing nodes (referred to below as simply “processing node” or “node”) and that selects a processing node to process a processing request from a client, and an information processing node, a processing execution method and a computer-readable storage medium storing a program therefor.
In client-server models, examples are known in which a system corresponding to a server is configured from a plurality of application nodes and a plurality of storage nodes. The application nodes are nodes provided with processing execution resources that are formed, for example, of a CPU (Central Processing Unit) and a memory, and the storage nodes are nodes provided with a storage medium that is formed, for example, of a hard disk drive, and that stores data used in processing execution.
A description concerning operation in this type of system is given using
Furthermore, in this type of system, technology is known in which a processing resource is added to the storage node, and by making use of the processing resource that is used by the storage node for storage processing, a part of the processing executed by an application node is delegated to the storage node to be executed by the storage node. Non-Patent Document 1, for example, describes technology to perform data base reorganization in a storage system.
JP Kohyo Publication No. JP-P2005-512232A is a patent document that refers to storage nodes. According to this document, the system does not perform delegation of processing as in Non-Patent Document 1 described above, but a system management server monitors an application's use of network storage, and transparently and dynamically reallocates a virtual segment to an optimal physical storage resource.
The entire disclosures of the abovementioned Patent Document 1 and Non-Patent Document 1 are incorporated herein by reference thereto. An analysis of related technology according to the present invention is given below. In a system of a configuration as described above, since it is necessary to transmit a processing result or data both in a case of executing processing by an application node and in a case of executing processing by a storage node, when the number of processing requests from a client increases, congestion may occur in an internal network between the abovementioned application node and storage node, and a response delay may occur with respect to a processing request (refer to the internal network 8 of
Referring to
Comparing the case of performing processing execution by the application node as in
For example, in general the data volume before processing is larger for data compression processing, and the data volume after processing is larger for decompression processing of compressed data. As a result, in a system that mixes processing with different size relationship characteristics for data volumes before and after processing, there is a problem in that, even if a selection is made to either employ a method in which the processing execution of
Therefore, it is an object of the present invention to provide a processing node decision system, an information processing node, a processing node decision method and a program, by which, in a configuration where either of two nodes executes processing using node data of one of the two nodes, and the other node is an output destination, it is possible to ensure a required response performance regardless of processing content.
According to a first aspect of the present invention, there is provided a processing node selection system characterized by comprising: a first node that has a processing resource; and a second node that has a processing resource and stores data used in processing; wherein a selection is made of a node with a smaller total volume of data to be exchanged between the first and second nodes, as a node to execute the processing when processing is executed using data stored in said second node and the processing result is outputted by the first node.
According to a second aspect of the present invention, with regard to the processing node selection system described above, there is provided an information processing node that performs node selection processing.
According to a third aspect of the present invention, there is provided a processing execution method of executing processing by either of a first node that has a processing resource, and a second node that has a processing resource and stores data used in processing. The method comprises: a step that selects a node with a smaller total volume of data to be exchanged between the first and second nodes, among either of a case of transmitting data stored in the second node to the first node and executing processing by the first node, or a case of executing processing by the second node and transmitting a processing result thereof to the first node; and a step in which the selected node executes the processing. It is to be noted that the present method is linked with a specific apparatus, known as an information processing node that determines the processing node.
According to a fourth aspect of the present invention, there is provided a program included in an information processing system that executes processing in either of a first node that has a processing resource and a second node that has a processing resource and stores data used in specific processing. The program causes execution in an information processing node including either the first node and the second node, and the program causing the computer to execute: a process of computing a ratio of data volumes before and after processing according to the specific processing; and a process of determining a node to execute the specific processing so as to have a small total volume of data exchanged between the first and second nodes, based on the data volume ratio. It is to be noted that this program can be recorded in a computer readable storage medium. That is, the present invention can be embodied as a computer program product. The program may be stored on a computer-readable storage medium. Also the program may be regarded as either a program product (i.e. manufacture) or a process embodying the data storage method (process), expressed in a program language.
The meritorious effects of the present invention are summarized as follows.
According to the present invention, in a configuration where either of two nodes executes processing using node data of one of the two nodes, and the other node is an output destination, it is possible to prevent deterioration in response performance that may occur due to processing having a different size relationship characteristic for data volumes before and after processing.
First, a description is given of an outline of an exemplary embodiment of the present invention. A processing node selection system of the exemplary embodiment of the present invention is configured from a first node that is provided with a processing resource, a second node that is provided with a processing resource and that stores data to be used in processing, and a third node (either of the first or second node is also possible) that selects which of the first node or the second node is to execute processing that is to be executed by either the first node or the second node.
The third node (either the first or the second node is also possible) selects the node with a smaller total volume of data to be exchanged between the first and second nodes.
Very simply, it is possible to select the node using a ratio of data volumes before processing and after processing. That is, as in data compression processing described above, in a case where the data volume before processing is larger than the data volume after processing, executing the processing by the second node that is holding the data can enable a decrease in the total data volume exchanged between the first and the second nodes. Conversely, as in data decompression processing described above, in a case where the data volume before processing is less than the data volume after processing, executing the processing by receiving data before processing by the first node can enable a decrease of the total data volume exchanged between the first and the second nodes. From the above, it is possible to realize an object of the present invention.
Next, a detailed description is given concerning a first exemplary embodiment of the present invention, making reference to the drawings.
The application nodes 1 and the storage nodes 2 are connected via the internal network 8.
The application nodes 1 and the clients 3 are connected via the external network 9.
An application node 1 receives a processing request from a client 3, makes a processing request or a data request to a storage node 2, transmits to the client 3 a processing result received from the storage node 2 in a case where the processing request was made with regard to the storage node 2, and executes processing on received data in a case where the data request was made with regard to the storage node 2 and transmits a processing result to the client 3.
The storage node 2 stores data to be used in processing, and in a case of receiving the processing request from the application node 1, executes the processing and transmits a processing result to the application node 1, and in a case of receiving the data request from the application node 1, transmits the data to the application node 1.
The client 3 makes a processing request with regard to the application node 1, and receives a processing result from the application node 1.
The internal network 8 provides a communication path between the application node 1 and the storage node 2.
The external network 9 provides a communication path between the application node 1 and the client 3.
Next, a detailed description is given of a configuration of the application node 1 using
The control unit 11 controls overall operations of the application node 1. The processing execution unit 12 reads and executes a program stored in the program storage unit 14. The control unit 11, the processing execution unit 12, a program storage unit 141, and a memory not shown in the drawings are positioned as processing resources.
The data volume ratio computation unit 13 computes an average value of a ratio of data volumes before and after processing, from data volumes before processing and after processing as stored in a data volume storage unit 143 for each program, and stores the value in a data volume ratio storage unit 144.
The control unit 11, the processing execution unit 12, and the data volume ratio computation unit 13 can be implemented as appropriate by software or hardware. For example, a computer system configured by a CPU (Central Processing Unit) and a memory storing a program is possible, and a dedicated electronic circuit is also possible. Furthermore, it is not necessary that two or more among the control unit 11, the processing execution unit 12, and the data volume ratio computation unit 13 be independent, and, for example, it is also possible to have physically the same system or circuit configuration.
The storage unit 14 is provided with the program storage unit 141, a data information storage unit 142, the data volume storage unit 143, and the data volume ratio storage unit 144. The storage unit 14 can be implemented by a hard disk drive, for example.
The program storage unit 141 stores a program that can be executed by the processing execution unit 12. The program storage unit 141 can store a plurality of programs. Below, an expression of executing processing by the application node 1 is used to have the same meaning as executing a program associated with processing by the processing execution unit 12 of the application node 1.
The data information storage unit 142 stores information related to data stored in the storage node 2.
The data volume storage unit 143 stores the data volume before processing and the data volume after processing.
The data volume ratio storage unit 144 stores a ratio of the data volumes before and after processing.
The system communication unit 18 functions as an interface between inside the application nodes 1 and the internal network 8.
The client communication unit 19 functions as an interface between inside the application nodes 1 and the external network 9.
Next, a detailed description is given of a configuration of the storage node 2.
The control unit 21 controls overall operation of the storage node 2. The processing execution unit 22 reads and executes a program stored in a program storage unit 241. The control unit 21, the processing execution unit 22, the program storage unit 241, and a memory not shown in the drawings are positioned as processing resources.
The control unit 21 and the processing execution unit 22 can be implemented as appropriate by software or hardware. For example, a computer system configured by a CPU (Central Processing Unit) and a memory storing a program is possible, and a dedicated electronic circuit is also possible. Furthermore, it is not necessary that the control unit 21 and the processing execution unit 22 be independent, and, for example, it is also possible to have physically the same system or circuit configuration.
The storage unit 24 is provided with a program storage unit 241 and a data storage unit 245. The storage unit 24 can be implemented by a hard disk drive, for example.
The program storage unit 241 stores a program that can be executed by the processing execution unit 22. The program storage unit 241 can store a plurality of programs. Below, an expression of executing processing by the storage node 2 is used to have the same meaning as executing a program associated with processing by the processing execution unit 22 of the storage node 2.
The data storage unit 245 stores data to be inputted to the processing.
The system communication unit 28 functions as an interface between inside the storage node 2 and the internal network 8. In the present exemplary embodiment, with regard to all programs required for a processing request from the client 3, the same program groups are stored in advance in the program storage unit 141 of all the application nodes 1 and in the program storage unit 241 of all the storage nodes 2. Furthermore, all data required for a processing request from the client 3 is assumed to be stored in any among the storage nodes 2, and information as to which data is stored in which storage node 2 is assumed to be stored in advance in the data information storage unit 142 of all of the application nodes 1.
Next, a description is given concerning operations of the client 3 in the present exemplary embodiment.
The client 3 transmits a processing request to any one of the application nodes 1, and waits for a processing result. The processing request includes specification of a program name and data identifier. Content of the processing request and timing of transmission are, for example, according to an instruction from a human who is operating the client 3, or a schedule set inside the client 3.
Next, a description is given concerning operation of the application node 1 of the present exemplary embodiment, making reference to a flowchart of
First, the application node 1 waits to receive a processing request from the client 3 (step A1 in
In step A3, in a case where the data volume ratio of a program specified in the processing request is larger than 1, the application node 1 transmits a data request to the storage node 2 (step A4). In step A4, the storage node 2 to which the data request is transmitted is assumed to be a storage node 2 that corresponds to a storage node identifier stored in the storage node identifier column 1422 in a row where a value of the data identifier column 1421 of the data information storage unit 142 matches the data identifier included in the processing request. Furthermore, the data request includes the data identifier that is included in the processing request received from the client.
Next, the application node 1 receives the data of the data request from the storage node 2 (step A5), and executes the program concerned in the processing execution unit 12 with the received data as input (step A6).
Next, the application node 1 secures a new row in the data volume storage unit 143 and respectively stores the executed program name in the program name column 1431, the data volume of the data received from the storage node 2 in the pre-processing data volume column 1432, and the data volume of the processing result in the post-processing data volume column 1433 (step A7).
In step A7, in a case where a new row cannot be secured due to there being little storage capacity in the data volume storage unit 143, the number of rows in the table of the data volume storage unit 143 is counted for each program name, the oldest row of the program name with the most rows is deleted, and storage area for a new row is obtained. Furthermore, a configuration is possible in which a predetermined number of rows is secured and old data rows are deleted in sequence, for each program.
Next, the application node 1 transmits a processing result executed on its own device side as described above, to the client 3 that is the source of the processing request (step A8). Next, the data volume ratio computation unit 13 of the application node 1 computes the value of the post-processing data volume divided by the pre-processing data volume for all rows where the program name column 1431 of the data volume storage unit 143 holds the program name concerned, and takes an average value thereof as a data volume ratio (step A9).
Next, the application node 1 updates the data volume ratio column 1442 in the row where the program name concerned is stored in the program name column 1441 of the data volume ratio storage unit 144, to the value of the computed data volume ratio (step A10). Thereafter, the application node 1 returns to step A1 and transitions to a state of waiting for a processing request from the client.
In step A3, in a case where the data volume ratio of the program specified in the processing request is 1 or less, the application node 1 transmits a processing request to the storage node 2 (step A11).
In step A11, the storage node 2 to which the processing request is transmitted is assumed to be a storage node 2 that corresponds to a storage node identifier stored in the storage node identifier column 1422 in a row where a value of the data identifier column 1421 of the data information storage unit 142 matches the data identifier included in the processing request. It is to be noted that the transmitted processing request includes the program name and data identifier included in the processing request received from the client 3.
Next, on receiving the processing result from the storage node 2 (step A12), the application node 1 secures a new row of the data volume storage unit 143, and respectively stores: a program name included in the processing request, in the program name column 1431; a value stored in the data volume column 1423 in a row where the value of the data identifier column 1421 of the data information storage unit 142 matches a data identifier included in the processing request, in the pre-processing data volume column 1432; and the data volume of the processing result received from the storage node 2, in the post-processing data volume column 1433 (step A13).
It is to be noted that in step A13, in a case where a new row cannot be secured due to there being little storage capacity in the data volume storage unit 143, the number of rows in the table of the data volume storage unit 143 is counted for each program name, the oldest row of the program name with the most rows is deleted, and storage area for a new row is obtained. Furthermore, a configuration is possible in which a predetermined number of rows is secured and old data rows are deleted in sequence, for each program.
Thereafter, similar to a case where the data volume ratio of a program specified in the processing request is larger than 1, transmission of the processing result to the client 3, computation of the data volume ratio, and updating of the data volume ratio are performed (steps A8 to A10).
Next, a description is given concerning operation of the storage node 2 of the present exemplary embodiment, making reference to a flowchart of
First, the storage node 2 waits for either a data request or a processing request from the application node 1 (step B1 in
In a case where the content of the request in step B3 is a data request, the storage node 2 reads data corresponding to a data identifier included in the data request from the data storage unit 245, and transmits the data to the application node 1 that is the source of the data request (step B4). Thereafter, the storage node 2 returns to step B1 and transitions to a state of waiting for a request from the application node 1.
On the other hand, in a case where the content of the request in step B3 is a processing request, the storage node 2 executes the program concerned in the processing execution unit 22 with data corresponding to a data identifier included in the processing request as input (step B5). Next, the storage node 2 transmits a processing result to the application node 1 that is the source of the processing request (step B6). Thereafter, the storage node 2 returns to step B1 and transitions to a state of waiting for a request from the application node 1.
Next, a description is given of specific operations of the first exemplary embodiment of the present invention using a simple example.
Below, the data information storage unit 142a, the data volume storage unit 143a, and the data volume ratio storage unit 144a are respectively in the states of
In a case where the client 3a specifies the data identifier “datal” and the program name “uncompress”, with respect to the application node 1a and makes a processing request, the application node 1a refers to the value of the data volume ratio column 1442a at a row where the program name column 1441a of the data volume ratio storage unit 144a is “uncompress”. In this case, since the data volume ratio is 2.50 and is larger than 1 (step A3 in
The data volume of “datal” received from the storage node 2a is 100,000 bytes, and the data volume after processing is assumed to be 400,000 bytes. The application node 1a adds a row to the data volume storage unit 143a, and stores “uncompress” in the program name column 1431a, 100,000 in the pre-processing data volume column 1432a, and 400,000 in the post-processing data volume column 1433a (step A7 in
Next, a description is given concerning a case where the client 3b specifies a data identifier “data2” and a program name “compress” to the application node 1a, and makes a processing request.
The application node 1a refers to the value of the data volume ratio column 1442a at a row where the program name column 1441a of the data volume ratio storage unit 144a is “compress”. In this case, since the data volume ratio is 0.50 and is less than or equal to 1 (step A3 in
Next, on receiving the processing result from the storage node 2b (step A12 in
In processing with regard to the processing requests from these two clients 3a and 3b, communication traffic volume from the storage node 2 to the application node 1 is 400,000 bytes, which is a total of 100,000 bytes (see
However, as described using
Furthermore, as described using
As described above, according to the present invention, it is possible to greatly reduce the data volume exchanged between the storage node 2 and the application node 1.
A reason for this is that a configuration is employed in which the history of the data volumes before and after processing is recorded for each program, the ratio of the data volumes before and after processing is computed, and a decision is made as to whether processing is performed by the application node or is performed by the storage node according to the ratio of the data volumes. Clearly, instead of the ratio of the data volumes as described above, in a case of executing processing by the application node 1 and the storage node 2, it is also possible to employ other methods as long as respective data volumes exchanged between the two nodes are computed, and processing is executed at the node where it is possible to reduce the sum of the data volumes flowing between the two nodes.
As a further example, in the first exemplary embodiment described above a judgment was made as to whether or not the data volume ratio is larger than 1 or less than or equal to 1, but it is possible to make a judgment based on another value. For example, in accordance with whether processing is executed by either the application node 1 or the storage node 2, in a case where communication data volumes required for the application node 1 to transmit a request to the storage node 2 are different, it is possible to use a value in which a correction of that quantity is added.
Furthermore, in the first exemplary embodiment described above, a description was given in which the application node and the storage node have the same program group beforehand, but a mode is also possible in which, for example, the application node 1 transmits a program to the storage node 2, as necessary. In this case, in order to determine a processing node, rather than use the ratio of data volumes before and after processing as it is, it is possible to make a correction taking into account the data volume generated by transmitting the program.
Furthermore, in the first exemplary embodiment described above, a description was given concerning a mode in which each application node 1 individually performed storage of the data volumes before and after processing and performed computation of the data volume ratio, but, for example, information of the data volumes before and after processing and the data volume ratio can be shared between a plurality of application nodes.
Furthermore, in the first exemplary embodiment described above, a description was given in which storage of the data volumes before and after processing and computation of the data volume ratio are performed each time processing is executed, but, for example, it is possible to perform storage of the data volumes before and after processing for several executions of the processing, and to perform computation of the data volume ratio after data volumes before and after processing greater than or equal to a fixed amount have been added and stored.
Next, a detailed description is given concerning a second exemplary embodiment of the present invention, making reference to the drawings.
An overall configuration of the present exemplary embodiment is as shown in
The data volume ratio computation unit 23 corresponds to the data volume ratio computation unit 13 of the application node 1 of the first exemplary embodiment, and performs a similar operation.
Next, a description is given concerning operation of the application node 1 of the present exemplary embodiment, making reference to a flowchart of
First, the application node 1 waits to receive a processing request from a client 3 (step C1 in
In step C3, the storage node 2 to which the processing request is transmitted is assumed to be a storage node 2 that corresponds to a storage node identifier stored in the storage node identifier column 1422 in a row where a value of a data identifier column 1421 of the data information storage unit 142 matches the data identifier included in the processing request. It is to be noted that the transmitted processing request includes a program name and data identifier specified in the processing request received from the client 3.
Next, on receiving a reply from the storage node 2 (step C4), the application node 1 judges whether the reply content is data or is a processing result (step C5). In step C5, in a case where the reply content is data, the application node 1 executes an appropriate program in a processing execution unit 12 with received data as input (step C6), and the data volume of the processing result is transmitted to the storage node 2 that has replied with the data (step C7). Next, the application node 1 transmits a processing result to the client 3 that is the source of the processing request (step C8). Thereafter, the application node 1 returns to step C1 and transitions to a state of waiting for a processing request from a client.
On the other hand, in step C5, in a case where the reply content is a processing result, the application node t transmits the processing result to the client 3 that is the source of the processing request (step C8). Thereafter, the application node 1 returns to step C1 and transitions to a state of waiting for a processing request from a client.
Next, a description is given concerning operation of the storage node 2 of the present exemplary embodiment, making reference to a flowchart of
First, the storage node 2 waits for a processing request from the application node 1 (step D1 in
In step D3, in a case where the data volume ratio is larger than 1, the storage node 2 reads data corresponding to a data identifier included in the data request from a data storage unit 245, transmits the data and information indicating that it is data, to an application server 1 that is the source of the processing request (step D4), and waits for reception of post-processing data volume from the application server 1.
On receiving the post-processing data volume from the application server 1 (step D5), the storage node 2 secures a new row of the data volume storage unit 243, and respectively stores: a program name included in the processing request, in the program name column 2431, the data volume of the data transmitted to the application server 1 in step D4, in a pre-processing data volume column 2432, and a post-processing data volume received from the application server 1 in step D5, in a post-processing data volume column 2433 (step D6). Next, the data volume ratio computation unit 23 computes the value of the post-processing data volume divided by the pre-processing data volume for all rows where the program name column 2431 of the data volume storage unit 243 holds the program name in question, and takes an average value thereof as a data volume ratio (step D7). Next, the storage node 2 updates the data volume ratio column 2442 in the row where the program name in question is stored in the program name column 2441 of the data volume ratio storage unit 244, to the value of the computed data volume ratio (step D8). Thereafter, the storage node 2 returns to step D1 and transitions to a state of waiting for a processing request from the application node 1.
On the other hand, in a case where the data volume ratio in step D3 is less than or equal to 1, the storage node 2 executes an appropriate program in a processing execution unit 22 with data corresponding to the data identifier included in the processing request as input (step D9), and transmits a processing result and information indicating that this is a processing result to the application server 1 that is the source of the processing request (step D10).
Next, the storage node 2 secures a new row of the data volume storage unit 243, and respectively stores: a program name included in the processing request, in the program name column 2431; the data volume of the data as input for processing execution in step D9, in the pre-processing data volume column 2432; and the data volume of the data of the processing result of step D9, in the post-processing data volume column 1433 (step D11). Thereafter, the storage node 2 performs processing of step D7 and following, similar to the previous case where the data volume ratio is larger than 1.
It is to be noted that in step D6 or in step D11, in a case where a new row cannot be secured due to there being little storage capacity in the data volume storage unit 243, the number of rows in the table of the data volume storage unit 243 is counted for each program name, the oldest row of the program name with the most rows is deleted, and storage area for a new row is obtained. Furthermore, a configuration is possible in which a predetermined number of rows is secured and old data rows are deleted in sequence, for each program.
As described above, even with a configuration where processing is performed to select a processing node on a storage node side, similar to the first exemplary embodiment, it is possible to reduce the data volume exchanged between the application node 1 and the storage node 2. A reason for this, similar to the first exemplary embodiment described above, is that a configuration is used in which the history of the data volume before and after processing is recorded for each program, the ratio of the data volumes before and after processing is computed, and a decision is made as to whether processing is to be performed by an application node or is to be performed by a storage node according to the ratio of the data volumes.
It is to be noted that in the present exemplary embodiment, in a case of performing processing by the application node 1, a communication is added to transmit the data volume of a processing result from the application node to the storage node, and since the communication traffic volume can be implemented by approximately from several bytes to several hundred bytes, in a system in which the difference in the data volumes before and after processing exceeds several kilobytes, the effect is very insignificant, and it is possible to reduce the total data volume exchanged between the two nodes.
Next, a detailed description is given concerning a third exemplary embodiment of the present invention in which modifications are added to the first exemplary embodiment described above, with reference being made to the drawings.
The console 4 is an interface device for displaying an internal state of an application node 1, or for an operator to perform a change of setting of the application node 1.
The console communication unit 17 functions as an interface between inside the application node 1 and the console 4.
The threshold is a numerical value greater than or equal to 0, and the larger the value, the easier it is to perform the processing execution by the storage node 2. Furthermore, the threshold need not be a numerical value, and it is possible to set a discriminating symbol to forcibly perform the processing execution by the application node 1, or to forcibly perform the processing execution by the storage node 2. A description will be given later concerning a method of selecting a specific node using the threshold.
The console 4 makes a threshold setting request to the application node 1, in accordance with an operation of an operator. The threshold setting request includes a program name and a threshold. The operator need not necessarily specify the threshold by a numerical value. For example, specifying is possible by a track bar or a pulldown menu of a GUI (Graphical User Interface), and handling as a threshold is possible by conversion to a numerical value inside the console 4.
On receiving a threshold setting request from the console 4, the application 1 stores a threshold included in the threshold setting request, in the threshold column 1443 in a row where the value of a program name column 1441 of a data volume ratio storage unit 144 matches a program name included in the threshold setting request.
Since other operations of the application node 1 are the same, with the exception of step A3 of
In step A3 of
As described above, in the present exemplary embodiment, in addition to an effect of the first exemplary embodiment, it is possible to change a reference as to whether to perform processing by the application node 1 or to perform processing by the storage node 2, for each processing content. In this regard, for example, in a case of a configuration in which a processing execution unit of the application node 1 can perform high speed processing for a specific process P, in comparison to a processing execution unit of a storage node, it is possible to have an arrangement such that a program performing the process P is executed only by the application node.
It is to be noted that the function by which a reference for judging a processing execution node can be set for each program added in the third exemplary embodiment of the invention described above can also be added to the second exemplary embodiment.
Descriptions of exemplary embodiments of the present invention have been given above, but the present invention is not limited to the abovementioned exemplary embodiments, and it is possible to further add modifications, substitutions, and adjustments, within a scope that does not depart from a fundamental technical concept of the present invention.
A description was given concerning a mode in which, in the abovementioned first exemplary embodiment and third exemplary embodiment the application node stores data volumes before and after processing, computes data volume ratios, and determines a processing node, and in the second exemplary embodiment the storage node stores data volumes before and after processing, computes data volume ratios, and determines a processing node, but the present invention is not limited to only these modes.
For example, it is possible to arrange a dedicated node (a third node) that stores data volumes before and after processing, computes data volume ratios, and determines a processing node, and the application node and the storage node perform communication with the dedicated node to perform equivalent processing. In this case, communication occurs between the dedicated node and the application node and storage node, but since the communication traffic volume can be implemented by approximately from several bytes to several 100 bytes, there is no change in the point that it is possible to reduce the total communication traffic volume in a system where the difference in data volumes before and after processing exceeds several kilobytes.
Furthermore, in the first, second, and third exemplary embodiments, a description was given concerning a system according to three layers: of clients, application nodes, and storage nodes, but the present invention is not limited to this configuration. With regard to a system of a type such that with two nodes having a resource by which processing can be executed, one thereof has processing data, the present invention can be generally applied to a system that determines which of the nodes executes the processing. For example, in a case where, between a mobile terminal and a server, the server has data, the invention can be applied to a system that determines which of the mobile terminal and the server executes the processing.
The present invention can be applied to uses such as distributed computing. Furthermore, the invention can also be applied to distributed processing among a mobile terminal and a server. Finally, preferred modes of the present invention are summarized.
Number | Date | Country | Kind |
---|---|---|---|
2009-148046 | Jun 2009 | JP | national |
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/JP2010/060348 | 6/18/2010 | WO | 00 | 12/21/2011 |