WO2010150704A1 - 処理ノード選択システム、情報処理ノード、処理実行方法およびプログラム - Google Patents

処理ノード選択システム、情報処理ノード、処理実行方法およびプログラム Download PDF

Info

Publication number
WO2010150704A1
WO2010150704A1 PCT/JP2010/060348 JP2010060348W WO2010150704A1 WO 2010150704 A1 WO2010150704 A1 WO 2010150704A1 JP 2010060348 W JP2010060348 W JP 2010060348W WO 2010150704 A1 WO2010150704 A1 WO 2010150704A1
Authority
WO
WIPO (PCT)
Prior art keywords
processing
node
data amount
data
amount ratio
Prior art date
Application number
PCT/JP2010/060348
Other languages
English (en)
French (fr)
Inventor
美知太郎 宮田
真樹 菅
Original Assignee
日本電気株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 日本電気株式会社 filed Critical 日本電気株式会社
Priority to US13/379,849 priority Critical patent/US20120102086A1/en
Priority to JP2011519852A priority patent/JP5565412B2/ja
Publication of WO2010150704A1 publication Critical patent/WO2010150704A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load

Definitions

  • the present invention is based on the priority claim of Japanese patent application: Japanese Patent Application No. 2009-148046 (filed on June 22, 2009), the entire description of which is incorporated herein by reference. Shall.
  • the present invention relates to a processing node selection system, an information processing node, a processing execution method, and a program, and in particular, has a plurality of information processing nodes (hereinafter also simply referred to as “processing nodes” or “nodes”) from a client.
  • processing nodes hereinafter also simply referred to as “processing nodes” or “nodes” from a client.
  • the present invention relates to a processing node selection system, an information processing node, a processing execution method, and a program for selecting a processing node that processes a processing request.
  • a system corresponding to a server is composed of a plurality of application nodes and a plurality of storage nodes.
  • the application node is a node having a processing execution resource including, for example, a CPU (Central Processing Unit) and a memory
  • the storage node includes a storage medium including, for example, a hard disk drive, and stores data used for executing the processing. It is a node.
  • the application node transmits a data request V2 to the storage node.
  • the storage node 2 transmits data V3 to the application node, and the application node executes the requested processing using this data, and transmits the processing result V4 to the client.
  • Non-Patent Document 1 describes a technique for performing database reorganization in a storage system.
  • FIG. 28 is a diagram showing the operation of the system that delegates processing to the storage node.
  • the application node transmits the processing request W2 to the storage node.
  • the storage node transmits the processing result W3 to the application node, and the application node transmits the processing result Y4 to the client.
  • Japanese Patent Publication No. 2005-512232 is a patent document that refers to a storage node. According to the same document, this system does not delegate the processing as in Non-Patent Document 1, but the system management server monitors the use of the network storage application, and the virtual storage is used as the optimum physical storage resource. Dynamic segments are to be reallocated transparently and dynamically.
  • Patent Document 1 and Non-Patent Document 1 are incorporated herein by reference.
  • the following is an analysis of the related art according to the present invention.
  • Congestion may occur in the internal network between the application node and the storage node, and a response delay to a processing request may occur (see internal network 8 in FIG. 1).
  • the amount of communication in the internal network generated by one processing request is the sum of the data amounts of the data request V2 and the data V3 in the case of FIG. 27, and the processing request W2 in the case of FIG. And the sum of the data amount of the processing result W3.
  • the data amount of the data request V2 and the processing request W2 is about several bytes to several hundred bytes, whereas the data amount of the data V3 and the processing result W3 is an amount exceeding several kilobytes to more than gigabytes. That is, the communication amount of the internal network greatly contributes to the data V3 or the processing result W3 that is communication from the storage node to the application node.
  • the data amount before processing is generally larger
  • the data amount after processing is generally larger. Therefore, in a system in which processes having different characteristics of the amount of data before and after the process are mixed, a method of executing the process in FIG. 27 at the application node is adopted, or a method of executing the process in FIG. 28 at the storage node. Regardless of which one is selected, there is a problem that a situation occurs in which the amount of communication from the storage node to the application node cannot be reduced.
  • an object of the present invention is to determine whether or not one node executes processing using data of one of the two nodes and uses the other node as an output destination. It is another object of the present invention to provide a processing node determination system, an information processing node, a processing node determination method, and a program that can ensure required response performance.
  • a first node having processing resources and a second node having processing resources and storing data used for processing are stored in the second node.
  • the amount of data exchanged between the first and second nodes as a node for executing the processing when the processing is executed using the processed data and the processing result is output by the first node.
  • an information processing node that performs node selection processing is provided in the processing node selection system described above.
  • the process execution is executed by either the first node having the processing resource or the second node having the processing resource and storing the data used for the processing.
  • the process is executed by any one of the first node having the processing resource and the second node having the processing resource and storing data used for the specific process.
  • a program that is included in an information processing system and that is executed by any one of the information processing nodes including the first and second nodes, and that calculates a ratio of a data amount before and after the processing by the specific processing;
  • This program can be recorded on a computer-readable storage medium. That is, the present invention can be embodied as a computer program product.
  • the present invention in a configuration in which one node executes processing using data of one of two nodes and the other node is an output destination, there is a magnitude relationship between the amount of data before and after processing. It is possible to prevent a decrease in response performance that may be caused by processing having different characteristics.
  • FIG. 1 It is a figure (specific example of the information memorize
  • the processing node selection system includes a first node having processing resources, a second node having processing resources and storing data used for processing, and any one of the first node and the second node.
  • the third node (which may be either the first node or the second node) selects whether to execute the process to be executed by the first node or the second node. Is done.
  • the third node (which may be either the first node or the second node) selects the node with the smaller sum of the amount of data exchanged between the first and second nodes.
  • the node can be selected using the ratio of the data amount before and after the processing. That is, when the amount of data before processing is larger than the amount of data after processing as in the data compression processing described above, it is better to execute the processing at the second node holding the data. The sum of the amount of data exchanged between the first and second nodes can be reduced. On the other hand, when the amount of data before processing is smaller than the amount of data after processing as in the data decompression processing described above, it is better to receive the data before processing at the first node and execute the processing. The sum of the amount of data exchanged between the first and second nodes can be reduced. As described above, the object of the present invention can be achieved.
  • FIG. 1 is a block diagram showing the configuration of the entire system according to the first embodiment of the present invention.
  • the first embodiment of the present invention includes a plurality of application nodes 1, a plurality of storage nodes 2, a plurality of clients 3, an internal network 8, and an external network 9. .
  • Application node 1 and storage node 2 are connected via an internal network 8.
  • Application node 1 and client 3 are connected via an external network 9.
  • the application node 1 receives a processing request from the client 3, makes a processing request or a data request to the storage node 2, and if a processing request is made to the storage node 2, the processing result received from the storage node 2 Is sent to the client 3, and when the data request is made to the storage node 2, the received data is processed, and the processing result is sent to the client 3.
  • the storage node 2 stores data used for processing. When a processing request is received from the application node 1, the processing is executed, the processing result is transmitted to the application node 1, and the data request is received from the application node 1. If so, the data is transmitted to the application node 1.
  • the client 3 makes a processing request 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.
  • FIG. 2 is a block diagram showing the configuration of the application node 1 of the present embodiment.
  • the application node 1 includes a control unit 11, a process execution unit 12, a data amount ratio calculation unit 13, a storage unit 14, a system communication unit 18, and a client communication unit 19. Has been.
  • the control unit 11 controls the overall operation of the application node 1.
  • the process execution unit 12 reads and executes the program stored in the program storage unit 141.
  • the control unit 11, the processing execution unit 12, the program storage unit 141, and a memory (not shown) are positioned as processing resources.
  • the data amount ratio calculation unit 13 calculates the average value of the data amount ratio before and after processing from the data amount before and after processing stored in the data amount storage unit 143 for each program, and stores it in the data amount ratio storage unit 144. Store.
  • the control unit 11, the process execution unit 12, and the data amount ratio calculation unit 13 can be appropriately realized by software or hardware.
  • it may be a computer system constituted by a CPU (Central Processing Unit) and a memory storing a program, or a dedicated electronic circuit.
  • two or more of the control unit 11, the processing execution unit 12, and the data amount ratio calculation unit 13 do not need to be independent, and may be physically the same system or circuit configuration, for example.
  • the storage unit 14 includes a program storage unit 141, a data information storage unit 142, a data amount storage unit 143, and a data amount ratio storage unit 144.
  • the storage unit 14 can be realized by, for example, a hard disk drive.
  • the program storage unit 141 stores a program that can be executed by the process execution unit 12.
  • the program storage unit 141 can store a plurality of programs.
  • the expression that the process is executed in the application node 1 is used as the same meaning as the execution of the program associated with the process in the process 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.
  • FIG. 4 is a diagram showing the data structure of the data information storage unit 142.
  • the data information storage unit 142 has a table structure including a data identifier column 1421, a storage node identifier column 1422, and a data amount column 1423.
  • the data identifier is an identifier for specifying data from the data of all the storage nodes 2, and is, for example, a number or name assigned so as not to overlap.
  • the storage node identifier is an identifier for specifying one storage node 2 from among the storage nodes 2.
  • the storage node identifier column stores the storage node identifier of the storage node 2 having the data identifier of the data identifier column 1421 in the same row.
  • the data amount is the data size expressed in bytes.
  • the data amount column 1423 stores the data amount of data corresponding to the data identifier of the data identifier column 1421 in the same row. In the data identifier column 1421, data identifiers do not overlap. That is, when a data identifier is specified, a row is uniquely specified.
  • the data amount storage unit 143 stores the data amount before processing and the data amount after processing.
  • FIG. 5 is a diagram illustrating a data structure of the data amount storage unit 143.
  • the data amount storage unit 143 has a table structure including a program name column 1431, a pre-processing data amount column 1432, and a post-processing data amount column 1433.
  • the program name is a name for identifying one of a plurality of programs stored in the program storage unit 141.
  • the data amount before processing is the data amount of data to be input to the program.
  • the post-processing data amount is the data amount of data to be output from the program.
  • the data amount before processing is the data amount of data A
  • the data amount after processing is the data amount of data B.
  • a row is added to the data amount storage unit 143 each time a program is executed, and the same program name can be stored in the program name column 1431 a plurality of times.
  • the data amount ratio storage unit 144 stores a data amount ratio before and after processing.
  • FIG. 6 is a diagram showing the data structure of the data amount ratio storage unit 144.
  • the data amount ratio storage unit 144 has a table structure including a program name column 1441 and a data amount ratio column 1442.
  • the data amount ratio is an average value for each program name obtained by dividing the post-processing data amount by the pre-processing data amount.
  • a data amount ratio larger than 1 means that the post-processing data amount tends to be larger than the pre-processing data amount for the corresponding program.
  • a data amount ratio smaller than 1 means that the post-processing data amount tends to be smaller than the pre-processing data amount.
  • program names do not overlap. That is, when a program name is designated, a line, that is, a data amount ratio of the program is uniquely specified.
  • the system communication unit 18 functions as an interface between the application node 1 and the internal network 8.
  • the client communication unit 19 functions as an interface between the application node 1 and the external network 9.
  • FIG. 3 is a block diagram showing the configuration of the storage node 2 of this embodiment.
  • the storage node 2 includes a control unit 21, a process execution unit 22, a storage unit 24, and a system communication unit 28.
  • the control unit 21 controls the overall operation of the storage node 2.
  • the process execution unit 22 reads and executes the program stored in the program storage unit 241.
  • the control unit 21, the processing execution unit 22, the program storage unit 241, and a memory (not shown) are positioned as processing resources.
  • the control unit 21 and the processing execution unit 22 can be appropriately realized by software or hardware.
  • it may be a computer system constituted by a CPU (Central Processing Unit) and a memory storing a program, or a dedicated electronic circuit.
  • the control unit 21 and the processing execution unit 22 do not have to be independent, and may be physically the same system or circuit configuration, for example.
  • the storage unit 24 is provided with a program storage unit 241 and a data storage unit 245.
  • the storage unit 24 can be realized by, for example, a hard disk drive.
  • the program storage unit 241 stores a program that can be executed by the process execution unit 22.
  • the program storage unit 241 can store a plurality of programs.
  • the expression that the process is executed in the storage node 2 is used as the same meaning as executing the program associated with the process in the process execution unit 22 of the storage node 2.
  • the data storage unit 245 stores data to be input for processing.
  • the system communication unit 28 functions as an interface between the storage node 2 and the internal network 8.
  • all programs necessary for processing requests from the clients 3 are stored in advance in the program storage units 141 of all application nodes 1 and the program storage units 241 of all storage nodes 2. It is assumed that Also, it is assumed that all data necessary for the processing request from the client 3 is stored in any one of the storage nodes 2, and information on which data is stored in which storage 2 Assume that the data information is stored in advance in the data information storage unit 142 of the node 1.
  • 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 designation of the program name and data identifier.
  • the content of the processing request and the transmission timing are performed according to, for example, an instruction from a person who operates the client 3 or a schedule set in the client 3.
  • the application node 1 waits for reception of a processing request from the client 3 (step A1 in FIG. 7), and when receiving a processing request from the client 3 (step A2), from the program name column 1441 of the data amount ratio storage unit 144, A line that matches the program name included in the processing request is searched to check whether the value of the data amount ratio stored in the data amount ratio column 1442 of the corresponding line is greater than 1 or less than 1 (step A3).
  • step A3 when the data amount ratio of the 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).
  • the storage node 2 to which the data request is transmitted in step A4 is stored in the storage node identifier column 1422 in the row where the 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 assumed that the storage node 2 corresponds to the node identifier.
  • the data request includes a data identifier included in the processing request received from the client.
  • the application node 1 receives the requested data from the storage node 2 (step A5), and executes the corresponding program in the process execution unit 12 with the received data as input (step A6).
  • the application node 1 secures a new row in the data amount storage unit 143, the program name executed in the program name column 1431, and the data data received from the storage node 2 in the pre-processing data amount column 1432
  • the data amount of the processing result is stored in the post-processing data amount column 1433 (step A7).
  • step A7 if a new row cannot be secured because the storage capacity of the data amount storage unit 143 is small, the number of rows in the table of the data amount storage unit 143 is counted for each program name, and the row with the largest program name is stored. The oldest line is deleted to make a storage area for the new line. Alternatively, a predetermined number of lines may be secured for each program, and the old data lines may be deleted sequentially.
  • the application node 1 transmits the processing result executed on its own device side as described above to the client 3 that is the transmission source of the processing request (step A8).
  • the data amount ratio calculation unit 13 of the application node 1 calculates a value obtained by dividing the post-processing data amount by the pre-processing data amount for all rows in which the program name column 1431 of the data amount storage unit 143 has the corresponding program name. These average values are used as the data amount ratio (step A9).
  • the application node 1 updates the data amount ratio column 1442 in the row in which the program name is stored in the program name column 1441 of the data amount ratio storage unit 144 to the calculated data amount ratio value (step A10). . After that, the application node 1 returns to step A1 and transitions to a processing request waiting state from the client.
  • step A3 when the data amount 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).
  • step A11 the storage node 2 to which the processing request is transmitted is stored in the storage node identifier column 1422 in the row where the 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 assumed that the storage node 2 corresponds to the identifier.
  • the processing request to be transmitted includes the program name and data identifier included in the processing request received from the client 3.
  • the application node 1 secures a new row in the data amount storage unit 143, and the program name included in the processing request is stored in the program name column 1431.
  • the value stored in the data amount column 1423 of the row where the value of the data identifier column 1421 of the data information storage unit 142 matches the data identifier included in the processing request is stored in the post-processing data amount column 1433.
  • Each stores the data amount of the processing result received from the storage node 2 (step A13).
  • step A13 if a new row cannot be secured because the storage capacity of the data amount storage unit 143 is small, the number of rows in the table of the data amount storage unit 143 is counted for each program name, Delete the oldest line of lines to make the storage area for the new line. Alternatively, a predetermined number of lines may be secured for each program, and the old data lines may be deleted sequentially.
  • the processing result is transmitted to the client 3, the data amount ratio is calculated, and the data amount ratio is updated (step A8). To A10).
  • the storage node 2 waits for either a data request or a processing request from the application node 1 (step B1 in FIG. 8).
  • a request is received from the application node 1 (step B2)
  • the content of the request is a data request. It is determined whether there is a processing request or not (step B3).
  • the storage node 2 If the content of the request is a data request in step B3, the storage node 2 reads data corresponding to the data identifier included in the data request from the data storage unit 245 and transmits it to the application node 1 that is the transmission source of the data request. (Step B4). Thereafter, the storage node 2 returns to step B1 and transitions to a request waiting state from the application node 1.
  • step B3 when the content of the request is a processing request in step B3, the storage node 2 executes the corresponding program in the processing execution unit 22 with the data corresponding to the data identifier included in the processing request as an input (step B5). Next, the storage node 2 transmits the processing result to the application node 1 that is the transmission source of the processing request (step B6). Thereafter, the storage node 2 returns to step B1 and transitions to a request waiting state from the application node 1.
  • FIG. 9 is a system configuration diagram in which FIG. 1 is further modeled.
  • the application node 1 has two application nodes 1a and 1b
  • the storage node 2 has two storage nodes 2a and 2b
  • the client 3 has clients 3a and 3b. There are two.
  • FIG. 10 is an example of data information in the data information storage unit 142a which is the data information storage unit 142 of the application node 1a. It is assumed that the value of the storage node identifier column 1422a corresponds to a subscript identifying the storage node 2. For example, the value of the storage node identifier column 1422 of the data with the data identifier data1 is a. In this case, the data is stored in the storage node 2a.
  • FIG. 11 to FIG. 13 are diagrams showing state transition of the data amount storage unit 143a which is the data amount storage unit 143 of the application node 1a.
  • “compress” indicates a program for compressing data stored in the program storage unit 141 or 241
  • “uncompress” indicates a program for decompressing the compressed data.
  • the application node 1 returns the compressed data to the client 3 as a processing result.
  • the application node 1 returns the decompressed data to the client 3 as a processing result. It is assumed that the data amount storage unit 143a is in the state shown in FIG. 11 at the start time.
  • FIG. 11 is in the state shown in FIG. 11 at the start time.
  • FIG. 12 shows a state where the program uncompress is executed once from the state of FIG. 11 and the data amount before and after the uncompress process is added.
  • FIG. 13 shows a state in which the program compress is executed once from the state of FIG. 12 and the data amount before and after the compression process is added.
  • FIG. 15 shows a state of the data amount ratio storage unit 144a in which the program uncompress is executed once from the state of FIG. 14 and recalculated from the data amount before and after the processing of FIG.
  • FIG. 16 shows the state of the data amount ratio storage unit 144a recalculated from the state of FIG. 15 from the data amount before and after the processing of FIG.
  • the application node 1a When the client 3a makes a processing request by specifying the data identifier data1 and the program name uncompress to the application node 1a, the application node 1a has the data amount of the row in which the program name column 1441a of the data amount ratio storage unit 144a is uncompressed.
  • the value in the ratio column 1442a is referred to.
  • the application node 1a since the data amount ratio is 2.50 and is larger than 1 (step A3 in FIG. 7), the application node 1a is a storage node in a row in which the value of the data identifier column 1421a of the data information storage unit 142a is data1. Reference is made to the identifier column 1442a.
  • the application node 1a makes a data request to the storage node 2a (step A4 in FIG. 7).
  • the application node 1a performs uncompress processing with data1 as an input (step A6 in FIG. 7).
  • the application node 1a adds a row to the data amount storage unit 143a and stores uncompress in the program name column 1431a, 100,000 in the pre-processing data amount column 1432a, and 400,000 in the post-processing data amount column 1433a ( Step A7 in FIG.
  • FIG. 12 shows the state of the data amount storage unit 143a at this time.
  • the application node 1a transmits the processing result to the client 3a (step A8 in FIG. 7), and the data amount ratio of the row in which the value of the program name column 1431a in the data amount storage unit 143a in the state of FIG. 12 is uncompressed.
  • the average value is calculated (step A9 in FIG. 7), and the value of the data amount ratio column 1442a in the row in which the program name column 1441a of the data amount ratio storage unit 144a is uncompressed is updated (step A10 in FIG. 7).
  • FIG. 15 shows the state of the data amount ratio storage unit 144a at this time.
  • the application node 1a refers to the value of the data amount ratio column 1442a in the row in which the program name column 1441a of the data amount ratio storage unit 144a is “compress”. In this case, since the data amount ratio is 0.50 and equal to or less than 1 (step A3 in FIG. 7), the application node 1a is a storage node in the row where the value of the data identifier column 1421a of the data information storage unit 142a is data2. Reference is made to the identifier column 1442a. In this case, since the storage node identifier is b, the application node 1a makes a processing request to the storage node 2b (step A11 in FIG. 7).
  • the application node 1a checks the data amount of the processing result data.
  • the data amount of the processing result is 300,000 bytes. Since the data amount of data2 that is the data before processing is 1,000,000 bytes with reference to the data amount column 1423a of the row in which the data identifier column 1421a of the data information storage unit 142a is data2, the application node 1a adds a row to the data amount storage unit 143a, stores compression in the program name column 1431a, 1,000,000 in the pre-processing data amount column 1432a, and 300,000 in the post-processing data amount column 1433a. (Step A13 in FIG. 7).
  • FIG. 13 shows the state of the data amount storage unit 143a at this time.
  • the application node 1a transmits the processing result to the client 3a (step A8 in FIG. 7), and the data amount ratio of the row in which the value of the program name column 1431a of the data amount storage unit 143a in the state of FIG.
  • the average value is calculated (step A9 in FIG. 7), and the value of the data amount ratio column 1442a in the row where the program name column 1441a of the data amount ratio storage unit 144a is compressed is updated (step A10 in FIG. 7).
  • FIG. 16 shows the state of the data amount ratio storage unit 144a at this time.
  • the communication amount from the storage node 2 to the application node 1 is 100,000 bytes, which is the data amount of uncompressed data, and the data amount of the compress processing result
  • the total of 300,000 bytes is 400,000 bytes.
  • the amount of data exchanged between the storage node 2 and the application node 1 is The total amount is 100,000 bytes, which is the data amount of uncompressed data, and 1,000,000 bytes, which is the data amount of uncompressed data.
  • the amount of data exchanged between the storage node 2 and the application node 1 is The total data amount is 400,000 bytes, which is the data amount of the uncompress processing result, and 300,000 bytes, which is the data amount of the compress processing result.
  • the amount of data exchanged between the storage node 2 and the application node 1 can be greatly reduced.
  • the reason is that the history of the data amount before and after processing is recorded for each program, the ratio of the data amount before and after processing is calculated, and whether the processing is performed at the application node or the storage node according to the data amount ratio. This is because the configuration to be determined is adopted.
  • the amount of data exchanged between both nodes is estimated, and the sum of the data amount flowing between both nodes is calculated. Any other method can be adopted as long as the process can be performed by the node that can be reduced.
  • the data amount ratio is greater than 1 or less than 1.
  • the determination may be performed based on other values. For example, if the amount of communication data required for the application node 1 to send a request to the storage node 2 differs depending on whether the application node 1 or the storage node 2 executes processing, a value obtained by adding the correction for that amount Can be used.
  • the application node and the storage node have been described as having the same program group in advance.
  • a program is transmitted from the application node 1 to the storage node 2 as necessary. It may be in any form.
  • the data amount ratio before and after the processing may not be used as it is, but may be corrected in consideration of the data amount generated by transmitting the program.
  • each of the application nodes 1 individually stores the data amount before and after the process and calculates the data amount ratio. However, for example, between the plurality of application nodes, before and after the process. Information on the data amount and the data amount ratio may be shared.
  • each time a process is executed the data amount before and after the process is stored and the data amount ratio is calculated.
  • the data amount before and after the processing may be stored, or the data amount ratio may be calculated after the data amount before and after the processing is additionally stored more than a certain amount.
  • the overall configuration of the present embodiment is as shown in FIG. 1 as in the first embodiment of the present invention, and the detailed configurations of the application node 1 and the storage node 2 are different. In the following, parts different from the first embodiment of the present invention will be described.
  • FIG. 17 is a diagram illustrating a configuration of the application node 1 according to the present embodiment.
  • the application node 1 includes a data amount ratio calculation unit 13, a data amount storage unit 143, and a data amount ratio storage unit 144. It is a point which does not have.
  • the data information storage unit 142 of the application node 1 of this embodiment is different in data structure from the data information storage unit 142 of the first embodiment shown in FIG.
  • FIG. 19 is a diagram illustrating a structure of the data information storage unit 142 according to the second embodiment of this invention. 4 is different from the data information storage unit 142 of the first embodiment shown in FIG. 4 in that the data amount column 1423 is not provided.
  • FIG. 18 is a diagram showing a configuration of the storage node 2 of the present embodiment. The difference from FIG. 3 showing the configuration of the storage node 2 of the first embodiment of the present invention is that the storage node 2 has a data amount ratio calculation unit 23, a data amount storage unit 243, and a data amount ratio storage unit 244. Is a point.
  • the data amount ratio calculation unit 23 corresponds to the data amount ratio calculation unit 13 of the application node 1 of the first embodiment, and performs the same operation.
  • FIG. 20 is a diagram illustrating the structure of the data amount storage unit 243 according to the second embodiment of this invention.
  • the structure is the same as that of the data amount storage unit 143 of the first embodiment shown in FIG.
  • FIG. 21 is a diagram illustrating the structure of the data amount ratio storage unit 244 according to the second embodiment of this invention.
  • the structure is the same as that of the data amount ratio storage unit 144 of the first embodiment shown in FIG.
  • the application node 1 waits for reception of a processing request from the client 3 (step C1 in FIG. 22).
  • the application node 1 transmits a processing request to the storage node 2 (step C1). C3).
  • step C3 the storage node 2 to which the processing request is transmitted is stored in the storage node identifier column 1422 in the row where the 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 assumed that the storage node 2 corresponds to the storage node identifier.
  • the process request to be transmitted includes the program name and data identifier specified in the process request received from the client 3.
  • step C4 when a reply from the storage node 2 is received (step C4), the application node 1 determines whether the reply content is data or a processing result (step C5).
  • the application node 1 executes the corresponding program in the process execution unit 12 with the received data as input (step C6), and the data amount of the process result is returned to the storage in which the data is returned. Transmit to node 2 (step C7).
  • the application node 1 transmits the processing result to the client 3 that is the transmission source of the processing request (step C8). Thereafter, the application node 1 returns to step C1 and transitions to a processing request waiting state from the client.
  • step C5 when the reply content is the processing result, the application node 1 transmits the processing result to the client 3 that is the transmission source of the processing request (step C8). Thereafter, the application node 1 returns to step C1 and transitions to a processing request waiting state from the client.
  • the storage node 2 waits for a processing request from the application node 1 (step D1 in FIG. 23).
  • the storage node 2 receives a processing request from the application node 1 (step D2)
  • the storage node 2 starts processing from the program name column 2441 of the data amount ratio storage unit 244.
  • a line that matches the program name included in the request is searched to check whether the value of the data amount ratio stored in the data amount ratio column 2442 of the corresponding line is greater than 1 or less than 1 (step D3).
  • step D3 When the data amount ratio is larger than 1 in step D3, the storage node 2 reads data corresponding to the data identifier included in the data request from the data storage unit 245, and displays information indicating that the data and data are processing requests. Is sent to the application server 1 that is the transmission source (step D4), and waits for the reception of the post-processing data amount from the application server 1.
  • the storage node 2 secures a new row in the data amount storage unit 243, and the program name included in the processing request is stored in the program name column 2431 before the processing.
  • the data amount column 2432 stores the data amount of the data transmitted to the application server 1 in step D4, and the processed data amount column 2433 stores the processed data amount received from the application server 1 in step D5 (step D6).
  • the data amount ratio calculation unit 23 calculates a value obtained by dividing the post-processing data amount by the pre-processing data amount for all rows in which the program name column 2431 of the data amount storage unit 243 has the corresponding program name, and averages them. The value is defined as a data amount ratio (step D7).
  • the storage node 2 updates the data amount ratio column 2442 of the row in which the program name is stored in the program name column 2441 of the data amount ratio storage unit 244 with the calculated data amount ratio value (step D8). Thereafter, the storage node 2 returns to step D1 and transitions to a process request waiting state from the application node 1.
  • step D3 when the data amount ratio is 1 or less in step D3, the storage node 2 executes the corresponding program in the process execution unit 22 with the data corresponding to the data identifier included in the processing request as an input (step D9).
  • the result and information indicating the processing result are transmitted to the application server 1 that is the transmission source of the processing request (step D10).
  • the storage node 2 secures a new row in the data amount storage unit 243, executes the program name included in the processing request in the program name column 2431, and executes the process in the data amount column 2432 before processing in step D9.
  • the data amount of the input data is stored in the post-processing data amount column 1433, and the data amount of the processing result data in step D9 is stored (step D11).
  • the storage node 2 performs the processing subsequent to step D7 as in the case where the data amount ratio is larger than 1.
  • step D6 or step D11 if a new row cannot be secured because the storage capacity of the data amount storage unit 243 is small, the number of rows in the table of the data amount storage unit 243 is counted for each program name, which is the largest. Delete the oldest line of the program name line to make the storage area for the new line. Alternatively, a predetermined number of lines may be secured for each program, and the old data lines may be deleted sequentially.
  • the amount of data exchanged between the application node 1 and the storage node 2 can be reduced as in the first embodiment.
  • the reason is that, as in the first embodiment, the history of the data amount before and after the processing is recorded for each program, the ratio of the data amount before and after the processing is calculated, and the processing is performed according to the ratio of the data amount. This is because it is configured to determine whether to perform the operation at the node or the storage node.
  • FIG. 24 is a diagram showing a configuration of the entire system of the present embodiment. Referring to FIG. 24, the present embodiment is different in that a console 4 is added to the configuration of the first embodiment of FIG.
  • the console 4 is an interface device for displaying the internal state of the application node 1 and for changing the setting of the application node 1 by an operator (operator).
  • FIG. 25 is a diagram illustrating a configuration of the application node 1 according to the present embodiment. 2 differs from the application node 1 of the first embodiment shown in FIG. 2 in that it has a console communication unit 17 and the structure of the data amount ratio storage unit 144.
  • the console communication unit 17 functions as an interface between the application node 1 and the console 4.
  • FIG. 26 is a diagram showing the structure of the data amount ratio storage unit 144 of the present embodiment.
  • the difference from the data amount ratio storage unit 144 of the first embodiment shown in FIG. 6 is that it has a threshold value column 1443.
  • the threshold value is a reference value for determining whether the process execution is performed by the application node 1 or the storage node 2 as compared with the data amount ratio.
  • the threshold value is a numerical value of 0 or more, and the larger the value, the easier the process execution is performed in the storage node 2.
  • the threshold value is not limited to a numerical value, and an identification symbol that forcibly executes the process at the application node 1 or forcibly executes the process at the storage node 2 may be set. A specific node selection method using the threshold will be described later.
  • the console 4 issues a threshold setting request to the application node 1 in accordance with the operation of the operator (operator).
  • the program name and threshold value are included in the threshold setting request.
  • the operator (operator) does not necessarily have to specify the threshold value numerically. For example, it may be specified by a GUI (Graphical User Interface) track bar or pull-down menu, converted into a numerical value in the console 4 and handled as a threshold value.
  • GUI Graphic User Interface
  • step A3 in FIG. 7 representing the operation of the first embodiment
  • step A3 of FIG. 7 it is determined whether the data amount ratio is greater than 1 or less than 1. However, in this embodiment, if a value is set in the threshold value column 1443 of the corresponding program, it is set. Threshold is used as a decision criterion. That is, when the data amount ratio is larger than the threshold value or when the application node 1 is forcibly executed, the data request is transmitted to the storage node 2 and the application node 1 executes the process. . If the data amount ratio is smaller than the threshold value, or if the setting is forcibly executing processing in the storage node 2, a processing request is transmitted to the storage node 2.
  • the criteria for performing processing in the application node 1 or processing in the storage node 2 can be changed for each processing content. This is because, for example, when the process execution unit of the application node 1 is configured to perform high-speed processing for a specific process P as compared to the process execution unit of the storage node, the program that performs the process P is only the application node. It is possible to do so.
  • the application node stores the data amount before and after processing, calculates the data amount ratio, and determines the processing node.
  • the storage node Although the mode of storing the data amount before and after processing, calculating the data amount ratio, and determining the processing node has been described, the present invention is not limited to this mode.
  • a dedicated node (third node) for storing the amount of data before and after processing, calculating the data amount ratio and determining the processing node is installed, and the application node and the storage node communicate with the dedicated node and Processing may be performed.
  • communication between the application node or storage node and the dedicated node occurs, but since this communication amount can be realized with several bytes to several hundred bytes, the difference in data amount before and after processing is several kilobytes. There is no change in that the total amount of communication in the exceeding system can be reduced.
  • the present invention can be applied to a general system that determines which node executes processing in a system in which one of the two nodes having resources capable of executing processing has processing data.
  • the server has data between the mobile terminal and the server
  • the present invention can be applied to a system that determines which of the mobile terminal and the server executes processing.
  • the present invention can be applied to uses such as distributed computing. Moreover, it is applicable also to uses, such as a distributed process between a portable terminal and a server. It should be noted that the disclosures of the above patent documents are incorporated herein by reference. Within the scope of the entire disclosure (including claims) of the present invention, the embodiments and examples can be changed and adjusted based on the basic technical concept. Various combinations and selections of various disclosed elements are possible within the scope of the claims of the present invention. That is, the present invention of course includes various variations and modifications that could be made by those skilled in the art according to the entire disclosure including the claims and the technical idea.
  • Control unit 12 Processing execution unit 13 Data amount ratio calculation unit 14 Storage unit 141 Program storage unit 142, 142a Data information storage unit 1421, 1421a Data identifier string 1422, 1422a Storage node identifier string 1423, 1423a Data amount sequence 143, 143a Data amount storage unit 1431, 1431a Program name sequence 1432, 1432a Pre-processing data amount sequence 1433, 1433a Post-processing data amount sequence 144, 144a Data amount ratio storage units 1441, 1441a Program name sequence 1442, 1442a Data Quantity ratio sequence 1443 Threshold sequence 17 Console communication unit 18 System communication unit 19 Client communication unit 2, 2a, 2b Storage node 21 Control unit 22 Unit 23 data amount ratio calculation unit 24 storage unit 241 program storage unit 243 data amount storage unit 2431 program name sequence 2432 pre-processing data amount sequence 2433 post-processing data amount sequence 244 data amount ratio storage unit 2441 program name sequence 2442 data amount ratio sequence 245 Data storage unit 28 System communication unit 3, 3a

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

 2つのノードのうちの一方のノードのデータを用いていずれかのノードが処理を実行し、他方のノードでその出力結果を出力する構成において、処理の特性に拘らず、所要の応答性能を確保することのできる構成を提供する。処理ノード選択システムは、処理資源を備えた第1のノードと、処理資源を備えてかつ処理に用いるデータを記憶した第2のノードとを含み、前記第2のノードに記憶されたデータを用いて処理を実行し、その処理結果を前記第1のノードにて出力する際の前記処理を実行するノードとして、前記第1、第2のノード間でやり取りするデータ量の和が少なくなる方のノードを選択する。

Description

処理ノード選択システム、情報処理ノード、処理実行方法およびプログラム
[関連出願についての記載]
 本発明は、日本国特許出願:特願2009-148046号(2009年6月22日出願)の優先権主張に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
 本発明は、処理ノード選択システム、情報処理ノード、処理実行方法およびプログラムに関し、特に、複数の情報処理ノード(以下、単に「処理ノード」または「ノード」とも称する。)を有し、クライアントからの処理要求を処理する処理ノードを選択する処理ノード選択システム、情報処理ノード、処理実行方法およびプログラムに関する。
 クライアント-サーバモデルにおいて、サーバに相当するシステムが複数のアプリケーションノードと複数のストレージノードより構成されている例が知られている。アプリケーションノードは、例えばCPU(Central Processing Unit)とメモリからなる処理実行資源を備えたノードであり、ストレージノードは、例えばハードディスクドライブからなる記憶媒体を備え、処理の実行に用いるデータを記憶しているノードである。
 このようなシステムにおける動作について図27を用いて説明する。クライアントがネットワークを介してアプリケーションノードに処理要求V1を送信すると、アプリケーションノードはストレージノードにデータ要求V2を送信する。次に、ストレージノード2はアプリケーションノードにデータV3を送信し、アプリケーションノードはこのデータを用いて要求された処理の実行を行い、処理結果V4をクライアントに送信する。
 また、このようなシステムにおいて、ストレージノードに処理資源を付加したり、ストレージノードが記憶処理のために用いている処理資源を利用して、アプリケーションノードが実行していた処理の一部を、ストレージノードに委譲してストレージノードで実行する技術が知られている。例えば、非特許文献1には、データベース再編成をストレージシステムで行う技術が記載されている。
 図28は、上記ストレージノードに処理を委譲するシステムの動作を示した図である。クライアントがアプリケーションノードに処理要求W1を送信すると、アプリケーションノードはストレージノードに処理要求W2を送信する。次に、ストレージノードはアプリケーションノードに処理結果W3を送信し、アプリケーションノードは処理結果Y4をクライアントに送信する。
 ストレージノードについて言及している特許文献としては、特表2005-512232号公報がある。同文献によると、このシステムは、上記非特許文献1のように処理の委譲を行うものではないが、システム管理サーバがネットワークストレージのアプリケーションの使用をモニターし、最適な物理的ストレージ資源に、仮想的セグメントをトランスペアレントかつ動的に再割り当てするとされている。
特表2005-512232号公報
合田和生、 喜連川優、"データベース再編成機能を有するストレージシステムの構築"、信学技報、Vol.104、No.537,pp.61-66
 上記特許文献1及び非特許文献1の全開示内容はその引用をもって本書に繰込み記載する。以下に本発明による関連技術の分析を与える。
 上記した構成のシステムでは、アプリケーションノードで処理を実行する場合にもストレージノードで処理を実行する場合にも処理結果またはデータを送信する必要があるため、クライアントからの処理要求数が多くなると、上記アプリケーションノードとストレージノードとの間の内部ネットワークにおいて輻輳が生じ、処理要求に対する応答遅延が発生することがある(図1の内部ネットワーク8参照)。
 図27と図28を参照すると、1回の処理要求で発生する内部ネットワークにおける通信量は、図27の場合、データ要求V2とデータV3のデータ量の和であり、図28の場合処理要求W2と処理結果W3のデータ量の和となる。一般にデータ要求V2や処理要求W2のデータ量は数バイトから数100バイト程度であるのに対し、データV3や処理結果W3のデータ量は数キロバイトからギガバイトを超える量となる。すなわち、内部ネットワークの通信量は、ストレージノードからアプリケーションノードへの通信であるデータV3もしくは処理結果W3の寄与が大きい。
 図27のように処理実行をアプリケーションノードで行う場合と、図28のように処理実行をストレージノードで行う場合とを比較した場合、どちらがストレージノードからアプリケーションノードへの通信量が少ないか、すなわちクライアントからの同じ処理要求に対してデータV4と処理結果W3のデータ量のどちらが小さいかは一意には決まらない。これは、処理の種類によって処理前後のデータ量の大小関係の特性が異なるためである。すなわち、処理前のデータ量の方が大きい場合と処理後(処理結果)のデータ量の方が大きい場合と2通りのケースがあるためである。
 例えば、データ圧縮処理においては処理前のデータ量の方が大きく、圧縮データの解凍処理においては処理後のデータ量の方が大きいことが一般的である。このため、処理前後のデータ量の大小関係の特性が異なる処理が混在するシステムにおいては、図27の処理実行をアプリケーションノードで行う方法を採用するか、図28の処理実行をストレージノードで行う方法のいずれを選択しても、ストレージノードからアプリケーションノードへの通信量を低減することができない状況が発生してしまうという問題点がある。
 従って、本発明の目的とするところは、2つのノードのうちの一方のノードのデータを用いていずれかのノードが処理を実行し、他方のノードを出力先とする構成において、処理内容に拘らず、所要の応答性能を確保することのできる処理ノード決定システム、情報処理ノード、処理ノード決定方法およびプログラムを提供することにある。
 本発明の第1の視点によれば、処理資源を備えた第1のノードと、処理資源を備えてかつ処理に用いるデータを記憶した第2のノードとを含み、前記第2のノードに記憶されたデータを用いて処理を実行し、その処理結果を前記第1のノードにて出力する際の前記処理を実行するノードとして、前記第1、第2のノード間でやり取りするデータ量の和が少なくなる方のノードを選択すること、を特徴とする処理ノード選択システムが提供される。
 本発明の第2の視点によれば、上記した処理ノード選択システムにおいて、ノード選択処理を行う情報処理ノードが提供される。
 本発明の第3の視点によれば、処理資源を備えた第1のノードと、処理資源を備えてかつ処理に用いるデータを記憶した第2のノードとのいずれかで処理を実行する処理実行方法であって、前記第1のノードに前記第2のノードに記憶されたデータを送信し前記第1のノードで処理を実行する場合と、第2のノードで処理を実行しその処理結果を前記第1のノードに送信する場合のいずれかのうち、前記第1、第2のノード間でやり取りするデータ量の和が少なくなる方のノードを選択するステップと、前記選択されたノードが前記処理を実行するステップと、を含む処理実行方法が提供される。なお、本方法は、前記処理ノードを決定する情報処理ノードという、特定の機械に結びつけられている。
 本発明の第4の視点によれば、処理資源を備えた第1のノードと、処理資源を備えてかつ特定の処理に用いるデータを記憶した第2のノードとのいずれかで処理を実行する情報処理システムに含まれる、前記第1、第2のノードを含むいずれかの情報処理ノードに実行させるプログラムであって、前記特定の処理による処理前後のデータ量の比を算出する処理と、前記データ量比に基づいて、前記第1、第2のノード間でやり取りするデータ量の和が少なくなるように前記特定の処理を実行するノードを決定する処理と、を前記コンピュータに実行させるプログラムが提供される。なお、このプログラムは、コンピュータが読み取り可能な記憶媒体に記録することができる。即ち、本発明は、コンピュータプログラム製品として具現することも可能である。
 本発明によれば、2つのノードのうちの一方のノードのデータを用いていずれかのノードが処理を実行し、他方のノードを出力先とする構成において、処理前後のデータ量の大小関係が異なる特性を持つ処理によって生じ得る応答性能の低下を防止することが可能になる。
本発明の第1、第2の実施形態におけるシステム全体の構成を示すブロック図である。 本発明の第1の実施形態におけるアプリケーションノードの構成を示すブロック図である。 本発明の第1、第3の実施形態におけるストレージノードの構成を示すブロック図である。 本発明の第1、第3の実施形態におけるデータ情報記憶部の構造を示す図である。 本発明の第1、第3の実施形態におけるデータ量記憶部の構造を示す図である。 本発明の第1の実施形態におけるデータ量比記憶部の構造を示す図である。 本発明の第1、第3の実施形態におけるアプリケーションノードの動作を示すフローチャートである。 本発明の第1、第3の実施形態におけるストレージノードの動作を示すフローチャートである。 本発明の第1の実施形態の具体的動作を説明するための模式的な構成を表したブロック図である。 本発明の第1の実施形態の具体的動作を説明するための図(データ情報記憶部に記憶される情報の具体例)である。 本発明の第1の実施形態の具体的動作を説明するための図(データ量記憶部に記憶される情報の具体例)である。 本発明の第1の実施形態の具体的動作を説明するための図(データ量記憶部に記憶される情報の具体例)である。 本発明の第1の実施形態の具体的動作を説明するための図(データ量記憶部に記憶される情報の具体例)である。 本発明の第1の実施形態の具体的動作を説明するための図(データ量比記憶部に記憶される情報の具体例)である。 本発明の第1の実施形態の具体的動作を説明するための図(データ量比記憶部に記憶される情報の具体例)である。 本発明の第1の実施形態の具体的動作を説明するための図(データ量比記憶部に記憶される情報の具体例)である。 本発明の第2の実施形態におけるアプリケーションノードの構成を示すブロック図である。 本発明の第2の実施形態におけるストレージノードの構成を示すブロック図である。 本発明の第2の実施形態におけるデータ情報記憶部の構造を示す図である。 本発明の第2の実施形態におけるデータ量記憶部の構造を示す図である。 本発明の第2の実施形態におけるデータ量比記憶部の構造を示す図である。 本発明の第2の実施形態におけるアプリケーションノードの動作を示すフローチャートである。 本発明の第2の実施形態におけるストレージノードの動作を示すフローチャートである。 本発明の第3の実施形態におけるシステム全体の構成を示すブロック図である。 本発明の第3の実施形態におけるアプリケーションノードの構成を示すブロック図である。 本発明の第3の実施形態におけるデータ量比記憶部の構造を示す図である。 アプリケーションノードとストレージノードがクライアントから要求された処理を実行する動作を説明する図である。 アプリケーションノードとストレージノードがクライアントから要求された処理を実行する動作を説明する別の図である。
 はじめに、本発明の概要について説明する。本発明の処理ノード選択システムは、処理資源を備えた第1のノードと、処理資源を備えてかつ処理に用いるデータを記憶した第2のノードと、第1のノード、第2のノードのいずれかで実行すべき処理を、前記第1のノードまたは第2のノードのどちらに実行させるかを選択する第3のノード(第1、第2のノードいずれかであってもよい。)によって構成される。
 前記第3のノード(第1、第2のノードいずれかであってもよい。)は、前記第1、第2のノード間でやり取りするデータ量の和が少なくなる方のノードを選択する。
 ごく簡単には、前記処理の処理前、処理後のデータ量の比を用いて前記ノードの選択を行うことができる。つまり、先に述べたデータ圧縮処理のように、処理前のデータ量が処理後のデータ量よりも大きい場合には、データを保持している第2のノードで処理を実行した方が前記第1、第2のノード間でやり取りするデータ量の和を少なくすることができる。反対に、先に述べたデータ解凍処理のように、処理前のデータ量が処理後のデータ量よりも小さい場合には、第1のノードで処理前のデータを受け取って処理を実行した方が前記第1、第2のノード間でやり取りするデータ量の和を少なくすることができる。以上により、本発明の目的を達成することができる。
[第1の実施形態]
 続いて、本発明の第1の実施形態について図面を参照して詳細に説明する。図1は、本発明の第1の実施形態におけるシステム全体の構成を示すブロック図である。図1を参照すると、本発明の第1の実施形態は、複数のアプリケーションノード1と、複数のストレージノード2と、複数のクライアント3と、内部ネットワーク8と、外部ネットワーク9とから構成されている。
 アプリケーションノード1とストレージノード2は内部ネットワーク8を介して接続されている。
 アプリケーションノード1とクライアント3は外部ネットワーク9を介して接続されている。
 アプリケーションノード1は、クライアント3から処理要求を受信して、ストレージノード2に対して処理要求もしくはデータ要求を行い、ストレージノード2に対して処理要求を行った場合はストレージノード2から受信した処理結果をクライアント3に送信し、ストレージノード2に対してデータ要求を行った場合は受信したデータに対して処理を実行し、処理結果をクライアント3に送信する。
 ストレージノード2は、処理に使われるデータを格納しており、アプリケーションノード1から処理要求を受信した場合は処理を実行して処理結果をアプリケーションノード1に送信し、アプリケーションノード1からデータ要求を受信した場合はデータをアプリケーションノード1に送信する。
 クライアント3は、アプリケーションノード1に対して処理要求を行ない、アプリケーションノード1から処理結果を受け取る。
 内部ネットワーク8は、アプリケーションノード1とストレージノード2の間の通信経路を提供する。
 外部ネットワーク9は、アプリケーションノード1とクライアント3の間の通信経路を提供する。
 [アプリケーションノード1の構成]
 続いて、図2および図4~図6を用いてアプリケーションノード1の構成を詳細に説明する。
 図2は、本実施形態のアプリケーションノード1の構成を示すブロック図である。図2を参照すると、アプリケーションノード1は、制御部11と、処理実行部12と、データ量比算出部13と、記憶部14と、システム通信部18と、クライアント通信部19とを含んで構成されている。
 制御部11は、アプリケーションノード1の全体の動作を制御する。処理実行部12は、プログラム記憶部141に格納されたプログラムを読み出して実行する。この制御部11、処理実行部12、プログラム記憶部141および図示省略するメモリが処理資源として位置付けられる。
 データ量比算出部13は、データ量記憶部143に格納された処理前および処理後のデータ量から処理前後のデータ量比の平均値をプログラム毎に算出して、データ量比記憶部144に格納する。
 制御部11と、処理実行部12と、データ量比算出部13は、ソフトウェアまたはハードウェアにて適宜実現することができる。例えばCPU(Central Processing Unit)とプログラムを格納したメモリにより構成された計算機システムであってもよいし、専用の電子回路であってもよい。また、制御部11と、処理実行部12と、データ量比算出部13のうち2つ以上が独立している必要は無く、例えば、物理的に同一のシステムや回路構成であってもよい。
 記憶部14は、プログラム記憶部141と、データ情報記憶部142と、データ量記憶部143と、データ量比記憶部144とが設けられている。記憶部14は、例えば、ハードディスクドライブにより実現することができる。
 プログラム記憶部141は、処理実行部12が実行可能なプログラムを記憶する。プログラム記憶部141は複数のプログラムを記憶可能である。以降、アプリケーションノード1で処理を実行するという表現は、アプリケーションノード1の処理実行部12で処理に対応づけられたプログラムを実行することと同義のものとして使用する。
 データ情報記憶部142は、ストレージノード2に記憶されているデータに関する情報を記憶する。図4は、データ情報記憶部142のデータ構造を表した図である。図4の例では、データ情報記憶部142は、データ識別子列1421と、ストレージノード識別子列1422と、データ量列1423とからなる表構造となっている。データ識別子とは、全てのストレージノード2が有するデータの中から、データを特定するための識別子であり、例えば、重複しないように付けられた番号や名前である。ストレージノード識別子とは、ストレージノード2の中からひとつのストレージノード2を特定するための識別子である。ストレージノード識別子列には、同じ行のデータ識別子列1421のデータ識別子を有するストレージノード2のストレージノード識別子を格納する。データ量とは、データのサイズをバイト数で表したものである。データ量列1423には、同じ行のデータ識別子列1421のデータ識別子に対応するデータのデータ量を格納する。データ識別子列1421において、データ識別子が重複することは無い。すなわち、データ識別子を指定すると行が一意に特定される。
 データ量記憶部143は、処理前のデータ量と処理後のデータ量を記憶する。図5は、データ量記憶部143のデータ構造を表した図である。図5の例では、データ量記憶部143は、プログラム名列1431と、処理前データ量列1432と、処理後データ量列1433とからなる表構造となっている。プログラム名とは、プログラム記憶部141に記憶されている複数のプログラムの中からひとつを特定するための名前である。処理前データ量とは、プログラムの入力となるデータのデータ量である。処理後データ量とは、プログラムの出力となるデータのデータ量である。例えば、データAを圧縮処理プログラムにより圧縮し、データBが生成された場合、処理前データ量はデータAのデータ量であり、処理後データ量はデータBのデータ量である。データ量記憶部143にはプログラムが実行されるたびに追記的に行が追加され、プログラム名列1431には同じプログラム名が複数回重複して記憶されうる。
 データ量比記憶部144は、処理前後のデータ量の比を記憶する。図6は、データ量比記憶部144のデータ構造を表した図である。図6の例では、データ量比記憶部144は、プログラム名列1441と、データ量比列1442とからなる表構造となっている。データ量比とは、処理後データ量を処理前データ量で割った値のプログラム名毎の平均値である。データ量比が1より大きい事は、該当プログラムについて、処理前データ量よりも処理後データ量の方が大きい傾向にあることを意味する。一方、データ量比が1より小さい事は、処理前データ量よりも処理後データ量の方が小さいか傾向にあることを意味する。プログラム名列1441において、プログラム名が重複することは無い。すなわち、プログラム名を指定すると行、即ち、そのプログラムのデータ量比が一意に特定される。
 システム通信部18は、アプリケーションノード1内部と内部ネットワーク8とのインターフェイスとして機能する。
 クライアント通信部19は、アプリケーションノード1内部と外部ネットワーク9とのインターフェイスとして機能する。
 [ストレージノード2の構成]
 続いて、ストレージノード2の構成を詳細に説明する。図3は、本実施形態のストレージノード2の構成を示すブロック図である。図3を参照すると、ストレージノード2は、制御部21と、処理実行部22と、記憶部24と、システム通信部28とを含んで構成されている。
 制御部21は、ストレージノード2の全体の動作を制御する。処理実行部22は、プログラム記憶部241に格納されたプログラムを読み出して実行する。この制御部21、処理実行部22、プログラム記憶部241および図示省略するメモリが処理資源として位置付けられる。
 制御部21と、処理実行部22は、ソフトウェアまたはハードウェアにて適宜実現することができる。例えばCPU(Central Processing Unit)とプログラムを格納したメモリにより構成された計算機システムであってもよいし、専用の電子回路であってもよい。また、制御部21と、処理実行部22とが独立している必要は無く、例えば、物理的に同一のシステムや回路構成であってもよい。
 記憶部24は、プログラム記憶部241と、データ記憶部245とが設けられている。記憶部24は、例えば、ハードディスクドライブにより実現することができる。
  プログラム記憶部241は、処理実行部22が実行可能なプログラムを記憶する。プログラム記憶部241は、複数のプログラムを記憶可能である。以降、ストレージノード2で処理を実行するという表現は、ストレージノード2の処理実行部22で処理に対応づけられたプログラムを実行することと同義のものとして使用する。
 データ記憶部245は、処理の入力となるデータを記憶する。
 システム通信部28は、ストレージノード2内部と内部ネットワーク8とのインターフェイスとして機能する。
 本実施の形態では、クライアント3からの処理要求に必要なすべてのプログラムは、すべてのアプリケーションノード1のプログラム記憶部141と、すべてのストレージノード2のプログラム記憶部241にはあらかじめ同じプログラム群が記憶されているものとする。また、クライアント3からの処理要求に必要なすべてのデータは、ストレージノード2のうちのいずれかに記憶されているものとし、どのデータがどのストレージ2に記憶されているかの情報は、すべてのアプリケーションノード1のデータ情報記憶部142にあらかじめ記憶されているものとする。
 [クライアント3の動作]
 次に、本実施の形態のクライアント3の動作について説明する。
 クライアント3はアプリケーションノード1のいずれか1つに対して、処理要求を送信し、処理結果を待ち受ける。処理要求にはプログラム名とデータ識別子の指定を含める。処理要求の内容や送信するタイミングは、例えば、クライアント3を操作する人間からの指示や、クライアント3の内部に設定されたスケジュールに従って行う。
 [アプリケーションノード1の動作]
 続いて、図7のフローチャートを参照して本実施形態のアプリケーションノード1の動作について説明する。
 まず、アプリケーションノード1はクライアント3からの処理要求の受信を待ち受け(図7のステップA1)、クライアント3から処理要求を受信すると(ステップA2)、データ量比記憶部144のプログラム名列1441から、処理要求に含まれるプログラム名に一致する行を探索し、該当する行のデータ量比列1442に格納されたデータ量比の値が1より大きいか、1以下であるかを調べる(ステップA3)。
 ステップA3において、処理要求にて指定されたプログラムのデータ量比が1より大きい場合、アプリケーションノード1は、ストレージノード2に対してデータ要求を送信する(ステップA4)。ステップA4においてデータ要求を送信する対象のストレージノード2は、データ情報記憶部142のデータ識別子列1421の値が処理要求に含まれるデータ識別子に一致する行のストレージノード識別子列1422に格納されたストレージノード識別子に該当するストレージノード2とする。また、データ要求にはクライアントから受信した処理要求に含まれるデータ識別子を含める。
 次に、アプリケーションノード1は、ストレージノード2から、前記データ要求したデータを受信し(ステップA5)、受信したデータを入力として処理実行部12にて該当プログラムを実行する(ステップA6)。
 次に、アプリケーションノード1は、データ量記憶部143の新たな行を確保し、プログラム名列1431には実行したプログラム名を、処理前データ量列1432にはストレージノード2から受信したデータのデータ量を、処理後データ量列1433には処理結果のデータ量をそれぞれ格納する(ステップA7)。
 ステップA7において、データ量記憶部143の記憶容量が少ないために新たな行を確保できない場合は、データ量記憶部143の表の行数をプログラム名毎にカウントし、最も多いプログラム名の行の最も古い行を削除し、新しい行のための記憶領域とする。また、プログラム毎に、予め決められた行数を確保しておき、古いデータ行から順次消していく構成としてもよい。
 次に、アプリケーションノード1は、上記のように自装置側で実行した処理結果を処理要求の送信元であるクライアント3に送信する(ステップA8)。次に、アプリケーションノード1のデータ量比算出部13はデータ量記憶部143のプログラム名列1431が該当プログラム名を持つすべての行について処理後データ量を処理前データ量で割った値を算出し、それらの平均値をデータ量比とする(ステップA9)。
 次に、アプリケーションノード1は、データ量比記憶部144のプログラム名列1441に該当プログラム名が格納された行のデータ量比列1442を、算出したデータ量比の値に更新する(ステップA10)。その後、アプリケーションノード1は、ステップA1に戻ってクライアントからの処理要求待ち受け状態に遷移する。
 ステップA3において、処理要求にて指定されたプログラムのデータ量比が1以下である場合、アプリケーションノード1は、ストレージノード2に対して処理要求を送信する(ステップA11)。
 ステップA11において処理要求を送信する対象のストレージノード2はデータ情報記憶部142のデータ識別子列1421の値が処理要求に含まれるデータ識別子に一致する行のストレージノード識別子列1422に格納されたストレージノード識別子に該当するストレージノード2とする。なお、送信する処理要求にはクライアント3から受信した処理要求に含まれるプログラム名とデータ識別子を含める。
 次に、ストレージノード2から処理結果を受信すると(ステップA12)、アプリケーションノード1は、データ量記憶部143の新たな行を確保し、プログラム名列1431には処理要求が含むプログラム名を、処理前データ量列1432にはデータ情報記憶部142のデータ識別子列1421の値が処理要求に含まれるデータ識別子に一致する行のデータ量列1423に格納された値を、処理後データ量列1433にはストレージノード2から受信した処理結果のデータ量をそれぞれ格納する(ステップA13)。
 なお、ステップA13において、データ量記憶部143の記憶容量が少ないために新たな行を確保できない場合は、データ量記憶部143の表の行数をプログラム名毎にカウントし、最も多いプログラム名の行の最も古い行を削除し、新しい行のための記憶領域とする。また、プログラム毎に、予め決められた行数を確保しておき、古いデータ行から順次消していく構成としてもよい。
 その後は、処理要求にて指定されたプログラムのデータ量比が1より大きい場合と同様に、クライアント3への処理結果の送信、データ量比の算出、データ量比の更新が行われる(ステップA8~A10)。
 [ストレージノード2の動作]
 続いて、図8のフローチャートを参照して本実施形態のストレージノード2の動作について説明する。
 まず、ストレージノード2はアプリケーションノード1からデータ要求もしくは処理要求のいずれかの要求を待ち受け(図8のステップB1)、アプリケーションノード1から要求を受信すると(ステップB2)、要求の内容がデータ要求であるか処理要求であるかを判別する(ステップB3)。
 ステップB3において要求の内容がデータ要求である場合、ストレージノード2はデータ要求に含まれるデータ識別子に該当するデータをデータ記憶部245から読み出して、データ要求の送信元であるアプリケーションノード1に送信する(ステップB4)。その後、ストレージノード2はステップB1に戻ってアプリケーションノード1からの要求待ち受け状態に遷移する。
 一方、ステップB3において要求の内容が処理要求である場合、ストレージノード2は処理要求が含むデータ識別子に該当するデータを入力として処理実行部22にて該当プログラムを実行する(ステップB5)。次に、ストレージノード2は、処理要求の送信元であるアプリケーションノード1に対し処理結果を送信する(ステップB6)。その後、ストレージノード2はステップB1に戻ってアプリケーションノード1からの要求待ち受け状態に遷移する。
 [具体例1]
 次に、簡単な事例を用いて上記本発明の第1の実施形態の具体的な動作を説明する。
 図9は、図1をさらに模式化したシステム構成図である。図9の例では、アプリケーションノード1としてアプリケーションノード1aとアプリケーションノード1bの2つを有し、ストレージノード2としてストレージノード2aとストレージノード2bの2つを有し、クライアント3としてクライアント3aとクライアント3bの2つを有する。
 図10は、アプリケーションノード1aのデータ情報記憶部142であるデータ情報記憶部142aのデータ情報の例である。ストレージノード識別子列1422aの値はストレージノード2を識別する添え字に該当するものとする。例えば、データ識別子data1のデータのストレージノード識別子列1422の値はaである。この場合、当該データはストレージノード2aに格納されていることになる。
 図11~図13は、アプリケーションノード1aのデータ量記憶部143であるデータ量記憶部143aの状態の遷移を表した図である。図11~図13のcompressは、プログラム記憶部141または241に記憶されたデータを圧縮するプログラムを示し、uncompressは、圧縮されたデータを解凍するプログラムを示すものとする。クライアント3がプログラム名compressを指定して処理要求を行った場合、アプリケーションノード1は処理結果として圧縮したデータをクライアント3に返すものとする。また、クライアント3がプログラム名uncompressを指定して処理要求を行った場合、アプリケーションノード1は処理結果として解凍したデータをクライアント3に返すものとする。なお、開始時点ではデータ量記憶部143aは図11の状態であるものとする。図12は、図11の状態から、プログラムuncompressが一回実行され、uncompressの処理前後のデータ量が追加された状態を示している。図13は、図12の状態から、プログラムcompressが一回実行され、compressの処理前後のデータ量が追加された状態を示している。
 図14~図16は、本実施例におけるアプリケーションノード1aのデータ量比記憶部144であるデータ量比記憶部144aの状態の遷移を表した図である。なお、開始時点ではデータ量比記憶部144aは図14の状態であるものとする。図14のデータ量比列1442aには、図11のプログラムcompressとプログラムuncompressについて、それぞれデータ量比を算出した値が記憶されている。すなわち図14のcompressの行には、図11の(6,000,000/10,000,000)=0.60と(400,000/1,000,000)=0.40と(5,000/10,000)=0.50の平均値である0.50が記憶されている。また図14のuncompressの行には、図11の(1,000,000/500,000)=2.00と(30,000,000/10,000,000)=3.00の平均値である2.50が記憶されている。
 図15は、図14の状態から、プログラムuncompressが一回実行され、図12の処理前後のデータ量から再計算されたデータ量比記憶部144aの状態を示している。図16は、図15の状態から、図13の処理前後のデータ量から再計算されたデータ量比記憶部144aの状態を示している。
 以下、データ情報記憶部142a、データ量記憶部143aおよびデータ量比記憶部144aが、それぞれ図10、図11、図14の状態にあり、クライアント3aおよび3bからそれぞれ処理要求を受信した場合の動作について図7、図8を参照して説明する。
 クライアント3aがアプリケーションノード1aに対してデータ識別子data1、プログラム名uncompressを指定して処理要求を行った場合、アプリケーションノード1aはデータ量比記憶部144aのプログラム名列1441aがuncompressである行のデータ量比列1442aの値を参照する。この場合、データ量比は2.50であり1よりも大きいので(図7のステップA3)、アプリケーションノード1aは、データ情報記憶部142aのデータ識別子列1421aの値がdata1である行のストレージノード識別子列1442aを参照する。この場合ストレージノード識別子がaであるので、アプリケーションノード1aは、ストレージノード2aに対してデータ要求を行う(図7のステップA4)。データdata1を受信すると(図7のステップA5)、アプリケーションノード1aは、data1を入力としてuncompress処理を行う(図7のステップA6)。
 ストレージノード2aから受信したdata1のデータ量は100,000バイトであり、処理後のデータ量は400,000バイトであったとする。アプリケーションノード1aはデータ量記憶部143aに行を追加して、プログラム名列1431aにuncompress、処理前データ量列1432aには100,000、処理後データ量列1433aには400,000を記憶する(図7のステップA7)。
 図12は、この時点のデータ量記憶部143aの状態を示している。次に、アプリケーションノード1aはクライアント3aに処理結果を送信し(図7のステップA8)、図12の状態のデータ量記憶部143aのプログラム名列1431aの値がuncompressである行のデータ量比の平均値を算出し(図7のステップA9)、データ量比記憶部144aのプログラム名列1441aがuncompressである行のデータ量比列1442aの値を更新する(図7のステップA10)。図15は、この時点のデータ量比記憶部144aの状態を示している。
 続いて、クライアント3bがアプリケーションノード1aに対してデータ識別子data2、プログラム名compressを指定して処理要求を行った場合について説明する。
 アプリケーションノード1aはデータ量比記憶部144aのプログラム名列1441aがcompressである行のデータ量比列1442aの値を参照する。この場合、データ量比は0.50であり1以下であるので(図7のステップA3)、アプリケーションノード1aは、データ情報記憶部142aのデータ識別子列1421aの値がdata2である行のストレージノード識別子列1442aを参照する。この場合、ストレージノード識別子がbであるので、アプリケーションノード1aは、ストレージノード2bに対して処理要求を行う(図7のステップA11)。
 次に、ストレージノード2bから処理結果を受信すると(図7のステップA12)、アプリケーションノード1aは処理結果のデータのデータ量を調べる。ここでは、処理結果のデータ量は300,000バイトであったとする。処理前のデータであるdata2のデータ量はデータ情報記憶部142aのデータ識別子列1421aがdata2である行のデータ量列1423aを参照して1,000,000バイトであることがわかるので、アプリケーションノード1aは、データ量記憶部143aに行を追加して、プログラム名列1431aにcompress、処理前データ量列1432aには1,000,000、処理後データ量列1433aには300,000を記憶する(図7のステップA13)。
 図13は、この時点のデータ量記憶部143aの状態を示している。次に、アプリケーションノード1aはクライアント3aに処理結果を送信し(図7のステップA8)、図13の状態のデータ量記憶部143aのプログラム名列1431aの値がcompressである行のデータ量比の平均値を算出し(図7のステップA9)、データ量比記憶部144aのプログラム名列1441aがcompressである行のデータ量比列1442aの値を更新する(図7のステップA10)。図16は、この時点のデータ量比記憶部144aの状態を示している。
 これらの2つのクライアント3a、3bからの処理要求に対する処理において、ストレージノード2からアプリケーションノード1への通信量は、uncompress処理前データのデータ量である100,000バイトと、compress処理結果のデータ量である300,000バイトの合計である400,000バイトである。
 ところで、冒頭に図27を用いて説明したように、すべての処理要求についてアプリケーションノード1がストレージノード2にデータ要求を行った場合、ストレージノード2とアプリケーションノード1間でやりとりされるデータ量は、uncompress処理前データのデータ量である100,000バイトとuncompress処理前データのデータ量である1,000,000バイトの合計である1100,000バイトとなる。
 また、冒頭に図28を用いて説明したように、すべての処理要求についてアプリケーションノード1がストレージノード2に処理要求を行った場合、ストレージノード2とアプリケーションノード1間でやりとりされるデータ量は、uncompress処理結果のデータ量である400,000バイトと、compress処理結果のデータ量である300,000バイトの合計である700,000バイトとなる。
 以上のように、本発明によれば、ストレージノード2とアプリケーションノード1間でやり取りするデータ量を、大きく削減することができる。
 その理由は、プログラム毎に処理前後のデータ量の履歴を記録し、処理前後のデータ量の比を算出して、データ量の比に応じて処理をアプリケーションノードで行うかストレージノードで行うかを決定する構成を採用しているためである。もちろん、上記データ量の比に代えて、アプリケーションノード1およびストレージノード2で処理を実行した場合に、両ノード間でやり取りするデータ量をそれぞれ試算し、両ノードの間を流れるデータ量の和を削減できる方のノードに処理を実行させる方法であれば、その他の方法も採用することが可能である。
 また例えば、上記第1の実施形態では、データ量比が1より大きいか1以下であるかで判断したが、その他の値を基準に判断を行っても良い。例えば、アプリケーションノード1とストレージノード2のいずれで処理を実行するかにより、アプリケーションノード1がストレージノード2に要求を送信するために要する通信のデータ量が異なる場合はその分の補正を加えた値を用いることができる。
 また、上記第1の実施形態では、あらかじめアプリケーションノードとストレージノードが同じプログラム群を有しているものとして説明したが、例えば、必要に応じてアプリケーションノード1からストレージノード2にプログラムを送信するような形態でもよい。この場合、処理ノードを決定するために、処理前後のデータ量比をそのまま用いるのではなく、プログラムを送信することにより発生するデータ量を加味して補正するようにしてもよい。
 また、上記第1の実施形態では、各々のアプリケーションノード1が個別に処理前後のデータ量の記憶やデータ量比の算出を行う形態について説明したが、例えば、複数のアプリケーションノード間で処理前後のデータ量やデータ量比の情報を共有してもよい。
 また、上記第1の実施形態では、処理が実行される毎に処理前後のデータ量の記憶やデータ量比の算出を行うものとして説明したが、例えば、数回の処理を実行する度に、処理前後のデータ量の記憶を行うようにしたり、処理前後のデータ量が一定量以上追加記憶された後にデータ量比の算出を行うようにしてもよい。
[第2の実施の形態]
 続いて、本発明の第2の実施形態について図面を参照して詳細に説明する。
 本実施形態の全体構成は、上記本発明の第1の実施形態と同じく図1に示す通りであり、アプリケーションノード1とストレージノード2の詳細構成を異にしている。以下、本発明の第1の実施形態と相違する部分について説明する。
 [アプリケーションノード1の構成]
 図17は、本実施形態のアプリケーションノード1の構成を示す図である。本発明の第1の実施形態のアプリケーションノード1の構成を示す図2との相違点は、アプリケーションノード1が、データ量比算出部13と、データ量記憶部143と、データ量比記憶部144とを有しない点である。また、本実施形態のアプリケーションノード1のデータ情報記憶部142は、図4に示した第1の実施形態のデータ情報記憶部142とデータ構造が異なっている。
 図19は、本発明の第2の実施形態のデータ情報記憶部142の構造を示す図である。図4に示した第1の実施形態のデータ情報記憶部142とは、データ量列1423を有しない点で異なっている。
 [ストレージノード2の構成]
 図18は、本実施形態のストレージノード2の構成を示す図である。本発明の第1の実施形態のストレージノード2の構成を示す図3との相違点は、ストレージノード2が、データ量比算出部23、データ量記憶部243、データ量比記憶部244を有する点である。
 データ量比算出部23は、第1の実施形態のアプリケーションノード1のデータ量比算出部13に相当し、同様の動作を行う。
 図20は、本発明の第2の実施形態のデータ量記憶部243の構造を示す図である。図5に示した第1の実施形態のデータ量記憶部143と同等の構造となっている。
 図21は、本発明の第2の実施形態のデータ量比記憶部244の構造を示す図である。図6に示した第1の実施形態のデータ量比記憶部144と同等の構造となっている。
 [アプリケーションノード1の動作]
 続いて、次に、図22のフローチャートを参照して本実施形態のアプリケーションノード1の動作について説明する。
 まず、アプリケーションノード1はクライアント3からの処理要求の受信を待ち受け(図22のステップC1)、クライアント3から処理要求を受信すると(ステップC2)、ストレージノード2に対して処理要求を送信する(ステップC3)。
 ステップC3において処理要求を送信する対象となるストレージノード2は、データ情報記憶部142のデータ識別子列1421の値が処理要求に含まれるデータ識別子に一致する行のストレージノード識別子列1422に格納されたストレージノード識別子に該当するストレージノード2とする。なお、送信する処理要求にはクライアント3から受信した処理要求に指定されたプログラム名とデータ識別子とを含める。
 次に、ストレージノード2からの返信を受信すると(ステップC4)、アプリケーションノード1は、返信内容がデータであるか、処理結果であるかを判別する(ステップC5)。ステップC5において返信内容がデータである場合、アプリケーションノード1は、受信したデータを入力として処理実行部12にて該当プログラムを実行し(ステップC6)、処理結果のデータ量を、データを返信したストレージノード2に送信する(ステップC7)。次に、アプリケーションノード1は、処理結果を処理要求の送信元であるクライアント3に送信する(ステップC8)。その後、アプリケーションノード1は、ステップC1に戻ってクライアントからの処理要求待ち受け状態に遷移する。
 一方、ステップC5において、返信内容が処理結果である場合、アプリケーションノード1は、処理結果を処理要求の送信元であるクライアント3に送信する(ステップC8)。その後、アプリケーションノード1は、ステップC1に戻ってクライアントからの処理要求待ち受け状態に遷移する。
 [ストレージノード2の動作]
 続いて、図23のフローチャートを参照して本実施形態のストレージノード2の動作について説明する。
 まず、ストレージノード2はアプリケーションノード1から処理要求を待ち受け(図23のステップD1)、アプリケーションノード1から処理要求を受信すると(ステップD2)、データ量比記憶部244のプログラム名列2441から、処理要求に含まれるプログラム名に一致する行を探索し、該当する行のデータ量比列2442に格納されたデータ量比の値が1より大きいか、1以下であるかを調べる(ステップD3)。
 ステップD3においてデータ量比が1より大きい場合、ストレージノード2は、データ要求に含まれるデータ識別子に該当するデータをデータ記憶部245から読み出して、データおよびデータであることを示す情報を、処理要求の送信元であるアプリケーションサーバ1に送信し(ステップD4)、アプリケーションサーバ1から処理後データ量を受信するのを待つ。
 アプリケーションサーバ1から処理後データ量を受信すると(ステップD5)、ストレージノード2は、データ量記憶部243の新たな行を確保し、プログラム名列2431には処理要求が含むプログラム名を、処理前データ量列2432にはステップD4にてアプリケーションサーバ1に送信したデータのデータ量を、処理後データ量列2433にはステップD5においてアプリケーションサーバ1から受信した処理後データ量をそれぞれ格納する(ステップD6)。次に、データ量比算出部23はデータ量記憶部243のプログラム名列2431が該当プログラム名を持つすべての行について処理後データ量を処理前データ量で割った値を算出し、それらの平均値をデータ量比とする(ステップD7)。次に、ストレージノード2は、データ量比記憶部244のプログラム名列2441に該当プログラム名が格納された行のデータ量比列2442を、算出したデータ量比の値に更新する(ステップD8)。その後、ストレージノード2は、ステップD1に戻ってアプリケーションノード1からの処理要求待ち受け状態に遷移する。
 一方、ステップD3においてデータ量比が1以下の場合、ストレージノード2は、処理要求に含まれるデータ識別子に該当するデータを入力として処理実行部22にて該当プログラムを実行し(ステップD9)、処理結果および処理結果であることを示す情報を処理要求の送信元であるアプリケーションサーバ1に送信する(ステップD10)。
 次に、ストレージノード2は、データ量記憶部243の新たな行を確保し、プログラム名列2431には処理要求が含むプログラム名を、処理前データ量列2432にはステップD9にて処理実行の入力としたデータのデータ量を、処理後データ量列1433にはステップD9における処理結果のデータのデータ量をそれぞれ格納する(ステップD11)。その後、ストレージノード2は、先のデータ量比が1より大きい場合と同様に、ステップD7以降の処理を行う。
 なお、ステップD6もしくはステップD11において、データ量記憶部243の記憶容量が少ないために新たな行を確保できない場合は、データ量記憶部243の表の行数をプログラム名毎にカウントし、最も多いプログラム名の行の最も古い行を削除し、新しい行のための記憶領域とする。また、プログラム毎に、予め決められた行数を確保しておき、古いデータ行から順次消していく構成としてもよい。
 以上のように、ストレージノード側に処理ノードを選択する処理を行わせる構成でも、第1の実施形態と同様に、アプリケーションノード1とストレージノード2の間でやりとりするデータ量を低減することができる。その理由は、上記第1の実施形態と同様に、プログラム毎に処理前後のデータ量の履歴を記録し、処理前後のデータ量の比を算出して、データ量の比に応じて処理をアプリケーションノードで行うかストレージノードで行うかを決定するよう構成したためである。
 なお、本実施形態では、アプリケーションノード1で処理を行った場合に、アプリケーションノードからストレージノードへ処理結果のデータ量を送信する通信が加わるが、この通信量は数バイトから数100バイト程度で実現可能であるので、処理前後のデータ量の差が数キロバイトを越えるシステムにおいては、影響は極めて軽微であり、両ノード間でやり取りするデータ量の総量を削減することが可能である。
[第3の実施形態]
 次に、上記第1の実施形態に変更を加えた本発明の第3の実施形態について図面を参照して説明する。
 図24は、本実施形態のシステム全体の構成を示す図である。図24を参照すると、本実施形態は、図1の第1の実施形態の構成に、コンソール4を追加した点で異なっている。
 コンソール4は、アプリケーションノード1の内部状態を表示したり、オペレータ(操作者)がアプリケーションノード1の設定変更を行ったりするためのインターフェイス装置である。
 [アプリケーションノード1の構成]
 図25は、本実施形態のアプリケーションノード1の構成を示す図である。図2に示した第1の実施形態のアプリケーションノード1とは、コンソール通信部17を有する点と、データ量比記憶部144の構造において異なっている。
 コンソール通信部17は、アプリケーションノード1内部とコンソール4とのインターフェイスとして機能する。
 図26は、本実施形態のデータ量比記憶部144の構造を示す図である。図6に示した第1の実施形態のデータ量比記憶部144との相違点は、閾値列1443を有する点である。ここで、閾値とは、データ量比と比較して、処理実行をアプリケーションノード1で行うかストレージノード2で行うかを判別するための基準値である。
 閾値は0以上の数値であり、値が大きいほど処理実行がストレージノード2で行われやすくなる。また、閾値は数値のみではなく、処理実行を強制的にアプリケーションノード1で行う、もしくは処理実行を強制的にストレージノード2で行うような識別記号を設定できるようにしてもよい。閾値を用いた具体的なノードの選択方法については後述する。
 [コンソール4の動作}
 コンソール4は、オペレータ(操作者)の操作に応じて、アプリケーションノード1に閾値設定要求を行う。閾値設定要求にはプログラム名と閾値を含める。オペレータ(操作者)は、必ずしも閾値を数値で指定しなくてもよい。例えば、GUI(Graphical User Interface)のトラックバーやプルダウンメニューによる指定を行い、コンソール4内で数値に変換して閾値として扱うようにしてもよい。
 [アプリケーションノード1の動作]
 アプリケーション1は、コンソール4から閾値設定要求を受信すると、データ量比記憶部144のプログラム名列1441の値が閾値設定要求に含まれるプログラム名に一致する行の閾値列1443に、閾値設定要求に含まれる閾値を記憶する。
 アプリケーションノード1のその他の動作は、第1の実施形態の動作を表した図7のステップA3を除いて同一であるので、以下、図7を用いて説明する。
 図7のステップA3では、データ量比が1より大きいか1以下であるかで判断したが、本実施形態においては、該当プログラムの閾値列1443に値が設定されている場合は、設定されている閾値を決定基準とする。すなわち、データ量比が閾値より大きい場合、もしくは強制的にアプリケーションノード1で処理実行を行う設定であった場合は、ストレージノード2に対してデータ要求を送信してアプリケーションノード1で処理実行を行う。また、データ量比が閾値より小さい場合、もしくは強制的にストレージノード2で処理実行を行う設定であった場合は、ストレージノード2に対して処理要求を送信する。
 以上のように、本実施形態では、第1の実施の形態の効果に加え、処理内容毎にアプリケーションノード1で処理を行うかストレージノード2で処理を行うかの基準を変えることができる。これは、例えばアプリケーションノード1の処理実行部がストレージノードの処理実行部に比べて、特定の処理Pについて高速な処理ができるような構成であった場合、処理Pを行うプログラムはアプリケーションノードでのみ行うようにするといったことが可能である。
 なお、上記発明の第3の実施形態にて追加されたプログラム毎に処理実行ノードの判断基準を設定できる機能は、第2の実施形態に付加することも可能である。
 以上、本発明の実施形態を説明したが、本発明は、上記した実施形態に限定されるものではなく、本発明の基本的技術的思想を逸脱しない範囲で、更なる変形・置換・調整を加えることができる。
 上記第1の実施の形態および第3の実施の形態ではアプリケーションノードが処理前後のデータ量の記憶およびデータ量比の算出および処理ノードの決定を行う形態、第2の実施の形態ではストレージノードが処理前後のデータ量の記憶およびデータ量比の算出および処理ノードの決定を行う形態について説明したが、本発明はこの形態のみに限定されるものではない。
 例えば、処理前後のデータ量の記憶およびデータ量比の算出および処理ノードの決定を行う専用のノード(第3のノード)を設置して、アプリケーションノードやストレージノードが専用ノードと通信を行い同等の処理を行うようにしてもよい。この場合、アプリケーションノードやストレージノードと専用ノードとの間の通信が発生するが、この通信量は数バイトから数100バイト程度で実現可能であるので、処理前後のデータ量の差が数キロバイトを越えるシステムにおける通信量の総量を削減できる点において変わりはない。
 また、第1の実施の形態から第3の実施の形態では、クライアントとアプリケーションノードとストレージノードの3階層によるシステムについて説明したが、本発明はこの構成に限定されない。本発明は、処理を実行可能な資源を有する2つのノードにおいて片方が処理データを有するようなシステムにおいて、いずれのノードで処理を実行するかを決定するようなシステム一般に対して適用することができる。例えば、携帯端末とサーバ間で、サーバがデータを持つ場合、携帯端末とサーバのいずれにおいて処理を実行するかを決定するようなシステムにも適用することが可能である。
 本発明によれば、分散コンピューティングといった用途に適用できる。また、携帯端末とサーバ間での分散処理といった用途にも適用可能である。
 なお、上記の特許文献の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素の多様な組み合わせないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
 1、1a、1b    アプリケーションノード
 11   制御部
 12   処理実行部
 13   データ量比算出部
 14   記憶部
 141  プログラム記憶部
 142、142a   データ情報記憶部
 1421、1421a データ識別子列
 1422、1422a ストレージノード識別子列
 1423,1423a データ量列
 143、143a   データ量記憶部
 1431、1431a プログラム名列
 1432、1432a 処理前データ量列
 1433、1433a 処理後データ量列
 144、144a   データ量比記憶部
 1441、1441a プログラム名列
 1442、1442a データ量比列
 1443       閾値列
 17   コンソール通信部
 18   システム通信部
 19   クライアント通信部
 2、2a、2b    ストレージノード
 21   制御部
 22   処理実行部
 23   データ量比算出部
 24   記憶部
 241  プログラム記憶部
 243  データ量記憶部
 2431 プログラム名列
 2432 処理前データ量列
 2433 処理後データ量列
 244  データ量比記憶部
 2441 プログラム名列
 2442 データ量比列
 245  データ記憶部
 28   システム通信部
 3、3a、3b クライアント
 4 コンソール
 8 内部ネットワーク
 9 外部ネットワーク
 A1~A13、B1~B6、C1~C8、D1~D11 処理ステップ
 V1~V4、W1~W4 通信

Claims (17)

  1.  処理資源を備えた第1のノードと、
     処理資源を備えてかつ処理に用いるデータを記憶した第2のノードとを含み、
     前記第2のノードに記憶されたデータを用いて処理を実行し、その処理結果を前記第1のノードにて出力する際の前記処理を実行するノードとして、前記第1、第2のノード間でやり取りするデータ量の和が少なくなる方のノードを選択すること、
     を特徴とする処理ノード選択システム。
  2.  処理前後のデータ量を記憶するデータ量記憶部と、
     前記処理前後のデータ量を用いて処理前後のデータ量比を算出するデータ量比算出部と、
     前記データ量比に基づいて、前記処理を実行するノードを決定する制御部と、
     を備える請求項1の処理ノード選択システム。
  3.  前記データ量記憶部には、処理に用いるプログラム毎に、処理前後のデータ量が記憶され、
     前記データ量比算出部は、プログラム毎に、前記データ量記憶部に記憶された処理前後のデータ量を集計してデータ量比を算出し、
     前記制御部は、前記プログラム毎に算出されたデータ量比に基づいて、処理を実行するノードを決定する請求項2の処理ノード選択システム。
  4.  前記データ量記憶部、前記データ量比算出部および制御部が、前記第1のノードに備えられ、
     前記第1のノードにおいて、前記データ量比に基づいて、前記第2のノードにデータを要求して第1のノードで処理を実行するか、前記第2のノードに処理の実行を要求するかを決定する請求項2または3の処理ノード選択システム。
  5.  前記データ量記憶部、前記データ量比算出部および制御部が、前記第2のノードに備えられ、
     前記第2のノードにおいて、前記データ量比に基づいて、前記第1のノードにデータを送信して処理の実行を要求するか、第2のノードで処理を実行するか、前記第2のノードに処理の実行を要求するかを決定する請求項2または3の処理ノード選択システム。
  6.  処理内容毎に、前記データ量比に基づいた決定基準を設定可能である請求項1から5いずれか一の処理ノード選択システム。
  7.  処理資源を備えてかつ処理に用いるデータを記憶した第2のノードと接続され、
     前記第2のノードに記憶されたデータを用いた処理を実行する際に、前記第2のノードに前記処理を実行させてその処理結果を受け取るか、前記第2のノードから前記データを受信して自装置で前記処理を実行するかのいずれかのうち、前記第2のノードとの間でやり取りするデータ量の和が少なくなる方を選択する情報処理ノード。
  8.  処理前後のデータ量を記憶するデータ量記憶部と、
     前記処理前後のデータ量を用いて処理前後のデータ量比を算出するデータ量比算出部と、
     前記データ量比に基づいて処理を実行するノードを決定する制御部と、
     を備える請求項7の情報処理ノード。
  9.  前記データ量記憶部には、処理に用いるプログラム毎に、処理前後のデータ量が記憶され、
     前記データ量比算出部は、プログラム毎に、前記データ量記憶部に記憶された処理前後のデータ量を集計してデータ量比を算出し、
     前記制御部は、前記プログラム毎に算出されたデータ量比に基づいて、処理を実行するノードを決定する請求項8の情報処理ノード。
  10.  処理内容毎に、前記データ量比に基づいた決定基準を設定可能である請求項7から9いずれか一の情報処理ノード。
  11.  処理資源を備えた第1のノードと接続され、
     前記第1のノードから自装置に記憶するデータを用いた処理要求を受けた際に、前記第1のノードに前記処理に用いるデータを送信して前記処理を実行させるか、自装置で前記処理を実行しその処理結果を前記第1のノードに送信するかのいずれかのうち、前記第1のノードとの間でやり取りするデータ量の和が少なくなる方を選択する情報処理ノード。
  12.  処理前後のデータ量を記憶するデータ量記憶部と、
     前記処理前後のデータ量を用いて処理前後のデータ量比を算出するデータ量比算出部と、
     前記データ量比に基づいて処理を実行するノードを決定する制御部と、
     を備える請求項11の情報処理ノード。
  13.  前記データ量記憶部には、処理に用いるプログラム毎に、処理前後のデータ量が記憶され、
     前記データ量比算出部は、プログラム毎に、前記データ量記憶部に記憶された処理前後のデータ量を集計してデータ量比を算出し、
     前記制御部は、前記プログラム毎に算出されたデータ量比に基づいて、処理を実行するノードを決定する請求項12の情報処理ノード。
  14.  処理内容毎に、前記データ量比に基づいた決定基準を設定可能である請求項11から13いずれか一の情報処理ノード。
  15.  処理資源を備えた第1のノードおよび処理資源を備えてかつ処理に用いるデータを記憶した第2のノードと接続され、
     前記第2のノードに処理を実行させて前記第1のノードがその処理結果を受け取るか、前記第1のノードが前記第2のノードから前記データを受信して前記処理を実行するかのいずれかのうち、前記第1、第2のノード間でやり取りするデータ量の和が少なくなる方のノードを選択し、前記第1、第2のノードに対し、前記選択結果を通知する情報処理ノード。
  16.  処理資源を備えた第1のノードと、処理資源を備えてかつ処理に用いるデータを記憶した第2のノードとのいずれかで処理を実行する処理実行方法であって、
     前記第1のノードに前記第2のノードに記憶されたデータを送信し前記第1のノードで処理を実行する場合と、第2のノードで処理を実行しその処理結果を前記第1のノードに送信する場合のいずれかのうち、前記第1、第2のノード間でやり取りするデータ量の和が少なくなる方のノードを選択するステップと、
     前記選択されたノードが前記処理を実行するステップと、
     を含む処理実行方法。
  17.  処理資源を備えた第1のノードと、処理資源を備えてかつ特定の処理に用いるデータを記憶した第2のノードとのいずれかで処理を実行する情報処理システムに含まれる、前記第1、第2のノードを含むいずれかの情報処理ノードに実行させるプログラムであって、
     前記特定の処理による処理前後のデータ量の比を算出する処理と、
     前記データ量比に基づいて、前記第1、第2のノード間でやり取りするデータ量の和が少なくなるように前記特定の処理を実行するノードを決定する処理と、
     を前記コンピュータに実行させるプログラム。
PCT/JP2010/060348 2009-06-22 2010-06-18 処理ノード選択システム、情報処理ノード、処理実行方法およびプログラム WO2010150704A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US13/379,849 US20120102086A1 (en) 2009-06-22 2010-06-18 Processing node selection system, information processing node, processing execution method and program
JP2011519852A JP5565412B2 (ja) 2009-06-22 2010-06-18 処理ノード選択システム、情報処理ノード、処理ノード決定方法およびプログラム

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2009148046 2009-06-22
JP2009-148046 2009-06-22

Publications (1)

Publication Number Publication Date
WO2010150704A1 true WO2010150704A1 (ja) 2010-12-29

Family

ID=43386474

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2010/060348 WO2010150704A1 (ja) 2009-06-22 2010-06-18 処理ノード選択システム、情報処理ノード、処理実行方法およびプログラム

Country Status (3)

Country Link
US (1) US20120102086A1 (ja)
JP (1) JP5565412B2 (ja)
WO (1) WO2010150704A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013257750A (ja) * 2012-06-13 2013-12-26 Nippon Telegr & Teleph Corp <Ntt> 分散実行システム、方法、装置およびプログラム

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105808347B (zh) * 2014-12-31 2018-11-09 北京神州泰岳软件股份有限公司 集群服务器部署计算方法及装置
US11019178B1 (en) * 2019-01-07 2021-05-25 West Corporation Deployment router based on channel traffic

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000076172A (ja) * 1998-08-28 2000-03-14 Toshiba Corp 分散システム
JP2005115685A (ja) * 2003-10-08 2005-04-28 Nippon Telegr & Teleph Corp <Ntt> 分散計算システムおよびその負荷分散方法
JP2005310120A (ja) * 2004-03-23 2005-11-04 Hitachi Ltd 計算機システム及びタスク割当方法

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5177480A (en) * 1988-12-07 1993-01-05 British Telecommunications Public Limited Company Data communication having transmitter-controlled mode switching from compressed-to-transparent mode but local synchronous transmitter-controlled and receiver-controlled mode switching from transparent-to-compressed mode
US7898442B1 (en) * 1997-05-30 2011-03-01 International Business Machines Corporation On-line data compression analysis and regulation
US6427149B1 (en) * 1999-09-09 2002-07-30 Herman Rodriguez Remote access of archived compressed data files
JP2001275112A (ja) * 2000-01-19 2001-10-05 Oki Electric Ind Co Ltd データ圧縮装置
US6826152B1 (en) * 2000-09-13 2004-11-30 Harris Corporation System and method of conserving bandwidth in the transmission of message packets
US6411228B1 (en) * 2000-09-21 2002-06-25 International Business Machines Corporation Apparatus and method for compressing pseudo-random data using distribution approximations
JP2003271572A (ja) * 2002-03-14 2003-09-26 Fuji Photo Film Co Ltd 処理分散制御装置、分散処理システム、処理分散制御プログラム、処理分散制御方法
US7111142B2 (en) * 2002-09-13 2006-09-19 Seagate Technology Llc System for quickly transferring data
US20040103215A1 (en) * 2002-11-26 2004-05-27 Bmc Software, Inc. Selective compression of web-based data transmissions
US8767704B2 (en) * 2003-10-17 2014-07-01 Nokia Solutions And Networks Oy Compressing header data
US7664763B1 (en) * 2003-12-17 2010-02-16 Symantec Operating Corporation System and method for determining whether performing a particular process on a file will be useful
US7412099B2 (en) * 2004-01-14 2008-08-12 Xerox Corporation System and method for controlling compression ratio and image quality of binary images
US7783781B1 (en) * 2005-08-05 2010-08-24 F5 Networks, Inc. Adaptive compression
US7877517B2 (en) * 2005-11-09 2011-01-25 International Business Machines Corporation Determining whether to compress data transmitted over a network
JP2008010956A (ja) * 2006-06-27 2008-01-17 Toshiba Corp 情報処理装置及びその制御方法
FR2907624B1 (fr) * 2006-10-24 2009-02-20 Alcatel Sa Dispositif de compression a adaptation de compression en fonction du medium de transport, et dispositif de decompression associe, pour des equipements de communication
US8417833B1 (en) * 2006-11-29 2013-04-09 F5 Networks, Inc. Metacodec for optimizing network data compression based on comparison of write and read rates
US20080228998A1 (en) * 2007-03-16 2008-09-18 Spansion Llc Memory storage via an internal compression algorithm
US8295615B2 (en) * 2007-05-10 2012-10-23 International Business Machines Corporation Selective compression of synchronized content based on a calculated compression ratio

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000076172A (ja) * 1998-08-28 2000-03-14 Toshiba Corp 分散システム
JP2005115685A (ja) * 2003-10-08 2005-04-28 Nippon Telegr & Teleph Corp <Ntt> 分散計算システムおよびその負荷分散方法
JP2005310120A (ja) * 2004-03-23 2005-11-04 Hitachi Ltd 計算機システム及びタスク割当方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013257750A (ja) * 2012-06-13 2013-12-26 Nippon Telegr & Teleph Corp <Ntt> 分散実行システム、方法、装置およびプログラム

Also Published As

Publication number Publication date
JPWO2010150704A1 (ja) 2012-12-10
US20120102086A1 (en) 2012-04-26
JP5565412B2 (ja) 2014-08-06

Similar Documents

Publication Publication Date Title
JP7029471B2 (ja) アップリンクデータ解凍、圧縮方法および装置
US7246177B2 (en) System and method for encoding and decoding data files
US7460032B2 (en) Methods and apparatus for performing adaptive compression
US9888048B1 (en) Supporting millions of parallel light weight data streams in a distributed system
RU2377670C2 (ru) Сжатие данных
CA2689876C (en) Determination of compression state information for use in interactive compression
US11099891B2 (en) Scheduling requests based on resource information
CA2689881C (en) Interactive compression with multiple units of compression state information
MXPA03010478A (es) Sistema y metodo para utilizar memorias intermedias comprimidas en paquetes para comunicaciones mejoradas de cliente-servidor.
US10708378B2 (en) Data processing method and apparatus, server, and controller
US8502710B2 (en) Methods and computer program products for providing a compressed circular buffer for efficient storage of network performance data
CN106156037B (zh) 数据处理方法、装置及系统
JPWO2014061481A1 (ja) 適応的圧縮アルゴリズムを用いたデータ転送装置及びデータ転送システム
US8516156B1 (en) Adaptive compression
US8724693B2 (en) Mechanism for automatic network data compression on a network connection
US20070288556A1 (en) System and Method for Encoding and Decoding Data Files
CN105408871A (zh) 用于提供冗余数据访问的方法和装置
JP5565412B2 (ja) 処理ノード選択システム、情報処理ノード、処理ノード決定方法およびプログラム
US10565182B2 (en) Hardware LZMA compressor
GB2508403A (en) Request queue scheduler based on deadlines
US10154116B1 (en) Efficient synchronization of locally-available content
US10728291B1 (en) Persistent duplex connections and communication protocol for content distribution
CN106790320A (zh) 一种多应用系统间数据推送的方法
CA2689882A1 (en) Synchronization of side information caches
CA2689873A1 (en) Method and apparatus for multi-part interactive compression

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 10792022

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2011519852

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 13379849

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 10792022

Country of ref document: EP

Kind code of ref document: A1