WO1998000795B1 - Restoring the state of a set of files - Google Patents
Restoring the state of a set of filesInfo
- Publication number
- WO1998000795B1 WO1998000795B1 PCT/US1997/011633 US9711633W WO9800795B1 WO 1998000795 B1 WO1998000795 B1 WO 1998000795B1 US 9711633 W US9711633 W US 9711633W WO 9800795 B1 WO9800795 B1 WO 9800795B1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- routine
- computer
- native
- causing
- routines
- Prior art date
Links
- 230000002104 routine Effects 0.000 claims abstract 21
- 230000000875 corresponding Effects 0.000 claims abstract 17
- 238000004590 computer program Methods 0.000 claims abstract 3
- 238000005096 rolling process Methods 0.000 claims abstract 3
- 230000004048 modification Effects 0.000 claims 9
- 238000006011 modification reaction Methods 0.000 claims 9
- 230000000694 effects Effects 0.000 claims 2
- 238000000034 method Methods 0.000 abstract 1
Abstract
A method that applies transaction techniques to file system operations in non-database applications executing on parallel processing systems. For each of a set of file operations, program routines are defined for performing (100), finalizing (130), and undoing (140) the operations, so that the operations may be used in a non-database application to create a transaction processing environment. A computer program library, for adding the semantics of transactions to a set of native operations of a native file system, comprises families of routines each corresponding to a native operation, including a Perform routine (100) for providing the functional equivalent of the corresponding native operation (112) while preserving information necessary to roll back such native operation (106-110), a Finalize routine (130) for committing the result of the corresponding Perform routine (100), and an Undo routine (140) for rolling back the result of the corresponding Perform routine (100).
Claims
1. A computer program library, residing on a computer-readable medium, for adding the semantics of transactions to a set of native operations of a native file system by adding committal and roll back functionality to such native file system, the library comprising a set of one or more families of routines, each such family of routines corresponding to at least one native operation and adapted to be invoked in lieu of the corresponding native operations, each such family of routines including:
(a) a perform routine including computer instructions for causing a computer to provide a functional result which is the functional equivalent of one of the family's corresponding native operations while preserving information necessary to roll back such native operations;
(b) a finalize routine including computer instructions for causing a computer to commit the functional result of a corresponding perform routine; and
(c) an undo routine including computer instructions for causing a computer to roll back the functional result of a corresponding perform routine.
- 38 -
2. A computer program library, residing on a computer-readable medium, for adding the semantics of transactions to a set of native operations of a native file system by adding committal and roll back functionality to such native file system, the library comprising:
(a) a set of one or more families of routines, each family of routines including a 5 perform routine, a finalize routine, and an undo routine, each family of routines corresponding to at least one native operation and adapted to be invoked in lieu of the corresponding native operations; and
(b) a transaction master including an opening routine for opening a transaction of native file system operations, a committing routine for committing such a o transaction, and a roll back routine for rolling back such a transaction; where
(c) the perform routine of each family includes computer instructions for causing a computer to give the appearance of performing one of the family's corresponding native operations and providing a functional equivalent thereof; s (d) the finalize routine of each family includes computer instructions for causing a computer to commit one of the functional equivalents of one of the family's corresponding native operations;
(e) the undo routine of each family includes computer instructions for causing a computer to roll back one of the functional equivalents of one of the family's o corresponding native operations;
(f) the committing routine includes computer instructions for causing a computer to read a transaction log;
(g) the roll back routine includes computer instructions for causing a computer to read the transaction log; 5 (h) the perform routines of the set of families of routines collectively include computer instructions for causing a computer to append transaction information to the transaction log such as identifying finalize and undo routines; (i) the committing routine includes computer instructions for causing a computer to invoke finalize routines identified in the transaction log; o j) the roll back routine includes computer instructions for causing a computer to invoke undo routines identified in the transaction log.
9. A method for providing transactional file operations for restoring the state of a set of files in a native computer file system having native modification operations for modifying the state of the files or the file system, the method comprising the steps of:
(a) providing for each of a set of the modification operations a perform routine, a finalize routine, and an undo routine, such that each of these routines then has a corresponding modification operation executable on a computer system, where the perform and finalize routines collectively include computer instructions for causing a computer to effect the corresponding modification operation, and where the finalize and undo routines collectively include computer instructions for causing a computer to effect the roll back of the corresponding modification operation;
(b) providing a transaction master including a transaction open routine for opening a transaction that includes modification operations, a commit routine for committing such a transaction, and a roll back routine for rolling back such a transaction, where the commit routine includes computer instructions for causing a computer to invoke finalize routines, and where the roll back routine includes computer instructions for causing a computer to invoke undo routines; where
(c) the commit routine on invocation commits all open transactions; and (d) the roll back routine on invocation rolls back all open transactions.
10. The method of claim 9 where the native file system is a UNIX file system.
11. The method of claim 9 where the set of modification operations for which routines are provided consists substantially of all native file system operations capable of modifying the state of a file or the file system.
12. The method of claim 9 where the files in the set of files are distributed over two or more host computers.
13. The method of claim 9 further comprising the step of providing a directory delete family of routines for the native modification operation of removing a directory, where:
(a) the perform routine of the directory delete family includes computer instructions for causing a computer to perform the steps of generating a name of a copath and renaming the directory to the name of the copath;
(b) the finalize routine of the directory delete family includes computer instructions for causing a computer to perform the step of deleting the copath name; and
(c) the undo routine of the directory delete family includes computer instructions for causing a computer to perform the step of renaming the copath name to the original directory name.
14. The method of claim 9 further comprising the step of providing an update family of routines for the native modification operation of opening a file for updating, where:
(a) the perform routine of the update family includes computer instructions for causing a computer to perform the steps of generating a name of a copath and copying the file to the copath as a cofile;
(b) the finalize routine of the update family includes computer instructions for causing a computer to perform the step of deleting the copath; and
(c) the undo routine of the update family includes computer instructions for causing a computer to perform the steps of copying the cofile over the original file and then deleting the copath.
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CA002259301A CA2259301C (en) | 1996-07-02 | 1997-07-01 | Restoring the state of a set of files |
EP97932468A EP1008062A1 (en) | 1996-07-02 | 1997-07-01 | Restoring the state of a set of files |
JP10504474A JPH11514768A (en) | 1996-07-02 | 1997-07-01 | Restoring file settings |
AU35921/97A AU3592197A (en) | 1996-07-02 | 1997-07-01 | Restoring the state of a set of files |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/678,398 | 1996-07-02 | ||
US08/678,398 US5857204A (en) | 1996-07-02 | 1996-07-02 | Restoring the state of a set of files |
Publications (2)
Publication Number | Publication Date |
---|---|
WO1998000795A1 WO1998000795A1 (en) | 1998-01-08 |
WO1998000795B1 true WO1998000795B1 (en) | 1998-02-12 |
Family
ID=24722619
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US1997/011633 WO1998000795A1 (en) | 1996-07-02 | 1997-07-01 | Restoring the state of a set of files |
Country Status (6)
Country | Link |
---|---|
US (1) | US5857204A (en) |
EP (1) | EP1008062A1 (en) |
JP (1) | JPH11514768A (en) |
AU (1) | AU3592197A (en) |
CA (1) | CA2259301C (en) |
WO (1) | WO1998000795A1 (en) |
Families Citing this family (66)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7415466B2 (en) * | 1996-03-19 | 2008-08-19 | Oracle International Corporation | Parallel transaction recovery |
US6647510B1 (en) | 1996-03-19 | 2003-11-11 | Oracle International Corporation | Method and apparatus for making available data that was locked by a dead transaction before rolling back the entire dead transaction |
US6023709A (en) * | 1997-12-15 | 2000-02-08 | International Business Machines Corporation | Automated file error classification and correction in a hierarchical storage management system |
US6526416B1 (en) * | 1998-06-30 | 2003-02-25 | Microsoft Corporation | Compensating resource managers |
US6295610B1 (en) * | 1998-09-17 | 2001-09-25 | Oracle Corporation | Recovering resources in parallel |
US6405217B1 (en) * | 1998-09-21 | 2002-06-11 | Microsoft Corporation | State-based implementation of transactions on a file system |
US6922708B1 (en) * | 1999-02-18 | 2005-07-26 | Oracle International Corporation | File system that supports transactions |
EP1852790B1 (en) * | 1999-08-05 | 2016-04-20 | Oracle International Corporation | Internet file system |
US7620620B1 (en) | 1999-08-05 | 2009-11-17 | Oracle International Corporation | Basing directory contents on a query that is associated with a file identifier |
US6543006B1 (en) * | 1999-08-31 | 2003-04-01 | Autodesk, Inc. | Method and apparatus for automatic undo support |
JP4237354B2 (en) * | 1999-09-29 | 2009-03-11 | 株式会社東芝 | Transaction processing method and transaction processing system |
US6631480B2 (en) | 1999-11-10 | 2003-10-07 | Symantec Corporation | Methods and systems for protecting data from potential corruption by a crashed computer program |
US6630946B2 (en) * | 1999-11-10 | 2003-10-07 | Symantec Corporation | Methods for automatically locating data-containing windows in frozen applications program and saving contents |
US6662310B2 (en) | 1999-11-10 | 2003-12-09 | Symantec Corporation | Methods for automatically locating url-containing or other data-containing windows in frozen browser or other application program, saving contents, and relaunching application program with link to saved data |
US6856993B1 (en) * | 2000-03-30 | 2005-02-15 | Microsoft Corporation | Transactional file system |
US7657887B2 (en) * | 2000-05-17 | 2010-02-02 | Interwoven, Inc. | System for transactionally deploying content across multiple machines |
WO2002013068A1 (en) * | 2000-08-04 | 2002-02-14 | Carr Scott Software Incorporated | Automatic transaction management |
US6766471B2 (en) * | 2000-12-28 | 2004-07-20 | International Business Machines Corporation | User-level checkpoint and restart for groups of processes |
US20050160088A1 (en) * | 2001-05-17 | 2005-07-21 | Todd Scallan | System and method for metadata-based distribution of content |
GB0120594D0 (en) * | 2001-08-24 | 2001-10-17 | Koninkl Philips Electronics Nv | Upgrading software held in read-only storage |
US6883114B2 (en) * | 2001-11-08 | 2005-04-19 | M-Systems Flash Disk Pioneers Ltd. | Block device driver enabling a ruggedized file system |
US6983286B1 (en) | 2002-05-10 | 2006-01-03 | Oracle International Corporation | Method and apparatus for accessing data as it existed at a previous point in time |
CA2398049A1 (en) * | 2002-08-27 | 2004-02-27 | Kevin W. Jameson | Collection shortcut reference expander |
US7703097B2 (en) * | 2002-11-15 | 2010-04-20 | International Business Machines Corporation | Auto-commit processing in an IMS batch application |
US7340741B2 (en) * | 2003-02-28 | 2008-03-04 | International Business Machines Corporation | Auto-restart processing in an IMS batch application |
US7155460B2 (en) | 2003-03-18 | 2006-12-26 | Network Appliance, Inc. | Write-once-read-many storage system and method for implementing the same |
US7181476B2 (en) * | 2003-04-30 | 2007-02-20 | Oracle International Corporation | Flashback database |
US20040267823A1 (en) * | 2003-06-24 | 2004-12-30 | Microsoft Corporation | Reconcilable and undoable file system |
DE60311805T2 (en) * | 2003-08-28 | 2007-11-22 | Accenture Global Services Gmbh | Acquisition, compilation and / or visualization of structural features of architectures |
US7552149B2 (en) * | 2003-09-06 | 2009-06-23 | Oracle International Corporation | Querying past versions of data in a distributed database |
EP1591903B1 (en) * | 2003-10-22 | 2013-07-10 | Olympus Corporation | File name changing method |
US20050097141A1 (en) * | 2003-10-30 | 2005-05-05 | International Business Machines Corporation | Autonomic filesystem recovery |
US20050165862A1 (en) * | 2004-01-12 | 2005-07-28 | International Business Machines Corporation | Autonomic and fully recovering filesystem operations |
US8825615B2 (en) * | 2004-05-11 | 2014-09-02 | Oracle International Corporation | Simplifying implementation of custom atomic transactions in a programming environment |
US7240065B2 (en) * | 2004-05-27 | 2007-07-03 | Oracle International Corporation | Providing mappings between logical time values and real time values |
US7251660B2 (en) | 2004-06-10 | 2007-07-31 | Oracle International Corporation | Providing mappings between logical time values and real time values in a multinode system |
US7814367B1 (en) | 2004-11-12 | 2010-10-12 | Double-Take Software Canada, Inc. | Method and system for time addressable storage |
US8005795B2 (en) * | 2005-03-04 | 2011-08-23 | Emc Corporation | Techniques for recording file operations and consistency points for producing a consistent copy |
US7673105B2 (en) * | 2005-06-27 | 2010-03-02 | Ab Inition Technology LLC | Managing memory pages |
US7865684B2 (en) * | 2005-06-27 | 2011-01-04 | Ab Initio Technology Llc | Managing message queues |
US7877350B2 (en) * | 2005-06-27 | 2011-01-25 | Ab Initio Technology Llc | Managing metadata for graph-based computations |
KR100667827B1 (en) * | 2005-11-02 | 2007-01-11 | 삼성전자주식회사 | Method and apparatus for managing information of content file, and recording medium storing program for performing the method |
US8949455B2 (en) | 2005-11-21 | 2015-02-03 | Oracle International Corporation | Path-caching mechanism to improve performance of path-related operations in a repository |
CN103729330B (en) | 2006-08-10 | 2017-04-19 | 起元科技有限公司 | Distributing services in graph-based computations |
US7650371B2 (en) * | 2006-12-14 | 2010-01-19 | Microsoft Corporation | Finalizable object usage in software transactions |
US7814117B2 (en) * | 2007-04-05 | 2010-10-12 | Oracle International Corporation | Accessing data from asynchronously maintained index |
EP2174222A4 (en) * | 2007-07-26 | 2010-10-27 | Ab Initio Technology Llc | Transactional graph-based computation with error handling |
US8336053B2 (en) * | 2007-10-15 | 2012-12-18 | International Business Machines Corporation | Transaction management |
US20090282058A1 (en) * | 2008-05-12 | 2009-11-12 | Expressor Software | Method and system for developing data integration applications with reusable functional rules that are managed according to their output variables |
US7996716B2 (en) * | 2008-06-12 | 2011-08-09 | International Business Machines Corporation | Containment and recovery of software exceptions in interacting, replicated-state-machine-based fault-tolerant components |
AU2010213618B9 (en) | 2009-02-13 | 2015-07-30 | Ab Initio Technology Llc | Managing task execution |
US8667329B2 (en) * | 2009-09-25 | 2014-03-04 | Ab Initio Technology Llc | Processing transactions in graph-based applications |
US20110167049A1 (en) * | 2010-01-05 | 2011-07-07 | Apple Inc. | File system management techniques for computing environments and systems |
JP5574274B2 (en) * | 2010-03-31 | 2014-08-20 | 日本電気株式会社 | Data processing apparatus, data processing method, and program |
WO2011159759A1 (en) | 2010-06-15 | 2011-12-22 | Ab Initio Technology Llc | Dynamically loading graph-based computations |
US10108521B2 (en) | 2012-11-16 | 2018-10-23 | Ab Initio Technology Llc | Dynamic component performance monitoring |
US9507682B2 (en) | 2012-11-16 | 2016-11-29 | Ab Initio Technology Llc | Dynamic graph performance monitoring |
US9275233B1 (en) * | 2012-12-21 | 2016-03-01 | Emc Corporation | Generation and use of a modified protected file |
CN103902632B (en) * | 2012-12-31 | 2018-01-02 | 华为技术有限公司 | The method, apparatus and electronic equipment of file system are built in key assignments storage system |
US9274926B2 (en) | 2013-01-03 | 2016-03-01 | Ab Initio Technology Llc | Configurable testing of computer programs |
WO2014169331A1 (en) | 2013-04-19 | 2014-10-23 | National Ict Australia Limited | Checking undoability of an api-controlled computing system |
CA3114544A1 (en) | 2013-12-05 | 2015-06-11 | Ab Initio Technology Llc | Managing interfaces for dataflow composed of sub-graphs |
US10657134B2 (en) | 2015-08-05 | 2020-05-19 | Ab Initio Technology Llc | Selecting queries for execution on a stream of real-time data |
EP3394739B1 (en) | 2015-12-21 | 2020-11-11 | AB Initio Technology LLC | Sub-graph interface generation |
US10601890B2 (en) | 2016-01-14 | 2020-03-24 | Ab Initio Technology Llc | Recoverable stream processing |
US10769116B2 (en) * | 2016-06-10 | 2020-09-08 | Apple Inc. | System and method for performing operations on a hierarchy of content |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4791556A (en) * | 1984-08-29 | 1988-12-13 | Vilkaitis John V | Method for operating a computer which searches for operational symbols and executes functions corresponding to the operational symbols in response to user inputted signal |
US5201044A (en) * | 1990-04-16 | 1993-04-06 | International Business Machines Corporation | Data processing method for file status recovery includes providing a log file of atomic transactions that may span both volatile and non volatile memory |
US5319773A (en) * | 1990-05-16 | 1994-06-07 | International Business Machines Corporation | Asynchronous resynchronization of a commit procedure |
US5504899A (en) * | 1991-10-17 | 1996-04-02 | Digital Equipment Corporation | Guaranteeing global serializability by applying commitment ordering selectively to global transactions |
JPH05233570A (en) * | 1991-12-26 | 1993-09-10 | Internatl Business Mach Corp <Ibm> | Distributed data processing system between different operating systems |
US5522066A (en) * | 1992-04-16 | 1996-05-28 | Industrial Technology Research Institute | Interface for accessing multiple records stored in different file system formats |
US5530848A (en) * | 1992-10-15 | 1996-06-25 | The Dow Chemical Company | System and method for implementing an interface between an external process and transaction processing system |
GB2273180A (en) * | 1992-12-02 | 1994-06-08 | Ibm | Database backup and recovery. |
US5504883A (en) * | 1993-02-01 | 1996-04-02 | Lsc, Inc. | Method and apparatus for insuring recovery of file control information for secondary storage systems |
US5455944A (en) * | 1993-03-16 | 1995-10-03 | International Business Machines Corporation | Method for managing logging and locking of page free space information in a transaction processing system |
US5586312A (en) * | 1994-10-11 | 1996-12-17 | Unisys Corporation | Method and apparatus for using an independent transaction processing application as a service routine |
US5765151A (en) * | 1995-08-17 | 1998-06-09 | Sun Microsystems, Inc. | System and method for file system fix-on-panic for a computer operating system |
-
1996
- 1996-07-02 US US08/678,398 patent/US5857204A/en not_active Expired - Lifetime
-
1997
- 1997-07-01 EP EP97932468A patent/EP1008062A1/en not_active Withdrawn
- 1997-07-01 JP JP10504474A patent/JPH11514768A/en active Pending
- 1997-07-01 WO PCT/US1997/011633 patent/WO1998000795A1/en active Application Filing
- 1997-07-01 AU AU35921/97A patent/AU3592197A/en not_active Abandoned
- 1997-07-01 CA CA002259301A patent/CA2259301C/en not_active Expired - Lifetime
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO1998000795B1 (en) | Restoring the state of a set of files | |
US5926819A (en) | In-line triggers | |
CA2259301A1 (en) | Restoring the state of a set of files | |
US5274803A (en) | Method and apparatus for aligning a restored parent environment to its child environments with minimal data loss | |
EP1040433B1 (en) | A fine-grained consistency mechanism for optimistic concurrency control using lock groups | |
JP2531776B2 (en) | How to recover your database | |
JP2531894B2 (en) | Data processing device | |
US6088694A (en) | Continuous availability and efficient backup for externally referenced objects | |
US6856993B1 (en) | Transactional file system | |
US8140486B2 (en) | Restoring a source file referenced by multiple file names to a restore file | |
US5809506A (en) | Method for creating an object base of persisent application objects in an object oriented programming environment and apparatus related thereto | |
EP1121640A1 (en) | Apparatus and method for building modeling tools | |
Soloviev | An overview of three commercial object-oriented database management systems: ONTOS, ObjectStore, and O2 | |
US6275832B1 (en) | Providing transaction undo without logging | |
Munro | On the integration of concurrency, distribution and persistence | |
US6681325B1 (en) | Providing disk layout information to an operating system for booting after disk repartitioning | |
EP0097239A2 (en) | Method and apparatus for restoring data in a computing system | |
US10545926B1 (en) | Computer data file system with consistency groups as basic file system objects | |
Ferrandina et al. | Object database schema evolution: are lazy updates always equivalent to immediate updates? | |
Holyer et al. | A recovery mechanism for shells | |
Tang | Using dummy reads to maintain consistency in heterogeneous database systems | |
Steindl | Is Interoperability achievable with ODBC? | |
Salinas-Monteagudo et al. | A triggerless approach to writeset extraction in multiversioned databases | |
Kyte et al. | Datatypes | |
Di | A Recovery Technique for Distributed Communicating Process Systems |