IP Library Granted Patent US 7,908,302
Granted Patent B1
US 7,908,302 · App. 10/943,284 · Granted Mar 15, 2011

In-place splitting and merging of files

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,908,302
App. No.
10/943,284
Granted
Mar 15, 2011
Kind
B1
Abstract

A method, computer program product, and apparatus providing a means to split files and to merge files without the need for duplicating all of the data of the original files is disclosed.

Claims (162)

1. A computer-implemented method comprising:

splitting an original file comprising first and second file data storage blocks, said splitting comprising:

creating a first new file data structure corresponding to a first new file and a second new file data structure corresponding to a second new file, wherein the first new file data structure comprises a plurality of pointers to respective file data storage blocks of the original file,

coupling the first and second new file data structures to the respective first and second file data storage blocks of the original file, wherein the first and second file data storage blocks are not replicated during said coupling, and

the original file comprises the original file data structure and data written to the first and second file data storage blocks on a file system memory space,

generating a first pointer of the plurality of pointers to the first file data storage block of the original file, and

storing the first and second new files on a memory device managed by a file system, wherein the creating, the coupling, and the storing are performed by a processor implementing the file system; and

merging the first and second new file data structures, wherein the merging comprises:

coupling a merge file data structure to the first and second file data storage blocks,

generating a first merge pointer to the first file data storage block,

generating a second merge pointer to the second file data storage block, and

including the first and second merge pointers in the merge file data structure.

2. The computer-implemented method of claim 1 further comprising:

copying metadata from the original file data structure to the first new file data structure.

3. The computer-implemented method of claim 2 further comprising:

deleting the original file data structure from the file system.

4. The computer-implemented method of claim 2 , wherein the metadata comprises:

a date of creation of the original file;

a date of last modification of the original file;

ownership information of the original file; and

access permissions of the original file.

5. The computer-implemented method of claim 2 further comprising:

creating first and second directory entries in the file system corresponding to the first and second new file data structures, respectively; and

removing a directory entry corresponding to the original file data structure from the file system.

6. The computer-implemented method of claim 5 further comprising:

adding, to the file system, a directory entry corresponding to the merge file data structure;

removing, from the file system, the directory entries corresponding to the first and second new file data structures; and

deleting the first and second new file data structures.

7. The computer-implemented method of claim 1 further comprising:

accessing the first file data storage block of the original file by referring to the first new file data structure.

8. A computer-implemented method comprising:

splitting an original file comprising first and second file data storage blocks, said splitting comprising:

creating a first new file data structure corresponding to a first new file and a second new file data structure corresponding to a second new file, wherein the first new file data structure comprises an offset pointer and length of file information corresponding to a number of pointers in an original file data structure referenced by the first new file data structure,

coupling the first and second new file data structures to the respective first and second file data storage blocks of the original file, wherein the first and second file data storage blocks are not replicated during said coupling, and

the original file comprises the original file data structure and data written to the first and second file data storage blocks on a file system memory space,

generating the offset pointer to a pointer to the first data storage block, wherein

the pointer to the first data storage block is within the original file data structure, and

storing the first and second new files on a memory device managed by a file system, wherein the creating, the coupling, and the storing are performed by a processor implementing the file system; and

merging the first and second new file data structures, wherein the merging comprises:

coupling a merge file data structure to the first and second file data storage blocks,

generating a first merge pointer to the first file data storage block,

generating a second merge pointer to the second file data storage block, and

including the first and second merge pointers in the merge file data structure.

9. The computer-implemented method of claim 8 , wherein a file data structure of one or more of the first and second new file data structures and the original file data structure comprises:

one of an inode and a New Technology File System (NTFS) file attribute.

10. The computer-implemented method of claim 8 further comprising:

including an identifier to the original file data structure in the first new file data structure.

11. The computer-implemented method of claim 8 further comprising:

creating first and second directory entries, in the file system, corresponding to the first and second new file data structures, respectively.

12. The computer-implemented method of claim 11 further comprising:

merging the first and second new file data structures, wherein the merging comprises:

adding a directory entry to the file system corresponding to the original file data structure; and

removing, from the file system, the directory entries corresponding to the first and second new file data structures.

13. The computer-implemented method of claim 8 further comprising:

accessing the first file data storage block of the original file by referring to the first new file data structure.

14. A computer-readable storage medium storing instructions, executable by a processor, said instructions comprising:

a first set of instructions configured to split an original file comprising first and second file data storage blocks, said first set of instructions further comprising:

a creation set of instructions configured to create a first new file data structure corresponding to a first new file and a second new file data structure corresponding to a second new file, wherein the first new file data structure comprises a plurality of pointers to respective file data storage blocks of the original file,

a coupling set of instructions configured to couple the first and second new file data structures to the respective first and second file data storage blocks of the original file, wherein

the first and second file data storage blocks are not replicated during said coupling, and

the original file comprises the original file data structure and data written to the first and second file data storage blocks on a file system memory space,

a generating set of instructions configured to generate a first pointer of the plurality of pointers to the first file data storage block of the original file; and

a second set of instructions configured to merge the first and second new file data structures, wherein the second set of instructions further comprises:

a second coupling set of instructions configured to couple a merge file data structure to the first and second file data storage blocks,

a second generating set of instructions configured to generate a first merge pointer to the first file data storage block,

a third generating set of instructions configured to generate a second merge pointer to the second file data storage block, and

an including set of instructions configured to include the first and second merge pointers in the merge file data structure.

15. The computer readable storage medium of claim 14 storing further instructions comprising:

a third set of instructions configured to copy metadata from the original file data structure to the first new file data structure.

16. The computer readable storage medium of claim 15 storing further instructions comprising:

a fourth set of instructions configured to delete the original file data structure from the file system.

17. The computer readable storage medium of claim 15 wherein the metadata comprises:

a date of creation of the original file;

a date of last modification of the original file;

ownership information of the original file; and

access permissions of the original file.

18. The computer readable storage medium of claim 15 storing further instructions comprising:

a fourth set of instructions configured to create first and second directory entries, in the file system, corresponding to the first and second new file data structures, respectively; and

a fifth set of instructions configured to remove, from the file system, a directory entry corresponding to the original file data structure.

19. The computer readable storage medium of claim 18 storing further instructions comprising:

a sixth set of instructions configured to add to the file system a directory entry corresponding to the merge file data structure;

a seventh set of instructions configured to remove, from the file system, the directory entries corresponding to the first and second new file data structures; and

an eighth set of instructions configured to delete the first and second new file data structures.

20. The computer readable storage medium of claim 14 storing further instructions comprising:

a third set of instructions configured to access the first file data storage block of the original file by referring to the first new file data structure.

21. A computer readable storage medium storing instructions, executable by a processor, said instructions comprising:

a first set of instructions configured to split an original file comprising first and second file data storage blocks, said first set of instructions further comprising:

a creation set of instructions configured to create a first new file data structure corresponding to a first new file and a second new file data structure corresponding to a second new file, wherein the first new file data structure comprises an offset pointer and length of file information corresponding to a number of pointers in an original file data structure referenced by the first new file data structure,

a coupling set of instructions configured to couple the first and second new file data structures to the respective first and second file data storage blocks of the original file, wherein

the first and second file data storage blocks are not replicated during said coupling, and

the original file comprises the original file data structure and data written to the first and second file data storage blocks on a file system memory space,

a generating set of instructions configured to generate an offset pointer to a pointer to the first data storage block, wherein the pointer to the first data storage block is within the original file data structure, and

a second set of instructions configured to merge the first and second new file data structures, said second set of instructions further comprising:

a second coupling set of instructions configured to couple a merge file data structure to the first and second file data storage blocks,

a second set of generating instructions configured to generate a first merge pointer to the first file data storage block,

a third set of generating instructions configured to generate a second merge pointer to the second file data storage block, and

an including set of instructions configured to include the first and second merge pointers in the merge file data structure.

22. The computer program product of claim 21 wherein a file data structure of one or more of the first and second new file data structures and the original file data structure comprises:

one of an inode and a New Technology File System (NTFS) file attribute.

23. The computer readable storage medium of claim 21 storing further instructions comprising:

a third set of instructions configured to include an identifier to the original file data structure in the first new file data structure.

24. The computer readable storage medium of claim 21 storing further instructions comprising:

a third set of instructions configured to create first and second directory entries in the file system corresponding to the first and second new file data structures, respectively.

25. The computer readable storage medium of claim 24 storing further instructions comprising:

a fourth set instructions configured to add a directory entry to the file system corresponding to the original file data structure; and

a fifth set instructions configured to remove the directory entries corresponding to the first and second new file data structures.

26. The computer readable storage medium of claim 21 storing further instructions comprising:

a third set of instructions configured to access the first file data storage block of the original file by referring to the first new file data structure.

27. An apparatus comprising:

means for splitting an original file comprising first and second file data storage blocks, said means for splitting comprising:

means for creating a first new file data structure corresponding to a first new file and a second new file data structure corresponding to a second new file, wherein the first new file data structure comprises a plurality of pointers to respective file data storage blocks of the original file,

means for coupling the first and second new file data structures to the respective first and second file data storage blocks of the original file, wherein

the first and second file data storage blocks are not replicated during said coupling, and

the original file comprises the original file data structure and data written to the first and second file data storage blocks on a file system memory space,

means for generating a first pointer of the plurality of pointers to the first file data storage block of the original file, and

means for merging the first and second new file data structures, wherein the means for merging comprises:

means for coupling a merge file data structure to the first and second file data storage blocks,

means for generating a first merge pointer to the first file data storage block,

means for generating a second merge pointer to the second file data storage block, and

means for including the first and second merge pointers in the merge file data structure.

28. The apparatus of claim 27 further comprising:

means for copying metadata from the original file data structure to the first new file data structure.

29. The apparatus of claim 28 further comprising:

means for deleting the original file data structure from the file system.

30. The apparatus of claim 28 , wherein the metadata comprises:

a date of creation of the original file;

a date of last modification of the original file;

ownership information of the original file; and

access permissions of the original file.

31. The apparatus of claim 28 further comprising:

means for creating first and second directory entries in the file system corresponding to the first and second new file data structures, respectively; and

means for removing a directory entry corresponding to the original file data structure from the file system.

32. The apparatus of claim 31 further comprising:

means for adding a directory entry to the file system corresponding to the merge file data structure;

means for removing the directory entries corresponding to the first and second new file data structures; and

means for deleting the first and second new file data structures.

33. The apparatus of claim 27 further comprising:

means for accessing the first file data storage block of the original file by referring to the first new file data structure.

34. An apparatus comprising:

means for splitting an original file comprising first and second file data storage blocks, said means for splitting comprising:

means for creating a first new file data structure corresponding to a first new file and a second new file data structure corresponding to a second new file, wherein the first new file data structure comprises an offset pointer and length of file information corresponding to a number of pointers in an original file data structure referenced by the first new file data structure,

means for coupling the first and second new file data structures to the respective first and second file data storage blocks of the original file, wherein

the first and second file data storage blocks are not replicated during said coupling, and

the original file comprises the original file data structure and data written to the first and second file data storage blocks on a file system memory space,

means for generating the offset pointer to a pointer to the first data storage block, wherein

the pointer to the first data storage block is within the original file data structure; and

means for merging the first and second new file data structures, wherein the means for merging comprises:

means for coupling a merge file data structure to the first and second file data storage blocks,

means for generating a first merge pointer to the first file data storage block,

means for generating a second merge pointer to the second file data storage block, and

means for including the first and second merge pointers in the merge file data structure.

35. The apparatus of claim 34 , wherein a file data structure of one or more of the first and second new file data structures and the original file data structure comprises:

one of an inode and a New Technology File System (NTFS) file attribute.

36. The apparatus of claim 34 further comprising:

means for including an identifier to the original file data structure in the first new file data structure.

37. The apparatus of claim 34 further comprising:

means for creating first and second directory entries in the file system corresponding to the first and second new file data structures, respectively.

38. The apparatus of claim 37 further comprising:

means for adding a directory entry to the file system corresponding to the original file data structure; and

means for removing the directory entries corresponding to the first and second new file data structures.

39. The apparatus of claim 34 further comprising:

means for accessing the first file data storage block of the original file by referring to the first new file data structure.

Assignments (9)
RELEASE OF SECURITY INTEREST Recorded Dec 16, 2024
From: ACQUIOM AGENCY SERVICES LLC, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC (F/K/A VERITAS US IP HOLDINGS LLC)
Reel/Frame 069712/0090 →
ASSIGNMENT OF SECURITY INTEREST IN PATENT COLLATERAL Recorded Nov 25, 2024
From: BANK OF AMERICA, N.A., AS ASSIGNOR
To: ACQUIOM AGENCY SERVICES LLC, AS ASSIGNEE
Reel/Frame 069440/0084 →
TERMINATION AND RELEASE OF SECURITY IN PATENTS AT R/F 037891/0726 Recorded Nov 30, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: VERITAS US IP HOLDINGS, LLC
Reel/Frame 054535/0814 →
MERGER AND CHANGE OF NAME Recorded Apr 18, 2016
From: VERITAS US IP HOLDINGS LLC; VERITAS TECHNOLOGIES LLC
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 038455/0752 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 037891/0726 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037891/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 4, 2016
From: SYMANTEC CORPORATION
To: VERITAS US IP HOLDINGS LLC
Reel/Frame 037697/0412 →
CHANGE OF NAME Recorded Oct 1, 2007
From: VERITAS OPERATING CORPORATION
To: SYMANTEC OPERATING CORPORATION
Reel/Frame 019899/0213 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 17, 2004
From: NAGARALU, SREE HARI; KUMAR, SUNDER PHANI; APTE, ANAND
To: VERITAS OPERATING CORPORATION
Reel/Frame 015812/0622 →