Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP5776499B2 - Synchronization method, synchronization program, and information processing apparatus - Google Patents
[go: Go Back, main page]

JP5776499B2 - Synchronization method, synchronization program, and information processing apparatus - Google Patents

Synchronization method, synchronization program, and information processing apparatus Download PDF

Info

Publication number
JP5776499B2
JP5776499B2 JP2011239644A JP2011239644A JP5776499B2 JP 5776499 B2 JP5776499 B2 JP 5776499B2 JP 2011239644 A JP2011239644 A JP 2011239644A JP 2011239644 A JP2011239644 A JP 2011239644A JP 5776499 B2 JP5776499 B2 JP 5776499B2
Authority
JP
Japan
Prior art keywords
file
files
update
folder
list
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.)
Expired - Fee Related
Application number
JP2011239644A
Other languages
Japanese (ja)
Other versions
JP2013097566A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2011239644A priority Critical patent/JP5776499B2/en
Publication of JP2013097566A publication Critical patent/JP2013097566A/en
Application granted granted Critical
Publication of JP5776499B2 publication Critical patent/JP5776499B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、同期方法、同期プログラム及び情報処理装置に関する。   The present invention relates to a synchronization method, a synchronization program, and an information processing apparatus.

近年のネットワークの高速化および大容量化に伴い、LAN(Local Area Network)で接続されたコンピュータ間だけでなく、ネットワークを経由して接続されたコンピュータ間でも、大量のファイルの送受信が可能となった。かかるファイルの送受信の一態様としては、複数のサーバ間で保持する内容を一致させる同期処理が行われる。   With the recent increase in network speed and capacity, a large number of files can be sent and received not only between computers connected via a LAN (Local Area Network) but also between computers connected via a network. It was. As one aspect of such file transmission / reception, a synchronization process for matching contents held between a plurality of servers is performed.

OS(Operating System)のセキュリティパッチの配布や、更新されたウィルス定義ファイルの配布など、非常に多くのパーソナルコンピュータ(PC:Personal Computer)にデータを配布する用途では、配布負荷の分散が重要である。例えば、多段構成の資源配布サーバを設け、配布元であるマスタサーバから下位のサブサーバへ配布データを同期させ、各PCにマスタサーバではなくサブサーバへアクセスさせることにより、配布負荷の分散が行われている。   Distribution of distribution load is important in applications that distribute data to a large number of personal computers (PCs), such as distribution of OS (Operating System) security patches and distribution of updated virus definition files. . For example, by providing a multistage resource distribution server, synchronizing distribution data from the master server that is the distribution source to the lower subserver, and allowing each PC to access the subserver instead of the master server, the distribution load can be distributed. It has been broken.

このようなサーバ間での配布データの同期においては、対象となるフォルダおよびファイルの総数が非常に多くなることから、ファイルリストを作成することによる同期処理が行われている。例えば、同期処理を行うサーバ側とクライアント側の双方で作成したファイルリストを比較して差分ファイルリストを作成し、差分ファイルリストに基づき同期処理を行うクライアントサーバシステムが開示されている。   In such synchronization of distribution data between servers, since the total number of target folders and files is very large, synchronization processing is performed by creating a file list. For example, a client server system is disclosed in which a differential file list is created by comparing file lists created on both the server side and the client side that perform synchronous processing, and the synchronous processing is performed based on the differential file list.

特開2010−49647号公報JP 2010-49647 A

しかしながら、上記の従来技術には、管理対象とするフォルダおよびファイルの増加に伴い、差分となるフォルダおよびファイルの数とは関係なく、ファイルリストの作成時間が増大するという問題がある。   However, the above-described conventional technique has a problem that the file list creation time increases as the number of folders and files to be managed increases, regardless of the number of folders and files that are differences.

すなわち、同期処理が必要な変更が、管理対象のデータの全体にわたる場合と、一部分に限られる場合では、同期処理として実行される処理の量、例えばファイルの追加、更新または削除の量は大きく異なる。それにもかかわらず、上記のクライアントサーバシステムでは、ファイルリストを同期処理の度に作成するので、同期処理が必要な変更が一部分のみである場合にファイルリストの作成に過大な処理時間が必要となる。   That is, the amount of processing executed as the synchronization processing, for example, the amount of file addition, update, or deletion, differs greatly when the change requiring synchronization processing covers the entire data to be managed and only a part of the data to be managed. . Nonetheless, in the client server system described above, the file list is created every time synchronization processing is performed, and therefore, when only a part of the changes need to be synchronized processing is required, excessive processing time is required to create the file list. .

開示の技術は、上記に鑑みてなされたものであって、ファイルリストの作成時間を短縮できる同期方法、同期プログラム及び情報処理装置を提供することを目的とする。   The disclosed technology has been made in view of the above, and an object of the present invention is to provide a synchronization method, a synchronization program, and an information processing apparatus that can shorten the creation time of a file list.

本願の開示する同期方法は、異なるファイルシステム間における同期方法であって、コンピュータが、同期対象とするファイルについてファイルリストを予め作成する処理を実行する。さらに、前記コンピュータが、前記ファイルの更新に関するイベントを取得する処理を実行する。さらに、前記コンピュータが、前記イベントが取得された更新ファイルの数を算出する処理を実行する。さらに、前記コンピュータが、同期対象とするファイルの総数に対する更新ファイルの数の割合が第1の閾値を超えた場合に、前記ファイルリストを部分更新する処理を実行する。さらに、前記コンピュータが、同期対象とするファイルの総数に対する更新ファイルの数の割合が前記第1の閾値よりも大きい第2の閾値を超えた場合に、前記ファイルリストの部分更新ではなく、前記ファイルリストを再作成する処理を実行する。   The synchronization method disclosed in this application is a synchronization method between different file systems, in which a computer executes a process of creating a file list in advance for files to be synchronized. Further, the computer executes processing for acquiring an event related to the update of the file. Further, the computer executes a process of calculating the number of update files from which the event has been acquired. Furthermore, when the ratio of the number of update files to the total number of files to be synchronized exceeds a first threshold, the computer executes a process of partially updating the file list. Further, when the ratio of the number of update files to the total number of files to be synchronized exceeds a second threshold value that is larger than the first threshold value, the file list is not partially updated but the file list is updated. Execute processing to re-create the list.

本願の開示する同期方法の一つの態様によれば、ファイルリストの作成時間を短縮できるという効果を奏する。   According to one aspect of the synchronization method disclosed in the present application, there is an effect that the creation time of the file list can be shortened.

図1は、実施例1に係るデータ配布システムのシステム構成を示す図である。FIG. 1 is a diagram illustrating a system configuration of the data distribution system according to the first embodiment. 図2は、実施例1に係るメインサーバの機能的構成を示すブロック図である。FIG. 2 is a block diagram illustrating a functional configuration of the main server according to the first embodiment. 図3は、配下数リストの一例を示す図である。FIG. 3 is a diagram illustrating an example of a subordinate number list. 図4は、ファイルリストの一例を示す図である。FIG. 4 is a diagram illustrating an example of a file list. 図5は、ファイル更新イベントのスタック方法を説明するための図である。FIG. 5 is a diagram for explaining a file update event stacking method. 図6は、ファイルリストの作成所要時間と更新ファイル数の関係を示すグラフの模式図である。FIG. 6 is a schematic diagram of a graph showing the relationship between the time required to create a file list and the number of updated files. 図7は、ファイルリストの作成所要時間と更新ファイル数の関係を示すグラフの模式図である。FIG. 7 is a schematic diagram of a graph showing the relationship between the time required to create a file list and the number of updated files. 図8は、実施例1に係るスタック処理の手順を示すフローチャートである。FIG. 8 is a flowchart illustrating a procedure of stack processing according to the first embodiment. 図9は、実施例1に係る第1の監視処理の手順を示すフローチャートである。FIG. 9 is a flowchart illustrating the procedure of the first monitoring process according to the first embodiment. 図10は、実施例1に係る第2の監視処理の手順を示すフローチャートである。FIG. 10 is a flowchart illustrating the procedure of the second monitoring process according to the first embodiment. 図11は、実施例1及び実施例2に係る同期プログラムを実行するコンピュータの一例について説明するための図である。FIG. 11 is a schematic diagram illustrating an example of a computer that executes a synchronization program according to the first and second embodiments.

以下に、本願の開示する同期方法、同期プログラム及び情報処理装置の実施例を図面に基づいて詳細に説明する。なお、この実施例は開示の技術を限定するものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。   Hereinafter, embodiments of a synchronization method, a synchronization program, and an information processing apparatus disclosed in the present application will be described in detail with reference to the drawings. Note that this embodiment does not limit the disclosed technology. Each embodiment can be appropriately combined within a range in which processing contents are not contradictory.

[システム構成]
まず、本実施例に係るデータ配布システムのシステム構成について説明する。図1は、実施例1に係るデータ配布システムのシステム構成を示す図である。図1に示すデータ配布システム1は、メインサーバ10及び複数のサブサーバ30A〜30C上で動作するオペレーティングシステムが提供するファイルシステム間で互いが保持するデータを一致させる同期処理を実行し、図示しない端末装置へのデータの配布を複数のサブサーバ30A〜30Cに分散して実行させるものである。
[System configuration]
First, the system configuration of the data distribution system according to the present embodiment will be described. FIG. 1 is a diagram illustrating a system configuration of the data distribution system according to the first embodiment. The data distribution system 1 illustrated in FIG. 1 performs a synchronization process for matching data held between file systems provided by an operating system operating on the main server 10 and the plurality of sub servers 30A to 30C, and is not illustrated. Distribution of data to the terminal device is executed by being distributed to the plurality of sub-servers 30A to 30C.

図1に示すように、データ配布システム1には、メインサーバ10と、複数のサブサーバ30A〜30Cとが収容される。この図1の例では、サブサーバ30A〜30Cを3つ収容する場合を図示したが、任意の数のサブサーバが収容される場合に適用できる。   As shown in FIG. 1, the data distribution system 1 accommodates a main server 10 and a plurality of sub-servers 30A to 30C. In the example of FIG. 1, the case where three sub servers 30 </ b> A to 30 </ b> C are accommodated is illustrated.

これらメインサーバ10及びサブサーバ30A〜30Cの間は、ネットワーク3を介して相互に通信可能に接続される。かかるネットワーク3には、LAN(Local Area Network)を始め、VPN(Virtual Private Network)、インターネットなどの任意の通信網を採用できる。   The main server 10 and the sub servers 30 </ b> A to 30 </ b> C are connected via the network 3 so that they can communicate with each other. As the network 3, any communication network such as a LAN (Local Area Network), a VPN (Virtual Private Network), and the Internet can be adopted.

このうち、メインサーバ10は、図示しない端末装置へ配布させるデータをサブサーバ30に配布するサーバ装置である。一態様としては、メインサーバ10は、サブサーバ30との間でデータを同期するように設定された同期対象のフォルダに格納されるファイルリストを作成してサブサーバ30A〜30Cに送信する。ここで言う「同期対象のフォルダ」には、同期対象として設定されたフォルダをルートフォルダとしたディレクトリ全体、すなわちルートフォルダ及びその下位に所属するフォルダを含む。その後、メインサーバ10は、メインサーバ10及びサブサーバ30A〜30Cによって作成された2つのファイルリストの間で検出された差分のファイルをサブサーバ30A〜30Cに送信する。   Among these, the main server 10 is a server device that distributes data to be distributed to a terminal device (not shown) to the sub server 30. As an aspect, the main server 10 creates a file list stored in a synchronization target folder set so as to synchronize data with the sub server 30 and transmits the file list to the sub servers 30A to 30C. The “synchronization target folder” mentioned here includes the entire directory having the folder set as the synchronization target as the root folder, that is, the root folder and folders belonging to the lower folder. Thereafter, the main server 10 transmits the difference file detected between the two file lists created by the main server 10 and the sub servers 30A to 30C to the sub servers 30A to 30C.

サブサーバ30A〜30Cは、自装置が保持するデータを図示しない端末装置に配布するサーバ装置である。一態様としては、サブサーバ30A〜30Cは、メインサーバ10との間でデータを同期するように設定された同期対象のフォルダに格納されるファイルリストを作成する。そして、サブサーバ30A〜30Cは、先に作成したファイルリストとメインサーバ10から転送されたファイルリストとの間で差分を検出する。その後、サブサーバ30A〜30Cは、2つのファイルリストの間で差分が検出されたファイルをメインサーバ10から取得する。これによって、サブサーバ30A〜30Cは、メインサーバ10によって保持されるデータの内容と自装置が保持するデータの内容とを一致させる。なお、以下では、サブサーバ30A〜サブサーバ30Cを区別なく総称する場合に「サブサーバ30」と記載する場合がある。   The sub servers 30A to 30C are server devices that distribute data held by the own device to terminal devices (not shown). As one aspect, the sub servers 30 </ b> A to 30 </ b> C create a file list stored in a synchronization target folder set to synchronize data with the main server 10. Then, the sub servers 30 </ b> A to 30 </ b> C detect a difference between the previously created file list and the file list transferred from the main server 10. Thereafter, the sub servers 30 </ b> A to 30 </ b> C obtain from the main server 10 a file in which a difference is detected between the two file lists. Thereby, the sub servers 30A to 30C make the content of the data held by the main server 10 coincide with the content of the data held by the own device. Hereinafter, the sub server 30A to the sub server 30C may be collectively referred to as “sub server 30” when collectively referred to.

[メインサーバの構成]
続いて、本実施例に係るメインサーバ10の機能的構成について説明する。図2は、実施例1に係るメインサーバ10の機能的構成を示すブロック図である。図2に示すように、メインサーバ10は、通信I/F(interface)部11と、記憶部12と、制御部13とを有する。なお、メインサーバ10は、図2に示す機能部以外にも既知のコンピュータが有する各種の機能部、例えば各種の入力デバイスや表示デバイスなどの機能を有するものとする。
[Main server configuration]
Subsequently, a functional configuration of the main server 10 according to the present embodiment will be described. FIG. 2 is a block diagram illustrating a functional configuration of the main server 10 according to the first embodiment. As shown in FIG. 2, the main server 10 includes a communication I / F (interface) unit 11, a storage unit 12, and a control unit 13. The main server 10 is assumed to have various functions of a known computer other than the functions shown in FIG. 2, such as various input devices and display devices.

このうち、通信I/F部11は、他の装置、例えばサブサーバ30との間で通信制御を行うインタフェースである。一例としては、通信I/F部11は、メインサーバ10が作成したファイルリストをサブサーバ30へ送信する。他の一例としては、通信I/F部11は、メインサーバ10及びサブサーバ30によって作成されたファイルリストの間で差分が検出されたファイルの取得要求をサブサーバ30から受信する。かかる通信I/F部11の一態様としては、LANカードなどのネットワークインタフェースカード(NIC:Network Interface Card)やモデムを採用できる。   Among these, the communication I / F unit 11 is an interface that performs communication control with another device, for example, the sub server 30. As an example, the communication I / F unit 11 transmits a file list created by the main server 10 to the sub server 30. As another example, the communication I / F unit 11 receives from the sub server 30 an acquisition request for a file in which a difference is detected between the file lists created by the main server 10 and the sub server 30. As an aspect of the communication I / F unit 11, a network interface card (NIC) such as a LAN card or a modem can be employed.

記憶部12は、制御部13で実行されるOS(Operating System)やサブサーバ30との間でデータの同期処理を実行する同期プログラムなどの各種プログラムを記憶する。さらに、記憶部12は、制御部13で実行されるプログラムの実行に必要なデータの一例として、更新フォルダリスト12aと、配下数リスト12bと、ファイルリスト12cとを記憶する。   The storage unit 12 stores various programs such as an OS (Operating System) executed by the control unit 13 and a synchronization program that executes data synchronization processing with the sub server 30. Further, the storage unit 12 stores an update folder list 12a, a subordinate number list 12b, and a file list 12c as an example of data necessary for executing the program executed by the control unit 13.

このうち、更新フォルダリスト12aは、更新があったフォルダのリストデータである。一例としては、更新フォルダリスト12aには、同期対象のフォルダのうち更新があったファイルを配下に持つフォルダが後述のスタック部13bによって追加される。他の一例としては、更新フォルダリスト12aは、後述のファイルリスト12cが部分更新または再作成された場合に、後述の部分更新部13cまたは後述の作成部13eによってクリアされる。かかる更新フォルダリスト12aの一態様としては、更新があったフォルダの絶対パス、いわゆるフルパスを採用できる。   Among them, the update folder list 12a is list data of folders that have been updated. As an example, a folder having an updated file under the synchronization target folder is added to the update folder list 12a by a stack unit 13b described later. As another example, the update folder list 12a is cleared by a later-described partial update unit 13c or a later-described creation unit 13e when a later-described file list 12c is partially updated or recreated. As an aspect of the updated folder list 12a, an absolute path of a folder that has been updated, a so-called full path can be adopted.

配下数リスト12bは、各々のフォルダが配下に持つファイル数のリストデータである。一例としては、配下数リスト12bは、後述のファイルリスト12cが部分更新または再作成された場合に、後述の部分更新部13dまたは後述の作成部13eによって更新される。   The subordinate number list 12b is list data of the number of files subordinate to each folder. As an example, the subordinate number list 12b is updated by a later-described partial updating unit 13d or a later-described creating unit 13e when a later-described file list 12c is partially updated or re-created.

かかる配下数リスト12bの一態様としては、フォルダ及びフォルダ配下のファイル数が対応付けられたデータを採用できる。図3は、配下数リスト12bの一例を示す図である。図3では、図中のアルファベットの大文字はフォルダ名を表すこととする。図3の例では、フォルダAの配下には3つのファイルがあり、フォルダKの配下には2つのファイルがあり、フォルダBの配下には3つのファイルがあり、さらに、フォルダCの配下には7つのファイルがあることを示す。なお、ここでは、フォルダ配下のファイル数を対応付けて記憶する場合を例示したが、例えば、フォルダ間の階層関係、例えば上位のフォルダや下位のフォルダをさらに記憶することとしてもよい。   As one aspect of the subordinate number list 12b, data in which the number of folders and files under the folder are associated can be employed. FIG. 3 is a diagram illustrating an example of the subordinate number list 12b. In FIG. 3, the capital letter of the alphabet in the figure represents the folder name. In the example of FIG. 3, there are three files under the folder A, two files under the folder K, three files under the folder B, and further under the folder C. Indicates that there are 7 files. In this example, the number of files under the folder is stored in association with each other. However, for example, a hierarchical relationship between folders, for example, an upper folder or a lower folder may be further stored.

ファイルリスト12cは、メインサーバ10が保持するファイルのリストデータである。一例としては、ファイルリスト12cは、記憶部12内にファイルリストが未登録の初期状態である場合に、後述の作成部13eによって新規作成される。他の一例としては、ファイルリスト12cは、同期対象とするファイルの総数に対する更新のあったファイルの数の割合が所定の閾値βを超える場合に、更新フォルダリスト12aにあるフォルダに関するリストが後述の部分更新部13dによって部分更新される。更なる一例としては、ファイルリスト12cは、同期対象とするファイルの総数に対する更新のあったファイルの数の割合が所定の閾値αを超える場合に、後述の作成部13eによって再作成される。   The file list 12 c is file list data held by the main server 10. As an example, the file list 12c is newly created by the creation unit 13e described later when the file list is in an initial state in which no file list is registered in the storage unit 12. As another example, in the file list 12c, when the ratio of the number of updated files to the total number of files to be synchronized exceeds a predetermined threshold β, a list regarding folders in the updated folder list 12a is described later. Partial update is performed by the partial update unit 13d. As a further example, the file list 12c is re-created by the creation unit 13e described later when the ratio of the number of updated files to the total number of files to be synchronized exceeds a predetermined threshold value α.

かかるファイルリスト12cの一態様としては、ファイル、サイズ、属性およびハッシュ値が対応付けられたデータを採用できる。ここで言う「属性」は、ファイルのプロパティを指し、例えば、読み取り専用属性(Read-only file)、アーカイブ属性(Archive file)、システムファイル属性(System file)や隠しファイル属性(Hidden file)などが挙げられる。また、「ハッシュ値」は、ハッシュ関数を用いて生成される疑似乱数を指し、例えば、ファイルの同一性をチェックするために使用される。   As an aspect of the file list 12c, data in which files, sizes, attributes, and hash values are associated can be employed. The “attribute” here refers to the property of the file. For example, read-only attribute (Read-only file), archive attribute (Archive file), system file attribute (System file), hidden file attribute (Hidden file), etc. Can be mentioned. The “hash value” refers to a pseudo-random number generated using a hash function, and is used, for example, to check the identity of a file.

図4は、ファイルリスト12cの一例を示す図である。図4では、図中のアルファベットの大文字はフォルダ名を表し、図中のアルファベットの小文字はファイル名を表し、図中の「.xxx」は拡張子を表すこととする。図4の例では、ファイルa1、ファイルa2及びファイルa3は、いずれもDドライブのルートフォルダ配下のフォルダAに格納されたファイルであり、読み取り専用属性が付与されていることを示す。また、図4の例では、ファイルk1及びファイルk2は、いずれもフォルダA配下のフォルダKに格納されたファイルであり、ファイルk1にはアーカイブ属性が付与されており、ファイルk2には隠しファイル属性が付与されていることを示す。   FIG. 4 is a diagram illustrating an example of the file list 12c. In FIG. 4, uppercase letters in the figure represent folder names, lowercase letters in the figures represent file names, and “.xxx” in the figure represents an extension. In the example of FIG. 4, the file a1, the file a2, and the file a3 are all files stored in the folder A under the root folder of the D drive and indicate that the read-only attribute is given. In the example of FIG. 4, the file k1 and the file k2 are both files stored in the folder K under the folder A. The file k1 has an archive attribute, and the file k2 has a hidden file attribute. Indicates that it is assigned.

制御部13は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。制御部13は、図2に示すように、OS実行部13aと、スタック部13bと、監視部13cと、部分更新部13dと、作成部13eと、同期処理部13fとを有する。   The control unit 13 has an internal memory for storing programs defining various processing procedures and control data, and executes various processes using these. As shown in FIG. 2, the control unit 13 includes an OS execution unit 13a, a stack unit 13b, a monitoring unit 13c, a partial update unit 13d, a creation unit 13e, and a synchronization processing unit 13f.

このうち、OS実行部13aは、コンピュータシステム全体を管理する基本ソフトウェアであるOSの実行を制御する処理部である。一例としては、OS実行部13aは、OSのセキュリティパッチの配布やウィルス定義ファイルをダウンロードしたり、インストールしたりする。他の一例としては、OS実行部13aは、アプリケーションをインストールまたはアンインストールしたり、ユーザファイルを追加、削除または変更したりする。更なる一例としては、OS実行部13aは、図示しないユーザインタフェースを介して指定されたファイルの属性を変更したりする。このように、ファイルの追加、削除、更新や属性の変更などが実行された場合には、OS実行部13aは、更新があったファイルのフルパス及び更新日時を含むファイル更新イベントを後述のスタック部13bへ通知する。なお、上記のファイル更新イベントの通知は、OSによって提供されるAPI(Application Program Interface)、例えば「FindFirstChangeNotification」などを使用することによって実現できる。   Among these, the OS execution unit 13a is a processing unit that controls execution of an OS that is basic software for managing the entire computer system. As an example, the OS execution unit 13a downloads and installs OS security patches and virus definition files. As another example, the OS execution unit 13a installs or uninstalls an application, and adds, deletes, or changes a user file. As a further example, the OS execution unit 13a changes the attribute of a file designated via a user interface (not shown). As described above, when a file addition, deletion, update, attribute change, or the like is executed, the OS execution unit 13a sends a file update event including the full path and update date / time of the updated file to a stack unit described later. 13b is notified. The file update event notification can be realized by using an API (Application Program Interface) provided by the OS, for example, “FindFirstChangeNotification”.

スタック部13bは、更新があったフォルダを更新フォルダリスト12aへスタックする処理部である。一態様としては、スタック部13bは、OS実行部13aからファイル更新イベントが通知された場合に、当該ファイルを配下に持つフォルダが更新フォルダリスト12aに登録されているか否かを判定する。このとき、スタック部13bは、更新フォルダリスト12aに登録されていない場合に、当該フォルダを更新フォルダリスト12aにスタックする。   The stack unit 13b is a processing unit that stacks updated folders on the update folder list 12a. As an aspect, when a file update event is notified from the OS execution unit 13a, the stack unit 13b determines whether a folder having the file is registered in the update folder list 12a. At this time, when the stack unit 13b is not registered in the update folder list 12a, the stack unit 13b stacks the folder on the update folder list 12a.

図5を用いて、ファイル更新イベントのスタック方法について説明する。図5は、ファイル更新イベントのスタック方法を説明するための図である。図5では、図中の左側に示すファイルのフルパスを含むファイル更新イベントが上から順番に通知される場合を想定する。さらに、図5では、ファイル更新イベントが始めに通知される段階では更新フォルダリスト12aにフォルダが未登録である場合を想定する。   A file update event stacking method will be described with reference to FIG. FIG. 5 is a diagram for explaining a file update event stacking method. In FIG. 5, it is assumed that a file update event including the full path of the file shown on the left side in the figure is notified in order from the top. Furthermore, in FIG. 5, it is assumed that a folder is not registered in the update folder list 12a at the stage when a file update event is first notified.

図5に示すように、ファイルのフルパス「D:\A\a1.xxx」を含むファイル更新イベントが通知されると、スタック部13bは、ファイルa1のフルパスのうち末尾のファイル名「a1.xxx」を削除する。このように末尾のファイル名を削除することによって、ファイル更新イベントが通知されたファイルa1を配下に持つフォルダAのフルパス「D:\A」に加工される。その上で、スタック部13bは、フォルダAが更新フォルダリスト12aに登録されているか否かを判定する。この場合には、更新フォルダリスト12aにフォルダが未登録であるので、スタック部13bは、フォルダAのフルパス「D:\A」を更新フォルダリスト12aに登録する。   As illustrated in FIG. 5, when a file update event including the full file path “D: \ A \ a1.xxx” is notified, the stack unit 13 b includes the file name “a1.xxx at the end of the full path of the file a 1. "Is deleted. By deleting the file name at the end in this way, the file A is processed into the full path “D: \ A” of the folder A having the file a1 notified of the file update event. After that, the stack unit 13b determines whether or not the folder A is registered in the update folder list 12a. In this case, since the folder is not registered in the update folder list 12a, the stack unit 13b registers the full path “D: \ A” of the folder A in the update folder list 12a.

このように、フォルダAのフルパス「D:\A」が登録された後には、フォルダAに格納されたファイルa1、ファイルa2及びファイルa3のファイル更新イベントが通知されたとしても、更新フォルダリスト12aへの登録は実行しない。すなわち、図5の例では、更新フォルダリスト12aにフォルダAのフルパスを登録した後に、ファイルa2のフルパス「D:\A\a2.xxx」及びファイルa3のフルパス「D:\A\a3.xxx」が通知される。これらは、いずれもフォルダAに格納されたファイルであるので、更新フォルダリスト12aへの登録は実行されない。   Thus, after the full path “D: \ A” of the folder A is registered, even if the file update event of the file a1, the file a2, and the file a3 stored in the folder A is notified, the update folder list 12a Do not register with. That is, in the example of FIG. 5, after the full path of the folder A is registered in the update folder list 12a, the full path “D: \ A \ a2.xxx” of the file a2 and the full path “D: \ A \ a3.xxx” of the file a3. Is notified. Since these are all files stored in the folder A, registration to the update folder list 12a is not executed.

その後、ファイルのフルパス「D:\A\K\k1.xxx」を含むファイル更新イベントが通知されると、スタック部13bは、ファイルk1のフルパスのうち末尾のファイル名「k1.xxx」を削除する。このように末尾のファイル名を削除することによって、ファイル更新イベントが通知されたファイルk1を配下に持つフォルダKのフルパス「D:\A\K」に加工される。その上で、スタック部13bは、フォルダKが更新フォルダリスト12aに登録されているか否かを判定する。この場合には、更新フォルダリスト12aにフォルダKが未登録であるので、スタック部13bは、フォルダKのフルパス「D:\A\K」を更新フォルダリスト12aに登録する。その後、ファイルk2のフルパス「D:\A\K\a2.xxx」が通知されるが、これはフォルダKに格納されたファイルであるので、更新フォルダリスト12aへの登録は実行されない。   After that, when a file update event including the file full path “D: \ A \ K \ k1.xxx” is notified, the stack unit 13b deletes the last file name “k1.xxx” in the full path of the file k1. To do. By deleting the file name at the end in this way, it is processed into the full path “D: \ A \ K” of the folder K having the file k1 notified of the file update event. After that, the stack unit 13b determines whether or not the folder K is registered in the update folder list 12a. In this case, since the folder K is not registered in the update folder list 12a, the stack unit 13b registers the full path “D: \ A \ K” of the folder K in the update folder list 12a. Thereafter, the full path “D: \ A \ K \ a2.xxx” of the file k2 is notified, but since this is a file stored in the folder K, registration in the update folder list 12a is not executed.

さらに、ファイルのフルパス「D:\B\b1.xxx」を含むファイル更新イベントが通知されると、スタック部13bは、ファイルb1のフルパスのうち末尾のファイル名「b1.xxx」を削除する。このように末尾のファイル名を削除することによって、ファイル更新イベントが通知されたファイルb1を配下に持つフォルダBのフルパス「D:\B」に加工される。その上で、スタック部13bは、フォルダBが更新フォルダリスト12aに登録されているか否かを判定する。この場合には、更新フォルダリスト12aにフォルダBが未登録であるので、スタック部13bは、フォルダKのフルパス「D:\B」を更新フォルダリスト12aに登録する。その後、ファイルb2のフルパス「D:\B\b2.xxx」が通知されるが、これはフォルダBに格納されたファイルであるので、更新フォルダリスト12aへの登録は実行されない。   Further, when a file update event including the full path “D: \ B \ b1.xxx” of the file is notified, the stack unit 13b deletes the last file name “b1.xxx” in the full path of the file b1. By deleting the file name at the end in this way, the file B is processed into the full path “D: \ B” of the folder B having the file b1 notified of the file update event. After that, the stack unit 13b determines whether or not the folder B is registered in the update folder list 12a. In this case, since the folder B is not registered in the update folder list 12a, the stack unit 13b registers the full path “D: \ B” of the folder K in the update folder list 12a. Thereafter, the full path “D: \ B \ b2.xxx” of the file b2 is notified, but since this is a file stored in the folder B, registration in the update folder list 12a is not executed.

このように、スタック部13bは、OS実行部13aから通知されるファイル更新イベントをファイル単位でリスト登録するのではなく、フォルダ単位でリスト登録する。このため、同じフォルダに格納されたファイルが更新された場合にそのファイルを改めてリスト登録せずともよくなるので、ファイル更新イベントをスタックする処理の負荷を軽減できる。   In this way, the stack unit 13b registers the file update events notified from the OS execution unit 13a in a list, not in units of files, but in units of folders. For this reason, when a file stored in the same folder is updated, it is not necessary to register the file again in the list, so that it is possible to reduce the processing load of stacking file update events.

監視部13cは、同期対象とするファイルの総数に対する更新のあったファイルの数の割合を監視する処理部である。この監視部13cは、第1の周期および第2の周期の2つの異なる周期で上記の割合を監視する。なお、以下では、同期対象とするファイルの総数のことを「ファイル総数」と記載し、更新のあったファイルの数のことを「更新ファイル数」と記載する場合がある。   The monitoring unit 13c is a processing unit that monitors the ratio of the number of updated files to the total number of files to be synchronized. The monitoring unit 13c monitors the above ratio in two different periods, the first period and the second period. In the following, the total number of files to be synchronized may be referred to as “total number of files”, and the number of updated files may be referred to as “number of updated files”.

このうち、第1の周期は、ファイルリスト12cを部分更新するよりも再作成した方がコストパフォーマンスがよくなってしまう前の段階でファイルリスト12cの部分更新を実行するために設定される監視時間である。かかる第1の周期には、ファイル更新イベントが通知されることを契機に監視を実行することもできるが、ファイル更新イベントが短期間に集中して通知された場合には監視の処理負荷が高くなる場合があるので、例えば、10秒周期などの周期が設定される。一方、第2の周期は、定期または定時にファイルリスト12cを部分更新した方がよいか、あるいは再作成した方がよいのかを判定するために設定される監視時間であり、第1の周期よりも長い周期、例えば1時間などの周期が設定される。   Among these, the first period is a monitoring time set for executing partial update of the file list 12c at a stage before the cost performance is improved by re-creating rather than partially updating the file list 12c. It is. In the first cycle, monitoring can be executed when a file update event is notified. However, when file update events are notified in a short period of time, the monitoring processing load is high. For example, a period such as a 10-second period is set. On the other hand, the second cycle is a monitoring time set to determine whether it is better to partially update or recreate the file list 12c at regular or regular times. A longer cycle, for example, a cycle such as one hour is set.

例えば、監視部13cは、前回に監視を実行してから第1の周期が経過した場合に、ファイルリスト12cを部分更新するか否かを判定する第1の監視処理を実行する。これを説明すると、まず、監視部13cは、更新フォルダリスト12aにスタックがあるか否かを判定する。このとき、監視部13cは、更新フォルダリスト12aにスタックがある場合に、配下数リスト12bに搭載されているファイル数を合計することによってファイル総数f1を算出する。続いて、監視部13cは、配下数リスト12bに搭載されているファイル数のうち、更新フォルダリスト12aにスタックされたフォルダが配下に持つファイル数を合計することによって更新ファイル数f2を算出する。その上で、監視部13cは、ファイル総数f1に対する更新ファイル数f2の割合、すなわちf2/f1が所定の閾値βを超えるか否かを判定する。このとき、ファイル総数f1に対する更新ファイル数f2の割合が閾値βを超える場合には、後述の部分更新部13dによってファイルリスト12cの部分更新が実行される。   For example, the monitoring unit 13c executes a first monitoring process for determining whether or not to partially update the file list 12c when the first period has elapsed since the previous monitoring was executed. To explain this, first, the monitoring unit 13c determines whether or not there is a stack in the update folder list 12a. At this time, when there is a stack in the update folder list 12a, the monitoring unit 13c calculates the total number of files f1 by adding up the number of files mounted in the subordinate number list 12b. Subsequently, the monitoring unit 13c calculates the updated file number f2 by totaling the number of files under the folder stacked in the updated folder list 12a among the number of files mounted in the subordinate number list 12b. After that, the monitoring unit 13c determines whether the ratio of the number of updated files f2 to the total number of files f1, that is, f2 / f1 exceeds a predetermined threshold β. At this time, if the ratio of the number of updated files f2 to the total number of files f1 exceeds the threshold value β, the partial update of the file list 12c is executed by the partial update unit 13d described later.

また、監視部13cは、前回に監視を実行してから第2の周期が経過した場合、図示しないユーザインタフェースを介して同期指示を受け付けた場合、あるいはコンソール等の外部装置から同期指示を受け付けた場合などに、次のような処理を起動する。すなわち、監視部13cは、ファイルリスト12cを部分更新するか、あるいは再作成するかを判定する第2の監視処理を実行する。これを説明すると、監視部13cは、上記の第1の監視処理と同様に、更新フォルダリスト12aにスタックがある場合に、ファイル総数f1及び更新ファイル数f2を算出する。その上で、監視部13cは、ファイル総数f1に対する更新ファイル数f2の割合、すなわちf2/f1が所定の閾値βを超えるか否かを判定する。このとき、ファイル総数f1に対する更新ファイル数f2の割合が閾値αを超える場合には、後述の作成部13eによってファイルリスト12cが再作成される。一方、ファイル総数f1に対する更新ファイル数f2の割合が閾値αを超えない場合には、後述の部分更新部13dによってファイルリスト12cの部分更新が実行される。   In addition, the monitoring unit 13c receives a synchronization instruction from an external device such as a console, when the second period has elapsed since the previous monitoring, when a synchronization instruction is received via a user interface (not shown), or In some cases, the following processing is started. That is, the monitoring unit 13c executes a second monitoring process for determining whether to partially update or recreate the file list 12c. To explain this, the monitoring unit 13c calculates the total number of files f1 and the number of updated files f2 when there is a stack in the update folder list 12a, as in the first monitoring process. After that, the monitoring unit 13c determines whether the ratio of the number of updated files f2 to the total number of files f1, that is, f2 / f1 exceeds a predetermined threshold β. At this time, if the ratio of the number of update files f2 to the total number of files f1 exceeds the threshold value α, the file list 12c is recreated by the creation unit 13e described later. On the other hand, when the ratio of the updated file number f2 to the total file number f1 does not exceed the threshold value α, the partial update unit 13d described later performs partial update of the file list 12c.

このように、監視部13cは、配下数リスト12bに搭載されているファイル数のうち、更新フォルダリスト12aにスタックされたフォルダが配下に持つファイル数を合計することによって最大の更新ファイル数を見積もる。このため、ファイル更新イベントをファイル単位でスタックせずとも、更新があったファイルが更新ファイル数から洩れることなく、更新ファイル数を求めることができる。   In this way, the monitoring unit 13c estimates the maximum number of update files by adding up the number of files under the folders stacked in the update folder list 12a among the number of files mounted in the subordinate number list 12b. . For this reason, the number of update files can be obtained without the files that have been updated leaking from the number of update files without stacking file update events in units of files.

部分更新部13dは、ファイルリスト12cを部分更新する処理部である。一態様としては、部分更新部13dは、ファイル総数に対する更新ファイル数の割合が第1の監視処理にて閾値βを超えた場合、あるいは第2の監視処理にて閾値αを超えなかった場合に、ファイルリスト12cを部分更新する。   The partial update unit 13d is a processing unit that partially updates the file list 12c. As one aspect, the partial update unit 13d determines that the ratio of the number of updated files to the total number of files exceeds the threshold value β in the first monitoring process, or if the threshold value α does not exceed the threshold value α in the second monitoring process. The file list 12c is partially updated.

これを説明すると、部分更新部13dは、更新フォルダリスト12aにスタックされたフォルダのフルパスを指定して当該フォルダ配下のファイルの取得要求をOS実行部13aに通知する。そして、部分更新部13dは、OS実行部13aからフォルダ配下のファイルを取得すると、所定のハッシュ関数を用いてファイルのハッシュ値を算出する。その後、部分更新部13dは、ファイルリスト12cに登録されたファイルのうち更新フォルダリスト12aにスタックされたフォルダの配下にあるファイルを削除する。その上で、部分更新部13dは、OS実行部13aから取得したファイルのフルパス、サイズ、属性およびハッシュ値を対応付けたデータをファイルリスト12cに追加する。このように、更新フォルダリスト12aにスタックされたフォルダ配下のファイルに関するリストがファイルリスト12cにマージされる。これによって、ファイルリスト12cが部分更新されることになる。   Explaining this, the partial update unit 13d designates the full path of the folder stacked in the update folder list 12a and notifies the OS execution unit 13a of an acquisition request for a file under the folder. And the partial update part 13d will calculate the hash value of a file using a predetermined | prescribed hash function, if the file under a folder is acquired from OS execution part 13a. Thereafter, the partial update unit 13d deletes files under the folders stacked in the update folder list 12a among the files registered in the file list 12c. Then, the partial update unit 13d adds data in which the full path, size, attribute, and hash value of the file acquired from the OS execution unit 13a are associated with each other to the file list 12c. In this way, the list relating to the files under the folder stacked in the update folder list 12a is merged with the file list 12c. As a result, the file list 12c is partially updated.

ここで、上記の「閾値β」は、システムリソースの空き状況、プロセッサの性能またはディスクのアクセス性能のうち少なくとも1つを用いて設定される。すなわち、上記の閾値βの値を小さく設定すると、ファイルリスト12cの部分更新が実行される頻度も高くなる。このように、ファイルリスト12cが部分更新される頻度を過度に高くすると、メインサーバ10のシステムリソースを定常的に圧迫する上、定期または定時に実行される第2の監視処理を実行する意義が薄くなる。このことから、第2の監視処理に用いられる閾値αよりも低い値であってメインサーバ10のCPUやメモリの使用率が低くなるほど値を低く、ディスクへのアクセス速度が高いほど値が低くなるように定められた閾値βの算出アルゴリズムによって算出された閾値βが監視部13cの第1の監視処理に用いられる。   Here, the “threshold value β” is set using at least one of a system resource availability, a processor performance, and a disk access performance. That is, if the threshold value β is set to be small, the frequency at which the partial update of the file list 12c is executed increases. Thus, if the frequency with which the file list 12c is partially updated is excessively increased, the system resources of the main server 10 are constantly pressed, and the significance of executing the second monitoring process that is executed regularly or regularly is significant. getting thin. From this, the value is lower than the threshold value α used for the second monitoring process, and the value decreases as the CPU and memory usage rate of the main server 10 decreases, and the value decreases as the access speed to the disk increases. The threshold value β calculated by the threshold value β calculation algorithm determined as described above is used in the first monitoring process of the monitoring unit 13c.

作成部13eは、ファイルリスト12cを作成する処理部である。一態様としては、作成部13eは、記憶部12にファイルリスト12cが未登録である場合に、ファイルリスト12cを新規作成する。他の一態様としては、作成部13eは、ファイル総数に対する更新ファイル数の割合が閾値αを超えた場合に、ファイルリスト12cを再作成する。なお、ファイルリスト12cの新規作成および再作成は、以下に説明するように、同様の処理が実行される。   The creation unit 13e is a processing unit that creates the file list 12c. As one aspect, the creation unit 13e creates a new file list 12c when the file list 12c is not registered in the storage unit 12. As another aspect, the creation unit 13e recreates the file list 12c when the ratio of the number of updated files to the total number of files exceeds a threshold value α. Note that new creation and re-creation of the file list 12c are performed in the same manner as described below.

これを説明すると、作成部13eは、同期対象のフォルダのうち最上層に位置するルートフォルダを指定してルートフォルダ及びその下位のフォルダに格納された全てのファイルの取得要求をOS実行部13aに通知する。このように、作成部13eは、OSによって提供されるフォルダ監視用のAPIを用いて、OS実行部13aから同期対象とする全てのファイルを取得する。その後、作成部13eは、OS実行部13aから取得した同期対象のファイルごとに、所定のハッシュ関数を用いてファイルのハッシュ値を算出する。その上で、作成部13eは、OS実行部13aから取得した同期対象のファイルごとにフルパス、サイズ、属性およびハッシュ値を対応付けることによってファイルリスト12cに作成する。そして、作成部13eは、記憶部12にファイルリスト12cが未登録である場合には、作成したファイルリスト12cを記憶部12に登録する。一方、作成部13eは、記憶部12にファイルリスト12cが既に登録されている場合には、今回再作成したファイルリスト12cを前回作成されていたファイルリストに上書き保存する。   Explaining this, the creation unit 13e designates the root folder located in the uppermost layer among the synchronization target folders, and sends an acquisition request for all files stored in the root folder and its lower folders to the OS execution unit 13a. Notice. In this way, the creation unit 13e acquires all files to be synchronized from the OS execution unit 13a using the folder monitoring API provided by the OS. Thereafter, the creation unit 13e calculates a hash value of the file using a predetermined hash function for each synchronization target file acquired from the OS execution unit 13a. Then, the creation unit 13e creates the file list 12c by associating the full path, size, attribute, and hash value for each synchronization target file acquired from the OS execution unit 13a. Then, when the file list 12 c is not registered in the storage unit 12, the creation unit 13 e registers the created file list 12 c in the storage unit 12. On the other hand, when the file list 12c is already registered in the storage unit 12, the creation unit 13e overwrites and saves the file list 12c recreated this time on the previously created file list.

ここで、上記の「閾値α」は、同期対象とするファイルの総数、1つのファイルにつき部分更新をファイルリスト12cにマージするマージ所要時間または1つのファイルにつきハッシュ値の算出にかかる算出所要時間のうち少なくとも1つを用いて設定される。   Here, the above “threshold value α” is the total number of files to be synchronized, the time required for merging the partial update per file into the file list 12c, or the time required for calculating the hash value per file. It is set using at least one of them.

図6及び図7は、ファイルリスト12cの作成所要時間と更新ファイル数の関係を示すグラフの模式図である。図6及び図7では、図中のグラフの縦軸がファイルリスト12cの作成所要時間を指し、また、図中のグラフの横軸が更新ファイル数を指す。また、図6に示す一点鎖線60は、ファイルリスト12cの再作成所要時間のグラフを示す。さらに、図6に示す実線61は、ファイルリスト12cの部分更新所要時間のグラフを示す。また、図7に示す一点鎖線70は、ハッシュ値の算出所要時間を含む再作成所要時間のグラフを示す。また、図7に示す二点鎖線71は、ハッシュ値の算出所要時間を含む部分更新所要時間のグラフを示す。   6 and 7 are schematic diagrams of graphs showing the relationship between the time required for creating the file list 12c and the number of updated files. 6 and 7, the vertical axis of the graphs in the drawings indicates the time required for creating the file list 12c, and the horizontal axis of the graphs in the drawings indicates the number of update files. Also, the alternate long and short dash line 60 shown in FIG. 6 shows a graph of the time required to recreate the file list 12c. Furthermore, the solid line 61 shown in FIG. 6 shows a graph of the time required for partial update of the file list 12c. In addition, an alternate long and short dash line 70 shown in FIG. Also, a two-dot chain line 71 shown in FIG. 7 shows a graph of a partial update required time including a hash value calculation required time.

図6に示すように、ファイルリスト12cの再作成は、同期対象とするファイル総数にしか依存しない。よって、再作成所要時間のグラフ60は、更新ファイル数の多寡にかかわらず、所要時間は常に一定である。一方、部分更新所要時間のグラフ61は、更新ファイル数が増加するほど所要時間が増加する。   As shown in FIG. 6, the re-creation of the file list 12c depends only on the total number of files to be synchronized. Therefore, in the re-creation required time graph 60, the required time is always constant regardless of the number of update files. On the other hand, in the partial update required time graph 61, the required time increases as the number of update files increases.

そして、ファイルリスト12cを再作成する場合には、更新フォルダリスト12aに登録されているフォルダ配下のファイルを対象に、前回作成されていたリストデータを削除した上で今回作成したリストデータがマージされる。このため、ファイルリスト12cを部分更新する場合には、更新フォルダリスト12aに登録されているフォルダ配下のファイルのリストデータを削除する分、ファイルリスト12cを再作成する場合よりもファイル1つ当たりの所要時間が長くなる。それゆえ、更新ファイル数によっては、部分更新所要時間のグラフ61が再作成所要時間のグラフ60よりも上回る場合がある。   When re-creating the file list 12c, the list data created this time is merged after deleting the previously created list data for the files under the folder registered in the update folder list 12a. The For this reason, when the file list 12c is partially updated, since the list data of the files under the folder registered in the update folder list 12a is deleted, the file list 12c is more per file than when the file list 12c is recreated. The required time becomes longer. Therefore, depending on the number of update files, the partial update required time graph 61 may exceed the re-creation required time graph 60.

このことから、ファイル1つ当たりのマージ所要時間から再作成所要時間のグラフ60及び部分更新所要時間のグラフ61の交点となる更新ファイル数を求めた上でその交点の更新ファイル数fα1と同期対象とするファイルの総数から閾値αを算出することができる。かかる閾値αを採用した場合には、部分更新所要時間のグラフ61が再作成所要時間のグラフ60と交わるまでは部分更新部13dにファイルリスト12cを部分更新させることができる。さらに、部分更新所要時間のグラフ61が再作成所要時間のグラフ60を上回る場合には作成部13eにファイルリスト12cを再作成させることができる。したがって、閾値αを採用すれば、ファイルリスト12cの部分更新または再作成を適応制御できる。 From this, the number of update files at the intersection of the re-creation required time graph 60 and the partial update required time graph 61 is obtained from the merge required time per file and then synchronized with the update file number f α1 at the intersection. The threshold value α can be calculated from the total number of target files. When this threshold value α is employed, the file list 12c can be partially updated by the partial update unit 13d until the partial update required time graph 61 intersects with the re-creation required time graph 60. Further, when the partial update required time graph 61 exceeds the re-creation required time graph 60, the creation unit 13e can re-create the file list 12c. Therefore, by adopting the threshold value α, it is possible to adaptively control partial update or recreation of the file list 12c.

さらに、ファイルの同一性をチェックするためにファイルのハッシュ値をファイルリスト12cに含める場合には、ハッシュ値の算出所要時間をパラメータに含めて閾値αを設定するのが好ましい。なぜなら、ハッシュ値の算出所要時間は、マージ所要時間と比較して非常に長いので、図7に示すように、ハッシュ値を算出しない場合の部分更新所要時間のグラフ60と比べてハッシュ値の算出所要時間を含む部分更新所要時間のグラフ71の傾きが小さくなるからである。これに伴って、再作成所要時間のグラフ70とハッシュ値の算出所要時間を含む部分更新所要時間のグラフ71との交点も右側にシフトする。   Furthermore, when the hash value of the file is included in the file list 12c in order to check the identity of the file, it is preferable to set the threshold α by including the time required for calculating the hash value as a parameter. This is because the time required for calculating the hash value is very long compared to the time required for merging, and as shown in FIG. 7, the calculation of the hash value is compared with the graph 60 of the time required for partial update when the hash value is not calculated. This is because the slope of the partial update required time graph 71 including the required time becomes small. Along with this, the intersection of the graph 70 of the required time for re-creation and the graph 71 of the required time for partial update including the required time for calculating the hash value is also shifted to the right.

これらのことから、ファイルのハッシュ値を算出する場合には、ファイル1つ当たりのマージ所要時間及びファイル1つ当たりのハッシュ値の算出所要時間から2つのグラフの交点における更新ファイル数fα2を算出する。その上で、更新ファイル数fα2と同期対象とするファイルの総数から閾値αを算出するのが好ましい。かかる閾値αを採用した場合には、ファイルリスト12cにファイルのハッシュ値を含める場合にも、ファイルリスト12cの部分更新または再作成を適応制御できる。 Therefore, when calculating the hash value of a file, the number f α2 of updated files at the intersection of the two graphs is calculated from the time required for merging per file and the time required for calculating the hash value per file. To do. In addition, it is preferable to calculate the threshold value α H from the updated file number f α2 and the total number of files to be synchronized. When such a threshold value α H is adopted, partial update or recreation of the file list 12c can be adaptively controlled even when the hash value of the file is included in the file list 12c.

同期処理部13fは、複数のサブサーバ30A〜30Cの間で互いが保持するデータを一致させる同期処理を実行する処理部である。一態様としては、同期処理部13fは、第2の監視処理が実行された場合に、部分更新部13dによって部分更新されたファイルリスト12cまたは作成部13eによって再作成されたファイルリスト12cをサブサーバ30へ転送する。その後、同期処理部13fは、メインサーバ10及びサブサーバ30A〜30Cによって作成された2つのファイルリストの間で検出された差分のファイルをサブサーバ30へ送信する。かかる差分のファイルがサブサーバ30に格納されることによって、メインサーバ10及びサブサーバ30の間で両者が保持するデータの内容が一致することになる。   The synchronization processing unit 13f is a processing unit that executes a synchronization process for matching data held between the plurality of sub servers 30A to 30C. As one aspect, when the second monitoring process is executed, the synchronization processing unit 13f displays the file list 12c partially updated by the partial update unit 13d or the file list 12c recreated by the creation unit 13e as a sub-server. Transfer to 30. Thereafter, the synchronization processing unit 13f transmits the difference file detected between the two file lists created by the main server 10 and the sub servers 30A to 30C to the sub server 30. By storing the difference file in the sub server 30, the contents of the data held by the main server 10 and the sub server 30 are matched.

[処理の流れ]
次に、本実施例に係るメインサーバ10の処理の流れについて説明する。なお、ここでは、(1)スタック処理を説明した後に(2)第1の監視処理を説明し、最後に、(3)第2の監視処理を説明することとする。
[Process flow]
Next, the flow of processing of the main server 10 according to the present embodiment will be described. Here, (1) the stack process is described, (2) the first monitoring process is described, and finally (3) the second monitoring process is described.

(1)スタック処理
図8は、実施例1に係るスタック処理の手順を示すフローチャートである。このスタック処理は、メインサーバ10の電源がON状態である限り、繰り返し実行される処理である。
(1) Stack Processing FIG. 8 is a flowchart illustrating a procedure of stack processing according to the first embodiment. This stack process is a process that is repeatedly executed as long as the main server 10 is powered on.

図8に示すように、OS実行部13aからファイル更新イベントが通知された場合(ステップS101肯定)に、スタック部13bは、次のような処理を実行する。すなわち、スタック部13bは、当該ファイルのフルパスのうち末尾のファイル名を削除することによってファイル更新イベントが通知されたファイルを配下に持つフォルダのフルパスを特定する(ステップS102)。   As shown in FIG. 8, when a file update event is notified from the OS execution unit 13a (Yes in step S101), the stack unit 13b executes the following process. In other words, the stack unit 13b specifies the full path of the folder under which the file notified of the file update event is deleted by deleting the last file name from the full path of the file (step S102).

その後、スタック部13bは、当該ファイルを配下に持つフォルダが更新フォルダリスト12aにスタック済みであるか否かを判定する(ステップS103)。このとき、フォルダが更新フォルダリスト12aにスタックされていない場合(ステップS103否定)に、スタック部13bは、当該フォルダを更新フォルダリスト12aにスタックし(ステップS104)、上記のステップS101に戻る。   Thereafter, the stack unit 13b determines whether or not the folder having the file under control has been stacked in the update folder list 12a (step S103). At this time, if the folder is not stacked on the update folder list 12a (No at Step S103), the stack unit 13b stacks the folder on the update folder list 12a (Step S104), and returns to Step S101.

一方、フォルダが更新フォルダリスト12aにスタック済みである場合(ステップS103肯定)には、更新フォルダリスト12aへのスタックを実行せずに、上記のステップS101に戻る。   On the other hand, if the folder has been stacked on the update folder list 12a (Yes at step S103), the process returns to step S101 without executing the stack on the update folder list 12a.

(2)第1の監視処理
図9は、実施例1に係る第1の監視処理の手順を示すフローチャートである。この第1の監視処理は、前回に第1の監視処理を実行してから第1の周期、例えば10秒間が経過した場合に、処理が起動される。
(2) First Monitoring Process FIG. 9 is a flowchart illustrating the procedure of the first monitoring process according to the first embodiment. The first monitoring process is started when a first period, for example, 10 seconds has elapsed since the first monitoring process was executed last time.

図9に示すように、まず、監視部13cは、更新フォルダリスト12aにスタックがあるか否かを判定する(ステップS201)。なお、更新フォルダリスト12aにスタックがない場合(ステップS201否定)には、ファイルリスト12cを部分更新または再作成する必要がないので、そのまま処理を終了する。   As shown in FIG. 9, first, the monitoring unit 13c determines whether or not there is a stack in the update folder list 12a (step S201). If there is no stack in the update folder list 12a (No in step S201), the file list 12c does not need to be partially updated or recreated, so the process is terminated.

このとき、更新フォルダリスト12aにスタックがある場合(ステップS201肯定)に、監視部13cは、配下数リスト12bに搭載されているファイル数を合計することによってファイル総数f1を算出する(ステップS202)。   At this time, when there is a stack in the update folder list 12a (Yes at Step S201), the monitoring unit 13c calculates the total number of files f1 by adding up the number of files mounted in the subordinate number list 12b (Step S202). .

続いて、監視部13cは、配下数リスト12bに搭載されているファイル数のうち、更新フォルダリスト12aにスタックされたフォルダが配下に持つファイル数を合計することによって更新ファイル数f2を算出する(ステップS203)。   Subsequently, the monitoring unit 13c calculates the updated file number f2 by totaling the number of files held by the folders stacked in the updated folder list 12a among the number of files mounted in the subordinate number list 12b ( Step S203).

その上で、監視部13cは、ファイル総数f1に対する更新ファイル数f2の割合、すなわちf2/f1が所定の閾値βを超えるか否かを判定する(ステップS204)。   Then, the monitoring unit 13c determines whether or not the ratio of the number of updated files f2 to the total number of files f1, that is, f2 / f1 exceeds a predetermined threshold value β (step S204).

ここで、ファイル総数f1に対する更新ファイル数f2の割合が閾値βを超える場合(ステップS204肯定)には、部分更新部13dは、更新フォルダリスト12aにスタックされたフォルダを対象に、ファイルリスト12cを部分更新する(ステップS205)。   Here, when the ratio of the number of updated files f2 to the total number of files f1 exceeds the threshold β (Yes in step S204), the partial update unit 13d sets the file list 12c for the folders stacked in the updated folder list 12a. Partial update is performed (step S205).

その後、部分更新部13dは、配下数リスト12bのうちファイルリスト12cを部分更新したフォルダの配下数を部分更新後のファイル数に更新する(ステップS206)。さらに、部分更新部13dは、更新フォルダリスト12aをクリアし(ステップS207)、処理を終了する。   Thereafter, the partial update unit 13d updates the subordinate number of the folder in which the file list 12c is partially updated in the subordinate number list 12b to the number of files after the partial update (step S206). Furthermore, the partial update unit 13d clears the update folder list 12a (step S207) and ends the process.

なお、ファイル総数f1に対する更新ファイル数f2の割合が閾値βを超えない場合(ステップS204否定)には、ファイルリスト12cを部分更新する必要はないので、そのまま処理を終了する。   If the ratio of the number of updated files f2 to the total number of files f1 does not exceed the threshold β (No in step S204), the file list 12c does not need to be partially updated, and the process ends.

(3)第2の監視処理
図10は、実施例1に係る第2の監視処理の手順を示すフローチャートである。この第2の監視処理は、前回に第2の監視処理を実行してから第2の周期、例えば1時間が経過した場合、図示しないユーザインタフェースを介して同期指示を受け付けた場合やコンソール等の外部装置から同期指示を受け付けた場合などに、処理が起動される。
(3) Second Monitoring Process FIG. 10 is a flowchart illustrating the procedure of the second monitoring process according to the first embodiment. This second monitoring process is performed when a second cycle, for example, 1 hour has elapsed since the second monitoring process was executed last time, when a synchronization instruction is received via a user interface (not shown), or when a console is used. The process is started when a synchronization instruction is received from an external device.

図10に示すように、まず、監視部13cは、更新フォルダリスト12aにスタックがあるか否かを判定する(ステップS301)。なお、更新フォルダリスト12aにスタックがない場合(ステップS301否定)には、ファイルリスト12cを部分更新または再作成する必要がないので、そのまま処理を終了する。   As shown in FIG. 10, first, the monitoring unit 13c determines whether or not there is a stack in the update folder list 12a (step S301). If there is no stack in the update folder list 12a (No at Step S301), the file list 12c does not need to be partially updated or recreated, and the process is terminated.

このとき、更新フォルダリスト12aにスタックがある場合(ステップS301肯定)に、監視部13cは、配下数リスト12bに搭載されているファイル数を合計することによってファイル総数f1を算出する(ステップS302)。   At this time, if there is a stack in the update folder list 12a (Yes at Step S301), the monitoring unit 13c calculates the total number of files f1 by adding up the number of files mounted in the subordinate number list 12b (Step S302). .

続いて、監視部13cは、配下数リスト12bに搭載されているファイル数のうち、更新フォルダリスト12aにスタックされたフォルダが配下に持つファイル数を合計することによって更新ファイル数f2を算出する(ステップS303)。   Subsequently, the monitoring unit 13c calculates the updated file number f2 by totaling the number of files held by the folders stacked in the updated folder list 12a among the number of files mounted in the subordinate number list 12b ( Step S303).

その上で、監視部13cは、ファイル総数f1に対する更新ファイル数f2の割合、すなわちf2/f1が所定の閾値αを超えるか否かを判定する(ステップS304)。   Then, the monitoring unit 13c determines whether or not the ratio of the updated file number f2 to the total file number f1, that is, f2 / f1 exceeds a predetermined threshold value α (step S304).

ここで、ファイル総数f1に対する更新ファイル数f2の割合が閾値αを超える場合(ステップS304肯定)には、作成部13eは、ファイルリスト12cを部分更新した方が時間がかかるので、ファイルリスト12cを再作成する(ステップS305)。   Here, when the ratio of the number of updated files f2 to the total number of files f1 exceeds the threshold value α (Yes in step S304), the creation unit 13e takes more time to partially update the file list 12c. It is recreated (step S305).

その後、作成部13eは、配下数リスト12bに登録された各フォルダの配下数を再作成後のファイル数に更新する(ステップS306)。さらに、作成部13eは、更新フォルダリスト12aをクリアし(ステップS307)、処理を終了する。   Thereafter, the creation unit 13e updates the subordinate number of each folder registered in the subordinate number list 12b to the number of files after re-creation (step S306). Furthermore, the creation unit 13e clears the update folder list 12a (step S307) and ends the process.

一方、ファイル総数f1に対する更新ファイル数f2の割合が閾値αを超えない場合(ステップS304否定)には、部分更新部13dは、更新フォルダリスト12aにスタックされたフォルダを対象に、ファイルリスト12cを部分更新する(ステップS308)。   On the other hand, if the ratio of the number of updated files f2 to the total number of files f1 does not exceed the threshold α (No in step S304), the partial update unit 13d sets the file list 12c for the folders stacked in the updated folder list 12a. Partial update is performed (step S308).

その後、部分更新部13dは、配下数リスト12bのうちファイルリスト12cを部分更新したフォルダの配下数を部分更新後のファイル数に更新する(ステップS306)。さらに、部分更新部13dは、更新フォルダリスト12aをクリアし(ステップS307)、処理を終了する。   Thereafter, the partial update unit 13d updates the subordinate number of the folder in which the file list 12c is partially updated in the subordinate number list 12b to the number of files after the partial update (step S306). Furthermore, the partial update unit 13d clears the update folder list 12a (step S307) and ends the process.

[実施例1の効果]
上述してきたように、本実施例に係るメインサーバ10は、サブサーバ30との間でファイルリストを用いて同期処理を行う場合に、ファイル総数に対する更新ファイル数の割合に応じてファイルリストの部分更新または再作成を適応制御する。例えば、本実施例に係るメインサーバ10では、同期対象とするファイルの更新がファイルリスト12cの一部に限られる場合にはファイルリスト12cを部分更新する一方で、ファイルリスト12cの全体にわたる場合にはファイルリスト12cを再作成できる。したがって、本実施例に係るメインサーバ10によれば、ファイルリストの作成時間を短縮できる。
[Effect of Example 1]
As described above, when the main server 10 according to the present embodiment performs synchronization processing with the sub server 30 using a file list, a portion of the file list according to the ratio of the number of updated files to the total number of files. Adaptively control update or recreation. For example, in the main server 10 according to the present embodiment, when the update of the file to be synchronized is limited to a part of the file list 12c, the file list 12c is partially updated while the file list 12c is entirely updated. Can recreate the file list 12c. Therefore, according to the main server 10 according to the present embodiment, the file list creation time can be shortened.

さて、これまで開示の装置に関する実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。   Although the embodiments related to the disclosed apparatus have been described above, the present invention may be implemented in various different forms other than the above-described embodiments. Therefore, another embodiment included in the present invention will be described below.

[適用範囲]
例えば、上記の実施例1では、メインサーバ10のファイルリストを作成する場合を例示したが、開示の装置はこれに限定されるものではない。例えば、図2に示したスタック部13b、監視部13c、部分更新部13d及び作成部13eの各機能部をサブサーバ30に実装することによって、サブサーバ30がファイルリストを作成する場合にも本発明を適用できる。
[Scope of application]
For example, in the first embodiment described above, the case where the file list of the main server 10 is created is illustrated, but the disclosed apparatus is not limited to this. For example, when the sub server 30 creates a file list by mounting the functional units of the stack unit 13b, the monitoring unit 13c, the partial update unit 13d, and the creation unit 13e shown in FIG. The invention can be applied.

また、上記の実施例1では、メインサーバ10及び複数のサブサーバ30間におけるファイルの同期方法について説明したが、必ずしも異なるコンピュータが同期対象とするファイルを保持している必要はない。すなわち、開示の装置は、複数のファイルシステム間でファイルを同期する場合、例えば1つのコンピュータに複数または異なる複数のファイルシステムが搭載される場合に同様に適用できる。例えば、開示の装置は、複数の仮想マシンを搭載するコンピュータが有するファイルシステム間でファイルを同期する場合に適用することもできるし、また、ディスクサーバが有するファイルシステム間でファイルを同期する場合に適用することもできる。   In the first embodiment, the file synchronization method between the main server 10 and the plurality of sub servers 30 has been described. However, different computers do not necessarily have to hold files to be synchronized. That is, the disclosed apparatus can be similarly applied when synchronizing files between a plurality of file systems, for example, when a plurality of or different file systems are mounted on one computer. For example, the disclosed apparatus can be applied to a case where files are synchronized between file systems possessed by computers equipped with a plurality of virtual machines, or when a file is synchronized between file systems possessed by a disk server. It can also be applied.

また、上記の実施例1では、同期処理に用いるファイルリストを作成する場合について例示したが、開示の装置はこれに限定されず、バックアップデータのファイルリストを作成するなど他の処理を高速化する場合にも同様に適用することができる。   In the first embodiment, the case where the file list used for the synchronization process is created is illustrated. However, the disclosed apparatus is not limited to this, and other processes such as creating a backup data file list are accelerated. The same applies to the case.

[分散および統合]
また、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、スタック部13b、監視部13c、部分更新部13dまたは作成部13eをメインサーバ10の外部装置としてネットワーク経由で接続するようにしてもよい。また、スタック部13b、監視部13c、部分更新部13dまたは作成部13eを別の装置がそれぞれ有し、ネットワーク接続されて協働することで、上記のメインサーバ10の機能を実現するようにしてもよい。
[Distribution and integration]
In addition, each component of each illustrated apparatus does not necessarily need to be physically configured as illustrated. In other words, the specific form of distribution / integration of each device is not limited to that shown in the figure, and all or a part thereof may be functionally or physically distributed or arbitrarily distributed in arbitrary units according to various loads or usage conditions. Can be integrated and configured. For example, the stack unit 13b, the monitoring unit 13c, the partial update unit 13d, or the creation unit 13e may be connected as an external device of the main server 10 via a network. In addition, the stack unit 13b, the monitoring unit 13c, the partial update unit 13d, or the creation unit 13e are provided in different devices, and are connected to the network to cooperate to realize the function of the main server 10 described above. Also good.

[同期プログラム]
また、上記の実施例で説明した各種の処理は、予め用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、図11を用いて、上記の実施例と同様の機能を有する同期プログラムを実行するコンピュータの一例について説明する。
[Synchronization program]
The various processes described in the above embodiments can be realized by executing a prepared program on a computer such as a personal computer or a workstation. In the following, an example of a computer that executes a synchronization program having the same function as that of the above embodiment will be described with reference to FIG.

図11は、実施例1及び実施例2に係る同期プログラムを実行するコンピュータの一例について説明するための図である。図11に示すように、コンピュータ100は、操作部110aと、スピーカ110bと、カメラ110cと、ディスプレイ120と、通信部130とを有する。さらに、このコンピュータ100は、CPU150と、ROM160と、HDD170と、RAM180と有する。これら110〜180の各部はバス140を介して接続される。   FIG. 11 is a schematic diagram illustrating an example of a computer that executes a synchronization program according to the first and second embodiments. As illustrated in FIG. 11, the computer 100 includes an operation unit 110 a, a speaker 110 b, a camera 110 c, a display 120, and a communication unit 130. Further, the computer 100 includes a CPU 150, a ROM 160, an HDD 170, and a RAM 180. These units 110 to 180 are connected via a bus 140.

HDD170には、図11に示すように、上記の実施例1で示したスタック部13b、監視部13c、部分更新部13d及び作成部13eと同様の機能を発揮する同期プログラム170aが予め記憶される。この同期プログラム170aについては、図2に示した各々のスタック部13b、監視部13c、部分更新部13d及び作成部13eの各構成要素と同様、適宜統合又は分離しても良い。すなわち、HDD170に格納される各データは、常に全てのデータがHDD170に格納される必要はなく、処理に必要なデータのみがHDD170に格納されれば良い。   As shown in FIG. 11, the HDD 170 stores in advance a synchronization program 170a that performs the same functions as the stack unit 13b, the monitoring unit 13c, the partial update unit 13d, and the creation unit 13e described in the first embodiment. . The synchronization program 170a may be integrated or separated as appropriate, like the respective components of the stack unit 13b, the monitoring unit 13c, the partial update unit 13d, and the creation unit 13e shown in FIG. In other words, all data stored in the HDD 170 need not always be stored in the HDD 170, and only data necessary for processing may be stored in the HDD 170.

そして、CPU150が、同期プログラム170aをHDD170から読み出してRAM180に展開する。これによって、図11に示すように、同期プログラム170aは、同期プロセス180aとして機能する。この同期プロセス180aは、HDD170から読み出した各種データを適宜RAM180上の自身に割り当てられた領域に展開し、この展開した各種データに基づいて各種処理を実行する。なお、同期プロセス180aは、図2に示したスタック部13b、監視部13c、部分更新部13d及び作成部13eにて実行される処理、例えば図8〜図10に示す処理を含む。また、CPU150上で仮想的に実現される各処理部は、常に全ての処理部がCPU150上で動作する必要はなく、処理に必要な処理部のみが仮想的に実現されれば良い。   Then, the CPU 150 reads the synchronization program 170 a from the HDD 170 and expands it in the RAM 180. Thus, as shown in FIG. 11, the synchronization program 170a functions as a synchronization process 180a. The synchronization process 180a expands various data read from the HDD 170 in an area allocated to itself on the RAM 180 as appropriate, and executes various processes based on the expanded data. The synchronization process 180a includes processing executed by the stack unit 13b, the monitoring unit 13c, the partial update unit 13d, and the creation unit 13e illustrated in FIG. 2, for example, the processing illustrated in FIGS. In addition, each processing unit virtually realized on the CPU 150 does not always require that all processing units operate on the CPU 150, and only a processing unit necessary for the processing needs to be virtually realized.

なお、上記の同期プログラム170aについては、必ずしも最初からHDD170やROM160に記憶させておく必要はない。例えば、コンピュータ100に挿入されるフレキシブルディスク、いわゆるFD、CD−ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に各プログラムを記憶させる。そして、コンピュータ100がこれらの可搬用の物理媒体から各プログラムを取得して実行するようにしてもよい。また、公衆回線、インターネット、LAN、WANなどを介してコンピュータ100に接続される他のコンピュータまたはサーバ装置などに各プログラムを記憶させておき、コンピュータ100がこれらから各プログラムを取得して実行するようにしてもよい。   Note that the synchronization program 170a is not necessarily stored in the HDD 170 or the ROM 160 from the beginning. For example, each program is stored in a “portable physical medium” such as a flexible disk inserted into the computer 100, so-called FD, CD-ROM, DVD disk, magneto-optical disk, or IC card. Then, the computer 100 may acquire and execute each program from these portable physical media. In addition, each program is stored in another computer or server device connected to the computer 100 via a public line, the Internet, a LAN, a WAN, etc., and the computer 100 acquires and executes each program from these. It may be.

1 データ配布システム
10 メインサーバ
11 通信I/F部
12 記憶部
12a 更新フォルダリスト
12b 配下数リスト
12c ファイルリスト
13 制御部
13a OS実行部
13b スタック部
13c 監視部
13d 部分更新部
13e 作成部
13f 同期処理部
30A,30B,30C サブサーバ
DESCRIPTION OF SYMBOLS 1 Data distribution system 10 Main server 11 Communication I / F part 12 Storage part 12a Update folder list 12b Subordinate number list 12c File list 13 Control part 13a OS execution part 13b Stack part 13c Monitoring part 13d Partial update part 13e Creation part 13f Synchronization process Part 30A, 30B, 30C Subserver

Claims (6)

異なるファイルシステム間における同期方法であって、
コンピュータが、
同期対象とするファイルについてファイルリストを予め作成し、
前記ファイルの更新に関するイベントを取得し、
前記イベントが取得されたファイルを配下に持つフォルダが、更新があったフォルダを記憶する更新フォルダ記憶部に記憶されていない場合に、当該フォルダを前記更新フォルダ記憶部に登録し、
前記更新フォルダ記憶部に記憶されたフォルダが配下に持つファイルの数に基づいて最大更新ファイル数を見積もり、
同期対象とするファイルの総数に対する最大更新ファイル数の割合が第1の閾値を超えた場合に、前記ファイルリストを部分更新し、
同期対象とするファイルの総数に対する最大更新ファイル数の割合が前記第1の閾値よりも大きい第2の閾値を超えた場合に、前記ファイルリストの部分更新ではなく、前記ファイルリストを再作成する
処理を実行することを特徴とする同期方法。
A synchronization method between different file systems,
Computer
Create a file list in advance for the files to be synchronized,
Get an event about update of the file,
When the folder having the file from which the event is acquired is not stored in the update folder storage unit that stores the updated folder, the folder is registered in the update folder storage unit,
Estimating the maximum number of update files based on the number of files under the folder stored in the update folder storage unit,
When the ratio of the maximum number of updated files to the total number of files to be synchronized exceeds the first threshold, the file list is partially updated,
When the ratio of the maximum number of updated files to the total number of files to be synchronized exceeds a second threshold value that is larger than the first threshold value, the file list is re-created instead of partially updating the file list. The synchronization method characterized by performing.
記ファイルリストを部分更新する処理として、
同期対象とするファイルの総数に対する最大更新ファイル数の割合が第1の閾値を超えた場合に、前記更新フォルダ記憶部に記憶されたフォルダを対象に前記ファイルリストをフォルダ単位で更新する処理を実行することを特徴とする請求項1に記載の同期方法。
The previous Symbol file list as a process of partial update,
If the ratio of maximum update number of files relative to the total number of files to be synchronized has exceeded the first threshold value, the process of updating the file list by folder targeting folders stored in the update folder storage unit The synchronization method according to claim 1, wherein the synchronization method is executed.
前記第2の閾値は、同期対象とするファイルの総数、1つのファイルにつき部分更新を前記ファイルリストにマージするマージ所要時間または1つのファイルにつきハッシュ値の算出にかかる算出所要時間のうち少なくとも1つを用いて設定された設定値であることを特徴とする請求項1または2に記載の同期方法。   The second threshold value is at least one of the total number of files to be synchronized, the time required for merging a partial update per file into the file list, or the time required for calculating a hash value per file. The synchronization method according to claim 1, wherein the synchronization method is a setting value set by using the method. 前記第1の閾値は、システムリソースの空き状況、プロセッサの性能またはディスクのアクセス性能のうち少なくとも1つを用いて設定された設定値であることを特徴とする請求項1、2または3に記載の同期方法。   The first threshold value is a setting value that is set using at least one of system resource availability, processor performance, and disk access performance. Synchronization method. 異なるファイルシステム間における同期方法を実行するための同期プログラムであって、
コンピュータに、
同期対象とするファイルについてファイルリストを予め作成し、
前記ファイルの更新に関するイベントを取得し、
前記イベントが取得されたファイルを配下に持つフォルダが、更新があったフォルダを記憶する更新フォルダ記憶部に記憶されていない場合に、当該フォルダを前記更新フォルダ記憶部に登録し、
前記更新フォルダ記憶部に記憶されたフォルダが配下に持つファイルの数に基づいて最大更新ファイル数を見積もり、
同期対象とするファイルの総数に対する最大更新ファイル数の割合が第1の閾値を超えた場合に、前記ファイルリストを部分更新し、
同期対象とするファイルの総数に対する最大更新ファイル数の割合が前記第1の閾値よりも大きい第2の閾値を超えた場合に、前記ファイルリストの部分更新ではなく、前記ファイルリストを再作成する
処理を実行させることを特徴とする同期プログラム。
A synchronization program for executing a synchronization method between different file systems,
On the computer,
Create a file list in advance for the files to be synchronized,
Get an event about update of the file,
When the folder having the file from which the event is acquired is not stored in the update folder storage unit that stores the updated folder, the folder is registered in the update folder storage unit,
Estimating the maximum number of update files based on the number of files under the folder stored in the update folder storage unit,
When the ratio of the maximum number of updated files to the total number of files to be synchronized exceeds the first threshold, the file list is partially updated,
When the ratio of the maximum number of updated files to the total number of files to be synchronized exceeds a second threshold value that is larger than the first threshold value, the file list is re-created instead of partially updating the file list. A synchronization program characterized by causing
異なるファイルシステム間でファイルの同期処理を行う情報処理装置であって、
同期対象とするファイルについてファイルリストを予め作成する作成部と
前記ファイルの更新に関するイベントを取得する取得部と、
前記イベントが取得されたファイルを配下に持つフォルダが、更新があったフォルダを記憶する更新フォルダ記憶部に記憶されていない場合に、当該フォルダを前記更新フォルダ記憶部に登録する登録部と、
前記更新フォルダ記憶部に記憶されたフォルダが配下に持つファイルの数に基づいて最大更新ファイル数を見積もる算出部と、
同期対象とするファイルの総数に対する最大更新ファイル数の割合が第1の閾値を超えた場合に、前記ファイルリストを部分更新する部分更新部と、
同期対象とするファイルの総数に対する最大更新ファイル数の割合が前記第1の閾値よりも大きい第2の閾値を超えた場合に、前記ファイルリストの部分更新ではなく、前記ファイルリストを再作成する再作成部と
を有することを特徴とする情報処理装置。
An information processing apparatus that performs file synchronization processing between different file systems,
A creation unit that creates a file list in advance for a file to be synchronized; an acquisition unit that acquires an event related to the update of the file;
When the folder having the file from which the event is acquired is not stored in the update folder storage unit that stores the updated folder, the registration unit that registers the folder in the update folder storage unit;
A calculation unit that estimates the maximum number of update files based on the number of files under the folder stored in the update folder storage unit;
A partial update unit that partially updates the file list when the ratio of the maximum number of update files to the total number of files to be synchronized exceeds a first threshold;
When the ratio of the maximum number of updated files to the total number of files to be synchronized exceeds a second threshold value that is larger than the first threshold value, the file list is not re-updated but re-created to re-create the file list. An information processing apparatus comprising: a creation unit.
JP2011239644A 2011-10-31 2011-10-31 Synchronization method, synchronization program, and information processing apparatus Expired - Fee Related JP5776499B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011239644A JP5776499B2 (en) 2011-10-31 2011-10-31 Synchronization method, synchronization program, and information processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011239644A JP5776499B2 (en) 2011-10-31 2011-10-31 Synchronization method, synchronization program, and information processing apparatus

Publications (2)

Publication Number Publication Date
JP2013097566A JP2013097566A (en) 2013-05-20
JP5776499B2 true JP5776499B2 (en) 2015-09-09

Family

ID=48619448

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011239644A Expired - Fee Related JP5776499B2 (en) 2011-10-31 2011-10-31 Synchronization method, synchronization program, and information processing apparatus

Country Status (1)

Country Link
JP (1) JP5776499B2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020091787A (en) * 2018-12-07 2020-06-11 キヤノン株式会社 Communication device and control method thereof
US10901953B2 (en) 2017-02-14 2021-01-26 Buffalo Inc. Storage system, file replication system, file replication method and non-transitory computer-readable medium

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106547648A (en) * 2016-10-21 2017-03-29 杭州嘉楠耘智信息科技有限公司 Backup data processing method and device
CN114721583B (en) * 2021-01-06 2025-09-19 伊姆西Ip控股有限责任公司 Method, apparatus and computer program product for managing a storage system

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11154110A (en) * 1997-11-20 1999-06-08 Nippon Telegr & Teleph Corp <Ntt> How to synchronize a mirror server
JP2000082003A (en) * 1999-09-10 2000-03-21 Hitachi Ltd Information processing system enabling access to different types of files and control method thereof
US7437346B2 (en) * 2004-02-10 2008-10-14 Microsoft Corporation Systems and methods for a large object infrastructure in a database system
TWI252413B (en) * 2004-12-10 2006-04-01 Hon Hai Prec Ind Co Ltd System and method for updating remote computer files
JP4832061B2 (en) * 2005-11-29 2011-12-07 株式会社日立製作所 Content collection apparatus and content collection system
JP2008097149A (en) * 2006-10-06 2008-04-24 Fuji Xerox Co Ltd Information processing program and information processor
JP2008250903A (en) * 2007-03-30 2008-10-16 Toshiba Corp File updating apparatus, program, and method
JP5217776B2 (en) * 2008-08-25 2013-06-19 日本電気株式会社 Client server system, client computer, file management method and program thereof
KR20100109352A (en) * 2009-03-31 2010-10-08 삼성전자주식회사 Apparatus and method for bidirectional real-time synchronization through wireless connection

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10901953B2 (en) 2017-02-14 2021-01-26 Buffalo Inc. Storage system, file replication system, file replication method and non-transitory computer-readable medium
JP2020091787A (en) * 2018-12-07 2020-06-11 キヤノン株式会社 Communication device and control method thereof
JP7218164B2 (en) 2018-12-07 2023-02-06 キヤノン株式会社 Communication device and its control method

Also Published As

Publication number Publication date
JP2013097566A (en) 2013-05-20

Similar Documents

Publication Publication Date Title
CN104090806B (en) The processing method and processing device of AKU, upgrade request
US9720719B2 (en) Method and system for optimizing virtual disk provisioning
JP6196389B2 (en) Distributed disaster recovery file synchronization server system
JP6739938B2 (en) Service migration across cluster boundaries
US20130218934A1 (en) Method for directory entries split and merge in distributed file system
CN105814544B (en) System and method for supporting persistent partition recovery in a distributed data grid
US10158693B2 (en) Peer-to-peer network download optimization
CN106302771A (en) A domain name configuration method for applications created based on Docker containers
CN103810444B (en) The method and system of multi-tenant application isolation in a kind of cloud computing platform
CN102984194A (en) Synchronization of configuration files for virtual application distribution racks
CN106570007A (en) Method and equipment for data synchronization of distributed caching system
JP5776499B2 (en) Synchronization method, synchronization program, and information processing apparatus
AU2016206354B1 (en) Network Folder Resynchronization
JP6393612B2 (en) System backup device and backup method
US9921878B1 (en) Singleton coordination in an actor-based system
CN105744001B (en) Distributed cache system expansion method, data access method and device and system
CN104040525A (en) Accessing overlay media over a network connection
CN107710164A (en) Disaster Recovery as a Service
CN104104645B (en) A kind of cross-platform method for managing resource and system
WO2019153880A1 (en) Method for downloading mirror file in cluster, node, and query server
US20160191331A1 (en) Method and system for administration of storage objects
WO2021013248A1 (en) Container layered shipping method and system
CN103761170A (en) System file recovery method, device and system
US9348849B1 (en) Backup client zero-management
JP5428455B2 (en) Virtual machine server, virtual machine control method, and virtual machine control program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140704

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150205

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150210

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150413

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150622

R150 Certificate of patent or registration of utility model

Ref document number: 5776499

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees