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 PDFInfo
- 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
Links
- 238000012545 processing Methods 0.000 title claims description 101
- 238000000034 method Methods 0.000 title description 57
- 238000012546 transfer Methods 0.000 claims description 74
- 238000003860 storage Methods 0.000 claims description 69
- 230000010076 replication Effects 0.000 claims description 22
- 238000012217 deletion Methods 0.000 claims description 9
- 230000037430 deletion Effects 0.000 claims description 9
- 238000003672 processing method Methods 0.000 claims 3
- 238000010586 diagram Methods 0.000 description 33
- 238000013523 data management Methods 0.000 description 26
- 238000007726 management method Methods 0.000 description 17
- 230000003247 decreasing effect Effects 0.000 description 11
- 238000004891 communication Methods 0.000 description 9
- 230000005540 biological transmission Effects 0.000 description 5
- 230000007423 decrease Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 239000000284 extract Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000013403 standard screening design Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital 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,
特許文献4では、移動元と移動先のブロックを入れ替えるものであり得る(図4、段落0034から0036など)。しかし、単にブロックを入れ替えても、あるブロックに対して同時接続で大量のアクセスが発生する場合、そのブロックを格納する特定のノードにアクセスが集中し得る。特許文献4では、大量のアクセス要求により、ボトルネックや応答の遅延を発生する可能性がある。
In
特許文献4にはApache Hadoopのレプリケーションの例も記載されている。とはいえ、特許文献4は、図4のステップ47にもあるように、ブロックの交換を行うにすぎない。特許文献4は、この交換の際に、Apache Hadoopのレプリケーションポリシーを参照し得る。即ち、特許文献4は、ブロックの交換を行うことを開示するにすぎない。特許文献4においては、あるブロックに対して同時接続で大量のアクセスが発生する場合、そのブロックを持っている特定のノードにアクセスが集中する可能性がありえる。実際、特許文献4は、どのようなタイミングでレプリケーションを行うのかについて、開示も示唆もしていない。
上述の開示は例示であり、本願や本発明の範囲を限定するものではない。 The above disclosure is illustrative and does not limit the scope of the present application or invention.
以下は例示であり、本願や本発明の範囲を限定するものではない。 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.
以下、図面を参照し、いくつかの実施形態について説明する。以下の開示は例示である。本願と本発明は、以下の開示のみに限定して解釈されるべきではない。 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
クラスタデータ管理部は、クライアントに、書き込み先となるワーカーノードの情報を送信する。クライアントは、クラスタデータ管理部から、書き込み先となるワーカーノードの情報を受信する(図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,
図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
「第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
図1のクラスタサーバシステム2は、複数のサーバマシンから構成され得る。各サーバマシンは、図20に示すように、CPU201、メモリ202、ストレージ203(HDD(hard disk drive)やSSD(solid state disk))、送受信機204などを備えたコンピュータであってもよい。各サーバマシンには、オペレーティングシステム(OS)がインストールされている。また、各サーバマシンは物理マシン、仮想マシンのいずれであってもよい。各サーバマシンは、同じ筐体内に配置された複数のコンピュータであってもよい。各サーバマシンは、それらの全部もしくは一部が、異なる筐体に配置されてもよい。各サーバマシンは、ネットワークを介して相互に接続され、それらの全部もしくは一部が遠隔地に配置されてもよい。
The
クラスタサーバシステム2のサーバマシンは、マスタノード21とワーカーノード群22を含む。マスタノード21は、クラスタサーバシステム2の全体のリソース管理を行う。ワーカーノード群22の各々のワーカーノード1からn(nは自然数)は、ジョブを実行し、および/または、データ(ブロック)を格納する。マスタノード21は複数のマスタノードから構成されていても良い。ワーカーノード群22は、複数のワーカーノード221~22nから構成されている。「n」はワーカーノードの数がnであることを表している。
The server machine of the
マスタノード21は、クラスタリソース管理部211と、クラスタデータ管理部212と、クラスタ全体のブロック情報収集部213と、ブロック配分判定部214と、マスタノードストレージ215と、を有する。これらの構成要素はコンピュータプログラムとして実装され、マスタノード21のCPU(central processing unit)で実行されてもよい。
The
クラスタリソース管理部211は、ジョブ実行時にワーカーノード1からnへのジョブの割り当てを行うために、クラスタサーバシステム2全体のサーバマシンのリソースの管理を行う。クラスタデータ管理部212は、各ブロックの格納場所と、各ワーカーノードのワーカーノードストレージの空き容量を含む状態を管理する。
The cluster
クラスタ全体のブロック情報収集部213は、ワーカーノード群22から後述するブロック転送情報22151とブロック読込情報22152とを収集して保存する。ブロック配分判定部214は、複製数を増減する必要のあるブロックを判定し、対応するワーカーノードに複製指示を行う。
The block
マスタノードストレージ215は、例えば、HDDあるいはSSDなどのストレージデバイスである。マスタノードストレージ215は、ブロック位置情報2151と、全体ブロック転送情報2152と、全体ブロック読込情報2153と、を有する。
ブロック位置情報2151は、クラスタサーバシステム2に格納されている各々のファイルについて、ファイルを構成しているブロックがどのワーカーノードに格納されているのかを示す、情報である。全体ブロック転送情報2152は、クラスタサーバシステム2全体でワーカーノード間のブロックの転送が発生した回数を記録した情報である。全体ブロック読込情報2153は、クラスタサーバシステム2全体におけるブロック毎の読み込み回数を記録した情報である。
The
次に、ワーカーノード221から22nについて説明する。例えば、ワーカーノード221は、ジョブ実行管理部2211と、データ管理部2212と、データ通信部2213と、ブロック情報収集部2214と、ワーカーノードストレージ2215と、を有する。ジョブ実行管理部2211は、ジョブの割り当てや実行を行う。データ管理部2212は、ブロックの読み込みや書き込みを行う。データ通信部2213は、ブロックを他ノードに転送する。ブロック情報収集部2214については後述する。
Next,
ワーカーノード221のワーカーノードストレージ2215は、ブロックを格納する。更に、ワーカーノードストレージ2215は、ブロック転送情報22151とブロック読込情報22152を格納する。ブロック転送情報22151は、ワーカーノード1から他のワーカーノードにブロックを転送した回数を記録した情報である。ブロック読込情報22152は、各々のブロックの読み込み回数を記録した情報である。
ブロック情報収集部2214は、ブロック転送情報22151とブロック読込情報22152を収集する。ブロック情報収集部2214は、ブロック転送情報22151とブロック読込情報22152を、マスタノード21のクラスタ全体のブロック情報収集部213に、送信する。この送信は、例えば、所定の時間間隔で行われてもよい。あるいは、この送信は、クラスタサーバシステム(クラスタサーバ管理システム)2の管理者の指示を受けて行われてもよい。
Block
ワーカーノード222~22nは、ワーカーノード221と同様の構成を有する。また、クラスタサーバシステム2は、ワーカーノード221~22nが持つワーカーノードストレージ2215は、クライアントの視点から、論理的に1つのファイルシステムとして扱うことができるよう、構成されてもよい。これにより、分散ストレージが実現され得る。各ワーカーノードストレージは、1つもしくは複数のHDDやSSDを有してもよい。各ワーカーノードストレージは、ネットワークストレージあるいはストレージエリアネットワークにアクセスするよう構成されてもよい。
以下、本実施形態におけるクラスタサーバシステム2の処理の流れが説明される。ここでは、ワーカーノード群22の全部もしくは一部のワーカーノードにデータ(ブロック)がすでに格納されているものとする。
The flow of processing of the
図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
また、マスタノード21のクラスタ全体のブロック情報収集部213は、ブロックの複製数増減処理(ブロック配分判定)が実行されるときに、全体ブロック転送情報2152と全体ブロック読込情報2153とに保存されている値をゼロにリセットしてもよい。このリセット処理は、ブロックの複製数増減処理(ブロック配分判定)が実行されるときに、毎回、もしくは所定の回数ごとに実行されてもよい。あるいは、このリセット処理は、ユーザからの指示を入力したときに実行されてもよい。
In addition, the block
ブロックの複製数増減処理(ブロック配分判定)が実行された後、次のブロックの複製数増減処理(ブロック配分判定)が実行までの間に、各ワーカーノードでブロックの転送回数がカウントされ、全体ブロック転送情報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
図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
図4は全体ブロック読込情報2153の例を示す図である。全体ブロック読込情報2153はクラスタサーバシステム2全体における各ブロックが読み込まれた回数を記録するための情報である。図4は、例えば、ブロックBがクラスタサーバシステム2全体で20回読み込まれたことを表している。
FIG. 4 is a diagram showing an example of the entire block read
次に、図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
次に、図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
図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
ワーカーノード221乃至22nが、マスタノード21へブロック転送情報とブロック読込情報を送信するタイミングは、ユーザもしくは管理者が設定可能であってもよい。また、これらが送信された後で、ワーカーノード221乃至22nのワーカーノードストレージに格納されたブロック転送情報とブロック読込情報の値をゼロにリセットしてもよい。あるいは、ワーカーノード221乃至22nは、ブロック転送情報とブロック読込情報を所定の回数送信したときに、ワーカーノードストレージに格納されたブロック転送情報とブロック読込情報をゼロにリセットしてもよい。
The timing at which the
以下、図11、12、13、及び14を参照し、マスタノード21のブロック配分判定部214の処理の説明をする。図11は、ブロック配分判定部214の処理を表す概略図である。図11の構成要素の符号番号は、図1の構成要素の符号番号と同一である。図11では、図面を見やすくするため、一部の符号番号が省略されている。
The processing of the block
図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
図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
一方、ブロック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
図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
マスタノード21のブロック配分判定部214は、マスタノードストレージ215に保存/格納されている全体ブロック転送情報2152を読み込む。ブロック配分判定部214は、全体ブロック転送情報2152の集計を行う。この集計処理において、ブロック配分判定部214は、全体ブロック転送情報2152中のブロックごとワーカーノードごとの転送回数の間の最大値を計算してもよい。あるいは、ブロック配分判定部214は、ブロックごとの平均値を計算してもよい。ブロック配分判定部214は、集計した値が閾値(以下、複製閾値という)以上となったブロックを複製対象として選出する(図12のステップE1)。マスタノード21のユーザもしくは管理者が、この複製閾値を予め設定してもよい。複製閾値を使用する代わりに、例えば、ブロック配分判定部214は、転送回数の上位の所定個数のブロックを複製対象としてもよい。
The block
図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
図13の例では、複製閾値を10としている。ブロック配分判定部214は、複製閾値である転送回数が10以上のブロックBとEを複製対象ブロックとして選出する。
In the example of FIG. 13, the duplication threshold is set to 10. The block
以下、図12を参照する。ブロック配分判定部214は、選出した複製対象ブロックを1つずつ選択する(図12のステップE2)。ブロック配分判定部214は、選択したブロックのワーカーノードにおける所在を示すブロック位置情報2151を参照する。ブロック配分判定部214は、選択したブロック(複製対象ブロック)の現在の複製数を算出する(図12のステップE3)。
Refer to FIG. 12 below. The block
ここで、図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
図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
以下、図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
また、図12のステップE4において、例えば、ブロック配分判定部214は、ブロック位置情報2151から算出した選択したブロック(複製対象ブロック)の現在の複製数が、複製数の既定値より大きい場合(複製数の既定値<現在の複製数)に、複製対象ブロックの複製を作成しないこととしてもよい。
Further, in step E4 of FIG. 12, for example, the block
現在の複製数が図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
ブロック配分判定部214は、候補のワーカーノードの中からランダムに1つのワーカーノードを選択する。この処理において、例えば、ブロック配分判定部214は、ワーカーノードストレージに最も大きな空き領域があるワーカーノードを選んでもよい。ブロック配分判定部214は、候補のワーカーノードのリストを作成し、所定の乱数を用いて1つのワーカーノードを選択してもよい。あるいは、乱数の代わりに現在時刻をマイクロ秒単位で取得し、末尾の所定の桁数の数字を用いてもよい。選択されたワーカーノードを、格納先ワーカーノードとする。
The block
ブロック配分判定部214は、ブロック位置情報を参照して、選択したブロック(複製対象ブロック)がすでに格納されているワーカーノードの1つを送信元ワーカーノードとする。選択したブロック(複製対象ブロック)がすでに格納されているワーカーノードが複数ある場合、ブロック配分判定部214は、これらの中の1つを任意に選択してもよい。例えば、ブロック配分判定部214は、図14の例では、先頭に位置するワーカーノードを選択してもよい。例えば、ブロック配分判定部214は、各ワーカーノードにpingなどの信号を送信し、最も早い時間内に返信が受信されたノードを選択してもよい。
The block
ブロック配分判定部214は、選択したブロック(複製対象ブロック)を格納先ワーカーノードに送信するよう、送信元ワーカーノードに対して要求する。ブロック配分判定部214は、選択したブロック(複製対象ブロック)を格納するよう格納先ワーカーノードに対して要求する。送信元ワーカーノードは選択したブロック(複製対象ブロック)を格納先ワーカーノードに送信する。格納先ワーカーノードは、送信元ワーカーノードから選択したブロック(複製対象ブロック)を受信し、選択したブロック(複製対象ブロック)を格納する(図12のステップE5)。ブロック配分判定部214は、図12のステップE2で選出された全てのブロックに対して、上記の処理を繰り返す(図12のステップE6)。
The block
次に、図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
ブロック配分判定部214は、各ブロックについてブロック及びその複製の数を、既定値と比較する。ブロック配分判定部214は、既定値より多いと判断した場合に、該当するブロックを抽出する。この既定値は、ユーザによって予め指定された数であってもよい。この既定値は、ブロックの複製数を減少させる処理の開始時に、ブロック配分判定部214は、クラスタサーバシステム2全体のワーカーストレージの使用率が例えば90%といった所定の閾値よりも大きい場合に、この既定値から1を除算してもよい。
The block
抽出されたブロックは複数個になることもある。ブロック配分判定部214は、図12のステップE1で選出した複製対象ブロックを、予め削除の対象外としてもよい(図12のステップE7)。ブロック配分判定部214は、クラスタ全体のブロック読込情報2153を参照し、抽出したブロックの読み込み回数を取得する(図12のステップE8)。ブロック配分判定部214は、抽出したブロックの各々について、読み込み回数が閾値(以下、READ閾値という)以下であるか否かを判断する(図12のステップE9)。
There may be multiple extracted blocks. The block
読み込み回数がREAD閾値以下であるブロックについて、ブロック配分判定部214は、ブロック位置情報を参照し、そのようなブロックが格納されているワーカーノードをランダムに選出する。この処理において、例えば、ブロック配分判定部214は、候補のワーカーノードのリストを作成し、所定の乱数を用いて1つのワーカーノードを選択してもよい。あるいは、乱数の代わりに現在時刻をマイクロ秒単位で取得し、末尾の所定の桁数の数字を用いてもよい。あるいは、ブロック配分判定部214は、ワーカーノードストレージに最も小さな空き領域があるワーカーノードを選んでもよい。
For blocks whose number of reads is equal to or less than the READ threshold, the block
ブロック配分判定部214は、選択されたワーカーノードに削除の対象のブロックを削除するよう、要求する。選択されたワーカーノードは、ブロック配分判定部214からの要求を受信し、該当するブロックを削除する(図12のステップE10)。抽出されたブロックが複数個である場合、ブロック配分判定部214は、この処理を抽出されたブロック1つずつに関して実行する。
The 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
ブロックの複製数を増加させる処理と、ブロックの複製数を減少させる処理とは、順序が逆でもよい。ブロックの複製数を増加させる処理と、ブロックの複製数を減少させる処理とは、別個独立に実行されてもよい。 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
図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
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乃至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のワーカーノードが、前記削除の要求を受信し、前記削除するブロックを削除する、
請求項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.
請求項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.
前記マスタノードが、全体ブロック転送情報に格納された分散処理システムにおけるブロックの転送回数を参照して複製対象のブロックを選択し、ブロックの複製の作成の要求を送信することと、
第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:
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)
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)
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 |
-
2021
- 2021-03-08 WO PCT/JP2021/008961 patent/WO2021187194A1/en active Application Filing
- 2021-03-08 JP JP2022508224A patent/JP7435735B2/en active Active
Patent Citations (3)
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 |