`(12) Patent Application Publication (10) Pub. No.: US 2007/0016621 A1
`(43) Pub. Date:
`Jan. 18, 2007
`HaVeWala et al.
`
`US 20070016621A1
`
`(54) MOVING DATA FROM FILE ON STORAGE
`VOLUME TO ALTERNATE LOCATION TO
`FREE SPACE
`
`(22) Filed:
`
`Jul. 14, 2005
`
`Publication Classification
`
`(75) Inventors: Sarosh Cyrus Havewala, Redmond,
`WA (US); Guhan Suriyanarayanan,
`Redmond, WA (US); Christophe
`Franck Robert, Newcastle, WA (US);
`Shobana Balakrishnan, Redmond, WA
`(US); Dan Teodosiu, Bellevue, WA
`(US); Nikolaj S. Bjorner, Woodinville,
`WA (US)
`Correspondence Address:
`WOODCOCKWASHIBURN LLP
`(MICROSOFT CORPORATION)
`ONE LIBERTY PLACE - 46TH FLOOR
`PHILADELPHIA, PA 19103 (US)
`(73) Assignee: Microsoft Corporation, Redmond, WA
`(21) Appl. No.:
`11/181,440
`
`(51) Int. Cl.
`(2006.01)
`G06F 7/30
`(52) U.S. Cl. .............................................................. 707/200
`
`(57)
`
`ABSTRACT
`
`A computing device has a file stored on a storage Volume by
`a file system and accessed through Such file system. The file
`is defined to include data and metadata relating to the data,
`and at least a portion of the data of the file is removed from
`the file and stored at an alternate location such that the data
`does not occupy Substantially any space on the Volume and
`the file is in a reduced, ghosted form. The ghosted file is
`reconstituted for use by retrieving the data from the alternate
`location and associating Such retrieved data with Such
`ghosted file to form the reconstituted file.
`
`
`
`ALTERNATE LOCATION | HUBSERVER / SINK 18
`DATA2O FROM GHOSTED
`FILE14
`
`AP. 30, ETC.
`
`GHOSTING MANAGER 28
`
`GHOSTING FILTER 26
`
`FILE SYSTEM 16
`
`STORAGE VOLUME 12
`NON-GHOSTEDFILE14
`GHOSTEDFILE14
`- METADATA22
`- METADATA22
`- DATA 20
`- GHOSTING INFO 24
`(DATA20 ATSINK 18
`
`COMPUTING DEVICE 1 BRANCHSERVER / SOURCE 10
`
`Dropbox Exhibit 1005 - Page 1
`Dropbox, Inc. v. Entangled Media, LLC
`IPR2024-00285 - U.S. Patent No. 8,484,260
`
`
`
`Patent Application Publication Jan. 18, 2007 Sheet 1 of 13
`
`US 2007/0016621 A1
`
`
`
`
`
`55? Sng ISOS
`
`
`
`
`
`
`
`
`
`Áddol
`
`
`
`??T ?AIJCI
`
`Dropbox Exhibit 1005 - Page 2
`Dropbox, Inc. v. Entangled Media, LLC
`IPR2024-00285 - U.S. Patent No. 8,484,260
`
`
`
`Patent Application Publication Jan. 18, 2007 Sheet 2 of 13
`
`US 2007/0016621 A1
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`ALTERNATE LOCATION | HUBSERVER / SINK 18
`DATA20 FROM GHOSTED
`FILE14
`
`STORAGE VOLUME12
`NON-GHOSTEDFILE14
`GHOSTED FILE 14
`- METADATA22
`- METADATA22
`- DATA 20
`- GHOSTING INFO 24
`(DATA20 ATSINK18)
`
`COMPUTING DEVICE 1 BRANCHSERVER / SOURCE 10
`
`Fig. 2
`
`Dropbox Exhibit 1005 - Page 3
`Dropbox, Inc. v. Entangled Media, LLC
`IPR2024-00285 - U.S. Patent No. 8,484,260
`
`
`
`Patent Application Publication Jan. 18, 2007 Sheet 3 of 13
`
`US 2007/0016621 A1
`
`
`
`NON-GHOSTED FILE14
`
`- METADATA22
`-- LOGICAL FILE SIZE
`-- SIZE ON VOLUME12
`-- CREATE TIME
`-- MODIFY TIME
`-- ACCESS TIME
`-- ACCESS PERMISSIONS
`-- FILEATTRIBUTES
`
`- DATA 20
`-- PRIMARY DATA20
`-- ALTERNATE DATA2
`
`GHOSTED FILE 14
`
`- METADATA22
`- LOGICAL FILE SIZE SAME)
`-- SIZE ONVOLUME 12 LESS
`-- CREATE TIME
`-- MODIFY TIME
`-- ACCESS TIME
`-- ACCESS PERMISSIONS
`- FILEATTRIBUTES
`--- GHOSTED A TRIBUTE
`- GHOSTING INFO 24
`-- ID
`--- STORAGE
`
`- DATA 20
`- ALTERNATE DATA20
`
`SINK 18
`
`- ID
`- PRIMARY DATA20
`
`FIG. 3A
`
`Dropbox Exhibit 1005 - Page 4
`Dropbox, Inc. v. Entangled Media, LLC
`IPR2024-00285 - U.S. Patent No. 8,484,260
`
`
`
`Patent Application Publication Jan. 18, 2007 Sheet 4 of 13
`
`US 2007/0016621 A1
`
`
`
`NON-GHOSTED FILE14
`
`- METADATA22
`-- LOGICAL FILE SIZE
`-- SIZE ONVOLUME 12
`-- CREATE TIME
`- MODIFY TIME
`-- ACCESS TIME
`-- ACCESS PERMISSIONS
`- FILEATTRIBUTES
`
`- DATA 20
`- PRIMARY DATA20
`- ALTERNATE DATA 20
`
`GHOSTEDFILE14
`
`- METADATA22
`-- LOGICAL FILE SIZE SAME)
`-- SIZE ON VOLUME 12 (LESS)
`-- CREATE TIME
`-- MODIFY TIME
`-- ACCESS TIME
`-- ACCESS PERMISSIONS
`-- FILEATTRIBUTES
`--- GHOSTED ATTRIBUTE
`- GHOSTING INFO 24
`--- D
`--- STORAGE
`
`- DATA 20
`- ALTERNATE DATA20
`
`SINK 18
`
`- ID
`- NON-GHOSTED FILE14
`
`FIG. 3B
`
`Dropbox Exhibit 1005 - Page 5
`Dropbox, Inc. v. Entangled Media, LLC
`IPR2024-00285 - U.S. Patent No. 8,484,260
`
`
`
`Patent Application Publication Jan. 18, 2007 Sheet 5 of 13
`
`US 2007/0016621 A1
`
`IDENTIFY FILE 14 - 401
`
`IDENTIFY DATA20 TO BE REMOVED FROM FILE 14 - 403
`
`MOVE DENTIFIED DATA20 FROM SOURCE 10 TO SINK 18 - 405
`
`STORE MOVED DATA2O AT SINK 18 - 407
`
`MARKALLOCATED SPACE FOR MOVED DATA 20 AS FREE-409
`
`SET GHOSTED ATTRIBUTE IN METADATA 22 FOR FILE 14 - 411
`
`ADD GHOSTING INFO 24 TO METADATA 22 FOR FILE 14 - 413
`
`FIG. 4
`
`Dropbox Exhibit 1005 - Page 6
`Dropbox, Inc. v. Entangled Media, LLC
`IPR2024-00285 - U.S. Patent No. 8,484,260
`
`
`
`Patent Application Publication Jan. 18, 2007 Sheet 6 of 13
`
`US 2007/0016621 A1
`
`RECEIVE REGUEST TO ACCESS DATA20 OF GHOSTED FILE 14 - 501
`
`LOCATE FILE 14 ON VOLUME 12 - 503
`
`IDENTIFY GHOSTING INFO 24 N METADATA FOR FILE 14 - 505
`
`LOCATE DATA20 OF FILE 14 AS STOREDAT SINK 18 BASED ON
`IDENTIFIED GHOSTING INFO 24 - 507
`
`ALLOCATE SPACE TO BE OCCUPIED BY DATA20 ON VOLUME 12
`- 509
`
`MOVE LOCATED DATA 20 FROM SINK 18 TO SOURCE 10 - 511
`
`RESET GHOSTED ATTRIBUTE IN METADATA 22 FOR FILE 14 - 513
`
`REMOVE GHOSTING INFO FROM METADATA 22 FOR FILE 14 - 515
`
`F.G. 5
`
`Dropbox Exhibit 1005 - Page 7
`Dropbox, Inc. v. Entangled Media, LLC
`IPR2024-00285 - U.S. Patent No. 8,484,260
`
`
`
`Patent Application Publication Jan. 18, 2007 Sheet 7 of 13
`
`US 2007/0016621 A1
`
`FILE SYSTEM 16 - RECEIVE OPEN COMMAND FOR GHOSTED FILE
`14 FROMAP 30 - 601
`
`RETURNERROR - 603
`
`GHOSTING FILTER 26 - INTERCEPT RETURNED ERROR - 605
`
`RETRIEVE GHOSTING INFORMATION 24 FOR GHOSTED FILE 1.4 VIA
`FILE SYSTEM 16 - 607
`
`DELIVER HANDLE FOR GHOSTED FILE 14 TO AP 30 - 609
`
`RECEIVE READ COMMAND FOR GHOSTED FILE 14 FROMAP 30
`611
`
`STORE READ COMMAND IN OUEUE - 613
`
`
`
`INITIATE RECONSTITUTING OF GHOSTED FILE 14 - 615
`
`GHOSTING FILTER 26 - ISSUE REGUEST TO GHOSTING
`MANAGER 28 TO OBTAIN PORTION OF DATA20 - 615A
`
`GHOSTING MANAGER 28 - OBTAIN RECQUESTED PORTION OF
`DATA20 FROM SINK 18 - 615B
`
`DELIVER TO GHOSTING FILTER 26 - 615C
`
`GHOSTING FILTER 26 - WRITE RECRUESTED PORTION TO
`FILE 1.4 VIAFILE SYSTEM 16 - 615D
`
`GHOSTING FILTER 26 - FIX METADATA 22 OF NOW
`RECONSTITUTED FILE 14 - 617
`
`RETRIEVES READ COMMANDS FOR FILE 14 FROM CRUEUE AND
`PASS TO FILE SYSTEM 16 - 619
`
`FIG. 6
`
`Dropbox Exhibit 1005 - Page 8
`Dropbox, Inc. v. Entangled Media, LLC
`IPR2024-00285 - U.S. Patent No. 8,484,260
`
`
`
`Patent Application Publication Jan. 18, 2007 Sheet 8 of 13
`
`US 2007/0016621 A1
`
`AP 30 - OPEN GHOSTED FILE 14 - 701
`
`GHOSTING FILTER 26 - CREATE BUFFER, HANDLE - 703
`
`OBTAIN GHOSTING INFO 24 FROM GHOSTED FILE 14, STORE IN
`BUFFER - 705
`
`AP 30 - READ COMMAND WI HANDLE, OFFSET, LENGTH-707
`
`GHOSTING FILTER 26 - DET FROM BUFFER WHETHER PORTION
`ALREADY PRESENT IN GHOSTED FILE 14 - 709
`
`ALL PRESENT - DO
`NOTHING - 711A
`
`
`
`PARTLY PRESENT -
`OBTAIN REM. FROM
`SNK 18 - 711B
`
`
`
`NOT PRESENT -
`OBTAINALL FROM
`SINK 18 - 711C
`
`
`
`
`
`UPDATE GHOSTING INFO 24 IN THE BUFFER
`TO REFLECT - 713
`
`AP 30 - READ REGUESTED PORTION- 715
`
`GHOSTING FILTER 26 - PERIODICALLY WRITE GHOSTING INFO 24
`FROM BUFFER TO GHOSTED FILE 14 - 717
`
`AP 3O - CLOSE GHOSTED FILE 14 - 719
`
`GHOSTING FILTER 26 - CLOSE OUT GHOSTING INFO 14 NBUFFER
`TO GHOSTED FILE 14 - 721
`
`FIG. 7
`
`Dropbox Exhibit 1005 - Page 9
`Dropbox, Inc. v. Entangled Media, LLC
`IPR2024-00285 - U.S. Patent No. 8,484,260
`
`
`
`Patent Application Publication Jan. 18, 2007 Sheet 9 of 13
`
`US 2007/0016621 A1
`
`DATA20 IN GHOSTED FLE 14
`
`
`
`
`
`
`
`
`
`DATA 20
`PRESENT
`
`DATA 20
`DATA 20
`PENDING | NOT PRESENT
`
`
`
`
`
`DATA20 IN REGUESTED RANGE
`
`FIRST
`SEGMENT
`
`SECOND
`SEGMENT
`
`THIRD
`SEGMENT
`
`FIG. 8
`
`Dropbox Exhibit 1005 - Page 10
`Dropbox, Inc. v. Entangled Media, LLC
`IPR2024-00285 - U.S. Patent No. 8,484,260
`
`
`
`Patent Application Publication Jan. 18, 2007 Sheet 10 of 13
`
`US 2007/0016621 A1
`
`RECEIVE READ COMMAND FROMAP 30 WRANGE OF DATA 30 - 901
`
`IDENTIFY INRANGE FIRST
`SEGMENTS ALREADY
`PRESENT - 903
`
`
`
`FIRST SEGMENTS >= RANGE -
`COMPLETE READ COMMAND -
`905
`
`FIRST SEGMENTS < ALL OF RANGE - COMPUTE FIRST SET =
`RANGE NOT FIRST SEGMENT - 907
`
`IDENTIFY IN FIRST SET
`SECOND SEGMENTS
`PENDING - 909
`
`
`
`SECOND SEGMENTS >=
`FIRST SET - 911
`
`
`
`SECOND SEGMENTS < FIRST SET - COMPUTE THIRD SEGMENTS
`= RANGE NOT FIRST OR SECOND SEGMENT - 913
`
`REOUEST THIRD SEGMENTS COPIED FROM SINK 18 - 915
`
`COPYING COMPLETE - 917
`
`
`
`RANGE READ BY AP 30 - 919
`
`FIG.9
`
`Dropbox Exhibit 1005 - Page 11
`Dropbox, Inc. v. Entangled Media, LLC
`IPR2024-00285 - U.S. Patent No. 8,484,260
`
`
`
`Patent Application Publication Jan. 18, 2007 Sheet 11 of 13
`
`US 2007/0016621 A1
`
`RECEIVE TRIGGER FOR RE-GHOSTING ALGORITHM - 1001
`
`SELECTS FILES 14 FOR RE-GHOSTING - 1003
`
`
`
`RE-GHOST SELECTED FILES
`14 - 1005
`
`DESIGNATE SELECTED FILES
`14 AS CANDIDATE FILES 14
`FOR RE-GHOSTING - 1 OO7
`
`
`
`
`
`
`
`SELECT GROUP OF
`CANDDATE FILES 14 - 1009
`
`STOP TRIGGER NOT
`ACTIVATED - CONTINUE - 1015
`
`RE-GHOST SELECTED GROUP
`- 1011
`
`STOP TRIGGER ACTIVATED -
`END - 1013
`
`FIG. 10
`
`Dropbox Exhibit 1005 - Page 12
`Dropbox, Inc. v. Entangled Media, LLC
`IPR2024-00285 - U.S. Patent No. 8,484,260
`
`
`
`Patent Application Publication Jan. 18, 2007 Sheet 12 of 13
`
`US 2007/0016621 A1
`
`
`
`SINK 18
`DATA20 FROM GHOSTED
`FILE14
`
`SINK 18
`DATA20 FROM GHOSTED
`FILE14
`
`GHOSTING MANAGER 28
`- ID'A' N,
`
`GHOSTING MANAGER 28
`- D 'B' ------------- '',
`
`GHOSTING FILTER 26
`
`FILE SYSTEM 16
`
`STORAGE VOLUME 12
`GHOSTED FILE14
`GHOSTED FILE14
`- METADATA22
`- METADATA22
`- GHOSTING INFO 24
`-- GHOSTING INFO 24
`- ID'A'.
`-- ID 'B'-...............--"
`
`:
`
`SOURCE 10
`
`Fig.11
`
`Dropbox Exhibit 1005 - Page 13
`Dropbox, Inc. v. Entangled Media, LLC
`IPR2024-00285 - U.S. Patent No. 8,484,260
`
`
`
`Patent Application Publication Jan. 18, 2007 Sheet 13 of 13
`
`US 2007/0016621 A1
`
`RECEIVE GHOSTING REOUEST W/ ID OF REGUESTING GHOSTING
`MANAGER 28, IDENT OF FILE 14 - 1201
`
`
`
`REMOVE DATA20 FROM FILE 14 - 12O3
`
`FORWARD REMOVED DATA20 TO REOUESTING GHOSTING
`MANAGER 28 BY WAY OF ID THEREOF - 1205
`
`ADD GHOSTING INFO 24 W/ ID OF GHOSTING MANAGER 28 TO
`METADATA22 OF GHOSTED FILE 14-1207
`
`RECEIVE REGUEST FOR ACCESS TO DATA20 OF GHOSTED FILE 14
`- 1209
`
`LOCATE GHOSTING INFO 24 IN METADATA 22 OF FILE 14-1211
`
`LOCATED OF GHOSTING MANAGER 28 W/IN GHOSTING INFO 24
`- 1213
`
`REGUEST D'D GHOSTING MANAGER 28 OBTANDATA20 FROM
`CORR. SINK 18 - 1215
`
`RECEIVE DATA20 FROM ID'D GHOSTING MANAGER 28 - 1217
`
`RECONSTITUTE DATA20 TO FILE 14 - 1219
`
`FIG. 12
`
`Dropbox Exhibit 1005 - Page 14
`Dropbox, Inc. v. Entangled Media, LLC
`IPR2024-00285 - U.S. Patent No. 8,484,260
`
`
`
`US 2007/0016621 A1
`
`Jan. 18, 2007
`
`MOVING DATA FROM FILE ON STORAGE
`VOLUME TO ALTERNATE LOCATION TO FREE
`SPACE
`
`CROSS-REFERENCE TO RELATED
`APPLICATIONS
`0001. The present application shares a common disclo
`sure with:
`(Attorney
`0002 U.S. patent application Ser. No.
`Docket No. Msift-5019/313836.1) and entitled “MOVING
`DATA FROM FILE ON STORAGE VOLUME TO ALTER
`NATE LOCATION TO FREE SPACE,
`(Attorney
`0003 U.S. patent application Ser. No.
`Docket No. Msift-5020/313837.1) and entitled “MOVING
`DATA FROM FILE ON STORAGE VOLUME TO ALTER
`NATE LOCATION TO FREE SPACE,
`(Attorney
`0004 U.S. patent application Ser. No.
`Docket No. Msift-5021/313838.1) and entitled “MOVING
`DATA FROM FILE ON STORAGE VOLUME TO ALTER
`NATE LOCATION TO FREE SPACE,
`(Attorney
`0005 U.S. patent application Ser. No.
`Docket No. Msift-5022/313839.1) and entitled “MOVING
`DATA FROM FILE ON STORAGE VOLUME TO ALTER
`NATE LOCATION TO FREE SPACE, and
`(Attorney
`0006 U.S. patent application Ser. No.
`Docket No. Msft-5053/313951.1) and entitled “MOVING
`DATA FROM FILE ON STORAGE VOLUME TO ALTER
`NATE LOCATION TO FREE SPACE,
`0007 all of which are filed concurrently with the present
`application, and all of which are hereby incorporated by
`reference in their entirety.
`
`TECHNICAL FIELD
`0008. The present invention relates to an architecture and
`methods that allow data from a computer file stored on a
`storage Volume to be moved or 'ghosted to an alternate
`location to free space on the storage Volume. More particu
`larly, the present invention relates to Such an architecture
`and methods whereby the remainder of the ghosted file stays
`on the storage Volume and the ghosted data at the alternate
`location can if necessary be retrieved and placed back into
`the ghosted file to result in a de-ghosted file.
`
`BACKGROUND OF THE INVENTION
`0009. In a computing device such as a personal computer,
`a computer server, or the like, and as is known, data is
`typically persistently stored on the computing device in the
`form of local computer files resident on one or more local
`storage Volumes of the computing device. Each Such storage
`Volume may reside on a hard drive of the computing device
`or the like, and Such storage Volume may be organized by,
`accessed through, and otherwise controlled by a file system
`running on the computing device, as is also known.
`0010. At times, it can be the case that some, many, and
`perhaps even most of the computer files on the storage
`volume are not of interest and can be considered to have
`become cold. That is to say, such cold files have not been
`accessed for some extended length of time and/or likely will
`
`not be accessed for Some extended length of time, for
`example, and therefore have little if any real value in
`remaining on the Volume.
`0011. Of course, such cold files could simply be deleted
`from the storage Volume, especially if there is a need for
`space on Such volume. However, it is to be appreciated that
`most users are loathe to delete files simply to create space.
`In addition, it is considered bad practice to delete a cold file
`merely because of perceived disuse. At any rate, it can and
`likely will be the case that a cold file though not considered
`needed and not foreseen as needed may nevertheless become
`needed at Some future point.
`0012. In such a situation, then, it would be useful to be
`able to create space on the Volume by moving data from Such
`cold files to an alternate location, while still allowing such
`cold files to maintain a presence on the Volume. That is, it
`would be useful to be able to ghost a cold file by moving
`data from such cold files to the alternate location or to copy
`the entire file to the alternate location, while leaving the cold
`file in a smaller, ghosted form on the volume. Thus, if in
`fact the ghosted file is needed on the computing device, the
`data for such ghosted file may be retrieved from the alternate
`location, the ghosted file may be reconstituted based on
`thereon, and Such reconstituted file may then be employed.
`0013 In another scenario, it can be the case that data files
`of an organization or the like are to be replicated at multiple
`branch locations of the organization, perhaps from a central
`location such as a hub. For example, an architectural design
`firm may wish to have all architectural design files thereof
`available at any one of several branches of such firm.
`0014. In such a situation, a networked system can be
`constructed to replicate a copy of each file to each branch,
`and to keep all files at all branches current. In Such a system,
`for example, a centralized hub server would store each such
`file, and a replication service would be employed to distrib
`ute a copy of each file at the hub over a network to a branch
`server or the like at each branch. However, it is to be
`appreciated that as the number of files of the organization
`increases, and as the size of each file increases, and as the
`number of branches increases, the amount of traffic over the
`network also increases, perhaps to a point that exceeds
`available bandwidth. Moreover, as the overall size of all the
`files at the hub server increases, it may in fact become the
`case that each branch server does not have enough space
`available thereon to store all of such files as replicated from
`the hub server.
`0015 Similar to the previous scenario, though, it can be
`the case that some, many, and perhaps even most of the
`computer files on the branch server of a particular branch are
`not of interest and can be considered to be superfluous. Such
`Superfluous files may for example relate to matters that are
`not relevant to the particular branch, likely will not be
`accessed through the particular branch, and therefore have
`little if any real value in being replicated on the branch
`server for the particular branch. For example, a branch office
`of an architectural design firm in Wilkes-Barre, Pa.. likely
`has very little if any need to have architectural design files
`relating to a project handled by a branch office of the firm in
`Boynton Beach, Fla.
`0016.
`In such a situation, then, and similar to previous
`scenario, it would be useful to be able to wholly store on a
`
`Dropbox Exhibit 1005 - Page 15
`Dropbox, Inc. v. Entangled Media, LLC
`IPR2024-00285 - U.S. Patent No. 8,484,260
`
`
`
`US 2007/0016621 A1
`
`Jan. 18, 2007
`
`branch server of a particular branch only those files relevant
`to the particular branch, while only partially storing on Such
`branch server of such particular branch all other non
`relevant files as available from the hub server for the
`organization. Thus, in a manner akin to that of the previous
`scenario, it would be useful to be able to ghost the
`non-relevant files at the branch server of the particular
`branch, Such that each non-relevant file remains on the
`branch server in a smaller, ghosted form. Thus, and again,
`if in fact the ghosted file is needed at the branch server, the
`data for such ghosted file may be retrieved from the hub
`server, the ghosted file may be reconstituted based on
`thereon, and Such reconstituted file may then be employed.
`0017 Accordingly, a need exists for a method and
`mechanism by which a file at a source Such as a local Volume
`or a branch server may be replicated or ghosted such that the
`data thereof is stored at a sink such as an alternate location
`or a hub server, and the file at the source is thus in a reduced
`or ghosted form that can be reconstituted if need be. In
`particular, a need exists for Such a method and mechanism
`by which such a ghosted file may be formed and reconsti
`tuted, as necessary.
`
`SUMMARY OF THE INVENTION
`0018. The aforementioned needs are satisfied at least in
`part by the present invention in which a computing device
`has a storage Volume, a file system managing the storage
`volume, and a file stored on the storage volume by the file
`system and accessed through Such file system. The file is
`defined to include data and metadata relating to the data, and
`at least a portion of the data of the file is removed from the
`file and stored at an alternate location Such that the data does
`not occupy Substantially any space on the Volume and the
`file is in a reduced, ghosted form. The ghosted file is
`reconstituted for use by retrieving the data from the alternate
`location and associating Such retrieved data with Such
`ghosted file to form the reconstituted file.
`0019. To ghost the file, the file is identified, at least a
`portion of the data to be removed from the file is identified,
`and the identified data is moved from the file to the alternate
`location for being stored thereat such that the file is in a
`reduced, ghosted form. Space on the volume formerly
`occupied by the moved data is thus marked as being free. In
`addition, the metadata of the now-ghosted file is amended to
`include ghosting information including information that
`may be employed to retrieve the moved data for the file from
`the alternate location.
`0020. The ghosted file is reconstituted upon receiving a
`request to access the moved data of the ghosted file. In
`response, the ghosted file is located on the Volume, the
`ghosting information is identified in the metadata of the file,
`and the moved data of the file at the alternate location is
`located based on the identified ghosting information. There
`after, the located data is moved from the alternate location
`to the computing device, and the moved data is associated
`with such ghosted file to form the reconstituted file.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`0021. The foregoing summary, as well as the following
`detailed description of the embodiments of the present
`invention, will be better understood when read in conjunc
`tion with the appended drawings. For the purpose of illus
`
`trating the invention, there are shown in the drawings
`embodiments which are presently preferred. As should be
`understood, however, the invention is not limited to the
`precise arrangements and instrumentalities shown. In the
`drawings:
`0022 FIG. 1 is a block diagram representing a general
`purpose computer system in which aspects of the present
`invention and/or portions thereof may be incorporated;
`0023 FIG. 2 is a block diagram showing a file ghosted at
`a source Such that the data thereof is stored at a sink in
`accordance with embodiments of the present invention;
`0024 FIGS. 3A and 3B are block diagrams showing the
`file and data of FIG. 2, whereby only the data is stored at the
`sink (FIG. 3A) and whereby the entire file is stored at the
`sink (FIG. 3B) in accordance with embodiments of the
`present invention;
`0025 FIG. 4 is a flow diagram showing key steps per
`formed in ghosting a file to the sink of FIG. 2 in accordance
`with one embodiment of the present invention;
`0026 FIG. 5 is a flow diagram showing key steps per
`formed in reconstituting the ghosted file from the sink of
`FIG. 2 in accordance with one embodiment of the present
`invention;
`0027 FIG. 6 is a flow diagram showing in more detail
`key steps performed in reconstituting the ghosted file from
`the sink of FIG. 2 in accordance with one embodiment of the
`present invention;
`0028 FIG. 7 is a flow diagram showing key steps per
`formed in partially reconstituting the ghosted file from the
`sink of FIG. 2 in accordance with one embodiment of the
`present invention;
`0029 FIG. 8 is a block diagram showing various statuses
`for the data of the file of FIG. 2 in accordance with one
`embodiments of the present invention;
`0030 FIG. 9 is a flow diagram showing key steps per
`formed in efficiently reconstituting at least a portion of the
`ghosted file from the sink of FIG. 2 based on the status of
`the segments of the data of the portion as set forth in FIG.
`8 in accordance with one embodiment of the present inven
`tion;
`FIG. 10 is a flow diagram showing key steps
`0031
`performed when re-ghosting files to the sink of FIG. 2 in
`accordance with one embodiment of the present invention;
`0032 FIG. 11 is a block diagram showing the source of
`FIG. 2 associated with a plurality of sinks, whereby the
`Source has a single generic ghosting filter and a ghosting
`manager corresponding to each sink, in accordance with one
`embodiment of the present invention; and
`0033 FIG. 12 is a flow diagram showing key steps
`performed by the ghosting filter of FIG. 11 in ghosting and
`reconstituting a file at the Source in accordance with one
`embodiment of the present invention.
`
`Dropbox Exhibit 1005 - Page 16
`Dropbox, Inc. v. Entangled Media, LLC
`IPR2024-00285 - U.S. Patent No. 8,484,260
`
`
`
`US 2007/0016621 A1
`
`Jan. 18, 2007
`
`DETAILED DESCRIPTION OF THE
`INVENTION
`Computer Environment
`0034 FIG. 1 and the following discussion are intended to
`provide a brief general description of a Suitable computing
`environment in which the present invention and/or portions
`thereof may be implemented. Although not required, the
`invention is described in the general context of computer
`executable instructions, such as program modules, being
`executed by a computer, such as a client workstation or a
`server. Generally, program modules include routines, pro
`grams, objects, components, data structures and the like that
`perform particular tasks or implement particular abstract
`data types. Moreover, it should be appreciated that the
`invention and/or portions thereof may be practiced with
`other computer system configurations, including hand-held
`devices, multi-processor Systems, microprocessor-based or
`programmable consumer electronics, network PCs, mini
`computers, mainframe computers and the like. The inven
`tion may also be practiced in distributed computing envi
`ronments where tasks are performed by remote processing
`devices that are linked through a communications network.
`In a distributed computing environment, program modules
`may be located in both local and remote memory storage
`devices.
`0035. As shown in FIG. 1, an exemplary general purpose
`computing system includes a conventional personal com
`puter 120 or the like, including a processing unit 121, a
`system memory 122, and a system bus 123 that couples
`various system components including the system memory to
`the processing unit 121. The system bus 123 may be any of
`several types of bus structures including a memory bus or
`memory controller, a peripheral bus, and a local bus using
`any of a variety of bus architectures. The system memory
`includes read-only memory (ROM) 124 and random access
`memory (RAM) 125. A basic input/output system 126
`(BIOS), containing the basic routines that help to transfer
`information between elements within the personal computer
`120, such as during start-up, is stored in ROM 124.
`0036) The personal computer 120 may further include a
`hard disk drive 127 for reading from and writing to a hard
`disk (not shown), a magnetic disk drive 128 for reading from
`or writing to a removable magnetic disk 129, and an optical
`disk drive 130 for reading from or writing to a removable
`optical disk 131 such as a CD-ROM or other optical media.
`The hard disk drive 127, magnetic disk drive 128, and
`optical disk drive 130 are connected to the system bus 123
`by a hard disk drive interface 132, a magnetic disk drive
`interface 133, and an optical drive interface 134, respec
`tively. The drives and their associated computer-readable
`media provide non-volatile storage of computer readable
`instructions, data structures, program modules and other
`data for the personal computer 120.
`0037 Although the exemplary environment described
`herein employs a hard disk, a removable magnetic disk 129,
`and a removable optical disk 131, it should be appreciated
`that other types of computer readable media which can store
`data that is accessible by a computer may also be used in the
`exemplary operating environment. Such other types of
`media include a magnetic cassette, a flash memory card, a
`digital video disk, a Bernoulli cartridge, a random access
`memory (RAM), a read-only memory (ROM), and the like.
`
`0038 A number of program modules may be stored on
`the hard disk, magnetic disk 129, optical disk 131, ROM 124
`or RAM 125, including an operating system 135, one or
`more application programs 136, other program modules 137
`and program data 138. A user may enter commands and
`information into the personal computer 120 through input
`devices such as a keyboard 140 and pointing device 142.
`Other input devices (not shown) may include a microphone,
`joystick, game pad, satellite disk, Scanner, or the like. These
`and other input devices are often connected to the processing
`unit 121 through a serial port interface 146 that is coupled
`to the system bus, but may be connected by other interfaces,
`Such as a parallel port, game port, or universal serial bus
`(USB). A monitor 147 or other type of display device is also
`connected to the system bus 123 via an interface. Such as a
`video adapter 148. In addition to the monitor 147, a personal
`computer typically includes other peripheral output devices
`(not shown), Such as speakers and printers. The exemplary
`system of FIG. 1 also includes a host adapter 155, a Small
`Computer System Interface (SCSI) bus 156, and an external
`storage device 162 connected to the SCSI bus 156.
`0039 The personal computer 120 may operate in a net
`worked environment using logical connections to one or
`more remote computers, such as a remote computer 149. The
`remote computer 149 may be another personal computer, a
`server, a router, a network PC, a peer device or other
`common network node, and typically includes many or all of
`the elements described above relative to the personal com
`puter 120, although only a memory storage device 150 has
`been illustrated in FIG. 1. The logical connections depicted
`in FIG. 1 include a local area network (LAN) 151 and a wide
`area network (WAN) 152. Such networking environments
`are commonplace in offices, enterprise-wide computer net
`works, intranets, and the Internet.
`0040. When used in a LAN networking environment, the
`personal computer 120 is connected to the LAN 151 through
`a network interface or adapter 153. When used in a WAN
`networking environment, the personal computer 120 typi
`cally includes a modem 154 or other means for establishing
`communications over the wide area network 152, such as the
`Internet. The modem 154, which may be internal or external,
`is connected to the system bus 123 via the serial port
`interface 146. In a networked environment, program mod
`ules depicted relative to the personal computer 120, or
`portions thereof, may be stored in the remote memory
`storage device. It will be appreciated that the network
`connections shown are exemplary and other means of estab
`lishing a communications link between the computers may
`be used.
`Ghosting and Reconstituting a File
`0041. In the present invention, and turning now to FIG. 2,
`a computing device 10 Such as a personal computer or a
`computer server or the like has a storage Volume 12 Such as
`a hard drive or a persistent RAM drive or the like, the
`volume 12 has stored thereon a number of computer files 14,
`and the files 14 on the Volume 12 are organized by, accessed
`through, and otherwise controlled by a file system 16
`running on the computing device 10. As may be appreciated,
`the computing device 10, volume 12, files 14, and file
`system 16 may be any type of computing device, Volume,
`file, and file system without departing from the spirit and
`Scope of the present invention.
`
`Dropbox Exhibit 1005 - Page 17
`Dropbox, Inc. v. Entangled Media, LLC
`IPR2024-00285 - U.S. Patent No. 8,484,260
`
`
`
`US 2007/0016621 A1
`
`Jan. 18, 2007
`
`0042. In one embodiment of the present invention, the
`computing device 10 is a personal computer or the like and
`at least some of the files 14 on the volume 12 thereof have
`been determined to be cold in that such files 14 for example
`have not been accessed for Some extended length of time
`and/or likely will not be accessed for some extended length
`of time, and therefore have little if any real value in
`remaining on the Volume 12. Note, though, that coldness of
`a file 14 may be defined in any appropriate manner without
`departing from the spirit and scope of the present invention.
`0043. At any rate, upon being determined to be cold, a file
`14 is not deleted from the volume 12 but instead is reduced
`in size on the volume 12 by removing at least some data 20
`thereof to an alternate location 18. Such alternate location 18
`may be local to the computing device or may be remote
`therefrom. In general. Such alternate location 18 is appro
`priately coupled to the computing device 10 and may be any
`appropriate storage location without departing from the
`spirit and scope of the present invention. For example, the
`alternate location 18 may be another volume 12 on the
`storage device 10, another Volume 12 on another computing
`device 10, a file warehouse at a server, a long-term storage
`device at a remote server, or the like.
`0044) With the alternate location 18, then, space on the
`volume 12 may be freed by moving the aforementioned data
`20 from such cold files 14 to such alternate location 18.
`Significantly, although the data 20 from such a cold file 14
`has been moved. Such cold file 14 remains as a presence or
`ghost on the volume 12, albeit in a reduced or ghosted
`form. Thus, if in fact the ghosted file 14 is needed on the
`computing device 10, such ghosted file 14 is reconstituted by
`retrieving the data 20 thereof from the alternate location 18
`and re-associating Such retrieved data 20 with Such ghosted
`file 14 to form the reconstituted file 14. As may be appre
`ciated, then, once reconstituted, the file 14 may then in fact
`be employed.
`0045. In another embodiment of the present invention,
`the computing device 10 is a branch server or the like and
`at least some of the files 14 on the vo