← Back to Patent Explorer
US5666532A Expired / Lapsed US ⏱️ 0.0 years remaining

Computer method and apparatus for asynchronous ordered operations

Assignee: EMC Corp
•
Filing: 1996-05-02
•
Granted: 1997-09-09
•
Expires: 2016-05-02
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A computer system having data organized in files, having a secondary storage for storing files, having a primary storage, and having one or more types of file subsystems (file system implementations) for controlling transfer of files between primary storage and secondary storage. A subset of writes to secondary storage are performed using a Delayed Ordered Write (DOW) subsystem, which makes it possible for any file system to control the order in which modifications are propagated to disk. The DOW subsystem consists of two parts. The first part is a specification interface, which a file system implementation or any other kernel subsystem can use to indicate sequential ordering between a modification and some other modification of file system structural data. The second part of DOW subsystem is a mechanism that ensures that the disk write operations are indeed performed in accordance with the order store. DOW improves computer system performance by reducing disk traffic as well as the number of context switches that would be generated if synchronous writes were used for ordering.

Inventors

  • 👤 Jonathan Haim Saks
  • 👤 Kshitij Arun Doshi

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-05 06:43
CPC Classifications
G; G06; G06F; G06F16/00; G06F16/10; Y; Y10; Y10S; Y10S707/00; Y10S707/953; Y10S707/959; Y10S707/99931; Y10S707/99938; Y10S707/99951; Y10S707/99956

Claims Analysis

Total Claims: 56
Claim 1
Independent Claim 307 words
An ordering subsystem for controlling the order of operations in a computer system, the computer system having a first unit and a second unit for files, having a file management subsystem for controlling operations for files, said file management subsystem specifying operations for files in response to new requests where a sequence of requests for said operations is represented by the requests R1, R2, . . . , Rr and where the requests for said operations in said sequence have order dependencies D1, D2, . . . , Dd where r and d are integers, said order dependencies constraining the order for carrying out said operations, said ordering subsystem including, an ordering store for storing a plurality of entries, each of said entries containing an operation type identifying one of said operations for files, at least one of said entries at some time also containing a link which links said entry to another of said entries, said link specifying an order for carrying out said operations in said linked entries, said entries and said links defining a partially ordered acyclic graph, add means for adding entries to the ordering store by processing said new requests to identify one or more common operations CO0, CO1, . . . , COco, each of said common operations identifying an operation requested by one or more of the requests R1, R2, . . . , Rr, where said common operations have common order dependencies CD0, CD1, . . . , CDcd that preserve the order dependencies D1, D2, . . . , Dd between the operations in the requests, and where co and cd are integers, execution means for executing said one or more common operations CO0, CO1, . . . , COco responsive to the entries in the ordering store, and delete means for deleting entries from the ordering store.
Claim 2
Dependent Claim 307 words
An ordering subsystem for controlling the order of operations in a computer system, the computer system having a first unit and a second unit for files, having a file management subsystem for controlling operations for files, said file management subsystem specifying operations for files in response to new requests where a sequence of requests for said operations is represented by the requests R1, R2, . . . , Rr and where the requests for said operations in said sequence have order dependencies D1, D2, . . . , Dd where r and d are integers, said order dependencies constraining the order for carrying out said operations, said ordering subsystem including, an ordering store for storing a plurality of entries, each of said entries containing an operation type identifying one of said operations for files, at least one of said entries at some time also containing a link which links said entry to another of said entries, said link specifying an order for carrying out said operations in said linked entries, said entries and said links defining a partially ordered acyclic graph, add means for adding entries to the ordering store by processing said new requests to identify one or more common operations CO0, CO1, . . . , COco, each of said common operations identifying an operation requested by one or more of the requests R1, R2, . . . , Rr, where said common operations have common order dependencies CD0, CD1, . . . , CDcd that preserve the order dependencies D1, D2, . . . , Dd between the operations in the requests, and where co and cd are integers, execution means for executing said one or more common operations CO0, CO1, . . . , COco responsive to the entries in the ordering store, and delete means for deleting entries from the ordering store.
Claim 3
Dependent Claim 52 words
The ordering subsystem of claim 1 wherein said add means includes, dow -- create means for providing one or more of said entries as operation entries for identifying common operations, and dow -- order means for providing one or more of said entries as order entries for identifying said common order dependencies.
Claim 4
Dependent Claim 35 words
The ordering subsystem of claim 2 wherein said delete means includes operation delete means for deleting operation entries from said ordering store and includes order delete means for deleting order entries from said ordering store.
Claim 5
Dependent Claim 22 words
The ordering subsystem of claim 3 wherein said delete means includes dow -- abort means for deleting entries from said ordering store.
Claim 6
Dependent Claim 20 words
The ordering subsystem of claim 4 wherein said dow -- abort means operates asynchronously with respect to said execution means.
Claim 7
Dependent Claim 19 words
The ordering subsystem of claim 1 wherein said operations include writes from said first unit to said second unit.
Claim 8
Dependent Claim 12 words
The ordering subsystem of claim 1 wherein said operations include function calls.
Claim 9
Dependent Claim 40 words
The ordering subsystem of claim 1 wherein said first unit is primary storage and said second unit is secondary storage and wherein said requests are update requests and said operations include writes from said primary storage to said secondary storage.
Claim 10
Dependent Claim 45 words
The ordering subsystem of claim 1 wherein said first unit is primary storage and said second unit is secondary storage and wherein said requests are update requests and said operations include writes from said primary storage to said secondary storage and may include function calls.
Claim 11
Dependent Claim 30 words
The ordering subsystem of claim 9 wherein a write for one or more of said update requests is delayed so as to be part of one of said common writes.
Claim 12
Dependent Claim 89 words
The ordering subsystem of claim 9 wherein said update requests R1, R2, . . . , Rr are presented in time order with R1 before R2, R2 before R3, . . . , R(r-1) before Rr and wherein a write for one or more of said update requests is delayed so as to be part of one of said common writes whereby writes for one or more of said update request are not necessarily in the time order of the update requests R1, R2, . . . , Rr.
Claim 13
Dependent Claim 18 words
The ordering subsystem of claim 9 wherein said add means operates asynchronously with respect to said execution means.
Claim 14
Dependent Claim 18 words
The ordering subsystem of claim 9 wherein said delete means operates asynchronously with respect to said execution means.
Claim 15
Dependent Claim 21 words
The ordering subsystem of claim 1 wherein said system includes a local unit and a remote unit connected by a network.
Claim 16
Dependent Claim 73 words
The ordering subsystem of claim 14 wherein said first unit is primary storage in said local unit and said second unit is secondary storage in said local unit, wherein said requests are update requests and said operations include writes from said primary storage to said secondary storage and may include function calls, and wherein said remote unit initiates said requests for writes from said primary storage to said secondary storage over said network.
Claim 17
Dependent Claim 403 words
An ordered write subsystem for controlling the order of operations in connection with writes from primary storage to secondary storage in a computer system, the computer system having data organized in files, having primary storage for storing files, having a secondary storage for storing files, having a file management subsystem for controlling transfers of files between primary storage and secondary storage, said file management subsystem specifying operations in connection with writes from primary storage to secondary storage in response to new update requests for said operations, where a sequence of update requests is represented by the update requests R1, R2, . . . , R(r-1), Rr, where the update requests in said sequence have order dependencies D1, D2, . . . , Dd and where r and d are integers, said order dependencies constraining the order for carrying out said operations, said ordered write subsystem including, an ordering store for storing a plurality of entries, each of said entries containing an operation type identifying one of said operations, at least one of said entries at some time also containing a link which links said entry to another of said entries, said link specifying an order for carrying out said operations in said linked entries, said entries and said links defining a partially ordered acyclic graph, add means for adding entries to said ordering store by processing said new update requests to identify common operations, said common operations including, one or more common writes CW1, CW2, . . . , CWcw for a combined operation requested by one or more of the update requests R1, R2, . . . , Rr where cw is an integer less than r, and one or more function calls FC1, FC2, . . . , FCfc where fc is an integer, and wherein said common writes and said function calls have common order dependencies CD1, CD2, . . . , CDcd that preserve the update order dependencies D1, D2, . . . , Dd between the operations, where cd is an integer, execution means for executing common operations including, write means responsive to the entries in the ordering store for writing from primary storage to secondary storage with said common writes CW1, CW2, . . . , CWcw constrained by the common-write order dependencies CD1, CD2, . . . , CDcd, function means for executing said function calls, and delete means for deleting entries from the ordering store.
Claim 18
Dependent Claim 403 words
An ordered write subsystem for controlling the order of operations in connection with writes from primary storage to secondary storage in a computer system, the computer system having data organized in files, having primary storage for storing files, having a secondary storage for storing files, having a file management subsystem for controlling transfers of files between primary storage and secondary storage, said file management subsystem specifying operations in connection with writes from primary storage to secondary storage in response to new update requests for said operations, where a sequence of update requests is represented by the update requests R1, R2, . . . , R(r-1), Rr, where the update requests in said sequence have order dependencies D1, D2, . . . , Dd and where r and d are integers, said order dependencies constraining the order for carrying out said operations, said ordered write subsystem including, an ordering store for storing a plurality of entries, each of said entries containing an operation type identifying one of said operations, at least one of said entries at some time also containing a link which links said entry to another of said entries, said link specifying an order for carrying out said operations in said linked entries, said entries and said links defining a partially ordered acyclic graph, add means for adding entries to said ordering store by processing said new update requests to identify common operations, said common operations including, one or more common writes CW1, CW2, . . . , CWcw for a combined operation requested by one or more of the update requests R1, R2, . . . , Rr where cw is an integer less than r, and one or more function calls FC1, FC2, . . . , FCfc where fc is an integer, and wherein said common writes and said function calls have common order dependencies CD1, CD2, . . . , CDcd that preserve the update order dependencies D1, D2, . . . , Dd between the operations, where cd is an integer, execution means for executing common operations including, write means responsive to the entries in the ordering store for writing from primary storage to secondary storage with said common writes CW1, CW2, . . . , CWcw constrained by the common-write order dependencies CD1, CD2, . . . , CDcd, function means for executing said function calls, and delete means for deleting entries from the ordering store.
Claim 19
Dependent Claim 53 words
The ordering subsystem of claim 16 wherein said add means includes, dow -- create means for providing one or more of said entries as operation entries for identifying said common operations, and dow -- order means for providing one or more of said entries as order entries for identifying said common order dependencies.
Claim 20
Dependent Claim 22 words
The ordering subsystem of claim 17 wherein said dow -- create means provides said operation as common-write entries for identifying common writes.
Claim 21
Dependent Claim 23 words
The ordering subsystem of claim 17 wherein said dow -- create means provides said operation entries as function-call entries for identifying function calls.
Claim 22
Dependent Claim 59 words
The ordering subsystem of claim 16 wherein said ordering store includes ordered locations with higher-order locations and lower-order locations and for each common-write entry, zero or more higher-order locations for an order entry pointing to zero or more high-order common writes and zero or more lower-order locations for an order entry pointing to zero or more lower-order common writes.
Claim 23
Dependent Claim 30 words
The ordering subsystem of claim 16 wherein a write for one or more of said update requests is delayed so as to be part of one of said common writes.
Claim 24
Dependent Claim 90 words
The ordering subsystem of claim 16 wherein said update requests R1, R2, . . . , Rr are presented in time order with R1 and before R2, R2 before R3, . . . , R(r-1) before Rr and wherein a write for one or more of said update requests is delayed so as to be part of one of said common writes whereby writes for one or more of said update requests are not in the time order of the update requests R1, R2, . . . , R(r-1), Rr.
Claim 25
Dependent Claim 18 words
The ordering subsystem of claim 16 wherein said add means operates asynchronously with respect to said execution means.
Claim 26
Dependent Claim 35 words
The ordering subsystem of claim 16 wherein said delete means includes operation delete means for deleting operation entries from said ordering store and includes order delete means for deleting order entries from said ordering store.
Claim 27
Dependent Claim 23 words
The ordering subsystem of claim 24 wherein said operation delete means includes dow -- abort means for deleting entries from said ordering store.
Claim 28
Dependent Claim 20 words
The ordering subsystem of claim 25 wherein said dow -- abort means operates asynchronously with respect to said execution means.
Claim 29
Dependent Claim 30 words
The ordering subsystem of claim 16 wherein said primary storage includes a cache and wherein said ordered write subsystem causes said file management subsystem to initiate writes from said cache.
Claim 30
Dependent Claim 20 words
The ordering subsystem of claim 26 further including device drivers connected to write from said cache to said secondary storage.
Claim 31
Independent Claim 294 words
A method in a computer system having a first unit and second unit for files, having a file management subsystem for controlling operations for files, said file management subsystem specifying operations for files in response to new requests where a sequence of requests for the operations is represented by the requests R1, R2, . . . , Rr and where the requests for the operations in said sequence have order dependencies D1, D2, . . . , Dd where r and d are integers, said order dependencies constraining the order for carrying out the operations, said computer system including an ordering subsystem for controlling the order of operations including, said method comprising: storing a plurality of entries in an ordering store, each of said entries containing an operation type identifying one of said operations for files, at least one of said entries at some time also containing a link which links said entry to another of said entries, said link specifying an order for carrying out said operations in said linked entries, said entries and said links defining a partially ordered acyclic graph, adding entries to the ordering store by processing said new requests to identify one or more common operations CO1, CO2, . . . , COco, each of the common operations identifying an operation requested by one or more of the requests R1, R2, . . . , Rr, where said common operations have common order dependencies CD1, CD2, . . . , CDcd that preserve the order dependencies D1, D2, . . . , Dd between the operations in the requests, and where co and cd are integers, and executing said one or more common operations CO1, CO2, . . . , COco responsive to the entries in the ordering store.
Claim 32
Independent Claim 294 words
A method in a computer system having a first unit and second unit for files, having a file management subsystem for controlling operations for files, said file management subsystem specifying operations for files in response to new requests where a sequence of requests for the operations is represented by the requests R1, R2, . . . , Rr and where the requests for the operations in said sequence have order dependencies D1, D2, . . . , Dd where r and d are integers, said order dependencies constraining the order for carrying out the operations, said computer system including an ordering subsystem for controlling the order of operations including, said method comprising: storing a plurality of entries in an ordering store, each of said entries containing an operation type identifying one of said operations for files, at least one of said entries at some time also containing a link which links said entry to another of said entries, said link specifying an order for carrying out said operations in said linked entries, said entries and said links defining a partially ordered acyclic graph, adding entries to the ordering store by processing said new requests to identify one or more common operations CO1, CO2, . . . , COco, each of the common operations identifying an operation requested by one or more of the requests R1, R2, . . . , Rr, where said common operations have common order dependencies CD1, CD2, . . . , CDcd that preserve the order dependencies D1, D2, . . . , Dd between the operations in the requests, and where co and cd are integers, and executing said one or more common operations CO1, CO2, . . . , COco responsive to the entries in the ordering store.
Claim 33
Dependent Claim 52 words
The computer method of claim 29 wherein said adding step includes, dow -- create step for providing one or more of said entries as operation entries for identifying common operations, and dow -- order step for providing one or more of said entries as order entries for identifying said common order dependencies.
Claim 34
Dependent Claim 39 words
The computer method of claim 30 further comprising a delete step which includes an operation delete step for deleting operation entries from said ordering store and includes an order delete step for deleting order entries from said ordering store.
Claim 35
Dependent Claim 23 words
The computer method of claim 31 wherein said delete step includes a dow -- abort step for deleting entries from said ordering store.
Claim 36
Dependent Claim 20 words
The computer method of claim 32 wherein said dow -- abort step operates asynchronously with respect to said execution step.
Claim 37
Dependent Claim 19 words
The computer method of claim 29 wherein said operations include writes from said first unit to said second unit.
Claim 38
Dependent Claim 12 words
The computer method of claim 29 wherein said operations include function calls.
Claim 39
Dependent Claim 40 words
The computer method of claim 29 wherein said first unit is primary storage and said second unit is secondary storage and wherein said requests are update requests and said operations include writes from said primary storage to said secondary storage.
Claim 40
Dependent Claim 45 words
The computer method of claim 29 wherein said first unit is primary storage and said second unit is secondary storage and wherein said requests are update requests and said operations include writes from said primary storage to said secondary storage and may include function calls.
Claim 41
Dependent Claim 30 words
The computer method of claim 37 wherein a write for one or more of said update requests is delayed so as to be part of one of said common writes.
Claim 42
Dependent Claim 89 words
The computer method of claim 37 wherein said update requests R1, R2, . . . , Rr are presented in time order with R1 before R2, R2 before R3, . . . , R(r-1) before Rr and wherein a write for one or more of said update requests is delayed so as to be part of one of said common writes whereby writes for one or more of said update requests are not necessarily in the time order of the update requests R1, R2, . . . , Rr.
Claim 43
Dependent Claim 18 words
The computer method of claim 37 wherein said add step operates asynchronously with respect to said execution step.
Claim 44
Dependent Claim 20 words
The computer method of claim 37 further comprising a delete step which operates asynchronously with respect to said execution step.
Claim 45
Dependent Claim 21 words
The computer method of claim 29 wherein said system includes a local unit and a remote unit connected by a network.
Claim 46
Dependent Claim 75 words
The computer method of claim 42 wherein said first unit is primary storage in said local unit and said second unit is secondary storage in said local unit, wherein said requests are update requests and said operations include writes from said primary storage to said secondary storage and may include function calls, wherein said remote unit communicates over said network with said local unit to move data between said first unit and said second unit.
Claim 47
Dependent Claim 407 words
A computer method in a computer system having data organized in files, having primary storage for storing files, having a secondary storage for storing files, having a file management subsystem for controlling transfers of files between primary storage and secondary storage, said file management subsystem specifying operations in connection with writes from primary storage to secondary storage in response to new update requests where a sequence of update requests for the operations is represented by the update requests R1, R2, . . . , R(r-1), Rr, where the update requests in said sequence have order dependencies. D1, D2, . . . , Dd and where r and d are integers, the order dependencies constraining the order for carrying out the operations, said computer method including an ordered write subsystem for controlling the order of operations in connection with writes from primary storage to secondary storage, said method including, storing a plurality of entries in an ordering store, each of said entries containing an operation type identifying one of said operations for files, at least one of said entries at some time also containing a link which links said entry to another of said entries, said link specifying an order for carrying out said operations in said linked entries, said entries and said links defining a partially ordered acyclic graph, add steps for adding entries to said ordering store by processing said new update requests to identify common operations, said common operations including, one or more common writes CW1, CW2, . . . , CWcw for a combined operation identifying an operation requested by one or more of the update requests R1, R2, . . . , Rr where cw is an integer less than r, and one or more function calls FC1, FC2, . . . , FCfc where fc is an integer, and where said common writes and said function calls have common order dependencies CD1, CD2, . . . , CDcd that preserve the update order dependencies D1, D2, . . . , Dd between the operations in the requests, where cd is an integer, executing common operations including, write steps responsive to the entries in the ordering store for writing from primary storage to secondary storage with said common writes CW1, CW2, . . . , CWcw constrained by the common-write order dependencies CD1, CD2, . . . , CDcd, function steps for executing said function calls, and deleting entries from the ordering store.
Claim 48
Dependent Claim 407 words
A computer method in a computer system having data organized in files, having primary storage for storing files, having a secondary storage for storing files, having a file management subsystem for controlling transfers of files between primary storage and secondary storage, said file management subsystem specifying operations in connection with writes from primary storage to secondary storage in response to new update requests where a sequence of update requests for the operations is represented by the update requests R1, R2, . . . , R(r-1), Rr, where the update requests in said sequence have order dependencies. D1, D2, . . . , Dd and where r and d are integers, the order dependencies constraining the order for carrying out the operations, said computer method including an ordered write subsystem for controlling the order of operations in connection with writes from primary storage to secondary storage, said method including, storing a plurality of entries in an ordering store, each of said entries containing an operation type identifying one of said operations for files, at least one of said entries at some time also containing a link which links said entry to another of said entries, said link specifying an order for carrying out said operations in said linked entries, said entries and said links defining a partially ordered acyclic graph, add steps for adding entries to said ordering store by processing said new update requests to identify common operations, said common operations including, one or more common writes CW1, CW2, . . . , CWcw for a combined operation identifying an operation requested by one or more of the update requests R1, R2, . . . , Rr where cw is an integer less than r, and one or more function calls FC1, FC2, . . . , FCfc where fc is an integer, and where said common writes and said function calls have common order dependencies CD1, CD2, . . . , CDcd that preserve the update order dependencies D1, D2, . . . , Dd between the operations in the requests, where cd is an integer, executing common operations including, write steps responsive to the entries in the ordering store for writing from primary storage to secondary storage with said common writes CW1, CW2, . . . , CWcw constrained by the common-write order dependencies CD1, CD2, . . . , CDcd, function steps for executing said function calls, and deleting entries from the ordering store.
Claim 49
Dependent Claim 53 words
The computer method of claim 44 wherein said add steps include, dow -- create steps for providing one or more of said entries as operation entries for identifying said common operations, and dow -- order steps for providing one or more of said entries as order entries for identifying said common order dependencies.
Claim 50
Dependent Claim 23 words
The computer method of claim 44 wherein said dow -- create steps provide said operation entries as common-write entries for identifying common writes.
Claim 51
Dependent Claim 23 words
The computer method of claim 44 wherein said dow -- create steps provide said operation entries as function-call entries for identifying function calls.
Claim 52
Dependent Claim 64 words
The computer method of claim 44 wherein said ordering store includes ordered locations with higher-order locations and lower-order locations and wherein said ordering store includes for each common-write entry, zero or more higher-order locations for an order entry pointing to zero or more higher-order common writes and zero or more lower-order locations for an order entry pointing to zero or more lower-order common writes.
Claim 53
Dependent Claim 30 words
The computer method of claim 44 wherein a write for one or more of said update requests is delayed so as to be part of one of said common writes.
Claim 54
Dependent Claim 87 words
The computer method of claim 44 wherein said update requests R1, R2, . . . , Rr are presented in time order with R1, R2 before R3, . . . , R(r-1) before Rr and wherein a write for one or more of said update requests is delayed so as to be part of one of said common writes whereby writes for one or more of said update requests are not in the time order of the update requests R1, R2, . . . , R(r-1), Rr.
Claim 55
Dependent Claim 18 words
The computer method of claim 44 wherein said add steps operate asynchronously with respect to said execution steps.
Claim 56
Dependent Claim 37 words
The computer method of claim 44 wherein said deleting step includes an operation delete step for deleting operation entries from said ordering store and includes an order delete step for deleting order entries from said ordering store.

References Cited (Backward Citations)

US5218695A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2000-09-08 2001-03-10 2001-09-09 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2004-09-08 2005-03-10 2005-09-09 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2008-09-08 2009-03-10 2009-09-09 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag