JP5776499B2 - Synchronization method, synchronization program, and information processing apparatus - Google Patents
Synchronization method, synchronization program, and information processing apparatus Download PDFInfo
- 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
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.
しかしながら、上記の従来技術には、管理対象とするフォルダおよびファイルの増加に伴い、差分となるフォルダおよびファイルの数とは関係なく、ファイルリストの作成時間が増大するという問題がある。 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.
以下に、本願の開示する同期方法、同期プログラム及び情報処理装置の実施例を図面に基づいて詳細に説明する。なお、この実施例は開示の技術を限定するものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。 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
図1に示すように、データ配布システム1には、メインサーバ10と、複数のサブサーバ30A〜30Cとが収容される。この図1の例では、サブサーバ30A〜30Cを3つ収容する場合を図示したが、任意の数のサブサーバが収容される場合に適用できる。
As shown in FIG. 1, the data distribution system 1 accommodates a
これらメインサーバ10及びサブサーバ30A〜30Cの間は、ネットワーク3を介して相互に通信可能に接続される。かかるネットワーク3には、LAN(Local Area Network)を始め、VPN(Virtual Private Network)、インターネットなどの任意の通信網を採用できる。
The
このうち、メインサーバ10は、図示しない端末装置へ配布させるデータをサブサーバ30に配布するサーバ装置である。一態様としては、メインサーバ10は、サブサーバ30との間でデータを同期するように設定された同期対象のフォルダに格納されるファイルリストを作成してサブサーバ30A〜30Cに送信する。ここで言う「同期対象のフォルダ」には、同期対象として設定されたフォルダをルートフォルダとしたディレクトリ全体、すなわちルートフォルダ及びその下位に所属するフォルダを含む。その後、メインサーバ10は、メインサーバ10及びサブサーバ30A〜30Cによって作成された2つのファイルリストの間で検出された差分のファイルをサブサーバ30A〜30Cに送信する。
Among these, the
サブサーバ30A〜30Cは、自装置が保持するデータを図示しない端末装置に配布するサーバ装置である。一態様としては、サブサーバ30A〜30Cは、メインサーバ10との間でデータを同期するように設定された同期対象のフォルダに格納されるファイルリストを作成する。そして、サブサーバ30A〜30Cは、先に作成したファイルリストとメインサーバ10から転送されたファイルリストとの間で差分を検出する。その後、サブサーバ30A〜30Cは、2つのファイルリストの間で差分が検出されたファイルをメインサーバ10から取得する。これによって、サブサーバ30A〜30Cは、メインサーバ10によって保持されるデータの内容と自装置が保持するデータの内容とを一致させる。なお、以下では、サブサーバ30A〜サブサーバ30Cを区別なく総称する場合に「サブサーバ30」と記載する場合がある。
The
[メインサーバの構成]
続いて、本実施例に係るメインサーバ10の機能的構成について説明する。図2は、実施例1に係るメインサーバ10の機能的構成を示すブロック図である。図2に示すように、メインサーバ10は、通信I/F(interface)部11と、記憶部12と、制御部13とを有する。なお、メインサーバ10は、図2に示す機能部以外にも既知のコンピュータが有する各種の機能部、例えば各種の入力デバイスや表示デバイスなどの機能を有するものとする。
[Main server configuration]
Subsequently, a functional configuration of the
このうち、通信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 /
記憶部12は、制御部13で実行されるOS(Operating System)やサブサーバ30との間でデータの同期処理を実行する同期プログラムなどの各種プログラムを記憶する。さらに、記憶部12は、制御部13で実行されるプログラムの実行に必要なデータの一例として、更新フォルダリスト12aと、配下数リスト12bと、ファイルリスト12cとを記憶する。
The
このうち、更新フォルダリスト12aは、更新があったフォルダのリストデータである。一例としては、更新フォルダリスト12aには、同期対象のフォルダのうち更新があったファイルを配下に持つフォルダが後述のスタック部13bによって追加される。他の一例としては、更新フォルダリスト12aは、後述のファイルリスト12cが部分更新または再作成された場合に、後述の部分更新部13cまたは後述の作成部13eによってクリアされる。かかる更新フォルダリスト12aの一態様としては、更新があったフォルダの絶対パス、いわゆるフルパスを採用できる。
Among them, the
配下数リスト12bは、各々のフォルダが配下に持つファイル数のリストデータである。一例としては、配下数リスト12bは、後述のファイルリスト12cが部分更新または再作成された場合に、後述の部分更新部13dまたは後述の作成部13eによって更新される。
The
かかる配下数リスト12bの一態様としては、フォルダ及びフォルダ配下のファイル数が対応付けられたデータを採用できる。図3は、配下数リスト12bの一例を示す図である。図3では、図中のアルファベットの大文字はフォルダ名を表すこととする。図3の例では、フォルダAの配下には3つのファイルがあり、フォルダKの配下には2つのファイルがあり、フォルダBの配下には3つのファイルがあり、さらに、フォルダCの配下には7つのファイルがあることを示す。なお、ここでは、フォルダ配下のファイル数を対応付けて記憶する場合を例示したが、例えば、フォルダ間の階層関係、例えば上位のフォルダや下位のフォルダをさらに記憶することとしてもよい。
As one aspect of the
ファイルリスト12cは、メインサーバ10が保持するファイルのリストデータである。一例としては、ファイルリスト12cは、記憶部12内にファイルリストが未登録の初期状態である場合に、後述の作成部13eによって新規作成される。他の一例としては、ファイルリスト12cは、同期対象とするファイルの総数に対する更新のあったファイルの数の割合が所定の閾値βを超える場合に、更新フォルダリスト12aにあるフォルダに関するリストが後述の部分更新部13dによって部分更新される。更なる一例としては、ファイルリスト12cは、同期対象とするファイルの総数に対する更新のあったファイルの数の割合が所定の閾値αを超える場合に、後述の作成部13eによって再作成される。
The
かかるファイルリスト12cの一態様としては、ファイル、サイズ、属性およびハッシュ値が対応付けられたデータを採用できる。ここで言う「属性」は、ファイルのプロパティを指し、例えば、読み取り専用属性(Read-only file)、アーカイブ属性(Archive file)、システムファイル属性(System file)や隠しファイル属性(Hidden file)などが挙げられる。また、「ハッシュ値」は、ハッシュ関数を用いて生成される疑似乱数を指し、例えば、ファイルの同一性をチェックするために使用される。
As an aspect of the
図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
制御部13は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。制御部13は、図2に示すように、OS実行部13aと、スタック部13bと、監視部13cと、部分更新部13dと、作成部13eと、同期処理部13fとを有する。
The
このうち、OS実行部13aは、コンピュータシステム全体を管理する基本ソフトウェアであるOSの実行を制御する処理部である。一例としては、OS実行部13aは、OSのセキュリティパッチの配布やウィルス定義ファイルをダウンロードしたり、インストールしたりする。他の一例としては、OS実行部13aは、アプリケーションをインストールまたはアンインストールしたり、ユーザファイルを追加、削除または変更したりする。更なる一例としては、OS実行部13aは、図示しないユーザインタフェースを介して指定されたファイルの属性を変更したりする。このように、ファイルの追加、削除、更新や属性の変更などが実行された場合には、OS実行部13aは、更新があったファイルのフルパス及び更新日時を含むファイル更新イベントを後述のスタック部13bへ通知する。なお、上記のファイル更新イベントの通知は、OSによって提供されるAPI(Application Program Interface)、例えば「FindFirstChangeNotification」などを使用することによって実現できる。
Among these, the
スタック部13bは、更新があったフォルダを更新フォルダリスト12aへスタックする処理部である。一態様としては、スタック部13bは、OS実行部13aからファイル更新イベントが通知された場合に、当該ファイルを配下に持つフォルダが更新フォルダリスト12aに登録されているか否かを判定する。このとき、スタック部13bは、更新フォルダリスト12aに登録されていない場合に、当該フォルダを更新フォルダリスト12aにスタックする。
The
図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
図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
このように、フォルダ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
その後、ファイルのフルパス「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
さらに、ファイルのフルパス「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
このように、スタック部13bは、OS実行部13aから通知されるファイル更新イベントをファイル単位でリスト登録するのではなく、フォルダ単位でリスト登録する。このため、同じフォルダに格納されたファイルが更新された場合にそのファイルを改めてリスト登録せずともよくなるので、ファイル更新イベントをスタックする処理の負荷を軽減できる。
In this way, the
監視部13cは、同期対象とするファイルの総数に対する更新のあったファイルの数の割合を監視する処理部である。この監視部13cは、第1の周期および第2の周期の2つの異なる周期で上記の割合を監視する。なお、以下では、同期対象とするファイルの総数のことを「ファイル総数」と記載し、更新のあったファイルの数のことを「更新ファイル数」と記載する場合がある。
The
このうち、第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
例えば、監視部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
また、監視部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
このように、監視部13cは、配下数リスト12bに搭載されているファイル数のうち、更新フォルダリスト12aにスタックされたフォルダが配下に持つファイル数を合計することによって最大の更新ファイル数を見積もる。このため、ファイル更新イベントをファイル単位でスタックせずとも、更新があったファイルが更新ファイル数から洩れることなく、更新ファイル数を求めることができる。
In this way, the
部分更新部13dは、ファイルリスト12cを部分更新する処理部である。一態様としては、部分更新部13dは、ファイル総数に対する更新ファイル数の割合が第1の監視処理にて閾値βを超えた場合、あるいは第2の監視処理にて閾値αを超えなかった場合に、ファイルリスト12cを部分更新する。
The
これを説明すると、部分更新部13dは、更新フォルダリスト12aにスタックされたフォルダのフルパスを指定して当該フォルダ配下のファイルの取得要求をOS実行部13aに通知する。そして、部分更新部13dは、OS実行部13aからフォルダ配下のファイルを取得すると、所定のハッシュ関数を用いてファイルのハッシュ値を算出する。その後、部分更新部13dは、ファイルリスト12cに登録されたファイルのうち更新フォルダリスト12aにスタックされたフォルダの配下にあるファイルを削除する。その上で、部分更新部13dは、OS実行部13aから取得したファイルのフルパス、サイズ、属性およびハッシュ値を対応付けたデータをファイルリスト12cに追加する。このように、更新フォルダリスト12aにスタックされたフォルダ配下のファイルに関するリストがファイルリスト12cにマージされる。これによって、ファイルリスト12cが部分更新されることになる。
Explaining this, the
ここで、上記の「閾値β」は、システムリソースの空き状況、プロセッサの性能またはディスクのアクセス性能のうち少なくとも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
作成部13eは、ファイルリスト12cを作成する処理部である。一態様としては、作成部13eは、記憶部12にファイルリスト12cが未登録である場合に、ファイルリスト12cを新規作成する。他の一態様としては、作成部13eは、ファイル総数に対する更新ファイル数の割合が閾値αを超えた場合に、ファイルリスト12cを再作成する。なお、ファイルリスト12cの新規作成および再作成は、以下に説明するように、同様の処理が実行される。
The creation unit 13e is a processing unit that creates the
これを説明すると、作成部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
ここで、上記の「閾値α」は、同期対象とするファイルの総数、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
図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
図6に示すように、ファイルリスト12cの再作成は、同期対象とするファイル総数にしか依存しない。よって、再作成所要時間のグラフ60は、更新ファイル数の多寡にかかわらず、所要時間は常に一定である。一方、部分更新所要時間のグラフ61は、更新ファイル数が増加するほど所要時間が増加する。
As shown in FIG. 6, the re-creation of the
そして、ファイルリスト12cを再作成する場合には、更新フォルダリスト12aに登録されているフォルダ配下のファイルを対象に、前回作成されていたリストデータを削除した上で今回作成したリストデータがマージされる。このため、ファイルリスト12cを部分更新する場合には、更新フォルダリスト12aに登録されているフォルダ配下のファイルのリストデータを削除する分、ファイルリスト12cを再作成する場合よりもファイル1つ当たりの所要時間が長くなる。それゆえ、更新ファイル数によっては、部分更新所要時間のグラフ61が再作成所要時間のグラフ60よりも上回る場合がある。
When re-creating the
このことから、ファイル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
さらに、ファイルの同一性をチェックするためにファイルのハッシュ値をファイルリスト12cに含める場合には、ハッシュ値の算出所要時間をパラメータに含めて閾値αを設定するのが好ましい。なぜなら、ハッシュ値の算出所要時間は、マージ所要時間と比較して非常に長いので、図7に示すように、ハッシュ値を算出しない場合の部分更新所要時間のグラフ60と比べてハッシュ値の算出所要時間を含む部分更新所要時間のグラフ71の傾きが小さくなるからである。これに伴って、再作成所要時間のグラフ70とハッシュ値の算出所要時間を含む部分更新所要時間のグラフ71との交点も右側にシフトする。
Furthermore, when the hash value of the file is included in the
これらのことから、ファイルのハッシュ値を算出する場合には、ファイル1つ当たりのマージ所要時間及びファイル1つ当たりのハッシュ値の算出所要時間から2つのグラフの交点における更新ファイル数fα2を算出する。その上で、更新ファイル数fα2と同期対象とするファイルの総数から閾値αHを算出するのが好ましい。かかる閾値αHを採用した場合には、ファイルリスト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
同期処理部13fは、複数のサブサーバ30A〜30Cの間で互いが保持するデータを一致させる同期処理を実行する処理部である。一態様としては、同期処理部13fは、第2の監視処理が実行された場合に、部分更新部13dによって部分更新されたファイルリスト12cまたは作成部13eによって再作成されたファイルリスト12cをサブサーバ30へ転送する。その後、同期処理部13fは、メインサーバ10及びサブサーバ30A〜30Cによって作成された2つのファイルリストの間で検出された差分のファイルをサブサーバ30へ送信する。かかる差分のファイルがサブサーバ30に格納されることによって、メインサーバ10及びサブサーバ30の間で両者が保持するデータの内容が一致することになる。
The
[処理の流れ]
次に、本実施例に係るメインサーバ10の処理の流れについて説明する。なお、ここでは、(1)スタック処理を説明した後に(2)第1の監視処理を説明し、最後に、(3)第2の監視処理を説明することとする。
[Process flow]
Next, the flow of processing of the
(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
図8に示すように、OS実行部13aからファイル更新イベントが通知された場合(ステップS101肯定)に、スタック部13bは、次のような処理を実行する。すなわち、スタック部13bは、当該ファイルのフルパスのうち末尾のファイル名を削除することによってファイル更新イベントが通知されたファイルを配下に持つフォルダのフルパスを特定する(ステップS102)。
As shown in FIG. 8, when a file update event is notified from the
その後、スタック部13bは、当該ファイルを配下に持つフォルダが更新フォルダリスト12aにスタック済みであるか否かを判定する(ステップS103)。このとき、フォルダが更新フォルダリスト12aにスタックされていない場合(ステップS103否定)に、スタック部13bは、当該フォルダを更新フォルダリスト12aにスタックし(ステップS104)、上記のステップS101に戻る。
Thereafter, the
一方、フォルダが更新フォルダリスト12aにスタック済みである場合(ステップS103肯定)には、更新フォルダリスト12aへのスタックを実行せずに、上記のステップS101に戻る。
On the other hand, if the folder has been stacked on the
(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
このとき、更新フォルダリスト12aにスタックがある場合(ステップS201肯定)に、監視部13cは、配下数リスト12bに搭載されているファイル数を合計することによってファイル総数f1を算出する(ステップS202)。
At this time, when there is a stack in the
続いて、監視部13cは、配下数リスト12bに搭載されているファイル数のうち、更新フォルダリスト12aにスタックされたフォルダが配下に持つファイル数を合計することによって更新ファイル数f2を算出する(ステップS203)。
Subsequently, the
その上で、監視部13cは、ファイル総数f1に対する更新ファイル数f2の割合、すなわちf2/f1が所定の閾値βを超えるか否かを判定する(ステップS204)。
Then, the
ここで、ファイル総数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
その後、部分更新部13dは、配下数リスト12bのうちファイルリスト12cを部分更新したフォルダの配下数を部分更新後のファイル数に更新する(ステップS206)。さらに、部分更新部13dは、更新フォルダリスト12aをクリアし(ステップS207)、処理を終了する。
Thereafter, the
なお、ファイル総数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
(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
このとき、更新フォルダリスト12aにスタックがある場合(ステップS301肯定)に、監視部13cは、配下数リスト12bに搭載されているファイル数を合計することによってファイル総数f1を算出する(ステップS302)。
At this time, if there is a stack in the
続いて、監視部13cは、配下数リスト12bに搭載されているファイル数のうち、更新フォルダリスト12aにスタックされたフォルダが配下に持つファイル数を合計することによって更新ファイル数f2を算出する(ステップS303)。
Subsequently, the
その上で、監視部13cは、ファイル総数f1に対する更新ファイル数f2の割合、すなわちf2/f1が所定の閾値αを超えるか否かを判定する(ステップS304)。
Then, the
ここで、ファイル総数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
その後、作成部13eは、配下数リスト12bに登録された各フォルダの配下数を再作成後のファイル数に更新する(ステップS306)。さらに、作成部13eは、更新フォルダリスト12aをクリアし(ステップS307)、処理を終了する。
Thereafter, the creation unit 13e updates the subordinate number of each folder registered in the
一方、ファイル総数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
その後、部分更新部13dは、配下数リスト12bのうちファイルリスト12cを部分更新したフォルダの配下数を部分更新後のファイル数に更新する(ステップS306)。さらに、部分更新部13dは、更新フォルダリスト12aをクリアし(ステップS307)、処理を終了する。
Thereafter, the
[実施例1の効果]
上述してきたように、本実施例に係るメインサーバ10は、サブサーバ30との間でファイルリストを用いて同期処理を行う場合に、ファイル総数に対する更新ファイル数の割合に応じてファイルリストの部分更新または再作成を適応制御する。例えば、本実施例に係るメインサーバ10では、同期対象とするファイルの更新がファイルリスト12cの一部に限られる場合にはファイルリスト12cを部分更新する一方で、ファイルリスト12cの全体にわたる場合にはファイルリスト12cを再作成できる。したがって、本実施例に係るメインサーバ10によれば、ファイルリストの作成時間を短縮できる。
[Effect of Example 1]
As described above, when the
さて、これまで開示の装置に関する実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。 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
また、上記の実施例1では、メインサーバ10及び複数のサブサーバ30間におけるファイルの同期方法について説明したが、必ずしも異なるコンピュータが同期対象とするファイルを保持している必要はない。すなわち、開示の装置は、複数のファイルシステム間でファイルを同期する場合、例えば1つのコンピュータに複数または異なる複数のファイルシステムが搭載される場合に同様に適用できる。例えば、開示の装置は、複数の仮想マシンを搭載するコンピュータが有するファイルシステム間でファイルを同期する場合に適用することもできるし、また、ディスクサーバが有するファイルシステム間でファイルを同期する場合に適用することもできる。
In the first embodiment, the file synchronization method between the
また、上記の実施例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
[同期プログラム]
また、上記の実施例で説明した各種の処理は、予め用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、図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
HDD170には、図11に示すように、上記の実施例1で示したスタック部13b、監視部13c、部分更新部13d及び作成部13eと同様の機能を発揮する同期プログラム170aが予め記憶される。この同期プログラム170aについては、図2に示した各々のスタック部13b、監視部13c、部分更新部13d及び作成部13eの各構成要素と同様、適宜統合又は分離しても良い。すなわち、HDD170に格納される各データは、常に全てのデータがHDD170に格納される必要はなく、処理に必要なデータのみがHDD170に格納されれば良い。
As shown in FIG. 11, the
そして、CPU150が、同期プログラム170aをHDD170から読み出してRAM180に展開する。これによって、図11に示すように、同期プログラム170aは、同期プロセス180aとして機能する。この同期プロセス180aは、HDD170から読み出した各種データを適宜RAM180上の自身に割り当てられた領域に展開し、この展開した各種データに基づいて各種処理を実行する。なお、同期プロセス180aは、図2に示したスタック部13b、監視部13c、部分更新部13d及び作成部13eにて実行される処理、例えば図8〜図10に示す処理を含む。また、CPU150上で仮想的に実現される各処理部は、常に全ての処理部がCPU150上で動作する必要はなく、処理に必要な処理部のみが仮想的に実現されれば良い。
Then, the
なお、上記の同期プログラム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
1 データ配布システム
10 メインサーバ
11 通信I/F部
12 記憶部
12a 更新フォルダリスト
12b 配下数リスト
12c ファイルリスト
13 制御部
13a OS実行部
13b スタック部
13c 監視部
13d 部分更新部
13e 作成部
13f 同期処理部
30A,30B,30C サブサーバ
DESCRIPTION OF SYMBOLS 1
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.
コンピュータに、
同期対象とするファイルについてファイルリストを予め作成し、
前記ファイルの更新に関するイベントを取得し、
前記イベントが取得されたファイルを配下に持つフォルダが、更新があったフォルダを記憶する更新フォルダ記憶部に記憶されていない場合に、当該フォルダを前記更新フォルダ記憶部に登録し、
前記更新フォルダ記憶部に記憶されたフォルダが配下に持つファイルの数に基づいて最大更新ファイル数を見積もり、
同期対象とするファイルの総数に対する最大更新ファイル数の割合が第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.
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)
| 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)
| 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)
| 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 |
-
2011
- 2011-10-31 JP JP2011239644A patent/JP5776499B2/en not_active Expired - Fee Related
Cited By (3)
| 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 |