WO2021187194A1 - Distributed processing system, control method for distributed processing system, and control device for distributed processing system - Google Patents

Distributed processing system, control method for distributed processing system, and control device for distributed processing system Download PDF

Info

Publication number
WO2021187194A1
WO2021187194A1 PCT/JP2021/008961 JP2021008961W WO2021187194A1 WO 2021187194 A1 WO2021187194 A1 WO 2021187194A1 JP 2021008961 W JP2021008961 W JP 2021008961W WO 2021187194 A1 WO2021187194 A1 WO 2021187194A1
Authority
WO
WIPO (PCT)
Prior art keywords
block
node
processing system
worker
distributed processing
Prior art date
Application number
PCT/JP2021/008961
Other languages
French (fr)
Japanese (ja)
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 JP2022508224A priority Critical patent/JP7435735B2/en
Publication of WO2021187194A1 publication Critical patent/WO2021187194A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers

Definitions

  • the embodiments described later relate to, for example, a distributed processing system, a distributed processing system control method, and a distributed processing system control device.
  • a distributed processing system consisting of two or more computers.
  • distributed parallel processing in which a job requested to be executed is deployed to a plurality of nodes and executed in parallel can be executed.
  • the parallel distributed storage used in a distributed processing system can store data called blocks in which one file is divided into a certain size (for example, 128 MB).
  • Parallel distributed storage may consist of two or more nodes or computers.
  • Parallel distributed storage can, for example, duplicate blocks into three blocks and distribute them across multiple nodes.
  • the block to be processed of the job requested to be executed is stored on the certain node, the block can be read from the storage of this node. Further, if the block to be processed does not exist on the certain node, the transfer of the block may be requested to another node having the block to be processed.
  • network transfer of blocks can occur when the processing target block does not exist on the node that executes the job. If the network transfer of blocks occurs frequently, the performance of the entire distributed processing system may deteriorate due to the increase in network load.
  • a large number of users may access the distributed processing system at the same time and a large number of jobs may be executed.
  • many jobs may be executed on a node other than the node where the block to be processed is stored.
  • network transfer of the block to be processed may occur frequently. Therefore, the amount of data transfer may increase in the entire cluster constituting the distributed processing system.
  • Patent Document 4 may be related to a "distributed system". However, the overall architecture of Patent Document 4 cannot eliminate the increase in network load as described above.
  • the blocks of the movement source and the movement destination may be exchanged (Fig. 4, paragraphs 0034 to 0036, etc.).
  • the blocks are simply replaced, if a large number of accesses occur to a certain block at the same time, the access can be concentrated on a specific node that stores the block.
  • a large number of access requests may cause a bottleneck or a delay in response.
  • Patent Document 4 also describes an example of Apache Hadoop replication. However, Patent Document 4 merely replaces the blocks, as shown in step 47 of FIG. Patent Document 4 may refer to Apache Hadoop's replication policy at the time of this exchange. That is, Patent Document 4 merely discloses that the blocks are exchanged. In Patent Document 4, when a large amount of access occurs to a certain block by simultaneous connection, there is a possibility that the access is concentrated on a specific node having the block. In fact, Patent Document 4 does not disclose or suggest when to perform replication.
  • JP-A-2017-191387 JP-A-2017-016404 Special Table 2015-532997 Japanese Unexamined Patent Publication No. 2014-186364 Japanese Unexamined Patent Publication No. 2004-126716
  • a distributed processing system refers to the number of block transfers in the distributed processing system stored in the total block transfer information, selects the block to be replicated, and sends a request to create a duplicate of the block, the master node and the master. It may include a first worker node that receives a request to create a duplicate of a block from a node and sends a block, and a second worker node that receives a block and stores a duplicate of the block. ..
  • control method of a distributed processing system is a control method of a distributed processing system including a master node and a worker node, and is a replication target by referring to the number of block transfers in the distributed processing system stored in the total block transfer information. It may include selecting a block and storing a duplicate of the block.
  • control device in a distributed processing system refers to the number of block transfers in the distributed processing system stored in the total block transfer information, selects the block to be duplicated, and sends a request to create a duplicate of the block to the worker node. You may.
  • the network transfer of blocks can be suppressed and the network load can be suppressed.
  • this does not limit the scope of the present application or the present invention.
  • FIG. 15 is a diagram showing an example of a distributed processing system.
  • the distributed processing system or cluster server system shown in FIG. 15 may be composed of a master node and at least one worker node.
  • the master node is a control device or computer that manages the resources of the entire cluster server system.
  • the master node includes a cluster resource management unit and a cluster data management unit.
  • the master node has a master node storage for storing block position information.
  • a worker node is a computer connected to a master node via a network. Worker nodes execute jobs and store data.
  • the worker node includes a job execution management unit, a data management unit, and a data communication unit.
  • the worker node has worker node storage.
  • data is distributed and stored in a plurality of worker nodes (1 to n, n is a natural number of 1 or more).
  • This distributed processing system / cluster server system performs parallel distributed processing of jobs.
  • the client is a computer connected to this distributed processing system / cluster server system via a network.
  • the cluster server system of FIG. 15 executes a job in response to a request from a client.
  • Figures 16 and 17 are diagrams illustrating the operation of parallel distributed processing of jobs.
  • the client sends a job execution request to the master node (Fig. 16, "1. Request job execution").
  • the master node receives the request from the client.
  • the master node selects a worker node that has sufficient resources to start the job management process in order to execute the job corresponding to the received request.
  • a job can include multiple jobs that can be run in parallel.
  • the master node determines the jobs to assign to the selected worker node.
  • the master node requests the selected worker node to start the job management process (Fig. 16, "2. Assign the start of the job management process").
  • the job execution management department of the worker node that received the request starts the job management process (Fig. 16, "3. Job management process start”).
  • the started job management process acquires the resources for executing the job assigned from the master node from the master node (Fig. 17, “4. Request job execution resource”, "5. Job execution resource”. Get “).
  • the worker node that executes the job is selected, the job is assigned to the selected worker node, and the job is executed in parallel.
  • parallel distributed storage in a distributed processing system will be described.
  • one file is divided into data of a predetermined size (for example, 128MB).
  • the divided data is called a block.
  • blocks are replicated (eg, 3 replicates) and stored on a worker node.
  • FIG. 18 is a schematic diagram showing the processing when the client requests the distributed processing system to write a file.
  • the client requests the master node to write the file to the cluster server system. At this time, the client notifies the master node of the size of the file to be written.
  • the cluster data management unit of the master node receives the request from the client (Fig. 18, "1. Request to write to").
  • the cluster data management unit calculates how many blocks are divided. If the size of the file is 384MB, you can see that this file is divided into 3 blocks.
  • the cluster data management unit randomly selects three worker nodes. For example, the cluster data management unit selects worker nodes 1, 2, and 3.
  • the cluster data management unit sends the information of the worker node to be written to the client.
  • the client receives the information of the worker node to be written from the cluster data management unit (Fig. 18, "2. Notify the write destination").
  • the client requests the data management unit of the write destination worker node (1, 2, and 3) to write the divided file (block) (Fig. 18, "3. Request to write the divided block").
  • the worker node that receives the write request writes a block to its own worker node storage.
  • the worker node also requests other worker nodes to write the duplicated block.
  • worker node 1 requests worker node 2 to write a duplicate.
  • the number of duplicates may be a predetermined number.
  • the duplicate writing may be a predetermined writing destination. In this way, the cluster server system creates duplicates of a predetermined number of blocks and stores them in a plurality of worker nodes in a distributed manner.
  • FIG. 19 is a schematic diagram of job execution in the distributed processing system / cluster server system. Jobs running in the distributed processing system refer to the blocks stored in the distributed processing system. If the block referenced by the job is stored on the worker node where the job is running, read the block from the worker node storage of this worker node. On the other hand, if the block referenced by the job is not stored on the worker node on which the job is executed, the process of transferring the block from the worker node that stores the block referenced by the job is performed. FIG. 19 shows this process. If the worker node 2 on which the job is executed does not have block B referenced by the job, for example, worker node 2 requests worker node 3 to send block B. Worker node 3 sends block B, and worker node 2 executes the job.
  • FIG. 1 is a schematic view showing a first embodiment of a distributed processing system. As shown in FIG. 1, this embodiment includes a client 1 and a cluster server system 2 (distributed processing system) to which the client 1 connects. In the following description, the part that overlaps with the above example of the distributed processing system is omitted.
  • the cluster server system 2 of FIG. 1 may be composed of a plurality of server machines.
  • each server machine may be a computer including a CPU 201, a memory 202, a storage 203 (HDD (hard disk drive) or SSD (solid state disk)), a transmitter / receiver 204, and the like.
  • An operating system (OS) is installed on each server machine.
  • each server machine may be either a physical machine or a virtual machine.
  • Each server machine may be a plurality of computers arranged in the same housing.
  • Each server machine may be arranged in different housings in whole or in part.
  • the server machines are connected to each other via a network, and all or part of them may be located at a remote location.
  • the server machine of the cluster server system 2 includes the master node 21 and the worker node group 22.
  • the master node 21 manages the entire resource of the cluster server system 2.
  • Each worker node 1 to n (n is a natural number) of the worker node group 22 executes a job and / or stores data (block).
  • the master node 21 may be composed of a plurality of master nodes.
  • the worker node group 22 is composed of a plurality of worker nodes 221 to 22n. “N” indicates that the number of worker nodes is n.
  • the master node 21 has a cluster resource management unit 211, a cluster data management unit 212, a block information collection unit 213 for the entire cluster, a block allocation determination unit 214, and a master node storage 215. These components are implemented as computer programs and may be executed by the CPU (central processing unit) of the master node 21.
  • the cluster resource management unit 211 manages the resources of the server machines of the entire cluster server system 2 in order to allocate jobs from worker nodes 1 to n at the time of job execution.
  • the cluster data management unit 212 manages the storage location of each block and the state including the free space of the worker node storage of each worker node.
  • the block information collection unit 213 of the entire cluster collects and saves the block transfer information 22151 and the block read information 22152, which will be described later, from the worker node group 22.
  • the block allocation determination unit 214 determines a block for which the number of duplicates needs to be increased or decreased, and gives a replication instruction to the corresponding worker node.
  • the master node storage 215 is, for example, a storage device such as an HDD or SSD.
  • the master node storage 215 has block position information 2151, total block transfer information 2152, and total block read information 2153.
  • the block position information 2151 is information indicating in which worker node the blocks constituting the file are stored for each file stored in the cluster server system 2.
  • the total block transfer information 2152 is information that records the number of times a block transfer has occurred between worker nodes in the entire cluster server system 2.
  • the whole block read information 2153 is information that records the number of times of reading for each block in the entire cluster server system 2.
  • the worker node 221 has a job execution management unit 2211, a data management unit 2212, a data communication unit 2213, a block information collection unit 2214, and a worker node storage 2215.
  • the job execution management unit 2211 assigns and executes jobs.
  • the data management unit 2212 reads and writes blocks.
  • the data communication unit 2213 transfers the block to another node.
  • the block information collection unit 2214 will be described later.
  • Worker node storage 2215 of worker node 221 stores blocks. Further, the worker node storage 2215 stores the block transfer information 22151 and the block read information 22152.
  • the block transfer information 22151 is information that records the number of times the block has been transferred from the worker node 1 to another worker node.
  • the block read information 22152 is information that records the number of times each block is read.
  • the block information collection unit 2214 collects block transfer information 22151 and block read information 22152.
  • the block information collection unit 2214 transmits the block transfer information 22151 and the block read information 22152 to the block information collection unit 213 of the entire cluster of the master node 21. This transmission may be performed, for example, at predetermined time intervals. Alternatively, this transmission may be performed in response to an instruction from the administrator of the cluster server system (cluster server management system) 2.
  • Worker nodes 222 to 22n have the same configuration as worker nodes 221. Further, the cluster server system 2 may be configured so that the worker node storage 2215 possessed by the worker nodes 221 to 22n can be logically treated as one file system from the viewpoint of the client. As a result, distributed storage can be realized. Each worker node storage may have one or more HDDs or SSDs. Each worker node storage may be configured to access network storage or storage area networks.
  • the processing flow of the cluster server system 2 in this embodiment will be described.
  • the data (block) is already stored in all or a part of the worker nodes of the worker node group 22.
  • FIG. 2 is a timing chart showing the timing when the processing described later is executed.
  • the block allocation determination unit 214 of the master node 21 may execute the block replication number increase / decrease process (block allocation determination) at a timing specified by the user. This timing may be, for example, midnight every 24 hours.
  • the block allocation determination unit 214 of the master node 21 may execute the block replication number increase / decrease process (block allocation determination) when a user's instruction is input.
  • the block allocation determination unit 214 of the master node 21 detects that the usage rate of the worker node storage 2215 of at least one worker node has reached a predetermined threshold value in the block replication number increase / decrease process (block allocation determination). You may execute it at the time. This predetermined threshold may be, for example, 90%. Alternatively, the user may specify this predetermined threshold.
  • the block information collection unit 213 of the entire cluster of the master node 21 is stored in the total block transfer information 2152 and the total block read information 2153 when the block replication number increase / decrease process (block allocation determination) is executed. You may reset the existing value to zero. This reset process may be executed every time when the block duplication number increase / decrease process (block allocation determination) is executed, or every predetermined number of times. Alternatively, this reset process may be executed when an instruction from the user is input.
  • the number of block transfers is counted at each worker node after the block replication number increase / decrease process (block allocation determination) is executed until the next block replication number increase / decrease process (block allocation determination) is executed.
  • the block transfer information 2152 is updated.
  • Block read count is counted at each worker node until the next block replication number increase / decrease process (block allocation determination) is executed.
  • Block read information 2153 is updated.
  • FIG. 3 is a diagram showing an example of the entire block transfer information 2152.
  • the total block transfer information 2152 is information for recording the number of times a block transfer has occurred between worker nodes in the entire cluster server system 2.
  • A, B, C, ... In FIG. 3 may be block identification information.
  • FIG. 3 shows that block B was transmitted 12 times from worker node 223 (“# 3” in FIG. 3) to another worker node.
  • FIG. 3 shows that block D was sent twice from worker node 225 (“# 5” in FIG. 3) to another worker node.
  • FIG. 4 is a diagram showing an example of the whole block read information 2153.
  • the whole block read information 2153 is information for recording the number of times each block is read in the entire cluster server system 2.
  • Figure 4 shows, for example, that block B was read 20 times across the cluster server system 2.
  • FIGS. 5 and 6 are diagrams for explaining the process of acquiring the block transfer information 22151 stored in the worker node storage 2215 in the worker nodes 221 to 22n.
  • the block transfer information 22151 is information that records the number of times the block has been transferred to another worker node.
  • the block transfer information 22151 may be information such as a table in which block information such as identification information related to a block and the number of transfers are associated with each other. For example, suppose a job is running on worker node 222. If the worker node 222 does not store the block B to be processed by this job, the data communication unit of the worker node 223 having the block B transmits the block B to the data communication unit of the worker node 222.
  • the data communication unit of the worker node 223 notifies the block information collection unit of the worker node 223 that the block B has been transmitted.
  • the block information collection unit of the worker node 223 recognizes or confirms that the block transmission has been made from the data transfer unit of the worker node 223 (step A1 in FIG. 6).
  • the block information collection unit of the worker node 223 accesses and updates / stores the block transfer information of the worker storage node in order to increase the count of the number of transfers of the transmitted block B (step A2 in FIG. 6).
  • the above processing is the same for other worker nodes.
  • FIGS. 7 and 8 are diagrams for explaining the process of acquiring the block read information 22152 stored in the worker node storage 2215 in the worker nodes 221 to 22n.
  • the block read information is information that records the number of times of reading for each block.
  • the block read information may be information such as a table in which block information such as an identifier related to a block is associated with the number of times the block is read. For example, when the data management unit in the worker node 223 reads the block B from the worker storage node, the data management unit notifies the block information collection unit to read the block B. The block information collection unit recognizes / confirms the block information of the read block B (step B1 in FIG. 8).
  • the block information collecting unit accesses and updates / stores the block read information of the worker storage node of the worker node 223 (step B2 in FIG. 8).
  • the above processing is performed in the same manner for other worker nodes.
  • FIG. 9 and 10 are diagrams showing a process in which the master node 21 collects the block transfer information and the block read information of the worker nodes 221 to 22n.
  • the block information collection unit transmits the block transfer information and the block read information stored in the worker node storage to the block information collection unit 213 of the entire cluster of the master node 21 (step in FIG. 10).
  • This transmission process may be executed at a predetermined date and time, for example, every day at midnight. Alternatively, this transmission process may be executed when the cluster server system 2 inputs an instruction from the user or the administrator.
  • the block information collection unit 213 of the entire cluster saves / stores the block transfer information received from each worker node 221 to 22n in the overall block transfer information 2152 of the master node storage 215 (step C2 in FIG. 10).
  • the block information collection unit 213 of the entire cluster stores / stores the block read information received from each worker node 221 to 22n in the overall block read information 2153 of the master node storage 215 (step C2 in FIG. 10).
  • the timing at which the worker nodes 221 to 22n transmit the block transfer information and the block read information to the master node 21 may be set by the user or the administrator. Further, after these are transmitted, the values of the block transfer information and the block read information stored in the worker node storage of the worker nodes 221 to 22n may be reset to zero. Alternatively, the worker nodes 221 to 22n may reset the block transfer information and the block read information stored in the worker node storage to zero when the block transfer information and the block read information are transmitted a predetermined number of times.
  • FIG. 11 is a schematic view showing the processing of the block allocation determination unit 214.
  • the code number of the component of FIG. 11 is the same as the code number of the component of FIG. In FIG. 11, some code numbers are omitted to make the drawings easier to see.
  • the master node storage 215 of the master node 21 stores / stores the entire block read information 2153 and the entire block transfer information 2152.
  • the block allocation determination unit 214 determines the blocks to be duplicated and deleted by referring to the total block read information 2153 and the total block transfer information 2152 (step S1101 in FIG. 11).
  • the block allocation determination unit 214 determines to generate a duplicate of the block B.
  • the block allocation determination unit 214 decides to delete the block A.
  • the block allocation determination unit 214 transmits / outputs a replication instruction and / or a deletion instruction to the data management unit of the worker node.
  • the block allocation determination unit 214 transmits / outputs a replication instruction to the data management unit of the worker node 223 (step S1102 in FIG. 11). In FIG. 11, the block allocation determination unit 214 transmits / outputs a deletion instruction to the data management unit of the worker node 22n (step S1103 in FIG. 11).
  • the block allocation determination unit 214 determines that block B is a replication target (step S1101 in FIG. 11).
  • Worker node 223 is a worker node in which block B is stored.
  • Worker node 222 is a worker node in which block B is not stored.
  • the data management unit of the worker node 223 reads the block B from the worker node storage.
  • the data management unit of the worker node 223 transmits the read block B to the data management unit of the worker node 222, and requests that the number of duplicates of the block B be stored (increased) by one.
  • the data management unit of the worker node 222 receives the block B from the data management unit of the worker node 223, and stores a copy of the block B in the worker node storage.
  • block A contains, for example, four duplicates because it was determined to be frequently used in the past.
  • the block allocation determination unit 214 of the master node 21 determines, for example, that the frequency of use of the block A has decreased. In this case, the block allocation determination unit 214 of the master node 21 determines that the number of duplicates of the block A should be deleted by one.
  • the data management unit of the worker node 22n deletes the block A from the worker node storage (FIG. 11). Step S1105).
  • FIG. 12 is a flowchart illustrating the process of FIG. 11 in detail.
  • FIG. 12 shows the processing flow of the block allocation determination unit 214. First, the process of increasing the number of duplicate blocks will be described (steps E1 to E6 in FIG. 12).
  • the block allocation determination unit 214 of the master node 21 reads the entire block transfer information 2152 stored / stored in the master node storage 215.
  • the block allocation determination unit 214 aggregates the total block transfer information 2152. In this aggregation process, the block allocation determination unit 214 may calculate the maximum value between the number of transfers for each block and each worker node in the total block transfer information 2152. Alternatively, the block allocation determination unit 214 may calculate the average value for each block.
  • the block allocation determination unit 214 selects a block whose aggregated value is equal to or greater than a threshold value (hereinafter referred to as a replication threshold value) as a replication target (step E1 in FIG. 12).
  • the user or administrator of the master node 21 may preset this replication threshold. Instead of using the replication threshold, for example, the block allocation determination unit 214 may target a predetermined number of blocks having a higher transfer count as a replication target.
  • FIG. 13 is a diagram showing an example of the process of step E1 in FIG.
  • the block allocation determination unit 214 aggregates the entire block transfer information 2152 and obtains the aggregation result (maximum value for each block and each worker node).
  • the aggregation result of block A is “6”. This indicates that the maximum number of transfers of block A is 6.
  • the aggregation result of block C is “4”. This indicates that the maximum number of transfers in block C is four.
  • the entire block transfer information 2152 may also store the block number.
  • the block number may be a unique number in the cluster server system 2. For example, assume that the block number of block A is "345".
  • the entire block transfer information 2152 may store "345" in association with "A". Based on this block number, the block allocation determination unit 214 may take correspondence with the information regarding the block stored in the block position information 2151 of FIG.
  • the replication threshold is set to 10.
  • the block allocation determination unit 214 selects blocks B and E having a replication threshold of 10 or more as the replication target blocks.
  • the block allocation determination unit 214 selects the selected blocks to be duplicated one by one (step E2 in FIG. 12).
  • the block allocation determination unit 214 refers to the block position information 2151 indicating the location of the selected block in the worker node.
  • the block allocation determination unit 214 calculates the current number of duplicates of the selected block (duplicate target block) (step E3 in FIG. 12).
  • FIG. 14 is a diagram showing an example of block position information 2151.
  • "/user/user1/employee.txt” is a file name including a file path.
  • This file path may be the path seen by the user (client) in the cluster server system 2.
  • FIG. 14 shows that this file is composed of three blocks. Let each block name be block A, block B, and block C.
  • the block A may correspond to the block number 345 which is the identification information of the block.
  • the block position information includes the block name.
  • a block number may be used instead of the block name to identify the block.
  • the block number may be a unique number in the cluster server system 2.
  • the path of the file including the file name and the block number may be used in combination.
  • FIG. 14 shows that block A and its replicas are stored in worker nodes 221, 222, 223, 224.
  • worker node 221 is represented as "1" for simplicity. The same applies to other worker nodes.
  • FIG. 14 shows that block B and its replicas have information such as being stored on worker nodes 221, 223, 224.
  • the block allocation determination unit 214 refers to the block position information in FIG. 14, and it can be seen that, for example, a total of four blocks A are stored. That is, the block allocation determination unit 214 calculates the current number of duplicates of block A as 4. The current number of duplicates can be calculated for other blocks as well (step E3 in Figure 12).
  • the block allocation determination unit 214 may use the block allocation determination unit 214.
  • the duplicate of the block to be duplicated may not be created (step E4 in FIG. 12). For example, if the selected block (replication target block) is already stored in all worker nodes, it can be wasted if this block is further duplicated. By this determination, such useless duplication can be avoided. As a result, the utilization rate of worker node storage can be improved in the entire cluster server system 2.
  • the default value of the number of duplicates may be preset by the user or the administrator.
  • the default value of the number of duplicates may be, for example, half the number of worker nodes.
  • the default value of the number of duplicates may be, for example, 0 (zero). In this case, replication can always be created until it is equal to the number of worker nodes.
  • the block allocation determination unit 214 indicates that the current number of duplicates of the selected block (block to be duplicated) calculated from the block position information 2151 is larger than the default value of the number of duplicates (duplicate). It is also possible not to make a duplicate of the block to be duplicated within the default number ⁇ current number of duplicates).
  • the block allocation determination unit 214 selects all the worker nodes that do not store the block to be duplicated. Only one block can be duplicated per node. In this process, the block allocation determination unit 214 may refer to the block position information. The block allocation determination unit 214 inquires whether or not the selected worker node has sufficient free space for storing the selected block (replication target block) in the worker node storage. Based on the result of this inquiry, the block allocation determination unit 214 stores a copy of the selected block (replication target block) in a worker node having sufficient free space for storing the selected block (replication target block). Candidate worker node for.
  • the block allocation determination unit 214 randomly selects one worker node from the candidate worker nodes.
  • the block allocation determination unit 214 may select the worker node having the largest free space in the worker node storage.
  • the block allocation determination unit 214 may create a list of candidate worker nodes and select one worker node using a predetermined random number. Alternatively, instead of a random number, the current time may be acquired in microseconds, and a number having a predetermined number of digits at the end may be used.
  • the selected worker node is set as the storage destination worker node.
  • the block allocation determination unit 214 refers to the block position information and sets one of the worker nodes in which the selected block (replication target block) is already stored as the source worker node. When there are a plurality of worker nodes in which the selected block (replication target block) is already stored, the block allocation determination unit 214 may arbitrarily select one of them. For example, the block allocation determination unit 214 may select the worker node located at the head in the example of FIG. For example, the block allocation determination unit 214 may transmit a signal such as a ping to each worker node and select the node for which the reply is received within the earliest time.
  • the block allocation determination unit 214 requests the source worker node to send the selected block (replication target block) to the storage destination worker node.
  • the block allocation determination unit 214 requests the storage destination worker node to store the selected block (replication target block).
  • the source worker node sends the selected block (replication target block) to the storage destination worker node.
  • the storage destination worker node receives the block (replication target block) selected from the source worker node, and stores the selected block (replication target block) (step E5 in FIG. 12).
  • the block allocation determination unit 214 repeats the above processing for all the blocks selected in step E2 of FIG. 12 (step E6 of FIG. 12).
  • the block allocation determination unit 214 selects the target block for which the number of duplicates is to be reduced.
  • the block allocation determination unit 214 refers to the block position information 2151 and extracts blocks having a larger number of duplicates than the default value.
  • FIG. 14 shows an example of block position information 2151.
  • the block allocation determination unit 214 refers to the block position information 2151 and counts the number of worker nodes (nodes) in which the blocks and their duplicates are stored for each block. As described in the process of increasing the number of duplicate blocks (steps E1 to E6 in FIG. 12), only one block duplicate can be created per node. Therefore, if the number of nodes is counted, the number of blocks and their duplications is counted.
  • the block allocation determination unit 214 compares the number of blocks and their duplicates with the default value for each block. When the block allocation determination unit 214 determines that the number is greater than the default value, the block allocation determination unit 214 extracts the corresponding block.
  • This default value may be a number preset by the user. This default value is set when the block allocation determination unit 214 starts the process of reducing the number of duplicate blocks when the usage rate of the worker storage of the entire cluster server system 2 is larger than a predetermined threshold value such as 90%. You may divide 1 from the default value.
  • the extracted blocks may be multiple.
  • the block allocation determination unit 214 may exclude the copy target block selected in step E1 of FIG. 12 from the deletion target in advance (step E7 of FIG. 12).
  • the block allocation determination unit 214 refers to the block read information 2153 of the entire cluster and acquires the number of times the extracted block is read (step E8 in FIG. 12).
  • the block allocation determination unit 214 determines whether or not the number of readings is equal to or less than the threshold value (hereinafter referred to as READ threshold value) for each of the extracted blocks (step E9 in FIG. 12).
  • the block allocation determination unit 214 refers to the block position information and randomly selects a worker node in which such a block is stored. In this process, for example, the block allocation determination unit 214 may create a list of candidate worker nodes and select one worker node using a predetermined random number. Alternatively, instead of a random number, the current time may be acquired in microseconds, and a number having a predetermined number of digits at the end may be used. Alternatively, the block allocation determination unit 214 may select the worker node having the smallest free space in the worker node storage.
  • the block allocation determination unit 214 requests the selected worker node to delete the block to be deleted.
  • the selected worker node receives the request from the block allocation determination unit 214 and deletes the corresponding block (step E10 in FIG. 12).
  • the block allocation determination unit 214 executes this process for each extracted block.
  • the READ threshold may be specified by the user.
  • the cluster server system 2 can determine the frequency of use of the block based on the number of reads. Cluster server system 2 may delete blocks that are determined to be underutilized. As a result, the storage of the entire system can be effectively used. On the other hand, the cluster server system 2 can determine that the blocks above the READ threshold are frequently used. Cluster server system 2 can maintain the number of replicas without deleting such blocks. As a result, the cluster server system 2 can read frequently accessed files at high speed.
  • the order of the process of increasing the number of duplicate blocks and the process of decreasing the number of duplicate blocks may be reversed.
  • the process of increasing the number of duplicates of a block and the process of decreasing the number of duplicates of a block may be executed separately and independently.
  • FIG. 20 shows an example of a computer configuration.
  • the above-mentioned node, worker node, master node and the like may have the same or similar configuration as that in FIG.
  • the configuration of FIG. 20 may include a CPU (central processing unit), memory, storage, and transmitter / receiver.
  • the storage can be an HDD (hard disk drive, hard disk) or SSD (solid state drive). Storage may include a storage area network. Multiple computers may share storage.
  • the storage may include storage on the network or a storage area network.
  • the computer of FIG. 20 may further include an optical drive or a magnetic recording device.
  • the transmitter / receiver may be 10BASE-T, 1000BASE-T, a wireless communication device, an optical communication device, or the like.
  • the computer may be a general purpose computer.
  • the computer may include an OS (operating system).
  • the computer may be composed of a plurality of computers.
  • the computer may include a plurality of execution environments on one computer.
  • the above embodiments may be implemented by
  • FIG. 21 is a diagram showing a control device (master node 31) of the distributed processing system according to the present embodiment.
  • the master node 31 includes a selection means 311 for selecting a block to be replicated, and a request means 312 for sending a request to create a duplicate of the block to the worker node.
  • FIG. 22 is a flowchart showing the processing flow of the control device (master node 31) of the distributed processing system of FIG. 21.
  • the selection means 311 selects the block to be duplicated (step E11 in FIG. 22).
  • Request means 312 sends a replication request to the worker node (step E12 in FIG. 22).
  • the first aspect refers to the number of block transfers in the distributed processing system stored in the total block transfer information, selects the block to be replicated, and sends a request to create a duplicate of the block, the master node and the master.
  • Distributed including a first worker node that receives a request from a node to create a duplicate of the block and sends the block, and a second worker node that receives the block and stores the duplicate of the block. It can be a processing system.
  • the second aspect is the above-mentioned distributed processing system, in which the master node refers to the number of worker nodes in which each block is stored obtained from the block position information and sends a request for making a duplicate of the block. It can be a distributed processing system that determines whether or not.
  • the third aspect is the above-mentioned distributed processing system, in which the master node creates duplicates of blocks when the number of duplicates of the block to be replicated is more than a predetermined number and less than the number of all worker nodes. It can be a distributed processing system that sends requests for.
  • the fourth aspect is the above-mentioned distributed processing system, which may be a distributed processing system in which the master node selects a worker node having free resources for creating a duplicate of a block as a second worker node.
  • the fifth aspect is the above-mentioned distributed processing system, which can be a distributed processing system in which the master node randomly selects a second worker node from among the worker nodes that do not store the block to be replicated.
  • the sixth aspect is the above-mentioned distributed processing system, in which the master node determines the block to be deleted by referring to the block position information indicated by the worker node in which each block is stored, and stores the block to be deleted. It can be a distributed processing system that selects a worker node in the field, sends a deletion request to a third worker node, and the third worker node receives the deletion request and deletes the block to be deleted.
  • the seventh aspect is the above-mentioned distributed processing system, in which the master node refers to the number of storage destination worker nodes of each block obtained from the block position information, and the number of storage destination worker nodes is a predetermined number. It could be a distributed processing system that sends a delete request to a third worker node when there are more.
  • the eighth aspect is the above-mentioned distributed processing system, which can be a distributed processing system in which the master node randomly selects a third worker node from the worker nodes that store the blocks to be deleted.
  • the ninth aspect is the control method of the distributed processing system including the master node and the worker node, and the block to be duplicated is selected by referring to the number of block transfers in the distributed processing system stored in the total block transfer information. It can be a control method that includes a step of performing and a step of storing a duplicate of the block.
  • the tenth aspect is the control device in the distributed processing system, which refers to the number of block transfers in the distributed processing system stored in the total block transfer information, selects the block to be duplicated, and creates a duplicate of the block. It can be a controller in a distributed processing system that sends requests to worker nodes.
  • the number of duplicates of the blocks to be processed frequently can be increased and stored in each worker node in a distributed manner. Therefore, the number of worker nodes having such blocks can be increased as a whole system. This can reduce the frequency of block transfers from other worker nodes.
  • the probability that the processing target block exists on the worker node on which the job is executed can be increased. Therefore, the job execution can be completed in a shorter time.
  • the duplicated block can be automatically deleted when the frequency of use of the block whose number of duplicates has already been increased decreases. Therefore, according to the above embodiment, it may be possible to prevent the storage resource from becoming tight in the entire cluster.
  • the present invention may be applied to a distributed processing system, a control method for a distributed processing system, and a control device for a distributed processing system.
  • Cluster resource management unit 212 Cluster data management unit 213 Block information collection unit 214 Block allocation judgment unit 215 Master node storage 221 Worker node 222 Worker node 223 Worker node 224 Worker node 225 Worker node 2151 Block position information 2152 Overall block transfer information 2153 Overall Block read information 2211 Job execution management unit 2212 Data management unit 2213 Data communication unit 2214 Block information collection unit 2215 Worker node storage 22151 Block transfer information 22152 Block read information

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Provided is a distributed processing system including: a master node that refers to the number of block transfers, stored in entire block transfer information, in the distributed processing system, selects a block to be copied, and transmits a request for creating a copy of the block; a first worker node that receives the request for creating a copy of the block from the master node, and transmits the block; and a second worker node that receives the block and stores a copy of the block.

Description

分散処理システム、分散処理システムの制御方法、及び、分散処理システムの制御装置Distributed processing system, distributed processing system control method, and distributed processing system control device
 後述の実施の形態は、例えば、分散処理システム、分散処理システム制御方法、及び、分散処理システム制御装置に関する。 The embodiments described later relate to, for example, a distributed processing system, a distributed processing system control method, and a distributed processing system control device.
 以下の開示は例示であり、本願や本発明の範囲を限定するものではない。 The following disclosure is an example and does not limit the scope of the present application or the present invention.
 一般に、2以上のコンピュータから構成される分散処理システムが利用されている。分散処理システムにおいては、例えば、実行を要求されたジョブを複数のノードにデプロイして並列実行させる、分散並列処理を実行し得る。分散処理システムで用いられる並列分散ストレージは、1つのファイルを一定のサイズ(例えば128 MB)に分割したブロックと呼ばれるデータを格納し得る。並列分散ストレージは、2以上のノード、もしくはコンピュータから構成されてもよい。並列分散ストレージは、例えば、ブロックを3個に複製し、複数のノードに分散配置し得る。 Generally, a distributed processing system consisting of two or more computers is used. In a distributed processing system, for example, distributed parallel processing in which a job requested to be executed is deployed to a plurality of nodes and executed in parallel can be executed. The parallel distributed storage used in a distributed processing system can store data called blocks in which one file is divided into a certain size (for example, 128 MB). Parallel distributed storage may consist of two or more nodes or computers. Parallel distributed storage can, for example, duplicate blocks into three blocks and distribute them across multiple nodes.
 あるノードにおいて、実行を要求されたジョブの処理対象のブロックが、そのあるノード上に格納されている場合、このノードのストレージからブロックを読み込み得る。また、そのあるノード上に処理対象のブロックが存在しない場合、処理対象ブロックを持つ他のノードにブロックの転送を要求し得る。 In a certain node, if the block to be processed of the job requested to be executed is stored on the certain node, the block can be read from the storage of this node. Further, if the block to be processed does not exist on the certain node, the transfer of the block may be requested to another node having the block to be processed.
 このように、ジョブを実行するノードに処理対象ブロックが存在しない時に、ブロックのネットワーク転送が発生し得る。ブロックのネットワーク転送が頻発する場合、ネットワーク負荷の増大のため、分散処理システム全体の性能が低下することがあり得る。 In this way, network transfer of blocks can occur when the processing target block does not exist on the node that executes the job. If the network transfer of blocks occurs frequently, the performance of the entire distributed processing system may deteriorate due to the increase in network load.
 例えば、大量ユーザが分散処理システムに同時アクセスし、大量のジョブが実行されることがあり得る。このような状況では、多くのジョブが処理対象ブロックの格納されているノード以外で実行されることがあり得る。こうした場合、処理対象ブロックのネットワーク転送が頻発し得る。このため、分散処理システムを構成するクラスタ全体でデータ転送量が多くなることがあり得る。 For example, a large number of users may access the distributed processing system at the same time and a large number of jobs may be executed. In such a situation, many jobs may be executed on a node other than the node where the block to be processed is stored. In such a case, network transfer of the block to be processed may occur frequently. Therefore, the amount of data transfer may increase in the entire cluster constituting the distributed processing system.
 後述の特許文献のうち、例えば、特許文献4は、「分散システム」に関連し得る。しかし、特許文献4の全体のアーキテクチャは、上記のようなネットワーク負荷の増大を解消し得るものではない。 Of the patent documents described below, for example, Patent Document 4 may be related to a "distributed system". However, the overall architecture of Patent Document 4 cannot eliminate the increase in network load as described above.
 特許文献4では、移動元と移動先のブロックを入れ替えるものであり得る(図4、段落0034から0036など)。しかし、単にブロックを入れ替えても、あるブロックに対して同時接続で大量のアクセスが発生する場合、そのブロックを格納する特定のノードにアクセスが集中し得る。特許文献4では、大量のアクセス要求により、ボトルネックや応答の遅延を発生する可能性がある。 In Patent Document 4, the blocks of the movement source and the movement destination may be exchanged (Fig. 4, paragraphs 0034 to 0036, etc.). However, even if the blocks are simply replaced, if a large number of accesses occur to a certain block at the same time, the access can be concentrated on a specific node that stores the block. In Patent Document 4, a large number of access requests may cause a bottleneck or a delay in response.
 特許文献4にはApache Hadoopのレプリケーションの例も記載されている。とはいえ、特許文献4は、図4のステップ47にもあるように、ブロックの交換を行うにすぎない。特許文献4は、この交換の際に、Apache Hadoopのレプリケーションポリシーを参照し得る。即ち、特許文献4は、ブロックの交換を行うことを開示するにすぎない。特許文献4においては、あるブロックに対して同時接続で大量のアクセスが発生する場合、そのブロックを持っている特定のノードにアクセスが集中する可能性がありえる。実際、特許文献4は、どのようなタイミングでレプリケーションを行うのかについて、開示も示唆もしていない。 Patent Document 4 also describes an example of Apache Hadoop replication. However, Patent Document 4 merely replaces the blocks, as shown in step 47 of FIG. Patent Document 4 may refer to Apache Hadoop's replication policy at the time of this exchange. That is, Patent Document 4 merely discloses that the blocks are exchanged. In Patent Document 4, when a large amount of access occurs to a certain block by simultaneous connection, there is a possibility that the access is concentrated on a specific node having the block. In fact, Patent Document 4 does not disclose or suggest when to perform replication.
 上述の開示は例示であり、本願や本発明の範囲を限定するものではない。 The above disclosure is an example and does not limit the scope of the present application or the present invention.
特開2017-191387号公報JP-A-2017-191387 特開2017-016404号公報JP-A-2017-016404 特表2015-532997号公報Special Table 2015-532997 特開2014-186364号公報Japanese Unexamined Patent Publication No. 2014-186364 特開2004-126716号公報Japanese Unexamined Patent Publication No. 2004-126716
 以下は例示であり、本願や本発明の範囲を限定するものではない。 The following is an example, and does not limit the scope of the present application or the present invention.
 一般に、分散処理システムにおいて、ブロックのネットワーク転送をできるだけ抑え、ネットワーク負荷を抑制することが好ましい。これにより、分散処理システムにおいて、システム全体の性能を向上させることができ得る。 In general, in a distributed processing system, it is preferable to suppress the network transfer of blocks as much as possible and suppress the network load. Thereby, in the distributed processing system, the performance of the entire system can be improved.
 上記の点は、本願や本発明の範囲を限定するものではない。 The above points do not limit the scope of the present application or the present invention.
 以下の記載は例示であり、本願や本発明の範囲を限定するものではない。 The following description is an example and does not limit the scope of the present application or the present invention.
 後述の実施の形態においては、例えば、分散処理システムが開示され得る。この分散処理システムは、全体ブロック転送情報に格納された分散処理システムにおけるブロックの転送回数を参照し、複製対象のブロックを選択し、ブロックの複製の作成の要求を送信する、マスタノードと、マスタノードからブロックの複製の作成の要求を受信してブロックを送信する、第1のワーカーノードと、ブロックを受信してブロックの複製を格納する、第2のワーカーノードと、を具備してもよい。 In the embodiment described later, for example, a distributed processing system can be disclosed. This distributed processing system refers to the number of block transfers in the distributed processing system stored in the total block transfer information, selects the block to be replicated, and sends a request to create a duplicate of the block, the master node and the master. It may include a first worker node that receives a request to create a duplicate of a block from a node and sends a block, and a second worker node that receives a block and stores a duplicate of the block. ..
 後述の実施の形態においては、例えば、分散処理システムの制御方法が開示され得る。この分散処理システムの制御方法は、マスタノードとワーカーノードとを含む分散処理システムの制御方法であって、全体ブロック転送情報に格納された分散処理システムにおけるブロックの転送回数を参照して複製対象のブロックを選択することと、ブロックの複製を格納することと、を具備してもよい。 In the embodiment described later, for example, a control method of a distributed processing system can be disclosed. The control method of this distributed processing system is a control method of a distributed processing system including a master node and a worker node, and is a replication target by referring to the number of block transfers in the distributed processing system stored in the total block transfer information. It may include selecting a block and storing a duplicate of the block.
 後述の実施の形態においては、例えば、分散処理システムにおける制御装置が開示され得る。この制御装置は、全体ブロック転送情報に格納された分散処理システムにおけるブロックの転送回数を参照し、複製対象のブロックを選択し、ブロックの複製の作成の要求をワーカーノードへ送信する、ものであってもよい。 In the embodiment described later, for example, a control device in a distributed processing system can be disclosed. This control device refers to the number of block transfers in the distributed processing system stored in the total block transfer information, selects the block to be duplicated, and sends a request to create a duplicate of the block to the worker node. You may.
 上記の点は、本願や本発明の範囲を限定するものではない。 The above points do not limit the scope of the present application or the present invention.
 後述の実施の形態によれば、例えば、分散処理システムにおいて、ブロックのネットワーク転送を抑え、ネットワーク負荷を抑制し得る。ただし、これは、本願や本発明の範囲を限定するものではない。 According to the embodiment described later, for example, in a distributed processing system, the network transfer of blocks can be suppressed and the network load can be suppressed. However, this does not limit the scope of the present application or the present invention.
分散処理システムの第1の実施形態を示す概略図である。It is the schematic which shows the 1st Embodiment of a distributed processing system. 処理が実行されるタイミングを示す、タイミングチャートである。It is a timing chart which shows the timing when a process is executed. 全体ブロック転送情報の例を示す図である。It is a figure which shows the example of the whole block transfer information. 全体ブロック読込情報の例を示す図である。It is a figure which shows the example of the whole block read information. ブロック転送情報を取得する処理を説明するための図である。It is a figure for demonstrating the process of acquiring block transfer information. ブロック転送情報を取得する処理を説明するための図である。It is a figure for demonstrating the process of acquiring block transfer information. ブロック読込情報を取得する処理を説明するための図面である。It is a drawing for demonstrating the process of acquiring a block read information. ブロック読込情報を取得する処理を説明するための図面である。It is a drawing for demonstrating the process of acquiring a block read information. ブロック転送情報とブロック読込情報を収集する処理を示す図である。It is a figure which shows the process which collects a block transfer information and a block read information. ブロック転送情報とブロック読込情報を収集する処理を示す図である。It is a figure which shows the process which collects a block transfer information and a block read information. ブロック配分判定部の処理を表す概略図である。It is a schematic diagram which shows the process of a block allocation determination part. 図11の処理を詳細に説明するフローチャートである。It is a flowchart explaining the process of FIG. 11 in detail. 図12のステップE1の処理の例を表す図である。It is a figure which shows the example of the process of step E1 of FIG. ブロック位置情報の例を示す図である。It is a figure which shows the example of the block position information. 分散処理システムの例を示す図である。It is a figure which shows the example of the distributed processing system. ジョブの並列分散処理を説明する図である。It is a figure explaining parallel distributed processing of a job. ジョブの並列分散処理を説明する図である。It is a figure explaining parallel distributed processing of a job. クライアントが分散処理システムにファイルの書き込みを要求する場合の処理を示す、概略図である。It is a schematic diagram which shows the process when a client requests the distributed processing system to write a file. 分散処理システムでのジョブの実行に関する概略図である。It is a schematic diagram about execution of a job in a distributed processing system. コンピュータの構成の例を示す図である。It is a figure which shows the example of the configuration of a computer. 分散処理システムの制御装置を表す図面である。It is a drawing which shows the control device of a distributed processing system. 分散処理システムの制御装置の処理の流れを表すフローチャートである。It is a flowchart which shows the processing flow of the control device of a distributed processing system.
 以下、図面を参照し、いくつかの実施形態について説明する。以下の開示は例示である。本願と本発明は、以下の開示のみに限定して解釈されるべきではない。 Hereinafter, some embodiments will be described with reference to the drawings. The following disclosure is exemplary. The present application and the present invention should not be construed as being limited to the following disclosures.
「分散処理システムの例」
 分散処理システムの例としては、例えば、Apache Hadoopがある。分散処理システムは、並列分散処理の能力と、並列分散ストレージ領域と、を併せ持つシステムであり得る。図15は、分散処理システムの例を示す図である。図15に示す分散処理システムもしくはクラスタサーバシステムは、マスタノードと少なくとも1つのワーカーノードから構成され得る。
"Example of distributed processing system"
An example of a distributed processing system is Apache Hadoop. A distributed processing system can be a system that has both parallel distributed processing capabilities and a parallel distributed storage area. FIG. 15 is a diagram showing an example of a distributed processing system. The distributed processing system or cluster server system shown in FIG. 15 may be composed of a master node and at least one worker node.
 マスタノードはクラスタサーバシステム全体のリソース管理を行う制御装置もしくはコンピュータである。マスタノードは、クラスタリソース管理部と、クラスタデータ管理部を含む。マスタノードはブロック位置情報を格納するマスタノードストレージを有する。 The master node is a control device or computer that manages the resources of the entire cluster server system. The master node includes a cluster resource management unit and a cluster data management unit. The master node has a master node storage for storing block position information.
 ワーカーノードは、マスタノードにネットワークを介して接続されたコンピュータである。ワーカーノードは、ジョブの実行やデータの格納を行う。ワーカーノードはジョブ実行管理部と、データ管理部と、データ通信部を含む。ワーカーノードはワーカーノードストレージを有する。この分散処理システム/クラスタサーバシステムでは、複数(1からn、nは1以上の自然数)のワーカーノードに、データを分散して格納する。この分散処理システム/クラスタサーバシステムでは、ジョブの並列分散処理を行う。 A worker node is a computer connected to a master node via a network. Worker nodes execute jobs and store data. The worker node includes a job execution management unit, a data management unit, and a data communication unit. The worker node has worker node storage. In this distributed processing system / cluster server system, data is distributed and stored in a plurality of worker nodes (1 to n, n is a natural number of 1 or more). This distributed processing system / cluster server system performs parallel distributed processing of jobs.
 クライアントは、ネットワークを介してこの分散処理システム/クラスタサーバシステムに接続されたコンピュータである。例えば、図15のクラスタサーバシステムは、クライアントからのリクエストに応じて、ジョブを実行する。 The client is a computer connected to this distributed processing system / cluster server system via a network. For example, the cluster server system of FIG. 15 executes a job in response to a request from a client.
 図16、17は、ジョブの並列分散処理の動作を説明する図である。クライアントは、マスタノードに、ジョブ実行のリクエストを送信する(図16、「1.ジョブ実行をリクエスト」)。マスタノードは、クライアントからのリクエストを受信する。マスタノードは、受信したリクエストに対応するジョブを実行するために、ジョブ管理プロセスを起動するために十分なリソースを持ったワーカーノードを選択する。ジョブは、並列に実行され得る複数のジョブを含み得る。マスタノードは、選択したワーカーノードに割り当てるジョブを決定する。マスタノードは、ジョブ管理プロセスの起動を、選択したワーカーノードに要求する(図16、「2.ジョブ管理プロセスの起動を割り当て」)。 Figures 16 and 17 are diagrams illustrating the operation of parallel distributed processing of jobs. The client sends a job execution request to the master node (Fig. 16, "1. Request job execution"). The master node receives the request from the client. The master node selects a worker node that has sufficient resources to start the job management process in order to execute the job corresponding to the received request. A job can include multiple jobs that can be run in parallel. The master node determines the jobs to assign to the selected worker node. The master node requests the selected worker node to start the job management process (Fig. 16, "2. Assign the start of the job management process").
 要求を受信したワーカーノードのジョブ実行管理部は、ジョブ管理プロセスを起動する(図16、「3.ジョブ管理プロセス起動」)。起動されたジョブ管理プロセスは、マスタノードから割り当てられたジョブを実行するためのリソースを、マスタノードから取得する(図17、「4.ジョブ実行リソースを要求」、「5.ジョブ実行可能リソースを取得」)。換言すれば、図16、17では、ジョブを実行するワーカーノードが選択され、選択されたワーカーノードにジョブが割り当てられ、ジョブが並列分散実行される。 The job execution management department of the worker node that received the request starts the job management process (Fig. 16, "3. Job management process start"). The started job management process acquires the resources for executing the job assigned from the master node from the master node (Fig. 17, "4. Request job execution resource", "5. Job execution resource". Get "). In other words, in FIGS. 16 and 17, the worker node that executes the job is selected, the job is assigned to the selected worker node, and the job is executed in parallel.
 ここで、分散処理システムにおける並列分散ストレージについて説明する。並列分散ストレージにおいては、1つのファイルが所定のサイズ(例えば128MB)のデータに分割される。ここで、分割されたデータのことをブロックという。並列分散ストレージにおいては、ブロックが複製され(例えば3個の複製)、ワーカーノードに格納される。 Here, parallel distributed storage in a distributed processing system will be described. In parallel distributed storage, one file is divided into data of a predetermined size (for example, 128MB). Here, the divided data is called a block. In parallel distributed storage, blocks are replicated (eg, 3 replicates) and stored on a worker node.
 図18は、クライアントが分散処理システムにファイルの書き込みを要求する場合の処理を示す、概略図である。クライアントはマスタノードにファイルのクラスタサーバシステムへの書き込みを要求する。このとき、クライアントは、書き込まれるファイルのサイズをマスタノードに通知する。マスタノードのクラスタデータ管理部は、クライアントから要求を受信する(図18、「1.書き込み先の要求」)。クラスタデータ管理部は、書き込み対象のファイルを128MBのブロックに分割する場合、いくつのブロックに分割されるのかを計算する。ファイルのサイズが384MBである場合、このファイルは、3個のブロックに分割されることが分かる。クラスタデータ管理部は、3個のワーカーノードをランダムに選択する。例えば、クラスタデータ管理部は、ワーカーノード1、2、及び3を選択する。 FIG. 18 is a schematic diagram showing the processing when the client requests the distributed processing system to write a file. The client requests the master node to write the file to the cluster server system. At this time, the client notifies the master node of the size of the file to be written. The cluster data management unit of the master node receives the request from the client (Fig. 18, "1. Request to write to"). When the file to be written is divided into 128MB blocks, the cluster data management unit calculates how many blocks are divided. If the size of the file is 384MB, you can see that this file is divided into 3 blocks. The cluster data management unit randomly selects three worker nodes. For example, the cluster data management unit selects worker nodes 1, 2, and 3.
 クラスタデータ管理部は、クライアントに、書き込み先となるワーカーノードの情報を送信する。クライアントは、クラスタデータ管理部から、書き込み先となるワーカーノードの情報を受信する(図18、「2.書き込み先を通知」)。 The cluster data management unit sends the information of the worker node to be written to the client. The client receives the information of the worker node to be written from the cluster data management unit (Fig. 18, "2. Notify the write destination").
 クライアントは、書き込み先のワーカーノード(1、2、及び3)のデータ管理部に、分割したファイル(ブロック)の書き込みを要求する(図18、「3.分割したブロックの書き込み要求」)。書き込み要求を受けたワーカーノードは、自身のワーカーノードストレージにブロックを書き込む。ワーカーノードは、さらに、他のワーカーノードに複製したブロックの書き込みを要求する。例えば、ワーカーノード1は、ワーカーノード2に、複製の書き込みを要求する。複製の数は所定の数であってよい。複製の書き込みは、所定の書き込み先であってもよい。このように、クラスタサーバシステムは、所定の数のブロックの複製を作成し、複数のワーカーノードに分散格納する。 The client requests the data management unit of the write destination worker node (1, 2, and 3) to write the divided file (block) (Fig. 18, "3. Request to write the divided block"). The worker node that receives the write request writes a block to its own worker node storage. The worker node also requests other worker nodes to write the duplicated block. For example, worker node 1 requests worker node 2 to write a duplicate. The number of duplicates may be a predetermined number. The duplicate writing may be a predetermined writing destination. In this way, the cluster server system creates duplicates of a predetermined number of blocks and stores them in a plurality of worker nodes in a distributed manner.
 図19は、分散処理システム/クラスタサーバシステムでのジョブの実行に関する概略図である。分散処理システムにおいて実行中のジョブは、分散処理システムに格納されたブロックを参照する。ジョブによって参照されるブロックが、ジョブが実行されているワーカーノード上に格納されている場合、このワーカーノードのワーカーノードストレージからブロックを読み込む。一方、ジョブによって参照されるブロックが、ジョブが実行されているワーカーノード上に格納されていない場合、ジョブによって参照されるブロックを格納するワーカーノードからブロックを転送する処理が行われる。図19はこの処理を示している。ジョブが実行されるワーカーノード2にジョブによって参照されるブロックBがない場合、例えば、ワーカーノード2はワーカーノード3にブロックBの送信を要求する。ワーカーノード3はブロックBを送信し、ワーカーノード2はジョブを実行する。 FIG. 19 is a schematic diagram of job execution in the distributed processing system / cluster server system. Jobs running in the distributed processing system refer to the blocks stored in the distributed processing system. If the block referenced by the job is stored on the worker node where the job is running, read the block from the worker node storage of this worker node. On the other hand, if the block referenced by the job is not stored on the worker node on which the job is executed, the process of transferring the block from the worker node that stores the block referenced by the job is performed. FIG. 19 shows this process. If the worker node 2 on which the job is executed does not have block B referenced by the job, for example, worker node 2 requests worker node 3 to send block B. Worker node 3 sends block B, and worker node 2 executes the job.
「第1の実施形態」
 図1は、分散処理システムの第1の実施形態を示す概略図である。図1に示されるように、この実施形態は、クライアント1と、クライアント1が接続するクラスタサーバシステム2(分散処理システム)とを含む。以下の説明では、上記の分散処理システムの例と重複する部分を省略している。
"First embodiment"
FIG. 1 is a schematic view showing a first embodiment of a distributed processing system. As shown in FIG. 1, this embodiment includes a client 1 and a cluster server system 2 (distributed processing system) to which the client 1 connects. In the following description, the part that overlaps with the above example of the distributed processing system is omitted.
 図1のクラスタサーバシステム2は、複数のサーバマシンから構成され得る。各サーバマシンは、図20に示すように、CPU201、メモリ202、ストレージ203(HDD(hard disk drive)やSSD(solid state disk))、送受信機204などを備えたコンピュータであってもよい。各サーバマシンには、オペレーティングシステム(OS)がインストールされている。また、各サーバマシンは物理マシン、仮想マシンのいずれであってもよい。各サーバマシンは、同じ筐体内に配置された複数のコンピュータであってもよい。各サーバマシンは、それらの全部もしくは一部が、異なる筐体に配置されてもよい。各サーバマシンは、ネットワークを介して相互に接続され、それらの全部もしくは一部が遠隔地に配置されてもよい。 The cluster server system 2 of FIG. 1 may be composed of a plurality of server machines. As shown in FIG. 20, each server machine may be a computer including a CPU 201, a memory 202, a storage 203 (HDD (hard disk drive) or SSD (solid state disk)), a transmitter / receiver 204, and the like. An operating system (OS) is installed on each server machine. Further, each server machine may be either a physical machine or a virtual machine. Each server machine may be a plurality of computers arranged in the same housing. Each server machine may be arranged in different housings in whole or in part. The server machines are connected to each other via a network, and all or part of them may be located at a remote location.
 クラスタサーバシステム2のサーバマシンは、マスタノード21とワーカーノード群22を含む。マスタノード21は、クラスタサーバシステム2の全体のリソース管理を行う。ワーカーノード群22の各々のワーカーノード1からn(nは自然数)は、ジョブを実行し、および/または、データ(ブロック)を格納する。マスタノード21は複数のマスタノードから構成されていても良い。ワーカーノード群22は、複数のワーカーノード221~22nから構成されている。「n」はワーカーノードの数がnであることを表している。 The server machine of the cluster server system 2 includes the master node 21 and the worker node group 22. The master node 21 manages the entire resource of the cluster server system 2. Each worker node 1 to n (n is a natural number) of the worker node group 22 executes a job and / or stores data (block). The master node 21 may be composed of a plurality of master nodes. The worker node group 22 is composed of a plurality of worker nodes 221 to 22n. “N” indicates that the number of worker nodes is n.
 マスタノード21は、クラスタリソース管理部211と、クラスタデータ管理部212と、クラスタ全体のブロック情報収集部213と、ブロック配分判定部214と、マスタノードストレージ215と、を有する。これらの構成要素はコンピュータプログラムとして実装され、マスタノード21のCPU(central processing unit)で実行されてもよい。 The master node 21 has a cluster resource management unit 211, a cluster data management unit 212, a block information collection unit 213 for the entire cluster, a block allocation determination unit 214, and a master node storage 215. These components are implemented as computer programs and may be executed by the CPU (central processing unit) of the master node 21.
 クラスタリソース管理部211は、ジョブ実行時にワーカーノード1からnへのジョブの割り当てを行うために、クラスタサーバシステム2全体のサーバマシンのリソースの管理を行う。クラスタデータ管理部212は、各ブロックの格納場所と、各ワーカーノードのワーカーノードストレージの空き容量を含む状態を管理する。 The cluster resource management unit 211 manages the resources of the server machines of the entire cluster server system 2 in order to allocate jobs from worker nodes 1 to n at the time of job execution. The cluster data management unit 212 manages the storage location of each block and the state including the free space of the worker node storage of each worker node.
 クラスタ全体のブロック情報収集部213は、ワーカーノード群22から後述するブロック転送情報22151とブロック読込情報22152とを収集して保存する。ブロック配分判定部214は、複製数を増減する必要のあるブロックを判定し、対応するワーカーノードに複製指示を行う。 The block information collection unit 213 of the entire cluster collects and saves the block transfer information 22151 and the block read information 22152, which will be described later, from the worker node group 22. The block allocation determination unit 214 determines a block for which the number of duplicates needs to be increased or decreased, and gives a replication instruction to the corresponding worker node.
 マスタノードストレージ215は、例えば、HDDあるいはSSDなどのストレージデバイスである。マスタノードストレージ215は、ブロック位置情報2151と、全体ブロック転送情報2152と、全体ブロック読込情報2153と、を有する。 The master node storage 215 is, for example, a storage device such as an HDD or SSD. The master node storage 215 has block position information 2151, total block transfer information 2152, and total block read information 2153.
 ブロック位置情報2151は、クラスタサーバシステム2に格納されている各々のファイルについて、ファイルを構成しているブロックがどのワーカーノードに格納されているのかを示す、情報である。全体ブロック転送情報2152は、クラスタサーバシステム2全体でワーカーノード間のブロックの転送が発生した回数を記録した情報である。全体ブロック読込情報2153は、クラスタサーバシステム2全体におけるブロック毎の読み込み回数を記録した情報である。 The block position information 2151 is information indicating in which worker node the blocks constituting the file are stored for each file stored in the cluster server system 2. The total block transfer information 2152 is information that records the number of times a block transfer has occurred between worker nodes in the entire cluster server system 2. The whole block read information 2153 is information that records the number of times of reading for each block in the entire cluster server system 2.
 次に、ワーカーノード221から22nについて説明する。例えば、ワーカーノード221は、ジョブ実行管理部2211と、データ管理部2212と、データ通信部2213と、ブロック情報収集部2214と、ワーカーノードストレージ2215と、を有する。ジョブ実行管理部2211は、ジョブの割り当てや実行を行う。データ管理部2212は、ブロックの読み込みや書き込みを行う。データ通信部2213は、ブロックを他ノードに転送する。ブロック情報収集部2214については後述する。 Next, worker nodes 221 to 22n will be described. For example, the worker node 221 has a job execution management unit 2211, a data management unit 2212, a data communication unit 2213, a block information collection unit 2214, and a worker node storage 2215. The job execution management unit 2211 assigns and executes jobs. The data management unit 2212 reads and writes blocks. The data communication unit 2213 transfers the block to another node. The block information collection unit 2214 will be described later.
 ワーカーノード221のワーカーノードストレージ2215は、ブロックを格納する。更に、ワーカーノードストレージ2215は、ブロック転送情報22151とブロック読込情報22152を格納する。ブロック転送情報22151は、ワーカーノード1から他のワーカーノードにブロックを転送した回数を記録した情報である。ブロック読込情報22152は、各々のブロックの読み込み回数を記録した情報である。 Worker node storage 2215 of worker node 221 stores blocks. Further, the worker node storage 2215 stores the block transfer information 22151 and the block read information 22152. The block transfer information 22151 is information that records the number of times the block has been transferred from the worker node 1 to another worker node. The block read information 22152 is information that records the number of times each block is read.
 ブロック情報収集部2214は、ブロック転送情報22151とブロック読込情報22152を収集する。ブロック情報収集部2214は、ブロック転送情報22151とブロック読込情報22152を、マスタノード21のクラスタ全体のブロック情報収集部213に、送信する。この送信は、例えば、所定の時間間隔で行われてもよい。あるいは、この送信は、クラスタサーバシステム(クラスタサーバ管理システム)2の管理者の指示を受けて行われてもよい。 The block information collection unit 2214 collects block transfer information 22151 and block read information 22152. The block information collection unit 2214 transmits the block transfer information 22151 and the block read information 22152 to the block information collection unit 213 of the entire cluster of the master node 21. This transmission may be performed, for example, at predetermined time intervals. Alternatively, this transmission may be performed in response to an instruction from the administrator of the cluster server system (cluster server management system) 2.
 ワーカーノード222~22nは、ワーカーノード221と同様の構成を有する。また、クラスタサーバシステム2は、ワーカーノード221~22nが持つワーカーノードストレージ2215は、クライアントの視点から、論理的に1つのファイルシステムとして扱うことができるよう、構成されてもよい。これにより、分散ストレージが実現され得る。各ワーカーノードストレージは、1つもしくは複数のHDDやSSDを有してもよい。各ワーカーノードストレージは、ネットワークストレージあるいはストレージエリアネットワークにアクセスするよう構成されてもよい。 Worker nodes 222 to 22n have the same configuration as worker nodes 221. Further, the cluster server system 2 may be configured so that the worker node storage 2215 possessed by the worker nodes 221 to 22n can be logically treated as one file system from the viewpoint of the client. As a result, distributed storage can be realized. Each worker node storage may have one or more HDDs or SSDs. Each worker node storage may be configured to access network storage or storage area networks.
 以下、本実施形態におけるクラスタサーバシステム2の処理の流れが説明される。ここでは、ワーカーノード群22の全部もしくは一部のワーカーノードにデータ(ブロック)がすでに格納されているものとする。 Hereinafter, the processing flow of the cluster server system 2 in this embodiment will be described. Here, it is assumed that the data (block) is already stored in all or a part of the worker nodes of the worker node group 22.
 図2は、後述の処理が実行されるタイミングを示す、タイミングチャートである。マスタノード21のブロック配分判定部214は、ブロックの複製数増減処理(ブロック配分判定)を、ユーザの指定したタイミングで実行してもよい。このタイミングは、例えば、24時間ごとの午前0時であってもよい。あるいは、マスタノード21のブロック配分判定部214は、ブロックの複製数増減処理(ブロック配分判定)を、ユーザの指示が入力されたときに実行してもよい。あるいは、マスタノード21のブロック配分判定部214は、ブロックの複製数増減処理(ブロック配分判定)を、少なくとも1つのワーカーノードのワーカーノードストレージ2215の使用率が所定の閾値に達したことが検出されたときに実行してもよい。この所定の閾値は、例えば、90%であってもよい。あるいは、ユーザがこの所定の閾値を指定してもよい。 FIG. 2 is a timing chart showing the timing when the processing described later is executed. The block allocation determination unit 214 of the master node 21 may execute the block replication number increase / decrease process (block allocation determination) at a timing specified by the user. This timing may be, for example, midnight every 24 hours. Alternatively, the block allocation determination unit 214 of the master node 21 may execute the block replication number increase / decrease process (block allocation determination) when a user's instruction is input. Alternatively, the block allocation determination unit 214 of the master node 21 detects that the usage rate of the worker node storage 2215 of at least one worker node has reached a predetermined threshold value in the block replication number increase / decrease process (block allocation determination). You may execute it at the time. This predetermined threshold may be, for example, 90%. Alternatively, the user may specify this predetermined threshold.
 また、マスタノード21のクラスタ全体のブロック情報収集部213は、ブロックの複製数増減処理(ブロック配分判定)が実行されるときに、全体ブロック転送情報2152と全体ブロック読込情報2153とに保存されている値をゼロにリセットしてもよい。このリセット処理は、ブロックの複製数増減処理(ブロック配分判定)が実行されるときに、毎回、もしくは所定の回数ごとに実行されてもよい。あるいは、このリセット処理は、ユーザからの指示を入力したときに実行されてもよい。 Further, the block information collection unit 213 of the entire cluster of the master node 21 is stored in the total block transfer information 2152 and the total block read information 2153 when the block replication number increase / decrease process (block allocation determination) is executed. You may reset the existing value to zero. This reset process may be executed every time when the block duplication number increase / decrease process (block allocation determination) is executed, or every predetermined number of times. Alternatively, this reset process may be executed when an instruction from the user is input.
 ブロックの複製数増減処理(ブロック配分判定)が実行された後、次のブロックの複製数増減処理(ブロック配分判定)が実行までの間に、各ワーカーノードでブロックの転送回数がカウントされ、全体ブロック転送情報2152が更新される。ブロックの複製数増減処理(ブロック配分判定)が実行された後、次のブロックの複製数増減処理(ブロック配分判定)が実行までの間に、各ワーカーノードでブロックの読み込み回数がカウントされ、全体ブロック読込情報2153が更新される。 The number of block transfers is counted at each worker node after the block replication number increase / decrease process (block allocation determination) is executed until the next block replication number increase / decrease process (block allocation determination) is executed. The block transfer information 2152 is updated. After the block replication number increase / decrease process (block allocation determination) is executed, the block read count is counted at each worker node until the next block replication number increase / decrease process (block allocation determination) is executed. Block read information 2153 is updated.
 図3は、全体ブロック転送情報2152の例を示す図である。全体ブロック転送情報2152はクラスタサーバシステム2全体でワーカーノード間のブロックの転送が発生した回数を記録するための情報である。図3のA、B、C、…は、ブロックの識別情報であってもよい。例えば、図3は、ワーカーノード223(図3の「#3」)からブロックBが他のワーカーノードへ12回送信されたことを表している。例えば、図3は、ワーカーノード225(図3の「#5」)からブロックDが他のワーカーノードへ2回送信されたことを表している。 FIG. 3 is a diagram showing an example of the entire block transfer information 2152. The total block transfer information 2152 is information for recording the number of times a block transfer has occurred between worker nodes in the entire cluster server system 2. A, B, C, ... In FIG. 3 may be block identification information. For example, FIG. 3 shows that block B was transmitted 12 times from worker node 223 (“# 3” in FIG. 3) to another worker node. For example, FIG. 3 shows that block D was sent twice from worker node 225 (“# 5” in FIG. 3) to another worker node.
 図4は全体ブロック読込情報2153の例を示す図である。全体ブロック読込情報2153はクラスタサーバシステム2全体における各ブロックが読み込まれた回数を記録するための情報である。図4は、例えば、ブロックBがクラスタサーバシステム2全体で20回読み込まれたことを表している。 FIG. 4 is a diagram showing an example of the whole block read information 2153. The whole block read information 2153 is information for recording the number of times each block is read in the entire cluster server system 2. Figure 4 shows, for example, that block B was read 20 times across the cluster server system 2.
 次に、図5と6は、ワーカーノード221~22nにおいて、ワーカーノードストレージ2215に格納されるブロック転送情報22151を取得する処理を説明するための図である。
 ブロック転送情報22151は、他のワーカーノードにブロックを転送した回数を記録する情報である。ブロック転送情報22151は、ブロックに関する識別情報などのブロック情報と、転送回数とを、関連付けたテーブルのような情報であってもよい。例えば、ワーカーノード222でジョブが実行されていると仮定する。ワーカーノード222にこのジョブの処理対象のブロックBが格納されていない場合、ブロックBを持っているワーカーノード223のデータ通信部が、ワーカーノード222のデータ通信部へ、ブロックBを送信する。この時、ワーカーノード223のデータ通信部は、ワーカーノード223のブロック情報収集部へ、ブロックBの送信があったことを通知する。ワーカーノード223のブロック情報収集部は、ワーカーノード223のデータ転送部からブロック送信があったことを認識もしくは確認する(図6のステップA1)。ワーカーノード223のブロック情報収集部は、送信されたブロックBの転送回数のカウントをアップするため、ワーカーストレージノードのブロック転送情報にアクセスして更新/格納する(図6のステップA2)。上記の処理は他のワーカーノードについても同様である。
Next, FIGS. 5 and 6 are diagrams for explaining the process of acquiring the block transfer information 22151 stored in the worker node storage 2215 in the worker nodes 221 to 22n.
The block transfer information 22151 is information that records the number of times the block has been transferred to another worker node. The block transfer information 22151 may be information such as a table in which block information such as identification information related to a block and the number of transfers are associated with each other. For example, suppose a job is running on worker node 222. If the worker node 222 does not store the block B to be processed by this job, the data communication unit of the worker node 223 having the block B transmits the block B to the data communication unit of the worker node 222. At this time, the data communication unit of the worker node 223 notifies the block information collection unit of the worker node 223 that the block B has been transmitted. The block information collection unit of the worker node 223 recognizes or confirms that the block transmission has been made from the data transfer unit of the worker node 223 (step A1 in FIG. 6). The block information collection unit of the worker node 223 accesses and updates / stores the block transfer information of the worker storage node in order to increase the count of the number of transfers of the transmitted block B (step A2 in FIG. 6). The above processing is the same for other worker nodes.
 次に、図7と8は、ワーカーノード221~22nにおいて、ワーカーノードストレージ2215に格納されているブロック読込情報22152を取得する処理を説明するための図である。ブロック読込情報はブロック毎の読み込み回数を記録する情報である。ブロック読込情報はブロックに関する識別子などのブロック情報とその読み込み回数を関連付けたテーブルのような情報であってもよい。例えば、ワーカーノード223にあるデータ管理部がワーカーストレージノードからブロックBを読み込む時、データ管理部は、ブロック情報収集部にブロックBを読み込むことを通知する。ブロック情報収集部は読み込まれたブロックBのブロック情報を認識/確認する(図8のステップB1)。ブロック情報収集部は読み込まれたブロックBの読込回数のカウントをアップするため、ワーカーノード223のワーカーストレージノードのブロック読込情報にアクセスして更新/格納する(図8のステップB2)。上記の処理は、他のワーカーノードも同様に行う。 Next, FIGS. 7 and 8 are diagrams for explaining the process of acquiring the block read information 22152 stored in the worker node storage 2215 in the worker nodes 221 to 22n. The block read information is information that records the number of times of reading for each block. The block read information may be information such as a table in which block information such as an identifier related to a block is associated with the number of times the block is read. For example, when the data management unit in the worker node 223 reads the block B from the worker storage node, the data management unit notifies the block information collection unit to read the block B. The block information collection unit recognizes / confirms the block information of the read block B (step B1 in FIG. 8). In order to increase the count of the number of times the read block B is read, the block information collecting unit accesses and updates / stores the block read information of the worker storage node of the worker node 223 (step B2 in FIG. 8). The above processing is performed in the same manner for other worker nodes.
 図9と図10は、マスタノード21が、ワーカーノード221~22nのブロック転送情報とブロック読込情報を収集する処理を示す図である。ワーカーノード221~22nにおいて、ブロック情報収集部は、ワーカーノードストレージが格納しているブロック転送情報およびブロック読込情報を、マスタノード21のクラスタ全体のブロック情報収集部213へ送信する(図10のステップC1)。この送信処理は、あらかじめ指定された日時に、例えば、毎日午前0時に実行してもよい。あるいは、この送信処理は、クラスタサーバシステム2が、ユーザもしくは管理者の指示を入力したときに実行してもよい。クラスタ全体のブロック情報収集部213は、各ワーカーノード221~22nから受信したブロック転送情報を、マスタノードストレージ215の全体ブロック転送情報2152に保存/格納する(図10のステップC2)。クラスタ全体のブロック情報収集部213は、各ワーカーノード221~22nから受信したブロック読込情報を、マスタノードストレージ215の全体ブロック読込情報2153に保存/格納する(図10のステップC2)。 9 and 10 are diagrams showing a process in which the master node 21 collects the block transfer information and the block read information of the worker nodes 221 to 22n. In the worker nodes 221 to 22n, the block information collection unit transmits the block transfer information and the block read information stored in the worker node storage to the block information collection unit 213 of the entire cluster of the master node 21 (step in FIG. 10). C1). This transmission process may be executed at a predetermined date and time, for example, every day at midnight. Alternatively, this transmission process may be executed when the cluster server system 2 inputs an instruction from the user or the administrator. The block information collection unit 213 of the entire cluster saves / stores the block transfer information received from each worker node 221 to 22n in the overall block transfer information 2152 of the master node storage 215 (step C2 in FIG. 10). The block information collection unit 213 of the entire cluster stores / stores the block read information received from each worker node 221 to 22n in the overall block read information 2153 of the master node storage 215 (step C2 in FIG. 10).
 ワーカーノード221乃至22nが、マスタノード21へブロック転送情報とブロック読込情報を送信するタイミングは、ユーザもしくは管理者が設定可能であってもよい。また、これらが送信された後で、ワーカーノード221乃至22nのワーカーノードストレージに格納されたブロック転送情報とブロック読込情報の値をゼロにリセットしてもよい。あるいは、ワーカーノード221乃至22nは、ブロック転送情報とブロック読込情報を所定の回数送信したときに、ワーカーノードストレージに格納されたブロック転送情報とブロック読込情報をゼロにリセットしてもよい。 The timing at which the worker nodes 221 to 22n transmit the block transfer information and the block read information to the master node 21 may be set by the user or the administrator. Further, after these are transmitted, the values of the block transfer information and the block read information stored in the worker node storage of the worker nodes 221 to 22n may be reset to zero. Alternatively, the worker nodes 221 to 22n may reset the block transfer information and the block read information stored in the worker node storage to zero when the block transfer information and the block read information are transmitted a predetermined number of times.
 以下、図11、12、13、及び14を参照し、マスタノード21のブロック配分判定部214の処理の説明をする。図11は、ブロック配分判定部214の処理を表す概略図である。図11の構成要素の符号番号は、図1の構成要素の符号番号と同一である。図11では、図面を見やすくするため、一部の符号番号が省略されている。 Hereinafter, the processing of the block allocation determination unit 214 of the master node 21 will be described with reference to FIGS. 11, 12, 13, and 14. FIG. 11 is a schematic view showing the processing of the block allocation determination unit 214. The code number of the component of FIG. 11 is the same as the code number of the component of FIG. In FIG. 11, some code numbers are omitted to make the drawings easier to see.
 図11において、マスタノード21のマスタノードストレージ215は、全体ブロック読込情報2153と全体ブロック転送情報2152とを保存/格納する。ブロック配分判定部214は、全体ブロック読込情報2153と全体ブロック転送情報2152を参照して、複製対象および削除対象のブロックを判定する(図11のステップS1101)。ここでは、ブロック配分判定部214は、ブロックBの複製を生成することを決定する。ここでは、ブロック配分判定部214は、ブロックAの削除することを決定する。ブロック配分判定部214は、ワーカーノードのデータ管理部に複製指示および/または削除指示を送信/出力する。図11では、ブロック配分判定部214が、ワーカーノード223のデータ管理部に複製指示を送信/出力する(図11のステップS1102)。図11では、ブロック配分判定部214が、ワーカーノード22nのデータ管理部に削除指示を送信/出力する(図11のステップS1103)。 In FIG. 11, the master node storage 215 of the master node 21 stores / stores the entire block read information 2153 and the entire block transfer information 2152. The block allocation determination unit 214 determines the blocks to be duplicated and deleted by referring to the total block read information 2153 and the total block transfer information 2152 (step S1101 in FIG. 11). Here, the block allocation determination unit 214 determines to generate a duplicate of the block B. Here, the block allocation determination unit 214 decides to delete the block A. The block allocation determination unit 214 transmits / outputs a replication instruction and / or a deletion instruction to the data management unit of the worker node. In FIG. 11, the block allocation determination unit 214 transmits / outputs a replication instruction to the data management unit of the worker node 223 (step S1102 in FIG. 11). In FIG. 11, the block allocation determination unit 214 transmits / outputs a deletion instruction to the data management unit of the worker node 22n (step S1103 in FIG. 11).
 図11において、例えば、ブロック配分判定部214は、ブロックBを複製対象と判定する(図11のステップS1101)。ワーカーノード223は、ブロックBが格納されているワーカーノードである。ワーカーノード222は、ブロックBが格納されていないワーカーノードである。マスタノード21からの指示に従い、ワーカーノード223のデータ管理部は、ワーカーノードストレージからブロックBを読み出す。ワーカーノード223のデータ管理部は、ワーカーノード222のデータ管理部へ読み出したブロックBを送信し、ブロックBの複製数を1つ格納する(増やす)ことを要求する。ワーカーノード222のデータ管理部は、ワーカーノード223のデータ管理部からブロックBを受信し、ブロックBの複製をワーカーノードストレージに格納する。 In FIG. 11, for example, the block allocation determination unit 214 determines that block B is a replication target (step S1101 in FIG. 11). Worker node 223 is a worker node in which block B is stored. Worker node 222 is a worker node in which block B is not stored. Following the instruction from the master node 21, the data management unit of the worker node 223 reads the block B from the worker node storage. The data management unit of the worker node 223 transmits the read block B to the data management unit of the worker node 222, and requests that the number of duplicates of the block B be stored (increased) by one. The data management unit of the worker node 222 receives the block B from the data management unit of the worker node 223, and stores a copy of the block B in the worker node storage.
 一方、ブロックAは、例えば、過去において利用頻度が高いと判定されたために4つの複製が格納されていたものである。マスタノード21のブロック配分判定部214は、例えば、ブロックAの利用頻度が下がったと判定する。この場合に、マスタノード21のブロック配分判定部214は、ブロックAの複製数を1個削除するべきであると判断する。図11において、マスタノード21のブロック配分判定部214から削除指示を受信した場合に(図11のステップS1103)、ワーカーノード22nのデータ管理部は、ワーカーノードストレージからブロックAを削除する(図11のステップS1105)。 On the other hand, block A contains, for example, four duplicates because it was determined to be frequently used in the past. The block allocation determination unit 214 of the master node 21 determines, for example, that the frequency of use of the block A has decreased. In this case, the block allocation determination unit 214 of the master node 21 determines that the number of duplicates of the block A should be deleted by one. In FIG. 11, when a deletion instruction is received from the block allocation determination unit 214 of the master node 21 (step S1103 in FIG. 11), the data management unit of the worker node 22n deletes the block A from the worker node storage (FIG. 11). Step S1105).
 図12は、図11の処理を詳細に説明するフローチャートである。図12は、ブロック配分判定部214の処理の流れを示している。まず、ブロックの複製数を増加させる処理を説明する(図12のステップE1からE6)。 FIG. 12 is a flowchart illustrating the process of FIG. 11 in detail. FIG. 12 shows the processing flow of the block allocation determination unit 214. First, the process of increasing the number of duplicate blocks will be described (steps E1 to E6 in FIG. 12).
 マスタノード21のブロック配分判定部214は、マスタノードストレージ215に保存/格納されている全体ブロック転送情報2152を読み込む。ブロック配分判定部214は、全体ブロック転送情報2152の集計を行う。この集計処理において、ブロック配分判定部214は、全体ブロック転送情報2152中のブロックごとワーカーノードごとの転送回数の間の最大値を計算してもよい。あるいは、ブロック配分判定部214は、ブロックごとの平均値を計算してもよい。ブロック配分判定部214は、集計した値が閾値(以下、複製閾値という)以上となったブロックを複製対象として選出する(図12のステップE1)。マスタノード21のユーザもしくは管理者が、この複製閾値を予め設定してもよい。複製閾値を使用する代わりに、例えば、ブロック配分判定部214は、転送回数の上位の所定個数のブロックを複製対象としてもよい。 The block allocation determination unit 214 of the master node 21 reads the entire block transfer information 2152 stored / stored in the master node storage 215. The block allocation determination unit 214 aggregates the total block transfer information 2152. In this aggregation process, the block allocation determination unit 214 may calculate the maximum value between the number of transfers for each block and each worker node in the total block transfer information 2152. Alternatively, the block allocation determination unit 214 may calculate the average value for each block. The block allocation determination unit 214 selects a block whose aggregated value is equal to or greater than a threshold value (hereinafter referred to as a replication threshold value) as a replication target (step E1 in FIG. 12). The user or administrator of the master node 21 may preset this replication threshold. Instead of using the replication threshold, for example, the block allocation determination unit 214 may target a predetermined number of blocks having a higher transfer count as a replication target.
 図13は、図12のステップE1の処理の例を表す図である。この例では、ブロック配分判定部214は、全体ブロック転送情報2152を集計して集計結果(ブロックごと、ワーカーノードごとの最大値)を得る。図13では、例えば、ブロックAの集計結果が「6」である。これは、ブロックAの転送回数の最大値が6回であることを示している。図13では、例えば、ブロックCの集計結果が「4」である。これは、ブロックCの転送回数の最大値が4回であることを示している。全体ブロック転送情報2152は、ブロック番号も格納してもよい。ブロック番号は、クラスタサーバシステム2において一意の番号であってもよい。例えば、ブロックAのブロック番号を「345」であるとする。全体ブロック転送情報2152は、「345」を「A」に関連付けて格納してもよい。ブロック配分判定部214は、このブロック番号をもとに、図14のブロック位置情報2151に格納されたブロックに関する情報と対応を取ってもよい。 FIG. 13 is a diagram showing an example of the process of step E1 in FIG. In this example, the block allocation determination unit 214 aggregates the entire block transfer information 2152 and obtains the aggregation result (maximum value for each block and each worker node). In FIG. 13, for example, the aggregation result of block A is “6”. This indicates that the maximum number of transfers of block A is 6. In FIG. 13, for example, the aggregation result of block C is “4”. This indicates that the maximum number of transfers in block C is four. The entire block transfer information 2152 may also store the block number. The block number may be a unique number in the cluster server system 2. For example, assume that the block number of block A is "345". The entire block transfer information 2152 may store "345" in association with "A". Based on this block number, the block allocation determination unit 214 may take correspondence with the information regarding the block stored in the block position information 2151 of FIG.
 図13の例では、複製閾値を10としている。ブロック配分判定部214は、複製閾値である転送回数が10以上のブロックBとEを複製対象ブロックとして選出する。 In the example of FIG. 13, the replication threshold is set to 10. The block allocation determination unit 214 selects blocks B and E having a replication threshold of 10 or more as the replication target blocks.
 以下、図12を参照する。ブロック配分判定部214は、選出した複製対象ブロックを1つずつ選択する(図12のステップE2)。ブロック配分判定部214は、選択したブロックのワーカーノードにおける所在を示すブロック位置情報2151を参照する。ブロック配分判定部214は、選択したブロック(複製対象ブロック)の現在の複製数を算出する(図12のステップE3)。 Refer to Fig. 12 below. The block allocation determination unit 214 selects the selected blocks to be duplicated one by one (step E2 in FIG. 12). The block allocation determination unit 214 refers to the block position information 2151 indicating the location of the selected block in the worker node. The block allocation determination unit 214 calculates the current number of duplicates of the selected block (duplicate target block) (step E3 in FIG. 12).
 ここで、図14はブロック位置情報2151の例を示す図である。図14において、「/user/user1/employee.txt」はファイルパスを含むファイル名である。このファイルパスは、クラスタサーバシステム2においてユーザ(クライアント)から見たパスであってもよい。図14は、このファイルが3個のブロックから構成されていることを示している。それぞれのブロック名をブロックA、ブロックB、及びブロックCとする。ブロックAは、ブロックの識別情報であるブロック番号345に対応するものであってもよい。この例では、理解のため、ブロック位置情報がブロック名を含んでいる。ブロックを識別するために、ブロック名の代わりにブロック番号が用いられてもよい。ブロック番号は、クラスタサーバシステム2において一意の番号であってもよい。あるいは、ブロックの識別のため、ファイル名を含むファイルのパスと、ブロック番号とを組み合わせて用いてもよい。 Here, FIG. 14 is a diagram showing an example of block position information 2151. In FIG. 14, "/user/user1/employee.txt" is a file name including a file path. This file path may be the path seen by the user (client) in the cluster server system 2. FIG. 14 shows that this file is composed of three blocks. Let each block name be block A, block B, and block C. The block A may correspond to the block number 345 which is the identification information of the block. In this example, for the sake of understanding, the block position information includes the block name. A block number may be used instead of the block name to identify the block. The block number may be a unique number in the cluster server system 2. Alternatively, in order to identify the block, the path of the file including the file name and the block number may be used in combination.
 図14は、ブロックAおよびその複製が、ワーカーノード221、222、223、224に格納されていることを、示している。図14では、ワーカーノード221を、簡単のため、「1」として表している。他のワーカーノードも同様である。同じように、図14は、ブロックBおよびその複製が、ワーカーノード221、223、224に格納されているといった情報を有していることを、示している。ブロック配分判定部214は、図14のブロック位置情報を参照し、例えば、ブロックAが合計4個格納されていることもわかる。即ち、ブロック配分判定部214は、ブロックAの現在の複製数を4と算出する。他のブロックについても現在の複製数が算出され得る(図12のステップE3)。 FIG. 14 shows that block A and its replicas are stored in worker nodes 221, 222, 223, 224. In FIG. 14, worker node 221 is represented as "1" for simplicity. The same applies to other worker nodes. Similarly, FIG. 14 shows that block B and its replicas have information such as being stored on worker nodes 221, 223, 224. The block allocation determination unit 214 refers to the block position information in FIG. 14, and it can be seen that, for example, a total of four blocks A are stored. That is, the block allocation determination unit 214 calculates the current number of duplicates of block A as 4. The current number of duplicates can be calculated for other blocks as well (step E3 in Figure 12).
 以下、図12を参照する。例えば、ブロック配分判定部214は、ブロック位置情報2151から算出した選択したブロック(複製対象ブロック)の現在の複製数が、複製数の既定値より大きく、全体のノード数以下の範囲外であれば、複製対象ブロックの複製は作成しないこととしてもよい(図12のステップE4)。例えば、全てのワーカーノードに選択したブロック(複製対象ブロック)がすでに格納されている場合、このブロックがさらに複製されると無駄となり得る。この判定によって、このような無駄な複製を回避し得る。ひいては、クラスタサーバシステム2全体で、ワーカーノードストレージの使用率を向上し得る。複製数の既定値は、ユーザもしくは管理者が予め設定してもよい。複製数の既定値は、例えば、ワーカーノード数の半分であってもよい。複製数の既定値は、例えば、0(ゼロ)であってもよい。この場合、ワーカーノードの数と等しくなるまで常に、複製の作成が可能となる。 Refer to Fig. 12 below. For example, if the current number of duplicates of the selected block (block to be duplicated) calculated from the block position information 2151 is larger than the default value of the number of duplicates and is out of the range of the total number of nodes or less, the block allocation determination unit 214 may use the block allocation determination unit 214. , The duplicate of the block to be duplicated may not be created (step E4 in FIG. 12). For example, if the selected block (replication target block) is already stored in all worker nodes, it can be wasted if this block is further duplicated. By this determination, such useless duplication can be avoided. As a result, the utilization rate of worker node storage can be improved in the entire cluster server system 2. The default value of the number of duplicates may be preset by the user or the administrator. The default value of the number of duplicates may be, for example, half the number of worker nodes. The default value of the number of duplicates may be, for example, 0 (zero). In this case, replication can always be created until it is equal to the number of worker nodes.
 また、図12のステップE4において、例えば、ブロック配分判定部214は、ブロック位置情報2151から算出した選択したブロック(複製対象ブロック)の現在の複製数が、複製数の既定値より大きい場合(複製数の既定値<現在の複製数)に、複製対象ブロックの複製を作成しないこととしてもよい。 Further, in step E4 of FIG. 12, for example, the block allocation determination unit 214 indicates that the current number of duplicates of the selected block (block to be duplicated) calculated from the block position information 2151 is larger than the default value of the number of duplicates (duplicate). It is also possible not to make a duplicate of the block to be duplicated within the default number <current number of duplicates).
 現在の複製数が図12のステップE4の条件をみたす場合(図12のステップE4、「Yes」)、ブロック配分判定部214は、複製対象ブロックを格納していないワーカーノードを全て選出する。ブロックの複製は、1ノードに1個までしか作成されないこととなる。この処理において、ブロック配分判定部214は、ブロック位置情報を参照してもよい。ブロック配分判定部214は、選出されたワーカーノードに、ワーカーノードストレージに選択したブロック(複製対象ブロック)を格納するための十分な空き領域があるか否かを問い合わせる。ブロック配分判定部214は、この問い合わせの結果に基づき、選択したブロック(複製対象ブロック)を格納するための十分な空き領域があるワーカーノードを、選択したブロック(複製対象ブロック)の複製を格納するための候補のワーカーノードとする。 When the current number of duplicates meets the condition of step E4 in FIG. 12 (step E4 in FIG. 12, "Yes"), the block allocation determination unit 214 selects all the worker nodes that do not store the block to be duplicated. Only one block can be duplicated per node. In this process, the block allocation determination unit 214 may refer to the block position information. The block allocation determination unit 214 inquires whether or not the selected worker node has sufficient free space for storing the selected block (replication target block) in the worker node storage. Based on the result of this inquiry, the block allocation determination unit 214 stores a copy of the selected block (replication target block) in a worker node having sufficient free space for storing the selected block (replication target block). Candidate worker node for.
 ブロック配分判定部214は、候補のワーカーノードの中からランダムに1つのワーカーノードを選択する。この処理において、例えば、ブロック配分判定部214は、ワーカーノードストレージに最も大きな空き領域があるワーカーノードを選んでもよい。ブロック配分判定部214は、候補のワーカーノードのリストを作成し、所定の乱数を用いて1つのワーカーノードを選択してもよい。あるいは、乱数の代わりに現在時刻をマイクロ秒単位で取得し、末尾の所定の桁数の数字を用いてもよい。選択されたワーカーノードを、格納先ワーカーノードとする。 The block allocation determination unit 214 randomly selects one worker node from the candidate worker nodes. In this process, for example, the block allocation determination unit 214 may select the worker node having the largest free space in the worker node storage. The block allocation determination unit 214 may create a list of candidate worker nodes and select one worker node using a predetermined random number. Alternatively, instead of a random number, the current time may be acquired in microseconds, and a number having a predetermined number of digits at the end may be used. The selected worker node is set as the storage destination worker node.
 ブロック配分判定部214は、ブロック位置情報を参照して、選択したブロック(複製対象ブロック)がすでに格納されているワーカーノードの1つを送信元ワーカーノードとする。選択したブロック(複製対象ブロック)がすでに格納されているワーカーノードが複数ある場合、ブロック配分判定部214は、これらの中の1つを任意に選択してもよい。例えば、ブロック配分判定部214は、図14の例では、先頭に位置するワーカーノードを選択してもよい。例えば、ブロック配分判定部214は、各ワーカーノードにpingなどの信号を送信し、最も早い時間内に返信が受信されたノードを選択してもよい。 The block allocation determination unit 214 refers to the block position information and sets one of the worker nodes in which the selected block (replication target block) is already stored as the source worker node. When there are a plurality of worker nodes in which the selected block (replication target block) is already stored, the block allocation determination unit 214 may arbitrarily select one of them. For example, the block allocation determination unit 214 may select the worker node located at the head in the example of FIG. For example, the block allocation determination unit 214 may transmit a signal such as a ping to each worker node and select the node for which the reply is received within the earliest time.
 ブロック配分判定部214は、選択したブロック(複製対象ブロック)を格納先ワーカーノードに送信するよう、送信元ワーカーノードに対して要求する。ブロック配分判定部214は、選択したブロック(複製対象ブロック)を格納するよう格納先ワーカーノードに対して要求する。送信元ワーカーノードは選択したブロック(複製対象ブロック)を格納先ワーカーノードに送信する。格納先ワーカーノードは、送信元ワーカーノードから選択したブロック(複製対象ブロック)を受信し、選択したブロック(複製対象ブロック)を格納する(図12のステップE5)。ブロック配分判定部214は、図12のステップE2で選出された全てのブロックに対して、上記の処理を繰り返す(図12のステップE6)。 The block allocation determination unit 214 requests the source worker node to send the selected block (replication target block) to the storage destination worker node. The block allocation determination unit 214 requests the storage destination worker node to store the selected block (replication target block). The source worker node sends the selected block (replication target block) to the storage destination worker node. The storage destination worker node receives the block (replication target block) selected from the source worker node, and stores the selected block (replication target block) (step E5 in FIG. 12). The block allocation determination unit 214 repeats the above processing for all the blocks selected in step E2 of FIG. 12 (step E6 of FIG. 12).
 次に、図12を参照してブロックの複製数を減少させる処理を説明する(図12のステップE7からステップE10)。 Next, the process of reducing the number of duplicate blocks will be described with reference to FIG. 12 (steps E7 to E10 in FIG. 12).
 ブロック配分判定部214は、複製数を減少する対象のブロックを選択する。ブロック配分判定部214は、ブロック位置情報2151を参照し、複製数が既定値より多いブロックを抽出する。図14は、ブロック位置情報2151の例を示す。この抽出のために、ブロック配分判定部214は、ブロック位置情報2151を参照し、各ブロックについてブロック及びその複製が格納されているワーカーノード(ノード)の数をカウントする。ブロックの複製数を増加させる処理(図12のステップE1からE6)で説明されたように、ブロックの複製は1ノードに1個までしか作成されない。このため、ノード数をカウントすれば、ブロックとその複製の数がカウントされる。 The block allocation determination unit 214 selects the target block for which the number of duplicates is to be reduced. The block allocation determination unit 214 refers to the block position information 2151 and extracts blocks having a larger number of duplicates than the default value. FIG. 14 shows an example of block position information 2151. For this extraction, the block allocation determination unit 214 refers to the block position information 2151 and counts the number of worker nodes (nodes) in which the blocks and their duplicates are stored for each block. As described in the process of increasing the number of duplicate blocks (steps E1 to E6 in FIG. 12), only one block duplicate can be created per node. Therefore, if the number of nodes is counted, the number of blocks and their duplications is counted.
 ブロック配分判定部214は、各ブロックについてブロック及びその複製の数を、既定値と比較する。ブロック配分判定部214は、既定値より多いと判断した場合に、該当するブロックを抽出する。この既定値は、ユーザによって予め指定された数であってもよい。この既定値は、ブロックの複製数を減少させる処理の開始時に、ブロック配分判定部214は、クラスタサーバシステム2全体のワーカーストレージの使用率が例えば90%といった所定の閾値よりも大きい場合に、この既定値から1を除算してもよい。 The block allocation determination unit 214 compares the number of blocks and their duplicates with the default value for each block. When the block allocation determination unit 214 determines that the number is greater than the default value, the block allocation determination unit 214 extracts the corresponding block. This default value may be a number preset by the user. This default value is set when the block allocation determination unit 214 starts the process of reducing the number of duplicate blocks when the usage rate of the worker storage of the entire cluster server system 2 is larger than a predetermined threshold value such as 90%. You may divide 1 from the default value.
 抽出されたブロックは複数個になることもある。ブロック配分判定部214は、図12のステップE1で選出した複製対象ブロックを、予め削除の対象外としてもよい(図12のステップE7)。ブロック配分判定部214は、クラスタ全体のブロック読込情報2153を参照し、抽出したブロックの読み込み回数を取得する(図12のステップE8)。ブロック配分判定部214は、抽出したブロックの各々について、読み込み回数が閾値(以下、READ閾値という)以下であるか否かを判断する(図12のステップE9)。 The extracted blocks may be multiple. The block allocation determination unit 214 may exclude the copy target block selected in step E1 of FIG. 12 from the deletion target in advance (step E7 of FIG. 12). The block allocation determination unit 214 refers to the block read information 2153 of the entire cluster and acquires the number of times the extracted block is read (step E8 in FIG. 12). The block allocation determination unit 214 determines whether or not the number of readings is equal to or less than the threshold value (hereinafter referred to as READ threshold value) for each of the extracted blocks (step E9 in FIG. 12).
 読み込み回数がREAD閾値以下であるブロックについて、ブロック配分判定部214は、ブロック位置情報を参照し、そのようなブロックが格納されているワーカーノードをランダムに選出する。この処理において、例えば、ブロック配分判定部214は、候補のワーカーノードのリストを作成し、所定の乱数を用いて1つのワーカーノードを選択してもよい。あるいは、乱数の代わりに現在時刻をマイクロ秒単位で取得し、末尾の所定の桁数の数字を用いてもよい。あるいは、ブロック配分判定部214は、ワーカーノードストレージに最も小さな空き領域があるワーカーノードを選んでもよい。 For blocks whose read count is less than or equal to the READ threshold value, the block allocation determination unit 214 refers to the block position information and randomly selects a worker node in which such a block is stored. In this process, for example, the block allocation determination unit 214 may create a list of candidate worker nodes and select one worker node using a predetermined random number. Alternatively, instead of a random number, the current time may be acquired in microseconds, and a number having a predetermined number of digits at the end may be used. Alternatively, the block allocation determination unit 214 may select the worker node having the smallest free space in the worker node storage.
 ブロック配分判定部214は、選択されたワーカーノードに削除の対象のブロックを削除するよう、要求する。選択されたワーカーノードは、ブロック配分判定部214からの要求を受信し、該当するブロックを削除する(図12のステップE10)。抽出されたブロックが複数個である場合、ブロック配分判定部214は、この処理を抽出されたブロック1つずつに関して実行する。 The block allocation determination unit 214 requests the selected worker node to delete the block to be deleted. The selected worker node receives the request from the block allocation determination unit 214 and deletes the corresponding block (step E10 in FIG. 12). When there are a plurality of extracted blocks, the block allocation determination unit 214 executes this process for each extracted block.
 READ閾値はユーザが指定するものであってもよい。READ閾値を用いた上述のような処理により、クラスタサーバシステム2は、読み込み回数に基づいてブロックが利用される頻度を判断することができる。クラスタサーバシステム2は、あまり使用されていないと判断されたブロックを削除し得る。これにより、システム全体のストレージの有効な利用が図られ得る。一方、クラスタサーバシステム2は、READ閾値以上のブロックを利用される頻度が高いブロックであると判断し得る。クラスタサーバシステム2は、このようなブロックを削除せずに複製数を維持し得る。これにより、クラスタサーバシステム2は、アクセスの頻度の高いファイルを高速に読み出すことができ得る。 The READ threshold may be specified by the user. By the above-mentioned processing using the READ threshold value, the cluster server system 2 can determine the frequency of use of the block based on the number of reads. Cluster server system 2 may delete blocks that are determined to be underutilized. As a result, the storage of the entire system can be effectively used. On the other hand, the cluster server system 2 can determine that the blocks above the READ threshold are frequently used. Cluster server system 2 can maintain the number of replicas without deleting such blocks. As a result, the cluster server system 2 can read frequently accessed files at high speed.
 ブロックの複製数を増加させる処理と、ブロックの複製数を減少させる処理とは、順序が逆でもよい。ブロックの複製数を増加させる処理と、ブロックの複製数を減少させる処理とは、別個独立に実行されてもよい。 The order of the process of increasing the number of duplicate blocks and the process of decreasing the number of duplicate blocks may be reversed. The process of increasing the number of duplicates of a block and the process of decreasing the number of duplicates of a block may be executed separately and independently.
 図20は、コンピュータの構成の例を示す。上述のノード、ワーカーノード、マスタノードなどは、図20と同一、もしくは類似の構成を有してもよい。図20の構成は、CPU(central processing unit、中央処理装置)、メモリ、ストレージ、送受信機を含み得る。ストレージはHDD(hard disk drive、ハードディスク)やSSD(solid state drive)であり得る。ストレージは、ストレージエリアネットワークを含み得る。複数のコンピュータが、ストレージを共有してもよい。ストレージは、ネットワーク上のストレージや、ストレージエリアネットワークを含み得る。図20のコンピュータは光学式ドライブや光磁気記録装置を更に有してもよい。送受信機は、10BASE-T、1000BASE-T、無線通信装置、光通信装置などであってもよい。図20は、コンピュータは、一般用途のコンピュータであってもよい。図20は、コンピュータは、OS(operating system)を含んでもよい。図20は、コンピュータは、複数のコンピュータから構成されてもよい。図20は、コンピュータは、1台のコンピュータに複数の実行環境を含むものでもよい。上記の実施形態は、ソフトウェアによって実装されてもよい。 FIG. 20 shows an example of a computer configuration. The above-mentioned node, worker node, master node and the like may have the same or similar configuration as that in FIG. The configuration of FIG. 20 may include a CPU (central processing unit), memory, storage, and transmitter / receiver. The storage can be an HDD (hard disk drive, hard disk) or SSD (solid state drive). Storage may include a storage area network. Multiple computers may share storage. The storage may include storage on the network or a storage area network. The computer of FIG. 20 may further include an optical drive or a magnetic recording device. The transmitter / receiver may be 10BASE-T, 1000BASE-T, a wireless communication device, an optical communication device, or the like. In FIG. 20, the computer may be a general purpose computer. In FIG. 20, the computer may include an OS (operating system). In FIG. 20, the computer may be composed of a plurality of computers. In FIG. 20, the computer may include a plurality of execution environments on one computer. The above embodiments may be implemented by software.
 図21は、本実施の形態における分散処理システムの制御装置(マスタノード31)を示す図である。マスタノード31は、複製対象のブロックを選択する選択手段311と、ワーカーノードへブロックの複製の作成要求を送信する要求手段312と、を含む。 FIG. 21 is a diagram showing a control device (master node 31) of the distributed processing system according to the present embodiment. The master node 31 includes a selection means 311 for selecting a block to be replicated, and a request means 312 for sending a request to create a duplicate of the block to the worker node.
 図22は、図21の分散処理システムの制御装置(マスタノード31)の処理の流れを表すフローチャートである。選択手段311は、複製対象のブロックを選択する(図22のステップE11)。要求手段312は、複製要求をワーカーノードへ送信する(図22のステップE12)。 FIG. 22 is a flowchart showing the processing flow of the control device (master node 31) of the distributed processing system of FIG. 21. The selection means 311 selects the block to be duplicated (step E11 in FIG. 22). Request means 312 sends a replication request to the worker node (step E12 in FIG. 22).
 「他の側面」
 上記の実施形態のほか、例えば、以下のような側面があってもよい。
"Other aspects"
In addition to the above embodiments, for example, the following aspects may be present.
 第1の側面は、全体ブロック転送情報に格納された分散処理システムにおけるブロックの転送回数を参照し、複製対象のブロックを選択し、ブロックの複製の作成の要求を送信する、マスタノードと、マスタノードからブロックの複製の作成の要求を受信して前記ブロックを送信する、第1のワーカーノードと、ブロックを受信して前記ブロックの複製を格納する、第2のワーカーノードと、を含む、分散処理システムであり得る。 The first aspect refers to the number of block transfers in the distributed processing system stored in the total block transfer information, selects the block to be replicated, and sends a request to create a duplicate of the block, the master node and the master. Distributed, including a first worker node that receives a request from a node to create a duplicate of the block and sends the block, and a second worker node that receives the block and stores the duplicate of the block. It can be a processing system.
 第2の側面は、上記の分散処理システムであって、マスタノードが、ブロック位置情報から得た各ブロックの格納先のワーカーノードの数を参照し、ブロックの複製の作成の要求を送信するか否かを判断する、分散処理システムであり得る。 The second aspect is the above-mentioned distributed processing system, in which the master node refers to the number of worker nodes in which each block is stored obtained from the block position information and sends a request for making a duplicate of the block. It can be a distributed processing system that determines whether or not.
 第3の側面は、上記の分散処理システムであって、マスタノードが、複製対象のブロックの複製の数が所定の数より多く、すべてのワーカーノードの数より少ない場合に、ブロックの複製の作成の要求を送信する、分散処理システムであり得る。 The third aspect is the above-mentioned distributed processing system, in which the master node creates duplicates of blocks when the number of duplicates of the block to be replicated is more than a predetermined number and less than the number of all worker nodes. It can be a distributed processing system that sends requests for.
 第4の側面は、上記の分散処理システムであって、マスタノードが、ブロックの複製の作成のための空きのリソースを有するワーカーノードを第2のワーカーノードとして選択する、分散処理システムでありえる。 The fourth aspect is the above-mentioned distributed processing system, which may be a distributed processing system in which the master node selects a worker node having free resources for creating a duplicate of a block as a second worker node.
 第5の側面は、上記の分散処理システムであって、マスタノードが、複製対象のブロックを格納していないワーカーノードの中からランダムに第2のワーカーノードを選択する、分散処理システムでありえる。 The fifth aspect is the above-mentioned distributed processing system, which can be a distributed processing system in which the master node randomly selects a second worker node from among the worker nodes that do not store the block to be replicated.
 第6の側面は、上記の分散処理システムであって、マスタノードが、各ブロックの格納先のワーカーノード示すブロック位置情報を参照して削除するブロックを判断し、削除するブロックを格納する第3のワーカーノードを選択して、第3のワーカーノードに削除の要求を送信し、第3のワーカーノードが、削除の要求を受信し、削除するブロックを削除する、分散処理システムでありえる。 The sixth aspect is the above-mentioned distributed processing system, in which the master node determines the block to be deleted by referring to the block position information indicated by the worker node in which each block is stored, and stores the block to be deleted. It can be a distributed processing system that selects a worker node in the field, sends a deletion request to a third worker node, and the third worker node receives the deletion request and deletes the block to be deleted.
 第7の側面は、上記の分散処理システムであって、マスタノードが、ブロック位置情報から得た各ブロックの格納先のワーカーノードの数を参照し、格納先のワーカーノードの数が所定の数より多い場合に、第3のワーカーノードに削除の要求を送信する、分散処理システムであり得る。 The seventh aspect is the above-mentioned distributed processing system, in which the master node refers to the number of storage destination worker nodes of each block obtained from the block position information, and the number of storage destination worker nodes is a predetermined number. It could be a distributed processing system that sends a delete request to a third worker node when there are more.
 第8の側面は、上記の分散処理システムであって、マスタノードが、削除するブロックを格納するワーカーノードの中からランダムに第3のワーカーノードを選択する、分散処理システムでありえる。 The eighth aspect is the above-mentioned distributed processing system, which can be a distributed processing system in which the master node randomly selects a third worker node from the worker nodes that store the blocks to be deleted.
 第9の側面は、マスタノードとワーカーノードとを含む分散処理システムの制御方法であって、全体ブロック転送情報に格納された分散処理システムにおけるブロックの転送回数を参照して複製対象のブロックを選択するステップと、ブロックの複製を格納するステップと、を含む制御方法であり得る。 The ninth aspect is the control method of the distributed processing system including the master node and the worker node, and the block to be duplicated is selected by referring to the number of block transfers in the distributed processing system stored in the total block transfer information. It can be a control method that includes a step of performing and a step of storing a duplicate of the block.
 第10の側面は、分散処理システムにおける制御装置であって、全体ブロック転送情報に格納された分散処理システムにおけるブロックの転送回数を参照し、複製対象のブロックを選択し、ブロックの複製の作成の要求をワーカーノードへ送信する、分散処理システムにおける制御装置であり得る。 The tenth aspect is the control device in the distributed processing system, which refers to the number of block transfers in the distributed processing system stored in the total block transfer information, selects the block to be duplicated, and creates a duplicate of the block. It can be a controller in a distributed processing system that sends requests to worker nodes.
 上記の実施形態により、例えば、ブロックのネットワーク転送を抑え、ネットワーク負荷によるシステム全体の性能を向上させることが可能となり得る。上記の実施形態では、頻繁に処理対象となるブロックについて、複製数を増やし、各ワーカーノードに分散して格納し得る。このため、そのようなブロックを持つワーカーノード数をシステム全体として増やすことができる。これにより、他のワーカーノードからのブロックの転送の頻度を抑えることが可能となり得る。また、ジョブが実行されるワーカーノード上に処理対象ブロックが存在する確率を上げることができる。このため、ジョブの実行をより短い時間で完了することができ得る。 According to the above embodiment, for example, it is possible to suppress network transfer of blocks and improve the performance of the entire system due to network load. In the above embodiment, the number of duplicates of the blocks to be processed frequently can be increased and stored in each worker node in a distributed manner. Therefore, the number of worker nodes having such blocks can be increased as a whole system. This can reduce the frequency of block transfers from other worker nodes. In addition, the probability that the processing target block exists on the worker node on which the job is executed can be increased. Therefore, the job execution can be completed in a shorter time.
 また、上記の実施形態によれば、複製数がすでに増加されたブロックについて、利用頻度が下がった場合、その複製ブロックを自動的に削除し得る。このため、上記の実施形態によれば、クラスタ全体でストレージリソースの逼迫を防ぐことが可能となり得る。 Further, according to the above embodiment, the duplicated block can be automatically deleted when the frequency of use of the block whose number of duplicates has already been increased decreases. Therefore, according to the above embodiment, it may be possible to prevent the storage resource from becoming tight in the entire cluster.
 以上の開示は例である。従って、本願と本発明は、上記の実施形態などの開示のみに限定して解釈されるべきではない。 The above disclosure is an example. Therefore, the present application and the present invention should not be construed as being limited to the disclosure of the above embodiments and the like.
 この出願は、2020年3月17日に出願された日本国特願2020-046542号を基礎とする優先権を主張し、その開示の全てをここに取り込む。 This application claims priority based on Japanese Patent Application No. 2020-046542 filed on March 17, 2020, and incorporates all of its disclosures here.
 本発明は、分散処理システム、分散処理システムの制御方法、及び、分散処理システムの制御装置に適用してもよい。 The present invention may be applied to a distributed processing system, a control method for a distributed processing system, and a control device for a distributed processing system.
211 クラスタリソース管理部
212 クラスタデータ管理部
213 ブロック情報収集部
214 ブロック配分判定部
215 マスタノードストレージ
221 ワーカーノード
222 ワーカーノード
223 ワーカーノード
224 ワーカーノード
225 ワーカーノード
2151 ブロック位置情報
2152 全体ブロック転送情報
2153 全体ブロック読込情報
2211 ジョブ実行管理部
2212 データ管理部
2213 データ通信部
2214 ブロック情報収集部
2215 ワーカーノードストレージ
22151 ブロック転送情報
22152 ブロック読込情報
211 Cluster resource management unit 212 Cluster data management unit 213 Block information collection unit 214 Block allocation judgment unit 215 Master node storage 221 Worker node 222 Worker node 223 Worker node 224 Worker node 225 Worker node 2151 Block position information 2152 Overall block transfer information 2153 Overall Block read information 2211 Job execution management unit 2212 Data management unit 2213 Data communication unit 2214 Block information collection unit 2215 Worker node storage 22151 Block transfer information 22152 Block read information

Claims (10)

  1.  全体ブロック転送情報に格納された分散処理システムにおけるブロックの転送回数を参照し、複製対象のブロックを選択し、ブロックの複製の作成の要求を送信する、マスタノードと、
     前記マスタノードから前記ブロックの複製の作成の要求を受信して前記ブロックを送信する、第1のワーカーノードと、
     前記ブロックを受信して前記ブロックの複製を格納する、第2のワーカーノードと、
    を具備する前記分散処理システム。
    A master node that refers to the number of block transfers in the distributed processing system stored in the total block transfer information, selects the block to be duplicated, and sends a request to create a duplicate of the block.
    A first worker node that receives a request from the master node to create a duplicate of the block and transmits the block, and
    A second worker node that receives the block and stores a copy of the block,
    The distributed processing system comprising.
  2.  前記マスタノードが、ブロック位置情報から得た各ブロックの格納先のワーカーノードの数を参照し、前記ブロックの複製の作成の要求を送信するか否かを判断する、
    請求項1に記載の分散処理システム。
    The master node refers to the number of worker nodes in which each block is stored obtained from the block position information, and determines whether or not to send a request for creating a duplicate of the block.
    The distributed processing system according to claim 1.
  3.  前記マスタノードは、前記複製対象のブロックの複製の数が所定の数より多く、すべてのワーカーノードの数より少ない場合に、前記ブロックの複製の作成の要求を送信する、請求項1または2に記載の分散処理システム。 In claim 1 or 2, the master node sends a request to create a duplicate of the block when the number of duplicates of the block to be replicated is more than a predetermined number and less than the number of all worker nodes. Described distributed processing system.
  4.  前記マスタノードが、前記ブロックの複製の作成のための空きのリソースを有するワーカーノードを前記第2のワーカーノードとして選択する、請求項1乃至3のいずれか一項に記載の分散処理システム。 The distributed processing system according to any one of claims 1 to 3, wherein the master node selects a worker node having a free resource for creating a duplicate of the block as the second worker node.
  5.  前記マスタノードが、前記複製対象のブロックを格納していないワーカーノードの中からランダムに前記第2のワーカーノードを選択する、
    請求項1乃至4のいずれか一項に記載の分散処理システム。
    The master node randomly selects the second worker node from the worker nodes that do not store the block to be replicated.
    The distributed processing system according to any one of claims 1 to 4.
  6.  前記マスタノードが、各ブロックの格納先のワーカーノード示すブロック位置情報を参照して削除するブロックを判断し、前記削除するブロックを格納する第3のワーカーノードを選択して、前記第3のワーカーノードに削除の要求を送信し、
     前記第3のワーカーノードが、前記削除の要求を受信し、前記削除するブロックを削除する、
    請求項1乃至5のいずれか一項に記載の分散処理システム。
    The master node determines a block to be deleted by referring to the block position information indicated by the worker node in which each block is stored, selects a third worker node to store the block to be deleted, and selects the third worker node. Send a delete request to the node and
    The third worker node receives the deletion request and deletes the deletion block.
    The distributed processing system according to any one of claims 1 to 5.
  7.  前記マスタノードが、前記ブロック位置情報から得た各ブロックの格納先のワーカーノードの数を参照し、前記格納先のワーカーノードの数が所定の数より多い場合に、前記第3のワーカーノードに削除の要求を送信する、
    請求項6に記載の分散処理システム。
    The master node refers to the number of worker nodes of the storage destination of each block obtained from the block position information, and when the number of worker nodes of the storage destination is larger than a predetermined number, the third worker node is assigned. Send a request for deletion,
    The distributed processing system according to claim 6.
  8.  前記マスタノードが、前記削除するブロックを格納するワーカーノードの中からランダムに前記第3のワーカーノードを選択する、請求項6または7に記載の分散処理システム。 The distributed processing system according to claim 6 or 7, wherein the master node randomly selects the third worker node from the worker nodes that store the blocks to be deleted.
  9.  マスタノードとワーカーノードとを含む分散処理システムの制御方法であって、前記制御方法は、
     全体ブロック転送情報に格納された分散処理システムにおけるブロックの転送回数を参照して複製対象のブロックを選択することと、
     前記ブロックの複製を格納することと、
    を具備する前記制御方法。
    A control method for a distributed processing system including a master node and a worker node.
    Select the block to be duplicated by referring to the number of block transfers in the distributed processing system stored in the total block transfer information.
    To store a copy of the block
    The control method comprising.
  10.  複製対象のブロックを選択する選択手段と、
     ワーカーノードへブロックの複製の作成要求を送信する要求手段と、
    を具備する分散処理システムの制御装置。
    A selection method for selecting the block to be duplicated, and
    A request means for sending a request to create a duplicate of a block to a worker node, and
    A control device for a distributed processing system.
PCT/JP2021/008961 2020-03-17 2021-03-08 Distributed processing system, control method for distributed processing system, and control device for distributed processing system WO2021187194A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2022508224A JP7435735B2 (en) 2020-03-17 2021-03-08 Distributed processing system, distributed processing system control method, and distributed processing system control device

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2020046542 2020-03-17
JP2020-046542 2020-03-17

Publications (1)

Publication Number Publication Date
WO2021187194A1 true WO2021187194A1 (en) 2021-09-23

Family

ID=77771223

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/008961 WO2021187194A1 (en) 2020-03-17 2021-03-08 Distributed processing system, control method for distributed processing system, and control device for distributed processing system

Country Status (2)

Country Link
JP (1) JP7435735B2 (en)
WO (1) WO2021187194A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116088763A (en) * 2023-02-09 2023-05-09 北京志凌海纳科技有限公司 Copy allocation strategy system and method for optimizing recovery rate

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110161294A1 (en) * 2009-12-30 2011-06-30 Sun Microsystems, Inc. Method for determining whether to dynamically replicate data
CN106547854A (en) * 2016-10-20 2017-03-29 天津大学 Distributed file system storage optimization power-economizing method based on greedy glowworm swarm algorithm
CN108519856A (en) * 2018-03-02 2018-09-11 西北大学 Based on the data block copy laying method under isomery Hadoop cluster environment

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110161294A1 (en) * 2009-12-30 2011-06-30 Sun Microsystems, Inc. Method for determining whether to dynamically replicate data
CN106547854A (en) * 2016-10-20 2017-03-29 天津大学 Distributed file system storage optimization power-economizing method based on greedy glowworm swarm algorithm
CN108519856A (en) * 2018-03-02 2018-09-11 西北大学 Based on the data block copy laying method under isomery Hadoop cluster environment

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116088763A (en) * 2023-02-09 2023-05-09 北京志凌海纳科技有限公司 Copy allocation strategy system and method for optimizing recovery rate
CN116088763B (en) * 2023-02-09 2023-07-18 北京志凌海纳科技有限公司 Copy allocation strategy system and method for optimizing recovery rate

Also Published As

Publication number Publication date
JPWO2021187194A1 (en) 2021-09-23
JP7435735B2 (en) 2024-02-21

Similar Documents

Publication Publication Date Title
JP7102460B2 (en) Data management method in distributed storage device and distributed storage device
US11461015B2 (en) Available storage space in a system with varying data redundancy schemes
JP5320678B2 (en) Data distribution storage system, data distribution method, apparatus used therefor, and program thereof
CN107209714B (en) Distributed storage system and control method of distributed storage system
US20190278719A1 (en) Primary Data Storage System with Data Tiering
US9361034B2 (en) Transferring storage resources between snapshot storage pools and volume storage pools in a distributed network
US8650381B2 (en) Storage system using real data storage area dynamic allocation method
JP5343166B2 (en) Local file server for transferring files to remote file server via communication network, and storage system having these file servers
JP4265245B2 (en) Computer system
US8661055B2 (en) File server system and storage control method
JP5973089B2 (en) Storage system migration method and migration method
WO2014007249A1 (en) I/o node and control method of cache memory provided in plurality of calculation nodes
CN110908589B (en) Data file processing method, device, system and storage medium
JP2022541261A (en) Resource allocation methods, storage devices, and storage systems
US10394484B2 (en) Storage system
WO2021187194A1 (en) Distributed processing system, control method for distributed processing system, and control device for distributed processing system
JP5853109B2 (en) Computer, computer system controller and recording medium
WO2017109822A1 (en) Storage system having deduplication function
KR101531564B1 (en) Method and System for load balancing of iSCSI storage system used network distributed file system and method
KR102084031B1 (en) Method for managing integrated local storage and apparatus therefor
US11354160B2 (en) Methods for managing storage quota assignment in a distributed system and devices thereof
WO2015198371A1 (en) Storage system and memory control method
KR20150061314A (en) Method and System for recovery of iSCSI storage system used network distributed file system
JP6796604B2 (en) Network management system and network management method
KR101099130B1 (en) A storage management system with virtual volumes

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

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2022508224

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 21772311

Country of ref document: EP

Kind code of ref document: A1