CA2379930A1 - Multi-model access to data - Google Patents

Multi-model access to data Download PDF

Info

Publication number
CA2379930A1
CA2379930A1 CA002379930A CA2379930A CA2379930A1 CA 2379930 A1 CA2379930 A1 CA 2379930A1 CA 002379930 A CA002379930 A CA 002379930A CA 2379930 A CA2379930 A CA 2379930A CA 2379930 A1 CA2379930 A1 CA 2379930A1
Authority
CA
Canada
Prior art keywords
file
version
computer
readable medium
files
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.)
Granted
Application number
CA002379930A
Other languages
French (fr)
Other versions
CA2379930C (en
Inventor
Eric Sedlar
Michael Roberts
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.)
Oracle International Corp
Original Assignee
Individual
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 US09/571,696 external-priority patent/US8335775B1/en
Priority claimed from US09/571,496 external-priority patent/US6922708B1/en
Priority claimed from US09/571,036 external-priority patent/US6549916B1/en
Priority claimed from US09/571,568 external-priority patent/US7280995B1/en
Application filed by Individual filed Critical Individual
Priority to CA2650251A priority Critical patent/CA2650251C/en
Priority to CA2646776A priority patent/CA2646776C/en
Publication of CA2379930A1 publication Critical patent/CA2379930A1/en
Application granted granted Critical
Publication of CA2379930C publication Critical patent/CA2379930C/en
Anticipated expiration legal-status Critical
Expired - Lifetime 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/10File systems; File servers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Techniques are provided for accessing data stored in a database. According t o one technique, an application makes one or more calls to an operating system to access a file. The operating system includes routines that implement an operating system file system. The one or more calls are made to the routines that implement the operating system file system. In response to the one or more calls, one or more database commands are issued to a database server th at manages the database. The database server executes the database commands to retrieve the data from the database. The file is generated from the data, an d provided to the application.

Claims (116)

1. A method for accessing data stored in a database, the method comprising the steps of:
an application making one or more calls to an operating system to access a file;
wherein said operating system includes routines which implement an operating system file system;
wherein said one or more calls are made to said routines which implement said operating system file system;
in response to said one or more calls, issuing one or more database commands to a database server that manages said database;
said database server executing said database commands to retrieve said data from said database;
generating said file from said data; and providing said file to said application.
2. The method of Claim 1 wherein the step of providing said file to said application is performed by said routines that implement said operating system file system.
3. The method of Claim 1 wherein the step of issuing one or more database commands in response to said one or more calls includes the steps of:
one or more of said routines that implement said operating system file system sending one or more I/O commands to a protocol server configured to operate with said operating system;

said protocol server translating said one or more I/O commands to one or more DB
file system commands; and issuing said one or more database commands in response to said one or more DB
file system commands.
4. A computer-readable medium bearing instructions for accessing data stored in a database, the computer-readable medium comprising instructions for performing the steps of:

an application making one or more calls to an operating system to access a file;
wherein said operating system includes routines which implement an operating system file system;
wherein said one or more calls are made to said routines which implement said operating system file system;
in response to said one or more calls, issuing one or more database commands to a database server that manages said database;
said database server executing said database commands to retrieve said data from said database;
generating said file from said data; and providing said file to said application.
5. The computer-readable medium of Claim 4 wherein the step of providing said file to said application is performed by said routines that implement said operating system file system.
6. The computer-readable medium of Claim 4 wherein the step of issuing one or more database commands in response to said one or more calls includes the steps of:
one or more of said routines that implement said operating system file system sending one or more I/O commands to a protocol server configured to operate with said operating system;
said protocol server translating said one or more I/O commands to one or more DB
file system commands; and issuing said one or more database commands in response to said one or more DB
file system commands.
7. A method for performing file operations, the method including the steps of exposing a file system interface to applications, said file system interface including routines for saving and retrieving files;
receiving through said file system interface calls to perform a plurality of file operations;
performing said plurality of file operations as a single transaction by performing the steps of:
if all file operations of said plurality of file operations are completed without a failure, then making permanent all changes made by said plurality of file operations; and if any file operations of said plurality of file operations fail, then undoing all changes made by all of said plurality of file operations.
8. The method of Claim 7 wherein said plurality of file operations include at least a first file operation on a first file and a second file operation on a second file.
9. The method of Claim 7 wherein said plurality of file operations include a series of write operations to a single file.
10. The method of Claim 7 wherein the step of performing said plurality of file operations includes issuing one or more database statements to a database server, said database server executing said database statements to perform said plurality of file operations.
11. The method of Claim 9 wherein said plurality of write operations correspond to the transfer of said single file over a network connection to be stored in a database.
12. The method of Claim 7 wherein said calls are made by a protocol server in response to commands received by the protocol server.
13. The method of Claim 12 wherein said protocol server emulates a device driver interface, and said commands are sent to said protocol server by an operating system.
14. A computer-readable medium bearing instructions for performing file operations, the computer-readable medium including instructions for performing the steps of:
exposing a file system interface to applications, said file system interface including routines for saving and retrieving files;
receiving through said file system interface calls to perform a plurality of file operations;
performing said plurality of file operations as a single transaction by performing the steps of:

if all file operations of said plurality of file operations are completed without a failure, then making permanent all changes made by said plurality of file operations; and if any file operations of said plurality of file operations fail, then undoing all changes made by all of said plurality of file operations.
15. The computer-readable medium of Claim 14 wherein said plurality of file operations include at least a first file operation on a first file and a second file operation on a second file.
16. The computer-readable medium of Claim 14 wherein said plurality of file operations include a series of write operations to a single file.
17. The computer-readable medium of Claim 14 wherein the step of performing said plurality of file operations includes issuing one or more database statements to a database server, said database server executing said database statements to perform said plurality of file operations.
18. The computer-readable medium of Claim 16 wherein said plurality of write operations correspond to the transfer of said single file over a network connection to be stored in a database.
19. The computer-readable medium of Claim 14 wherein said calls are made by a protocol server in response to commands received by the protocol server.
20. The computer-readable medium of Claim 19 wherein said protocol server emulates a device driver interface, and said commands are sent to said protocol server by an operating system.
21. A method for responding to file requests received through a file system interface, the method comprising the steps of:
establishing an association between a file identifier and a query;
receiving through said file system interface a request for a file associated with said file identifier;
in response to said request, performing the steps of:
executing said query to generate a set of data;
generating contents of said file based on said set of data; and providing said file through said file system interface.
22. The method of Claim 21 wherein:
the file is a directory;
the request is for a listing of files within said directory; and the step of generating contents is performed by determining which files are within said directory based on said set of data.
23. The method of Claim 22 wherein:
the query selects a set of database records; and the step of providing said file includes presenting database records from said set of database records as files within said directory.
24. The method of Claim 21 wherein:
said file is a document; and the step of generating contents includes constructing at least a portion of said document from said set of data.
25. The method of Claim 24 wherein the step of generating contents includes combining said portion constructed from said set of data with a previously stored portion of the document to create said document.
26. The method of Claim 22 wherein:
the step of determining which files are within said directory based on said set of data includes determining one or more directories within said directory;
and the method further comprises the step of determining which files are within said one or more directories based on said set of data.
27. The method of Claim 26 wherein:
the query includes a group by clause that specifies a group by key; and the one or more directories correspond to values for said group by key.
28. The method of Claim 21 wherein:
the step of receiving through said file system interface a request for a file associated with said file identifier includes the steps of:
an operating system receiving said request from an application and sending a message in response to the request; and a protocol server receiving the message from the operating system;
the step of executing said query to generate a set of data includes the step of issuing a database command to a database server in response to said message; and the step of providing said file through said file system interface includes the steps of:
the protocol server providing said file to said operating system; and said operating system providing said file to said application.
29. A computer-readable medium bearing instructions for responding to file requests received through a file system interface, the computer-readable medium comprising instructions for performing the steps of:
establishing an association between a file identifier and a query;
receiving through said file system interface a request for a file associated with said file identifier;
in response to said request, performing the steps of:

executing said query to generate a set of data;
generating contents of said file based on said set of data; and providing said file through said file system interface.
30. The computer-readable medium of Claim 29 wherein:
the file is a directory;
the request is for a listing of files within said directory; and the step of generating contents is performed by determining which files are within said directory based on said set of data.
31. The computer-readable medium of Claim 30 wherein:
the query selects a set of database records; and the step of providing said file includes presenting database records from said set of database records as files within said directory.
32. The computer-readable medium of Claim 29 wherein:
said file is a document; and the step of generating contents includes constructing at least a portion of said document from said set of data.
33. The computer-readable medium of Claim 32 wherein the step of generating contents includes combining said portion constructed from said set of data with a previously stored portion of the document to create said document.
34. The computer-readable medium of Claim 30 wherein:

the step of determining which files are within said directory based on said set of data includes determining one or more directories within said directory;
and the computer-readable medium further comprises the step of determining which files are within said one or more directories based on said set of data.
35. The computer-readable medium of Claim 34 wherein:
the query includes a group by clause that specifies a group by key; and the one or more directories correspond to values for said group by key.
36. The computer-readable medium of Claim 29 wherein:
the step of receiving through said file system interface a request for a file associated with said file identifier includes the steps of:
an operating system receiving said request from an application and sending a message in response to the request; and a protocol server receiving the message from the operating system;
the step of executing said query to generate a set of data includes the step of issuing a database command to a database server in response to said message; and the step of providing said file through said file system interface includes the steps of:
the protocol server providing said file to said operating system; and said operating system providing said file to said application.
37. A method for managing files in a computer system, the method comprising the steps of:
establishing an association between a type of file system operation, a file, and an interested entity;
detecting when said type of file system operation is performed on said file;
and in response to detecting that said type of file system operation is performed on said file, sending a message to said interested entity.
38. The method of Claim 37 wherein said message includes data that indicates that said type of file system operation was performed on said file.
39. The method of Claim 37 wherein:
the file is a directory; and the type of file system operation is the insertion of another file into said directory.
40. The method of Claim 37 wherein the step of establishing an association between the type of file system operation, the file, and the interested entity is performed in response to the file being stored in a particular directory.
41. The method of Claim 40 further comprising the step of deleting the association between the type of file system operation, the file, and the interested entity in response to the file being removed from said particular directory.
42. The method of Claim 37 wherein:
the file is stored in a database; and the method includes the step of performing said type of file operation on said file by issuing one or more database commands to a database server that manages said database.
43. The method of Claim 42 wherein the step of establishing an association between a type of file system operation, a file, and an interested entity includes storing a database record in said database that indicates that said interested entity should be sent a message when said type of file system operation is performed on said file.
44. A computer-readable medium for managing files in a computer system, the computer-readable medium comprising the steps of:
establishing an association between a type of file system operation, a file, and an interested entity;
detecting when said type of file system operation is performed on said file;
and in response to detecting that said type of file system operation is performed on said file, sending a message to said interested entity.
45. The computer-readable medium of Claim 44 wherein said message includes data that indicates that said type of file system operation was performed on said file.
46. The computer-readable medium of Claim 44 wherein:
the file is a directory; and the type of file system operation is the insertion of another file into said directory.
47. The computer-readable medium of Claim 44 wherein the step of establishing an association between the type of file system operation, the file, and the interested entity is performed in response to the file being stored in a particular directory.
48. The computer-readable medium of Claim 47 further comprising the step of deleting the association between the type of file system operation, the file, and the interested entity in response to the file being removed from said particular directory.
49. The computer-readable medium of Claim 44 wherein:
the file is stored in a database; and the computer-readable medium includes the step of performing said type of file operation on said file by issuing one or more database commands to a database server that manages said database.
50. The computer-readable medium of Claim 49 wherein the step of establishing an association between a type of file system operation, a file, and an interested entity includes storing a database record in said database that indicates that said interested entity should be sent a message when said type of file system operation is performed on said file.
51. A method for implementing a file system for storing electronic files, the method comprising the steps of:
establishing a first file class that includes a first set of methods;
receiving data that identifies a second file class that includes a second set of methods;
in response to a request to perform an operation on a file, the file system performing the steps of identifying the class associated with the file;
if the file is associated with the first class, then invoking a first routine associated with said first class for performing said operation; and if the file is associated with the second class, then invoking a second routine associated with said second class for performing said operation.
52. The method of Claim 51 wherein:
the data that identifies said second file class specifies that said second file class is a subclass of said first file class; and the file system causes the second file class to inherit the first set of methods from the first file class.
53. The method of Claim 52 wherein:
the first routine provides a first implementation of said operation; and the second routine provides a second implementation of said operation that overrides said first implementation for files associated with said second file class.
54. A method for implementing a file system for storing electronic files, the method comprising the steps of:
establishing a first file class that includes a first set of attributes and a first set of methods;
receiving data that identifies a second file class that includes a second set of attributes and a second set of methods;
the file system storing attribute values for said first set of attributes for files of said first file class, and attribute values for said second set of attributes for files of said second file class, wherein said first set of attributes is not identical to said second set of attributes.
55. The method of Claim 54 wherein the file system stores, within relational tables managed by a database server, attribute values of files stored within said file system.
56. The method of Claim 55 wherein:
the second file class is a subclass of the first file class;
the relational tables include a first relational table that stores attribute values for said first set of attributes; and the relational tables include a second relational table that stores attribute values for those attributes in said second set of attributes that are not included in said first set of attributes.
57. The method of Claim 56 wherein:
the file system stores a particular file associated with said second file class;

for said particular file, the file system stores in a particular row of said first relational table attribute values for said first set of attributes; and for said particular file, the file system stores in a particular row of said second relational table attribute values for those attributes in said second set of attributes that are not included in said first set of attributes.
58. The method of Claim 57 wherein said particular row of said first relational table includes link to said particular row of said second relational table.
59. A computer-readable medium bearing instructions for implementing a file system for storing electronic files, the computer-readable medium comprising instructions for performing the steps of:
establishing a first file class that includes a first set of methods;
receiving data that identifies a second file class that includes a second set of methods;
in response to a request to perform an operation on a file, the file system performing the steps of identifying the class associated with the file;
if the file is associated with the first class, then invoking a first routine associated with said first class for performing said operation; and if the file is associated with the second class, then invoking a second routine associated with said second class for performing said operation.
60. The computer-readable medium of Claim 59 wherein:
the data that identifies said second file class specifies that said second file class is a subclass of said first file class; and the file system causes the second file class to inherit the first set of methods from the first file class.
61. The computer-readable medium of Claim 60 wherein:
the first routine provides a first implementation of said operation; and the second routine provides a second implementation of said operation that overrides said first implementation for files associated with said second file class.
62. A computer-readable medium bearing instructions for implementing a file system for storing electronic files, the computer-readable medium comprising instructions for performing the steps of:
establishing a first file class that includes a first set of attributes and a first set of methods;
receiving data that identifies a second file class that includes a second set of attributes and a second set of methods;
the file system storing attribute values for said first set of attributes for files of said first file class, and attribute values for said second set of attributes for files of said second file class, wherein said first set of attributes is not identical to said second set of attributes.
63. The computer-readable medium of Claim 62 wherein the file system stores, within relational tables managed by a database server, attribute values of files stored within said file system.
64. The computer-readable medium of Claim 63 wherein:
the second file class is a subclass of the first file class;
the relational tables include a first relational table that stores attribute values for said first set of attributes; and the relational tables include a second relational table that stores attribute values for those attributes in said second set of attributes that are not included in said first set of attributes.
65. The computer-readable medium of Claim 64 wherein:
the file system stores a particular file associated with said second file class;
for said particular file, the file system stores in a particular row of said first relational table attribute values for said first set of attributes; and for said particular file, the file system stores in a particular row of said second relational table attribute values for those attributes in said second set of attributes that are not included in said first set of attributes.
66. The computer-readable medium of Claim 65 wherein said particular row of said first relational table includes link to said particular row of said second relational table.
67. A method for accessing data stored in a database, the method comprising the steps of:
receiving a request from an application for a stored file that is currently stored in a database, said stored file being associated with a first file type;
issuing one or more database commands to retrieve data associated with said stored file from said database;
selecting a renderer from a plurality of renderers based on a first set of selection criteria;
using said renderer to generate an outbound file from said data, wherein said outbound file corresponds to a second file type; and providing said outbound file to said application.
68. The method of Claim 67 further wherein:
the method further includes the step of determining that the application supports a plurality of file types; and said renderer selects said second file type from said plurality of file types based on a second set of selection criteria.
69. The method of Claim 68 wherein:
the method further includes the step of determining values of one or more attributes of said stored file; and said second set of selection criteria includes a selection criterion that is based on the values of said one or more attributes.
70. The method of Claim 68 wherein the step of determining that the application supports a plurality of file types includes the steps of:
determining an identity of said application; and reading data from said database that indicates capabilities of said application.
71. The method of Claim 67 wherein the first set of selection criteria includes a selection criterion that is based on the file type of said stored file.
72. The method of Claim 67 wherein:
the first file type is the same file type as said second file type; and the step of generating said outbound file includes combining into a single file values from a plurality of columns of one or more tables in said database.
73. The method of Claim 67 further comprising performing the following steps before receiving said request:
receiving an original file of said first data type;
parsing said original file to generate one or more metadata values for said original file;
storing said original file in said database as said stored file; and storing said one or more metadata values in said database in a manner that associates said one or more metadata values with said stored file.
74. The method of Claim 73 wherein:
the step of receiving said original file is performed by receiving data transmitted according to a first protocol;

the step of providing said outbound file to said application is performed by transmitting data according to a second protocol;
said first protocol being different from said second protocol.
75. The method of Claim 74 wherein:
the first protocol is an I/O protocol supported by a first operating system;
and the second protocol is an I/O protocol supported by a second operating system.
76. The method of Claim 74 wherein at least one of said first protocol and said second protocol belongs to a set of protocols that consists of HTTP, FTP, IMAP4 and POP3.
77. A computer-readable medium bearing instructions for accessing data stored in a database, the computer-readable medium comprising instructions for performing the steps of:
receiving a request from an application for a stored file that is currently stored in a database, said stored file being associated with a first file type;
issuing one or more database commands to retrieve data associated with said stored file from said database;
selecting a renderer from a plurality of renderers based on a first set of selection criteria;

using said renderer to generate an outbound file from said data, wherein said outbound file corresponds to a second file type; and providing said outbound file to said application.
78. The computer-readable medium of Claim 77 further wherein:
the computer-readable medium further includes instructions for performing the step of determining that the application supports a plurality of file types;
and said renderer selects said second file type from said plurality of file types based on a second set of selection criteria.
79. The computer-readable medium of Claim 78 wherein:
the computer-readable medium further includes instructions for performing the step of determining values of one or more attributes of said stored file; and said second set of selection criteria includes a selection criterion that is based on the values of said one or more attributes.
80. The computer-readable medium of Claim 78 wherein the step of determining that the application supports a plurality of file types includes the steps of:
determining an identity of said application; and reading data from said database that indicates capabilities of said application.
81. The computer-readable medium of Claim 77 wherein the first set of selection criteria includes a selection criterion that is based on the file type of said stored file.
82. The computer-readable medium of Claim 77 wherein:
the first file type is the same file type as said second file type; and the step of generating said outbound file includes combining into a single file values from a plurality of columns of one or more tables in said database.
83. The computer-readable medium of Claim 77 further comprising instructions for performing the following steps before receiving said request:
receiving an original file of said first data type;
parsing said original file to generate one or more metadata values for said original file;
storing said original file in said database as said stored file; and storing said one or more metadata values in said database in a manner that associates said one or more metadata values with said stored file.
84. The computer-readable medium of Claim 83 wherein:
the step of receiving said original file is performed by receiving data transmitted according to a first protocol;
the step of providing said outbound file to said application is performed by transmitting data according to a second protocol;
said first protocol being different from said second protocol.
85. The computer-readable medium of Claim 84 wherein:
the first protocol is an I/O protocol supported by a first operating system;
and the second protocol is an I/O protocol supported by a second operating system.
86. The computer-readable medium of Claim 84 wherein at least one of said first protocol and said second protocol belongs to a set of protocols that consists of HTTP, FTP, IMAP4 and POP3.
87. A method for managing versions of files in a file system, the method comprising the steps of:
creating new versions of directories in response to creation of new versions of files that descend from the directories, where the different versions of a versioned directory are associated with different points in time; and maintaining links between the files in the file system such that the versions of the files that descend from a particular version of a versioned directory reflect the point in time associated with the versioned directory.
88. The method of Claim 87 further comprising the steps of:
determining a selected point in time that files are to reflect for a particular operation;
selecting a particular version of a directory from a plurality of versions of the directory on the basis that the particular version of the directory is associated with the selected point in time; and following links from the selected version of the directory to locate one or more files involved in said operation.
89. The method of Claim 87 wherein:
the method includes the step of receiving input indicating movement of a particular file from a version of a first directory to a first version of a second directory;

the first version of the first directory includes a first set of zero or more files other than said particular file;
the first version of the second directory includes a second set of zero or more files other than said particular file;
the step of maintaining links includes performing the following steps in response to said input:
creating a second version of said first directory;
establishing said first set of zero or more files as members of said second version of said first directory without establishing said particular file as a member of said second version of said first directory;
creating a second version of said second directory; and establishing said particular file and said second set of zero or more files as members of said second version of said second directory.
90. A method for managing versions of files in a file system, the method comprising the steps of:
providing a mechanism for tagging versions of files that are not to be overwritten;
in response to an update to a first version of a file, performing the steps of determining whether the first version of the file is tagged;
if the first version of the file is tagged, then storing said second version of the file while retaining said first version of the file; and if the first version of the file is not tagged, then deleting said first version of the file in response to storing said second version of the file.
91. The method of Claim 90 wherein:

the method includes the step of traversing a file hierarchy to locate said first version of a file;
the step of determining whether the first version of the file is tagged included determining whether any file traversed to locate said first version of the file was tagged;
if any file traversed to locate said first version of the file was tagged, then storing said second version of the file while retaining said first version of the file;
and if no file traversed to locate said first version of the file was tagged, then deleting said first version of the file in response to storing said second version of the file.
92. The method of Claim 90 wherein:
the first version of said file is stored in a first version of a particular directory;
the first version of the particular directory includes one or more files other than said file;
the step of storing said second version of the file while retaining said first version of the file includes:
creating a second version of said particular directory;
establishing said one or more files as members of said second version of said particular directory; and establishing said second version of said file as a member of said second version of said particular directory while maintaining said first version of said particular file as a member of said first version of said particular directory.
93. The method of Claim 87 wherein:
the method includes the step of receiving an update to a first version of a particular file;
the first version of said particular file is stored in a first version of a particular directory;
the first version of the particular directory includes one or more files other than said particular file;
the step of maintaining links includes performing the following steps in response to the update:
creating a second version of said particular directory;
creating a second version of said particular file;
establishing said one or more files as members of said second version of said particular directory; and establishing said second version of said particular file as a member of said second version of said particular directory while maintaining said first version of said particular file as a member of said first version of said particular directory.
94. A method for maintaining versions of files in a file system, the method comprising the steps of:
in response to a change made to a first version of a file, determining whether a first set of criteria is satisfied;
if the first set of criteria is satisfied, then creating a second version of the file while retaining the first version of the file; and creating a new version of each ancestor file above said file in a file hierarchy if said ancestor file satisfies a second set of criteria.
95. The method of Claim 94 further comprising the steps of:
receiving user input that specifies that one or more files in said file system are to be tagged;
storing data within said file system to indicate that said one or more files are tagged;
wherein the step of determining whether a first set of criteria is satisfied includes determining whether said first version of said file is tagged; and wherein said first set of criteria includes that said first version of said file is tagged.
96. The method of Claim 94 further comprising the step of associating said file with a project, wherein said second set of criteria includes that said ancestor file belongs to said project.
97. The method of Claim 96 wherein the file system includes one or more files that belong to a second project, the method further including the step of allowing a user to use a view of said file system in which files that belong to said project are seen as they existed at a first point in time, and the one or more files that belong to the second project are seen as they existed at a second point in time that is different from said first point in time.
98. The method of Claim 97 further comprising the steps of:

through said view, performing a traversal of said file hierarchy based on links between files in said file system; and during said traversal, following a link that has a source file and a target file only if said view specifies that said source file and said target file are to be seen as of a same point in time.
99. The method of Claim 95 further comprising the step of deleting a third version of said file that is not tagged in response to creating said second version of the file.
100. The method of Claim 99 wherein the step of deleting said third version of said file is performed in response to detecting that creation of said second version of the file would exceed a threshold maximum number of untagged versions of said file.
101. The method of Claim 97 further comprising the step of marking links in said file system to indicate whether the source file and the target file associated with the links belong to the same project.
102. A computer-readable medium bearing instructions for managing versions of files in a file system, the computer-readable medium comprising instructions for performing the steps of:
creating new versions of directories in response to creation of new versions of files that descend from the directories, where the different versions of a versioned directory are associated with different points in time; and maintaining links between the files in the file system such that the versions of the files that descend from a particular version of a versioned directory reflect the point in time associated with the versioned directory.
103. The computer-readable medium of Claim 102 further comprising instructions for performing the steps of:
determining a selected point in time that files are to reflect for a particular operation;
selecting a particular version of a directory from a plurality of versions of the directory on the basis that the particular version of the directory is associated with the selected point in time; and following links from the selected version of the directory to locate one or more files involved in said operation.
104. The computer-readable medium of Claim 102 wherein:
the computer-readable medium includes instructions for performing the step of receiving input indicating movement of a particular file from a version of a first directory to a first version of a second directory;
the first version of the first directory includes a first set of zero or more files other than said particular file;
the first version of the second directory includes a second set of zero or more files other than said particular file;
the step of maintaining links includes performing the following steps in response to said input:
creating a second version of said first directory;
establishing said first set of zero or more files as members of said second version of said first directory without establishing said particular file as a member of said second version of said first directory;
creating a second version of said second directory; and establishing said particular file and said second set of zero or more files as members of said second version of said second directory.
105. A computer-readable medium bearing instructions for managing versions of files in a file system, the computer-readable medium comprising instructions for performing the steps of:
providing a mechanism for tagging versions of files that are not to be overwritten;
in response to an update to a first version of a file, performing the steps of determining whether the first version of the file is tagged;
if the first version of the file is tagged, then storing said second version of the file while retaining said first version of the file; and if the first version of the file is not tagged, then deleting said first version of the file in response to storing said second version of the file.
106. The computer-readable medium of Claim 105 wherein:
the computer-readable medium includes instructions for performing the step of traversing a file hierarchy to locate said first version of a file;
the step of determining whether the first version of the file is tagged included determining whether any file traversed to locate said first version of the file was tagged;
if any file traversed to locate said first version of the file was tagged, then storing said second version of the file while retaining said first version of the file;
and if no file traversed to locate said first version of the file was tagged, then deleting said first version of the file in response to storing said second version of the file.
107. The computer-readable medium of Claim 105 wherein:
the first version of said file is stored in a first version of a particular directory;
the first version of the particular directory includes one or more files other than said file;
the step of storing said second version of the file while retaining said first version of the file includes:
creating a second version of said particular directory;
establishing said one or more files as members of said second version of said particular directory; and establishing said second version of said file as a member of said second version of said particular directory while maintaining said first version of said particular file as a member of said first version of said particular directory.
108. The computer-readable medium of Claim 102 wherein:
the computer-readable medium includes instructions for performing the step of receiving an update to a first version of a particular file;
the first version of said particular file is stored in a first version of a particular directory;
the first version of the particular directory includes one or more files other than said particular file;

the step of maintaining links includes performing the following steps in response to the update:
creating a second version of said particular directory;
creating a second version of said particular file;

establishing said one or more files as members of said second version of said particular directory; and establishing said second version of said particular file as a member of said second version of said particular directory while maintaining said first version of said particular file as a member of said first version of said particular directory.
109. A computer-readable medium bearing instructions for maintaining versions of files in a file system, the computer-readable medium comprising instructions for performing the steps of:
in response to a change made to a first version of a file, determining whether a first set of criteria is satisfied;
if the first set of criteria is satisfied, then creating a second version of the file while retaining the first version of the file; and creating a new version of each ancestor file above said file in a file hierarchy if said ancestor file satisfies a second set of criteria.
110. The computer-readable medium of Claim 109 further comprising instructions for performing the steps of:
receiving user input that specifies that one or more files in said file system are to be tagged;
storing data within said file system to indicate that said one or more files are tagged;
wherein the step of determining whether a first set of criteria is satisfied includes determining whether said first version of said file is tagged; and wherein said first set of criteria includes that said first version of said file is tagged.
111. The computer-readable medium of Claim 109 further comprising instructions for performing the step of associating said file with a project, wherein said second set of criteria includes that said ancestor file belongs to said project.
112. The computer-readable medium of Claim 111 wherein the file system includes one or more files that belong to a second project, the computer-readable medium further including instructions for performing the step of allowing a user to use a view of said file system in which files that belong to said project are seen as they existed at a first point in time, and the one or more files that belong to the second project are seen as they existed at a second point in time that is different from said first point in time.
113. The computer-readable medium of Claim 112 further comprising instructions for performing the steps of:
through said view, performing a traversal of said file hierarchy based on links between files in said file system; and during said traversal, following a link that has a source file and a target file only if said view specifies that said source file and said target file are to be seen as of a same point in time.
114. The computer-readable medium of Claim 110 further comprising instructions for performing the step of deleting a third version of said file that is not tagged in response to creating said second version of the file.
115. The computer-readable medium of Claim 114 wherein the step of deleting said third version of said file is performed in response to detecting that creation of said second version of the file would exceed a threshold maximum number of untagged versions of said file.
116. The computer-readable medium of Claim 112 further comprising instructions for performing the step of marking links in said file system to indicate whether the source file and the target file associated with the links belong to the same project.
CA2379930A 1999-08-05 2000-07-26 Multi-model access to data Expired - Lifetime CA2379930C (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CA2650251A CA2650251C (en) 1999-08-05 2000-07-26 Internet file system
CA2646776A CA2646776C (en) 1999-08-05 2000-07-26 Internet file system

Applications Claiming Priority (17)

Application Number Priority Date Filing Date Title
US14753899P 1999-08-05 1999-08-05
US60/147,538 1999-08-05
US57149200A 2000-05-15 2000-05-15
US09/571,696 US8335775B1 (en) 1999-08-05 2000-05-15 Versioning in internet file system
US09/571,696 2000-05-15
US09/571,036 2000-05-15
US09/571,568 2000-05-15
US09/571,060 US7620620B1 (en) 1999-08-05 2000-05-15 Basing directory contents on a query that is associated with a file identifier
US09/571,496 US6922708B1 (en) 1999-02-18 2000-05-15 File system that supports transactions
US09/571,060 2000-05-15
US09/571,036 US6549916B1 (en) 1999-08-05 2000-05-15 Event notification system tied to a file system
US09/571,508 2000-05-15
US09/571,568 US7280995B1 (en) 1999-08-05 2000-05-15 On-the-fly format conversion
US09/571,496 2000-05-15
US09/571,492 2000-05-15
US09/571,508 US7418435B1 (en) 1999-08-05 2000-05-15 Multi-model access to data
PCT/US2000/020386 WO2001011486A2 (en) 1999-08-05 2000-07-26 Internet file system

Related Child Applications (2)

Application Number Title Priority Date Filing Date
CA2646776A Division CA2646776C (en) 1999-08-05 2000-07-26 Internet file system
CA2650251A Division CA2650251C (en) 1999-08-05 2000-07-26 Internet file system

Publications (2)

Publication Number Publication Date
CA2379930A1 true CA2379930A1 (en) 2001-02-15
CA2379930C CA2379930C (en) 2012-12-18

Family

ID=27574958

Family Applications (1)

Application Number Title Priority Date Filing Date
CA2379930A Expired - Lifetime CA2379930C (en) 1999-08-05 2000-07-26 Multi-model access to data

Country Status (5)

Country Link
EP (1) EP1330727A2 (en)
JP (1) JP5113967B2 (en)
AU (6) AU774090B2 (en)
CA (1) CA2379930C (en)
WO (1) WO2001011486A2 (en)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0107078D0 (en) * 2001-03-21 2001-05-09 Nokia Oyj Management and distribution of electronic media
US7320141B2 (en) * 2001-03-21 2008-01-15 International Business Machines Corporation Method and system for server support for pluggable authorization systems
US7200627B2 (en) 2001-03-21 2007-04-03 Nokia Corporation Method and apparatus for generating a directory structure
WO2002082312A2 (en) * 2001-04-06 2002-10-17 International Business Machines Corporation A method for standardized file-based access to databases, enterprise java beans and content management systems
US20050182776A1 (en) * 2004-02-18 2005-08-18 Clark Yennie Time-addressed database management system
US20050203903A1 (en) * 2004-03-10 2005-09-15 Rajan Rajeev B. System and method for locking and isolation in a storage platform
US7644239B2 (en) 2004-05-03 2010-01-05 Microsoft Corporation Non-volatile memory cache performance improvement
US7366740B2 (en) 2004-05-03 2008-04-29 Microsoft Corporation Systems and methods for automatic maintenance and repair of enitites in a data model
US7143120B2 (en) * 2004-05-03 2006-11-28 Microsoft Corporation Systems and methods for automated maintenance and repair of database and file systems
US7707498B2 (en) 2004-09-30 2010-04-27 Microsoft Corporation Specific type content manager in an electronic document
US7490197B2 (en) 2004-10-21 2009-02-10 Microsoft Corporation Using external memory devices to improve system performance
US7873596B2 (en) 2006-05-23 2011-01-18 Microsoft Corporation Extending cluster allocations in an extensible file system
US8321439B2 (en) 2004-12-17 2012-11-27 Microsoft Corporation Quick filename lookup using name hash
US8606830B2 (en) 2004-12-17 2013-12-10 Microsoft Corporation Contiguous file allocation in an extensible file system
US9639554B2 (en) 2004-12-17 2017-05-02 Microsoft Technology Licensing, Llc Extensible file system
US7730394B2 (en) 2005-01-06 2010-06-01 Microsoft Corporation Data binding in a word-processing application
US7945590B2 (en) 2005-01-06 2011-05-17 Microsoft Corporation Programmability for binding data
US7752224B2 (en) 2005-02-25 2010-07-06 Microsoft Corporation Programmability for XML data store for documents
US7668873B2 (en) * 2005-02-25 2010-02-23 Microsoft Corporation Data store for software application documents
US7953696B2 (en) 2005-09-09 2011-05-31 Microsoft Corporation Real-time synchronization of XML data between applications
US8914557B2 (en) 2005-12-16 2014-12-16 Microsoft Corporation Optimizing write and wear performance for a memory
JP5309607B2 (en) * 2008-02-26 2013-10-09 日本電気株式会社 Information classification display system based on tag information
US9032151B2 (en) 2008-09-15 2015-05-12 Microsoft Technology Licensing, Llc Method and system for ensuring reliability of cache data and metadata subsequent to a reboot
US7953774B2 (en) 2008-09-19 2011-05-31 Microsoft Corporation Aggregation of write traffic to a data store
JP2011008443A (en) * 2009-06-24 2011-01-13 Mitsubishi Electric Corp Database definition generation device, database design device, database construction system, computer program, and database definition generation method
US8516137B2 (en) 2009-11-16 2013-08-20 Microsoft Corporation Managing virtual hard drives as blobs
WO2012111129A1 (en) * 2011-02-17 2012-08-23 三菱電機株式会社 Database connection device
CN107729504A (en) * 2017-10-23 2018-02-23 武汉楚鼎信息技术有限公司 A kind of method and system for handling large data objectses

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0229232A2 (en) * 1985-12-31 1987-07-22 Tektronix, Inc. File management system
US5150473A (en) * 1990-01-16 1992-09-22 Dantz Development Corporation Data storage format for addressable or sequential memory media
CA2067633C (en) * 1991-07-24 1996-10-01 Eric Jonathan Bauer Method and apparatus for accessing a computer-based file system
US5513351A (en) * 1994-07-28 1996-04-30 International Business Machines Corporation Protecting a system during system maintenance by usage of temporary filenames in an alias table
US5737736A (en) * 1994-07-29 1998-04-07 Oracle Corporation Method and apparatus for storing objects using a c-structure and a bind descriptor
US5581755A (en) * 1995-01-31 1996-12-03 Unisys Corporation Method for maintaining a history of system data and processes for an enterprise
US5649158A (en) * 1995-02-23 1997-07-15 International Business Machines Corporation Method for incrementally archiving primary storage to archive storage by utilizing both a partition archive status array and a partition map
US5675802A (en) * 1995-03-31 1997-10-07 Pure Atria Corporation Version control system for geographically distributed software development
US5870757A (en) * 1995-09-11 1999-02-09 Sun Microsystems, Inc. Single transaction technique for a journaling file system of a computer operating system
US5706510A (en) * 1996-03-15 1998-01-06 Hewlett-Packard Company Zymbolic history management system
WO1997046956A1 (en) * 1996-06-07 1997-12-11 At & T Corp. Internet file system
US5920867A (en) * 1996-12-06 1999-07-06 International Business Machines Corporation Data management system having data management configuration
US5903897A (en) * 1996-12-18 1999-05-11 Alcatel Usa Sourcing, L.P. Software documentation release control system
US5937406A (en) * 1997-01-31 1999-08-10 Informix Software, Inc. File system interface to a database
US6216140B1 (en) * 1997-09-17 2001-04-10 Hewlett-Packard Company Methodology for the efficient management of hierarchically organized information
US6505212B2 (en) * 1998-02-04 2003-01-07 Interwoven Inc System and method for website development
US6321219B1 (en) * 1998-08-14 2001-11-20 Microsoft Corporation Dynamic symbolic links for computer file systems

Also Published As

Publication number Publication date
AU2004203240A1 (en) 2004-09-02
AU2004203243A1 (en) 2004-09-02
EP1330727A2 (en) 2003-07-30
WO2001011486A2 (en) 2001-02-15
AU2004203242B2 (en) 2008-05-01
AU2004203241A1 (en) 2004-09-02
AU2004203242A1 (en) 2004-09-02
JP2003527659A (en) 2003-09-16
CA2379930C (en) 2012-12-18
AU6495400A (en) 2001-03-05
AU2004203241B2 (en) 2008-04-10
AU2004203243B2 (en) 2008-03-20
JP5113967B2 (en) 2013-01-09
AU2004203249B2 (en) 2008-04-03
AU774090B2 (en) 2004-06-17
WO2001011486A3 (en) 2003-04-17
AU2004203240B2 (en) 2008-04-03
AU2004203249A1 (en) 2004-09-02

Similar Documents

Publication Publication Date Title
CA2379930A1 (en) Multi-model access to data
US6418450B2 (en) Data warehouse programs architecture
US10545981B2 (en) Virtual repository management
US9026901B2 (en) Viewing annotations across multiple applications
US6816868B1 (en) Database system
US8341120B2 (en) Apparatus and methods for transferring database objects into and out of database systems
JP4406609B2 (en) Techniques for managing multiple hierarchies of data from a single interface
US6922708B1 (en) File system that supports transactions
US7690000B2 (en) Metadata journal for information technology systems
EP1696346B1 (en) File system represented inside a database
US8010887B2 (en) Implementing versioning support for data using a two-table approach that maximizes database efficiency
US8682859B2 (en) Transferring records between tables using a change transaction log
US20070156687A1 (en) Efficient implementation of multiple work areas in a file system like repository that supports file versioning
US20070282869A1 (en) Automatically generating web forms from database schema
US20130066929A1 (en) Versioning in internet file system
US10169389B2 (en) Metadata driven reporting and editing of databases
US20060224626A1 (en) Versioned file group repository
JPH09179824A (en) System for backing-up and restoring groupware document and its method
US7280995B1 (en) On-the-fly format conversion
KR100529661B1 (en) Object integrated management system
JP2001076005A (en) Data base system
US9418154B2 (en) Push-model based index updating
US9594784B2 (en) Push-model based index deletion
WO2020192663A1 (en) Data management method and related device
US20030204522A1 (en) Autofoldering process in content management

Legal Events

Date Code Title Description
EEER Examination request
MKEX Expiry

Effective date: 20200727