JP2020017282A - Storage constrained synchronization engine - Google Patents

Storage constrained synchronization engine Download PDF

Info

Publication number
JP2020017282A
JP2020017282A JP2019144756A JP2019144756A JP2020017282A JP 2020017282 A JP2020017282 A JP 2020017282A JP 2019144756 A JP2019144756 A JP 2019144756A JP 2019144756 A JP2019144756 A JP 2019144756A JP 2020017282 A JP2020017282 A JP 2020017282A
Authority
JP
Japan
Prior art keywords
item
local
update
entry
content
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.)
Pending
Application number
JP2019144756A
Other languages
Japanese (ja)
Inventor
アイザック ゴールドベルグ,
Goldberg Isaac
アイザック ゴールドベルグ,
ベンジャミン ニュウハウス,
Newhouse Benjamin
ベンジャミン ニュウハウス,
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.)
Dropbox Inc
Original Assignee
Dropbox Inc
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
Priority claimed from US15/396,254 external-priority patent/US10049145B2/en
Priority claimed from US15/420,014 external-priority patent/US10719532B2/en
Application filed by Dropbox Inc filed Critical Dropbox Inc
Publication of JP2020017282A publication Critical patent/JP2020017282A/en
Priority to JP2021166477A priority Critical patent/JP7209067B2/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/235Update request formulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • G06F16/162Delete operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/1734Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/178Techniques for file synchronisation in file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2308Concurrency control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2358Change logging, detection, and notification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2379Updates performed during online database operations; commit processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

Abstract

To provide a method, computer program and system for synchronizing content items across client computing systems connected by a network.SOLUTION: The method comprises synchronizing client devices 100A and 100B using a content management system 110. The content management system 110 comprises: a data store 218 in which content items are stored; a pending block table 220 that maintains a list of pending blocks expected to be received; and a namespace table 222 that stores data associating individual content items with namespaces.SELECTED DRAWING: Figure 2

Description

関連出願へのクロスリファレンスCross-reference to related applications

[0001]本出願は、2016年4月29日に出願の米国仮特許出願第62/327,379号、2016年12月30日に出願の米国特許出願第15/396,254号、及び2017年1月30日に出願の米国特許出願15,420,014号のそれらの全ては参照によりその全体が本明細書に組み込まれる。     [0001] This application is related to US Provisional Patent Application No. 62 / 327,379, filed April 29, 2016, US Patent Application No. 15 / 396,254, filed December 30, 2016, and 2017. All of U.S. Patent Application No. 15,420,014, filed January 30, 2014, are hereby incorporated by reference in their entirety.

[0002]本開示の実施形態は、一般的には、コンテンツアイテムの同期を提供するコンピュータシステムのパフォーマンスを改善することに関し、とりわけ、同期されたコンテンツアイテムのストレージの割り当てが制限される、クライアントデバイスとコンテンツ管理システムとの間のコンテンツアイテムの同期を改善することに関する。   [0002] Embodiments of the present disclosure generally relate to improving the performance of computer systems that provide synchronization of content items, and in particular, client devices that have limited storage allocation for synchronized content items. Improving the synchronization of content items between a content item and a content management system.

[0003]コンテンツ管理システムは、ユーザがあるクライアントから他のクライアントへコンテンツアイテムを共有することを可能にする。当該クライアントは、記憶及び他のクライアントとの同期のために、コンテンツアイテムをコンテンツ管理システムに提供するコンピューティングデバイスである。他のクライアントは、他のユーザによって操作されてもよく、同一のユーザによって登録又は管理されるデバイスであってもよい。ユーザは、いずれのコンテンツアイテムが、又は、コンテンツアイテムを含むいずれのディレクトリが他のユーザと共有されるのに利用できるか、即ち、そのようなユーザのクライアントデバイスと同期されるかを指定する。通常、コンテンツ管理システムは、当該コンテンツアイテムを共有するように設計されている全てのクライアントデバイスで所定のコンテンツを同期する。結果として、それらのクライアントデバイスのそれぞれは、非常に大容量の共有コンテンツアイテムを格納することになる。いくつかのケースにおいて、共有コンテンツアイテムによってクライアントデバイス上の占有されるストレージの容量は、実質的に、非同期のコンテンツアイテムやアプリケーションなどの他のアイテムのための、クライアントデバイス上の利用可能なストレージの容量を低減することになる。   [0003] Content management systems allow users to share content items from one client to another. The client is a computing device that provides content items to a content management system for storage and synchronization with other clients. Other clients may be operated by other users and may be devices registered or managed by the same user. The user specifies which content items, or directories containing the content items, are available to be shared with other users, i.e., synchronized with such user's client device. Typically, a content management system synchronizes predetermined content with all client devices designed to share the content item. As a result, each of those client devices will store a very large amount of shared content items. In some cases, the amount of storage occupied by the shared content item on the client device is substantially the amount of storage available on the client device for other items such as asynchronous content items and applications. The capacity will be reduced.

, [0004]図1A及び図1Bは、制約付きの同期の一実施形態を示す概念図である。[0004] FIGS. 1A and 1B are conceptual diagrams illustrating one embodiment of constrained synchronization. [0005]図2は、クライアントデバイス間でコンテンツアイテムを同期するコンテンツ管理システムについてのシステム環境を示す図である。[0005] FIG. 2 is a diagram illustrating a system environment for a content management system that synchronizes content items between client devices. [0006]図3は、クライアントデバイスのソフトウェアアーキテクチャを示す図である。[0006] FIG. 3 is a diagram illustrating a software architecture of a client device. [0007]図4は、ローカルコンテンツディレクトリの既存のコンテンツアイテムにアクセスするための制約された同期の相互作用図である。[0007] FIG. 4 is a constrained synchronization interaction diagram for accessing existing content items in a local content directory. [0008]図5は、ローカルコンテンツディレクトリに格納される新たなコンテンツアイテムを作成するための制約付きの同期の相互作用図である。[0008] FIG. 5 is a constrained synchronization interaction diagram for creating a new content item stored in a local content directory. [0009]図6は、制約付きの同期に基づくホストのシステム環境を示す図である。[0009] FIG. 6 is a diagram illustrating a host system environment based on constrained synchronization. [0010]図7は、ホストデバイスによって管理される制約付きの同期の相互作用図を示す図である。[0010] FIG. 7 illustrates an interaction diagram for constrained synchronization managed by a host device. [0011]図8は、リモート及びローカルのコンテンツアイテムを表すアイコンを有するローカルコンテンツディレクトリのためのユーザインタフェースを示す図である。FIG. 8 is a diagram illustrating a user interface for a local content directory having icons representing remote and local content items. [0012]図9は、予測されたコンテンツアイテムの重要度を用いた制約付きの同期を示す概念図である。[0012] FIG. 9 is a conceptual diagram illustrating constrained synchronization using predicted content item importance. [0013]図10は、制約付きの同期のための予測されたコンテンツアイテムの重要度を用いるコンテンツ管理システムのシステム環境を示す図である。FIG. 10 is a diagram illustrating a system environment of a content management system that uses predicted content item importance for constrained synchronization. [0014]図11は、アイドル状態でトリガされたコンテンツ管理を使用するクライアントデバイスのソフトウェア構成を示す図である。[0014] FIG. 11 is a diagram illustrating a software configuration of a client device that uses content management triggered in an idle state. [0015]図12は、アイドル状態でトリガされたコンテンツ管理を使用するコンテンツ管理システムについてのシステム環境を示す図である。[0015] FIG. 12 is a diagram illustrating a system environment for a content management system that uses idle-triggered content management. [0016]図13は、アイドル状態でトリガされたコンテンツ管理で使用される処理を示すフローチャートである。[0016] FIG. 13 is a flowchart illustrating a process used in idle-triggered content management. [0017]図14は、一実施形態に係るファイルジャーナルの構造を示すブロック図である。FIG. 14 is a block diagram illustrating the structure of a file journal according to one embodiment. [0018]図15は、一実施形態に係る、コンテンツアイテムをコミットする詳細な処理を示すフローチャートである。[0018] FIG. 15 is a flowchart illustrating a detailed process of committing a content item, according to one embodiment. [0019]図16は、一実施形態に係る、コンテンツアイテムとプレースホルダアイテムとを置き換える詳細な処理を示すフローチャートである。FIG. 16 is a flowchart illustrating a detailed process for replacing a content item with a placeholder item, according to one embodiment. [0020]図17は、一実施形態に係る、コンテンツアイテムとプレースホルダアイテムとを置き換える詳細な処理を示すフローチャートである。[0020] FIG. 17 is a flowchart illustrating a detailed process for replacing a content item with a placeholder item according to one embodiment. [0021]図18は、一実施形態に係る、プレースホルダアイテムをコンテンツアイテムへ変換する詳細な処理を示すフローチャートである。FIG. 18 is a flowchart illustrating a detailed process of converting a placeholder item to a content item according to one embodiment. [0022]図19は、更新ファイルジャーナルの更新エントリを受信すると、コンテンツ同期モジュールによって実行される更新機能のアルゴリズムの一例を示すフローチャートである。FIG. 19 is a flowchart illustrating an example of an algorithm of an update function executed by the content synchronization module upon receiving an update entry of the update file journal. [0023]図20は、一実施形態に係る、共有ファイルパスにおいてアイテムを再構成するアルゴリズムを示すフローチャートである。FIG. 20 is a flowchart illustrating an algorithm for reconstructing items in a shared file path, according to one embodiment. [0024]図21は、一実施形態に係る、共有ブロックリストでアイテムを再構成するアルゴリズムを示すフローチャートである。FIG. 21 is a flowchart illustrating an algorithm for reconstructing items in a shared block list, according to one embodiment. [0025]図22は、一実施形態に係る、新たなアイテムとして更新アイテムを構成するアルゴリズムを示すフローチャートである。FIG. 22 is a flowchart illustrating an algorithm for configuring an updated item as a new item, according to one embodiment. [0026]図23は、一実施形態に係る、共有ジャーナルIDでアイテムを再構成するアルゴリズムを示すフローチャートである。 [0027]これらの図は説明の目的のためのみに本発明の様々な実施形態を図示するものである。当業者は、以下に示される構成及び方法の他の代替的な実施形態が以下に説明される発明の原理から乖離することなく用いられ得ることを以降の記載から容易に理解する。FIG. 23 is a flowchart illustrating an algorithm for reconstructing an item with a shared journal ID, according to one embodiment. [0027] These figures illustrate various embodiments of the invention for purposes of illustration only. Those skilled in the art will readily appreciate from the following description that other alternative embodiments of the arrangements and methods set forth below may be used without departing from the principles of the invention described below.

<制約付きの同期の機能概要>
[0028]制約付きの同期システムの一般的な機能概要と処理を以下で説明する。予備的条件として、ユーザがコンテンツアイテムをクライアントデバイスに格納し、コンテンツアイテムが他のクライアントデバイス上のコンテンツアイテムのインスタンスや、ホストシステム、概してコンテンツ管理システムと同期される。クライアントデバイスは、ローカルコンテンツディレクトリのコンテンツアイテムを格納する。ローカルコンテンツディレクトリに格納されたコンテンツアイテムは、コンテンツ管理システムと同期され、コンテンツアイテムのコピーを保持し、コンテンツアイテムを他のクライアントデバイスと同期する。各クライアントデバイスは、クライアントアプリケーションを実行し、ユーザがコンテンツ管理システムにアクセスすることを可能にする。クライアントアプリケーションは、さらに、ユーザが、最大ストレージの割り当て、又は、ローカルコンテンツディレクトリのサイズを設定することを可能にする。
<Functional overview of restricted synchronization>
[0028] A general functional overview and processing of a constrained synchronization system is described below. As a preliminary condition, a user stores a content item on a client device and the content item is synchronized with an instance of the content item on another client device or with a host system, generally a content management system. The client device stores content items in a local content directory. Content items stored in the local content directory are synchronized with the content management system to keep a copy of the content item and synchronize the content item with other client devices. Each client device runs a client application and allows a user to access a content management system. The client application further allows the user to set a maximum storage allocation or local content directory size.

[0029]一形態において、クライアントデバイスは、クライアントデバイス上においてローカルで利用可能に維持され、かつ、コンテンツ管理システム上のみでそれらの全体が格納される同期されたコンテンツアイテムを選択的に決定するように構成される。一実施形態において、クライアントデバイスは、コンテンツアイテムへアクセスする要求を、例えばコンテンツアイテムへアクセスする必要のあるアプリケーションから受信する。クライアントデバイスは、要求されたコンテンツアイテムが、プレースホルダアイテムであるか、又はクライアントデバイス上にローカルに格納されたコンテンツアイテムであるかを判定する。プレースホルダアイテムは、コンテンツアイテムを表すか、又は実行するアイテムであるが、コンテンツアイテムのアプリケーションデータを含まないものである。一般的に、イメージデータ、ビデオデータ、オーディオデータ、データベーステーブル、スプレッドシートデータ、グラフィックデータ、ソース若しくはオブジェクトコード、又は他のタイプのコンテンツデータなどの実際のアプリケーションコンテンツを格納することなく、プレースホルダアイテムは、コンテンツアイテムの名前などのコンテンツアイテムのメタデータ属性と、コンテンツアイテムの種別、パス情報、アクセス権、変更情報、及びサイズなどの様々な属性とを複製する。プレースホルダアイテムはコンテンツアイテムのメタデータを格納するのみであるため、それらは、数百メガバイト又は数ギガバイトのサイズとなりうるコンテンツアイテムと比較して、少量のストレージ、例えば一般的に約4キロバイトのみを必要とする。したがって、コンテンツアイテムを表すプレースホルダアイテムを使用することは、多量のストレージスペースを節約するように動作し、これによりクライアントデバイスの機能を改善する。   [0029] In one aspect, the client devices are maintained locally available on the client device and selectively determine synchronized content items whose entirety is stored only on the content management system. Is composed of In one embodiment, the client device receives a request to access a content item, for example, from an application that needs to access the content item. The client device determines whether the requested content item is a placeholder item or a content item stored locally on the client device. A placeholder item is an item that represents or executes a content item, but does not include application data for the content item. Generally, placeholder items without storing actual application content such as image data, video data, audio data, database tables, spreadsheet data, graphic data, source or object code, or other types of content data. Replicates the metadata attributes of the content item, such as the name of the content item, and various attributes, such as the type, path information, access rights, change information, and size of the content item. Because placeholder items only store metadata for content items, they require a small amount of storage, eg, typically only about 4 kilobytes, compared to content items that can be hundreds of megabytes or gigabytes in size. I need. Thus, using placeholder items that represent content items operates to save a great deal of storage space, thereby improving the functionality of the client device.

[0030]要求されたコンテンツアイテムがプレースホルダアイテムであるとクライアントデバイスが判定した場合、これは、要求されたコンテンツアイテムが現在クライアントデバイスに格納されていないが、コンテンツ管理システムに格納されていることを示す。従って、クライアントデバイスは、要求したプレースホルダアイテムに対応するコンテンツアイテムをコンテンツ管理システムからダウンロードする。クライアントデバイスはさらに、ローカルコンテンツディレクトリにおいてコンテンツアイテムを格納することが当該ディレクトリのために規定された最大ストレージサイズを超えるかどうかを判定する。この場合、クライアントデバイスは、ローカルコンテンツディレクトリのコンテンツアイテム又はアイテムがローカルコンテンツディレクトリから削除できるか、コンテンツアイテムを表すプレースホルダアイテムと置き換えられるかを判定する。一般に、クライアントデバイスは、クライアントデバイスのユーザ、又はコンテンツ管理システムを介してコンテンツアイテムにアクセスするユーザによって放置されていると判定されたローカルコンテンツディレクトリからコンテンツアイテムを選択するために、クライアントデバイス上の最新のアクセス時刻(例えば、クライアントデバイスのユーザのアクション又はそれ上で実行するアプリケーション)、コンテンツアイテムが共有される他のクライアントデバイス上の最新のアクセス時刻(例えば、それらのクライアントデバイスのユーザのアクション)、コンテンツアイテムのサイズ、及びアクセス頻度を含む、共有コンテンツアイテムの1以上の属性を使用する。これらの要因の組み合わせはまた、放置されたコンテンツアイテムを判定するために使用されてもよい。クライアントデバイスは、ダウンロードしたコンテンツアイテムが最大ストレージサイズを超えることなく、その中に格納すべく、ローカルコンテンツディレクトリのストレージスペースの十分な量を生成するように、これらのコンテンツアイテムを削除する、ローカルコンテンツディレクトリからのコンテンツアイテムの数を選択する。一実施形態において、クライアントデバイスは、共有したコンテンツディレクトリにおいてそれらのコンテンツアイテムによって使用されるストレージの総量がダウンロードしたコンテンツアイテムを格納するのに必要なストレージ量と少なくとも等しいか又は超えるように、コンテンツアイテムの数を選択する。   [0030] If the client device determines that the requested content item is a placeholder item, this means that the requested content item is not currently stored on the client device, but is stored on the content management system. Is shown. Accordingly, the client device downloads a content item corresponding to the requested placeholder item from the content management system. The client device further determines whether storing the content item in the local content directory exceeds a maximum storage size defined for the directory. In this case, the client device determines whether the content item or item in the local content directory can be deleted from the local content directory or replaced with a placeholder item representing the content item. Generally, the client device updates the latest content on the client device to select a content item from a local content directory that has been determined to be abandoned by the user of the client device or a user accessing the content item through the content management system. Access time (e.g., the action of the user of the client device or an application running thereon), the latest access time on other client devices with which the content item is shared (e.g., the action of the user of those client devices) Use one or more attributes of the shared content item, including the size of the content item and the frequency of access. A combination of these factors may also be used to determine neglected content items. The client device deletes the content items so that the downloaded content items create sufficient storage space in the local content directory to be stored within the maximum storage size without exceeding them. Select the number of content items from the directory. In one embodiment, the client device determines that the total amount of storage used by those content items in the shared content directory is at least equal to or greater than the amount of storage required to store the downloaded content items. Choose the number of

[0031]クライアントデバイスは、選択したコンテンツアイテムを削除し、削除したコンテンツアイテムのそれぞれについての対応するプレースホルダアイテムを作成する。クライアントデバイスは、削除したコンテンツアイテムに対応するディレクトリの場所にプレースホルダアイテムを格納する。対応する場所へのプレースホルダアイテムの格納は、要求したアプリケーションに見える方法で削除したコンテンツアイテムのその後の検索を可能にする。   [0031] The client device deletes the selected content items and creates a corresponding placeholder item for each of the deleted content items. The client device stores the placeholder item in a directory location corresponding to the deleted content item. Storing the placeholder item in the corresponding location allows for subsequent retrieval of the deleted content item in a manner that is visible to the requesting application.

[0032]本実施形態は、各クライアントデバイスが他のコンテンツアイテムやアプリケーションについてのより多くのスペースを有する一方で、コンテンツ管理システムで共有された全てのコンテンツアイテムへのアクセスを維持することができ、各クライアントデバイスのストレージ効率やコンテンツ管理システムの全体としてのストレージ効率を改善する、制約付きの共有ストレージシステムを提供する。より具体的には、本実施形態は、クライアントデバイスが実際よりも大容量のストレージ容量を有するかのように、効果的に動作することを可能にする。例えば、ローカルコンテンツディレクトリ用に10GBのみのストレージ割り当てを有するクライアントデバイスが、当該ディレクトリ用に、有効なストレージとして400倍の増加となる4,000GB(4TB)を超えるストレージ割り当てを有するかのように、動作することができる。従来は、限定されたローカルストレージ容量に対するそのような解決策はネットワークの接続性や帯域幅制限によって不可能であったが、インターネットインフラストラクチャにおける最近の発展の結果としてそのような問題が解決され、広範囲にわたる接続性と、速いアップロード及びダウンロード速度を許容している。   [0032] This embodiment can maintain access to all content items shared in the content management system, while each client device has more space for other content items and applications, Provided is a restricted shared storage system that improves the storage efficiency of each client device and the storage efficiency of a content management system as a whole. More specifically, this embodiment allows the client device to operate effectively as if it had a larger storage capacity than it actually is. For example, as if a client device having a storage allocation of only 10 GB for a local content directory has a storage allocation for that directory of over 4,000 GB (4 TB), a 400-fold increase in available storage. Can work. In the past, such a solution for limited local storage capacity was not possible due to network connectivity and bandwidth limitations, but such problems have been resolved as a result of recent developments in the Internet infrastructure, It allows for extensive connectivity and fast upload and download speeds.

[0033]インターネットインフラストラクチャの最近の発展にもかかわらず、コンテンツアイテムの削除、それらとプレースホルダアイテムとの置換、及びユーザの要求に基づくそれらの復元に必要となる、計算、アップロード及びダウンロード時間は、依然としてデバイス性能に影響を与える可能性がある。従って、従来の共有コンテンツ同期方法におけるクライアントデバイス上のストレージ負荷を低減する一方で、ユーザに見えるようなデバイス性能への影響を低減する代替の実施形態についてもまた説明する。一実施形態において、計算、アップロード、及びダウンロードは、プレースホルダアイテムとして表される共有コンテンツアイテムへの予測されるユーザアクセスに基づいて完了される。コンテンツアイテムへのユーザアクセスを予測するために、クライアントアプリケーション又はコンテンツ管理システムは、各コンテンツアイテムの保存スコアを保持する。ここで、当該保存スコアは、各コンテンツアイテムのユーザに対して予測された重要度の尺度である。各クライアントデバイスは、保存スコアの閾値を有するように構成され、非常に高く予測された重要度(保存スコアの閾値を超える保存スコアによって表される)を有する任意のコンテンツアイテムは対応するクライアントデバイスにダウンロードされる。保存スコアは、最新のアクセス時刻、場所、種別、サイズ、アクセス頻度、共有状況、アクセスを有するアカウント数、アクセスを有するデバイス数、又はコンテンツアイテムを格納するデバイス数を含む種々の属性に基づいて算出されうる。   [0033] Despite recent developments in the Internet infrastructure, the computation, upload and download times required for deleting content items, replacing them with placeholder items, and restoring them based on user requirements, are May still affect device performance. Accordingly, alternative embodiments are also described that reduce the storage load on the client device in the conventional shared content synchronization method, while reducing the impact on device performance as seen by the user. In one embodiment, calculations, uploads, and downloads are completed based on predicted user access to shared content items represented as placeholder items. To predict user access to content items, the client application or content management system maintains a retention score for each content item. Here, the storage score is a measure of the degree of importance predicted for the user of each content item. Each client device is configured to have a storage score threshold, and any content item having a very high predicted importance (represented by a storage score above the storage score threshold) will be sent to the corresponding client device. Downloaded. The storage score is calculated based on various attributes including the latest access time, location, type, size, access frequency, sharing status, number of accounts having access, number of devices having access, or number of devices storing content items. Can be done.

[0034]代替的に、その他の実施形態は、クライアントデバイスのアクティビティを監視しながら(コンテンツ管理システムによるか、又はクライアントアプリケーションによるか)、クライアントデバイスのストレージ割り当てを超えるクライアントデバイス上の共有コンテンツアイテムによって占有されるストレージスペースを許容する。クライアントデバイスがアイドル状態であると判定されると、クライアントアプリケーションは、クライアントデバイス上に格納されたコンテンツアイテムによって占有される有効なストレージスペースを低減するために、上述したように、コンテンツアイテムを削除し、それらをプレースホルダアイテムと置き換える。それらの実施形態において、ストレージ割り当ては、常には保持されず、即ち、占有されるストレージが他のコンテンツアイテムの属性に従って低減されうる。ストレージ割り当てを維持する代わりに、例えば、クライアントデバイスがアイドル状態である場合にはいつでも、特定の期間(例えば、2週間)より古い最新のアクセスを有する全てのコンテンツアイテムが削除され、プレースホルダアイテムに置き換えられてもよい。当該プロセスは、ストレージ割り当ての下、占有されるストレージスペースを維持しないものの、クライアントデバイスがアイドル状態である、即ち、ユーザによってアクティブに使用されない間は動作が行われるため、ユーザが所望するであろう方法で低減するものであり、これにより、有効なストレージ容量の同様の増加を提供する一方で、上述した実施形態よりも改善されたユーザ経験を提供することによって、制約付きの同期システムを使用するように構成されたクライアントデバイスを改善することができる。   [0034] Alternatively, other embodiments monitor the activity of the client device (whether by the content management system or by the client application) while sharing content items on the client device that exceed the client device's storage quota. Allow storage space to be occupied. Once the client device is determined to be idle, the client application deletes the content item, as described above, to reduce the available storage space occupied by the content item stored on the client device. , Replace them with placeholder items. In those embodiments, the storage allocation is not always kept, ie, the occupied storage may be reduced according to the attributes of other content items. Instead of maintaining the storage allocation, for example, whenever the client device is idle, all content items with the latest access that are older than a certain period of time (eg, two weeks) are deleted and placeholder items are deleted. It may be replaced. The process will not maintain the occupied storage space under the storage allocation, but will be desired by the user because the client device is idle, i.e., running while not actively being used by the user. Using a constrained synchronization system by providing an improved user experience over the embodiments described above, while providing a similar increase in effective storage capacity. The client device configured as described above can be improved.

[0035]図1A及び図1Bは、制約付きの同期の実施形態を示す概略図である。図1Aは、ストレージ制約付きの同期フォルダにおいてコンテンツアイテムを保存するプロセスを示す図である。図1Bは、ストレージ制約付きのクライアントデバイス上のプレースホルダアイテムを開くプロセスを示す図である。   1A and 1B are schematic diagrams illustrating embodiments of constrained synchronization. FIG. 1A illustrates a process for storing a content item in a storage folder with a synchronization constraint. FIG. 1B illustrates the process of opening a placeholder item on a client device with storage constraints.

[0036]図1A及び図1Bにおいて、クライアントデバイス100Aは、コンテンツ管理システム110に接続され、同期されうる、複数のユーザ制御デバイスの一つである。コンテンツ管理システム110は、ネットワークを用いて複数のクライアントデバイスからのコンテンツを同期するインスタンス化されたサーバである。共有コンテンツストレージディレクトリ120は、コンテンツ管理システム110と同期されるコンテンツを含むクライアントデバイス100上に位置するディレクトリである。ストレージ割り当て130は、共有コンテンツストレージディレクトリ120の全てのコンテンツアイテムに対して許容されるストレージスペースの量を特定するパラメータ値である。ストレージ割り当て130は、クライアントデバイス100Aのユーザ、クライアントデバイス100のオペレーティングシステム、コンテンツ管理システム110のクライアントアプリケーション、システム管理者、又は、コンテンツ管理システム110を設立したポリシーによって設定されうる。ストレージ割り当て130の例示の値は10GBであり、これは、ユーザが共有コンテンツストレージディレクトリ120にそれらの全体として(全てのコンテンツアイテムの属性及びデータ)、10GBのコンテンツアイテムまで格納することができることを意味する。コンテンツアイテム140は、共有コンテンツストレージディレクトリ120内に保存され、クライアントデバイス100とコンテンツ管理システム110との間の同期後に、共有コンテンツストレージディレクトリ120の各コンテンツアイテム140のバージョンもまたコンテンツ管理システム110によって保持される。   [0036] In FIGS. 1A and 1B, client device 100A is one of a plurality of user control devices that can be connected to and synchronized with content management system 110. Content management system 110 is an instantiated server that synchronizes content from multiple client devices using a network. The shared content storage directory 120 is a directory located on the client device 100 that contains content synchronized with the content management system 110. The storage allocation 130 is a parameter value that specifies the amount of storage space allowed for all content items in the shared content storage directory 120. The storage allocation 130 can be set by a user of the client device 100A, an operating system of the client device 100, a client application of the content management system 110, a system administrator, or a policy that has established the content management system 110. An exemplary value for storage allocation 130 is 10 GB, which means that a user can store up to 10 GB of content items in the shared content storage directory 120 as a whole (attributes and data of all content items). I do. The content items 140 are stored in the shared content storage directory 120, and after synchronization between the client device 100 and the content management system 110, the version of each content item 140 in the shared content storage directory 120 is also maintained by the content management system 110. Is done.

[0037]ここで使用されるように、用語”コンテンツアイテム”は、任意のファイル、ファイルのグループ、又はファイルの集合を示す。単一のファイルのみからなる任意のコンテンツアイテムは、代替的にファイルとして参照されうる。さらに、”ファイルテーブル”などの用語は、個別のファイル又はコンテンツアイテムの量を参照するように使用されてもよい。   [0037] As used herein, the term "content item" refers to any file, group of files, or collection of files. Any content item consisting solely of a single file may alternatively be referred to as a file. Additionally, terms such as "file table" may be used to refer to an individual file or an amount of a content item.

[0038]図1において、共有コンテンツストレージディレクトリ120は、コンテンツアイテム140を含むボックスとして図示されている。ストレージ割り当て130は、コンテンツストレージディレクトリ120を表すボックスの特定の長さによって表される。   [0038] In FIG. 1, the shared content storage directory 120 is illustrated as a box containing the content items 140. The storage allocation 130 is represented by a specific length of the box representing the content storage directory 120.

[0039]クライアントデバイス100A及びコンテンツ管理システム110の第1の図示は、2つのエンティティの典型的な状態を表す。クライアントデバイスは、その共有コンテンツストレージディレクトリ120内にコンテンツアイテム140A、140B、及び140Cを有する(より少ない数のコンテンツアイテム140のみが説明の目的で示されるが、実際には、コンテンツアイテム140の数は、数千、数万、又はそれ以上であってもよい)。クライアントデバイス100Aと同期されるように、コンテンツ管理システム110が表され、そこで、ストレージ割り当て130を有していないにもかかわらず、クライアントデバイス100A上に格納されるコンテンツアイテムのそれぞれの同一バージョンを保持する。さらに、コンテンツ管理システム110は、コンテンツアイテム140Aが共有されるその他のクライアントデバイス100Bをサポートする。クライアントデバイス100Bの識別子に関連付けられるコンテンツアイテム140Dの存在は、クライアントデバイス100Bがまたコンテンツアイテム140Dをコンテンツ管理システム110と同期していることを示す。従って、各クライアントデバイス100は、コンテンツ管理システム110のみと、或いは、コンテンツ管理システム110及び他のクライアントデバイス100と、コンテンツアイテム140を同期することができる。   [0039] A first illustration of the client device 100A and the content management system 110 represents a typical state of two entities. The client device has content items 140A, 140B, and 140C in its shared content storage directory 120 (only a smaller number of content items 140 are shown for illustrative purposes, but in practice, the number of content items 140 is , Thousands, tens of thousands, or more). The content management system 110 is represented to be synchronized with the client device 100A, where it retains the same version of each of the content items stored on the client device 100A despite having no storage allocation 130. I do. Further, the content management system 110 supports another client device 100B where the content item 140A is shared. The presence of the content item 140D associated with the identifier of the client device 100B indicates that the client device 100B is also synchronizing the content item 140D with the content management system 110. Accordingly, each client device 100 can synchronize the content item 140 with only the content management system 110, or with the content management system 110 and other client devices 100.

[0040]段階1.1は、コンテンツアイテム140Eを共有コンテンツストレージディレクトリ120に保存するクライアントデバイスAからの要求の動作を示す。しかしながら、図示するように、コンテンツアイテム140Eの共有コンテンツストレージディレクトリ120への追加は、コンテンツアイテム140Eのサイズがストレージ割り当て130によって制限される共有コンテンツストレージディレクトリ120の利用可能な残スペースを超えるため、コンテンツアイテム140によって占有される総ストレージスペースがストレージ割り当て130を超えてしまう。   [0040] Stage 1.1 illustrates the operation of a request from client device A to store content item 140E in shared content storage directory 120. However, as shown, the addition of the content item 140E to the shared content storage directory 120 requires the The total storage space occupied by item 140 exceeds storage allocation 130.

[0041]段階1.2は、コンテンツアイテム140Eを格納できる利用可能な十分なストレージを確保するように、クライアントデバイス100から削除すべき放置されているコンテンツアイテム140Cの選択の動作を示す。一実施形態によれば、クライアントデバイス100、又はコンテンツ管理システム110の何れかは、何れのコンテンツアイテム140を放置されているものとして選択するかを決定する。後述する種々の方法が、何れのコンテンツアイテムが放置されているものとして選択されるかを決定するために使用されうる。本例では単一のコンテンツアイテム140Cのみが選択される一方で、実際には、利用可能とするべき必要のあるストレージ容量に従って、任意の数のコンテンツアイテム140が選択されてもよい。   [0041] Stage 1.2 illustrates the operation of selecting an abandoned content item 140C to be deleted from the client device 100 so as to ensure sufficient available storage to store the content item 140E. According to one embodiment, either the client device 100 or the content management system 110 determines which content items 140 to select as neglected. Various methods described below can be used to determine which content items are selected as neglected. In this example, while only a single content item 140C is selected, in practice, any number of content items 140 may be selected according to the storage capacity that needs to be available.

[0042]段階1.3は、クライアントデバイス100Aから選択されたコンテンツアイテム140Cを削除する動作を示す。各削除されたコンテンツアイテムに代わって、クライアントデバイス100Aは、削除されたコンテンツアイテム140Cを表すプレースホルダアイテム160Cを作成し、削除されたコンテンツアイテム140Cと、共有コンテンツストレージディレクトリ120の同じ場所にプレースホルダアイテムを格納する。代替的には、コンテンツ管理システム110は、プレースホルダアイテム160を作成し、その後、プレースホルダファイル160Cをコンテンツストレージディレクトリ120にダウンロードしてもよい。プレースホルダアイテムは、コンテンツ名、パス情報、コンテンツ属性、及びコンテンツサイズなどの削除したコンテンツアイテム140Cを表す属性を含むが、コンテンツアイテム140Cの実データは含まない。それらの対応するコンテンツアイテムの実データを含まないことによって、プレースホルダアイテムは、非常に少ないストレージしか必要としない。例えば、プレースホルダアイテムは、一般的には、4KBなどのオペレーティングシステムによって提供される最小のファイルサイズ割り当てしか必要としない。この小さいサイズは、縦線を用いて図1で仮想的に示され、コンテンツアイテム140C自身と比較してプレースホルダアイテムのサイズがごく僅かなサイズであることを示す。例えば、削除したコンテンツアイテム140Cが数メガバイト又は数ギガバイト(オーディオファイルやビデオファイルで共通する)となる一方で、そのようなコンテンツアイテムを表すプレースホルダアイテムに必要なストレージは、僅か4KB程度のものである。結果として、クライアントデバイス100は、共有コンテンツアイテムに使用されるローカルストレージの容量をストレージ割り当て130を下回る容量に低減することができ、これにより、新たに作成された(又は、より大きなコンテンツアイテムの新たなバージョンに更新された)コンテンツアイテム140Eを格納するために利用可能な十分なスペースを確保することができる。選択された(及び削除された)コンテンツアイテムを識別する情報は、クライアントデバイス100Aに保持され、それらのアイテムが後に選択的に検索されることを許容する。当該情報は、コンテンツ管理システム110のリモートコンテンツアイテムテーブル366(図1Aには不図示であるが、詳細が後述される)にリモートで格納される格納コンテンツアイテムのリスト150に、クライアントデバイス100のローカルに格納される。   [0042] Stage 1.3 illustrates an operation of deleting the selected content item 140C from the client device 100A. In place of each deleted content item, the client device 100A creates a placeholder item 160C representing the deleted content item 140C and places the deleted content item 140C and the placeholder in the same location in the shared content storage directory 120. Stores an item. Alternatively, content management system 110 may create placeholder item 160 and then download placeholder file 160C to content storage directory 120. The placeholder item includes attributes indicating the deleted content item 140C, such as the content name, path information, content attribute, and content size, but does not include the actual data of the content item 140C. By not including the actual data of their corresponding content items, placeholder items require very little storage. For example, placeholder items typically require a minimum file size allocation provided by the operating system, such as 4 KB. This small size is virtually shown in FIG. 1 using a vertical line, and indicates that the size of the placeholder item is very small compared to the content item 140C itself. For example, while a deleted content item 140C may be several megabytes or several gigabytes (common for audio and video files), the storage required for a placeholder item representing such a content item is only about 4 KB. is there. As a result, the client device 100 can reduce the amount of local storage used for shared content items to less than the storage quota 130, thereby reducing the newly created (or new content item size). Sufficient space is available to store the content item 140E (updated to the correct version). Information identifying the selected (and deleted) content items is maintained on the client device 100A, allowing those items to be selectively retrieved later. The information is stored in a list 150 of stored content items that are stored remotely in a remote content item table 366 (not shown in FIG. 1A, but will be described in detail later) of the content management system 110. Is stored in

[0043]段階1.4は、十分なスペースが共有コンテンツストレージディレクトリ120において利用可能にされるとすぐに、クライアントデバイス100Aにコンテンツアイテム140Eを保存する動作を示す。クライアントデバイス100Aがコンテンツアイテム140Eの共有コンテンツストレージディレクトリ120への保存を成功するとすぐに、コンテンツ管理システム110との同期が開始され、コンテンツアイテム140Eがコンテンツ管理システム110にアップロードされる。コンテンツ管理システム110は、クライアントデバイス100A上の全てのコンテンツアイテム(プレースホルダアイテムを含む)のフルコピーを常に保持する。   [0043] Stage 1.4 illustrates the operation of saving the content item 140E to the client device 100A as soon as sufficient space is made available in the shared content storage directory 120. As soon as the client device 100A successfully stores the content item 140E in the shared content storage directory 120, synchronization with the content management system 110 is started and the content item 140E is uploaded to the content management system 110. The content management system 110 always keeps a full copy of all content items (including placeholder items) on the client device 100A.

[0044]図1Bを参照すると、クライアントデバイス100Aからコンテンツ管理システム110へコンテンツアイテム140Eが同期された後の、クライアントデバイス100A及びコンテンツ管理システム110が示される。   [0044] Referring to FIG. 1B, client device 100A and content management system 110 are shown after content item 140E has been synchronized from client device 100A to content management system 110.

[0045]段階1.5は、コンテンツアイテム140Cへのアクセスを要求するクライアントデバイス100Aの動作を示す(例えば、ワードプロセッサを使用してコンテンツアイテム140Cを開くか、又はファイルブラウザでコンテンツアイテムを閲覧する)。ここで、クライアントデバイス100は、要求したコンテンツアイテムがプレースホルダアイテムによって表されていると判定する。コンテンツアイテムがローカルで格納されている場合、クライアントデバイス100A上の要求アプリケーションへ提供される。この場合、要求したコンテンツアイテムは、クライアントデバイス100Aから削除され、コンテンツ管理システム110上にリモートで格納されるのみであり、そこで、クライアントデバイス100は、コンテンツ管理システム110へ、要求したコンテンツアイテムをダウンロードするよう要求する。共有コンテンツストレージディレクトリ120に十分なスペースがある場合、コンテンツ管理システム110は、要求されたコンテンツアイテムをクライアントデバイス100Aにダウンロードし、クライアントは、その後、コンテンツアイテム140C表すプレースホルダアイテム160Cをコンテンツアイテム140Cそのものと置き換え、任意の要求アプリケーションがコンテンツアイテムに透過的にアクセスすることを可能にする。しかしながら、この場合、共有コンテンツストレージディレクトリ120へのコンテンツアイテム140Cの追加は、当該共有コンテンツストレージディレクトリ120の境界の外側にコンテンツアイテム140Cが延在して示されるように、ストレージ割り当て130を超えることになる。   [0045] Stage 1.5 illustrates the operation of the client device 100A requesting access to the content item 140C (eg, opening the content item 140C using a word processor or viewing the content item with a file browser). . Here, the client device 100 determines that the requested content item is represented by the placeholder item. If the content item is stored locally, it is provided to the requesting application on client device 100A. In this case, the requested content item is deleted from the client device 100A and is only stored remotely on the content management system 110, where the client device 100 downloads the requested content item to the content management system 110. Request to do so. If there is sufficient space in the shared content storage directory 120, the content management system 110 downloads the requested content item to the client device 100A, and the client then places a placeholder item 160C representing the content item 140C into the content item 140C itself. To allow any requesting application to transparently access the content item. However, in this case, the addition of the content item 140C to the shared content storage directory 120 would exceed the storage quota 130, as shown by the content item 140C extending outside the boundaries of the shared content storage directory 120. Become.

[0046]段階1.6は、クライアントデバイス100Aから削除するために、放置されているコンテンツアイテムを選択する動作を示す。この場合、選択された放置されているコンテンツアイテムは、コンテンツアイテム140Aである。   [0046] Stage 1.6 illustrates an operation of selecting a left-over content item to delete from client device 100A. In this case, the selected neglected content item is the content item 140A.

[0047]段階1.7は、コンテンツアイテム140Aを削除し、それをそのプレースホルダアイテム160Aに置き換える動作を示す。この削除は、ストレージ割り当て130を超えることなく、コンテンツ管理システム110からダウンロードされ、そのプレースホルダアイテムのレプリゼンテーションに付加されるコンテンツアイテム140Cのための、共有コンテンツストレージディレクトリ120の十分なスペースを創出する。削除されるコンテンツアイテム140Aは、リモートで格納されるコンテンツアイテムのリスト150に含められ、共有コンテンツストレージディレクトリ120に復元されたため、コンテンツアイテム140Cはリスト150から削除される。   [0047] Stage 1.7 illustrates the operation of deleting content item 140A and replacing it with its placeholder item 160A. This deletion creates enough space in the shared content storage directory 120 for content items 140C to be downloaded from the content management system 110 and added to the placeholder item representation without exceeding the storage quota 130. I do. The deleted content item 140A is included in the remotely stored content item list 150 and is restored to the shared content storage directory 120, so the content item 140C is deleted from the list 150.

[0048]段階1.8は、コンテンツアイテム140Cがクライアントデバイス100Aに常駐するとすぐに、要求アプリケーションによって開かれうることを示す。クライアントデバイス上で図1A及び図1Bに示されるプロセスが完了するとすぐに、通常の同期が、クライアントデバイス100Aとコンテンツ管理システム110との間で発生し、クライアントデバイス100A上でのコンテンツアイテム140への全ての変更がコンテンツ管理システム110上にミラーリングされる。全てのコンテンツアイテム140(プレースホルダアイテムによって表される場合であっても)は、それらが共有コンテンツストレージディレクトリ120から削除されるまでは、コンテンツ管理システム110上に保持される。   [0048] Stage 1.8 indicates that the content item 140C can be opened by the requesting application as soon as it resides on the client device 100A. As soon as the process shown in FIGS. 1A and 1B is completed on the client device, normal synchronization occurs between the client device 100A and the content management system 110, and to the content item 140 on the client device 100A. All changes are mirrored on the content management system 110. All content items 140 (even if represented by placeholder items) are kept on the content management system 110 until they are deleted from the shared content storage directory 120.

<システムアーキテクチャの概要>
[0049]図2は、制約付きの同期システムのシステムアーキテクチャを示す図である。各コンポーネントの詳細は後述するが、制約付きの同期の説明を提供すべく、いくつかの要素についてはここで紹介する。さらに、当業者には明らかなように、制約付きの同期に使用される動作および方法は、必然的にコンピュータを必要とし、いかなる実施形態においても、人間の動作による精神的ステップによっては実行されない。さらに、当該動作は情報の記憶及び検索、情報の送受信、又は情報の処理のためのコンピュータの容易さを利用する一方で、当業者は、このような動作が、ここで説明したアルゴリズムを用いて特別に定義したデータに関して特定の方法で実行され、従って、オペレーティングシステム及び標準アプリケーションだけでそのようなコンピュータをネイティブに供給する方法とは異なる方法でコンピュータを構成する必要があるため、単に一般的なコンピュータ動作ではないことを理解する。さらに、当該必要とされる構成は、後述するステップを通じて、従来のオペレーティングシステム及びファイル管理システムで構成された一般的な通常用途のコンピュータを超えて、コンピュータのストレージ容量を強化する。
<Overview of system architecture>
[0049] FIG. 2 is a diagram illustrating the system architecture of a constrained synchronization system. Details of each component are described below, but some elements are introduced here to provide a constrained synchronization description. Further, as will be apparent to those skilled in the art, the operations and methods used for constrained synchronization necessarily require a computer and are not performed in any embodiment by mental steps of human action. Further, while such operations may utilize the ease of a computer to store and retrieve information, send and receive information, or process information, those skilled in the art will recognize that such operations may be performed using the algorithms described herein. Because it is performed in a particular way with respect to specially defined data, and thus requires the computer to be configured in a manner different from the way that such a computer is natively provided solely by the operating system and standard applications, only the general Understand that it is not a computer operation. In addition, the required configuration enhances the storage capacity of the computer beyond the steps of a general operating computer configured with conventional operating systems and file management systems through the steps described below.

[0050]クライアントデバイス100は、コンテンツ管理システム110から遠隔に位置するクライアントデバイス100間のインターネットワーキングを提供する任意の適切な通信手段となりうる、不図示のネットワーク、例えば、LAN、WAN、又はWANを通じて、コンテンツ管理システム110と通信する。一般的には、インストールされたクライアントアプリケーション200Aを有するクライアントデバイス100Aは、コンテンツアイテムをコンテンツ管理システム110へ提供する。クライアントアプリケーション200Aは、ストレージ制約付きの同期と関連する機能を実行するために、クライアントデバイス100Aに必要とされるプログラム及びプロトコルを含む。従って、クライアントデバイス100Aは、クライアントアプリケーション200Aによって要求されるアクションを頻繁に実行する。しかしながら、クライアントデバイス100A及びクライアントアプリケーション200Aが共に動作するため、説明を容易にするため、それらのいくつかの動作は、動作要素として、”クライアントデバイス100A”を用いて参照される。クライアントデバイス100Aのユーザは、例えば、同一のユーザによって管理されるその他のコンピュータ、又は異なるユーザによって操作されるコンピュータとなりうるクライアントデバイス100Bと共有すべき所定のコンテンツアイテムを指定している。コンテンツ管理システム110は、クライアントデバイス100Bに通知し、クライアントデバイス100Bに格納されるローカルコンテンツとしてクライアントデバイス100Aから受信した、指定されたコンテンツアイテムを同期する。   [0050] Client device 100 may be any suitable communication means for providing internetworking between client devices 100 located remotely from content management system 110, such as through a network (not shown), such as a LAN, WAN, or WAN. , And communicates with the content management system 110. Generally, a client device 100A having an installed client application 200A provides a content item to a content management system 110. The client application 200A includes programs and protocols required by the client device 100A to perform functions related to storage-constrained synchronization. Therefore, the client device 100A frequently performs the actions required by the client application 200A. However, since the client device 100A and the client application 200A operate together, for the sake of simplicity, some of those operations are referred to using the "client device 100A" as the operating element. The user of the client device 100A specifies a predetermined content item to be shared with the client device 100B, which may be, for example, another computer managed by the same user or a computer operated by a different user. The content management system 110 notifies the client device 100B and synchronizes the designated content item received from the client device 100A as local content stored in the client device 100B.

[0051]コンテンツ管理システム110は、各コンテンツアイテムをコンテンツアイテムの集合に対応するネームスペースに関連付ける。ネームスペースは、所定のコンテンツアイテムが格納されるディレクトリ構造内のディレクトリ(又は、”フォルダ”)を指定する。コンテンツアイテムの特定のネームスペースへの関連付けは、ネームスペーステーブル222に格納される。コンテンツ管理システム110は、各クライアントを、各ネームスペースにおいてコンテンツアイテムへのアクセス、変更、及び削除を行う特定の権利の識別とともに、アクセスを有するネームスペースに関連付ける。クライアント100がネームスペースに同期されると、当該クライアントは、ネームスペースに関連付けられるコンテンツアイテムのローカルコピーを格納し、利用可能であればコンテンツの場所に従ってコンテンツアイテムを構造化(organize)する。ユーザは個別のクライアントデバイス100又は複数のクライアント100と関連付けられ、例えば、ユーザは、家庭用コンピュータ、作業用コンピュータ、ポータブルコンピュータ、スマートフォン、及びタブレットコンピュータを全て一緒に同期させることができる。コンテンツアイテムを共有するために、ユーザは、他のユーザ及び/又はクライアントと共有すべきネームスペースを指定する。コンテンツ管理システム110はその後、共有ネームスペースのコンテンツアイテムを、共有ネームスペースと関連するクライアントに渡って同期する。コンテンツ管理システム110に格納されるコンテンツアイテムは、ドキュメント、データ、映画、アプリケーション、コード、画像、音楽などを含む任意のタイプのコンテンツアイテムを含むことができる。コンテンツアイテムはまた、コレクション、プレイリスト、アルバム、ファイルアーカイブなどと共に、コンテンツアイテムをグループ化するフォルダまたは他のメカニズムであってもよい。   [0051] Content management system 110 associates each content item with a namespace corresponding to the collection of content items. The namespace specifies a directory (or “folder”) in the directory structure where a predetermined content item is stored. The association of a content item to a particular namespace is stored in a namespace table 222. Content management system 110 associates each client with a namespace that has access, along with an identification of the specific right to access, modify, and delete content items in each namespace. When a client 100 is synchronized to a namespace, the client stores a local copy of the content item associated with the namespace and organizes the content item according to the location of the content, if available. A user is associated with an individual client device 100 or multiple clients 100, for example, the user can synchronize a home computer, a work computer, a portable computer, a smartphone, and a tablet computer all together. To share a content item, a user specifies a namespace to share with other users and / or clients. Content management system 110 then synchronizes the content items in the shared namespace across clients associated with the shared namespace. The content items stored in content management system 110 may include any type of content item, including documents, data, movies, applications, codes, images, music, and the like. A content item may also be a folder or other mechanism that groups content items along with collections, playlists, albums, file archives, and the like.

[0052]各ユーザは、コンテンツ管理システム110上でコンテンツアイテムを格納するために使用されるべきストレージの容量を特定する情報を含む、コンテンツ管理システム110上のアカウントに関連付けられる。クライアントデバイスはまた、同期されるコンテンツアイテムを格納するための、共有コンテンツストレージディレクトリ120のサイズとなるローカルストレージの指定された容量を有し、当該指定される容量は、上述したストレージ割り当てのパラメータ130である。例えば、ユーザアカウントは、ユーザがコンテンツ管理システム110上で利用可能な50GBのストレージを有するように特定してもよいが、10GBのみのクライアントデバイス100上のストレージ割り当てを有する。このような状況において、ユーザがローカルに格納された共有コンテンツアイテムを変更すると、当該コンテンツアイテムは、サイズが増加し、これにより、クライアントデバイス100上のストレージ割り当てを超える可能性もある。同様に、ユーザは、共有コンテンツストレージディレクトリ120に、コンテンツ管理システム110と共有され、かつ、同期されるべき新なコンテンツアイテムを作成して格納することによって、クライアントデバイス100上のストレージ割り当てを超えてもよい。これらの場合、クライアントデバイス100がストレージ制限されており、コンテンツ管理システム110によって同期される全てのコンテンツアイテムのローカルコピーをもはや保持できなくなり、共有されるコンテンツアイテムの量が、クライアントデバイス100用のストレージ割り当てを超える。   [0052] Each user is associated with an account on the content management system 110 that includes information identifying the amount of storage to be used for storing content items on the content management system 110. The client device also has a specified capacity of local storage, which is the size of the shared content storage directory 120, for storing the content items to be synchronized, the specified capacity being determined by the storage allocation parameters 130 described above. It is. For example, a user account may specify that a user has 50 GB of storage available on the content management system 110, but has a storage allocation on the client device 100 of only 10GB. In such a situation, if the user modifies a locally stored shared content item, the content item may increase in size, thereby exceeding the storage quota on the client device 100. Similarly, a user can create and store new content items in the shared content storage directory 120 that are to be shared and synchronized with the content management system 110, thereby exceeding the storage allocation on the client device 100. Is also good. In these cases, the client device 100 is storage limited and can no longer maintain a local copy of all content items synchronized by the content management system 110, and the amount of shared content items is reduced by the storage for the client device 100. Exceed quota.

[0053]クライアントデバイス100又はコンテンツ管理システム110の何れかは、ローカルストレージから削除するために1以上のコンテンツアイテムを選択するように構成される一方で、それらはコンテンツ管理システム110上でリモートに依然保持され、それらはその後に検索され、クライアントデバイス100に復元されうる。一般的には、選択されたコンテンツアイテムは、コンテンツアイテムへのアクセスの要求を行った特定のクライアントデバイス100、又は当該コンテンツアイテムが共有される全てのクライアントデバイス100に渡る何れかで、最後にアクセスされて最も長い時間が経過したものであり、選択の他の方法については後述する。クライアントベースの実施形態において、クライアントアプリケーション200は、クライアントデバイス100に格納された各共有コンテンツアイテムに対する最新のアクセスを特定する情報を保持する。ストレージが制限されている場合、クライアントアプリケーション200は、最後にアクセスされて最も長い時間が経過している1以上のコンテンツアイテム(以下では、”LRA”と略記する。)を選択する。ホストベースの実施形態において、コンテンツ管理システム110は、全てのコンテンツアイテムについてのアクセスデータを保持し、当該システム110は、コンテンツアイテムが共有される任意のクライアントデバイス100上でコンテンツアイテムがアクセスされると、いつでもこの情報を更新する。LRAの選択は、多数の可能な放置コンテンツアイテムの選択方法(ここでは、”UCSM”と称する。)のうちの1つに過ぎず、それぞれはホストベース又はクライアントベースのシステムとして実装することができる。任意のUCSMは、削除するにふさわしいかどうかを判定するために各コンテンツアイテムについてのvnodeリファレンスを調べてもよい。各コンテンツアイテムのvnodeは、コンテンツアイテムへのアクセス数と、コンテンツアイテムが現在使用中又は開かれているかどうかを含む他のコンテンツアイテムの状態指標とに関する情報を含む。   [0053] While either the client device 100 or the content management system 110 is configured to select one or more content items for deletion from local storage, they are still remotely on the content management system 110. Retained, they can then be retrieved and restored to the client device 100. Generally, the selected content item will be accessed last, either across the specific client device 100 that has requested access to the content item, or across all client devices 100 with which the content item is shared. Since the longest time has passed since then, other methods of selection will be described later. In a client-based embodiment, the client application 200 maintains information identifying the most recent access to each shared content item stored on the client device 100. If the storage is limited, the client application 200 selects one or more content items that have been accessed last and that have passed the longest time (hereinafter abbreviated as “LRA”). In a host-based embodiment, the content management system 110 keeps access data for all content items, and the system 110 may access the content item on any client device 100 where the content item is shared. Update this information at any time. The selection of the LRA is only one of many possible methods of selecting a neglected content item (referred to herein as "UCSM"), each of which can be implemented as a host-based or client-based system. . Any UCSM may examine the vnode reference for each content item to determine if it is eligible for deletion. The vnode for each content item includes information about the number of accesses to the content item and status indicators for other content items, including whether the content item is currently in use or open.

[0054]説明を容易にすべく、ストレージ制限に応じてコンテンツアイテムがクライアントデバイス100上の常駐から削除するために選択された際には常に、当該動作は、ほとんどのUCSMがユーザによってアクセスされる可能性が最も低いコンテンツアイテムを特定するように動作するため、”放置コンテンツアイテムを選択する”としてここでは参照される。放置コンテンツアイテムは、以下の説明で概説する任意のUCSMによって選択されたコンテンツアイテムを参照する。   [0054] For ease of explanation, whenever a content item is selected to be removed from resident on the client device 100 in response to storage restrictions, the action is that most UCSMs are accessed by the user. In order to operate to identify the least probable content item, it is referred to herein as "selecting a neglected content item." A neglected content item refers to a content item selected by any UCSM outlined in the following description.

[0055]基本的なLRA選択:基本的なLRA選択を実行するために、クライアントアプリケーション200は、最後にローカルアクセスされた日付によって順序付けされたコンテンツアイテムのキューであって、当該キューの先頭にアクセスされて最も長い時間が経過したコンテンツアイテムがくるキューを保持する。各コンテンツアイテムの最後にアクセスされた日時は、コンテンツアクセス履歴テーブルに保持される。コンテンツアイテムへのアクセスは、コンテンツアイテムの作成、開く、プレビュー、又は変更を行う動作を含む。任意の数のそれらの動作が、アクセスとみなされ、例えば、本実施形態では、コンテンツアイテムを開く、変更する、又は保存するの何れかをアクセスとみなす一方で、コンテンツアイテムのプレビューはアクセスとみなさなくてもよい。ストレージサイズの累積合計(例えば、現在までの合計)は、キューに特定された、最後にアクセスされて最も長い時間が経過したコンテンツアイテム(即ち、キューの先頭のコンテンツアイテム)から開始して、キューの最後に位置するコンテンツアイテムまでのキューにリストされた各コンテンツアイテムについて算出される。ストレージが制限されている場合、クライアントアプリケーション200は、コンテンツアイテムを格納するのに必要なストレージスペースの容量を判定し、従って、累積ストレージサイズがストレージスペース要件を超えるコンテンツアイテムのインデックスを特定するためにキューを進ませる。特定したインデックスは、上述した、クライアントデバイス100上の共有コンテンツストレージディレクトリ120から削除するキューの当該インデックスを含む、全てのコンテンツアイテムを選択するために使用される。   [0055] Basic LRA Selection: To perform a basic LRA selection, the client application 200 accesses a queue of content items ordered by the last locally accessed date, and accesses the head of the queue. Holds a queue of content items that have passed the longest time. The last access date and time of each content item is stored in the content access history table. Accessing a content item includes creating, opening, previewing, or modifying the content item. Any number of those actions are considered accesses, e.g., in this embodiment, either opening, modifying, or saving a content item is considered an access, while previewing a content item is considered an access. It is not necessary. The cumulative total of storage sizes (e.g., to date) is calculated starting from the last accessed content item identified in the queue and the longest time elapsed (i.e., the top content item in the queue). Is calculated for each content item listed in the queue up to the content item located last. If storage is limited, the client application 200 determines the amount of storage space required to store the content item, and thus determines the index of the content item whose cumulative storage size exceeds the storage space requirement. Advance the queue. The specified index is used to select all content items including the index of the queue to be deleted from the shared content storage directory 120 on the client device 100 described above.

[0056]これらの処理は表1でさらに説明する。本例において、75MBのストレージがコンテンツアイテムを格納するために必要とされる。コンテンツアイテムA及びBのトータルが70MBしかないため、それらの2つのコンテンツアイテムの削除は当該アイテムについての十分な量のストレージを提供することはできない。従って、トータルの累積サイズが150MBとなるコンテンツアイテムA、B及びCが、(最右列の指定によって示されるように)対応するインデックス00、01、及び02で選択される。   [0056] These processes are further described in Table 1. In this example, 75 MB of storage is needed to store the content item. Since the total of content items A and B is only 70 MB, deletion of those two content items cannot provide a sufficient amount of storage for that item. Therefore, content items A, B, and C with a total cumulative size of 150 MB are selected at the corresponding indexes 00, 01, and 02 (as indicated by the designation in the rightmost column).

[0057]リモートLRA選択:LRA選択はまた、コンテンツ管理システム110を通じて、それ上で直接的な、又は、当該コンテンツアイテムのバージョンを共有しているクライアントデバイス100上での、コンテンツアイテムへのアクセスを有する他のユーザによるリモートアクセスに基づくことができる。これを達成するために、一実施形態において、各クライアントデバイス100は、例えば通常のコンテンツアイテムの同期操作のとき又は他のときに、それ自身のコンテンツアクセス履歴テーブルをコンテンツ管理システム110と同期する。この実施形態は、各クライアントデバイス100が、任意の他のクライアントデバイスと共有する全てのコンテンツアイテムについての現在のアクセス情報を保持することを可能にする。或いは、ホストベースの実施形態では、コンテンツ管理システム110は、同期及び共有するように指定された全てのクライアントデバイスに渡って各コンテンツアイテムについてのアクセス履歴を含むコンテンツアクセス履歴テーブルを保持してもよく、それにより、LRA選択で使用するために現状更新されたリストを有する。従って、リモートLRA選択は、コンテンツ管理システム110が、累積ストレージサイズが必要なストレージスペースを超える、最後にアクセスされて最も長い時間が経過したコンテンツアイテムを選択することを含む。この実施形態において、当該キューは、コンテンツアイテムに関して同期される全てのクライアントデバイスからの最新のアクセス時刻によって順序付けられる。   [0057] Remote LRA selection: The LRA selection also provides access to the content item directly through the content management system 110 or on the client device 100 that is sharing a version of the content item. May be based on remote access by other users. To accomplish this, in one embodiment, each client device 100 synchronizes its own content access history table with the content management system 110, for example, during normal content item synchronization operations or at other times. This embodiment allows each client device 100 to maintain current access information for all content items shared with any other client device. Alternatively, in a host-based embodiment, the content management system 110 may maintain a content access history table that includes an access history for each content item across all client devices designated to synchronize and share. , Thereby having an updated list for use in LRA selection. Thus, remote LRA selection involves the content management system 110 selecting the content item that has been accessed the longest time since the accumulated storage size exceeds the required storage space. In this embodiment, the queue is ordered by the latest access time from all client devices that are synchronized for the content item.

[0058]表2は、リモートLRAがどのように実装されうるかの一例である。本例において、コンテンツアイテムB及びCは、異なるクライアントデバイス上で、それぞれ2014/5/24と2014/4/5において最後にリモートにアクセスされているが、(表1に記載するように)両方とも2014/3/24において最後にローカルにアクセスされている。それらのリモートアクセスに起因するアイテムB及びCについての最新アクセスの日付の変更は、基本的なLRAの選択が使用される場合と比較して、キューの中でそれらをさらに遠くに移動させる。結果として、本例において、アイテムA及びDがA、B及びCの代わりに選択される。   [0058] Table 2 is an example of how a remote LRA can be implemented. In this example, content items B and C were last remotely accessed on different client devices at 2014/5/24 and 2014/4/5, respectively, but both (as described in Table 1). Both were locally accessed last on March 24, 2014. Changing the date of the last access for items B and C due to their remote access moves them further in the queue as compared to when the basic LRA selection is used. As a result, in this example, items A and D are selected instead of A, B, and C.

[0059]コンテンツアイテムのサイズ選択:削除するコンテンツアイテムを選択するために使用されうる他の要因は、それらのサイズである。一実施形態において、サイズは、削除され、かつ、クライアントデバイス100から遠隔に格納されるコンテンツアイテムの数を最小化するために使用される。これは、アクセスした日付の代わりに、サイズによるキューの順序付け(最小から最大)によって達成しうる。次に、必要なストレージスペースの値は、必要なストレージスペースを超えるサイズを有するコンテンツアイテムが特定されるまで、個々のサイズと比較されうる。クライアントアプリケーション200はその後、削除する当該コンテンツアイテムを選択するであろう。必要なストレージスペースよりも大きい単一のコンテンツアイテムがない場合には、最大のコンテンツアイテムが選択され、そのサイズは必要なストレージスペースの値から差し引かれ、当該処理はキューの初めから繰り返される。   [0059] Content item size selection: Another factor that can be used to select content items to delete is their size. In one embodiment, the size is used to minimize the number of content items that are deleted and stored remotely from the client device 100. This can be achieved by ordering the queues by size (minimum to maximum) instead of the date accessed. The value of the required storage space can then be compared to the individual sizes until a content item with a size that exceeds the required storage space is identified. The client application 200 will then select the content item to delete. If no single content item is larger than the required storage space, the largest content item is selected, its size is subtracted from the required storage space value, and the process repeats from the beginning of the queue.

[0060]表3は、当該選択方法の一例である。本例では、40MBのストレージがコンテンツアイテムを格納するために必要とされる。アイテムBが40MBの必要なストレージ値を超える、キューインデックスによる第1のコンテンツアイテムであるため、クライアント100から削除するように選択される。   [0060] Table 3 is an example of the selection method. In this example, 40 MB of storage is needed to store the content item. Item B is selected to be deleted from client 100 because it is the first content item with a queue index that exceeds the required storage value of 40 MB.

[0061]コンテンツアイテムサイズ及びアクセス時刻に基づく選択:上記説明したサイズ選択方法は、削除用に頻繁にアクセスされたコンテンツアイテムを選択することがある。サイズ及びアクセス時刻の両方を考慮に入れることによって、コンテンツ管理システムは、近い将来ユーザによって要求されうるコンテンツアイテムをクライアントデバイス100から削除することを回避することができる。一実施形態において、この二変数による選択方法は、必要なストレージ割り当てに達するのに寄与する各コンテンツアイテムのストレージ量と、その最新アクセス日時とに基づいて、各コンテンツアイテムの重み付けスコアを算出することによって達成される。例えば、
Score = w1S+w2
ここで、Sはコンテンツアイテムのサイズを表すメトリックであり、Aはコンテンツアイテムに最後にアクセスしてからの時間を表すメトリックであり、w及びwは重みである。A及びSへの重み付けは、ユーザによって決定されるように、それらの相対的な重要度に基づくことができ、或いは、特定のクライアントデバイス100上のコンテンツアイテムに対するアクセスパターンを示す履歴コンテンツアイテムに基づくことができる。その後、キューはスコアによって順序付けされ、キューの最初のコンテンツアイテムは削除用に選択される。
[0061] Selection Based on Content Item Size and Access Time: The size selection method described above may select frequently accessed content items for deletion. By taking into account both size and access time, the content management system can avoid deleting content items from the client device 100 that may be requested by the user in the near future. In one embodiment, the two-variable selection method includes calculating a weighted score for each content item based on the amount of storage of each content item that contributes to reaching the required storage allocation and its latest access date and time. Achieved by For example,
Score = w 1 S + w 2 A
Here, S is a metric that represents the size of the content item, A is a metric that represents the time since the last access to the content item, w 1 and w 2 are weighting. The weighting of A and S can be based on their relative importance, as determined by the user, or based on historical content items that indicate access patterns to content items on a particular client device 100 be able to. Thereafter, the queue is ordered by score, and the first content item in the queue is selected for deletion.

[0062]本実施形態の方法の一実施例を以下の表4に示す。例示の説明を容易にするため、アクセス時刻のメトリックAは、現在時刻及び特定のコンテンツアイテムに対する最新のアクセス時刻の差分と、現在時刻及び最後にアクセスされたアイテムの時刻(ここでは、最後に使用されたのは2014/9/3)の差分との比率である。本例において、サイズメトリックは以下の関係を有する。
For s>=r: S= r/s
For s<r: S=s2/r2
ここで、sはコンテンツのアイテムサイズであり、rは必要なストレージスペースであり、Sはサイズメトリックである。この区分的関数はs=rのときに最大1を有する。
[0062] An example of the method of this embodiment is shown in Table 4 below. For ease of illustration, the access time metric A is the difference between the current time and the latest access time for a particular content item, the current time and the time of the last accessed item (here, the last used item). What was done is the ratio with the difference of 2014/9/3). In this example, the size metric has the following relationship.
For s> = r: S = r / s
For s <r: S = s 2 / r 2
Here, s is the item size of the content, r is the required storage space, and S is the size metric. This piecewise function has a maximum of one when s = r.

[0063]表4に表示される例では、必要なストレージスペースは40MBであり、重みw1及びw2は両方1である。サイズメトリック及びアクセス時刻のメトリックが計算され、その後、各コンテンツアイテムの合計スコアを計算するために使用される。本例において、アイテムBは最も高いスコアを有し、クライアントデバイス100からの削除用に選択される。選択されたコンテンツアイテムが必要なストレージスペースよりも小さいサイズである場合、新たに必要なストレージスペースが古いストレージスペースと最初に選択したコンテンツアイテムのサイズとの差分として計算され、当該スコアは再計算され、新たなキューが、新たに算出された必要なストレージスペースを用いて全てのコンテンツアイテムに対して生成され、選択処理が繰り返される。   [0063] In the example displayed in Table 4, the required storage space is 40 MB and the weights w1 and w2 are both 1. A size metric and an access time metric are calculated and then used to calculate a total score for each content item. In this example, item B has the highest score and is selected for deletion from client device 100. If the selected content item is smaller than the required storage space, the new required storage space is calculated as the difference between the old storage space and the size of the first selected content item, and the score is recalculated. , A new queue is generated for all content items using the newly calculated required storage space, and the selection process is repeated.

[0064]アクセス頻度及び最新の選択放置コンテンツアイテムをよりよく選択するために、頻度などの他の要因がアクセス時刻に加えて考慮されうる。高頻度で低リセンシーのコンテンツアイテムは、過去(6か月以上前)に頻繁に選択されたコンテンツアイテムであるが、最近は選択されておらず、低頻度で低リセンシーのコンテンツアイテムは頻繁にアクセスされたことのないコンテンツアイテムである。アクセスの頻度は、特定のクライアントデバイス若しくは複数のクライアントデバイスの任意の集合での平均頻度、種別、ネームスペース、ソースドメイン、又は他のコンテンツアイテムの属性に関連して測定されうる。例えば、コンテンツアイテムが最近4か月でクライアントデバイス上でアクセスされていないが当該時刻前に25回アクセスされている場合、過去に1回しかアクセスがなく類似のリセンシーであるコンテンツアイテムよりもユーザにより関連がある可能性がある。   [0064] To better select the access frequency and the most recently selected content item, other factors, such as frequency, may be considered in addition to the access time. High-frequency, low-licensed content items are those that have been frequently selected in the past (more than 6 months ago), but have not been selected recently, and low-frequency, low-licensed content items are frequently accessed. Content item that has never been done. The frequency of access may be measured in relation to the average frequency, type, namespace, source domain, or other content item attributes for a particular client device or any set of client devices. For example, if a content item has not been accessed on the client device in the last 4 months but has been accessed 25 times before that time, the user may have accessed it only once in the past and have a similar recency than the content item May be relevant.

[0065]一実施形態において、各コンテンツアイテムへの最新のアクセスに加えて、各コンテンツアイテムに対するアクセス数が(クライアントデバイス100又はコンテンツ管理システム110のいずれかで)保持される。スコアは、それぞれの変数を表すメトリクスの重み付けの組合せとして各コンテンツアイテムについて決定される。例えば、各コンテンツアイテムについての重み付けスコアは、コンテンツアイテムのアクセス頻度及びその最新のアクセス日に基づく。例えば、
Score = w1F+w2
ここで、Fはアクセス頻度を表すメトリックであり、Aは最後にコンテンツアイテムにアクセスしてからの時間を表すメトリックであり。w及びwは重みである。AおよびFの重みは、ユーザによって、システム管理者によって、又は特定のクライアントデバイス100上のコンテンツアイテムの履歴コンテンツアイテムアクセスパターンに基づいて決定されるような、それらの相対的重要度に基づくことができる。キューはその後、スコアによって順序付けされる。累積和は各インデックスで計算され、必要なストレージスペースと比較される。必要なストレージスペースが累積和によって超されると、キュー内のインデックス及び上記当該インデックスの全てのコンテンツアイテムがクライアントデバイス100からの削除用に選択される。
[0065] In one embodiment, in addition to the most recent access to each content item, the number of accesses to each content item is maintained (either at the client device 100 or the content management system 110). A score is determined for each content item as a combination of metric weightings representing the respective variables. For example, the weighting score for each content item is based on the access frequency of the content item and its latest access date. For example,
Score = w 1 F + w 2 A
Here, F is a metric representing the access frequency, and A is a metric representing the time since the last access to the content item. w 1 and w 2 are weights. The weights of A and F may be based on their relative importance, as determined by a user, by a system administrator, or based on a historical content item access pattern of content items on a particular client device 100. it can. The cues are then ordered by score. The running sum is calculated at each index and compared to the required storage space. When the required storage space is exceeded by the cumulative sum, the index in the queue and all content items at the index are selected for deletion from the client device 100.

[0066]表5は本選択方法の一例である。本例において、必要なストレージスペースは40MBであり、重みw及びwは両方1である。当該キューはトータルスコアによって順序付けされ、累積和が必要なストレージスペースと比較される。これは、クライアントデバイス100からの削除用に選択されたアイテムC及びEの結果となる。 [0066] Table 5 is an example of the present selection method. In this example, the required storage space is 40 MB and the weights w 1 and w 2 are both 1. The queues are ordered by total score and compared to the storage space for which the cumulative sum is needed. This results in items C and E being selected for deletion from client device 100.

[0067]上記USCMの何れも、単一の個別のファイルの代わりに単一のキューインデックス内の全体のフォルダを考慮してもよい。例えば、LRA UCSMが使用され、フォルダに複数のファイルが含まれている場合、そのフォルダ内の最近アクセスされたファイルは、共有コンテンツディレクトリ内の他のすべてのコンテンツアイテムより以前のアクセス日時を有するため、(特にかなりのストレージスペースが必要な場合は)放置されているフォルダ全体を選択することがより効果的であろう。或いは、フォルダについて組み合わされたメトリックは、フォルダ内のコンテンツアイテムを一般化してキューへ配置することを可能にする、平均値、中央値、又は他の統計値であってもよい。   [0067] Any of the above USCMs may consider the entire folder in a single queue index instead of a single individual file. For example, if LRA UCSM is used and a folder contains multiple files, the most recently accessed files in that folder will have an earlier access date and time than all other content items in the shared content directory It may be more effective to select entire folders that have been left out, especially if you need significant storage space. Alternatively, the combined metric for a folder may be an average, median, or other statistic that allows the content items in the folder to be generalized and placed in a queue.

[0068]以下で記載するように、前述の方法の何れかが、クライアントデバイス100から削除するための放置コンテンツアイテムを選択するために使用されてもよい。放置コンテンツアイテムを選択する当該プロセスは、制約付きのコンテンツ管理システム100によって提供されるように、クライアントデバイス上で強化されたストレージ容量を可能にする。   [0068] As described below, any of the foregoing methods may be used to select a neglected content item to delete from client device 100. The process of selecting a neglected content item allows for increased storage capacity on the client device as provided by the constrained content management system 100.

<コンテンツ管理システムの概要>
[0069]クライアントデバイス100A及び100B間でコンテンツ管理システム110を用いる同期方法は、図2によって示されるアーキテクチャを参照して説明されうる。ストレージ制約付きの同期に使用されうる、多数の可能な同期方法の1つを以下で説明する。
<Overview of Content Management System>
[0069] A synchronization method using the content management system 110 between the client devices 100A and 100B may be described with reference to the architecture illustrated by FIG. One of many possible synchronization methods that can be used for storage-constrained synchronization is described below.

[0070]コンテンツ管理システム110は、データストア218にコンテンツアイテムを格納する。コンテンツアイテムは、ブロックと呼ばれる固定サイズの部分に格納される。ブロックのサイズ実装に従って変化し、一実施形態においては、ブロックは4メガバイトのサイズである。従って、小さいサイズのコンテンツアイテムは、単一のブロックに格納される一方で、大きいサイズのコンテンツアイテムは、コンテンツ管理システム110のストレージについて、数十、数百、又はそれ以上のブロックに分割されて格納されうる。メタデータはコンテンツアイテムの複数のブロック及びコンテンツアイテムにおけるブロックの順序を定義するブロックリストを含む。   [0070] Content management system 110 stores content items in data store 218. Content items are stored in fixed-size parts called blocks. The size of the block varies according to the implementation, and in one embodiment, the block is 4 megabytes in size. Thus, content items of small size are stored in a single block, while content items of large size are divided into tens, hundreds, or more blocks of storage of the content management system 110. Can be stored. The metadata includes a plurality of blocks of the content item and a block list that defines the order of the blocks in the content item.

[0071]保留ブロックテーブル220は、コンテンツ管理システムで受信されることが予期される保留ブロックのリストを保持する。保留ブロックテーブル220は、複数のブロック(ブロック識別子によって識別される)と、クライアント100が示す送信されるブロックが属するネームスペースとの関連付けを格納する。   [0071] The pending block table 220 holds a list of pending blocks that are expected to be received at the content management system. The reserved block table 220 stores an association between a plurality of blocks (identified by block identifiers) and a namespace to which the transmitted block indicated by the client 100 belongs.

[0072]ネームスペーステーブル222は、個別のコンテンツアイテムをネームスペースに関連付けるデータを格納し、各ネームスペースをクライアントに関連付けるデータを保持する。   [0072] The namespace table 222 stores data that associates individual content items with namespaces and holds data that associates each namespace with a client.

[0073]メタデータサーバ212は、新たなコンテンツアイテムをコンテンツ管理システムへ追加する(”コミットする(commit)”)クライアントからの要求を管理する責任を負う。メタデータサーバ212はまた、コンテンツアイテムを同期する要求をクライアントデバイス100から受信する。メタデータサーバ212は、クライアントデバイス100がコンテンツ管理システム110と同期された最新時刻の記録を保持する。クライアントデバイス100から同期する要求が受信されると、メタデータサーバ212は、最新の同期時刻スタンプ以後に、当該クライアントデバイス100へ同期されたネームスペースにコミットされている任意のコンテンツアイテムを判定する。さらに、メタデータサーバ212は、最新の同期時刻スタンプ以後に、受信された任意の保留ブロックを判定する。   [0073] The metadata server 212 is responsible for managing requests from clients to add new content items to the content management system ("commit"). Metadata server 212 also receives a request from client device 100 to synchronize the content item. The metadata server 212 holds a record of the latest time when the client device 100 is synchronized with the content management system 110. Upon receiving a request to synchronize from the client device 100, the metadata server 212 determines any content items that have been committed to the namespace synchronized to the client device 100 since the last synchronization time stamp. Further, the metadata server 212 determines any pending blocks received after the latest synchronization time stamp.

[0074]通知サーバ216は、クライアント100との通信を行い、特に、新たなデータが利用可能であることをクライアントへ通知する。通知サーバ216は、ネームスペーステーブル222で各ネームスペースに関連付けられるクライアント110のリストを保持する。通知サーバ216が、新たなブロックが所定のネームスペースについて利用可能であるというアラートをブロックサーバ214又はメタデータサーバ212から受信すると、当該通知サーバ216は、ネームスペーステーブル212から当該ネームスペースと関連付けられるクライアントを特定する。通知サーバ216は、ネームスペースに関連付けられたクライアント100に当該クライアント100を活動させるように通知し、新たなブロックが特定したネームスペースについて利用可能であることを示す。   [0074] The notification server 216 communicates with the client 100 and, in particular, notifies the client that new data is available. Notification server 216 maintains a list of clients 110 associated with each namespace in namespace table 222. When the notification server 216 receives an alert from the block server 214 or the metadata server 212 that a new block is available for a given namespace, the notification server 216 is associated with the namespace from the namespace table 212. Identify the client. The notification server 216 notifies the client 100 associated with the namespace to activate the client 100, indicating that a new block is available for the identified namespace.

[0075]2つのクライアント100、クライアント100A及びクライアント100Bの間の通常の同期は以下のように発生する。まず、クライアントデバイス100Aが共有データに追加のコンテンツアイテムを追加する。追加のコンテンツアイテムはその後、コンテンツ管理システム110へ送信される。コンテンツ管理システム110は、追加のコンテンツアイテムが共有データにあることをクライアントデバイス100Bに通知し、クライアントデバイス100Bは、コンテンツ管理システム110から追加のコンテンツアイテムをクライアントデバイス100Bとして取り出す。コンテンツ管理システム110は、コンテンツアイテムと、保留ブロックテーブル220を用いてコンテンツ管理システム110で受信されることが予期される保留ブロックとのリストを保持し、クライアントデバイス100Bにコンテンツ管理システム110によって受信されるブロックとしてコンテンツアイテムに対応するブロックをダウンロードするように通知する。保留ブロックは、コンテンツ管理システム110によって受信されることが予期されるコンテンツアイテムに対応するそれらのブロックであり、コンテンツアイテムがコンテンツ管理システム110にコミットされる前に、クライアントデバイス100Bに受信するために提供されうるブロックを特定するために使用される。   [0075] Normal synchronization between two clients 100, client 100A and client 100B, occurs as follows. First, the client device 100A adds an additional content item to the shared data. The additional content item is then sent to the content management system 110. Content management system 110 notifies client device 100B that the additional content item is in the shared data, and client device 100B retrieves the additional content item from content management system 110 as client device 100B. The content management system 110 maintains a list of content items and pending blocks that are expected to be received by the content management system 110 using the pending block table 220 and is received by the client device 100B by the content management system 110. To download the block corresponding to the content item as the block to be downloaded. Pending blocks are those blocks that correspond to content items that are expected to be received by the content management system 110 and that are to be received by the client device 100B before the content items are committed to the content management system 110. Used to identify blocks that can be provided.

[0076]転送中のコンテンツアイテムを管理するために、コンテンツ管理システム110は、保留ブロックに関連付けられるネームスペースとともに、保留ブロックのリストを保有する。保留ブロックが受信されると、ネームスペースに関連付けられるクライアントに通知され、受信されたブロックについての転送を開始することができる。従って、アップロードするクライアント(新たなコンテンツアイテムを提供する)と、ダウンロードするクライアント(新たなコンテンツアイテムを受信する)は、コンテンツ管理システム110に対して非同期でブロックを転送する。   [0076] To manage content items that are being transferred, the content management system 110 maintains a list of pending blocks along with a namespace associated with the pending blocks. When a pending block is received, the client associated with the namespace can be notified and a transfer for the received block can begin. Accordingly, the uploading client (providing a new content item) and the downloading client (receiving a new content item) transfer blocks to the content management system 110 asynchronously.

<クライアントデバイスの概要>
[0077]各クライアントデバイス100は、デスクトップ、ラップトップ、タブレット、モバイルデバイス、又は、コンテンツ管理システム110及びインストールされたクライアントアプリケーション200を用いる他のクライアントと同期される共有データのローカルコピーを保持する他のシステムなどのコンピューティングデバイスである。共有データは、単一のユーザに関連付けられるクライアントのみと同期されてもよく、複数のユーザと関連付けられるクライアントと同期されてもよい。クライアントデバイス100は、図3に関してさらに説明されるように、共有データを扱い、当該データを追加するためのモジュール及びアプリケーションを含む。
<Overview of Client Device>
[0077] Each client device 100 holds a local copy of shared data that is synchronized with a desktop, laptop, tablet, mobile device, or other client using the content management system 110 and the installed client application 200. Computing device such as a system. The shared data may be synchronized only with the client associated with a single user, or may be synchronized with the client associated with multiple users. Client device 100 includes modules and applications for handling and adding shared data, as described further with respect to FIG.

[0078]図3は、クライアントアプリケーション200のモジュールを示す。クライアントアプリケーション200は、種々のモジュールと、コンテンツ管理システム110とデータを同期するためのデータストアを含む。クライアントアプリケーション200は、コンテンツ同期モジュール310、ハッシングモジュール320、ダウンロードモジュール330、アップロードモジュール340、及びストレージ管理モジュール350を含む。さらに、クライアントアプリケーション200は、ファイルジャーナル360、常駐ファイルテーブル362、共有データ364、リモートファイルテーブル366、構成ファイル368、及びブロックキャッシュ370を含むデータストアを保持する。クライアントアプリケーション200に追加して、図3はまた、クライアントデバイスのオペレーティングシステム上に存在するストレージカーネル拡張部384を示す。クライアントアプリケーション200と、特定のコンピュータとしてモジュールインスタンスのクライアントアプリケーション200を用いる、その関連するカーネル拡張部とは、ここで説明する機能を実行することができ、クライアントデバイスのストレージ容量及び機能性能の説明される改善を可能にする。   FIG. 3 shows modules of the client application 200. Client application 200 includes various modules and a data store for synchronizing data with content management system 110. The client application 200 includes a content synchronization module 310, a hashing module 320, a download module 330, an upload module 340, and a storage management module 350. Further, the client application 200 holds a data store including a file journal 360, a resident file table 362, shared data 364, a remote file table 366, a configuration file 368, and a block cache 370. In addition to the client application 200, FIG. 3 also shows the storage kernel extension 384 residing on the client device operating system. The client application 200 and its associated kernel extension, which uses the module instance client application 200 as a particular computer, can perform the functions described herein and describe the storage capacity and functional performance of the client device. To make improvements.

[0079]共有データ364はコンテンツ管理システム110で同期されているデータであり、コンテンツ管理システム110から受信したコンテンツアイテムを含む。ユーザが共有データ364内のコンテンツアイテムを追加、修正又は削除すると、それらの変更はコンテンツ管理システム110と同期される。ハッシングモジュール320及びブロックキャッシュ370は、コンテンツ管理システム110へアップロードされるコンテンツアイテムを含むブロックを特定するように作動する。ハッシングモジュールは、MD5又はSHA-1などの任意の適切なハッシングアルゴリズムを実行することによってブロック識別子を割り当てる。コンテンツ同期モジュール310はその後、ブロックキャッシュ370内に位置する常駐ブロックと、コンテンツ管理システム110によって保持されるブロックとを比較するために、それらの識別子を使用する。それらのモジュールは、ここでの実施形態に存在するものの、このブロックの実装は、ストレージ制約付きの同期の本発明に必ずしも必須のものではない。   [0079] Shared data 364 is data that has been synchronized by content management system 110 and includes content items received from content management system 110. As the user adds, modifies, or deletes content items in the shared data 364, those changes are synchronized with the content management system 110. The hashing module 320 and block cache 370 operate to identify blocks containing content items that are uploaded to the content management system 110. The hashing module assigns a block identifier by executing any suitable hashing algorithm, such as MD5 or SHA-1. Content synchronization module 310 then uses those identifiers to compare resident blocks located in block cache 370 with blocks maintained by content management system 110. Although those modules are present in the embodiments herein, the implementation of this block is not necessary for the storage constrained synchronization invention.

[0080]クライアントアプリケーション200内で、クライアントデバイス100上の共有データ364のデータが修正されるか又は共有データ364へデータが追加されると、共有データ364への修正は、コンテンツ管理システム110へ送信される。クライアントデバイス100はまた、コンテンツ管理システム110からの通知を受信するように構成される。クライアントデバイス100は通知を受信すると、クライアントデバイス100は、共有データ364への修正についてコンテンツ管理システム110に問い合わせる。共有データが修正されると、クライアントデバイス100は、クライアントデバイス100上で共有データを格納するためにコンテンツ管理システム110からの修正を要求する。いくつかのケースにおいて、修正したデータは、プレースホルダアイテムによって表されるコンテンツアイテムと関連付けられてもよい。この場合、クライアントデバイス100は、プレースホルダアイテムによって表されるコンテンツアイテムへのアクセスがクライアントデバイス100上のアプリケーションによって要求されるまで、コンテンツ管理システム110からの修正データの要求を保留してもよい。或いは、共有コンテンツアイテムがその他のクライアントデバイス100によって修正されると、コンテンツ管理システム110は、制約付きのクライアントデバイス100がプレースホルダアイテムによって表されるコンテンツアイテムを復元するよう要求してもよく、その結果、当該修正が制約付きのクライアントに常駐する他のコンテンツアイテムを犠牲にして同期されうる。   [0080] In the client application 200, when the data of the shared data 364 on the client device 100 is modified or added to the shared data 364, the modification to the shared data 364 is transmitted to the content management system 110. Is done. Client device 100 is also configured to receive notifications from content management system 110. When the client device 100 receives the notification, the client device 100 queries the content management system 110 for a modification to the shared data 364. When the shared data is modified, the client device 100 requests a modification from the content management system 110 to store the shared data on the client device 100. In some cases, the modified data may be associated with a content item represented by a placeholder item. In this case, the client device 100 may suspend the request for modification data from the content management system 110 until access to the content item represented by the placeholder item is requested by an application on the client device 100. Alternatively, once the shared content item is modified by another client device 100, the content management system 110 may request that the constrained client device 100 restore the content item represented by the placeholder item, As a result, the modifications can be synchronized at the expense of other content items residing on the restricted client.

[0081]クライアントアプリケーション200内において、ファイルジャーナル360は、クライアントアプリケーション200を使用してアカウントにアクセス可能な全てのコンテンツアイテムのメタデータをリストしたテーブルを格納する。メタデータは、リビジョン日時と、ネームスペースと、各コンテンツアイテムに対応するブロックリストとを含む。常駐していない又は同期していないコンテンツアイテムが、依然としてファイルジャーナル360に含まれている。   [0081] Within the client application 200, the file journal 360 stores a table listing metadata of all content items accessible to the account using the client application 200. The metadata includes a revision date and time, a namespace, and a block list corresponding to each content item. Content items that are not resident or out of sync are still included in the file journal 360.

[0082]常駐ファイルテーブル362は、ストレージ制限に関わらず、クライアントデバイス100に常駐するファイルのリストを格納する。   [0082] The resident file table 362 stores a list of files resident on the client device 100 regardless of storage restrictions.

[0083]リモートファイルテーブル366は、クライアントデバイスから削除されてプレースホルダアイテムに置き換えられるように選択されたファイルのリストを格納する。それらのファイルは、コンテンツ管理システム110によって、他のユーザが当該ファイルにアクセス可能に保持されるのみである。   [0083] Remote file table 366 stores a list of files that have been selected to be deleted from the client device and replaced with placeholder items. These files are merely retained by the content management system 110 so that other users can access the files.

[0084]構成ファイル368は、クライアントアプリケーション200によって保持されるファイルであり、クライアントデバイスにおけるストレージ割り当て120を含む。いくつかの実施形態において、ストレージ割り当て120は、ユーザによって、又は、クライアントアプリケーション200を介した制御を有するコンピュータシステムによって作成されうる。例えば、オペレーティングシステムは、ストレージ割り当て120を変更して、他のアプリケーションによって使用される十分なストレージ容量を維持するようにしてもよい。   [0084] Configuration file 368 is a file maintained by client application 200 and includes storage allocation 120 at the client device. In some embodiments, storage allocation 120 may be created by a user or by a computer system having control via client application 200. For example, the operating system may change the storage allocation 120 to maintain sufficient storage capacity used by other applications.

[0085]ストレージカーネル拡張部384は、コンテンツアイテムへアクセスするための、アプリケーションからオペレーティングシステム380への要求を監視し、要求されたコンテンツアイテムがプレースホルダアイテムであるかどうかを判定するように構成され、当該機能を実行するための一手段である。ストレージカーネル拡張部384は、直接的な修正を、クライアントデバイス上の有効なストレージ容量の増大を可能にするように、オペレーティングシステムの構造及び機能に制定する。   [0085] The storage kernel extension 384 is configured to monitor a request from an application to the operating system 380 to access the content item and determine whether the requested content item is a placeholder item. Is a means for executing the function. The storage kernel extension 384 enacts a direct modification to the structure and functionality of the operating system to allow for increased effective storage capacity on the client device.

[0086]カーネル拡張部384は、クライアントアプリケーション200によって管理されるコンテンツアイテムを開かせる要求を監視する。カーネル拡張部384は、オペレーティングシステム380上のファイルシステム382監視することによって、クライアントアプリケーション200によって管理されるコンテンツアイテムを開かせる要求がいつ行われるかを判定する。コンテンツアイテムへの要求がファイルシステム382内で行われると、カーネル拡張部384は、共有コンテンツストレージディレクトリ120内に格納されるコンテンツアイテム内であるかどうかを判定するために、コンテンツアイテムのパス名を調べる。   [0086] Kernel extension 384 monitors requests to open content items managed by client application 200. Kernel extension 384 monitors file system 382 on operating system 380 to determine when a request to open a content item managed by client application 200 is made. When a request for a content item is made in the file system 382, the kernel extension 384 changes the path name of the content item to determine whether it is in a content item stored in the shared content storage directory 120. Find out.

[0087]カーネル拡張部384は、そのサイズが閾値サイズより下であるかどうかを判定することによって、要求されたコンテンツアイテムがプレースホルダアイテムであるかどうかを判定する或いは、プレースホルダアイテムの特定は、クライアントアプリケーション200によって管理されるコンテンツアイテムについての拡張されたファイル属性に基づいて達成されうる。カーネル拡張部が要求されたコンテンツアイテムのサイズを調べることなくプレースホルダアイテムを特定することができるように、プレースホルダアイテムを示すファイル属性がプレースホルダアイテムに割り当てられてもよい。カーネル拡張部384によって当該ファイルがプレースホルダアイテムであると判定されると、カーネル拡張部は、クライアントアプリケーション200へ識別情報を通知する。   [0087] Kernel extension 384 determines whether the requested content item is a placeholder item by determining whether its size is below a threshold size, or , Based on extended file attributes for content items managed by the client application 200. A file attribute indicating the placeholder item may be assigned to the placeholder item so that the kernel extension can identify the placeholder item without checking the size of the requested content item. If the kernel extension 384 determines that the file is a placeholder item, the kernel extension notifies the client application 200 of the identification information.

[0088]図4は、クライアントデバイス100に常駐していないものの、コンテンツアイテムがクライアントデバイス100へ常駐していたかのようにファイルシステムに含まれる、コンテンツアイテムへアクセスするための処理の一実施形態を示す相互作用図である。ファイルシステム382は、クライアントデバイス100上の同期されるフォルダ内のコンテンツアイテムを開く要求を受信する(400)。当該要求は、ファイルエクスプローラ、ワードプロセッサ、ドキュメントリーダ、画像編集などの任意のアプリケーションからであってもよい。ストレージカーネル拡張部384は、そのようなファイルシステムの要求を傍受し、要求されたコンテンツアイテムのパス名を取得する(402)。ストレージカーネル拡張部384は、コンテンツアイテムがプレースホルダアイテムであるかどうかを判定する(404)ためにパスネームを使用する。ストレージカーネル拡張部384は、所定の閾値を下回るかどうか、さもなければ、シャドウアイテムのサイズ(4KB)に一致するかどうかを判定するために、要求されたコンテンツアイテムのサイズを確認することによって、プレースホルダアイテムであるかどうかを判定してもよい。或いは、ストレージカーネル拡張部384は、コンテンツアイテムがプレースホルダアイテムであるか又は通常のコンテンツアイテムであるかどうかを示す値を格納するファイル属性拡張情報を読み込むことができる。コンテンツアイテムがプレースホルダアイテムでなければ、その結果、ストレージカーネル拡張部384は、通常通り当該要求を継続することを許容し、ファイルハンドルをファイルシステムへ与え、それによりコンテンツアイテムが開かれる。   [0088] FIG. 4 illustrates one embodiment of a process for accessing a content item that is not resident on the client device 100, but is included in the file system as if it were resident on the client device 100. It is an interaction diagram. File system 382 receives a request to open a content item in a synchronized folder on client device 100 (400). The request may be from any application, such as a file explorer, word processor, document reader, image editing, and the like. The storage kernel extension 384 intercepts such a file system request and obtains the path name of the requested content item (402). The storage kernel extension 384 uses the pathname to determine (404) whether the content item is a placeholder item. The storage kernel extension 384 checks the size of the requested content item to determine if it is below a predetermined threshold or otherwise matches the size of the shadow item (4 KB). It may be determined whether the item is a placeholder item. Alternatively, the storage kernel extension unit 384 can read file attribute extension information that stores a value indicating whether the content item is a placeholder item or a normal content item. If the content item is not a placeholder item, then storage kernel extension 384 allows the request to continue as usual and provides a file handle to the file system, thereby opening the content item.

[0089]コンテンツアイテムがプレースホルダアイテムであると判定すると、ストレージカーネル拡張部384は、要求識別子番号(要求種別を含む当該要求についての情報)と、ストレージ管理モジュール350へのファイルパスとを送信し(406)、ファイル名を渡す。ストレージ管理システム350は、リモートファイルテーブル366からファイル名を削除する(408)。ストレージ管理システム350はその後、コンテンツアイテムからの同期を必要とするコンテンツアイテムを確認するダウンロードスレッドを作動する(412)。要求されたコンテンツアイテムがリモートファイルテーブル408から削除されるとすぐに、ダウンロードスレッドは、ダウンロードに備えて要求されたコンテンツアイテムのサイズを含む、コンテンツ管理システム110からのコンテンツ情報を要求することができる(414)。ストレージ管理モジュール350は、サイズ情報をコンテンツ管理システム110から受信し(416)、クライアントデバイス100上にコンテンツアイテムを格納することが所定のストレージ制限を超過するかどうかを判定する(418)。要求されたコンテンツアイテムの追加によってストレージ制限を超過する場合、ストレージ管理モジュール350は、削除用にクライアントデバイス100上に格納された1以上のコンテンツアイテムを選択する(422)。しかしながら、ストレージ制限を超過しなければ、ストレージ管理モジュール350は、コンテンツアイテムをダウンロードする(430)処理に進む。   When determining that the content item is a placeholder item, the storage kernel extension unit 384 transmits a request identifier number (information about the request including the request type) and a file path to the storage management module 350. (406) The file name is passed. The storage management system 350 deletes the file name from the remote file table 366 (408). The storage management system 350 then activates (412) a download thread that checks for content items that require synchronization from the content item. As soon as the requested content item is deleted from the remote file table 408, the download thread can request content information from the content management system 110, including the size of the requested content item in preparation for the download. (414). The storage management module 350 receives the size information from the content management system 110 (416) and determines whether storing the content item on the client device 100 exceeds a predetermined storage limit (418). If the storage limit is exceeded by adding the requested content item, the storage management module 350 selects one or more content items stored on the client device 100 for deletion (422). However, if the storage limit is not exceeded, the storage management module 350 proceeds to download the content item (430).

[0090]ストレージ割り当て130が要求されたコンテンツアイテムを共有コンテンツストレージディレクトリ120へ追加することによって超過する場合、ストレージ管理モジュール350は、ダウンロード(430)を要求する前に、要求されたコンテンツアイテムについて利用可能な十分なストレージスペースを確保するように、移動する1以上のコンテンツアイテムを選択し、これにより、共有コンテンツストレージディレクトリ120がその割り当てられたスペースより大きく占有されることを防ぐことができる。ストレージ管理モジュール350は、上述した任意のUCSMを用いて、放置コンテンツアイテムをまず判定する(420)ことによって、削除するコンテンツアイテムを選択する(422)。特定のコンテンツアイテムのアクセス履歴又は各選択方法に関連する他の情報がホストシステムに格納される場合、当該情報のクライアントアプリケーション300のバージョンを更新するために要求がホストシステムへ行われる(図4では不図示)。コンテンツ管理システム110の各コンテンツアイテムについての、アクセス履歴の現在のバージョン又は任意の他の必要な情報が取得されるとすぐに、ストレージ管理モジュール350は、放置コンテンツアイテムを判定することができる(420)。   [0090] If the storage allocation 130 is exceeded by adding the requested content item to the shared content storage directory 120, the storage management module 350 uses the requested content item before requesting the download (430). One or more content items to be moved may be selected to ensure sufficient storage space possible, thereby preventing the shared content storage directory 120 from being occupied more than its allocated space. The storage management module 350 selects a content item to be deleted (422) by first determining a neglected content item using any of the above-described UCSMs (420). If the access history of a particular content item or other information related to each selection method is stored in the host system, a request is made to the host system to update the client application 300 version of that information (FIG. 4). Not shown). As soon as the current version of the access history or any other necessary information is obtained for each content item of the content management system 110, the storage management module 350 can determine the neglected content item (420). ).

[0091]ストレージ管理モジュールはその後、クライアントデバイスから削除する放置コンテンツアイテムを選択する(422)。本実施形態において、削除するコンテンツアイテムを選択するために(422)、ストレージ管理モジュール350は、ダウンロードする要求されたコンテンツアイテムのサイズと少なくとも同等のストレージスペースを作成するための使用において、USCMによって生成されるキューを詳細に検討する。削除用の放置コンテンツアイテムの選択は、上述の任意の方法を用いて行われうる。   [0091] The storage management module then selects the neglected content item to delete from the client device (422). In this embodiment, to select a content item to delete (422), the storage management module 350 generates by the USCM in use to create a storage space at least equal to the size of the requested content item to download. Consider the queues that will be created in detail. Selection of a neglected content item for deletion can be performed using any of the methods described above.

[0092]ストレージ管理モジュール350はその後、選択したコンテンツアイテムの名前をリモートファイルテーブル366に追加する。当該追加(424)が完了すると(426)すぐに、ストレージ管理モジュール350は、選択したコンテンツアイテムを共有コンテンツストレージディレクトリ120から削除し(428)、その後、それぞれの削除したコンテンツアイテムについて、削除したコンテンツアイテムと同じメタデータ及び場所を有するがコンテンツアイテムについてのコンテンツ情報を含まない、対応するプレースホルダアイテムを作成する。プレースホルダアイテムは、それらが依然としてクライアントデバイス100上に常駐しているかのように、クライアントのユーザインタフェースに表されてもよい。図8は、クライアントデバイス100のユーザインタフェースにおいて、どのようにプレースホルダアイテム表されるかを示す図である。   [0092] The storage management module 350 then adds the name of the selected content item to the remote file table 366. Upon completion of the addition (424) (426), the storage management module 350 deletes the selected content item from the shared content storage directory 120 (428), and then deletes the deleted content item for each deleted content item. Create a corresponding placeholder item that has the same metadata and location as the item, but does not include content information about the content item. The placeholder items may be represented on the client user interface as if they were still resident on the client device 100. FIG. 8 is a diagram showing how a placeholder item is represented in the user interface of the client device 100.

[0093]選択されたコンテンツアイテムが削除されると、クライアントデバイス100上には十分なストレージスペースができ、要求されたコンテンツアイテムが、共有コンテンツストレージディレクトリ120のストレージ制限を超えることなくコンテンツ管理システム110からダウンロードされうる。従って、ストレージ管理モジュール350は、ダウンロードリクエスト430をダウンロードモジュール330へ送信する。ダウンロードモジュール330はその後、コンテンツ管理システム110とダウンロード(432)を開始する。コンテンツアイテムがダウンロードモジュール330にダウンロードされる(434)と、ストレージ管理モジュール350に渡され(436)、要求したコンテンツアイテムを前回の特定した場所に保存(438)し、ストレージカーネル拡張部384にダウンロードが完了したことを通知する(440)。一実施形態において、ストレージ管理モジュール350は、ダウンロードされたコンテンツアイテムの内容をプレースホルダアイテムのメタデータに付与し、コンテンツアイテムがもはやプレースホルダアイテムでないことを示すようにコンテンツアイテムの属性を更新する。これは、要求アプリケーションが、コンテンツアイテムへのアクセスを最初に要求するのに使用された同じファイルハンドル及び識別情報を用いて、要求したコンテンツアイテムに対して透過的にアクセスすることを可能とする。ストレージカーネル拡張部384はその後、ファイルシステム382へのファイルハンドル(442)を通し、要求アプリケーションがコンテンツアイテムを開く(444)ことを許可する。   [0093] When the selected content item is deleted, sufficient storage space is created on the client device 100 so that the requested content item can be stored in the content management system 110 without exceeding the storage limit of the shared content storage directory 120. Can be downloaded from Therefore, the storage management module 350 sends the download request 430 to the download module 330. The download module 330 then initiates a download (432) with the content management system 110. When the content item is downloaded to the download module 330 (434), the content item is passed to the storage management module 350 (436), and the requested content item is stored in the previously specified location (438) and downloaded to the storage kernel extension 384. Is notified (440). In one embodiment, the storage management module 350 attaches the content of the downloaded content item to the placeholder item's metadata and updates the content item's attributes to indicate that the content item is no longer a placeholder item. This allows the requesting application to transparently access the requested content item using the same file handle and identity used to initially request access to the content item. The storage kernel extension 384 then allows the requesting application to open (444) the content item through a file handle (442) to the file system 382.

[0094]図5は、ストレージ割り当て130に近づくように、コンテンツアイテムを共有コンテンツストレージディレクトリ120に保存する処理の一実施形態を示す相互作用図である。当該コンテンツアイテムは共有コンテンツストレージディレクトリ120内に新たに作成したコンテンツアイテム、共有コンテンツストレージディレクトリ120へ再配置されているコンテンツアイテム、又は、共有コンテンツストレージディレクトリ120に既にあり、そのサイズを増大するような方法で修正されたコンテンツアイテムであってもよい。当該プロセスは、アプリケーションがオペレーティングシステムのファイルシステム382へ同期フォルダ内のコンテンツアイテムを保存する要求を行う(500)ことにより開始される。ストレージカーネル拡張部384は、この要求を監視し、ファイルシステムから要求ID、ファイルパス及びサイズを受信する(502)。ストレージカーネル拡張部384はその後、当該情報をストレージ管理モジュール350に送信する(504)。ストレージ管理モジュールは、新たなコンテンツアイテムの追加が同期フォルダのストレージ制限を超過させるかどうかを判定する(506)。ストレージ制限を超過しない場合は、ファイルシステム382は、コンテンツアイテムを通常通り保存することを許容する。ストレージ制限を超過する場合、ストレージ管理モジュール350は、放置コンテンツアイテムを判定し(508)、クライアントデバイスから削除するコンテンツアイテムとして選択する。放置コンテンツアイテムが選択されると、それらの名前がリモートファイルテーブル366に追加され(512)、これにより、コンテンツ管理システム110によってコンテンツが同期されなくなる。ストレージ管理モジュールはその後、クライアントデバイス100から選択したコンテンツアイテムを削除し、削除したコンテンツアイテムと同じメタデータ及び場所を有するが内容は含まないプレースホルダアイテムと置き換える(514)。当該プロセスが完了すると、オリジナルのコンテンツアイテムが保存できるように、ストレージ管理モジュールにおける制限フォルダ内に十分なストレージスペースが存在することになる(516)。ストレージ管理モジュールその後、アップロードスレッドを起動し(518)、メタデータにアクセスする(520)ことにより、保存されたコンテンツアイテムの内容がコンテンツ管理システム110にアップロードされる(522)。   [0094] FIG. 5 is an interaction diagram illustrating one embodiment of a process for storing a content item in a shared content storage directory 120 to approximate a storage allocation 130. The content item may be a newly created content item in the shared content storage directory 120, a content item relocated to the shared content storage directory 120, or a content item that is already in the shared content storage directory 120 and increases in size. It may be a content item that has been modified in a manner. The process begins with the application making a request to the operating system file system 382 to save the content item in the sync folder (500). The storage kernel extension 384 monitors this request and receives the request ID, file path, and size from the file system (502). Thereafter, the storage kernel extension unit 384 transmits the information to the storage management module 350 (504). The storage management module determines whether adding a new content item exceeds the storage limit of the sync folder (506). If the storage limit is not exceeded, the file system 382 allows the content item to be stored normally. If the storage limit is exceeded, the storage management module 350 determines the neglected content item (508) and selects it as the content item to be deleted from the client device. When an abandoned content item is selected, their name is added to the remote file table 366 (512), which causes the content to be out of sync by the content management system 110. The storage management module then deletes the selected content item from the client device 100 and replaces it with a placeholder item that has the same metadata and location but no content as the deleted content item (514). Upon completion of the process, there is sufficient storage space in the restricted folder in the storage management module to allow the original content item to be stored (516). The storage management module then activates an upload thread (518) and accesses the metadata (520) to upload the content of the stored content item to the content management system 110 (522).

[0095]コンテンツアイテムを自動的に削除してプレースホルダアイテムを作成することに加えて、いくつかの実施形態はまた、ユーザに対して、コンテンツ管理システム110にリモートでのみ格納される特定のコンテンツアイテムを選択することを許容する。これは、ユーザが特定の同期したコンテンツアイテム上でコンテキストメニュー(例えば、”右クリック”)から選択することを単に許容することによって実施されてもよい。クライアントアプリケーション200はその後、選択したコンテンツアイテムをリモートにするオプションをユーザに提示する。ユーザが当該オプションを選択すると、コンテンツアイテムがクライアントデバイス100から削除され、コンテンツアイテムの名前がリモートファイルテーブル366に追加され、オリジナルのコンテンツアイテムと同じメタデータ及び場所を有するプレースホルダアイテムがオリジナルのコンテンツアイテムを表すように作成される。ユーザがその後コンテンツアイテムへのアクセスを望む場合、図5に示したのと同じプロセスがコンテンツ管理システム110からコンテンツアイテムを取り出すために使用されてもよい。   [0095] In addition to automatically deleting content items and creating placeholder items, some embodiments also provide the user with certain content that is stored only remotely in the content management system 110. Allows you to select items. This may be implemented by simply allowing the user to select from a context menu (eg, "right click") on a particular synchronized content item. The client application 200 then presents the user with the option to remote the selected content item. When the user selects that option, the content item is deleted from client device 100, the name of the content item is added to remote file table 366, and a placeholder item having the same metadata and location as the original content item is deleted. Created to represent an item. If the user subsequently desires access to the content item, the same process as shown in FIG. 5 may be used to retrieve the content item from the content management system 110.

[0096]いくつかの実施形態において、実際にUCSMがクライアントデバイス100から削除するコンテンツアイテムを選択するかどうかに関わらず、ストレージ割り当て130に到達すると、ユーザがクライアントデバイスでの常駐を維持する特定のコンテンツアイテムを選択することを可能にするようにクライアントデバイスは構成される。本実施形態は、ユーザが特定の重要なコンテンツアイテムへの迅速なアクセスを維持することを許容する動作上の改良を提供する。本実施形態において、クライアントアプリケーション200は、ユーザがコンテキストメニューにアクセスし、その後、クライアントデバイス100上に常駐することを維持するコンテンツアイテムを強制するオプションを選択することを可能にする。選択されると、コンテンツアイテムの名前が常駐ファイルテーブル362に加えられる。常駐ファイルテーブル362は、422に示されるように、ストレージ管理モジュール350によって使用されるUCSM中において、後にアクセスされ、テーブル内の全てのコンテンツアイテムは当該選択プロセスから除外される。例えば、所定のコンテンツアイテムが削除用に選択されると、常駐ファイルテーブル362が選択されたコンテンツアイテムがそこに記載されているかどうかを判定するために調べられ、もしそうであれば、選択されたコンテンツアイテムは無視され、その他のコンテンツアイテムがUCSMによって実際に選択される。   [0096] In some embodiments, upon reaching the storage quota 130, regardless of whether the UCSM actually selects the content item to be deleted from the client device 100, the particular user remains resident on the client device. The client device is configured to enable selecting a content item. This embodiment provides an operational improvement that allows a user to maintain quick access to certain important content items. In this embodiment, the client application 200 allows the user to access a context menu and subsequently select an option to enforce content items that remain resident on the client device 100. When selected, the name of the content item is added to the resident file table 362. The resident file table 362 is later accessed in the UCSM used by the storage management module 350, as shown at 422, and all content items in the table are excluded from the selection process. For example, if a given content item is selected for deletion, the resident file table 362 is consulted to determine if the selected content item is listed there, and if so, the selected Content items are ignored and other content items are actually selected by UCSM.

[0097]クライアントデバイス100上のプレースホルダアイテムと関連するコンテンツは同期されないため、コンテンツ管理をより複雑にしてしまう。例えば、クライアントデバイス上のユーザが第2のクライアントデバイス上でプレースホルダアイテムとして表されるコンテンツアイテムを移動する場合、その後、第2のクライアントデバイスがプレースホルダアイテムに関する同期データを受信しなければ、その場所は、第1のクライアントデバイス上で変更されるものの、他のクライアントデバイス上では変更されないことになる。例えば、コンテンツアイテムは、1つのクライアントデバイス100によって完全にコンテンツ管理システム110から削除される一方で、異なるクライアントデバイス100上のプレースホルダアイテムによって表される可能性がある。この状況が発生した場合、第2のクライアントデバイス100のユーザは、もはや存在しないことを見つけるのみのために、プレースホルダアイテムによって表されるコンテンツアイテムへアクセスすることを試みることができる。このような混乱する状況を回避するために、いくつかの実施形態において、コンテンツ管理システム110は、メタデータについてのみプレースホルダアイテムを同期するように構成され、つまり、プレースホルダアイテムの任意の属性が変更されると、コンテンツ管理システム110は、コンテンツアイテムがそれらのクライアントデバイスの何れかでプレースホルダアイテムとして表されているかどうかに関わらず、当該コンテンツアイテムへのアクセスを有する全てのクライアントデバイス100に修正された属性を同期する。従って、コンテンツアイテムが1つのクライアントデバイスから削除された場合、当該コンテンツアイテムを表すプレースホルダアイテムが任意の他のクライアントデバイス100上においても削除される。代替的に、いくつかの実施形態において、クライアントデバイス100上の共有コンテンツストレージディレクトリ120内の残りのストレージ内に収まるようにそのサイズが変更されるように、コンテンツアイテムコンテンツアイテムが他のクライアントデバイス上で修正された場合、コンテンツアイテムへのアクセスが要求されない場合であってもクライアントデバイス100へダウンロードされてもよい。   [0097] Content related to placeholder items on client device 100 is not synchronized, which complicates content management. For example, if a user on a client device moves a content item represented as a placeholder item on a second client device, then if the second client device does not receive synchronization data for the placeholder item, The location will change on the first client device but will not change on other client devices. For example, a content item may be completely deleted from the content management system 110 by one client device 100 while being represented by a placeholder item on a different client device 100. If this situation occurs, the user of the second client device 100 may attempt to access the content item represented by the placeholder item only to find out that it is no longer present. To avoid such confusing situations, in some embodiments, the content management system 110 is configured to synchronize placeholder items only for metadata, that is, if any attributes of the placeholder items are When changed, the content management system 110 modifies all client devices 100 that have access to the content item, regardless of whether the content item is represented as a placeholder item on any of those client devices. Synchronized attributes. Therefore, when a content item is deleted from one client device, the placeholder item representing the content item is also deleted on any other client device 100. Alternatively, in some embodiments, the content item content item is stored on another client device such that its size is changed to fit within the remaining storage in the shared content storage directory 120 on the client device 100. May be downloaded to the client device 100 even if access to the content item is not required.

[0098]前述の実施形態のいくつかは、クライアントアプリケーション200が所定のストレージ割り当て130を超過しないことを保証し、かつ、コンテンツ管理システム110からのデータを要求するように動作する、クライアントベースの制約付きの同期システムを表す。ホストベースの実施形態が図6に示され、コンテンツ管理システム110は、各クライアントデバイス100におけるリモート及び常駐のコンテンツアイテムの情報を特定する情報を保持することを含む、制約付きの同期プロセスを管理する。ホストベースの実施形態は、クライアントデバイス100上の有効なストレージ容量を増加させる同様の利益を提供する一方で、クライアントデバイスから必要とされる計算を低減し、これにより、他の実施形態と比較してクライアントデバイス100の性能を改善する。制約付きのコンテンツ管理システム600は、図2に示されるコンテンツ管理システム110の要素を含み、さらに、ストレージ管理モジュール350が適切に機能するために必要な必要データファイルとともに、ストレージ管理モジュール350を利用するように修正される。制約付きのコンテンツ管理システム内において、メタデータサーバ212、ブロックサーバ214、通知サーバ216、データストア218、保留ブロックテーブル220及びネームスペーステーブル222がコンテンツ管理システム110で実施されるのと同様の方法で機能する。さらに、ストレージ管理モジュール350は、クライアントデバイスに常駐するときと同様の方法で機能し、ストレージスペース制限が超過するときを判定し、適切にプレースホルダアイテムを作成するように動作する。ストレージ管理モジュール350はまた、オペレーティングシステム380によって行われた要求についての情報をクライアントデバイス100から受信するように動作する。1以上のコンテンツアイテムを開くように要求が行われると、要求についての情報がストレージ管理モジュール350によってリモートで監視するコンテンツ管理システム110へ送信され、それにより、クライアントデバイス100上のプレースホルダアイテムへのアクセスを提供するために必要なダウンロードが行われる。ストレージ管理モジュール350は、制約付きのコンテンツ管理システムに関連付けられる各クライアントデバイス上のストレージ構成に関する情報を提供するために、クライアント構成ファイル610を使用する。同期テーブル620は、制約付きのコンテンツ管理システム600との同期を要求する、クライアントデバイスクライアントデバイス上の全てのコンテンツアイテムの記録であり、コンテンツアイテムのいくつかがプレースホルダアイテムであってメタデータの同期のみを必要とするため、このテーブルに含まれるコンテンツアイテムはデータストア218に位置するコンテンツアイテムのサブセットとなる。さらに、本実施形態において、同期テーブル620は、各コンテンツアイテムがリモートで保持されるべき又は常駐されるべきクライアントデバイス100を示すように構成される、常駐ファイルテーブル362とリモートファイルテーブル366との両方を用いることによって置き換えられてもよい。後者の構成を用いる実施形態について、プレースホルダアイテムについてのメタデータの同期の実装は、プレースホルダアイテムが各クライアントデバイス100のリモートファイルテーブル366において直接的に特定される場合には、より容易となる。ユーザデータ630は、制約付きのコンテンツ管理システム600上に格納され、これにより、ストレージ管理モジュール350は、放置コンテンツアイテムを判定することができる。   [0098] Some of the embodiments described above ensure that the client application 200 does not exceed the predetermined storage quota 130 and operate to request data from the content management system 110. Represents the synchronization system with. A host-based embodiment is shown in FIG. 6, where the content management system 110 manages a constrained synchronization process, including maintaining information identifying information on remote and resident content items at each client device 100. . The host-based embodiment provides the same benefits of increasing the effective storage capacity on the client device 100, while reducing the computation required from the client device, thereby reducing the amount of computation required from other embodiments. To improve the performance of the client device 100. The constrained content management system 600 includes the elements of the content management system 110 shown in FIG. 2 and further utilizes the storage management module 350 with the necessary data files necessary for the storage management module 350 to function properly. Will be corrected as follows. Within the constrained content management system, the metadata server 212, block server 214, notification server 216, data store 218, pending block table 220, and namespace table 222 are implemented in a manner similar to that implemented in the content management system 110. Function. Further, the storage management module 350 functions in a similar manner as when resident on the client device, and operates to determine when storage space limits are exceeded and to create placeholder items appropriately. Storage management module 350 also operates to receive information from client device 100 about requests made by operating system 380. When a request is made to open one or more content items, information about the request is sent by the storage management module 350 to the remotely-monitoring content management system 110, thereby providing the placeholder item on the client device 100 with a placeholder item. The necessary downloads to provide access are made. Storage management module 350 uses client configuration file 610 to provide information about the storage configuration on each client device associated with the constrained content management system. The synchronization table 620 is a record of all content items on the client device requesting synchronization with the constrained content management system 600, some of the content items being placeholder items and metadata synchronization. Only the content items included in this table are a subset of the content items located in the data store 218 because only those items are needed. Further, in this embodiment, the synchronization table 620 includes both a resident file table 362 and a remote file table 366 configured to indicate the client device 100 where each content item is to be held or resident remotely. May be replaced by using For embodiments using the latter configuration, implementing metadata synchronization for placeholder items is easier if the placeholder items are identified directly in the remote file table 366 of each client device 100. . The user data 630 is stored on the constrained content management system 600, which allows the storage management module 350 to determine a neglected content item.

[0099]図7は、ホスト管理の制約付きのストレージ同期のプロセスの一実施形態を示す相互作用図である。クライアントデバイス100上のアプリケーションは、コンテンツアイテムについて、クライアントデバイス上で同期されるフォルダに保存されるように要求する(700)。ストレージカーネル拡張部は、要求ID、ファイルパス、及びコンテンツアイテムのサイズを記録し(702)、当該情報をクライアントアプリケーション200へ転送する(704)。クライアントアプリケーション200は、制約付きのコンテンツ管理システム600上のストレージ管理モジュール350へコンテンツアイテムのサイズ情報を転送する(706)。ストレージ管理モジュール350は、クライアント構成ファイル610からコンテンツアイテムサイズを受信した特定のクライアントについてストレージ制限を要求する(708)。ストレージ管理モジュール350は、クライアントデバイス100上に常駐する他のコンテンツアイテムに追加したサイズを、クライアント構成ファイル610から受信したストレージ割り当てと比較することによって、ストレージ制限が超過するかどうかを判定する(712)。ストレージ管理モジュール350は、同期テーブル620からクライアント上のコンテンツデータを要求し(714)、これにより、クライアント上の同期されたコンテンツアイテムから、クライアントから削除されるコンテンツアイテムが選択されうる。同期テーブルは特定のクライアントについての同期されるコンテンツデータを応答する(716)。ストレージ管理モジュール350は、LRAコンテンツアイテムを決定するために使用するホストデバイス上に格納されたユーザデータ630からユーザアクセスデータを要求する(718)。当該データはすぐにユーザデータテーブル630から受信される(820)。ストレージ管理モジュール350は、LRAコンテンツアイテムを決定し(722)、必要なストレージスペースを提供するために、クライアントから削除されるべきそれらを選択する(724)。ストレージ管理モジュール350は、コンテンツアイテム削除し、プレースホルダアイテムを作成する(728)要求をクライアントアプリケーション200に送信する。コンテンツアイテムを保存する元の要求700を完了するために、クライアントアプリケーション200に許可を与える(730)。最後に、ストレージ管理モジュールは、保存したコンテンツアイテムへの第1のコンテンツアイテムへのアクセスを反映するようにユーザデータを更新し(732)、その後、新たなコンテンツアイテムがアップロードするのに利用可能であるため、メタデータサーバ212からクライアントデバイス100の同期を要求する(734)。   [0099] FIG. 7 is an interaction diagram illustrating one embodiment of a process for storage synchronization with host management constraints. The application on the client device 100 requests the content item to be stored in a folder that is synchronized on the client device (700). The storage kernel extension records the request ID, the file path, and the size of the content item (702), and transfers the information to the client application 200 (704). The client application 200 transfers the size information of the content item to the storage management module 350 on the constrained content management system 600 (706). The storage management module 350 requests storage restrictions for the particular client that received the content item size from the client configuration file 610 (708). Storage management module 350 determines whether the storage limit is exceeded by comparing the size added to other content items residing on client device 100 with the storage allocation received from client configuration file 610 (712). ). The storage management module 350 requests content data on the client from the synchronization table 620 (714), so that content items to be deleted from the client can be selected from the synchronized content items on the client. The synchronization table responds with synchronized content data for the particular client (716). The storage management module 350 requests user access data from the user data 630 stored on the host device used to determine the LRA content item (718). The data is immediately received from the user data table 630 (820). Storage management module 350 determines LRA content items (722) and selects them to be removed from the client (724) to provide the required storage space. The storage management module 350 sends a request to the client application 200 to delete the content item and create a placeholder item (728). Authorization is provided to the client application 200 to complete the original request 700 to save the content item (730). Finally, the storage management module updates the user data to reflect access to the first content item to the saved content item (732), after which a new content item is available for upload. Therefore, the metadata server 212 requests synchronization of the client device 100 (734).

[00100]図8は、制約付きの同期を提供するコンテンツ管理システムと連携して動作するクライアントデバイス100のユーザインタフェースの一例を示す。同期ファイルフォルダ800は、共有コンテンツストレージディレクトリ120のように動作する。フォルダ800は、それぞれが対応するアイコン810A(.m4a音楽ファイル)、810B(.xlsxスプレッドシート)、810C(.docxワード処理ファイル)、810D(.mat Matlabファイル)、及び810E(jpg画像ファイル)で表される、多数のコンテンツアイテムを含む。各アイコン810は、コンテンツアイテムのストレージ状態を示す状態アイコン820で重畳される。   [00100] FIG. 8 illustrates an example of a user interface of a client device 100 that operates in conjunction with a content management system that provides constrained synchronization. The synchronization file folder 800 operates like the shared content storage directory 120. Folder 800 contains corresponding icons 810A (.m4a music file), 810B (.xlsx spreadsheet), 810C (.docx word processing file), 810D (.mat Matlab file), and 810E (jpg image file). Contains a number of content items, which are represented. Each icon 810 is superimposed with a status icon 820 indicating the storage status of the content item.

[00101]状態アイコン820A(”チェックアイコン”)は、コンテンツアイテムがクライアントデバイス100上に現在常駐しており、コンテンツ管理システム110によって保持されるコンテンツアイテムの現在のバージョンで同期されていることを示す。   [00101] Status icon 820A ("check icon") indicates that the content item is currently resident on client device 100 and is synchronized with the current version of the content item maintained by content management system 110. .

[00102]状態アイコン820Bは、コンテンツ管理システムとの同期が完了すると、コンテンツアイテムがクライアントデバイス100上に常駐されることを示す。   [00102] Status icon 820B indicates that the content item is resident on client device 100 upon completion of synchronization with the content management system.

[00103]状態アイコン820Cは、コンテンツアイテムがプレースホルダアイテムであり、クライアントデバイス上に現在常駐していないが、依然としてコンテンツ管理システム110上には保持されていることを示す。   [00103] Status icon 820C indicates that the content item is a placeholder item and is not currently resident on the client device, but is still retained on content management system 110.

[00104]状態アイコン820Dは、コンテンツアイテムがクライアントデバイス上に常駐しており、コンテンツ管理システム110によって保持されるそのバージョンで同期されていることを示す。さらに、ピンアイコン840を有する緑色の丸印は、コンテンツアイテムがストレージ制限中のクライアントデバイス800上に常駐したままにすることが選択されたことを示す。   [00104] Status icon 820D indicates that the content item is resident on the client device and synchronized with its version maintained by content management system 110. Additionally, a green circle with a pin icon 840 indicates that the content item has been selected to remain resident on the storage-restricted client device 800.

[0100]図9は、クライアントデバイスにリモートでの特定のコンテンツアイテムへのユーザアクセスを予測し、当該アクセスに先立って、予測したコンテンツアイテムをダウンロードする、制約付きの同期の代替の実施形態を示す概念図である。当該アプローチは、コンテンツ管理システム110からネットワークを介してコンテンツアイテムを取り出す際のユーザの待機時間をほとんどの場合において除去することによって、クライアントデバイスの動作においてさらなる改良を提供する。保存スコア900は、共有コンテンツストレージディレクトリ120内で各コンテンツアイテム140について算出される。当該スコアは、以下で説明するように、コンテンツアイテムの予測される重要度の尺度であり、最新のアクセス時刻、又はユーザの要求が予期されると判定された多くの他の要因の関数として算出されうる。さらに、各コンテンツストレージディレクトリ120は、ユーザによって指定された又は所定値で設定された保存スコア閾値で構成される。同じコンテンツアイテムの保存スコア900によって測定されるように、コンテンツアイテムの予測された重要度が、コンテンツアイテムへのアクセスを有するクライアントデバイス100上の特定の共有コンテンツストレージディレクトリ120の保存スコア閾値910を超えるたびに、コンテンツアイテムは、クライアントデバイスにリモートである場合には、共有コンテンツストレージディレクトリにダウンロードされ、クライアントデバイスに常駐している場合には共有コンテンツディレクトリで保持される。   [0100] FIG. 9 illustrates an alternative embodiment of constrained synchronization that predicts user access to a particular content item remotely at a client device and downloads the predicted content item prior to the access. It is a conceptual diagram. This approach provides a further improvement in the operation of the client device by almost always eliminating the user's latency in retrieving content items from the content management system 110 over the network. The storage score 900 is calculated for each content item 140 in the shared content storage directory 120. The score is a measure of the expected importance of the content item, as described below, and is calculated as a function of the time of the last access or a number of other factors that determine that the user's request is expected. Can be done. Further, each content storage directory 120 is configured with a storage score threshold specified by the user or set by a predetermined value. The predicted importance of the content item exceeds the retention score threshold 910 of the particular shared content storage directory 120 on the client device 100 having access to the content item, as measured by the retention score 900 of the same content item. Each time, the content item is downloaded to the shared content storage directory if it is remote to the client device and held in the shared content directory if it is resident on the client device.

[0101]段階9.1は、コンテンツアイテムへのユーザアクセスを予測する、コンテンツ管理システムの典型的な状態を示す。この図例において、コンテンツ管理システム110は、2つのクライアントデバイス100A及び100Bを管理している。共有コンテンツストレージディレクトリ120A及び120Bがそれぞれのクライアントデバイス内に配置される。共有コンテンツストレージディレクトリ120Aは、コンテンツアイテム140A、140B及び140Cを格納し、一方、共有コンテンツストレージディレクトリ120Bは、コンテンツアイテム140Dと、コンテンツアイテム140Aのシャドウアイテム表現160Aを格納する。全てのコンテンツアイテム140の同期バージョンは、コンテンツ管理システム110に格納される。   [0101] Step 9.1 illustrates a typical state of a content management system that predicts user access to content items. In this example, the content management system 110 manages two client devices 100A and 100B. Shared content storage directories 120A and 120B are located within each client device. Shared content storage directory 120A stores content items 140A, 140B and 140C, while shared content storage directory 120B stores content item 140D and shadow item representation 160A of content item 140A. Synchronized versions of all content items 140 are stored in content management system 110.

[0102]さらに、各コンテンツアイテム140は、対応する保存スコア900を有し、900Aはコンテンツアイテム140Aの保存スコアであり、900Bはコンテンツアイテム140Bの保存スコアである。各共有コンテンツストレージディレクトリはまた、保存スコア閾値910で構成され、910Aは共有コンテンツストレージディレクトリ120Aについての保存スコア閾値であり、910Bは共有コンテンツストレージディレクトリ120Bについての保存スコア閾値である。   [0102] Further, each content item 140 has a corresponding retention score 900, where 900A is the retention score of content item 140A and 900B is the retention score of content item 140B. Each shared content storage directory is also configured with a storage score threshold 910, where 910A is a storage score threshold for the shared content storage directory 120A and 910B is a storage score threshold for the shared content storage directory 120B.

[0103]段階9.1において、コンテンツアイテム140Aは、共有コンテンツストレージディレクトリ120Bにおいては保持されない。この場合、保存スコア閾値910よりも低い保存スコア900を有する共有コンテンツストレージディレクトリ120内に存在するコンテンツアイテムは存在しないが、このシナリオは、前述又は後述する、他の実施形態の特徴が本実施形態に加えて使用される可能性がある。例えば、ストレージ割り当てが依然として影響しているため、ストレージ割り当てが十分に大きい場合に、保存スコア900が保存スコア閾値910より低い場合であってもリモートでファイルを維持する必要はないかもしれない。   [0103] In step 9.1, the content item 140A is not retained in the shared content storage directory 120B. In this case, there is no content item present in the shared content storage directory 120 that has a storage score 900 lower than the storage score threshold 910, but this scenario is similar to that of the other embodiments described above or below. Could be used in addition to For example, if the storage allocation is sufficiently large, it may not be necessary to remotely maintain the file even if the storage score 900 is lower than the storage score threshold 910 because the storage allocation is still affecting.

[0104]段階9.2において、クライアントデバイス100Aのユーザは、コンテンツアイテム140Aへのアクセスと見なされる当該コンテンツアイテム140Aについてのユーザアクション920を実行する。本例において、保存スコア900が最新のアクセス時刻の関数として計算されるため、コンテンツアイテム140Aの保存スコア900Aは20から60に増やされる(本変更の大きさは本例の目的について任意である。保存スコアの計算についての詳細は後述するが、同じスコアへの変更とならない可能性もある。)。   [0104] At step 9.2, the user of the client device 100A performs a user action 920 on the content item 140A that is considered access to the content item 140A. In this example, the storage score 900A of the content item 140A is increased from 20 to 60 because the storage score 900 is calculated as a function of the latest access time (the magnitude of this change is arbitrary for the purpose of this example). The details of calculating the storage score will be described later, but there is a possibility that the score will not be changed to the same score.)

[0105]段階9.3において、コンテンツ管理システム110、又は、いくつかの実施形態においてクライアント100Bのクライアントアプリケーションは、コンテンツアイテム140Aの保存スコア900Aが、コンテンツアイテム140Aがリモートである共有コンテンツストレージディレクトリ120Bの保存スコア閾値910B以上であるかどうかを判定する。保存スコア900Aが保存スコア閾値910Bを超えているため、コンテンツアイテム140Aがクライアントデバイス100Bにダウンロードされ、共有コンテンツストレージディレクトリ120Bに格納される。   [0105] At step 9.3, the content management system 110 or, in some embodiments, the client application of the client 100B, may determine that the storage score 900A of the content item 140A is a shared content storage directory 120B where the content item 140A is remote. Is determined to be not less than the storage score threshold value 910B. Since the storage score 900A exceeds the storage score threshold 910B, the content item 140A is downloaded to the client device 100B and stored in the shared content storage directory 120B.

[0106]上記UCSMと同様に、多くの保存スコア計算方法がある。通常、保存スコアはユーザの行動属性に対して正規化されえ、結果として同じコンテンツアイテムに対する保存スコアが各クライアントデバイスで異なるか、或いは、スコアが各クライアントデバイスで同じとなるようにグローバル化される。正規化された保存スコアの利点は、ユーザの行動の差分を平均化することにある。例えば、保存スコアが現在時刻と最新アクセス時刻との時間差が減少するにつれて増加するような、コンテンツアイテムの最新のアクセス時刻の関数である場合、あまりアクティブでないユーザと共有されるコンテンツアイテムと比較すると、よりアクティブなユーザは、当該ユーザと共有されるコンテンツアイテムの保存スコアを押し上げることとなる。アクティブなユーザとアクティブでないユーザの両方と共有する第3のユーザについて、保存スコアが正規化されていない場合、アクティブユーザによる最近のアクセスがアクティブでないユーザによる最近のアクセスよりも第3のユーザによるアクセスの予測が少ないにもかかわらず、アクティブユーザからのアイテムのみが最も高い保存スコアを有するようになるため、保存スコアはそれらの予測品質を失うことになる。保存スコアが正規化される際には、特定のユーザ又は特定のコンテンツアイテムの属性に正規化されうる。   [0106] Similar to the UCSM above, there are many conservation score calculation methods. Typically, the storage score can be normalized to the user's behavioral attributes, resulting in a different storage score for the same content item on each client device, or globalization such that the score is the same on each client device. . The advantage of the normalized preservation score lies in averaging differences in user behavior. For example, if the retention score is a function of the content item's latest access time, such that it increases as the time difference between the current time and the latest access time decreases, then compared to a content item that is shared with less active users, A more active user will boost the retention score of content items shared with that user. For a third user that is shared with both active and inactive users, recent access by the active user is higher than recent access by the inactive user if the retention score is not normalized. The saved scores will lose their prediction quality because only items from active users will have the highest saved scores, despite the low predictions of. When the storage score is normalized, it may be normalized to the attributes of a particular user or a particular content item.

[0107]以下の方法は、保存スコア、或いは、コンテンツアイテムへのユーザアクセスを予測するスコアを決定するための方法の例示である。さらに、保存スコアは、後述する複数の方法の組み合わせを使用して、予測される重要度の最も予測的な尺度を作成してもよい。典型的には、保存スコアはコンテンツアイテムの予測される重要度が増す場合に増加するものの、しかしながら、本実施形態について都合が良いのであればその反対もまた真となる。この場合、対応する保存スコア閾値が最小値となり、コンテンツアイテムの保存スコアが保存スコア閾値以下の場合に対応する共有コンテンツストレージディレクトリにダウンロードされることになる。本開示の目的のため、増加させる保存スコアをデフォルトケースとして以下では想定している。   [0107] The following method is an example of a method for determining a storage score or a score that predicts user access to a content item. In addition, the preservation score may use the combination of multiple methods described below to create the most predictive measure of predicted importance. Typically, the retention score increases as the predicted importance of the content item increases, however, the opposite is also true if it is convenient for this embodiment. In this case, the corresponding storage score threshold becomes the minimum value, and when the storage score of the content item is equal to or less than the storage score threshold, the content item is downloaded to the corresponding shared content storage directory. For the purposes of this disclosure, the following presupposes an increasing conservation score as the default case.

[0108]最新のアクセススコアリング:最新のアクセススコアリングでは、コンテンツアイテムの保存スコアは、当該コンテンツアイテムの最新アクセス時刻の関数である。保存スコアは単に、現在時刻と最新アクセス時刻との秒での差分の逆数であってもよい:
RS = 1 / (tC - tA)
ここで、RSは保存スコアであり、tCは現在時刻であり、tAは最新アクセス時刻である。
[0108] Latest Access Scoring: In latest access scoring, the storage score of a content item is a function of the latest access time of the content item. The save score may simply be the reciprocal of the difference in seconds between the current time and the last access time:
RS = 1 / (t C -t A )
Here, RS is a conservation score, t C is the current time, t A is the latest access time.

[0109]特定の実施形態において正規化が必要となる場合、所定時間期間内の特定のユーザ又は特定のクライアントデバイスによる任意の共有コンテンツアイテムへのアクセス数として定義される、ユーザの又はクライアントデバイスのアクセス頻度などの種々のユーザ属性が使用されてもよい。或いは、特定のユーザ又はクライアントデバイスで共有される複数のコンテンツアイテムの平均最新アクセス時刻が使用されてもよい。   [0109] If normalization is required in a particular embodiment, the user's or client device's defined as the number of accesses to any shared content item by a particular user or a particular client device within a predetermined time period. Various user attributes, such as access frequency, may be used. Alternatively, the average last access time of multiple content items shared by a particular user or client device may be used.

[0110]アクセス頻度スコアリング:アクセス頻度スコアリングでは、所定時間期間内に同一のコンテンツアイテムへのアクセス数の増加に伴って、コンテンツアイテムの保存スコアは増加する。アクセス頻度スコアリングを正規化するために、所定のコンテンツアイテムに対するアクセス頻度は、クライアントデバイス上の又はユーザと共有される全てのコンテンツアイテムについての平均アクセス頻度によって、除算されるか、或いはその反対で拡大されてもよい。   [0110] Access Frequency Scoring: In access frequency scoring, the storage score of a content item increases as the number of accesses to the same content item within a predetermined time period increases. To normalize access frequency scoring, the access frequency for a given content item is divided by the average access frequency for all content items on the client device or shared with the user, or vice versa. It may be enlarged.

[0111]ロケーション(場所)関連のアクセススコアリングロケーション関連のアクセススコアリングでは、第1のコンテンツアイテムの保存スコアは、当該コンテンツアイテム自身の最新アクセス時刻、アクセス頻度、又は任意の他の特性と、第1のコンテンツアイテムと同じフォルダに格納される追加のコンテンツアイテムの同様の特性との重み付けされた組み合わせである。これは、フォルダ内のコンテンツアイテムへのアクセスが同一のフォルダ内の他のコンテンツアイテムへのアクセスの予測となることを意味している。   [0111] Location-related access scoring In location-related access scoring, the storage score of a first content item is determined by the content item's own latest access time, access frequency, or any other characteristic: A weighted combination with similar properties of additional content items stored in the same folder as the first content item. This means that access to a content item in a folder is a prediction of access to another content item in the same folder.

[0112]類似アクセススコアリング類似アクセススコアリングでは、第1のコンテンツアイテムの保存スコアは、当該コンテンツアイテム自身の最新アクセス時刻、アクセス頻度と、第1のコンテンツアイテムと類似の属性を有する追加のコンテンツアイテムの同様の特性との重み付けされた組み合わせである。属性は、コンテンツアイテムの種別、サイズ、場所、当該コンテンツアイテムへのアクセスを有するユーザ等である。これは、類似のコンテンツアイテムへのアクセスが当該コンテンツアイテムへの他のアクセスの予測となることを意味している。   [0112] Similar access scoring In similar access scoring, the storage score of the first content item is the content item's own latest access time, access frequency, and additional content having attributes similar to the first content item. A weighted combination with similar characteristics of the item. The attributes include the type, size, and location of the content item, and a user who has access to the content item. This means that an access to a similar content item is a prediction of another access to the content item.

[0113]基準ベースの保存スコアリング:基準ベースの保存スコアリングでは、コンテンツアイテムの保存スコアは、コンテンツアイテムによって満足される、以前に特定された予測基準の数に基づくものである。例えば、24時間以内の他のユーザによるコンテンツアイテムのアクセス、先週の5アクセスよりも大きいアクセス頻度、及び、最近3日以内での十分に類似したコンテンツアイテムへのアクセスが全て、次の6時間でリモートコンテンツアイテムにアクセスを試みる予測となる所定の基準となってもよい。従って、コンテンツアイテムの保存スコアは、コンテンツアイテムによって満足される基準のそれぞれについての所定の大きさによって増加してもよい。特定の基準を満足したことに対する増加する大きさは、特定の基準の予測強度に比例してもよい。   [0113] Criteria-based retention scoring: In criteria-based retention scoring, the retention score of a content item is based on the number of previously identified prediction criteria satisfied by the content item. For example, access to content items by other users within 24 hours, access frequency greater than 5 accesses last week, and access to sufficiently similar content items within the last 3 days are all within the next 6 hours. It may be a predetermined criterion that is predictive of attempting to access a remote content item. Accordingly, the storage score of the content item may be increased by a predetermined magnitude for each of the criteria satisfied by the content item. The increasing magnitude for satisfying a particular criterion may be proportional to the expected strength of the particular criterion.

[0114]図10は、制約付きの同期のための予測されたコンテンツアイテムの重要度を用いるコンテンツ管理システムのシステム環境を示す図である。図10に示される制約付きコンテンツ管理システムのモジュールの大部分は、前述の記載を除いて、図6を参照して説明したそれらの類似の又は同一の機能を実行する。従って、コンテンツ管理システム1000内の全てのモジュールの機能について、ここでは詳細に説明しない。   [0114] FIG. 10 is a diagram illustrating a system environment of a content management system that uses predicted content item importance for constrained synchronization. Most of the modules of the constrained content management system shown in FIG. 10 perform their similar or identical functions described with reference to FIG. 6, except as described above. Therefore, the functions of all the modules in the content management system 1000 will not be described in detail here.

[0115]コンテンツ管理システム1000は、メタデータサーバ212、ブロックサーバ214、通知サーバ216、データストア218、保留ブロックテーブル220、ネームスペーステーブル222、ストレージ管理モジュール350、クライアント構成ファイル610、同期テーブル620、ユーザデータ630、保存スコアテーブル1010、及び保存スコアモジュール1020を含む。クライアント構成ファイル610及びユーザデータ630は、図6に示される前述のバージョンから重大な変更を有する。クライアント構成ファイル610は、各クライアントデバイスの各共有コンテンツストレージディレクトリについての保存スコア閾値を含むように変更される一方で、ユーザデータは使用される保存スコアリング方法に関連したユーザデータを含むように変更される。保存スコアモジュール1020は、保存スコアテーブル1010を生成するために、ユーザデータ630及びデータストア218からのデータを取り込む。保存スコアテーブルは、コンテンツ管理システム1000によって管理される各コンテンツアイテムの保存スコアを列挙するテーブルである。別個の保存スコアテーブルは、正規化が保存スコアを計算するために使用されている場合には、各クライアントデバイスについて閉じていてもよい。コンテンツアイテムの保存スコアが更新された際には、保存スコアモジュール1020は、最近変更された保存スコアに対応するコンテンツアイテムが任意のクライアントデバイス上でリモートであるかどうかと、それらのクライアントデバイスの保存スコア閾値の何れかを超えるかどうかを判定するために、クライアント構成ファイル610及び同期テーブル620を調べる。保存スコア閾値を超える場合、保存スコアモジュールは、ストレージ管理モジュール350は必要なダウンロードと、表示のシャドウアイテムの置き換えとを実行する。   [0115] The content management system 1000 includes a metadata server 212, a block server 214, a notification server 216, a data store 218, a pending block table 220, a namespace table 222, a storage management module 350, a client configuration file 610, a synchronization table 620, It includes user data 630, stored score table 1010, and stored score module 1020. The client configuration file 610 and user data 630 have significant changes from the previous version shown in FIG. The client configuration file 610 is modified to include a retention score threshold for each shared content storage directory of each client device, while the user data is modified to include user data related to the retention scoring method used. Is done. Stored score module 1020 captures user data 630 and data from data store 218 to generate stored score table 1010. The storage score table is a table listing the storage scores of each content item managed by the content management system 1000. A separate stored score table may be closed for each client device if normalization is used to calculate the stored score. When the storage score of the content item is updated, the storage score module 1020 may determine whether the content item corresponding to the recently changed storage score is remote on any client devices and the storage of those client devices. The client configuration file 610 and the synchronization table 620 are consulted to determine if any of the score thresholds are exceeded. If the storage score threshold is exceeded, the storage score module causes the storage management module 350 to perform the necessary downloads and replace the displayed shadow items.

[0116]図11は、他の実施形態に係る制約付きの同期についてのクライアントアプリケーション1100のソフトウェアアーキテクチャを示す。本実施形態は、クライアントデバイスがクライアントアプリケーションによってアイドルであると判定されている間に、リモートコンテンツアイテムのダウンロード、放置コンテンツアイテムの削除、シャドウファイルの作成の全てを行う。制約付き同期プロセスのタイミングにおける当該変更は、前述した実施形態上の機能の改善を提供することによってクライアントデバイスを改善する一方で、有効なストレージ容量の同様の増大を提供する。それらの機能を実行するために、本実施形態のトリガとなるアイドル状態は、図3に示されるシステムアーキテクチャを変更する。本実施形態において、クライアントアプリケーション1100は、同期モジュール310、保存状態モジュール1110、ファイルジャーナル360、常駐ファイルテーブル362、共有データ364、リモートファイルテーブル366、構成ファイル368、及びブロックキャッシュ370を含んで構成される。コンテンツ同期モジュール310は、さらに、ハッシングモジュール320、ダウンロードモジュール330、アップロードモジュール340、及びストレージ管理モジュール350を含んで構成される。保存状態モジュール1110は、さらに、計算モジュール1120、状態比較モジュール1130、アクションモジュール1140、及びシステム状態モジュール1150を含んで構成される。別段の指定がない限り、前述のモジュール及びデータテーブルの全ては、新たなモジュールを適合するために当業者が認識するように僅かに変更されるものの、前述したものと同じ機能を有する。任意の主要は変更について以下で説明する。   [0116] FIG. 11 shows the software architecture of the client application 1100 for constrained synchronization according to another embodiment. In the present embodiment, while the client device is determined to be idle by the client application, all of downloading the remote content item, deleting the neglected content item, and creating the shadow file are performed. Such a change in the timing of the constrained synchronization process provides a similar increase in effective storage capacity while improving the client device by providing improvements in the embodiments described above. In order to perform these functions, the idle state that triggers this embodiment changes the system architecture shown in FIG. In this embodiment, the client application 1100 includes a synchronization module 310, a storage status module 1110, a file journal 360, a resident file table 362, shared data 364, a remote file table 366, a configuration file 368, and a block cache 370. You. The content synchronization module 310 further includes a hashing module 320, a download module 330, an upload module 340, and a storage management module 350. The storage state module 1110 further includes a calculation module 1120, a state comparison module 1130, an action module 1140, and a system state module 1150. Unless otherwise specified, all of the foregoing modules and data tables have the same functions as described above, with minor modifications as those skilled in the art will recognize in order to accommodate the new module. Optional key changes are described below.

[0117]システム状態モジュール1150は、オペレーティングシステム380のシステムアクティビティを測定するためにストレージカーネル拡張部382を使用する。システムアクティビティは、限定はしないものの、プロセッサ周波数又は他のCPU利用メトリックの割合として、非アイドルプロセッサのサイクル数(複数プロセッサコアの調整の有無に関わらず)、クライアントデバイス100のスレッド数、又はプロセス数を含む、プロセスアクティビティを用いて測定することができる。ネットワークアクティビティメトリックはまた、特定のポート又は接続についての最大速度の割合として、ビット毎秒又はパケット毎秒で定義されるネットワーク利用を含んで使用されてもよい。さらに、システムアクティビティを測定するために、利用可能又はフリーのランダムアクセスメモリ(RAM)の容量を含むメモリ使用メトリックが使用されてもよい。システム状態モジュール1150は、上述したアクティビティメトリック又は任意の他の適切なアクティビティメトリックを、システム全体のアクティビティを測定するために、個別に又は組み合わせて使用してもよい。   [0117] The system state module 1150 uses the storage kernel extension 382 to measure system activity of the operating system 380. System activity may be, but is not limited to, the number of cycles of a non-idle processor (regardless of coordination of multiple processor cores), the number of threads of the client device 100, or the number of processes as a percentage of processor frequency or other CPU utilization metrics. And can be measured using process activities. The network activity metric may also be used as a percentage of the maximum rate for a particular port or connection, including network utilization defined in bits per second or packets per second. Further, memory usage metrics, including available or free random access memory (RAM) capacity, may be used to measure system activity. The system state module 1150 may use the activity metrics described above or any other suitable activity metrics, individually or in combination, to measure activity of the entire system.

[0118]システムアクティビティの測定値が所定のアクティビティ閾値を下回る場合、システム状態モジュール1150は、クライアントデバイスが現在アイドル状態であると保存スコアモジュール1110に報告する。このアクティビティ閾値はアクティビティメトリックによって定義されるように、クライアントデバイスのトータルの計算リソースの割合として定義されてもよく、或いは、アクティビティ閾値はアクティビティメトリックの特有の値として定義されてもよい。例えば、アクティビティ閾値は、利用可能な処理リソースの25%より低いものを用いる、クライアントデバイス100の状態として定義されてもよい。或いは、アクティビティ閾値は、クライアントデバイス100の他のプロセスがトータルで2GBより少ないメモリを用いる状態として、又は、クライアントデバイス上で少なくとも4GBの利用可能なトータルメモリが存在するように、定義されてもよい。   [0118] If the measure of system activity is below a predetermined activity threshold, the system state module 1150 reports to the saved score module 1110 that the client device is currently idle. The activity threshold may be defined as a percentage of the total computing resources of the client device, as defined by the activity metric, or the activity threshold may be defined as a specific value of the activity metric. For example, an activity threshold may be defined as the state of the client device 100 using less than 25% of available processing resources. Alternatively, the activity threshold may be defined as a state where other processes of the client device 100 use less than 2 GB of total memory, or such that there is at least 4 GB of available total memory on the client device. .

[0119]クライアントデバイス100がシステム状態モジュール1150によってアイドル状態であると判定されると、状態計算モジュール1120は、共有コンテンツストレージディレクトリ120の保存状態を判定する。通常、保存状態は、クライアントデバイス上に常駐するコンテンツアイテムと、それらのコンテンツアイテムに対応する属性のセットとを含んで構成される。それらの属性は、コンテンツアイテムのサイズ、最新アクセス時刻、アクセス頻度、ディレクトリ場所、又は、クライアントデバイス上での保存についてコンテンツアイテムの重要度を示す任意の他の適切な属性を含んでもよい。さらに、保存状態は、上述した属性の少なくとも1つを用いて計算された統計値のセットによって表されてもよい。   [0119] When the client device 100 is determined to be idle by the system status module 1150, the status calculation module 1120 determines the storage status of the shared content storage directory 120. Typically, the saved state comprises content items resident on the client device and a set of attributes corresponding to those content items. These attributes may include the content item's size, last access time, access frequency, directory location, or any other suitable attribute that indicates the importance of the content item for storage on the client device. Further, the storage state may be represented by a set of statistics calculated using at least one of the attributes described above.

[0120]比較モジュール1130は、状態計算モジュール1120から保存状態を受信し、その後、共有コンテンツストレージディレクトリ120の現在の保存状態を、構成ファイル368で定義された、ユーザによって指定されてもよい、所定の閾値保存状態と比較する。閾値保存状態は、属性に関連する基準のセットであってもよく、或いは、保存状態に含まれるクライアントデバイスの計算された統計値であってもよい。比較モジュール1130は、現在の保存状態が閾値保存状態の基準を満足するかどうかを判定する。これらの基準に反する(例えば、満足されない)場合、比較モジュール1130は、閾値保存状態の基準に反する属性に対応するコンテンツアイテム、又はそれらの属性に基づいて計算された統計値を、アクションモジュール1140に報告する。   [0120] The comparison module 1130 receives the storage state from the state calculation module 1120, and then determines the current storage state of the shared content storage directory 120, which may be specified by the user, as defined in the configuration file 368, Is compared with the threshold storage state. The threshold storage state may be a set of criteria associated with the attribute, or may be a calculated statistic of a client device included in the storage state. The comparison module 1130 determines whether the current storage state satisfies a threshold storage state criterion. If these criteria are violated (e.g., not satisfied), the comparison module 1130 sends to the action module 1140 the content items corresponding to the attributes that violate the threshold preservation state criteria, or statistics calculated based on those attributes. Report.

[0121]アクションモジュール1140は、比較モジュール1130からの報告を受信する。その後、保持状態を閾値保存状態の基準内に戻すためのアクションを判定する。それらのアクションは、共有コンテンツストレージディレクトリ120からコンテンツアイテムを削除することと、それらとシャドウアイテムとを置き換えること又はリモートコンテンツアイテムを表すシャドウアイテムとコンテンツアイテム自身とを置き換えることとを含んでもよい。それらのアクションが決定されると、アクションモジュール1140は、コンテンツ同期モジュール310が必要なアクションを完了するように要求する。   [0121] The action module 1140 receives the report from the comparison module 1130. Thereafter, an action for returning the holding state to the threshold storage state reference is determined. These actions may include removing the content items from the shared content storage directory 120 and replacing them with shadow items or replacing the shadow items representing remote content items with the content items themselves. Once those actions have been determined, the action module 1140 requests that the content synchronization module 310 complete the required actions.

[0122]或いは、クライアントデバイス上の計算負荷を低減し、かつ、他のユーザにおけるデバイスの利用可能性を増大する、アイドル状態をトリガとした制約付きの同期がコンテンツ管理システム自身によって行われてもよい。図12は、本タスクを完了するシステム環境を示す。制約付きのコンテンツ管理システム1200は、メタデータサーバ212、ブロックサーバ214、通知サーバ216、データストア218、保留ブロックテーブル220、ネームスペーステーブル222、ストレージ管理モジュール350、クライアント構成ファイル610、同期テーブル620、ユーザデータ630、保存状態テーブル1210、及び保存状態モジュール1220を含んで構成される。別段の指定がない限り、前述のモジュール及びデータテーブルの全ては、新たなモジュールを適合するために当業者が認識するように僅かに変更されるものの、前述したものと同じ機能を有する。任意の主要は変更について以下で説明する。   [0122] Alternatively, the idle state triggered constrained synchronization, which reduces the computational load on the client device and increases the availability of the device to other users, may be performed by the content management system itself. Good. FIG. 12 shows a system environment for completing this task. The content management system 1200 with restrictions includes a metadata server 212, a block server 214, a notification server 216, a data store 218, a pending block table 220, a namespace table 222, a storage management module 350, a client configuration file 610, a synchronization table 620, It includes user data 630, a storage state table 1210, and a storage state module 1220. Unless otherwise specified, all of the foregoing modules and data tables have the same functions as described above, with minor modifications as those skilled in the art will recognize in order to accommodate the new module. Optional key changes are described below.

[0123]本バージョンの実施形態において、コンテンツ管理システム1200に接続されるクライアントデバイス上のクライアントアプリケーション200は、クライアントデバイスの状態について、コンテンツ管理システム1200へ報告する。クライアントデバイスがアイドルである場合、コンテンツ管理システム1200は、保存状態モジュール1220を用いて、アイドルのクライアントデバイス上の共有コンテンツストレージディレクトリ120の保存状態を判定する。保存状態モジュールはその後、コンテンツ管理システム1200に接続される全てのクライアントデバイスの現在の保存状態を含む、保存状態テーブル1210を更新する。保存状態モジュール1220はその後、図11の記載で説明したように、潜在的に同様のサブモジュールを用いて、保存状態モジュール1110と同様のステップを行う。   [0123] In this embodiment, the client application 200 on the client device connected to the content management system 1200 reports the status of the client device to the content management system 1200. If the client device is idle, the content management system 1200 uses the storage status module 1220 to determine the storage status of the shared content storage directory 120 on the idle client device. The storage status module then updates the storage status table 1210, which includes the current storage status of all client devices connected to the content management system 1200. Stored state module 1220 then performs the same steps as stored state module 1110, using potentially similar sub-modules, as described in the description of FIG.

[0124]共有コンテンツストレージディレクトリの保存状態は、種々の方法を用いて判定されうる。通常、保存状態は、基準ベースであり、クライアントアプリケーションがクライアントデバイスがアイドルであると周期的に判定される場合には維持される。しかしながら、各状態がクライアントデバイスに常駐するコンテンツアイテムの属性を用いて計算された統計値によって表されるように、保存状態及び閾値保存状態を数値的に実装することも可能である。保存状態が基準ベースである場合、閾値保存状態は、共有コンテンツストレージディレクトリ内のコンテンツアイテムが満足するべき基準のセットである。さらに、基準ベースの保存状態の場合、ユーザに保存状態の基準を選択するオプションを与えてもよく、これにより、クライアントデバイスに常駐するコンテンツアイテムのカテゴリのカスタマイズが可能となる。   [0124] The storage state of the shared content storage directory may be determined using various methods. Typically, the saved state is criteria-based and is maintained if the client application periodically determines that the client device is idle. However, it is also possible to implement the save state and the threshold save state numerically, such that each state is represented by statistics calculated using attributes of the content item residing on the client device. If the storage state is criteria based, the threshold storage state is a set of criteria that content items in the shared content storage directory should satisfy. Further, in the case of criteria-based retention, the user may be provided with an option to select retention criteria, which allows for customization of categories of content items residing on the client device.

[0125]各クライアントデバイスをチェックするために使用される期間は、ユーザによって設定された、コンテンツ管理システムの所定値であってもよく、或いは、特定のクライアントデバイスの使用パターンに基づいて判定されてもよい。例えば、ユーザが平均24時間ごとにそれらのクライアントデバイス上のコンテンツアイテムにアクセスする場合、当該期間は、共有コンテンツストレージディレクトリが24時間が経過するまで維持されることを保証するように設定されてもよい。   [0125] The time period used to check each client device may be a predetermined value of the content management system set by the user, or determined based on usage patterns of a particular client device. Is also good. For example, if users access content items on their client devices on average every 24 hours, the time period may be set to ensure that the shared content storage directory is maintained until 24 hours have elapsed. Good.

[0126]共有コンテンツディレクトリを周期的にチェックする代わりに、共有コンテンツディレクトリが、例えばハードウェアストレージ制限に近い緊急性を示す第2の基準のセットを満たす場合にのみ、共有コンテンツディレクトリを維持するようにしてもよい。   [0126] Instead of periodically checking the shared content directory, maintain the shared content directory only if the shared content directory satisfies a second set of criteria indicating urgency, eg, close to hardware storage limits. It may be.

[0127]ストレージスペース基準:1つの可能性のある基準のセットは、ストレージ割り当ての基準を有することである。例えば、ストレージ割当ては、20GBに設定することができるが、上記実施形態と同様に動作する代わりに、コンテンツ管理システムは、当該デバイスがアイドルとなるまで、共有コンテンツストレージディレクトリに格納されたコンテンツアイテムが基準値(この例では20GB)を超えることを許容する。その後、放置コンテンツアイテムを判定する同様の処理が適切なコンテンツアイテムを削除し、共有コンテンツストレージディレクトリのストレージスペース基準を満足するために使用される。   [0127] Storage space criteria: One possible set of criteria is to have criteria for storage allocation. For example, the storage quota can be set to 20 GB, but instead of operating in the same manner as in the above embodiment, the content management system will allow the content item stored in the shared content storage directory until the device is idle. It is allowed to exceed a reference value (20 GB in this example). Thereafter, a similar process of determining a neglected content item is used to delete the appropriate content item and satisfy the storage space criteria of the shared content storage directory.

[0128]アクセス時刻基準第2の基準はアクセス時刻基準であってもよい。例えば、当該基準は、これまでに所定の時間間隔よりも前の最新のアクセス時刻を有するコンテンツアイテムが共有コンテンツストレージディレクトリ内に常駐することができない状態であるとしてもよい。それらのコンテンツアイテムは、クライアントデバイスがアイドルとなるまで、共有コンテンツストレージディレクトリ内にそのまま常駐することが許容されるであろう。この時点で、保存状態モジュールは、所定の時間間隔より前の最新アクセス時刻を有する全てのコンテンツアイテムの削除を単に要求するであろう。   [0128] Access Time Reference The second reference may be an access time reference. For example, the criterion may be that a content item with a latest access time earlier than a predetermined time interval cannot reside in the shared content storage directory. Those content items will be allowed to remain resident in the shared content storage directory until the client device is idle. At this point, the stored state module will simply request that all content items with the latest access time prior to the predetermined time interval be deleted.

[0129]コンテンツアイテムのサイズ基準基準のその他のセットは、コンテンツアイテムのサイズ基準である。この方法では、個々のコンテンツアイテムのサイズについて閾値が設定される。従って、デバイスがアイドルである場合には、閾値を超える又は下回る任意のコンテンツアイテムは、クライアントデバイス上での常駐から除外される。   [0129] Another set of content item size criteria is content item size criteria. In this method, a threshold is set for the size of each content item. Thus, if the device is idle, any content item above or below the threshold is excluded from resident on the client device.

[0130]アクセス頻度基準:最後に、アクセス頻度基準が、クライアントデバイス上で常駐を維持するために必要とされる所定の時間間隔内での最小のアクセス数を設定するために使用される。特定のコンテンツアイテムが十分な頻度でアクセスされない場合、アイドル状態の際に、クライアントデバイスから削除される。   [0130] Access frequency criterion: Finally, the access frequency criterion is used to set the minimum number of accesses within a predetermined time interval required to remain resident on the client device. If a particular content item is not accessed frequently enough, it will be removed from the client device when idle.

[0131]なお、保存基準のリストは完全に網羅されているわけではない。さらに、それらの基準が他のものと組み合わせて使用されることにより、より複雑な規則となるようにしてもよい。   [0131] Note that the list of preservation criteria is not completely exhaustive. Further, these criteria may be used in combination with others to provide more complex rules.

[0132]図13は、アイドル状態をトリガとした制約付きコンテンツ管理の機能を示すフローチャートである。先ず、システムは、特定のクライアントデバイスがアイドルであるかどうかを判定するチェックを行う(1300)。当該ステップは、周期的に又はコンテンツストレージディレクトリが所定の閾値に到達することに応じての何れかで行われる。デバイスがアイドルであれば、システムは、クライアントデバイスの保存状態を判定する(1310)。その後、システムは、共有コンテンツストレージディレクトリの現在の保存状態と、共有コンテンツストレージディレクトリについての保存状態基準とを比較する。基準が共有コンテンツストレージディレクトリの現在の保存状態によって満足されれば、システムは、クライアントデバイスがアイドルどうかを判定するためにチェック(1300)を再度行う。保存状態の基準に反していれば、システムは、保存状態の基準に合うように共有コンテンツストレージディレクトリに対して必要とされる、共有コンテンツストレージディレクトリ上で実行するアクション特定する(1330)。システムはその後、所定の保存状態基準に一致させるように共有コンテンツストレージディレクトリ上でそれらのアクションを実行する(1340)。   [0132] FIG. 13 is a flowchart illustrating a function of constrained content management triggered by an idle state. First, the system checks to determine whether a particular client device is idle (1300). This step is performed either periodically or in response to the content storage directory reaching a predetermined threshold. If the device is idle, the system determines the storage state of the client device (1310). Thereafter, the system compares the current storage state of the shared content storage directory with the storage state criteria for the shared content storage directory. If the criteria are satisfied by the current storage state of the shared content storage directory, the system performs a check (1300) again to determine if the client device is idle. If not, the system identifies (1330) the actions to be performed on the shared content storage directory that are required for the shared content storage directory to meet the saved status criteria. The system then performs those actions on the shared content storage directory to match the predetermined storage state criteria (1340).

<コンテンツアイテムと並行したプレースホルダアイテムの同期>
[0133]図14は、一実施形態に係るファイルジャーナル360の構造を示すブロック図である。ファイルジャーナル360は、クライアントデバイスの共有コンテンツストレージディレクトリに各コンテンツアイテム又はプレースホルダについてのエントリを含む。ファイルジャーナルは、ローカルファイルジャーナル1400と、更新ファイルジャーナル1410との2つのセクションを含む。各ジャーナルは、ファイルアイテムのリストについてのメタデータを含む(リストされたアイテムは同じアイテム又は異なるアイテムを含んでもよい。)。ローカルファイルジャーナル1400は、クライアントデバイス上に現在常駐しているアイテムのメタデータを含む。当該メタデータは、ローカルネームスペースID、ローカルジャーナルID、ローカルファイルパス、ローカルブロックリスト、ローカル拡張属性、ローカルサイズ、ローカル変更時刻、及びローカル同期種別を含んでもよい。アイテムの各バージョンは、ネームスペースID及びジャーナルIDのペアによって一意に識別される。ローカルファイルジャーナルの各フィールドについて以下で説明する。
<Synchronization of placeholder items in parallel with content items>
[0133] FIG. 14 is a block diagram illustrating a structure of the file journal 360 according to one embodiment. File journal 360 includes an entry for each content item or placeholder in the client device's shared content storage directory. The file journal includes two sections, a local file journal 1400 and an updated file journal 1410. Each journal contains metadata about a list of file items (the listed items may include the same or different items). The local file journal 1400 contains metadata for items currently resident on the client device. The metadata may include a local namespace ID, a local journal ID, a local file path, a local block list, a local extended attribute, a local size, a local change time, and a local synchronization type. Each version of an item is uniquely identified by a pair of namespace ID and journal ID. Each field of the local file journal is described below.

[0134]ローカルネームスペースID:当該アイテムに関連付けられるネームスペースを示すメタデータ値。   [0134] Local namespace ID: A metadata value indicating the namespace associated with the item.

[0135]ローカルジャーナルID:アイテムのバージョンに対応する特定のジャーナルエントリを示すメタデータ値。   [0135] Local Journal ID: A metadata value indicating a specific journal entry corresponding to the item version.

[0136]ローカルファイルパス:共有のコンテンツストレージディレクトリにおける当該アイテムの場所を示すメタデータ値。   [0136] Local file path: A metadata value indicating the location of the item in the shared content storage directory.

[0137]ローカルブロックリスト:当該アイテムを含むブロックを示すメタデータ値。   [0137] Local block list: A metadata value indicating the block containing the item.

[0138]ローカル拡張属性:当該アイテムの追加属性を含むメタデータ値。これらは、当該アイテムの最新アクセス時刻、作成時刻、又は任意の他の属性を含んでもよい。   [0138] Local Extended Attributes: Metadata values that include additional attributes for the item. These may include the last access time, creation time, or any other attributes of the item.

[0139]ローカルサイズ:当該アイテムのサイズを示すメタデータ値。当該アイテムがプレースホルダアイテムとして分類される場合、当該アイテムのローカルサイズは、プレースホルダアイテムによって表されるコンテンツのサイズである。   [0139] Local size: A metadata value indicating the size of the item. If the item is classified as a placeholder item, the local size of the item is the size of the content represented by the placeholder item.

[0140]ローカル変更時刻:当該アイテムへの最新の変更が発生した時刻を示すメタデータ値。   [0140] Local change time: A metadata value indicating the time when the latest change to the item occurred.

[0141]ローカル同期タイプ:当該アイテムがコンテンツアイテムであるか又はプレースホルダアイテムであるかを示すメタデータ値。   [0141] Local synchronization type: A metadata value indicating whether the item is a content item or a placeholder item.

[0142]更新ファイルジャーナル1410は、コンテンツ管理システム110から受信した、又は、クライアントアプリケーション200の機能によって作成された、クライアントデバイスに常駐するアイテムについての更新メタデータで追加される。特定のアイテムに対する更新がなければ、当該アイテム1400についての更新ファイルジャーナルのエントリはないであろう。更新メタデータは、更新ネームスペースID、更新ジャーナルID、更新ファイルパス、更新ブロックリスト、更新拡張属性、更新サイズ、更新変更時刻、更新同期タイプ、及び強制再構成値(force reconstruct value)を含んでもよい。   [0142] The update file journal 1410 is added with update metadata for items received from the content management system 110 or created by a function of the client application 200 and residing on the client device. Without an update for a particular item, there would be no update file journal entry for that item 1400. The update metadata may include an update namespace ID, an update journal ID, an update file path, an update block list, an update extended attribute, an update size, an update change time, an update synchronization type, and a force reconstruct value. Good.

[0143]強制再構成値を除いて、更新ファイルジャーナルエントリのフィールドはローカルファイルジャーナルエントリに対応する。ローカルファイルジャーナルエントリのエントリと更新ファイルジャーナルエントリの間の差異は、当該エントリに関連付けられたコンテンツアイテムが何らかの方法で変更されたことを示す。例えば、更新ファイルパスがローカルファイルパスと異なる場合、当該エントリと関連付けられた(当該エントリのジャーナルIDによって)アイテムがローカルファイルパスから更新ファイルパスへ移動したことを示す。   [0143] Except for forced reconfiguration values, the fields of the updated file journal entry correspond to the local file journal entry. A difference between the entry in the local file journal entry and the updated file journal entry indicates that the content item associated with the entry has been changed in some way. For example, if the update file path is different from the local file path, it indicates that the item associated with the entry (by the journal ID of the entry) has moved from the local file path to the update file path.

<クライアントデバイスからコンテンツ管理システムへのコンテンツアイテムのコミット(追加)>
[0144]図15は、コンテンツアイテムをコミットするアルゴリズムの一実施形態を示すフローチャートである。コンテンツ同期モジュール310は、1500で、共有コンテンツストレージディレクトリ120の新たなコンテンツアイテム又は変更コンテンツアイテムを検出する。変更コンテンツアイテムは、ファイルパス(又はファイルネーム)、ブロックリスト、拡張属性、サイズ、及び最新変更時刻の少なくとも1つを含む、当該コンテンツアイテムの属性の1つが変更されていることを示す。新たなコンテンツアイテムの作成とは対照的に、コンテンツ同期モジュール310が既存のコンテンツアイテムへの変更を検出すると、1510で、ローカルジャーナルIDは、競合解決の目的で当該コンテンツアイテムの保留状態を表す値(例えば、ゼロ)に設定される。
<Committing (adding) content items from the client device to the content management system>
[0144] FIG. 15 is a flowchart illustrating one embodiment of an algorithm for committing a content item. The content synchronization module 310 detects, at 1500, a new or changed content item in the shared content storage directory 120. The changed content item indicates that one of the attributes of the content item has been changed, including at least one of a file path (or file name), a block list, an extended attribute, a size, and a latest change time. When the content synchronization module 310 detects a change to an existing content item, as opposed to creating a new content item, at 1510, the local journal ID is a value representing the pending status of the content item for conflict resolution purposes. (Eg, zero).

[0145]新たなコンテンツアイテム又は変更コンテンツアイテムが検出されるとすぐに、ハッシュモジュール320は、1520で、ブロックリストを再作成する新たなブロックとして、任意の新たなデータ又は変更データのハッシュ値を計算し、当該コンテンツアイテムの任意の新な属性又は変更属性を決定する。新たなコンテンツアイテム又は変更コンテンツアイテムの当該ブロックリスト及び属性は、その後、1530で、コンテンツ管理システム110にコミットされる。クライアントデバイスは、その後、1540で、検出したコンテンツアイテムの新たなバージョン又は変更バージョンについてのネームスペース上で、新たなジャーナルIDを含むローカルファイルジャーナル1400に新たなエントリを作成するためのローカルメタデータのセットを、コンテンツ管理システム110から受信する。クライアントデバイス100は、1550で、受信したメタデータに基づいて、新たなローカルファイルジャーナルエントリを作成する。コンテンツ管理システム110は、ネームスペーステーブル222の関連付けに基づいて、新たなコンテンツアイテム又は変更コンテンツアイテムのネームスペースに関連付けられた他のクライアントデバイス100の更新ファイルジャーナル1410へ、更新エントリを伝達する。更新ファイルジャーナル1410のエントリを管理するためのアルゴリズムについては、以下で図19を参照して説明する。   [0145] As soon as a new or changed content item is detected, the hash module 320 may, at 1520, hash the hash value of any new or changed data as a new block to recreate the block list. Calculate and determine any new or changed attributes for the content item. The block list and attributes of the new or changed content item are then committed to the content management system 110 at 1530. The client device may then at 1540 create a new entry in the local file journal 1400 that includes the new journal ID in the namespace for the new or modified version of the detected content item in the local metadata. The set is received from the content management system 110. At 1550, the client device 100 creates a new local file journal entry based on the received metadata. Based on the association in the namespace table 222, the content management system 110 communicates the update entry to the update file journal 1410 of another client device 100 associated with the new or changed content item namespace. An algorithm for managing entries in the update file journal 1410 will be described below with reference to FIG.

<クライアントデバイスからコンテンツ管理システムへのプレースホルダアイテムのコミット(追加)>
[0146]図16は、プレースホルダアイテムをコミットするアルゴリズムの一実施形態を示すフローチャートである。コンテンツ同期モジュール310は、1600で、共有コンテンツストレージディレクトリの新たなプレースホルダアイテム又は変更プレースホルダアイテムを検出する。プレースホルダアイテムは、JSONディクショナリであってもよく、或いは、ネームスペースID及びジャーナルIDを含む少なくとも2つのフィールドを有する他の表現であってもよい。プレースホルダアイテムに格納される、ネームスペース及びジャーナルIDは、ローカルファイルジャーナル1400のローカルネームスペースID及びローカルジャーナルIDに対応する。プレースホルダアイテムが変更又は作成されると、対応するローカルジャーナルIDは、1610で、競合解決の目的で、当該プレースホルダアイテムにおける保留状態を表す値(例えば、0)に設定される。
<Committing (adding) placeholder items from the client device to the content management system>
[0146] FIG. 16 is a flowchart illustrating one embodiment of an algorithm for committing placeholder items. The content synchronization module 310 detects 1600 a new or changed placeholder item in the shared content storage directory. The placeholder item may be a JSON dictionary or some other expression having at least two fields including a namespace ID and a journal ID. The namespace and journal ID stored in the placeholder item correspond to the local namespace ID and local journal ID of the local file journal 1400. When a placeholder item is changed or created, the corresponding local journal ID is set at 1610 to a value (eg, 0) indicating a pending state in the placeholder item for conflict resolution purposes.

[0147]当該プレースホルダの新たな属性又は変更属性は、1620で、コンテンツ同期モジュール310によって決定される。プレースホルダアイテムへ発生しうる変更は、プレースホルダアイテムの名称変更や、プレースホルダアイテムのファイルパスの変更を含む。新たなプレースホルダアイテムの作成の結果となりうるアクションは、プレースホルダアイテムをコピーすること、又は、1つのネームスペースから他のネームスペースへコンテンツアイテムを移動することを含んでもよい。   [0147] The new or changed attributes of the placeholder are determined by the content synchronization module 310 at 1620. Possible changes to the placeholder item include a change in the name of the placeholder item and a change in the file path of the placeholder item. Actions that may result in the creation of a new placeholder item may include copying the placeholder item or moving a content item from one namespace to another.

[0148]新たな属性又は変更属性がコンテンツ同期モジュール310によって決定されると、プレースホルダアイテムのジャーナルID及びネームスペースIDは、1630で、プレースホルダアイテムの属性をコンテンツ管理システム110へコミットするために使用される。クライアントデバイスは、その後、1640で、検出したプレースホルダアイテムの新たなバージョン又は変更バージョンについてのネームスペース上で、新たなジャーナルIDを含むローカルファイルジャーナル1400に新たなエントリを作成するためのローカルメタデータのセットを、コンテンツ管理システム110から受信する。クライアントデバイス100は、1650で、受信したメタデータに基づいて、新たなローカルファイルジャーナルエントリを作成する。プレースホルダアイテム自身はまた、新たなジャーナルIDを反映するように更新される。コミットイベントに対応する更新エントリは、その後、ネームスペーステーブル222の関連付けに基づいて、新たなプレースホルダアイテム又は変更プレースホルダアイテムのネームスペースに関連付けられた他のクライアントデバイス100へ伝達される。更新ファイルジャーナル1410のエントリを管理するためのアルゴリズムについては、以下で図19を参照して説明する。   [0148] Once the new or changed attributes are determined by the content synchronization module 310, the journal ID and namespace ID of the placeholder item are 1630 to commit the placeholder item attribute to the content management system 110. used. The client device then creates, at 1640, local metadata for creating a new entry in the local file journal 1400, including the new journal ID, on the namespace for the new or changed version of the detected placeholder item. Are received from the content management system 110. At 1650, the client device 100 creates a new local file journal entry based on the received metadata. The placeholder item itself is also updated to reflect the new journal ID. The update entry corresponding to the commit event is then communicated to other client devices 100 associated with the new or changed placeholder item namespace based on the namespace table 222 association. An algorithm for managing entries in the update file journal 1410 will be described below with reference to FIG.

<クライアントデバイスでのコンテンツアイテムのプレースホルダアイテムとの置き換え>
[0149]クライアントデバイス100に常駐するコンテンツアイテムは、プレースホルダアイテムによってマークされてもよい。これは、直接的なユーザアクション、又は、意図しないコンテンツアイテムを判定するための前述した方法の1つに従った、クライアントアプリケーション200若しくはコンテンツ管理システム110の判定によって発生しうる。図17は、コンテンツアイテムをプレースホルダアイテムとを置き換えるアルゴリズムの一実施形態を示すフローチャートである。コンテンツアイテムが代理のプレースホルダアイテムとの置き換えによって特定されると、コンテンツ同期モジュール310は、1700で、更新同期タイプのフィールドを除いて、ローカルファイルジャーナル1400から更新ファイルジャーナル1410へ当該コンテンツアイテムについてのエントリをコピーする。コンテンツ同期モジュール310は、1710で、プレースホルダアイテムを示すように、エントリの更新同期タイプのフィールドを設定する。続いて、更新ファイルジャーナルエントリの強制再構成フィールドには、コンテンツアイテムの更新バージョンがオリジナルのコンテンツアイテムと同じ属性を有する事実にもかかわらず、コンテンツアイテムの再構成が必要であることをコンテンツ同期モジュール310に示す”true”が設定される。
<Replace content item with placeholder item on client device>
[0149] Content items that reside on the client device 100 may be marked with placeholder items. This may occur by direct user action or by the determination of the client application 200 or the content management system 110 according to one of the methods described above for determining unintended content items. FIG. 17 is a flowchart illustrating one embodiment of an algorithm for replacing a content item with a placeholder item. Once the content item has been identified by replacement with a proxy placeholder item, the content synchronization module 310 sends 1700 from the local file journal 1400 to the updated file journal 1410, except for the update sync type field, the Copy the entry. The content synchronization module 310 sets 1710 the entry's update synchronization type field to indicate the placeholder item. Subsequently, the content synchronization module indicates in the forced reconfiguration field of the update file journal entry that the content item needs to be reconfigured despite the fact that the updated version of the content item has the same attributes as the original content item. “True” shown at 310 is set.

<クライアントデバイスでのプレースホルダアイテムのコンテンツアイテムとの置き換え>
[0150]プレースホルダアイテムをコンテンツアイテムと置き換えるための処理は、基本的には、コンテンツアイテムを代理のプレースホルダアイテムと置き換えるための処理の逆となる。クライアントデバイス100上でコンテンツアイテムを表すプレースホルダアイテムは、コンテンツアイテムへ復元されるようにマークされてもよい。これは、直接的なユーザアクションから、又は、意図しないコンテンツアイテムを判定するための前述した方法の1つに従った、クライアントアプリケーション200若しくはコンテンツ管理システム110の判定によって発生しうる。図18は、プレースホルダアイテムをコンテンツアイテムと置き換えるアルゴリズムの一実施形態を示すフローチャートである。プレースホルダアイテムがコンテンツアイテムへの復元用に特定されると、コンテンツ同期モジュール310は、1800で、更新同期タイプのフィールドを除いて、ローカルファイルジャーナル1400から更新ファイルジャーナル1410へ当該プレースホルダアイテムについてのエントリをコピーする。コンテンツ同期モジュール310は、1810で、コンテンツアイテムを示すように、エントリの更新同期タイプのフィールドを設定する。続いて、更新ファイルジャーナルエントリの強制再構成フィールドには、プレースホルダアイテムについての更新エントリがローカルジャーナルエントリと同じ属性を有する事実にもかかわらず、プレースホルダアイテムの再構成が必要であることをコンテンツ同期モジュール310に示す”true”が設定される。
<Replacement of placeholder items with content items on client devices>
[0150] The process for replacing a placeholder item with a content item is basically the reverse of the process for replacing a content item with a proxy placeholder item. Placeholder items representing content items on client device 100 may be marked to be restored to content items. This may occur from direct user actions or by the determination of the client application 200 or the content management system 110 according to one of the methods described above for determining unintended content items. FIG. 18 is a flowchart illustrating one embodiment of an algorithm for replacing placeholder items with content items. Once a placeholder item has been identified for restoration to a content item, the content synchronization module 310 sends 1800 the local file journal 1400 to the update file journal 1410, excluding the update synchronization type field, for the placeholder item Copy the entry. Content synchronization module 310 sets 1810 an update synchronization type field of the entry to indicate the content item. Subsequently, the forced reconfiguration field of the update file journal entry indicates that the placeholder item needs to be reconfigured despite the fact that the update entry for the placeholder item has the same attributes as the local journal entry. “True” shown in the synchronization module 310 is set.

<更新機能>
[00105]図19は、更新ファイルジャーナル1410の更新エントリを受信すると、コンテンツ同期モジュール310によって実行される更新機能1900のアルゴリズムの一例を示すフローチャートである。更新機能1900は、コンテンツ管理システム110から受信された、又は、コンテンツ同期モジュール310自身によって生成された、更新ファイルジャーナルエントリを解決するためにどのような変更が行われる必要があるかを判定すべく、コンテンツ同期モジュール310によって実行される一連のステップである。更新ジャーナルは、限定はしないが、ネームスペースに関連付けられた異なるクライアントデバイスからのコミットに基づいて新たなジャーナルIDが当該ネームスペース上で作成された場合、クライアントデバイス上に常駐するコンテンツアイテムが(直接的なユーザアクションによって、又は、クライアントアプリケーション200若しくはコンテンツ管理システム110による決定によっての何れかで)置き換えられるようにマークされた場合、及び、クライアントデバイス上のコンテンツアイテムを表すプレースホルダアイテムが(直接的なユーザアクションによって、又は、クライアントアプリケーション若しくはコンテンツ管理システムの決定によっての何れかで)その表すコンテンツアイテムによって置き換えられるようにマークされた場合を含む多くの状況で作成されてもよい。
<Update function>
[00105] FIG. 19 is a flowchart illustrating an example of an algorithm of the update function 1900 executed by the content synchronization module 310 upon receiving an update entry of the update file journal 1410. The update function 1900 is to determine what changes need to be made to resolve an updated file journal entry received from the content management system 110 or generated by the content synchronization module 310 itself. , A series of steps performed by the content synchronization module 310. An update journal is not limited to a content item that resides on a client device (directly if a new journal ID is created on that namespace based on a commit from a different client device associated with the namespace). And placeholder items that represent content items on the client device (either directly by a user action or by a decision by the client application 200 or the content management system 110). To be replaced by the content item that it represents (either by an appropriate user action or by a client application or content management system decision). It may be created in a number of situations including when it is click.

[0151]コンテンツ管理ステム110は、新たなコンテンツアイテム又はコンテンツアイテムのバージョンがネームスペースに追加された場合に、新たなジャーナルIDを作成する。これが発生すると、コンテンツ管理システム110は、新たなコンテンツアイテム又はメタデータサーバ212からのコンテンツアイテムバージョンに関連付けられたメタデータを、当該ネームスペースに関連付けられるクライアントデバイス100にプッシュ送信する。送信したメタデータがクライアントデバイス100によって受信されると、コンテンツ同期モジュール310は、更新ファイルジャーナル1410のエントリとして当該メタデータを保存する。結果としてエントリの更新同期タイプは、送信したメタデータに含まれなくてもよく、代わりに、一実施形態に従ってクライアントアプリケーション200によって判定されてもよい。   [0151] The content management system 110 creates a new journal ID when a new content item or version of a content item is added to the namespace. When this occurs, the content management system 110 pushes metadata associated with the new content item or content item version from the metadata server 212 to the client device 100 associated with the namespace. When the transmitted metadata is received by the client device 100, the content synchronization module 310 saves the metadata as an entry in the update file journal 1410. As a result, the update synchronization type of the entry may not be included in the transmitted metadata and may instead be determined by the client application 200 according to one embodiment.

[0152]更新ファイルジャーナル1410のエントリとしてメタデータを保存すると、更新機能1900は、更新ファイルジャーナル1410のエントリ(アイテムの変更又は新たなバージョンを表す)と、ローカルファイルジャーナル1400に含まれるエントリとの間の差異を解決するために、以下のステップを実行する。更新機能は、まず1910で、更新ファイルジャーナルエントリの更新ファイルパスがクライアントデバイス100上に格納された任意のローカルジャーナルエントリのローカルファイルパスと等しいかどうかを判定する。同一のファイルパスを有するローカルジャーナルエントリがあれば、更新機能はその後、1920で、更新エントリの更新ジャーナルIDがローカルエントリのローカルジャーナルIDと一致するかどうかを判定することによって、更新ジャーナルエントリによって表されるアイテムがクライアントデバイス100上に配置されるアイテムの新たなバージョンであるかどうかを判定する。更新ジャーナルIDがローカルジャーナルIDと一致しなければ、コンテンツ同期モジュール310は、ローカルジャーナルエントリによって表される当該アイテムの新たなバージョンが存在することを確定し、共有ファイルパスにおいてアイテムを再構成するための処理を開始する。当該処理については図20を参照して詳細に後述する。   [0152] Upon storing the metadata as an entry in the update file journal 1410, the update function 1900 compares the entry in the update file journal 1410 (representing a change or new version of the item) with the entry contained in the local file journal 1400. Perform the following steps to resolve the differences between: The update function first determines 1910 whether the update file path of the update file journal entry is equal to the local file path of any local journal entry stored on the client device 100. If there is a local journal entry with the same file path, the update function then determines at 1920 the update journal entry by determining whether the update journal ID of the update entry matches the local journal ID of the local entry. It is determined whether the item to be updated is a new version of the item placed on the client device 100. If the updated journal ID does not match the local journal ID, the content synchronization module 310 determines that a new version of the item represented by the local journal entry exists and reconstructs the item in the shared file path. Start the process. This processing will be described later in detail with reference to FIG.

[0153]一方、コンテンツ同期モジュール310が1920で更新ジャーナルIDがローカルジャーナルIDと等しいと判定する場合、コンテンツ同期モジュール310は、1940で、強制再構成値が更新エントリについてtrueであるかどうかを判定する。強制再構成値がtrueである場合、コンテンツ同期モジュール310は、共有ジャーナルIDでアイテムを再構成するための処理を開始する。当該処理については図23を参照して詳細に後述する。   [0153] On the other hand, if the content synchronization module 310 determines in 1920 that the update journal ID is equal to the local journal ID, the content synchronization module 310 determines 1940 whether the forced reconfiguration value is true for the update entry. I do. If the forced reconfiguration value is true, the content synchronization module 310 starts a process for reconfiguring the item with the shared journal ID. This processing will be described later in detail with reference to FIG.

[0154]コンテンツ同期モジュール310が1940で強制再構成値がfalseであると判定すると、その結果、更新ジャーナルエントリは、1990で、それが重複した更新と見なされて、クライアントアプリケーション200による更なるアクションなしで、削除される。   [0154] If the content synchronization module 310 determines at 1940 that the forced reconfiguration value is false, then the update journal entry will be considered as a duplicate update at 1990, and further action by the client application 200 will be performed. Without, deleted.

[0155]ステップ1910に戻り、更新機能1900はまた、1910で、更新ファイルパスがローカルファイルジャーナル1400に格納されるエントリのいずれのローカルファイルパスも同一でないと判定する。この場合、コンテンツ同期モジュール310は、1930で、更新エントリの更新ブロックリストがローカルファイルジャーナル1400のローカルブロックリストの何れかと一致するかどうかを判定する。更新ブロックリストが固有のものであれば、その結果、更新機能1900は、更新エントリが新たなアイテムを示し、図22を参照して詳細に後述する処理に従って新たなアイテムとして当該更新アイテムを構成すると判定する。   [0155] Returning to step 1910, the update function 1900 also determines at 1910 that the update file path is not the same as any of the local file paths of the entries stored in the local file journal 1400. In this case, the content synchronization module 310 determines at 1930 whether the update block list of the update entry matches any of the local block lists in the local file journal 1400. If the update block list is unique, then the update function 1900 determines that the update entry indicates a new item and configures the update item as a new item according to the process described in detail below with reference to FIG. judge.

[0156]コンテンツ同期モジュール310が1930で更新ブロックリストがローカルファイルジャーナル1400のローカルブロックリストと一致すると判定すると、その結果、コンテンツ同期モジュールは、1950で、更新ジャーナルIDが、一致するブロックリストを有するローカルエントリのローカルジャーナルIDと一致するかどうかを判定する。それらのジャーナルIDが一致しない場合、その結果、コンテンツ同期モジュール310は、共有のブロックリストを用いてアイテムを再構成する。当該処理については図21を参照して詳細に後述する。   [0156] If the content synchronization module 310 determines at 1930 that the updated block list matches the local block list of the local file journal 1400, then the content synchronization module has, at 1950, the updated journal ID has a matching block list. It is determined whether it matches the local journal ID of the local entry. If the journal IDs do not match, then the content synchronization module 310 reconstructs the item using the shared block list. This processing will be described later in detail with reference to FIG.

[0157]一方、コンテンツ同期システムが1950で更新ジャーナルIDが、一致するブロックリストを有するローカルジャーナルエントリからのローカルジャーナルIDと一致すると判定すると、その結果、更新機能1900は、ステップ1940に戻り、上述したように進む。   [0157] On the other hand, if the content synchronization system determines in 1950 that the update journal ID matches the local journal ID from the local journal entry having the matching block list, as a result, the update function 1900 returns to step 1940 and Proceed as you did.

<共有ファイルパスにおけるアイテムの再構成>
[0158]図20は、共有ファイルパスにおいてアイテムを再構成するアルゴリズムの一実施形態を示すフローチャートである。図20によって説明されるアルゴリズムは、更新機能1900のステップ1920の否定的な判定の結果として発生する。共有ファイルパスにおいてのアイテムの再構成は、コンテンツアイテムの新たなバージョンがコンテンツ管理システム110へアップロードされた場合、又は、コンテンツアイテムが同じファイルパスに残っている場合にコンテンツアイテムがプレースホルダアイテムに変換されている場合若しくはその逆の場合に発生する。当該アルゴリズムの第1のステップは、2000で、ローカルエントリに対応するコンテンツアイテムが現在編集されていることを示す、共有のファイルパスを有するローカルファイルジャーナルエントリのローカルジャーナルIDが保留されているかどうかを判定する。対応するローカルジャーナルIDが保留されている場合、当該システムは、2005で、コンテンツアイテムへの任意の更なる変更が完了するまでと、ローカルエントリがコンテンツ管理システム110から新たなローカルジャーナルIDを受信するまで待機する。新たなジャーナルIDを受信すると、2010で、何れの変更がより最近行われたかを判定するために、更新エントリの更新された変更時刻と、ローカルエントリの新たなローカル変更時刻とが比較される。2015で、変更時刻の比較と当該アイテムに行われた特定の編集とに基づいて、競合が解決される。競合解決中に、更新ブロックリストにリストされた同一のブロックがまだ関連する場合、それらは、ダウンロードされ、共有ファイルパスに格納されるであろう。競合解決処理の結果、ローカル又は更新された変更の最終的なプロダクトとは異なるアイテムをもたらす場合、その結果、当該アイテムは、再度ハッシュ値が計算され、図15を通じて新たなブロックリストが生成される。当該アイテムへのローカルの変更が遠隔で行われた変更(更新エントリに表される)に優先する場合、その結果、当該更新エントリは、破棄されてもよい。
<Reconfiguration of items in shared file path>
[0158] FIG. 20 is a flowchart illustrating one embodiment of an algorithm for reconstructing items in a shared file path. The algorithm described by FIG. 20 occurs as a result of the negative determination of step 1920 of the update function 1900. Reconstructing an item in a shared file path may result in the content item being converted to a placeholder item when a new version of the content item is uploaded to the content management system 110 or when the content item remains on the same file path. Occurs if it is done or vice versa. The first step of the algorithm is to determine, at 2000, whether the local journal ID of the local file journal entry with the shared file path is pending, indicating that the content item corresponding to the local entry is currently being edited. judge. If the corresponding local journal ID is pending, the system receives the new local journal ID from the content management system 110 until the further modification to the content item is completed at 2005, if any. Wait until. Upon receiving the new journal ID, at 2010, the updated change time of the update entry is compared to the new local change time of the local entry to determine which changes have been made more recently. At 2015, the conflict is resolved based on the comparison of the modification times and the specific edits made to the item. During conflict resolution, if the same blocks listed in the updated block list are still relevant, they will be downloaded and stored in the shared file path. If the conflict resolution process results in an item that is different from the final product of the local or updated change, the result is that the item is hashed again and a new block list is generated through FIG. . If a local change to the item takes precedence over a remote change (represented by an update entry), then the update entry may be discarded.

[0159]ステップ2000に戻り、コンテンツ同期モジュール310は、2000で、共有ファイルパスを有するローカルエントリのローカルジャーナルIDが保留されていないと判定し、その結果、当該エントリに対応する当該アイテムが現在編集されていないことを示す。当該判定に基づいて、コンテンツ同期モジュール310は、2020で、更新された同期タイプが”プレースホルダアイテム”又は”コンテンツアイテム”に設定されているかどうかを判定する。更新同期タイプが”コンテンツアイテム”を示す場合、その結果、コンテンツ同期モジュール310は、2030で、更新ブロックリストが共有ファイルパスを有するローカルジャーナルエントリのローカルブロックリストと等しいかどうかを判定する確認を行う。2つのブロックリストが等しい場合、コンテンツ同期モジュール310は、コンテンツ管理システム110から追加のブロックをダウンロードする必要はなく、代わりに、更新ファイルジャーナル1410から更新ジャーナルエントリを削除する前に、単にローカルジャーナルエントリの属性と更新ジャーナルエントリの属性とを置き換えるだけである。   [0159] Returning to step 2000, the content synchronization module 310 determines in 2000 that the local journal ID of the local entry having the shared file path is not pending, so that the item corresponding to the entry is currently edited. Indicates that it has not been done. Based on the determination, the content synchronization module 310 determines, at 2020, whether the updated synchronization type is set to “placeholder item” or “content item”. If the update synchronization type indicates "content item", then the content synchronization module 310 performs a check at 2030 to determine whether the updated block list is equal to the local block list of the local journal entry having the shared file path. . If the two block lists are equal, the content synchronization module 310 does not need to download additional blocks from the content management system 110, but instead simply deletes the local journal entry before deleting the update journal entry from the update file journal 1410. Simply replace the attribute of the update journal entry with the attribute of the update journal entry.

[0160]2030で2つのブロックリストが異なっていると判定されると、コンテンツ同期モジュール310は、2045で、コンテンツ管理システム110から更新ブロックリストのブロックを要求する更新ブロックを受信すると、コンテンツ同期モジュール310は、2050で、受信したブロックに基づいて、共有ファイルパスにおいて更新したコンテンツアイテムを作成する。最後に、ローカルジャーナルエントリは、2055で、更新エントリが更新ファイルジャーナル1410から削除される前に、更新したジャーナルエントリと置き換えられる。   [0160] If it is determined at 2030 that the two block lists are different, the content synchronization module 310 receives an update block requesting a block of the update block list from the content management system 110 at 2045, and the content synchronization module 310 310, at 2050, creates an updated content item in the shared file path based on the received block. Finally, the local journal entry is replaced at 2055 with the updated journal entry before the updated entry is deleted from the updated file journal 1410.

[0161]ステップ2020に戻り、コンテンツ同期モジュール310が2020で、当該アイテムが”プレースホルダアイテム”になるべきことを示す更新同期タイプであると判定すると、その結果、コンテンツ同期モジュール310は、2025で、共有ファイルパスにおいて、当該アイテムのローカル同期タイプを判定する。ローカル同期タイプが当該アイテムが既にプレースホルダアイテムであることを示す場合、2035で、オリジナルのプレースホルダアイテムに置き換える、更新されたプレースホルダアイテムが、共有ファイルパスにおいて作成される。更新されたプレースホルダアイテムは、更新されたネームスペースID及びジャーナルIDについてのメタデータを含む。更新されたプレースホルダアイテムを2035で作成した後、ローカルジャーナルエントリは、2055で、更新したジャーナルエントリと置き換えられ、更新ジャーナルエントリは更新ファイルジャーナル1410から削除される。   [0161] Returning to step 2020, if the content synchronization module 310 determines in 2020 that the item is an update synchronization type indicating that it should be a "placeholder item", then the content synchronization module 310 In the shared file path, the local synchronization type of the item is determined. If the local sync type indicates that the item is already a placeholder item, at 2035 an updated placeholder item is created in the shared file path to replace the original placeholder item. The updated placeholder item includes metadata about the updated namespace ID and journal ID. After creating the updated placeholder item at 2035, the local journal entry is replaced at 2055 with the updated journal entry and the updated journal entry is deleted from the updated file journal 1410.

[0162]ステップ2025に戻り、コンテンツ同期モジュール310が、ローカル同期タイプが”コンテンツアイテム”、即ち、コンテンツアイテムを表すと判定した場合、コンテンツ同期システムは、2040で、共有ファイルパスにおけるコンテンツアイテムを、更新されたネームスペース及びジャーナルIDのペアを有するプレースホルダアイテムと置き換える。コンテンツアイテムが2040でプレースホルダアイテムと置き換えられた後、コンテンツ同期モジュール310は、2055で、ローカルジャーナルエントリを、更新したジャーナルエントリと置き換え、更新ファイルジャーナル1410から更新ジャーナルエントリを削除する。   [0162] Returning to step 2025, if the content synchronization module 310 determines that the local synchronization type is "content item", i.e., represents a content item, the content synchronization system, at 2040, retrieves the content item in the shared file path Replace with a placeholder item having the updated namespace and journal ID pair. After the content item has been replaced with the placeholder item at 2040, the content synchronization module 310 replaces the local journal entry with the updated journal entry and deletes the updated journal entry from the updated file journal 1410 at 2055.

<共有ブロックリストでのアイテムの再構成>
[0163]図21は、共有ブロックリストでアイテムを再構成するアルゴリズムの一実施形態を示すフローチャートである。図21のアルゴリズムは、更新機能1900のステップ1950の否定的な判定の結果として発生する。アイテムが共有ブロックリストの異なるファイルパスに位置するが、更新ブロックリストと同じブロックリストを有する場合、コンテンツ同期モジュール310は、アイテムを共有ブロックリストで再構成する。この状況は、アイテムが1つのファイルパスから他のファイルパスに移動した場合に発生する。
<Reorganization of items in the shared block list>
[0163] FIG. 21 is a flowchart illustrating one embodiment of an algorithm for reconstructing items in a shared block list. The algorithm of FIG. 21 occurs as a result of a negative determination in step 1950 of the update function 1900. If the item is located at a different file path in the shared block list, but has the same block list as the updated block list, the content synchronization module 310 reconstructs the item with the shared block list. This situation occurs when an item moves from one file path to another.

[0164]まず、コンテンツ同期モジュール310は、2100で、ローカルジャーナルIDが保留中かどうかを判定する。ローカルジャーナルIDが保留中であれば、コンテンツ同期モジュール310は、前述した競合解決ステップ(図21の2105、2110、2115及び図20の2005、2010、2015を参照)に進む。競合解決の結果、共有ブロックリストを有するローカルジャーナルエントリに対応するコンテンツアイテムは、更新ファイルパスへ移動されてもよく、新たなファイルパスへ移動されてもよく、或いは、当該アイテムが新たなファイルパスへ移動されたと同時にコンテンツが変更されてもよい。   [0164] First, the content synchronization module 310 determines at 2100 whether the local journal ID is pending. If the local journal ID is pending, the content synchronization module 310 proceeds to the conflict resolution step described above (see 2105, 2110, 2115 in FIG. 21 and 2005, 2010, 2015 in FIG. 20). As a result of the conflict resolution, the content item corresponding to the local journal entry having the shared block list may be moved to an updated file path, may be moved to a new file path, or the item may be moved to a new file path. The content may be changed at the same time as the content is moved to.

[0165]ローカルジャーナルIDが2100で保留中でないと判定されると、その結果、コンテンツ同期モジュール310は、2120で、更新エントリの更新同期タイプを判定する。更新同期タイプが当該更新アイテムが”コンテンツアイテム”であるべきことを示す場合、その結果、共有ブロックリストを有するコンテンツアイテムは、2125で、ローカルファイルパスから、更新ジャーナルエントリに示される更新ファイルパスへ移動される。コンテンツ同期モジュール310は、その後、2130で、ローカルジャーナルエントリを更新ジャーナルエントリと置き換え、更新ファイルジャーナル1410から更新ジャーナルエントリを削除する。   [0165] If it is determined that the local journal ID is not pending at 2100, then, at 2120, the content synchronization module 310 determines the update synchronization type of the update entry at 2120. If the update sync type indicates that the update item is to be a "content item", then the content item with the shared block list is at 2125 from the local file path to the update file path indicated in the update journal entry. Be moved. The content synchronization module 310 then replaces the local journal entry with the updated journal entry at 2130 and deletes the updated journal entry from the updated file journal 1410.

[0166]ステップ2120に戻り、コンテンツ同期モジュール310が2120で、当該更新アイテムが”プレースホルダアイテム”であることを指定する更新同期タイプであると判定する場合、コンテンツ同期モジュール310は、2135で、ローカル同期タイプと判定する。ローカル同期タイプが”コンテンツアイテム”である場合、その結果、ローカルエントリに対応し、かつ、共有ブロックリストを有するコンテンツアイテムは、2140で、更新ネームスペースID及びジャーナルIDを有するプレースホルダアイテムと置き換えられる。当該プレースホルダアイテムは、その後、更新ファイルパスによって示される位置に移動される。コンテンツアイテムをプレースホルダアイテムと置き換えると、コンテンツ同期モジュール310は、2130で、ローカルジャーナルエントリを、更新したジャーナルエントリと置き換え、更新ファイルジャーナル1410から更新ジャーナルエントリを削除する。   [0166] Returning to step 2120, if the content synchronization module 310 determines at 2120 that the update item is an update synchronization type that specifies a "placeholder item", then the content synchronization module 310 Judge as the local synchronization type. If the local sync type is "content item", then the content item corresponding to the local entry and having a shared block list is replaced at 2140 with a placeholder item having an updated namespace ID and a journal ID. . The placeholder item is then moved to the location indicated by the update file path. Upon replacing the content item with the placeholder item, the content synchronization module 310 replaces the local journal entry with the updated journal entry at 2130 and deletes the updated journal entry from the updated file journal 1410.

[0167]ローカル同期タイプが2135で”プレースホルダアイテム”であるべきと判定されると、ローカルネームスペースID及びジャーナルIDのペアを有するローカルプレースホルダアイテムは、2145で、更新ネームスペースID及びジャーナルIDのペアを有する更新プレースホルダアイテムと置き換えられる。コンテンツ同期モジュールは、その後、更新プレースホルダアイテムを更新ファイルパスに保存する。2145でローカルプレースホルダアイテムを更新プレースホルダアイテムと置き換え、プレースホルダアイテムを新たなファイルパスに再配置すると、コンテンツ同期モジュール310は、2130で、ローカルジャーナルエントリを、更新したジャーナルエントリと置き換え、更新ファイルジャーナル1410から更新ジャーナルエントリを削除する。   [0167] If the local sync type is determined to be a "placeholder item" at 2135, the local placeholder item having the local namespace ID and journal ID pair is updated at 2145 with the updated namespace ID and journal ID. Is replaced with an updated placeholder item having a pair of The content synchronization module then saves the updated placeholder item to the updated file path. After replacing the local placeholder item with the updated placeholder item at 2145 and relocating the placeholder item to a new file path, the content synchronization module 310 replaces the local journal entry with the updated journal entry at 2130 and updates the updated file. The updated journal entry is deleted from the journal 1410.

<新たなアイテムとして更新アイテムを構成>
[0168]図22は、新たなアイテムとして更新アイテムを構成するアルゴリズムの一実施形態を示すフローチャートである。図22のアルゴリズムは、更新機能1900のステップ1930の否定的な判定の結果として発生する。ローカルファイルジャーナル1400のエントリが、更新エントリの更新ファイルパス又は更新ブロックリストと一致する、ローカルファイルパス又はブロックリストを有していない場合、コンテンツ同期モジュール310は、新たなアイテムとして更新アイテムを構成する。
<Composed update items as new items>
[0168] FIG. 22 is a flowchart illustrating one embodiment of an algorithm for configuring an updated item as a new item. The algorithm of FIG. 22 occurs as a result of a negative determination in step 1930 of the update function 1900. If the entry in the local file journal 1400 does not have a local file path or block list that matches the updated file path or updated block list of the updated entry, the content synchronization module 310 configures the updated item as a new item. .

[0169]新たなアイテムを構成する場合、コンテンツ同期モジュール310は、まず、2200で、更新アイテムについての更新同期タイプを判定する。更新同期タイプがプレースホルダアイテムについてのものである場合、コンテンツ同期モジュール310は、2220で、当該更新ファイルパスにおいて、更新ネームスペースID及び更新ジャーナルIDのペアを有するプレースホルダアイテムを作成する当該更新エントリは、その後、2215で、ローカルファイルジャーナル1400へコピーされ、当該更新エントリは更新ファイルジャーナル1410から削除される。   [0169] When configuring a new item, the content synchronization module 310 first determines, at 2200, the update synchronization type for the updated item. If the update synchronization type is for a placeholder item, the content synchronization module 310 determines 2220 the update entry to create a placeholder item having an update namespace ID and update journal ID pair in the update file path. Is then copied to the local file journal 1400 at 2215, and the update entry is deleted from the update file journal 1410.

[0170]コンテンツ同期モジュール310が2200で、当該更新アイテムがコンテンツアイテムであることを示す更新同期タイプであると判定する場合、その結果、コンテンツ同期モジュール310は、2205で、コンテンツ管理システム110から更新ブロックリストによって指定されるブロックを要求する。要求したブロックを受信すると、コンテンツ同期モジュール310は、2210で、要求したブロックを用いて、更新ファイルパスにおいて更新したコンテンツアイテムを作成する。当該コンテンツアイテムが作成されるとすぐに、当該更新エントリは、その後、2215で、ローカルファイルジャーナル1400へコピーされ、当該更新エントリは更新ファイルジャーナル1410から削除される。   [0170] If the content synchronization module 310 determines at 2200 that the update item is an update synchronization type indicating that it is a content item, then the content synchronization module 310 updates the content management system 110 from the content management system 110 at 2205. Request the block specified by the block list. Upon receiving the requested block, the content synchronization module 310 creates, at 2210, the updated content item in the updated file path using the requested block. As soon as the content item is created, the update entry is then copied 2215 to the local file journal 1400 and the update entry is deleted from the update file journal 1410.

<共有ジャーナルIDでのアイテムの再構成>
[0171]図23は、共有ジャーナルIDでアイテムを再構成するアルゴリズムの一実施形態を示すフローチャートである。図23によって説明されるアルゴリズムは、更新機能1900のステップ1940の肯定的な判定の結果として発生する。強制再構成値が”true”と識別されると、共有ジャーナルIDでのアイテムの再構成が行われる。これは、更新ジャーナルエントリがコンテンツ同期モジュール310自身によって作成された場合に、共有コンテンツストレージディレクトリのアイテムがコンテンツアイテムからプレースホルダアイテムへ変換されているか、又はその逆が行われていることを意味する。
<Reorganization of item with shared journal ID>
[0171] FIG. 23 is a flowchart illustrating one embodiment of an algorithm for reconstructing an item with a shared journal ID. The algorithm described by FIG. 23 occurs as a result of a positive determination in step 1940 of the update function 1900. When the forced reconfiguration value is identified as “true”, the item is reconfigured with the shared journal ID. This means that the item in the shared content storage directory has been converted from a content item to a placeholder item, or vice versa, when the update journal entry was created by the content synchronization module 310 itself. .

[0172]まず、コンテンツ同期モジュール310は、2300で、更新エントリによって示される更新同期タイプを判定する。更新同期タイプがプレースホルダアイテムを示す場合、コンテンツ同期モジュール310は、2320で、共有ジャーナルIDを有するローカルジャーナルエントリに対応するコンテンツアイテムを、共有ネームスペースID及びジャーナルIDのペアを含むプレースホルダアイテムに置き換える。2320でコンテンツアイテムをプレースホルダアイテムへ置き換えると、ローカルファイルジャーナル1400のローカルエントリは、その後、2315で、更新エントリと置き換えられ、当該更新エントリは更新ファイルジャーナル1410から削除される。   [0172] First, at 2300, the content synchronization module 310 determines the update synchronization type indicated by the update entry. If the update synchronization type indicates a placeholder item, the content synchronization module 310 converts the content item corresponding to the local journal entry having the shared journal ID into a placeholder item that includes the shared namespace ID and journal ID pair at 2320. replace. After replacing the content item with a placeholder item at 2320, the local entry in the local file journal 1400 is then replaced at 2315 with an update entry, and the update entry is deleted from the update file journal 1410.

[0173]コンテンツ同期モジュール310が2300で、更新同期タイプがコンテンツアイテムを示すと判定する場合、コンテンツ同期モジュール310は、2305で、コンテンツ管理システム110から更新ブロックリストのブロックを要求する。要求したブロックを受信すると、コンテンツ同期モジュール310は、2310で、共有ジャーナルIDを有するローカルジャーナルに対応するプレースホルダアイテムを、要求したブロックから作成されるコンテンツアイテムと置き換える。2320でプレースホルダアイテムをコンテンツアイテムへ置き換えると、ローカルファイルジャーナル1400のローカルエントリは、その後、2315で、更新エントリと置き換えられ、当該更新エントリは更新ファイルジャーナル1410から削除される。   [0173] If the content synchronization module 310 determines at 2300 that the update synchronization type indicates a content item, then at 2305, the content synchronization module 310 requests a block of the updated block list from the content management system 110. Upon receiving the requested block, the content synchronization module 310 replaces 2310 the placeholder item corresponding to the local journal with the shared journal ID with a content item created from the requested block. After replacing the placeholder item with the content item at 2320, the local entry in the local file journal 1400 is then replaced at 2315 with the updated entry, and the updated entry is deleted from the updated file journal 1410.

[0174]本発明の実施形態に係る前述の説明は、説明の目的で提示されており;本発明を網羅する又はここで開示される同一の形態に限定することを意図していない。当業者であれば、上記開示に照らして種々の変更及び変形が可能であることを理解することができる。   [0174] The foregoing description of embodiments of the invention has been presented for purposes of illustration; it is not intended to be exhaustive or to limit the invention to the same forms disclosed herein. Those skilled in the art will appreciate that various modifications and variations are possible in light of the above disclosure.

[0175]当該記載のある部分は、情報におけるアルゴリズムと記号表現の操作に関する本発明の実施形態を説明するものである。これらのアルゴリズムに関する記載と表現は、データ処理の分野の当業者が他の当業者に効果的に本質を伝えるために通常用いられる。機能的、コンピュータ的、又は論理的に記載される一方で、これらの操作はコンピュータプログラム、同等の電気的な回路、又はマイクロコードなどによって実装されるべきであることが理解される。更に、一般性を失うこと無く、モジュールとして、これらの操作の変形に言及することが都合がよい場合もあることも証明されている。説明した動作及びそれらに関連するモジュールは、ソフトウェア、ファームウェア、ハードウェア、又はそれらの任意の組み合わせで具体化されてもよい。   [0175] Portions of the description describe embodiments of the present invention relating to the manipulation of algorithms and symbolic representations in information. The descriptions and expressions relating to these algorithms are commonly used by those skilled in the data processing arts to effectively convey the substance to others skilled in the art. While described functionally, computationally, or logically, it is understood that these operations should be implemented by computer programs, equivalent electrical circuits, or microcode, or the like. Furthermore, it has also proven convenient, without loss of generality, to refer to variants of these operations as modules. The described operations and their associated modules may be embodied in software, firmware, hardware, or any combination thereof.

[0176]ここで説明されるステップ、動作、又はプロセスのいずれかは、単独で、又は他のデバイスと組み合わせて、1以上のハードウェア又はソフトウェアモジュールで実行又は実装されてもよい。一実施形態において、ソフトウェアモジュールは、記述されたステップ、動作、又はプロセスの何れか又は全てを実行するコンピュータプロセッサによって実行されうるコンピュータプログラムコードを含むコンピュータ可読媒体を備えるコンピュータプログラム製品で実装されてもよい。   [0176] Any of the steps, operations, or processes described herein may be performed or implemented in one or more hardware or software modules, alone or in combination with other devices. In one embodiment, the software modules may also be implemented on a computer program product comprising a computer readable medium containing computer program code that can be executed by a computer processor that performs any or all of the described steps, operations, or processes. Good.

[0177]本発明の実施形態はまた、ここでの動作を実行する装置に関連する。当該装置は、必要な目的のために特別に構成することができ、及び/又は、コンピュータに格納されたコンピュータプログラムによって選択的に起動又は再構成された汎用コンピューティングデバイスを含むことができる。このようなコンピュータプログラムは、非一時的な、有形のコンピュータ可読記憶媒体、又はコンピュータシステムバスに結合することができる電子命令を格納するのに適した任意の種別の媒体に格納することができる。さらに、本明細書で言及される任意のコンピューティングシステムは、単一のプロセッサを含むことができ、或いは、コンピューティング性能を高めるために複数のプロセッサ設計を採用するアーキテクチャであってもよい。   [0177] Embodiments of the present invention also relate to an apparatus for performing the operations herein. The apparatus may be specially configured for the required purpose, and / or may include a general-purpose computing device selectively activated or reconfigured by a computer program stored on the computer. Such computer programs may be stored on non-transitory, tangible computer readable storage media, or any other type of media suitable for storing electronic instructions that can be coupled to a computer system bus. Further, any of the computing systems referred to herein may include a single processor, or may be an architecture that employs multiple processor designs to increase computing performance.

[0178]本発明の実施形態はまた、ここで説明されるコンピューティングプロセス(処理)によって生成される製品に関連してもよい。そのような製品は、非一時的な、有形のコンピュータ可読記憶媒体に情報が格納される計算プロセスから生じる情報を含むことができ、ここで記載されるコンピュータプログラム製品又は他のデータの組み合わせの任意の実施形態を含むことができる。   [0178] Embodiments of the invention may also relate to products produced by the computing processes described herein. Such products may include information resulting from a computational process in which the information is stored on a non-transitory, tangible, computer-readable storage medium, and may include any of the computer program products or other combinations of data described herein. Can be included.

[0179]最後に、明細書において使用された言葉は主に可読性及び説明の目的のために選択されたものであり、本発明の主題の輪郭を描いたり制限を加えたりするために選択されたものではない。従って、本発明の範囲は、この詳細な説明によって限定されるのではなく、ここでの記載に基づく本出願で公表される任意の請求項によって限定されることが意図される。従って、本発明の実施形態の開示は説明のためを意図したものであって、以下の請求項において明らかにされる本発明の範囲を限定するものではない。   [0179] Finally, the terms used in the specification have been selected primarily for readability and explanation purposes, and have been selected to outline or limit the subject matter of the present invention. Not something. Therefore, it is intended that the scope of the invention not be limited by this detailed description, but rather by any claims published in this application based on this description. Accordingly, the disclosure of embodiments of the invention is intended to be illustrative, and not limiting, of the scope of the invention, which is set forth in the following claims.

Claims (40)

方法であって、
ローカルファイルジャーナルをクライアントデバイスに格納することであって、前記ローカルファイルジャーナルは複数のローカルエントリを含み、前記複数のローカルエントリのそれぞれは前記クライアントデバイス上の同期アイテムと対応し、かつ、前記同期アイテムのローカルネームスペースIDと、前記同期アイテムのローカルジャーナルIDと、前記同期アイテムのローカルブロックリストと、前記同期アイテムの複数のローカル属性とを有し、各同期アイテムは前記クライアントデバイス上のコンテンツアイテム又はシャドウアイテムに対応する、ことと、
前記クライアントデバイスによって、コンテンツ管理システムから更新エントリを受信することであって、前記更新エントリはコンテンツアイテムの更新ネームスペースIDと、前記コンテンツアイテムの更新ジャーナルIDと、前記コンテンツアイテムの更新ブロックリストと、前記コンテンツアイテムの複数の更新属性と、前記コンテンツアイテムの更新同期タイプとを含む、ことと、
前記コンテンツ管理システムに格納された前記コンテンツアイテムを表す前記クライアントデバイス上のシャドウアイテムを特定するために、前記受信した更新エントリを前記ローカルファイルジャーナルの前記複数のローカルエントリと比較することであって、前記シャドウアイテムは、前記表されるコンテンツアイテムのコンテンツデータを含むことなく、少なくとも前記表されるコンテンツアイテムの前記ネームスペースID及び前記表されるコンテンツアイテムの前記ジャーナルIDを含む、ことと、
前記シャドウアイテムの前記ネームスペースIDを前記更新ネームスペースIDと置き換え、前記シャドウアイテムの前記ジャーナルIDを前記更新ジャーナルIDと置き換えることによって、前記特定したシャドウアイテムを更新することと、
前記シャドウアイテムに対応する前記ローカルエントリを前記更新エントリと置き換えることと
を含むことを特徴とする方法。
The method
Storing a local file journal on a client device, wherein the local file journal includes a plurality of local entries, each of the plurality of local entries corresponding to a sync item on the client device; and A local journal ID of the sync item, a local block list of the sync item, and a plurality of local attributes of the sync item, each sync item having a content item or Corresponding to shadow items,
Receiving, by the client device, an update entry from a content management system, the update entry comprising: an update namespace ID of the content item; an update journal ID of the content item; an update block list of the content item; Including a plurality of update attributes of the content item and an update synchronization type of the content item;
Comparing the received update entry with the plurality of local entries in the local file journal to identify a shadow item on the client device representing the content item stored in the content management system, The shadow item does not include the content data of the represented content item, and includes at least the namespace ID of the represented content item and the journal ID of the represented content item;
Updating the identified shadow item by replacing the namespace ID of the shadow item with the updated namespace ID and replacing the journal ID of the shadow item with the updated journal ID;
Replacing the local entry corresponding to the shadow item with the update entry.
請求項1に記載の方法であって、さらに、
前記更新ブロックリストと前記特定したシャドウアイテムの前記ブロックリストとの間の差異を特定する比較に基づいて、前記シャドウアイテムが前記表されるコンテンツアイテムと置き換えられるべきであることを判定することと、
前記コンテンツ管理システムから、前記コンテンツアイテムの前記更新ブロックリストによって示されるブロックをダウンロードすることと、
前記クライアントデバイスにおいて、前記シャドウアイテムを、前記ダウンロードしたブロックを含む前記表されるコンテンツアイテムと置き換えることと
を含むことを特徴とする方法。
The method of claim 1, further comprising:
Determining that the shadow item is to be replaced with the represented content item based on a comparison identifying the difference between the updated block list and the block list of the identified shadow item;
Downloading a block indicated by the updated block list of the content item from the content management system;
At the client device, replacing the shadow item with the represented content item including the downloaded block.
請求項1に記載の方法であって、さらに、
前記更新エントリと関連付けられる強制再構成値に基づいて、前記シャドウアイテムが前記表されるコンテンツアイテムと置き換えられるべきであることを判定することと、
前記コンテンツ管理システムから、前記コンテンツアイテムの前記更新ブロックリストによって示されるブロックをダウンロードすることと、
前記クライアントデバイスにおいて、前記シャドウアイテムを、前記ダウンロードしたブロックを含む前記表されるコンテンツアイテムと置き換えることと
を含むことを特徴とする方法。
The method of claim 1, further comprising:
Determining that the shadow item is to be replaced with the represented content item based on a forced reconfiguration value associated with the update entry;
Downloading a block indicated by the updated block list of the content item from the content management system;
At the client device, replacing the shadow item with the represented content item including the downloaded block.
請求項1に記載の方法であって、
前記更新エントリは更新ファイルパスを含み、前記複数のローカルエントリのそれぞれはローカルファイルパスを含み、
前記受信した更新エントリを、前記複数のローカルエントリと比較することは、さらに、前記更新ファイルパスを、前記複数のローカルエントリのぞれぞれの前記ローカルファイルパスと比較することを含むことを特徴とする方法。
The method of claim 1, wherein
The update entry includes an update file path, each of the plurality of local entries includes a local file path,
Comparing the received update entry with the plurality of local entries further comprises comparing the update file path with the local file path of each of the plurality of local entries. And how.
請求項4に記載の方法であって、さらに、
前記比較に基づいて、前記シャドウアイテムが新たなファイルパスに置き換えられるべきであることを判定することと、
前記更新ファイルパスによって特定される場所に、前記クライアントデバイス上の前記シャドウアイテムを再配置することと
を含むことを特徴とする方法。
The method of claim 4, further comprising:
Determining that the shadow item is to be replaced with a new file path based on the comparison;
Relocating the shadow item on the client device to a location identified by the update file path.
請求項1に記載の方法であって、さらに、
前記比較に基づいて、前記シャドウアイテムが前記クライアントデバイスのユーザによる変更に基づいて保留中であることを判定することと、
前記更新エントリに含まれる更新変更時刻と、前記シャドウアイテムに含まれる変更時刻とに基づいて、競合解決を行うことと
を含むことを特徴とする方法。
The method of claim 1, further comprising:
Determining, based on the comparison, that the shadow item is pending based on a change by a user of the client device;
Performing conflict resolution based on an update change time included in the update entry and a change time included in the shadow item.
請求項6に記載の方法であって、さらに、
前記シャドウアイテムの前記変更時刻が前記更新変更時刻よりも遅いとの判定に応じて、前記クライアントデバイスのユーザによる前記変更を前記コンテンツ管理システムへコミットすることと
を含むことを特徴とする方法。
The method of claim 6, further comprising:
Committing the change by the user of the client device to the content management system in response to determining that the change time of the shadow item is later than the update change time.
命令を格納する非一時的コンピュータ可読記憶媒体であって、クライアントデバイスによって実行されると、該クライアントデバイスに動作を実行させ、前記動作は、
前記クライアントデバイスによって、コンテンツ管理システムから更新エントリを受信することであって、前記更新エントリは更新ネームスペースIDと、更新ジャーナルIDと、更新ブロックリストと、複数の更新属性と、更新同期タイプとを含む、ことと、
前記受信した更新エントリを複数のローカルエントリと比較することであって、前記複数のローカルエントリのそれぞれはローカルネームスペースID、ローカルジャーナルID、ローカルブロックリスト、及び複数のローカル属性を有し、それぞれのローカルエントリは前記クライアントデバイス上のコンテンツアイテム又はシャドウアイテムと対応する、ことと、
前記比較に基づいて、前記クライアントデバイス上のシャドウアイテムを特定することであって、前記シャドウアイテムは前記コンテンツ管理システム上に格納されたコンテンツアイテムを表し、前記シャドウアイテムは、前記表されるコンテンツアイテムのコンテンツデータを含むことなく、少なくとも前記表されるコンテンツアイテムの前記ネームスペースID及び前記表されるコンテンツアイテムの前記ジャーナルIDを含む、ことと、
前記シャドウアイテムの前記ネームスペースIDを前記更新ネームスペースIDと置き換え、前記シャドウアイテムの前記ジャーナルIDを前記更新ジャーナルIDと置き換えることによって、前記特定したシャドウアイテムを更新することと、
前記シャドウアイテムに対応する前記ローカルエントリを前記更新エントリと置き換えることと
を含むことを特徴とする非一時的コンピュータ可読記憶媒体。
A non-transitory computer-readable storage medium storing instructions that, when executed by a client device, causes the client device to perform an operation, the operation comprising:
Receiving, by the client device, an update entry from a content management system, the update entry including an update namespace ID, an update journal ID, an update block list, a plurality of update attributes, and an update synchronization type. Including,
Comparing the received update entry with a plurality of local entries, each of the plurality of local entries having a local namespace ID, a local journal ID, a local block list, and a plurality of local attributes; The local entry corresponds to a content item or shadow item on the client device;
Identifying a shadow item on the client device based on the comparison, wherein the shadow item represents a content item stored on the content management system, wherein the shadow item is the represented content item Including at least the namespace ID of the represented content item and the journal ID of the represented content item, without including the content data of
Updating the identified shadow item by replacing the namespace ID of the shadow item with the updated namespace ID and replacing the journal ID of the shadow item with the updated journal ID;
Replacing the local entry corresponding to the shadow item with the update entry.
請求項8に記載の非一時的コンピュータ可読記憶媒体であって、さらに、
前記比較に基づいて、前記シャドウアイテムが前記表されるコンテンツアイテムと置き換えられるべきであることを判定することと、
前記コンテンツ管理システムから、前記更新ブロックリストによって特定されるブロックをダウンロードすることと、
前記クライアントデバイスにおいて、前記シャドウアイテムを、前記ダウンロードしたブロックを含む前記表されるコンテンツアイテムと置き換えることと
を含むことを特徴とする非一時的コンピュータ可読記憶媒体。
9. The non-transitory computer readable storage medium of claim 8, further comprising:
Determining, based on the comparison, that the shadow item is to be replaced with the represented content item;
Downloading a block specified by the updated block list from the content management system;
At the client device, replacing the shadow item with the represented content item including the downloaded block.
請求項9に記載の非一時的コンピュータ可読記憶媒体であって、
前記シャドウアイテムが前記表されるコンテンツアイテムと置き換えられるべきであることの前記判定は、前記更新エントリに関連付けられた強制再構成値に基づいて行われることを特徴とする非一時的コンピュータ可読記憶媒体。
A non-transitory computer-readable storage medium according to claim 9, wherein
The non-transitory computer-readable storage medium, wherein the determination that the shadow item is to be replaced with the represented content item is made based on a forced reconfiguration value associated with the update entry. .
請求項8に記載の非一時的コンピュータ可読記憶媒体であって、
前記更新エントリは更新ファイルパスと、ローカルファイルパスを含む前記複数のローカルエントリのそれぞれとを含み、
前記受信した更新エントリを、前記複数のローカルエントリと比較することは、さらに、前記更新ファイルパスを、前記複数のローカルエントリのぞれぞれの前記ローカルファイルパスと比較することを含むことを特徴とする非一時的コンピュータ可読記憶媒体。
A non-transitory computer readable storage medium according to claim 8, wherein:
The update entry includes an update file path and each of the plurality of local entries including a local file path;
Comparing the received update entry with the plurality of local entries further comprises comparing the update file path with the local file path of each of the plurality of local entries. Non-transitory computer-readable storage medium.
請求項11に記載の非一時的コンピュータ可読記憶媒体であって、さらに、
前記比較に基づいて、前記シャドウアイテムが新たなファイルパスに置き換えられるべきであることを判定することと、
前記更新ファイルパスによって特定される場所に、前記クライアントデバイス上の前記シャドウアイテムを再配置することと
を含むことを特徴とする非一時的コンピュータ可読記憶媒体。
The non-transitory computer readable storage medium of claim 11, further comprising:
Determining that the shadow item is to be replaced with a new file path based on the comparison;
Relocating the shadow item on the client device to a location identified by the update file path.
請求項8に記載の非一時的コンピュータ可読記憶媒体であって、さらに、
前記比較に基づいて、前記シャドウアイテムが前記クライアントデバイスのユーザによる変更に基づいて保留中であることを判定することと、
前記更新エントリに含まれる更新変更時刻と、前記シャドウアイテムに含まれる変更時刻とに基づいて、競合解決を行うことと
を含むことを特徴とする非一時的コンピュータ可読記憶媒体。
9. The non-transitory computer readable storage medium of claim 8, further comprising:
Determining, based on the comparison, that the shadow item is pending based on a change by a user of the client device;
A non-transitory computer-readable storage medium, comprising: performing conflict resolution based on an update change time included in the update entry and a change time included in the shadow item.
請求項13に記載の非一時的コンピュータ可読記憶媒体であって、さらに、
前記シャドウアイテムの前記変更時刻が前記更新変更時刻よりも遅いとの判定に応じて、前記クライアントデバイスのユーザによる前記変更を前記コンテンツ管理システムへコミットすることと
を含むことを特徴とする非一時的コンピュータ可読記憶媒体。
14. The non-transitory computer readable storage medium of claim 13, further comprising:
Committing the change by the user of the client device to the content management system in response to determining that the change time of the shadow item is later than the update change time. Computer readable storage medium.
システムであって、
プロセッサと、
命令を格納する非一時的コンピュータ可読記憶媒体であって、前記プロセッサによって実行されると、前記プロセッサに、
クライアントデバイスによって、コンテンツ管理システムから更新エントリを受信することであって、前記更新エントリは更新ネームスペースIDと、更新ジャーナルIDと、更新ブロックリストと、複数の更新属性と、更新同期タイプとを含む、ことと、
前記受信した更新エントリを複数のローカルエントリと比較することであって、前記複数のローカルエントリのそれぞれはローカルネームスペースID、ローカルジャーナルID、ローカルブロックリスト、及び複数のローカル属性を有し、それぞれのローカルエントリは前記クライアントデバイス上のコンテンツアイテム又はシャドウアイテムと対応する、ことと、
前記比較に基づいて、前記クライアントデバイス上のシャドウアイテムを特定することであって、前記シャドウアイテムは前記コンテンツ管理システム上に格納されたコンテンツアイテムを表し、前記シャドウアイテムは、前記表されるコンテンツアイテムのコンテンツデータを含むことなく、少なくとも前記表されるコンテンツアイテムの前記ネームスペースID及び前記表されるコンテンツアイテムの前記ジャーナルIDを含む、ことと、
前記シャドウアイテムの前記ネームスペースIDを前記更新ネームスペースIDと置き換え、前記シャドウアイテムの前記ジャーナルIDを前記更新ジャーナルIDと置き換えることによって、前記特定したシャドウアイテムを更新することと、
前記シャドウアイテムに対応する前記ローカルエントリを前記更新エントリと置き換えることと
を含む非一時的コンピュータ可読記憶媒体と
を備えることを特徴とするシステム。
The system
A processor,
A non-transitory computer-readable storage medium storing instructions, wherein when executed by the processor, the processor:
Receiving, by a client device, an update entry from a content management system, the update entry including an update namespace ID, an update journal ID, an update block list, a plurality of update attributes, and an update synchronization type. , That,
Comparing the received update entry with a plurality of local entries, each of the plurality of local entries having a local namespace ID, a local journal ID, a local block list, and a plurality of local attributes; The local entry corresponds to a content item or shadow item on the client device;
Identifying a shadow item on the client device based on the comparison, wherein the shadow item represents a content item stored on the content management system, wherein the shadow item is the represented content item Including at least the namespace ID of the represented content item and the journal ID of the represented content item, without including the content data of
Updating the identified shadow item by replacing the namespace ID of the shadow item with the updated namespace ID and replacing the journal ID of the shadow item with the updated journal ID;
Replacing said local entry corresponding to said shadow item with said update entry.
請求項15に記載のシステムであって、さらに、
前記比較に基づいて、前記シャドウアイテムが前記表されるコンテンツアイテムと置き換えられるべきであることを判定することと、
前記コンテンツ管理システムから、前記更新ブロックリストによって特定されるブロックをダウンロードすることと、
前記クライアントデバイスにおいて、前記シャドウアイテムを、前記ダウンロードしたブロックを含む前記表されるコンテンツアイテムと置き換えることと
を含むことを特徴とするシステム。
The system according to claim 15, further comprising:
Determining, based on the comparison, that the shadow item is to be replaced with the represented content item;
Downloading a block specified by the updated block list from the content management system;
At the client device, replacing the shadow item with the represented content item including the downloaded block.
請求項16に記載のシステムであって、
前記シャドウアイテムが前記表されるコンテンツアイテムと置き換えられるべきであることの前記判定は、前記更新エントリに関連付けられた強制再構成値に基づいて行われることを特徴とするシステム。
17. The system according to claim 16, wherein
The system of claim 11, wherein the determination that the shadow item is to be replaced with the represented content item is made based on a forced reconfiguration value associated with the update entry.
請求項15に記載のシステムであって、
前記更新エントリは更新ファイルパスと、ローカルファイルパスを含む前記複数のローカルエントリのそれぞれとを含み、
前記受信した更新エントリを、前記複数のローカルエントリと比較することは、さらに、前記更新ファイルパスを、前記複数のローカルエントリのぞれぞれの前記ローカルファイルパスと比較することを含むことを特徴とするシステム。
The system according to claim 15, wherein
The update entry includes an update file path and each of the plurality of local entries including a local file path;
Comparing the received update entry with the plurality of local entries further comprises comparing the update file path with the local file path of each of the plurality of local entries. And the system.
請求項18に記載のシステムであって、さらに、
前記比較に基づいて、前記シャドウアイテムが新たなファイルパスに置き換えられるべきであることを判定することと、
前記更新ファイルパスによって特定される場所に、前記クライアントデバイス上の前記シャドウアイテムを再配置することと
を含むことを特徴とするシステム。
19. The system of claim 18, further comprising:
Determining that the shadow item is to be replaced with a new file path based on the comparison;
Relocating the shadow item on the client device to a location identified by the update file path.
請求項15に記載のシステムであって、さらに、
前記比較に基づいて、前記シャドウアイテムが前記クライアントデバイスのユーザによる変更に基づいて保留中であることを判定することと、
前記更新エントリに含まれる更新変更時刻と、前記シャドウアイテムに含まれる変更時刻とに基づいて、競合解決を行うこととを含むことを特徴とするシステム。
The system according to claim 15, further comprising:
Determining, based on the comparison, that the shadow item is pending based on a change by a user of the client device;
Performing conflict resolution based on an update change time included in the update entry and a change time included in the shadow item.
方法であって、
クライアントデバイスによって、プレースホルダアイテムとコンテンツアイテムとを含む複数の同期アイテムを格納することと、
前記クライアントデバイスによって、複数のローカルエントリを含むローカルファイルジャーナルを格納することであって、各ローカルエントリは複数の同期アイテムの1つを表し、各ローカルエントリは前記同期アイテムのローカルジャーナルID、前記同期アイテムについてのローカルブロックリスト、前記同期アイテムの複数のローカル属性、及びローカル同期タイプを含み、前記ローカル同期タイプは前記同期アイテムがプレースホルダアイテム又はコンテンツアイテムかどうかを示す、ことと、
前記クライアントデバイスによって、コンテンツ管理システムから更新エントリを受信することであって、前記更新エントリは前記複数の同期アイテムのうちのある同期アイテムの新たなバージョンを表し、かつ、前記ある同期アイテムについての更新ジャーナルIDと、前記ある同期アイテムの更新ブロックリストと、前記ある同期アイテムの複数の更新属性と、更新同期タイプとを含む、ことと、
前記複数のローカルエントリから対応するローカルエントリを特定するために、前記受信した更新エントリを、前記複数のローカルエントリと比較することと、
前記対応するローカルエントリによって表される前記ある同期アイテムが前記対応するローカルエントリのローカル同期タイプに基づくプレースホルダアイテムであることを判定することと、
前記ある同期アイテムの前記新たなバージョンがコンテンツアイテムであることを示す前記更新同期タイプに応じて、
前記コンテンツ管理システムから前記クライアントデバイスへ、前記更新ブロックリストによって示される前記ある同期アイテムの前記新たなバージョンについてのブロックをダウンロードすることと、
前記クライアントデバイスにおいて、前記プレースホルダアイテムを、前記ダウンロードしたブロックを含む新たなコンテンツアイテムと置き換えることと、
前記ローカルファイルジャーナルにおいて、前記ある同期アイテムについての前記対応するローカルエントリを、前記同期アイテムについての前記更新エントリと置き換えることと
を含むことを特徴とする方法。
The method
Storing, by the client device, a plurality of synchronization items, including placeholder items and content items;
Storing, by the client device, a local file journal including a plurality of local entries, each local entry representing one of a plurality of synchronization items, each local entry being a local journal ID of the synchronization item, Including a local block list for the item, a plurality of local attributes of the synchronization item, and a local synchronization type, wherein the local synchronization type indicates whether the synchronization item is a placeholder item or a content item;
Receiving, by the client device, an update entry from a content management system, wherein the update entry represents a new version of a synchronization item of the plurality of synchronization items, and updating the synchronization item. Including a journal ID, an update block list of the certain synchronization item, a plurality of update attributes of the certain synchronization item, and an update synchronization type;
Comparing the received update entry with the plurality of local entries to identify a corresponding local entry from the plurality of local entries;
Determining that the certain synchronization item represented by the corresponding local entry is a placeholder item based on the local synchronization type of the corresponding local entry;
According to the update synchronization type indicating that the new version of the certain synchronization item is a content item,
Downloading blocks for the new version of the certain synchronization item indicated by the updated block list from the content management system to the client device;
At the client device, replacing the placeholder item with a new content item including the downloaded block;
In the local file journal, replacing the corresponding local entry for the certain synchronization item with the update entry for the synchronization item.
請求項21に記載の方法であって、
前記受信した更新エントリを前記複数のローカルエントリと比較することは、さらに、
前記複数のローカルエントリからの前記ローカルジャーナルID、前記ローカルブロックリスト、及び前記複数のローカル属性と、前記更新エントリの前記更新ジャーナルID、前記更新ブロックリスト、及び前記複数の更新属性とを比較することによって、前記受信した更新エントリを前記複数のローカルエントリと比較することを含むことを特徴とする方法。
22. The method according to claim 21, wherein
Comparing the received update entry with the plurality of local entries further comprises:
Comparing the local journal ID, the local block list, and the plurality of local attributes from the plurality of local entries with the update journal ID, the updated block list, and the plurality of update attributes of the update entry; Comparing the received update entry with the plurality of local entries.
請求項21に記載の方法であって、
前記対応するローカルエントリによって表される前記ある同期アイテムが前記対応するローカルエントリのローカル同期タイプに基づくプレースホルダアイテムであることを判定することは、さらに、
前記対応するローカルエントリの前記ローカルジャーナルIDが前記ある同期アイテムについての保留状態を示すかどうかを判定することと、
前記コンテンツ管理システムからの前記対応するローカルエントリについての新たなローカルジャーナルIDと、関連するローカル変更時刻とを受信することと、
前記ローカル変更時刻を、前記更新エントリと関連付けられた更新変更時刻と比較することと、
前記更新エントリによって表される前記ある同期アイテムの前記新たなバージョンと、前記対応するローカルエントリによって表される前記ある同期アイテムとの間の競合を解決することと
を含むことを特徴とする方法。
22. The method according to claim 21, wherein
Determining that the certain synchronization item represented by the corresponding local entry is a placeholder item based on the local synchronization type of the corresponding local entry,
Determining whether the local journal ID of the corresponding local entry indicates a pending state for the certain synchronization item;
Receiving a new local journal ID for the corresponding local entry from the content management system and an associated local change time;
Comparing the local change time with an update change time associated with the update entry;
Resolving a conflict between the new version of the certain synchronization item represented by the update entry and the certain synchronization item represented by the corresponding local entry.
請求項21に記載の方法であって、
前記受信した更新エントリを、前記複数のローカルエントリと比較することは、更新機能を用いて完了され、
前記更新機能は、
前記ある同期アイテムの更新ファイルパスを、前記複数のローカルエントリのそれぞれのローカルファイルパスと比較し、
前記ある同期アイテムの更新ジャーナルIDを、前記複数のローカルエントリのそれぞれの前記ローカルジャーナルIDと比較し、
前記ある同期アイテムについての更新ブロックリストを、前記複数のローカルエントリのそれぞれの前記ローカルブロックリストと比較し、
前記更新エントリに関連付けられる強制再構成値が前記同期アイテムが再構成されるべきであることを示すかどうかを判定することを特徴とする方法。
22. The method according to claim 21, wherein
Comparing the received update entry with the plurality of local entries is completed using an update function,
The update function,
Comparing an update file path of the certain synchronization item with a local file path of each of the plurality of local entries;
Comparing the update journal ID of the certain synchronization item with the local journal ID of each of the plurality of local entries;
Comparing an updated block list for the certain synchronization item with the local block list of each of the plurality of local entries;
Determining whether a forced reconfiguration value associated with the update entry indicates that the synchronization item is to be reconfigured.
請求項21に記載の方法であって、さらに、
前記コンテンツ管理システムから前記更新エントリの強制再構成値を受信することと、
前記強制再構成値が前記ある同期アイテムが再構成されるべきであることを示すことを判定することと、
前記ある同期アイテムの前記新たなバージョンがコンテンツアイテムであることを、前記更新同期タイプに基づいて判定することと、
前記コンテンツ管理システムから、前記更新ブロックリストによって示される前記ある同期アイテムの前記新たなバージョンのブロックをダウンロードすることと、
前記ある同期アイテムを、前記ダウンロードしたブロックを含む新たなコンテンツアイテムと置き換えることと、
前記対応するローカルエントリを前記更新エントリと置き換えることと
を含むことを特徴とする方法。
22. The method of claim 21, further comprising:
Receiving a forced reconfiguration value of the update entry from the content management system;
Determining that the forced reconfiguration value indicates that the certain synchronization item is to be reconfigured;
Determining that the new version of the certain sync item is a content item based on the update sync type;
Downloading a block of the new version of the certain synchronization item indicated by the update block list from the content management system;
Replacing the certain synchronization item with a new content item including the downloaded block;
Replacing the corresponding local entry with the update entry.
請求項25に記載の方法であって、
前記更新ジャーナルIDが前記ローカルジャーナルIDと一致すること、前記更新ブロックリストが前記ローカルブロックリストと一致すること、前記複数の更新属性が前記複数のローカル属性と一致することを示す、前記更新エントリと前記対応するローカルエントリとの前記比較に関わらず、前記強制再構成値は、前記ある同期アイテムが再構成されるべきであることを示すことを特徴とする方法。
The method according to claim 25, wherein
The update entry indicates that the update journal ID matches the local journal ID, the update block list matches the local block list, and the plurality of update attributes match the plurality of local attributes. Regardless of the comparison with the corresponding local entry, the forced reconfiguration value indicates that the certain synchronization item is to be reconfigured.
請求項26に記載の方法であって、
前記ある同期アイテムにういての前記複数の更新属性は、前記ある同期アイテムについての更新ファイルパスを含み、
前記複数のローカル属性は、前記クライアントデバイス上で前記ある同期アイテムについてのローカルファイルパスを含むことを特徴とする方法。
The method according to claim 26, wherein
The plurality of update attributes for the certain sync item include an update file path for the certain sync item;
The method of claim 2, wherein the plurality of local attributes include a local file path for the certain synchronization item on the client device.
方法であって、
クライアントデバイスによって、プレースホルダアイテムとコンテンツアイテムとを含む複数の同期アイテムを格納することと、
前記クライアントデバイスによって、複数のローカルエントリを含むローカルファイルジャーナルを格納することであって、各ローカルエントリは複数の同期アイテムの1つを表し、各ローカルエントリは前記同期アイテムのローカルジャーナルID、前記同期アイテムについてのローカルブロックリスト、前記同期アイテムの複数のローカル属性、及びローカル同期タイプを含み、前記ローカル同期タイプは前記同期アイテムがプレースホルダアイテム又はコンテンツアイテムかどうかを示す、ことと、
前記クライアントデバイスによって、コンテンツ管理システムから更新エントリを受信することであって、前記更新エントリは前記格納された同期アイテムのうちのある同期アイテムの新たなバージョンを表し、かつ、前記ある同期アイテムについての更新ジャーナルIDと、前記ある同期アイテムの更新ブロックリストと、前記ある同期アイテムの複数の更新属性と、更新同期タイプとを含む、ことと、
前記複数のローカルエントリから対応するローカルエントリを特定するために、前記受信した更新エントリを、前記複数のローカルエントリと比較することと、
前記対応するローカルエントリによって表される前記ある同期アイテムが前記対応するローカルエントリのローカル同期タイプに基づくコンテンツアイテムであることを判定することと、
前記ある同期アイテムの前記新たなバージョンがプレースホルダアイテムであることを示す前記更新同期タイプに応じて、
前記クライアントデバイスにおいて、前記コンテンツアイテムを、新たなプレースホルダアイテムと置き換えることと、
前記ローカルファイルジャーナルにおいて、前記対応するローカルエントリを前記更新エントリと置き換えることと
を含むことを特徴とする方法。
The method
Storing, by the client device, a plurality of synchronization items, including placeholder items and content items;
Storing, by the client device, a local file journal including a plurality of local entries, each local entry representing one of a plurality of synchronization items, each local entry being a local journal ID of the synchronization item, Including a local block list for the item, a plurality of local attributes of the synchronization item, and a local synchronization type, wherein the local synchronization type indicates whether the synchronization item is a placeholder item or a content item;
Receiving, by the client device, an update entry from a content management system, wherein the update entry represents a new version of a synchronization item of the stored synchronization items; Including an update journal ID, an update block list of the certain synchronization item, a plurality of update attributes of the certain synchronization item, and an update synchronization type;
Comparing the received update entry with the plurality of local entries to identify a corresponding local entry from the plurality of local entries;
Determining that the certain sync item represented by the corresponding local entry is a content item based on the local sync type of the corresponding local entry;
According to the update synchronization type indicating that the new version of the certain synchronization item is a placeholder item,
At the client device, replacing the content item with a new placeholder item;
Replacing the corresponding local entry with the update entry in the local file journal.
請求項28に記載の方法であって、
前記受信した更新エントリを前記複数のローカルエントリと比較することは、さらに、
前記複数のローカルエントリからの前記ローカルジャーナルID、前記ローカルブロックリスト、及び前記複数のローカル属性と、前記更新エントリの前記更新ジャーナルID、前記更新ブロックリスト、及び前記複数の更新属性とを比較することによって、前記受信した更新エントリを前記複数のローカルエントリと比較することを含むことを特徴とする方法。
29. The method according to claim 28, wherein
Comparing the received update entry with the plurality of local entries further comprises:
Comparing the local journal ID, the local block list, and the plurality of local attributes from the plurality of local entries with the update journal ID, the updated block list, and the plurality of update attributes of the update entry; Comparing the received update entry with the plurality of local entries.
請求項28に記載の方法であって、
前記対応するローカルエントリによって表される前記ある同期アイテムが前記対応するローカルエントリのローカル同期タイプに基づくプレースホルダアイテムであることを判定することは、さらに、
前記対応するローカルエントリの前記ローカルジャーナルIDが前記ある同期アイテムについての保留状態を示すかどうかを判定することと、
前記コンテンツ管理システムからの前記対応するローカルエントリについての新たなローカルジャーナルIDと、関連するローカル変更時刻とを受信することと、
前記ローカル変更時刻を、前記更新エントリと関連付けられた更新変更時刻と比較することと、
前記更新エントリによって表される前記ある同期アイテムの前記新たなバージョンと、前記対応するローカルエントリによって表される前記ある同期アイテムとの間の競合を解決することと
を含むことを特徴とする方法。
29. The method according to claim 28, wherein
Determining that the certain synchronization item represented by the corresponding local entry is a placeholder item based on the local synchronization type of the corresponding local entry,
Determining whether the local journal ID of the corresponding local entry indicates a pending state for the certain synchronization item;
Receiving a new local journal ID for the corresponding local entry from the content management system and an associated local change time;
Comparing the local change time with an update change time associated with the update entry;
Resolving a conflict between the new version of the certain synchronization item represented by the update entry and the certain synchronization item represented by the corresponding local entry.
請求項28に記載の方法であって、
前記受信した更新エントリを、前記複数のローカルエントリと比較することは、更新機能を用いて完了されることを特徴とする方法。
29. The method according to claim 28, wherein
Comparing the received update entry with the plurality of local entries is completed using an update function.
請求項28に記載の方法であって、さらに、
前記コンテンツ管理システムから前記更新エントリを受信することであって、前記更新エントリは強制再構成値を含む、ことと、
前記強制再構成値が前記ある同期アイテムが再構成されるべきであることを示すことに応じて、
前記ある同期アイテムの前記新たなバージョンがプレースホルダアイテムであることを、前記更新同期タイプに基づいて判定することと、
前記コンテンツアイテムを、新たなプレースホルダアイテムと置き換えることと、
前記対応するローカルエントリを前記更新エントリと置き換えることと
を含むことを特徴とする方法。
29. The method of claim 28, further comprising:
Receiving the update entry from the content management system, the update entry including a forced reconfiguration value,
In response to the forced reconfiguration value indicating that the certain synchronization item is to be reconfigured,
Determining that the new version of the certain sync item is a placeholder item based on the update sync type;
Replacing the content item with a new placeholder item;
Replacing the corresponding local entry with the update entry.
請求項32に記載の方法であって、
前記更新ジャーナルIDが前記ローカルジャーナルIDと一致すること、前記更新ブロックリストが前記ローカルブロックリストと一致すること、前記複数の更新属性が前記複数のローカル属性と一致することを示す、前記更新エントリと前記対応するローカルエントリとの前記比較に関わらず、前記強制再構成値は、前記ある同期アイテムが再構成されるべきであることを示すことを特徴とする方法。
The method according to claim 32, wherein
The update entry indicates that the update journal ID matches the local journal ID, the update block list matches the local block list, and the plurality of update attributes match the plurality of local attributes. Regardless of the comparison with the corresponding local entry, the forced reconfiguration value indicates that the certain synchronization item is to be reconfigured.
請求項33に記載の方法であって、
前記ある同期アイテムにういての前記複数の更新属性は、前記ある同期アイテムについての更新ファイルパスを含み、
前記複数のローカル属性は、前記クライアントデバイス上で前記ある同期アイテムについてのローカルファイルパスを含むことを特徴とする方法。
34. The method of claim 33,
The plurality of update attributes for the certain sync item include an update file path for the certain sync item;
The method of claim 2, wherein the plurality of local attributes include a local file path for the certain synchronization item on the client device.
方法であって、
クライアントデバイスによって、プレースホルダアイテムとコンテンツアイテムとを含む複数の同期アイテムを格納することと、
前記クライアントデバイスによって、複数のローカルエントリを含むローカルファイルジャーナルを格納することであって、各ローカルエントリは複数の同期アイテムの1つを表し、各ローカルエントリは前記同期アイテムのローカルジャーナルID、前記同期アイテムについてのローカルブロックリスト、前記同期アイテムの複数のローカル属性、及びローカル同期タイプを含み、前記ローカル同期タイプは前記同期アイテムがプレースホルダアイテム又はコンテンツアイテムかどうかを示す、ことと、
前記クライアントデバイスによって、コンテンツ管理システムから更新エントリを受信することであって、前記更新エントリは前記格納された同期アイテムのうちのある同期アイテムの新たなバージョンを表し、かつ、前記ある同期アイテムについての更新ジャーナルIDと、前記ある同期アイテムの更新ブロックリストと、前記ある同期アイテムの複数の更新属性と、更新同期タイプとを含む、ことと、
前記複数のローカルエントリから対応するローカルエントリを特定するために、前記受信した更新エントリを、前記複数のローカルエントリと比較することと、
前記対応するローカルエントリによって表される前記ある同期アイテムが前記対応するローカルエントリのローカル同期タイプに基づくプレースホルダアイテムであることを判定することと、
前記ある同期アイテムの前記新たなバージョンがプレースホルダアイテムであることを示す前記更新同期タイプに応じて、
前記更新エントリに従って、前記対応するローカルエントリによって表される前記プレースホルダアイテムの前記属性を変更することと、
前記ローカルファイルジャーナルにおいて、前記ある同期アイテムについての前記対応するローカルエントリを、前記同期アイテムについての前記更新エントリと置き換えることと
を含むことを特徴とする方法。
The method
Storing, by the client device, a plurality of synchronization items, including placeholder items and content items;
Storing, by the client device, a local file journal including a plurality of local entries, each local entry representing one of a plurality of synchronization items, each local entry being a local journal ID of the synchronization item, Including a local block list for the item, a plurality of local attributes of the synchronization item, and a local synchronization type, wherein the local synchronization type indicates whether the synchronization item is a placeholder item or a content item;
Receiving, by the client device, an update entry from a content management system, wherein the update entry represents a new version of a synchronization item of the stored synchronization items; Including an update journal ID, an update block list of the certain synchronization item, a plurality of update attributes of the certain synchronization item, and an update synchronization type;
Comparing the received update entry with the plurality of local entries to identify a corresponding local entry from the plurality of local entries;
Determining that the certain synchronization item represented by the corresponding local entry is a placeholder item based on the local synchronization type of the corresponding local entry;
According to the update synchronization type indicating that the new version of the certain synchronization item is a placeholder item,
Changing the attribute of the placeholder item represented by the corresponding local entry according to the update entry;
In the local file journal, replacing the corresponding local entry for the certain synchronization item with the update entry for the synchronization item.
請求項35に記載の方法であって、
前記複数の更新属性は更新ファイルパスを含み、前記複数のローカル属性はローカルファイルパスを含むことを特徴とする方法。
The method according to claim 35, wherein
The method of claim 2, wherein the plurality of update attributes include an update file path, and the plurality of local attributes include a local file path.
請求項36に記載の方法であって、
前記更新エントリに従って、前記対応するローカルエントリによって表される前記プレースホルダアイテムの前記属性を変更することは、前記更新エントリの前記更新ファイルパスに基づいて、前記プレースホルダアイテムのファイルパスを変更することをさらに含むことを特徴とする方法。
37. The method of claim 36, wherein
Changing the attribute of the placeholder item represented by the corresponding local entry according to the update entry comprises changing a file path of the placeholder item based on the update file path of the update entry. The method further comprising:
請求項35に記載の方法であって、
前記更新エントリに従って、前記対応するローカルエントリによって表される前記プレースホルダアイテムの前記属性を変更することは、前記更新ジャーナルIDに従って前記対応するローカルエントリの前記ローカルジャーナルIDを変更することをさらに含むことを特徴とする方法。
The method according to claim 35, wherein
Changing the attribute of the placeholder item represented by the corresponding local entry according to the update entry further comprises changing the local journal ID of the corresponding local entry according to the update journal ID. A method characterized by the following.
請求項35に記載の方法であって、
前記更新エントリに従って、前記対応するローカルエントリによって表される前記プレースホルダアイテムの前記属性を変更することは、前記更新ブロックリストに従って前記ローカルエントリの前記ローカルブロックリストを変更することをさらに含むことを特徴とする方法。
The method according to claim 35, wherein
Modifying the attribute of the placeholder item represented by the corresponding local entry according to the update entry further comprises modifying the local block list of the local entry according to the update block list. And how.
請求項35に記載の方法であって、
前記更新エントリに従って、前記対応するローカルエントリによって表される前記プレースホルダアイテムの前記属性を変更することは、前記更新エントリに関連付けられた変更時刻に従って前記ローカルエントリに関連付けられた変更時刻を変更することをさらに含むことを特徴とする方法。
The method according to claim 35, wherein
Changing the attribute of the placeholder item represented by the corresponding local entry according to the update entry comprises changing a change time associated with the local entry according to a change time associated with the update entry. The method further comprising:
JP2019144756A 2016-04-25 2019-08-06 Storage constrained synchronization engine Pending JP2020017282A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2021166477A JP7209067B2 (en) 2016-04-25 2021-10-08 Storage constrained sync engine

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US201662327379P 2016-04-25 2016-04-25
US62/327,379 2016-04-25
US15/396,254 2016-12-30
US15/396,254 US10049145B2 (en) 2016-04-25 2016-12-30 Storage constrained synchronization engine
US15/420,014 US10719532B2 (en) 2016-04-25 2017-01-30 Storage constrained synchronization engine
US15/420,014 2017-01-30

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2018545642A Division JP6570761B2 (en) 2016-04-25 2017-04-22 Synchronization engine with storage constraints

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2021166477A Division JP7209067B2 (en) 2016-04-25 2021-10-08 Storage constrained sync engine

Publications (1)

Publication Number Publication Date
JP2020017282A true JP2020017282A (en) 2020-01-30

Family

ID=58672641

Family Applications (3)

Application Number Title Priority Date Filing Date
JP2018545642A Active JP6570761B2 (en) 2016-04-25 2017-04-22 Synchronization engine with storage constraints
JP2019144756A Pending JP2020017282A (en) 2016-04-25 2019-08-06 Storage constrained synchronization engine
JP2021166477A Active JP7209067B2 (en) 2016-04-25 2021-10-08 Storage constrained sync engine

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2018545642A Active JP6570761B2 (en) 2016-04-25 2017-04-22 Synchronization engine with storage constraints

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2021166477A Active JP7209067B2 (en) 2016-04-25 2021-10-08 Storage constrained sync engine

Country Status (3)

Country Link
JP (3) JP6570761B2 (en)
AU (1) AU2017256162B2 (en)
WO (1) WO2017187311A1 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10866963B2 (en) 2017-12-28 2020-12-15 Dropbox, Inc. File system authentication
US11258834B2 (en) * 2018-10-05 2022-02-22 Explain Everything, Inc. System and method for recording online collaboration
CN109710582B (en) * 2018-12-13 2021-10-26 创新科技术有限公司 Shared directory management method and device

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014178896A1 (en) * 2013-04-30 2014-11-06 Microsoft Corporation File management with placeholders
US9185164B1 (en) * 2015-01-30 2015-11-10 Dropbox, Inc. Idle state triggered constrained synchronization of shared content items
JP2016506580A (en) * 2012-12-31 2016-03-03 カーボナイト, インク.Carbonite, Inc. System and method for automatically synchronizing recently modified data

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7461223B2 (en) * 2006-05-29 2008-12-02 Microsoft Corporation Retaining shadow copy data during replication
JP5328739B2 (en) * 2010-09-30 2013-10-30 ヤフー株式会社 Icon display program, method and system
US8838681B2 (en) * 2012-12-21 2014-09-16 Dropbox, Inc. Systems and methods for adding digital content to content management service accounts
US9398090B2 (en) * 2013-01-07 2016-07-19 Dropbox, Inc. Synchronized content library
US9405767B2 (en) * 2013-05-01 2016-08-02 Microsoft Technology Licensing, Llc Streaming content and placeholders
US9509747B2 (en) * 2014-01-23 2016-11-29 Dropbox, Inc. Content item synchronization by block
US9984110B2 (en) * 2014-08-21 2018-05-29 Dropbox, Inc. Multi-user search system with methodology for personalized search query autocomplete
WO2016032904A1 (en) * 2014-08-27 2016-03-03 Mokhtarzada Holdings, Llc Method and system for expanding storage capacity of a drive using cloud storage systems

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016506580A (en) * 2012-12-31 2016-03-03 カーボナイト, インク.Carbonite, Inc. System and method for automatically synchronizing recently modified data
WO2014178896A1 (en) * 2013-04-30 2014-11-06 Microsoft Corporation File management with placeholders
US9185164B1 (en) * 2015-01-30 2015-11-10 Dropbox, Inc. Idle state triggered constrained synchronization of shared content items

Also Published As

Publication number Publication date
JP2022020650A (en) 2022-02-01
AU2017256162A1 (en) 2018-09-13
WO2017187311A1 (en) 2017-11-02
AU2017256162B2 (en) 2018-11-08
JP7209067B2 (en) 2023-01-19
JP6570761B2 (en) 2019-09-04
JP2019515365A (en) 2019-06-06

Similar Documents

Publication Publication Date Title
US9934303B2 (en) Storage constrained synchronization engine
JP6475295B2 (en) Storage constrained synchronization of shared content items
JP7209067B2 (en) Storage constrained sync engine
US10846303B2 (en) Storage constrained synchronization engine
US11562000B2 (en) Storage constrained synchronization engine

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191002

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191002

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20201216

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201222

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210308

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20210310

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20210621

C60 Trial request (containing other claim documents, opposition documents)

Free format text: JAPANESE INTERMEDIATE CODE: C60

Effective date: 20211008

C609 Written withdrawal of request for trial/appeal

Free format text: JAPANESE INTERMEDIATE CODE: C609

Effective date: 20211012