8954408

Allowing Writes to Complete Without Obtaining a Write Lock to a File

PublishedFebruary 10, 2015
Assigneenot available in USPTO data we have
Technical Abstract

Patent Claims
21 claims

Legal claims defining the scope of protection, as filed with the USPTO.

1

1. A computer program product for managing access to a file, the computer program product comprising a non-transitory computer readable storage medium having computer readable program code embodied therein that executes to perform operations, the operations comprising: providing a lock to a first request, comprising a read or write request, to access the file; receiving a second write request while the first request maintains the lock; creating a temporary file associated with the file for the second write request; writing the data of the second write request to the temporary file while the lock is held by the first request; in response to completing the first request, granting the lock to the second write request to write the data of the second write request in the temporary file to the file; and in response to determining that the second write request continues to write to the temporary file after the data in the temporary file is written to the file, providing the lock to the second write request and continuing the writing of the data of the second write request to the file until completion.

2

2. The computer program product of claim 1 , wherein the operations further comprise: receiving a subsequent write request following the second write request; determining whether the lock is held; creating a subsequent temporary file for the subsequent write request in response to determining that the lock is held; and writing the write data of the subsequent write request to the subsequent temporary file.

3

3. The computer program product of claim 2 , wherein the operations further comprise: returning write complete to each write request writing to one of the temporary files in response to completing the writing of the data for the write request to the temporary file, wherein at least two of the write completes are returned out of a write order in which the completed write requests were received.

4

4. The computer program product of claim 3 , wherein the operations further comprise: releasing the lock by a releasing request holding the lock; determining whether there is a closed temporary file to which a write request completed writing data whose data was not written to the file in response to releasing the lock; writing the data in the determined closed temporary file to the file; and granting the lock to a next request in response to writing the data in the determined closed temporary file.

5

5. The computer program product of claim 4 , wherein data in closed temporary files is written to the file in an order in which the temporary files were created so that data for write requests in the temporary files are written to the file according to an order in which the write requests were received.

6

6. The computer program product of claim 2 , wherein the operations further comprise: maintaining a queue of received read and write requests indicating an order in which the requests were received; removing read requests from the queue in response to completing the read requests; maintaining a placeholder for one of the write requests in the queue in response to returning complete to the write requests not having the lock; processing the placeholder in the queue in response to the request immediately preceding the placeholder in the queue releasing the lock; copying data in a least recently created temporary file to the file in response to processing the placeholder; and removing the processed placeholder in the queue in response to copying the data in the least recently created temporary file to the file.

7

7. The computer program product of claim 2 , wherein the operations further comprise: receiving a subsequent read request following the subsequent write request; reading, for the subsequent read request, from the file after the write requests received prior to the subsequent read request have their data applied to the file, including write requests writing to the temporary files.

8

8. The computer program product of claim 1 , wherein writing the data in the temporary file to the file comprises: creating a logical copy relationship between locations in the temporary file and locations in the file to which the data in the temporary file is written; completing the writing of the data in the temporary file to the file in response to creating the logical copy relationship and before the data is written to the temporary file; copying the data in the temporary file locations to the file locations indicated in the logical copy relationship; and in response to processing a read request to requested locations in the file indicated in the logical copy relationship that have not been updated with the data in the temporary file, accessing the data from the temporary file to return to the read request.

9

9. The computer program product of claim 1 , wherein the temporary file has same file attributes of the data set and wherein the file and the temporary file comprise sequential files to which data is written sequentially.

10

10. A system, comprising: a processor; and a computer readable storage medium having code executed by the processor to perform operations, the operations comprising: providing a lock to a first request, comprising a read or write request, to access a file; receiving a second write request while the first request maintains the lock; creating a temporary file associated with the file for the second write request; writing the data of the second write request to the temporary file while the lock is held by the first request; in response to completing the first request, granting the lock to the second write request to write the data of the second write request in the temporary file to the file; and in response to determining that the second write request continues to write to the temporary file after the data in the temporary file is written to the file, providing the lock to the second write request and continuing the writing of the data of the second write request to the file until completion.

11

11. The system of claim 10 , wherein the operations further comprise: receiving a subsequent write request following the second write request; determining whether the lock is held; creating a subsequent temporary file for the subsequent write request in response to determining that the lock is held; and writing the write data of the subsequent write request to the subsequent temporary file.

12

12. The system of claim 11 , wherein the operations further comprise: returning write complete to each write request writing to one of the temporary files in response to completing the writing of the data for the write request to the temporary file, wherein at least two of the write completes are returned out of a write order in which the completed write requests were received.

13

13. The system of claim 12 , wherein the operations further comprise: releasing the lock by a releasing request holding the lock; determining whether there is a closed temporary file to which a write request completed writing data whose data was not written to the file in response to releasing the lock; writing the data in the determined closed temporary file to the file; and granting the lock to a next request in response to writing the data in the determined closed temporary file.

14

14. The system of claim 11 , wherein the operations further comprise: maintaining a queue of received read and write requests indicating an order in which the requests were received; removing read requests from the queue in response to completing the read requests; maintaining a placeholder for one of the write requests in the queue in response to returning complete to the write requests not having the lock; processing the placeholder in the queue in response to the request immediately preceding the placeholder in the queue releasing the lock; copying data in a least recently created temporary file to the file in response to processing the placeholder; and removing the processed placeholder in the queue in response to copying the data in the least recently created temporary file to the file.

15

15. The system of claim 10 , wherein writing the data in the temporary file to the file comprises: creating a logical copy relationship between locations in the temporary file and locations in the file to which the data in the temporary file is written; completing the writing of the data in the temporary file to the file in response to creating the logical copy relationship and before the data is written to the temporary file; copying the data in the temporary file locations to the file locations indicated in the logical copy relationship; and in response to processing a read request to requested locations in the file indicated in the logical copy relationship that have not been updated with the data in the temporary file, accessing the data from the temporary file to return to the read request.

16

16. A method for managing access to a file, comprising: providing a lock to a first request, comprising a read or write request, to access the file; receiving a second write request while the first request maintains the lock; creating a temporary file associated with the file for the second write request; writing the data of the second write request to the temporary file while the lock is held by the first request; in response to completing the first request, granting the lock to the second write request to write the data of the second write request in the temporary file to the file; and in response to determining that the second write request continues to write to the temporary file after the data in the temporary file is written to the file, providing the lock to the second write request and continuing the writing of the data of the second write request to the file until completion.

17

17. The method of claim 16 , further comprising: receiving a subsequent write request following the second write request; determining whether the lock is held; creating a subsequent temporary file for the subsequent write request in response to determining that the lock is held; and writing the data of the subsequent write request to the subsequent temporary file.

18

18. The method of claim 17 , further comprising: returning write complete to each write request writing to one of the temporary files in response to completing the writing of the data for the write request to the temporary file, wherein at least two of the write completes are returned out of a write order in which the completed write requests were received.

19

19. The method of claim 18 , further comprising: releasing the lock by a releasing request holding the lock; determining whether there is a closed temporary file to which a write request completed writing data whose data was not written to the file in response to releasing the lock; writing the data in the determined closed temporary file to the file; and granting the lock to a next request in response to writing the data in the determined closed temporary file.

20

20. The method of claim 17 , further comprising: maintaining a queue of received read and write requests indicating an order in which the requests were received; removing read requests from the queue in response to completing the read requests; maintaining a placeholder for one of the write requests in the queue in response to returning complete to the write requests not having the lock; processing the placeholder in the queue in response to the request immediately preceding the placeholder in the queue releasing the lock; copying data in a least recently created temporary file to the file in response to processing the placeholder; and removing the processed placeholder in the queue in response to copying the data in the least recently created temporary file to the file.

21

21. The method of claim 16 , wherein writing the data in the temporary file to the file comprises: creating a logical copy relationship between locations in the temporary file and locations in the file to which the data in the temporary file is written; completing the writing of the data in the temporary file to the file in response to creating the logical copy relationship and before the data is written to the temporary file; copying the data in the temporary file locations to the file locations indicated in the logical copy relationship; and in response to processing a read request to requested locations in the file indicated in the logical copy relationship that have not been updated with the data in the temporary file, accessing the data from the temporary file to return to the read request.

Patent Metadata

Filing Date

Unknown

Publication Date

February 10, 2015

Inventors

Kyle B. Dudgeon
David C. Reed
Esteban Rios
Max D. Smith

Want to explore more patents?

Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.

Citation & reuse

Analysis on this page is generated by Patentable — an AI-powered patent intelligence platform. AI-generated summaries, explanations, and analysis may be reused with attribution and a visible link back to the canonical URL below. Patent abstracts and claims are USPTO public domain.

Cite as: Patentable. “ALLOWING WRITES TO COMPLETE WITHOUT OBTAINING A WRITE LOCK TO A FILE” (8954408). https://patentable.app/patents/8954408

© 2026 Patentable. All rights reserved.

Patentable is a research and drafting-assistant tool, not a law firm, and does not provide legal advice. Documents we generate are drafts for review by a licensed patent attorney.