Method and system for efficient write journal entry management for a distributed file system

US9767117B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9767117-B2
Application numberUS-201313896186-A
CountryUS
Kind codeB2
Filing dateMay 16, 2013
Priority dateOct 26, 2004
Publication dateSep 19, 2017
Grant dateSep 19, 2017

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

The present invention is directed to a method and system for efficient write journal entry management maintaining minimum write journal information stored in a nonvolatile memory through utilizing an additional structure in a fast volatile memory. The method and system may manage write journaling of a file volume including multiple fixed sized regions and assign a persistent 1-bit synchronization status (the write journal information) to each data region. In addition, a non-persistent I/O counter (the additional structure) for each region to manage the persistent 1-bit synchronization status during run-time. The present invention may provide a mechanism to determine when write I/O operations have not successfully completed to a specific region of the file volume.

First claim

Opening claim text (preview).

What is claimed is: 1. A method for efficient write journal entry management for a distributed file system, comprising: receiving a virtual write I/O command issued from a host; retrieving an I/O counter associated with a data region, wherein the I/O counter indicates an amount of outstanding host write operations for the data region, and wherein the I/O counter is included in an array of I/O counters; utilizing the I/O counter to manage a corresponding bit from a Sync State, the Sync State having a plurality of bits, each of the plurality of bits represent a sync status of a corresponding data region; and writing data via write I/O, wherein the I/O counter is stored in a first memory unit and the Sync State is stored in a second memory unit. 2. The method of claim 1 , the utilizing of the I/O counter further comprising: in case of the start of write I/O, checking whether the I/O counter associated with the data region is zero; if the I/O counter associated with the data region is zero, setting the corresponding bit from the Sync State to “0” indicating that the data region is no longer synchronized; and if the I/O counter associated with the data region is not zero, incrementing the I/O counter by one. 3. The method of claim 1 , the utilizing of the I/O counter further comprising: determining whether write I/O for the data region has been completed; in case of the completion of write I/O, decrementing the I/O counter associated with the data region by one, and determining whether the I/O counter associated with the data region is zero after I/O counter is decremented; and if the I/O counter associated with the data region is zero, setting the corresponding bit from the Sync State to “1” indicating there is no outstanding I/O operation to the data region. 4. The method of claim 1 , wherein the data region is one of a plurality of data regions in which a virtual file volume is divided. 5. The method of claim 4 , wherein the virtual file volume is utilized in a file recovery system. 6. The method of claim 4 , wherein each of the plurality of data regions has two possible states including “synchronized” and “not synchronized”. 7. The method of claim 4 , wherein the array of I/O counters is stored in a volatile memory unit. 8. The method of claim 4 , wherein each of the plurality of data regions is associated with a bit of the Sync State representing previous state. 9. The method of claim 1 , wherein the Sync State is utilized for a file system recovery of system interruptions. 10. A computing device comprising: a memory; and at least one processor coupled to the memory, the at least one processor to: maintain an array of I/O counters in a first memory unit, wherein each I/O counter included in the array of I/O counters indicates an amount of outstanding host write operations for a corresponding data region within a plurality of data regions; maintain a plurality of sync state bits in a second memory unit, each of the plurality of sync state bits representing a sync status of a corresponding data region within the plurality of date regions; and change a sync state bit for a particular data region to show a synchronized status for the particular data region in response to decrementing a particular one of the I/O counters to zero outstanding I/O operations for the particular data region. 11. The computing device of claim 10 , wherein the array of I/O counters are implemented in volatile memory. 12. The computing device of claim 10 , wherein the sync state bits are stored in non-volatile memory. 13. The computing device of claim 10 , the processor further to: synchronize a file volume, the file volume comprising the plurality of data regions, to recover from a system interruption. 14. The computing device of claim 10 , the processor further to: receive a virtual I/O command from a host computer, wherein the I/O command is to be written to the particular data region; retrieve the particular one of the I/O counters in response to receiving the virtual I/O command; set the sync state bit for the particular data region to a value indicating that the particular data region is no longer synchronized in response to receiving the virtual I/O command and in response to determining that the particular one of the I/O counters shows zero outstanding I/O operations; and increment by one the particular one of the I/O counters in response to determining that the particular one of the I/O counters shows a non-zero number of outstanding I/O operations. 15. A system for efficient write journal entry management of an array of storage devices suitable for being accessed by a plurality of host computers over a network, the system comprising: a processor to receive a command to access a virtual file volume, wherein the virtual file volume includes a plurality of data regions; a first memory unit coupled to the processor, the first memory unit including an array of I/O counters, wherein each I/O counter included in the array of I/O counters indicates an amount of outstanding host write operations for a corresponding data region included in the plurality of data regions; a second memory unit coupled to the processor, the second memory unit including a plurality of sync state bits, each of the plurality of sync state bits representing a sync status of a corresponding data region; and the processor further to update the plurality of sync state bits for write journaling, and change a sync state bit for a particular data region to show a synchronized status for the particular data region in response to decrementing a particular one of the I/O counters to zero outstanding host write operations for the particular data region. 16. The system of claim 15 , wherein the processor is communicatively coupled to a storage controller that controls the virtual file volume. 17. The system of claim 15 , wherein the processor is communicatively coupled to a host computer, wherein the command is received from the host computer. 18. The system of claim 15 , wherein the first memory unit comprises a volatile memory unit. 19. The system of claim 15 , wherein the second memory unit comprises a non-volatile memory unit. 20. The system of claim 15 , wherein the processor is further to: receive a virtual I/O command from a host computer, wherein the I/O command is to be written to the particular data region; retrieve the particular one of the I/O counters in response to receiving the virtual I/O command; set the sync state bit for the particular data region to a value indicating that the particular data region is no longer synchronized in response to receiving the virtual I/O command and in response to determining that the particular one of the I/O counters shows zero outstanding I/O operations; and increment by one the particular one of the I/O counters in response to determining that the particular one of the I/O counters shows a non-zero number of outstanding I/O operations.

Assignees

Inventors

Classifications

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9767117B2 cover?
The present invention is directed to a method and system for efficient write journal entry management maintaining minimum write journal information stored in a nonvolatile memory through utilizing an additional structure in a fast volatile memory. The method and system may manage write journaling of a file volume including multiple fixed sized regions and assign a persistent 1-bit synchronizati…
Who is the assignee on this patent?
Netapp Inc
What technology area does this patent fall under?
Primary CPC classification G06F16/1815. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Sep 19 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).