WO1998000795B1 - Restoring the state of a set of files - Google Patents

Restoring the state of a set of files

Info

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
Application number
PCT/US1997/011633
Other languages
French (fr)
Other versions
WO1998000795A1 (en
Filing date
Publication date
Priority claimed from US08/678,398 external-priority patent/US5857204A/en
Application filed filed Critical
Priority to CA002259301A priority Critical patent/CA2259301C/en
Priority to EP97932468A priority patent/EP1008062A1/en
Priority to JP10504474A priority patent/JPH11514768A/en
Priority to AU35921/97A priority patent/AU3592197A/en
Publication of WO1998000795A1 publication Critical patent/WO1998000795A1/en
Publication of WO1998000795B1 publication Critical patent/WO1998000795B1/en

Links

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

AMENDED CLAIMS[received by the International Bureau on 31 December 1997 (31.12.97); original claims 1, 2, 9, 13 and 14 amended; remaining claims unchanged (4 pages)]
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.
PCT/US1997/011633 1996-07-02 1997-07-01 Restoring the state of a set of files WO1998000795A1 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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