Computer system method and apparatus providing for various versions of a file without requiring data copy or log operations
First Claim
1. In a computer having an operating system including a file system, for executing an application program, a method of consistently storing user data from said application program into said file system comprising the computer implemented steps of:
- A) receiving from said application program, an argument indicating that a version of an existing file is to be created;
B) allocating a version index structure;
C) copying from an original index structure into said version index structure, file storage block allocation information;
D) connecting said version index structure to said original index structure of said existing file; and
E) resetting a connection to said original index structure of said existing file from a record of a name of said existing file and connecting said record of said name of said existing file to said version index structure.
2 Assignments
0 Petitions
Accused Products
Abstract
Various versions of a computer file are provided without requiring copying the file or logging changed data, so that the files have consistent user data. A program module responds to a system call argument and allocates another node in file system tables and copies metadata information from the old node into the new node, so that both nodes contain the same data block allocation information. Portions of the module set shadow pointers in the old node to point to the new node, and in the new node to point to the old node. Changes to data are made with respect to the new node and fresh physical data blocks are allocated for the changed blocks. A method includes the steps of allocating a new node for storing file allocation information for another version of an existing file; logically connecting the new node to the existing node for file name and other purposes; and replacing node identification information in the directory with the new mode identification. In other steps the method replaces the current node identification information of a file in the directory with previous node identification information obtained from the current node; and logically disconnects the current node from the previous node.
1172 Citations
23 Claims
-
1. In a computer having an operating system including a file system, for executing an application program, a method of consistently storing user data from said application program into said file system comprising the computer implemented steps of:
-
A) receiving from said application program, an argument indicating that a version of an existing file is to be created; B) allocating a version index structure; C) copying from an original index structure into said version index structure, file storage block allocation information; D) connecting said version index structure to said original index structure of said existing file; and E) resetting a connection to said original index structure of said existing file from a record of a name of said existing file and connecting said record of said name of said existing file to said version index structure. - View Dependent Claims (2, 3, 4, 5)
-
-
6. Apparatus in a computer having a processor, a plurality of storage devices, an operating system and a file system, for consistently storing user data from an application program into a file system, said apparatus comprising:
-
a version module in said operating system having an input for receiving from said application program, an argument indicating that a version of an existing file is to be created; a first portion of said version module allocating a version index structure; a second portion of said version module copying from an original index structure into said version index structure, file storage block allocation information; a third portion of said version module connecting said version index structure to an original index structure of said existing file; and a fourth portion of said version module resetting a connection to said original index structure of said existing file from a record of a name of said existing file and connecting said record of said name of said existing file to said version index structure. - View Dependent Claims (7, 8, 9)
-
-
10. A computer program storage medium readable by a computer and encoding a computer program of instructions for consistently storing user data from an application program into a file system, said computer program comprising the steps of:
-
A) receiving from said application program, an argument indicating that a version of an existing file is to be created; B) allocating a version index structure and copying from an original index structure into said version index structure, file storage block allocation information; C) connecting said version index structure to said original index structure of said existing file; and D) resetting a connection to said original index structure of said existing file from a record of a name of said existing file and connecting said record of said name of said existing file to said version index structure. - View Dependent Claims (11, 12, 13, 14)
-
-
15. A computer program product comprising:
-
a computer useable medium having computer readable code embodied therein for consistently storing user data from an application program into a file system, said computer program product comprising; computer readable program code devices configured to receive from said application program, an argument indicating that a version of an existing file is to be created; computer readable program code devices configured to allocate a version index structure; computer readable program code devices configured to copy from an original index structure into said version index structure, file storage block allocation information; computer readable program code devices configured to connect said version index structure to an original index structure of said existing file; and computer readable program code devices configured to reset a connection to said original index structure of said existing file from a record of a name of said existing file and connecting said record of said name of said existing file to said version index structure. - View Dependent Claims (16, 17, 18)
-
-
19. In a computer having an operating system including a file system, for executing an application program, a method of consistently storing user data from said application program into said file system comprising the computer implemented steps of:
-
A) receiving from said application program, an argument indicating that a version of an existing file is to be created; B) allocating a version index structure; C) copying from an original index structure into said version index structure, file storage block allocation information; D) connecting said version index structure to said original index structure of said existing file; E) resetting a connection to said original index structure of said existing file from a record of a name of said existing file and connecting said record of said name of said existing file to said version index structure; wherein the connecting of step D) further comprises the steps of; D1) setting a next pointer value in said original index structure to a numerical value of said version index structure; and D2) setting a back pointer value in said version index structure to a numerical value of said original index structure.
-
-
20. In a computer having a unix operating system including a file system, for executing an application program, a method of consistently storing user data from said application program into said file system comprising the computer implemented steps of:
-
A) receiving from said application program, a system call argument indicating that a version of an existing file is to be created; B) allocating a version index structure; C) copying from an original index structure into said version index structure, file storage block allocation information; D) connecting said version index structure to said original index structure of said existing file; E) resetting a connection to said original index structure of said existing file from a record of a name of said existing file and connecting said record of said name of said existing file to said version index structure; wherein the connecting of step D) further comprises the steps of; Dl) setting a next pointer value in said original index structure to a value of said version index structure; and D2) setting a back pointer value in said version index structure to a value of said original index structure.
-
-
21. Apparatus in a computer having a processor, a plurality of storage devices, an operating system and a file system, for consistently storing user data from an application program into a file system, said apparatus comprising:
-
a version module in said operating system having an input for receiving from said application program, an argument indicating that a version of an existing file is to be created; a first portion of said version module allocating a version index structure; a second portion of said version module copying from an original index structure into said version index structure, file storage block allocation information; a third portion of said version module connecting said version index structure to an original index structure of said existing file; a fourth portion of said version module resetting a connection to said original index structure of said existing file from a record of a name of said existing file and connecting said record of said name of said existing file to said version index structure; and said third portion of said version module further comprising a pointer portion for setting a next pointer value in said original index structure to a value of said version index structure and setting a back pointer value in said version index structure to a value of said original index structure, said pointer portion setting a numerical value as said value of said version index structure and a numerical value as said value of said original index structure.
-
-
22. A computer program storage medium readable by a computer and encoding a computer program of instructions for consistently storing user data from an application program into a file system, said computer program comprising the steps of:
-
A) receiving from said application program, an argument indicating that a version of an existing file is to be created; B) allocating a version index structure and copying from an original index structure into said version index structure, file storage block allocation information; C) connecting said version index structure to said original index structure of said existing file; and D) resetting a connection to said original index structure of said existing file from a record of a name of said existing file and connecting said record of said name of said existing file to said version index structure; said value of said version index structure and said value of said original index structure of said computer process being numerical values.
-
-
23. A computer program product comprising a computer useable medium having computer readable code embodied therein for consistently storing user data from an application program into a file system, said computer program product comprising:
-
computer readable program code devices configured to receive from said application program, an argument indicating that a version of an existing file is to be created; computer readable program code devices configured to allocate a version index structure; computer readable program code devices configured to copy from an original index structure into said version index structure, file storage block allocation information; computer readable program code devices configured to connect said version index structure to an original index structure of said existing file; computer readable program code devices configured to reset a connection to said original index structure of said existing file from a record of a name of said existing file and connecting said record of said name of said existing file to said version index structure; and computer readable pointer code devices configured to set a next pointer value in said original index structure to a numerical value of said version index structure and setting a back pointer value in said version index structure to a numerical value of said original index structure.
-
Specification