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

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

Info

Publication number
JP7435735B2
JP7435735B2 JP2022508224A JP2022508224A JP7435735B2 JP 7435735 B2 JP7435735 B2 JP 7435735B2 JP 2022508224 A JP2022508224 A JP 2022508224A JP 2022508224 A JP2022508224 A JP 2022508224A JP 7435735 B2 JP7435735 B2 JP 7435735B2
Authority
JP
Japan
Prior art keywords
block
node
worker
processing system
distributed processing
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
JP2022508224A
Other languages
Japanese (ja)
Other versions
JPWO2021187194A1 (en
Inventor
真路 小川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Publication of JPWO2021187194A1 publication Critical patent/JPWO2021187194A1/ja
Application granted granted Critical
Publication of JP7435735B2 publication Critical patent/JP7435735B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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

Landscapes

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

Description

後述の実施の形態は、例えば、分散処理システム、分散処理システム制御方法、及び、分散処理システム制御装置に関する。 The embodiments described below 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 illustrative and does not limit the scope of this application or the 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 can be performed in which a job requested to be executed is deployed to multiple nodes and executed in parallel. Parallel distributed storage used in distributed processing systems can store data called blocks, which are each file divided into blocks of a certain size (for example, 128 MB). Parallel distributed storage may be composed of two or more nodes or computers. In parallel distributed storage, for example, a block can be replicated into three and distributed across multiple nodes.

あるノードにおいて、実行を要求されたジョブの処理対象のブロックが、そのあるノード上に格納されている場合、このノードのストレージからブロックを読み込み得る。また、そのあるノード上に処理対象のブロックが存在しない場合、処理対象ブロックを持つ他のノードにブロックの転送を要求し得る。 If a block to be processed by a job requested to be executed is stored on that node, the block can be read from the storage of this node. Furthermore, if a block to be processed does not exist on a certain node, a request may be made to another node that has the block to be processed to transfer the block.

このように、ジョブを実行するノードに処理対象ブロックが存在しない時に、ブロックのネットワーク転送が発生し得る。ブロックのネットワーク転送が頻発する場合、ネットワーク負荷の増大のため、分散処理システム全体の性能が低下することがあり得る。 In this way, network transfer of a block may occur when the block to be processed does not exist in the node that executes the job. When blocks are frequently transferred to a network, the performance of the entire distributed processing system may deteriorate due to an increase in network load.

例えば、大量ユーザが分散処理システムに同時アクセスし、大量のジョブが実行されることがあり得る。このような状況では、多くのジョブが処理対象ブロックの格納されているノード以外で実行されることがあり得る。こうした場合、処理対象ブロックのネットワーク転送が頻発し得る。このため、分散処理システムを構成するクラスタ全体でデータ転送量が多くなることがあり得る。 For example, a large number of users may simultaneously access a distributed processing system 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 blocks to be processed may occur frequently. For this reason, the amount of data transferred may increase throughout the cluster that constitutes the distributed processing system.

後述の特許文献のうち、例えば、特許文献4は、「分散システム」に関連し得る。しかし、特許文献4の全体のアーキテクチャは、上記のようなネットワーク負荷の増大を解消し得るものではない。 Among the patent documents mentioned below, for example, Patent Document 4 may relate 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 source and destination blocks may be swapped (see FIG. 4, paragraphs 0034 to 0036, etc.). However, even if blocks are simply replaced, if a large number of accesses occur to a block at the same time, accesses may concentrate on a specific node that stores the block. In Patent Document 4, a large number of access requests may cause bottlenecks and response delays.

特許文献4にはApache Hadoopのレプリケーションの例も記載されている。とはいえ、特許文献4は、図4のステップ47にもあるように、ブロックの交換を行うにすぎない。特許文献4は、この交換の際に、Apache Hadoopのレプリケーションポリシーを参照し得る。即ち、特許文献4は、ブロックの交換を行うことを開示するにすぎない。特許文献4においては、あるブロックに対して同時接続で大量のアクセスが発生する場合、そのブロックを持っている特定のノードにアクセスが集中する可能性がありえる。実際、特許文献4は、どのようなタイミングでレプリケーションを行うのかについて、開示も示唆もしていない。 Patent Document 4 also describes an example of Apache Hadoop replication. However, as shown in step 47 of FIG. 4, Patent Document 4 merely exchanges blocks. Patent Document 4 may refer to Apache Hadoop's replication policy during this exchange. That is, Patent Document 4 merely discloses that blocks are exchanged. In Patent Document 4, when a large number of accesses occur to a certain block through simultaneous connections, there is a possibility that the accesses will be concentrated on a specific node that owns the block. In fact, Patent Document 4 neither discloses nor suggests at what timing replication should be performed.

上述の開示は例示であり、本願や本発明の範囲を限定するものではない。 The above disclosure is illustrative and does not limit the scope of the present application or invention.

特開2017-191387号公報Japanese Patent Application Publication No. 2017-191387 特開2017-016404号公報Japanese Patent Application Publication No. 2017-016404 特表2015-532997号公報Special Publication No. 2015-532997 特開2014-186364号公報Japanese Patent Application Publication No. 2014-186364 特開2004-126716号公報Japanese Patent Application Publication No. 2004-126716

以下は例示であり、本願や本発明の範囲を限定するものではない。 The following is an illustration and does not limit the scope of this application or the present invention.

一般に、分散処理システムにおいて、ブロックのネットワーク転送をできるだけ抑え、ネットワーク負荷を抑制することが好ましい。これにより、分散処理システムにおいて、システム全体の性能を向上させることができ得る。 Generally, in a distributed processing system, it is preferable to suppress network transfer of blocks as much as possible to suppress network load. This may improve the performance of the entire system in the distributed processing system.

上記の点は、本願や本発明の範囲を限定するものではない。 The above points are not intended to limit the scope of the present application or the present invention.

以下の記載は例示であり、本願や本発明の範囲を限定するものではない。 The following description is illustrative and does not limit the scope of the present application or the present invention.

後述の実施の形態においては、例えば、分散処理システムが開示され得る。この分散処理システムは、全体ブロック転送情報に格納された分散処理システムにおけるブロックの転送回数を参照し、複製対象のブロックを選択し、ブロックの複製の作成の要求を送信する、マスタノードと、マスタノードからブロックの複製の作成の要求を受信してブロックを送信する、第1のワーカーノードと、ブロックを受信してブロックの複製を格納する、第2のワーカーノードと、を具備してもよい。 In the embodiments described below, for example, a distributed processing system may be disclosed. This distributed processing system consists of a master node that refers to the number of block transfers in the distributed processing system stored in the overall block transfer information, selects a block to be copied, and sends a request to create a copy of the block. The method may include a first worker node that receives a request to create a block copy from a node and transmits the block, and a second worker node that receives the block and stores the block copy. .

後述の実施の形態においては、例えば、分散処理システムの制御方法が開示され得る。この分散処理システムの制御方法は、マスタノードとワーカーノードとを含む分散処理システムの制御方法であって、全体ブロック転送情報に格納された分散処理システムにおけるブロックの転送回数を参照して複製対象のブロックを選択することと、ブロックの複製を格納することと、を具備してもよい。 In the embodiments described below, for example, a method for controlling a distributed processing system may be disclosed. This distributed processing system control method is a method for controlling a distributed processing system including a master node and worker nodes, and refers to the number of block transfers in the distributed processing system stored in the overall block transfer information. The method may include selecting a block and storing a copy of the block.

後述の実施の形態においては、例えば、分散処理システムにおける制御装置が開示され得る。この制御装置は、全体ブロック転送情報に格納された分散処理システムにおけるブロックの転送回数を参照し、複製対象のブロックを選択し、ブロックの複製の作成の要求をワーカーノードへ送信する、ものであってもよい。 In the embodiments described below, for example, a control device in a distributed processing system may be disclosed. This control device refers to the number of block transfers in the distributed processing system stored in the overall block transfer information, selects a block to be copied, and sends a request to create a block copy to the worker node. It's okay.

上記の点は、本願や本発明の範囲を限定するものではない。 The above points are not intended to limit the scope of the present application or the present invention.

後述の実施の形態によれば、例えば、分散処理システムにおいて、ブロックのネットワーク転送を抑え、ネットワーク負荷を抑制し得る。ただし、これは、本願や本発明の範囲を限定するものではない。 According to the embodiments described below, for example, in a distributed processing system, network transfer of blocks can be suppressed and network load can be suppressed. However, this does not limit the scope of the present application or the present invention.

分散処理システムの第1の実施形態を示す概略図である。FIG. 1 is a schematic diagram showing a first embodiment of a distributed processing system. 処理が実行されるタイミングを示す、タイミングチャートである。3 is a timing chart showing the timing at which processing is executed. 全体ブロック転送情報の例を示す図である。FIG. 3 is a diagram illustrating an example of whole block transfer information. 全体ブロック読込情報の例を示す図である。FIG. 3 is a diagram illustrating an example of whole block read information. ブロック転送情報を取得する処理を説明するための図である。FIG. 3 is a diagram for explaining a process of acquiring block transfer information. ブロック転送情報を取得する処理を説明するための図である。FIG. 3 is a diagram for explaining a process of acquiring block transfer information. ブロック読込情報を取得する処理を説明するための図面である。7 is a diagram for explaining a process of acquiring block reading information. FIG. ブロック読込情報を取得する処理を説明するための図面である。7 is a diagram for explaining a process of acquiring block reading information. FIG. ブロック転送情報とブロック読込情報を収集する処理を示す図である。FIG. 3 is a diagram illustrating a process of collecting block transfer information and block read information. ブロック転送情報とブロック読込情報を収集する処理を示す図である。FIG. 3 is a diagram illustrating a process of collecting block transfer information and block read information. ブロック配分判定部の処理を表す概略図である。FIG. 3 is a schematic diagram illustrating processing of a block allocation determination unit. 図11の処理を詳細に説明するフローチャートである。12 is a flowchart illustrating the process of FIG. 11 in detail. 図12のステップE1の処理の例を表す図である。13 is a diagram illustrating an example of the process of step E1 in FIG. 12. FIG. ブロック位置情報の例を示す図である。FIG. 3 is a diagram showing an example of block position information. 分散処理システムの例を示す図である。FIG. 1 is a diagram illustrating an example of a distributed processing system. ジョブの並列分散処理を説明する図である。FIG. 2 is a diagram illustrating parallel distributed processing of jobs. ジョブの並列分散処理を説明する図である。FIG. 2 is a diagram illustrating parallel distributed processing of jobs. クライアントが分散処理システムにファイルの書き込みを要求する場合の処理を示す、概略図である。FIG. 2 is a schematic diagram showing processing when a client requests a distributed processing system to write a file. 分散処理システムでのジョブの実行に関する概略図である。FIG. 2 is a schematic diagram regarding job execution in a distributed processing system. コンピュータの構成の例を示す図である。1 is a diagram showing an example of the configuration of a computer. 分散処理システムの制御装置を表す図面である。1 is a diagram showing a control device of a distributed processing system. 分散処理システムの制御装置の処理の流れを表すフローチャートである。3 is a flowchart showing the flow of processing of a control device of a distributed processing system.

以下、図面を参照し、いくつかの実施形態について説明する。以下の開示は例示である。本願と本発明は、以下の開示のみに限定して解釈されるべきではない。 Hereinafter, some embodiments will be described with reference to the drawings. The following disclosure is exemplary. This application and the present invention should not be construed as limited to the following disclosure.

「分散処理システムの例」
分散処理システムの例としては、例えば、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 and distributed processing capabilities and a parallel and 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 resources for the entire cluster server system. The master node includes a cluster resource management section and a cluster data management section. The master node has master node storage that stores block location 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 section, a data management section, and a data communication section. Worker nodes have 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, where n is a natural number of 1 or more). This distributed processing system/cluster server system performs parallel distributed processing of jobs.

クライアントは、ネットワークを介してこの分散処理システム/クラスタサーバシステムに接続されたコンピュータである。例えば、図15のクラスタサーバシステムは、クライアントからのリクエストに応じて、ジョブを実行する。 A client is a computer connected to this distributed processing system/cluster server system via a network. For example, the cluster server system in FIG. 15 executes jobs in response to requests from clients.

図16、17は、ジョブの並列分散処理の動作を説明する図である。クライアントは、マスタノードに、ジョブ実行のリクエストを送信する(図16、「1.ジョブ実行をリクエスト」)。マスタノードは、クライアントからのリクエストを受信する。マスタノードは、受信したリクエストに対応するジョブを実行するために、ジョブ管理プロセスを起動するために十分なリソースを持ったワーカーノードを選択する。ジョブは、並列に実行され得る複数のジョブを含み得る。マスタノードは、選択したワーカーノードに割り当てるジョブを決定する。マスタノードは、ジョブ管理プロセスの起動を、選択したワーカーノードに要求する(図16、「2.ジョブ管理プロセスの起動を割り当て」)。 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 (Figure 16, "1. Request job execution"). The master node receives requests from clients. The master node selects a worker node with sufficient resources to launch a job management process to execute the job corresponding to the received request. A job may include multiple jobs that may be executed in parallel. The master node decides which jobs to assign to the selected worker nodes. The master node requests the selected worker node to start the job management process (Figure 16, "2. Assign job management process startup").

要求を受信したワーカーノードのジョブ実行管理部は、ジョブ管理プロセスを起動する(図16、「3.ジョブ管理プロセス起動」)。起動されたジョブ管理プロセスは、マスタノードから割り当てられたジョブを実行するためのリソースを、マスタノードから取得する(図17、「4.ジョブ実行リソースを要求」、「5.ジョブ実行可能リソースを取得」)。換言すれば、図16、17では、ジョブを実行するワーカーノードが選択され、選択されたワーカーノードにジョブが割り当てられ、ジョブが並列分散実行される。 The job execution management unit of the worker node that receives the request starts the job management process (Figure 16, "3. Job management process startup"). The started job management process acquires the resources for executing the job allocated from the master node from the master node (Figure 17, "4. Request job execution resources", "5. Request job executable resources"). "Acquire"). In other words, in FIGS. 16 and 17, a worker node to execute the job is selected, the job is assigned to the selected worker node, and the job is executed in parallel and distributed manner.

ここで、分散処理システムにおける並列分散ストレージについて説明する。並列分散ストレージにおいては、1つのファイルが所定のサイズ(例えば128MB)のデータに分割される。ここで、分割されたデータのことをブロックという。並列分散ストレージにおいては、ブロックが複製され(例えば3個の複製)、ワーカーノードに格納される。 Here, parallel distributed storage in a distributed processing system will be explained. In parallel distributed storage, one file is divided into pieces of data of a predetermined size (for example, 128MB). Here, the divided data is called a block. In parallel distributed storage, blocks are duplicated (for example, three copies) and stored on worker nodes.

図18は、クライアントが分散処理システムにファイルの書き込みを要求する場合の処理を示す、概略図である。クライアントはマスタノードにファイルのクラスタサーバシステムへの書き込みを要求する。このとき、クライアントは、書き込まれるファイルのサイズをマスタノードに通知する。マスタノードのクラスタデータ管理部は、クライアントから要求を受信する(図18、「1.書き込み先の要求」)。クラスタデータ管理部は、書き込み対象のファイルを128MBのブロックに分割する場合、いくつのブロックに分割されるのかを計算する。ファイルのサイズが384MBである場合、このファイルは、3個のブロックに分割されることが分かる。クラスタデータ管理部は、3個のワーカーノードをランダムに選択する。例えば、クラスタデータ管理部は、ワーカーノード1、2、及び3を選択する。 FIG. 18 is a schematic diagram showing processing when a client requests the distributed processing system to write a file. A client requests the master node to write a 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 a request from the client (FIG. 18, "1. Write destination request"). The cluster data management unit calculates how many blocks the file to be written is divided into 128MB blocks. If the file size is 384MB, we 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 information about the worker node to which data will be written to the client. The client receives information about the worker node to which data will be written from the cluster data management unit (Figure 18, "2. Notify writing destination").

クライアントは、書き込み先のワーカーノード(1、2、及び3)のデータ管理部に、分割したファイル(ブロック)の書き込みを要求する(図18、「3.分割したブロックの書き込み要求」)。書き込み要求を受けたワーカーノードは、自身のワーカーノードストレージにブロックを書き込む。ワーカーノードは、さらに、他のワーカーノードに複製したブロックの書き込みを要求する。例えば、ワーカーノード1は、ワーカーノード2に、複製の書き込みを要求する。複製の数は所定の数であってよい。複製の書き込みは、所定の書き込み先であってもよい。このように、クラスタサーバシステムは、所定の数のブロックの複製を作成し、複数のワーカーノードに分散格納する。 The client requests the data management units of the write destination worker nodes (1, 2, and 3) to write the divided files (blocks) (FIG. 18, "3. Request to write divided blocks"). A worker node that receives a write request writes the block to its own worker node storage. The worker node further requests other worker nodes to write the replicated block. For example, worker node 1 requests worker node 2 to write a copy. The number of copies may be a predetermined number. The copy may be written to a predetermined writing destination. In this way, the cluster server system creates copies of a predetermined number of blocks and stores them distributed among multiple worker nodes.

図19は、分散処理システム/クラスタサーバシステムでのジョブの実行に関する概略図である。分散処理システムにおいて実行中のジョブは、分散処理システムに格納されたブロックを参照する。ジョブによって参照されるブロックが、ジョブが実行されているワーカーノード上に格納されている場合、このワーカーノードのワーカーノードストレージからブロックを読み込む。一方、ジョブによって参照されるブロックが、ジョブが実行されているワーカーノード上に格納されていない場合、ジョブによって参照されるブロックを格納するワーカーノードからブロックを転送する処理が行われる。図19はこの処理を示している。ジョブが実行されるワーカーノード2にジョブによって参照されるブロックBがない場合、例えば、ワーカーノード2はワーカーノード3にブロックBの送信を要求する。ワーカーノード3はブロックBを送信し、ワーカーノード2はジョブを実行する。 FIG. 19 is a schematic diagram regarding job execution in a distributed processing system/cluster server system. Jobs being executed in the distributed processing system refer to blocks stored in the distributed processing system. If the block referenced by the job is stored on the worker node on which the job is running, read the block from worker node storage on 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 being executed, the block is transferred from the worker node that stores the block referenced by the job. Figure 19 shows this process. If 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 diagram 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 explanation, parts that overlap with the above example of the distributed processing system are omitted.

図1のクラスタサーバシステム2は、複数のサーバマシンから構成され得る。各サーバマシンは、図20に示すように、CPU201、メモリ202、ストレージ203(HDD(hard disk drive)やSSD(solid state disk))、送受信機204などを備えたコンピュータであってもよい。各サーバマシンには、オペレーティングシステム(OS)がインストールされている。また、各サーバマシンは物理マシン、仮想マシンのいずれであってもよい。各サーバマシンは、同じ筐体内に配置された複数のコンピュータであってもよい。各サーバマシンは、それらの全部もしくは一部が、異なる筐体に配置されてもよい。各サーバマシンは、ネットワークを介して相互に接続され、それらの全部もしくは一部が遠隔地に配置されてもよい。 The cluster server system 2 in FIG. 1 may be composed of multiple server machines. As shown in FIG. 20, each server machine may be a computer equipped with a CPU 201, a memory 202, a storage 203 (HDD (hard disk drive) or SSD (solid state disk)), a transceiver 204, and the like. Each server machine has an operating system (OS) installed. Further, each server machine may be either a physical machine or a virtual machine. Each server machine may be multiple computers located within the same enclosure. All or part of each server machine may be located in a different enclosure. Each server machine is interconnected 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 a master node 21 and a group of worker nodes 22. The master node 21 performs overall resource management 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 includes a cluster resource management section 211, a cluster data management section 212, a cluster-wide block information collection section 213, a block allocation determination section 214, and a master node storage 215. These components may be implemented as a computer program and executed by a CPU (central processing unit) of the master node 21.

クラスタリソース管理部211は、ジョブ実行時にワーカーノード1からnへのジョブの割り当てを行うために、クラスタサーバシステム2全体のサーバマシンのリソースの管理を行う。クラスタデータ管理部212は、各ブロックの格納場所と、各ワーカーノードのワーカーノードストレージの空き容量を含む状態を管理する。 The cluster resource management unit 211 manages resources of the server machines of the entire cluster server system 2 in order to allocate jobs to worker nodes 1 to n during job execution. The cluster data management unit 212 manages the storage location of each block and the state including the free capacity of the worker node storage of each worker node.

クラスタ全体のブロック情報収集部213は、ワーカーノード群22から後述するブロック転送情報22151とブロック読込情報22152とを収集して保存する。ブロック配分判定部214は、複製数を増減する必要のあるブロックを判定し、対応するワーカーノードに複製指示を行う。 The block information collection unit 213 for the entire cluster collects and stores block transfer information 22151 and block read information 22152, which will be described later, from the worker node group 22. The block allocation determining unit 214 determines which blocks require an increase or decrease in the number of copies, and instructs the corresponding worker nodes to copy.

マスタノードストレージ215は、例えば、HDDあるいはSSDなどのストレージデバイスである。マスタノードストレージ215は、ブロック位置情報2151と、全体ブロック転送情報2152と、全体ブロック読込情報2153と、を有する。 Master node storage 215 is, for example, a storage device such as an HDD or an SSD. Master node storage 215 has block position information 2151, whole block transfer information 2152, and whole block read information 2153.

ブロック位置情報2151は、クラスタサーバシステム2に格納されている各々のファイルについて、ファイルを構成しているブロックがどのワーカーノードに格納されているのかを示す、情報である。全体ブロック転送情報2152は、クラスタサーバシステム2全体でワーカーノード間のブロックの転送が発生した回数を記録した情報である。全体ブロック読込情報2153は、クラスタサーバシステム2全体におけるブロック毎の読み込み回数を記録した情報である。 The block position information 2151 is information indicating, for each file stored in the cluster server system 2, which worker node stores the blocks that make up the file. The entire block transfer information 2152 is information that records the number of times block transfers between worker nodes have occurred in the entire cluster server system 2. The entire block read information 2153 is information that records the number of times each block is read 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 explained. For example, the worker node 221 includes a job execution management section 2211, a data management section 2212, a data communication section 2213, a block information collection section 2214, and a worker node storage 2215. The job execution management unit 2211 allocates and executes jobs. The data management unit 2212 reads and writes blocks. 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. Furthermore, the worker node storage 2215 stores block transfer information 22151 and block read information 22152. Block transfer information 22151 is information that records the number of times blocks were transferred from worker node 1 to other worker nodes. Block read information 22152 is information that records the number of times each block has been read.

ブロック情報収集部2214は、ブロック転送情報22151とブロック読込情報22152を収集する。ブロック情報収集部2214は、ブロック転送情報22151とブロック読込情報22152を、マスタノード21のクラスタ全体のブロック情報収集部213に、送信する。この送信は、例えば、所定の時間間隔で行われてもよい。あるいは、この送信は、クラスタサーバシステム(クラスタサーバ管理システム)2の管理者の指示を受けて行われてもよい。 Block information collection unit 2214 collects block transfer information 22151 and block read information 22152. The block information collection unit 2214 transmits block transfer information 22151 and 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 instructions 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 a similar configuration to worker node 221. Further, the cluster server system 2 may be configured such that the worker node storage 2215 possessed by the worker nodes 221 to 22n can be logically treated as one file system from the client's perspective. Thereby, 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 a storage area network.

以下、本実施形態におけるクラスタサーバシステム2の処理の流れが説明される。ここでは、ワーカーノード群22の全部もしくは一部のワーカーノードにデータ(ブロック)がすでに格納されているものとする。 The flow of processing of the cluster server system 2 in this embodiment will be explained below. Here, it is assumed that data (blocks) are already stored in all or some 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 at which the processes described below are executed. The block allocation determination unit 214 of the master node 21 may perform the process of increasing or decreasing the number of block copies (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 process of increasing or decreasing the number of block copies (block allocation determination) when a user instruction is input. Alternatively, the block allocation determination unit 214 of the master node 21 performs the process of increasing or decreasing the number of block copies (block allocation determination) when it is detected that the usage rate of the worker node storage 2215 of at least one worker node has reached a predetermined threshold. You can run it whenever you want. This predetermined threshold may be, for example, 90%. Alternatively, the user may specify this predetermined threshold.

また、マスタノード21のクラスタ全体のブロック情報収集部213は、ブロックの複製数増減処理(ブロック配分判定)が実行されるときに、全体ブロック転送情報2152と全体ブロック読込情報2153とに保存されている値をゼロにリセットしてもよい。このリセット処理は、ブロックの複製数増減処理(ブロック配分判定)が実行されるときに、毎回、もしくは所定の回数ごとに実行されてもよい。あるいは、このリセット処理は、ユーザからの指示を入力したときに実行されてもよい。 In addition, the block information collection unit 213 of the entire cluster of the master node 21 stores information stored in the overall block transfer information 2152 and the overall block read information 2153 when the process of increasing or decreasing the number of block copies (block allocation judgment) is executed. You can reset the current value to zero. This reset process may be executed every time the block copy 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が更新される。 After the process of increasing/decreasing the number of block copies (block allocation judgment) is executed and before the process of increasing/decreasing the number of block copies (block allocation judgment) is executed, each worker node counts the number of block transfers, and the total Block transfer information 2152 is updated. After the process of increasing/decreasing the number of block copies (block allocation judgment) is executed, and before the process of increasing/decreasing the number of block copies (block allocation judgment) is executed, each worker node counts the number of times the block is read, and the overall 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 entire block transfer information 2152 is information for recording the number of times block transfers between worker nodes have occurred 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 from worker node 223 (“#3” in FIG. 3) to other worker nodes 12 times. For example, FIG. 3 shows that block D was sent twice from worker node 225 ("#5" in FIG. 3) to other worker nodes.

図4は全体ブロック読込情報2153の例を示す図である。全体ブロック読込情報2153はクラスタサーバシステム2全体における各ブロックが読み込まれた回数を記録するための情報である。図4は、例えば、ブロックBがクラスタサーバシステム2全体で20回読み込まれたことを表している。 FIG. 4 is a diagram showing an example of the entire block read information 2153. The entire block read information 2153 is information for recording the number of times each block in the entire cluster server system 2 has been read. FIG. 4 shows, for example, that block B has been read 20 times throughout 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 block transfer information 22151 stored in worker node storage 2215 in worker nodes 221 to 22n.
Block transfer information 22151 is information that records the number of times blocks were transferred to other worker nodes. The block transfer information 22151 may be information such as a table that associates block information such as identification information regarding blocks with the number of transfers. For example, assume a job is being executed on worker node 222. If the block B to be processed by this job is not stored in the worker node 222, the data communication unit of the worker node 223 that has 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 block B has been transmitted. The block information collection unit of the worker node 223 recognizes or confirms that a block has been transmitted 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 count up the number of transfers of the transmitted block B (step A2 in FIG. 6). The above process 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 block read information 22152 stored in worker node storage 2215 in worker nodes 221 to 22n. Block read information is information that records the number of times each block is read. The block read information may be information such as a table that associates block information such as an identifier regarding a block with the number of times the block is read. For example, when the data management unit in the worker node 223 reads block B from the worker storage node, the data management unit notifies the block information collection unit that block B will be read. The block information collection unit recognizes/confirms the block information of the read block B (step B1 in FIG. 8). The block information collection unit accesses and updates/stores the block read information of the worker storage node of the worker node 223 in order to count up the number of reads of the read block B (step B2 in FIG. 8). The above process is performed on other worker nodes as well.

図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 block transfer information and block read information of the worker nodes 221 to 22n. In the worker nodes 221 to 22n, the block information collection unit sends the block transfer information and 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 (steps in FIG. 10). C1). This transmission process may be executed at a pre-specified date and time, for example, at midnight every day. Alternatively, this transmission process may be executed when the cluster server system 2 receives an instruction from a user or administrator. The block information collection unit 213 for 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 for the entire cluster saves/stores the block read information received from each worker node 221 to 22n in the entire 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 block transfer information and block read information to the master node 21 may be settable by the user or administrator. Furthermore, after these are transmitted, the values of the block transfer information and block read information stored in the worker node storages 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 block read information stored in the worker node storage to zero when they transmit the block transfer information and block read information a predetermined number of times.

以下、図11、12、13、及び14を参照し、マスタノード21のブロック配分判定部214の処理の説明をする。図11は、ブロック配分判定部214の処理を表す概略図である。図11の構成要素の符号番号は、図1の構成要素の符号番号と同一である。図11では、図面を見やすくするため、一部の符号番号が省略されている。 The processing of the block allocation determining unit 214 of the master node 21 will be described below with reference to FIGS. 11, 12, 13, and 14. FIG. 11 is a schematic diagram showing the processing of the block allocation determining unit 214. The reference numbers of the components in FIG. 11 are the same as the reference numbers of the components in FIG. In FIG. 11, some reference numbers are omitted to make the drawing easier to read.

図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 saves/stores whole block read information 2153 and whole block transfer information 2152. The block allocation determining unit 214 refers to the entire block read information 2153 and the entire block transfer information 2152 to determine which blocks are to be copied and which blocks are to be deleted (step S1101 in FIG. 11). Here, the block allocation determining unit 214 determines to generate a copy of block B. Here, the block allocation determining unit 214 determines to delete 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. According to the instruction from the master node 21, the data management unit of the worker node 223 reads 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 copies of block B be stored (increased) by one. The data management unit of worker node 222 receives block B from the data management unit of worker node 223, and stores a copy of block B in 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 is, for example, one in which four copies are stored because it was determined to have been used frequently in the past. For example, the block allocation determination unit 214 of the master node 21 determines that the frequency of use of block A has decreased. In this case, the block allocation determining unit 214 of the master node 21 determines that the number of copies of 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 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 flow of processing by the block allocation determining unit 214. First, the process of increasing the number of block copies will be explained (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 saved/stored in the master node storage 215. The block allocation determination unit 214 aggregates the entire 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 overall block transfer information 2152. Alternatively, the block allocation determination unit 214 may calculate an average value for each block. The block allocation determination unit 214 selects blocks whose total value is equal to or greater than a threshold (hereinafter referred to as a replication threshold) as replication targets (step E1 in FIG. 12). The user or administrator of the master node 21 may set this duplication threshold in advance. Instead of using the duplication threshold, for example, the block allocation determination unit 214 may select a predetermined number of blocks with the highest number of transfers as the duplication targets.

図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 illustrating an example of the process of step E1 in FIG. 12. In this example, the block allocation determination unit 214 aggregates the entire block transfer information 2152 and obtains the aggregate result (maximum value for each block and each worker node). In FIG. 13, for example, the total result of block A is "6". This indicates that the maximum number of transfers for block A is six. In FIG. 13, for example, the total result of block C is "4". This indicates that the maximum number of transfers for block C is four. The entire block transfer information 2152 may also store block numbers. 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 determining unit 214 may correspond to the information regarding the block stored in the block position information 2151 in FIG. 14.

図13の例では、複製閾値を10としている。ブロック配分判定部214は、複製閾値である転送回数が10以上のブロックBとEを複製対象ブロックとして選出する。 In the example of FIG. 13, the duplication threshold is set to 10. The block allocation determination unit 214 selects blocks B and E whose number of transfers, which is a replication threshold, is 10 or more as blocks to be replicated.

以下、図12を参照する。ブロック配分判定部214は、選出した複製対象ブロックを1つずつ選択する(図12のステップE2)。ブロック配分判定部214は、選択したブロックのワーカーノードにおける所在を示すブロック位置情報2151を参照する。ブロック配分判定部214は、選択したブロック(複製対象ブロック)の現在の複製数を算出する(図12のステップE3)。 Refer to FIG. 12 below. The block allocation determination unit 214 selects the selected duplication target blocks one by one (step E2 in FIG. 12). Block allocation determination unit 214 refers to 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 copies of the selected block (block to be copied) (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 a path viewed from the user (client) in the cluster server system 2. Figure 14 shows that this file is composed of three blocks. Let the respective block names be Block A, Block B, and Block C. Block A may correspond to block number 345, which is block identification information. In this example, for understanding, the block location information includes the block name. Block numbers may be used instead of block names to identify blocks. The block number may be a unique number in the cluster server system 2. Alternatively, a file path including a file name and a block number may be used in combination to identify the block.

図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 on worker nodes 221, 222, 223, 224. In FIG. 14, the worker node 221 is represented as "1" for simplicity. The same goes for other worker nodes. Similarly, FIG. 14 shows that block B and its replicas have information stored on worker nodes 221, 223, 224. The block allocation determining unit 214 refers to the block position information in FIG. 14 and also finds that, for example, a total of four blocks A are stored. That is, the block allocation determining unit 214 calculates the current number of copies of block A as four. The current number of copies can also be calculated for other blocks (step E3 in FIG. 12).

以下、図12を参照する。例えば、ブロック配分判定部214は、ブロック位置情報2151から算出した選択したブロック(複製対象ブロック)の現在の複製数が、複製数の既定値より大きく、全体のノード数以下の範囲外であれば、複製対象ブロックの複製は作成しないこととしてもよい(図12のステップE4)。例えば、全てのワーカーノードに選択したブロック(複製対象ブロック)がすでに格納されている場合、このブロックがさらに複製されると無駄となり得る。この判定によって、このような無駄な複製を回避し得る。ひいては、クラスタサーバシステム2全体で、ワーカーノードストレージの使用率を向上し得る。複製数の既定値は、ユーザもしくは管理者が予め設定してもよい。複製数の既定値は、例えば、ワーカーノード数の半分であってもよい。複製数の既定値は、例えば、0(ゼロ)であってもよい。この場合、ワーカーノードの数と等しくなるまで常に、複製の作成が可能となる。 Refer to FIG. 12 below. For example, if the current number of copies of the selected block (block to be copied) calculated from the block position information 2151 is greater than the default value of the number of copies and is outside the range below the total number of nodes, the block allocation determination unit 214 determines that , a copy of the block to be copied may not be created (step E4 in FIG. 12). For example, if the selected block (block to be replicated) is already stored in all worker nodes, further replication of this block may be wasteful. By this determination, such unnecessary duplication can be avoided. As a result, the usage rate of worker node storage can be improved in the entire cluster server system 2. The default value of the number of copies may be set in advance by the user or administrator. The default value of the number of replications may be, for example, half the number of worker nodes. The default value of the number of copies may be, for example, 0 (zero). In this case, replicas can always be created until the number equals the number of worker nodes.

また、図12のステップE4において、例えば、ブロック配分判定部214は、ブロック位置情報2151から算出した選択したブロック(複製対象ブロック)の現在の複製数が、複製数の既定値より大きい場合(複製数の既定値<現在の複製数)に、複製対象ブロックの複製を作成しないこととしてもよい。 Further, in step E4 of FIG. 12, for example, the block allocation determining unit 214 determines that if the current number of copies of the selected block (block to be copied) calculated from the block position information 2151 is larger than the default value of the number of copies ( If the default value of the number is less than the current number of copies, no copies of the block to be copied may be created.

現在の複製数が図12のステップE4の条件をみたす場合(図12のステップE4、「Yes」)、ブロック配分判定部214は、複製対象ブロックを格納していないワーカーノードを全て選出する。ブロックの複製は、1ノードに1個までしか作成されないこととなる。この処理において、ブロック配分判定部214は、ブロック位置情報を参照してもよい。ブロック配分判定部214は、選出されたワーカーノードに、ワーカーノードストレージに選択したブロック(複製対象ブロック)を格納するための十分な空き領域があるか否かを問い合わせる。ブロック配分判定部214は、この問い合わせの結果に基づき、選択したブロック(複製対象ブロック)を格納するための十分な空き領域があるワーカーノードを、選択したブロック(複製対象ブロック)の複製を格納するための候補のワーカーノードとする。 If the current number of copies satisfies the condition of step E4 in FIG. 12 (step E4 in FIG. 12, "Yes"), the block allocation determination unit 214 selects all worker nodes that do not store the block to be copied. Only one copy of a block can be created per node. In this process, the block allocation determination unit 214 may refer to block position information. The block allocation determination unit 214 inquires of the selected worker node whether there is sufficient free space in the worker node storage to store the selected block (replication target block). Based on the result of this inquiry, the block allocation determination unit 214 selects a worker node that has sufficient free space to store the selected block (replication target block) and stores a replica of the selected block (replication target block). Let it be a candidate worker node for.

ブロック配分判定部214は、候補のワーカーノードの中からランダムに1つのワーカーノードを選択する。この処理において、例えば、ブロック配分判定部214は、ワーカーノードストレージに最も大きな空き領域があるワーカーノードを選んでもよい。ブロック配分判定部214は、候補のワーカーノードのリストを作成し、所定の乱数を用いて1つのワーカーノードを選択してもよい。あるいは、乱数の代わりに現在時刻をマイクロ秒単位で取得し、末尾の所定の桁数の数字を用いてもよい。選択されたワーカーノードを、格納先ワーカーノードとする。 The block allocation determination unit 214 randomly selects one worker node from among the candidate worker nodes. In this process, for example, the block allocation determination unit 214 may select the worker node with 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 obtained in microseconds and a number with 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. If there are multiple worker nodes in which the selected block (replication target block) has already been stored, the block allocation determination unit 214 may arbitrarily select one of these. For example, in the example of FIG. 14, the block allocation determining unit 214 may select the worker node located at the beginning. For example, the block allocation determination unit 214 may transmit a signal such as ping to each worker node, and select the node from which a 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 transmit 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 (block to be replicated) to the storage destination worker node. The storage destination worker node receives the selected block (replication target block) from the transmission 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 process for all 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 block copies 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 a block whose number of copies is to be reduced. Block allocation determination unit 214 refers to block position information 2151 and extracts blocks whose number of copies is greater than a predetermined 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, for each block, the number of worker nodes (nodes) in which the block and its copies are stored. As explained in the process of increasing the number of block copies (steps E1 to E6 in FIG. 12), only one block copy is created per node. Therefore, counting the number of nodes counts the number of blocks and their copies.

ブロック配分判定部214は、各ブロックについてブロック及びその複製の数を、既定値と比較する。ブロック配分判定部214は、既定値より多いと判断した場合に、該当するブロックを抽出する。この既定値は、ユーザによって予め指定された数であってもよい。この既定値は、ブロックの複製数を減少させる処理の開始時に、ブロック配分判定部214は、クラスタサーバシステム2全体のワーカーストレージの使用率が例えば90%といった所定の閾値よりも大きい場合に、この既定値から1を除算してもよい。 The block allocation determination unit 214 compares the number of blocks and their copies for each block with a default value. When the block allocation determining unit 214 determines that the number of blocks is larger than the predetermined value, the block allocation determining unit 214 extracts the corresponding blocks. This default value may be a number specified in advance by the user. This default value is determined by the block allocation determination unit 214 at the start of the process of reducing the number of block copies, if the usage rate of worker storage in the entire cluster server system 2 is greater than a predetermined threshold, such as 90%. You can also divide the default value by 1.

抽出されたブロックは複数個になることもある。ブロック配分判定部214は、図12のステップE1で選出した複製対象ブロックを、予め削除の対象外としてもよい(図12のステップE7)。ブロック配分判定部214は、クラスタ全体のブロック読込情報2153を参照し、抽出したブロックの読み込み回数を取得する(図12のステップE8)。ブロック配分判定部214は、抽出したブロックの各々について、読み込み回数が閾値(以下、READ閾値という)以下であるか否かを判断する(図12のステップE9)。 There may be multiple extracted blocks. The block allocation determination unit 214 may exclude the duplication target block selected in step E1 of FIG. 12 from being deleted in advance (step E7 of FIG. 12). The block allocation determination unit 214 refers to the block read information 2153 for the entire cluster and obtains the number of times the extracted block has been read (step E8 in FIG. 12). The block allocation determination unit 214 determines whether the number of reads is equal to or less than a threshold value (hereinafter referred to as READ threshold value) for each extracted block (step E9 in FIG. 12).

読み込み回数がREAD閾値以下であるブロックについて、ブロック配分判定部214は、ブロック位置情報を参照し、そのようなブロックが格納されているワーカーノードをランダムに選出する。この処理において、例えば、ブロック配分判定部214は、候補のワーカーノードのリストを作成し、所定の乱数を用いて1つのワーカーノードを選択してもよい。あるいは、乱数の代わりに現在時刻をマイクロ秒単位で取得し、末尾の所定の桁数の数字を用いてもよい。あるいは、ブロック配分判定部214は、ワーカーノードストレージに最も小さな空き領域があるワーカーノードを選んでもよい。 For blocks whose number of reads is equal to or less than the READ threshold, 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 obtained in microseconds and a number with a predetermined number of digits at the end may be used. Alternatively, the block allocation determination unit 214 may select the worker node with 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). If there are a plurality of extracted blocks, the block allocation determining 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. Through the above-described processing using the READ threshold, the cluster server system 2 can determine the frequency at which a block is used based on the number of reads. Cluster server system 2 may delete blocks that are determined to be infrequently used. This makes it possible to effectively utilize the storage of the entire system. On the other hand, the cluster server system 2 can determine that blocks with a value equal to or higher than the READ threshold are blocks that are frequently used. Cluster server system 2 may maintain the number of copies without deleting such blocks. Thereby, the cluster server system 2 may be able to read frequently accessed files at high speed.

ブロックの複製数を増加させる処理と、ブロックの複製数を減少させる処理とは、順序が逆でもよい。ブロックの複製数を増加させる処理と、ブロックの複製数を減少させる処理とは、別個独立に実行されてもよい。 The order of the process of increasing the number of block copies and the process of decreasing the number of block copies may be reversed. The process of increasing the number of block copies and the process of decreasing the number of block copies may be performed 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-described nodes, worker nodes, master nodes, etc. may have the same or similar configurations as in FIG. 20. The configuration of FIG. 20 may include a CPU (central processing unit), memory, storage, and transceiver. The storage can be an HDD (hard disk drive) or an SSD (solid state drive). Storage may include a storage area network. Multiple computers may share storage. Storage may include storage on a network or a storage area network. The computer in FIG. 20 may further include an optical drive or a magneto-optical recording device. The transceiver may be a 10BASE-T, 1000BASE-T, wireless communication device, optical communication device, etc. 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 multiple computers. In FIG. 20, a single computer may include multiple execution environments. The embodiments described above may be implemented by software.

図21は、本実施の形態における分散処理システムの制御装置(マスタノード31)を示す図である。マスタノード31は、複製対象のブロックを選択する選択手段311と、ワーカーノードへブロックの複製の作成要求を送信する要求手段312と、を含む。 FIG. 21 is a diagram showing the control device (master node 31) of the distributed processing system in this embodiment. The master node 31 includes a selection unit 311 that selects a block to be copied, and a request unit 312 that sends a request to create a block copy to a 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. The selection means 311 selects a block to be copied (step E11 in FIG. 22). The requesting means 312 sends a replication request to the worker node (step E12 in FIG. 22).

「他の側面」
上記の実施形態のほか、例えば、以下のような側面があってもよい。
"Other aspects"
In addition to the embodiments described above, the following aspects may be included, for example.

第1の側面は、全体ブロック転送情報に格納された分散処理システムにおけるブロックの転送回数を参照し、複製対象のブロックを選択し、ブロックの複製の作成の要求を送信する、マスタノードと、マスタノードからブロックの複製の作成の要求を受信して前記ブロックを送信する、第1のワーカーノードと、ブロックを受信して前記ブロックの複製を格納する、第2のワーカーノードと、を含む、分散処理システムであり得る。 The first aspect consists of a master node that refers to the number of block transfers in the distributed processing system stored in the overall block transfer information, selects a block to be copied, and sends a request to create a block copy. a first worker node that receives a request to create a replica of a block from a node and transmits the block; and a second worker node that receives the block and stores the replica 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 where each block is stored, which is obtained from the block position information, and sends a request to create a copy of the block. It may be a distributed processing system that determines whether the

第3の側面は、上記の分散処理システムであって、マスタノードが、複製対象のブロックの複製の数が所定の数より多く、すべてのワーカーノードの数より少ない場合に、ブロックの複製の作成の要求を送信する、分散処理システムであり得る。 A third aspect is the distributed processing system described above, in which the master node creates a replica of a block when the number of replicas of the block to be replicated is greater than a predetermined number and less than the number of all worker nodes. may be a distributed processing system that sends requests for

第4の側面は、上記の分散処理システムであって、マスタノードが、ブロックの複製の作成のための空きのリソースを有するワーカーノードを第2のワーカーノードとして選択する、分散処理システムでありえる。 A fourth aspect may be the above-described distributed processing system, in which the master node selects a worker node having free resources for creating a copy of a block as the second worker node.

第5の側面は、上記の分散処理システムであって、マスタノードが、複製対象のブロックを格納していないワーカーノードの中からランダムに第2のワーカーノードを選択する、分散処理システムでありえる。 A fifth aspect may be the above-described distributed processing system, in which the master node randomly selects the second worker node from among the worker nodes that do not store blocks to be replicated.

第6の側面は、上記の分散処理システムであって、マスタノードが、各ブロックの格納先のワーカーノード示すブロック位置情報を参照して削除するブロックを判断し、削除するブロックを格納する第3のワーカーノードを選択して、第3のワーカーノードに削除の要求を送信し、第3のワーカーノードが、削除の要求を受信し、削除するブロックを削除する、分散処理システムでありえる。 A sixth aspect is the above-described distributed processing system, wherein the master node determines a block to be deleted by referring to block position information indicating a worker node where each block is stored, and a third aspect stores the block to be deleted. may be a distributed processing system that selects a worker node to send 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のワーカーノードに削除の要求を送信する、分散処理システムであり得る。 A seventh 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, which is obtained from the block position information, and the number of worker nodes in which each block is stored is determined to be a predetermined number. It may be a distributed processing system that sends a deletion request to a third worker node if there are more.

第8の側面は、上記の分散処理システムであって、マスタノードが、削除するブロックを格納するワーカーノードの中からランダムに第3のワーカーノードを選択する、分散処理システムでありえる。 An eighth aspect may be the above-described distributed processing system, in which the master node randomly selects a third worker node from among the worker nodes that store blocks to be deleted.

第9の側面は、マスタノードとワーカーノードとを含む分散処理システムの制御方法であって、全体ブロック転送情報に格納された分散処理システムにおけるブロックの転送回数を参照して複製対象のブロックを選択するステップと、ブロックの複製を格納するステップと、を含む制御方法であり得る。 A ninth aspect is a method for controlling a distributed processing system including a master node and worker nodes, wherein a block to be replicated is selected by referring to the number of block transfers in the distributed processing system stored in overall block transfer information. and storing a copy of the block.

第10の側面は、分散処理システムにおける制御装置であって、全体ブロック転送情報に格納された分散処理システムにおけるブロックの転送回数を参照し、複製対象のブロックを選択し、ブロックの複製の作成の要求をワーカーノードへ送信する、分散処理システムにおける制御装置であり得る。 A tenth aspect is a control device in a distributed processing system, which refers to the number of block transfers in the distributed processing system stored in overall block transfer information, selects a block to be copied, and creates a copy of the block. It can be a controller in a distributed processing system that sends requests to worker nodes.

上記の実施形態により、例えば、ブロックのネットワーク転送を抑え、ネットワーク負荷によるシステム全体の性能を向上させることが可能となり得る。上記の実施形態では、頻繁に処理対象となるブロックについて、複製数を増やし、各ワーカーノードに分散して格納し得る。このため、そのようなブロックを持つワーカーノード数をシステム全体として増やすことができる。これにより、他のワーカーノードからのブロックの転送の頻度を抑えることが可能となり得る。また、ジョブが実行されるワーカーノード上に処理対象ブロックが存在する確率を上げることができる。このため、ジョブの実行をより短い時間で完了することができ得る。 The embodiments described above may make it possible, for example, to suppress network transfer of blocks and improve overall system performance due to network load. In the embodiment described above, the number of copies of blocks that are frequently processed can be increased, and the blocks can be distributed and stored in each worker node. Therefore, the number of worker nodes that have such blocks can be increased as a whole system. This may make it possible to reduce the frequency of block transfers from other worker nodes. Furthermore, it is possible to increase the probability that the block to be processed exists on the worker node where the job is executed. Therefore, job execution may be completed in a shorter time.

また、上記の実施形態によれば、複製数がすでに増加されたブロックについて、利用頻度が下がった場合、その複製ブロックを自動的に削除し得る。このため、上記の実施形態によれば、クラスタ全体でストレージリソースの逼迫を防ぐことが可能となり得る。 Further, according to the embodiment described above, when the frequency of use of a block whose number of copies has already been increased decreases, the duplicate block can be automatically deleted. Therefore, according to the embodiment described above, it may be possible to prevent storage resources from becoming strained in the entire cluster.

以上の開示は例である。従って、本願と本発明は、上記の実施形態などの開示のみに限定して解釈されるべきではない。 The above disclosures are exemplary. Therefore, the present application and the present invention should not be construed as limited to the disclosure of the embodiments described above.

この出願は、2020年3月17日に出願された日本国特願2020-046542号を基礎とする優先権を主張し、その開示の全てをここに取り込む。 This application claims priority based on Japanese Patent Application No. 2020-046542 filed on March 17, 2020, and the entire disclosure thereof is incorporated herein.

本発明は、分散処理システム、分散処理システムの制御方法、及び、分散処理システムの制御装置に適用してもよい。 The present invention may be applied to a distributed processing system, a distributed processing system control method, and a distributed processing system control device.

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 determination 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 Whole block transfer information 2153 Overall Block reading information 2211 Job execution management section 2212 Data management section 2213 Data communication section 2214 Block information collection section 2215 Worker node storage 22151 Block transfer information 22152 Block reading information

Claims (10)

全体ブロック転送情報に格納された分散処理システムにおけるブロックの転送回数を参照し、複製対象のブロックを選択し、ブロックの複製の作成の要求を送信する、マスタノードと、
前記マスタノードから前記ブロックの複製の作成の要求を受信して前記ブロックを送信する、第1のワーカーノードと、
前記ブロックを受信して前記ブロックの複製を格納する、第2のワーカーノードと、
を具備する前記分散処理システム。
a master node that refers to the number of block transfers in the distributed processing system stored in the overall block transfer information, selects a block to be copied, and sends a request to create a copy of the block;
a first worker node that receives a request to create a copy of the block from the master node and transmits the block;
a second worker node that receives the block and stores a copy of the block;
The distributed processing system comprising:
前記マスタノードが、ブロック位置情報から得た各ブロックの格納先のワーカーノードの数を参照し、前記ブロックの複製の作成の要求を送信するか否かを判断する、
請求項1に記載の分散処理システム。
The master node refers to the number of worker nodes where each block is stored, which is obtained from the block position information, and determines whether to send a request to create a copy of the block.
The distributed processing system according to claim 1.
前記マスタノードは、前記複製対象のブロックの複製の数が所定の数より多く、すべてのワーカーノードの数より少ない場合に、前記ブロックの複製の作成の要求を送信する、請求項1または2に記載の分散処理システム。 3. The master node transmits a request to create a copy of the block when the number of copies of the block to be copied is greater than a predetermined number and less than the number of all worker nodes. Distributed processing system described. 前記マスタノードが、前記ブロックの複製の作成のための空きのリソースを有するワーカーノードを前記第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 free resources for creating a copy of the block as the second worker node. 前記マスタノードが、前記複製対象のブロックを格納していないワーカーノードの中からランダムに前記第2のワーカーノードを選択する、
請求項1乃至4のいずれか一項に記載の分散処理システム。
the master node randomly selects the second worker node from among worker nodes that do not store the block to be replicated;
A distributed processing system according to any one of claims 1 to 4.
前記マスタノードが、各ブロックの格納先のワーカーノード示すブロック位置情報を参照して削除するブロックを判断し、前記削除するブロックを格納する第3のワーカーノードを選択して、前記第3のワーカーノードに削除の要求を送信し、
前記第3のワーカーノードが、前記削除の要求を受信し、前記削除するブロックを削除する、
請求項1乃至5のいずれか一項に記載の分散処理システム。
The master node determines a block to be deleted by referring to block position information indicating the worker node where each block is stored, selects a third worker node that stores the block to be deleted, and deletes the block from the third worker node. Send a request for deletion to the node,
the third worker node receives the deletion request and deletes the block to be deleted;
A distributed processing system according to any one of claims 1 to 5.
前記マスタノードが、前記ブロック位置情報から得た各ブロックの格納先のワーカーノードの数を参照し、前記格納先のワーカーノードの数が所定の数より多い場合に、前記第3のワーカーノードに削除の要求を送信する、
請求項6に記載の分散処理システム。
The master node refers to the number of worker nodes at the storage destination of each block obtained from the block position information, and if the number of worker nodes at the storage destination is greater than a predetermined number, the master node submit a deletion request;
The distributed processing system according to claim 6.
前記マスタノードが、前記削除するブロックを格納するワーカーノードの中からランダムに前記第3のワーカーノードを選択する、請求項6または7に記載の分散処理システム。 The distributed processing system according to claim 6 or 7, wherein the master node randomly selects the third worker node from among the worker nodes that store the block to be deleted. マスタノードとワーカーノードとを含む分散処理システムにおける処理方法であって、前記処理方法は、
前記マスタノードが、全体ブロック転送情報に格納された分散処理システムにおけるブロックの転送回数を参照して複製対象のブロックを選択し、ブロックの複製の作成の要求を送信することと、
第1のワーカーノードが、前記マスタノードから前記ブロックの複製の作成の要求を受信して前記ブロックを送信することと、
第2のワーカーノードが、前記ブロックを受信して前記ブロックの複製を格納することと、
を具備する前記処理方法
A processing method in a distributed processing system including a master node and a worker node, the processing method comprising :
The master node selects a block to be copied by referring to the number of block transfers in the distributed processing system stored in the overall block transfer information, and transmits a request to create a copy of the block ;
a first worker node receiving a request from the master node to create a copy of the block and transmitting the block;
a second worker node receiving the block and storing a copy of the block;
The processing method comprising:
全体ブロック転送情報に格納された分散処理システムにおけるブロックの転送回数を参照して複製対象のブロックを選択する選択手段と、
第1のワーカーノードへブロックの複製の作成要求を送信する第1の要求手段と、
第2のワーカーノードへ前記ブロックを受信して前記ブロックの複製を格納するための格納要求を送信する第2の要求手段と、
を具備する分散処理システムの制御装置。
Selection means for selecting a block to be replicated by referring to the number of times the block has been transferred in the distributed processing system stored in the entire block transfer information ;
a first requesting means for transmitting a block replication creation request to the first worker node;
a second requesting means for transmitting a storage request to a second worker node to receive the block and store a copy of the block;
A control device for a distributed processing system comprising:
JP2022508224A 2020-03-17 2021-03-08 Distributed processing system, distributed processing system control method, and distributed processing system control device Active JP7435735B2 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2020046542 2020-03-17
JP2020046542 2020-03-17
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

Publications (2)

Publication Number Publication Date
JPWO2021187194A1 JPWO2021187194A1 (en) 2021-09-23
JP7435735B2 true JP7435735B2 (en) 2024-02-21

Family

ID=77771223

Family Applications (1)

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

Country Status (2)

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

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116088763B (en) * 2023-02-09 2023-07-18 北京志凌海纳科技有限公司 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

Also Published As

Publication number Publication date
JPWO2021187194A1 (en) 2021-09-23
WO2021187194A1 (en) 2021-09-23

Similar Documents

Publication Publication Date Title
JP7102460B2 (en) Data management method in distributed storage device and distributed storage device
US10853274B2 (en) Primary data storage system with data tiering
US12067256B2 (en) Storage space optimization in a system with varying data redundancy schemes
WO2016147281A1 (en) Distributed storage system and control method for distributed storage system
US9361034B2 (en) Transferring storage resources between snapshot storage pools and volume storage pools in a distributed network
JP6492226B2 (en) Dynamic resource allocation based on network flow control
JP4265245B2 (en) Computer system
US8650381B2 (en) Storage system using real data storage area dynamic allocation method
JP5320678B2 (en) Data distribution storage system, data distribution method, apparatus used therefor, and program thereof
JP5343166B2 (en) Local file server for transferring files to remote file server via communication network, and storage system having these file servers
US8661055B2 (en) File server system and storage control method
JP5973089B2 (en) Storage system migration method and migration method
JP2022541261A (en) Resource allocation methods, storage devices, and storage systems
WO2017109822A1 (en) Storage system having deduplication function
US9766824B2 (en) Storage device and computer system
US10394484B2 (en) Storage system
US10387043B2 (en) Writing target file including determination of whether to apply duplication elimination
JP7435735B2 (en) Distributed processing system, distributed processing system control method, and distributed processing system control device
WO2016013075A1 (en) Storage, computer, and control method therefor
JP2021060818A (en) Storage system and data migration method
WO2018055686A1 (en) Information processing system
KR102084031B1 (en) Method for managing integrated local storage and apparatus therefor
JP6884165B2 (en) Storage system with multiple storage nodes
JP6796604B2 (en) Network management system and network management method
JP5494363B2 (en) File management program, file management method, and file management apparatus

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220901

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20231031

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20231222

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20240109

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240122

R151 Written notification of patent or utility model registration

Ref document number: 7435735

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151