Increasingly, data is stored on and retrieved from the cloud. Cloud computing enables storage and retrieval operations to be spread across a large number of devices. By involving a large number of devices in a given read from or write to the cloud, the cloud may even offer faster storage and retrieval to a computing device than is available on local storage of that computing device.
To utilize cloud storage, a computing device must be connected to the cloud, typically via a network. While connected, the computing device reads data from the cloud and writes data to the cloud. This dependence on connectivity to the cloud poses problems when the computing device is not connected to the cloud. One approach to disconnected operation is for the computing device to locally store writes while disconnected from the cloud and provide those writes to the cloud upon reconnecting. This approach provides no ability to read data that was stored on the cloud during disconnected operation, however. Another approach to disconnected operation is for the computing device to locally mirror writes to the cloud while connected and locally store writes while disconnected. This approach enables reads during disconnected operation but to make the techniques resilient to local mirror crashes, clients need to compare the entirety of the local mirror contents to the corresponding data in the cloud. Further harming performance, locally mirroring every write in a synchronous fashion degrades performance if writing to the mirror is slower than writing to the cloud, causing applications to wait longer for indications of the success or failure of their writes.
While connected to cloud storage, a computing device writes data and metadata to the cloud storage and asynchronously mirrors the data and the metadata to local storage of the computing device. By asynchronously mirroring the write, the application requesting the write is enabled to continue processing without awaiting a result of the mirrored write to the local storage. When mirroring the write to the local storage, the computing device writes the data and metadata to separate areas of the local storage. During reconciliation of the local storage with the cloud storage following a crash or disconnected mode, the computing device only needs to examine the area of local storage that includes the metadata and compare the metadata from that area to metadata retrieved from the cloud storage. Because the cloud storage may be significantly faster than the local storage, the cloud storage may store the data and metadata differently than the local client stores those items. For example, the client may keep data and metadata in two different areas of the local storage, while the cloud storage may store expanded blocks that each include a data item and its associated metadata in contiguous storage. These different techniques for storing data and metadata in the local and cloud storages improve the speed of reconciling the local and cloud storages.
This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key or essential features of the claimed subject matter; nor is it to be used for determining or limiting the scope of the claimed subject matter.
The detailed description is set forth with reference to the accompanying figures. In the figures, the left-most digit(s) of a reference number identifies the figure in which the reference number first appears. The use of the same reference numbers in different figures indicates similar or identical items or features.
This disclosure describes, in part, techniques for enabling continued operation during network outages and improved reconciliation between a computing device and the cloud following a crash or disconnected operation. In order for the computing device to satisfy reads when the network is down, a cloud client of the computing device writes to cloud storage and asynchronously mirrors those writes to local storage of the computing device. As used herein, the term “mirror” refers to writing substantially the same data metadata to two different storage components. The data and metadata may, however, be stored differently in the different storage components. The term “asynchronously mirror” refers to providing an indication to the application which generated the write that the write was successful without awaiting a result of mirroring the write to the local storage. From the perspective of the application that generated the write, the write operation is finished when the cloud acknowledges that the write was successful. The application does not have to wait for the local data and metadata writes to complete, because the cloud client handles those events asynchronously, without blocking the application.
In various embodiments, when the cloud client mirrors the write to the local storage, it writes data and metadata associated with that data to different areas of the local storage. For example the cloud client may write multiple data items to a first area of the local storage and multiple corresponding metadata records to a separate area of the local storage. Because the metadata is much smaller than its associated data, the second area may be much smaller in size than the first area. In contrast to this, the cloud storage may store each data item contiguously with its corresponding metadata record as an expanded block. The cloud storage may store the data and metadata in this manner to minimize the number of seeks performed on the cloud storage if the cloud storage uses a seek-based storage medium like a hard disk.
Storing metadata records in a separate area of local storage and in expanded blocks of cloud storage improves the speed of reconciliation between the local storage and cloud storage. After a crash or following disconnected operation, the cloud client need only use the much smaller second area of the local storage rather than the entire local storage. This may be advantageous if the local storage is slow relative to the cloud storage. This area of metadata records is compared to metadata retrieved from the cloud storage. Based on the result of the comparison, the cloud client then reconciles the local storage and cloud storage.
In various embodiments, the cloud client ensures the integrity of the data mirrored to the local storage by writing the data before the metadata in connected mode, and writing the metadata before the data in disconnected mode. For example, the cloud client operating in connected mode may write a data item and its metadata record to the cloud, mirror the write of the data item to local storage, and crash. The cloud storage now has the updated metadata record and the local storage has either a previous metadata record or a default record. The cloud client will reconcile the local storage and cloud storage, comparing version identifiers in the metadata records which will indicate that the cloud storage has a more recent version of the data item (note that this is incorrect but harmless; the local storage has updated data, but not updated metadata, and the updated data of the local storage will be overwritten with the same updated data stored in the cloud). Based on the comparison, the cloud client will update the local storage with the data item and metadata record from the cloud storage. If the initial writes of metadata and data to the local storage were reversed, and the computing device crashed after writing the metadata record to local storage but before writing the data item, the reconciliation would have wrongly indicated that the local storage has the same version of the data item as the cloud storage.
The order of writing data and metadata to the local storage is reversed in disconnected mode because, in that mode, the local storage has the most recent version of the data. For example, a computing device operating in disconnected mode may write a metadata record for a data item to local storage and, before writing the data item to local storage, crash and then immediately reconnect to the cloud storage. Upon entering connected mode, the cloud client may reconcile the local storage with the cloud storage. In this example the reconciliation would indicate (incorrectly, but harmlessly) that the local storage has the more recent version of the data item, resulting in the data item being used to update the data item stored in cloud storage. If the initial writes of metadata and data to the local storage were reversed, and the computing device wrote the data but not the updated metadata record to local storage, the reconciliation would have wrongly indicated that the local storage has the same version of the data item as the cloud storage, resulting in an inconsistency between the cloud storage and local storage.
The computing device 102 and the cloud storage devices 104 may each be implemented as any one or more computing devices, such as personal computers (PCs), laptop computers, workstations, server systems, mainframes, server farms, cellular phones, smart phones, tablet computers, media centers, media devices, or any other computing devices. Also, modules and data of the each of the computing device 102 and cloud storage devices 104 may be implemented in a single computing device or distributed among multiple computing devices. In some embodiments, one or more of the computing device 102 and cloud storage devices 104 may be implemented as a virtual machine on a computing device.
In some embodiments, the cloud storage devices 104 form a datacenter-scale store which leverages a full bisection bandwidth network that matches cloud storage disk bandwidth to network interface card (NIC) bandwidth, enabling the cloud storage devices 104 to exchange data at full NIC speeds. In further embodiments, the cloud storage devices 104 store data in units referred to as “tracts” which may have a uniform size (e.g., 8 MB). A plurality of these tracts may form a binary large object (BLOB) or other data container and may be distributed across a plurality of the cloud storage devices 104. In one embodiment, the virtual disk driver 114 may be mapped to a BLOB or other data container by the cloud storage devices 104. An example set of cloud storage devices 104 is described in greater detail in U.S. Pat. No. 8,438,244, entitled “Bandwidth-Proportioned Datacenters” and issued on May 7, 2013.
The network 106 may be or include a public or private packet switched network, such as the Internet, circuit switched network, or combination of packet switched and circuit switched networks. The network 106 may include a plurality of computing devices connected, for example, by one or more wide area networks (WAN), one or more local area networks (LAN), and/or one or more personal area networks (PAN). Communication between these ones of these computing devices of the network 106 may be wired, wireless, or both. These communications may utilize any sort of communication protocol known in the art for sending and receiving messages, such as the Transmission Control Protocol/Internet Protocol (TCP/IP), the Hypertext Transfer Protocol (HTTP), Extensible Messaging and Presence Protocol (XMPP), and/or the Session Initiation Protocol (SIP).
In various embodiments, the memory 108 is volatile (such as RAM), non-volatile (such as ROM, flash memory, etc.) or some combination of the two. As mentioned, the system memory 108 may store applications 110, a file system 112, a virtual disk driver 114, and a cloud client 116. In addition, the memory 108 may also store other modules and data, such as an operating system of the computing device 102. Alternatively, any of modules 110-116 may be implemented in hardware. For example, the cloud client 116 may be implemented in a storage controller.
In some embodiments, applications 110 may be any sort of applications, such as operating system components or third party applications. The applications 110 may be kernel-mode applications or user-mode applications. As described further herein, applications 110 may utilize the file system 112 to make write requests or read requests and may receive in response indications of the success or failure of the write requests or data sought by the read requests.
The file system 112 may be any sort of file system known in the art, such as the NT file system (NTFS) of Microsoft® or the third extended file system (ext3) associated with the Linux® kernel. The file system 112 provides access to application 110 and operating system components seeking to read from or write to a disk, whether actual or virtual. The file system 112 interfaces with a disk driver or virtual disk driver, providing write requests or read requests from applications 110 and other components and receiving responses to those requests.
The virtual disk driver 114 appears to the file system 112 as a driver for a local disk drive, such as a standard serial advanced technology attachment (SATA) drive. Thus, the virtual disk driver 114 enables the applications 110 and file system 112 to be oblivious to the location of the storage. The virtual disk driver 114 may be a kernel-mode component of the operating system of the computing device 102 and may forward read and write requests from the file system 112 to the cloud client 116 and forward responses from the cloud client 116 to the file system 112. While
The virtual disk driver 114 may be implemented as a kernel-mode component that is separate from the cloud client 116 to enable the cloud client 116 to operate in user-mode. To minimize the overhead of exchanging data across the user-kernel boundary, the virtual disk driver 114 and cloud client 116 may utilize zero-copy inter-process communication. In other embodiments, the virtual disk driver 114 and cloud client 116 may be the same component.
In various embodiments, the cloud client 116 receives read and write requests as block requests from one or more virtual disk drivers 114. The cloud client 116 translates these block requests into input/output operations that are recognizable by the cloud storage devices 104. Specifically, the cloud client 116 translates offsets representing locations of data in a linear range of bytes to tract identifiers and tract offsets. As mentioned, each virtual disk may be associated with a BLOB or data container that includes multiple tracts. The tract identifier identifies a specific tract that the data referenced by the block request is associated with, and the tract offset identifies a specific location within a tract that is associated with the data. In some embodiments, the cloud client 116 maps the offsets in such a way that data blocks with contiguous offsets on the virtual disk are distributed among multiple different tracts, thus increasing the number of tracts referenced for a given block request and the number of cloud storage devices 104 involved in the input/output operations associated with that block request. Further details on the translation capabilities of the cloud client 116 may be found in U.S. patent application Ser. No. 13/598,990, which is entitled “Block-level Access to Parallel Storage,” and was filed on Aug. 30, 2012.
In further embodiments, the cloud client 116 determines whether it is operating in connected mode or disconnected mode. “Connected mode” refers to a connection between the computing device 102 and cloud storage devices 104, and “disconnected mode” refers to the lack of a connection between the computing device 102 and cloud storage devices 104. The cloud client 116 may determine whether it is operating in connected mode or disconnected mode periodically, in response to a notification of an event, such as a connection event or a loss-of-connection event.
When operating in connected mode, the cloud client 116 receives a write request, and translates that request for the cloud storage devices 104, the cloud client 116 first writes the data and metadata associated with that request to the cloud storage 118 of one or more of the cloud storage devices 104. The cloud storage 118 may be memory, removable storage, or non-removable storage of any of the types described in further detail herein. The metadata written may include a unique identifier, such as a globally unique identifier (GUID), a tract identifier, a version identifier for the data, and a checksum for the data. The cloud storage devices 104 store the metadata and data as expanded blocks 120 in the cloud storage 118, each expanded block including one data item and its associated metadata record. The cloud storage device(s) 104 receiving the data then respond to the cloud client 116 with an indication of the success of the write, and the cloud client 116 responds to the requesting application 110 through the virtual disk driver 114 and file system 112, providing the indication.
After providing the indication to the requesting application 110, the cloud client 116 mirrors the write to local storage 122 of the computing device 102. The local storage 122 may be memory, removable storage, or non-removable storage of any of the types described in further detail herein. The cloud client 116 partitions the local storage 122 into two areas: a first area 124 for data and a second area 126 for metadata. These areas may or may not be contiguous locations in the local storage 122. In mirroring the write, the cloud client 116 first writes the data to the first area 124 and then writes the metadata to the second area 126. The metadata written to the second area 126 may include the version identifier for the data and a checksum for the data.
When the cloud client 116 is operating in connected mode and receives a read request, the cloud client 116 retrieves the data sought by the read request from the cloud storage 118 of the cloud storage devices 104.
In various embodiments, when the cloud client 116 is operating in disconnected mode and receives a write request, the cloud client 116 writes the data and metadata for that request to local storage 122. Because the cloud client 116 is disconnected from the cloud storage devices 104, it must provide the data and metadata to the cloud storage devices 104 until the cloud client 116 reconnects to the cloud storage devices 104. In writing to the local storage 122 in disconnected mode, the cloud client 116 reverses the order in which it writes the data and metadata. In disconnected mode, the cloud client 116 first writes the metadata to the second area 126 and then writes the data to the first area 124. The cloud client 116 reverses the order to avoid issues of data integrity when reconciling the cloud storage 118 and local storage 122.
When the cloud client 116 is operating in disconnected mode and receives a read request, the cloud client 116 retrieves the data sought by the read request from the local storage 122.
In some embodiments, the cloud client 116 determines that the computing device 102 has recovered from a crash and that the crash occurred while the computing device 102 was operating in connected mode. In response, the cloud client 116 initiates a reconciliation process between the local storage 122 and the cloud storage 118. As part of the reconciliation process, the cloud client 116 retrieves metadata records from the cloud storage 118 of the cloud storage devices 104. The cloud client 116 then compares version identifiers from the retrieved metadata to version identifiers from metadata records stored in the second area 126 of the local storage 122. Because the cloud client 116 always writes to the cloud storage 118 in connected mode before mirroring those writes, the cloud storage 118 will either have a more recent version of a given data item than the local storage 122 or the same version. The cloud client 116 then updates ones of the data items and their corresponding metadata records on the local storage 122 with counterparts retrieved from the cloud storage 118 when the comparisons for those ones of the data items indicate that the cloud storage 118 has the more recent versions.
The cloud client 116 may also be configured to determine that the computing device 102 has transitioned from disconnected mode to connected mode. In response, the cloud client 116 initiates a reconciliation process between the local storage 122 and the cloud storage 118. As part of the reconciliation process, the cloud client 116 retrieves metadata records from the cloud storage 118 of the cloud storage devices 104. The cloud client 116 then compares version identifiers from the retrieved metadata to version identifiers from metadata records stored in the second area 126 of the local storage 122. Because the cloud client 116 writes only to the local storage 122 while in disconnected mode, the local storage 122 will either have a more recent version of a given data item than the cloud storage 118 or the same version. The cloud client 116 then updates ones of the data items and their corresponding metadata records on the cloud storage 118 with counterparts retrieved from the local storage 122 when the comparisons for those ones of the data items indicate that the local storage 122 has the more recent versions.
In some embodiments, the cloud client 116 maintains an in-memory representation that tracks the writes made in disconnected mode. The cloud client 116 may then use this in-memory representation as part of the reconciliation process and simply provide the tracked writes to the cloud storage 118, avoiding the need to retrieve metadata records, iterate through the second area 126, or compare version identifiers.
In various embodiments, the cloud client 116 may determine that the computing device 102 has recovered from a crash and that the crash occurred while the computing device 102 was operating in disconnected mode. In response, the cloud client 116 works with the file system 112 to detect torn local writes using mechanisms of the file system (the file system possesses such mechanisms to recover from crashes that occur while local storage is handling writes). When the cloud client 116 transitions from disconnected mode to connected mode, the cloud client 116 performs the reconciliation process described above for transitioning from disconnected mode to connected mode.
In some embodiments, the processor(s) 128 is a microprocessing unit (MPU), central processing unit (CPU), a graphics processing unit (GPU), or any other sort of processing unit. Among other capabilities, the processor 128 can be configured to fetch and execute computer-readable processor-accessible instructions stored in memory 108, such as the instructions represented by modules 110-116.
In some embodiments, the network interfaces 130 include any sort of network interfaces 130 known in the art. For example, network interfaces 130 may include a wired interface, such as an Ethernet interface, for wired network communications. Network interfaces 130 may also or instead include any one or more of a wireless LAN interface, or a near field interface.
Computing device 102 may also include additional data storage devices (removable and/or non-removable) such as, for example, magnetic disks, optical disks, or tape. Such additional storage is illustrated in
In contrast, communication media can embody computer-readable instructions, data structures, program modules, or other data in a modulated data signal, such as a carrier wave. As defined herein, computer storage media does not include communication media.
In some embodiments, the I/O devices 136 include any sort of output devices known in the art, such as a display, speakers, a vibrating mechanism, or a tactile feedback mechanism. I/O devices 136 also include ports for one or more peripheral devices, such as headphones, peripheral speakers, or a peripheral display. I/O devices 136 further include any sort of input devices known in the art. For example, I/O devices 136 may include a camera, a microphone, a keyboard/keypad, or a touch-sensitive display. A keyboard/keypad may be a push button numeric dialing pad (such as on a typical telecommunication device), a multi-key keyboard (such as a conventional QWERTY keyboard), or one or more other types of keys or buttons, and may also include a joystick-controller and/or designated navigation buttons, or the like.
While example device configurations and architectures have been described, other implementations are not limited to the particular configurations and architectures described herein. Thus, this disclosure can extend to other implementations, as would be known or as would become known to those skilled in the art.
At 206, the computing device increments a version identifier for a data item associated with the write request. The version identifier may be included in a metadata records associated with the data item.
At 208, the computing device writes the data item associated with the write request, as well as its metadata record, to cloud storage. The writing of data and metadata to the cloud storage may be atomic, with the writing of both data and metadata succeeding or the writing of both data and metadata failing. This writing of data and metadata may include writing the data item, a GUID, a tract identifier, the version identifier, and a checksum. In some embodiments, the computing device determines that it is disconnected from cloud storage responsive to determining that the write to the cloud storage has failed and proceeds to the operation described at block 220.
After writing the data and metadata to the cloud storage, the computing device asynchronously mirrors the write to its local storage. This asynchronous mirroring includes responding, at 210, to the write request of the application by indicating to the application that the write request has succeeded and after or while responding at 210, writing the data and metadata to the local storage. Writing to local storage includes writing, at 212, the data item to a first area of the local storage and writing, at 214, the metadata record for the data item to a second area of the local storage. The computing device performs the writing of the data item before the writing of the metadata record when operating in connected mode.
At 216, the computing device receives a read request and reads one or more data items associated with the read request from cloud storage. While operation 216 is shown as following operations 202-214, it may occur before, during, or after any of the operations 202-214.
At 218, the computing device crashes. This crash may occur before, during, or after any of the operations 202-216. Following the crash, the computing device may perform the operations shown in
At 220, the computing device disconnects from the cloud storage (i.e., enters disconnected mode). After transitioning to disconnected mode, the computing device may perform the operations shown in
At 304, the computing device reconciles the local storage of the computing device with the cloud storage. At 306, the reconciliation includes comparing version identifiers included in metadata records from the second area of the local storage to version identifiers included in metadata records retrieved from the cloud storage. At 308, when the comparison for a given data item indicates that the cloud storage has a more recent version of the data item, the computing device updates the local storage with the data item and corresponding metadata record stored by the cloud storage.
At 406, the computing device increments a version identifier for a data item associated with the write request. The version identifier may be included in a metadata records associated with the data item.
At 408, the computing device then writes the metadata record for the data item associated with the write request to a second area of the local storage. At 410, the computing device writes the data item to a first area of the local storage. The computing device performs the writing of the metadata record before the writing of the data item when operating in disconnected mode. This writing of data and metadata may include writing the data item, the version identifier, and a checksum.
In some circumstances, the computing device may crash following operation 408 or 410. Following the crash, the computing device may perform the operations shown in
At 414, the computing device receives a read request and reads one or more data items associated with the read request from local storage. While operation 414 is shown as following operations 402-412, it may occur before, during, or after any of the operations 402-412.
At 416, the computing device determines that the computing device is now connected to the cloud storage (i.e., has transitioned to connected mode). This determination at 416 may be performed before, during, or after any of operations 402-416.
After determining that the computing device is connected to cloud storage, the computing device, at 418, reconciles the local storage of the computing device with the cloud storage. At 420, the reconciliation includes comparing version identifiers included in metadata records from the second area of the local storage to version identifiers included in metadata records retrieved from the cloud storage. At 422, when the comparison for a given data item indicates that the local storage has a more recent version of the data item, the computing device updates the cloud storage with the data item and corresponding metadata record stored by the local storage.
At 504, the computing device scans the local storage to detect torn writes based on checksums. This may involve calculating a checksum for each data item in the local storage and comparing that checksum to the checksum stored in the metadata record for that data item. At 506, a file system of the computing device then attempts to repair any torn writes.
At 508, the computing device determines that the computing device is now connected to the cloud storage (i.e., has transitioned to connected mode). After determining that the computing device is connected to cloud storage, the computing device, at 510, reconciles the local storage of the computing device with the cloud storage. At 512, the reconciliation includes comparing version identifiers included in metadata records from the second area of the local storage to version identifiers included in metadata records retrieved from the cloud storage. At 514, when the comparison for a given data item indicates that the local storage has a more recent version of the data item, the computing device updates the cloud storage with the data item and corresponding metadata record stored by the local storage.
Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described. Rather, the specific features and acts are disclosed as exemplary forms of implementing the claims.
Number | Name | Date | Kind |
---|---|---|---|
4491945 | Urner | Jan 1985 | A |
4780870 | McHarg et al. | Oct 1988 | A |
5305320 | Andrews et al. | Apr 1994 | A |
5408649 | Beshears et al. | Apr 1995 | A |
5423046 | Nunnelley et al. | Jun 1995 | A |
5446915 | Pierce | Aug 1995 | A |
5553285 | Krakauer et al. | Sep 1996 | A |
5621884 | Beshears et al. | Apr 1997 | A |
5663951 | Danneels et al. | Sep 1997 | A |
5778384 | Provino et al. | Jul 1998 | A |
5914878 | Yamamoto et al. | Jun 1999 | A |
5938732 | Lim et al. | Aug 1999 | A |
5970232 | Passint et al. | Oct 1999 | A |
6230252 | Passint et al. | May 2001 | B1 |
6424979 | Livingston et al. | Jul 2002 | B1 |
6480970 | DeKoning | Nov 2002 | B1 |
6577613 | Ramanathan | Jun 2003 | B1 |
6728747 | Jenkins et al. | Apr 2004 | B1 |
6850489 | Omi et al. | Feb 2005 | B1 |
6871295 | Ulrich et al. | Mar 2005 | B2 |
6963996 | Coughlin | Nov 2005 | B2 |
7076555 | Orman et al. | Jul 2006 | B1 |
7107606 | Lee | Sep 2006 | B2 |
7113993 | Cappiello et al. | Sep 2006 | B1 |
7115919 | Kodama | Oct 2006 | B2 |
7139933 | Hsu et al. | Nov 2006 | B2 |
7165256 | Boudnik et al. | Jan 2007 | B2 |
7171491 | O'Toole et al. | Jan 2007 | B1 |
7180875 | Neumiller et al. | Feb 2007 | B1 |
7184958 | Kagoshima et al. | Feb 2007 | B2 |
7231475 | Singla et al. | Jun 2007 | B1 |
7240358 | Horn et al. | Jul 2007 | B2 |
7272613 | Sim et al. | Sep 2007 | B2 |
7342876 | Bellur et al. | Mar 2008 | B2 |
7356213 | Cunningham et al. | Apr 2008 | B1 |
7383288 | Miloushev et al. | Jun 2008 | B2 |
7430568 | DeKoning | Sep 2008 | B1 |
7433332 | Golden et al. | Oct 2008 | B2 |
7437407 | Vahalia et al. | Oct 2008 | B2 |
7496233 | Kirihara et al. | Feb 2009 | B2 |
7577817 | Karpoff et al. | Aug 2009 | B2 |
7610348 | Kisley et al. | Oct 2009 | B2 |
7657581 | Orenstein et al. | Feb 2010 | B2 |
7725437 | Kirshenbaum et al. | May 2010 | B2 |
7756826 | Bots et al. | Jul 2010 | B2 |
7769843 | Neuse et al. | Aug 2010 | B2 |
7774469 | Massa et al. | Aug 2010 | B2 |
7779148 | Arimilli et al. | Aug 2010 | B2 |
7797453 | Meijer et al. | Sep 2010 | B2 |
7801994 | Kudo | Sep 2010 | B2 |
7805580 | Hirzel et al. | Sep 2010 | B2 |
7817880 | Drost et al. | Oct 2010 | B1 |
7840136 | Cunningham et al. | Nov 2010 | B1 |
7916703 | Yang et al. | Mar 2011 | B2 |
7921267 | Yadav et al. | Apr 2011 | B1 |
7930595 | Gooding | Apr 2011 | B2 |
8001352 | Chatterjee et al. | Aug 2011 | B1 |
8010829 | Chatterjee et al. | Aug 2011 | B1 |
8037478 | Tanaka et al. | Oct 2011 | B2 |
8041760 | Mamou et al. | Oct 2011 | B2 |
8074107 | Sivasubramanian et al. | Dec 2011 | B2 |
8160063 | Maltz et al. | Apr 2012 | B2 |
8181061 | Nightingale et al. | May 2012 | B2 |
8195950 | Spearman | Jun 2012 | B2 |
8234518 | Hansen | Jul 2012 | B2 |
8261033 | Slik et al. | Sep 2012 | B1 |
8266136 | Pogde et al. | Sep 2012 | B1 |
8274987 | Jia | Sep 2012 | B2 |
8296398 | Lacapra et al. | Oct 2012 | B2 |
8296408 | Anke et al. | Oct 2012 | B2 |
8327370 | Atyam et al. | Dec 2012 | B2 |
8438244 | Nightingale et al. | May 2013 | B2 |
8473582 | Ananthanarayanan | Jun 2013 | B2 |
9170892 | Nightingale et al. | Oct 2015 | B2 |
9268651 | Salyers | Feb 2016 | B1 |
9778856 | Fan et al. | Oct 2017 | B2 |
9813529 | Elson et al. | Nov 2017 | B2 |
20010042157 | Pascucci et al. | Nov 2001 | A1 |
20020083134 | Bauer, Jr. et al. | Jun 2002 | A1 |
20020093948 | Dertz et al. | Jul 2002 | A1 |
20020152293 | Hahn et al. | Oct 2002 | A1 |
20020194245 | Simpson et al. | Dec 2002 | A1 |
20030014393 | Kabra et al. | Jan 2003 | A1 |
20030117982 | Minnick | Jun 2003 | A1 |
20030131207 | Arakawa et al. | Jul 2003 | A1 |
20040085953 | Davis | May 2004 | A1 |
20040153479 | Mikesell et al. | Aug 2004 | A1 |
20040236983 | Burton et al. | Nov 2004 | A1 |
20050075911 | Craven, Jr. | Apr 2005 | A1 |
20050078655 | Tiller et al. | Apr 2005 | A1 |
20050094640 | Howe | May 2005 | A1 |
20050111423 | Anderson et al. | May 2005 | A1 |
20050138186 | Hesselink et al. | Jun 2005 | A1 |
20050256972 | Cochran et al. | Nov 2005 | A1 |
20050262097 | Sim-Tang et al. | Nov 2005 | A1 |
20060004759 | Borthakur et al. | Jan 2006 | A1 |
20060015495 | Keating et al. | Jan 2006 | A1 |
20060074946 | Pham | Apr 2006 | A1 |
20060098572 | Zhang et al. | May 2006 | A1 |
20060129614 | Kim et al. | Jun 2006 | A1 |
20060159456 | Gumaste et al. | Jul 2006 | A1 |
20060280168 | Ozaki | Dec 2006 | A1 |
20060288080 | Orszag et al. | Dec 2006 | A1 |
20070025381 | Feng et al. | Feb 2007 | A1 |
20070036093 | Newberg et al. | Feb 2007 | A1 |
20070043824 | Fremantle | Feb 2007 | A1 |
20070094691 | Gazdzinski | Apr 2007 | A1 |
20070147322 | Agrawal et al. | Jun 2007 | A1 |
20070153755 | Yang et al. | Jul 2007 | A1 |
20070156842 | Vermeulen et al. | Jul 2007 | A1 |
20070158432 | Tadamasa | Jul 2007 | A1 |
20070204028 | Lee | Aug 2007 | A1 |
20070230493 | Dravida et al. | Oct 2007 | A1 |
20070248089 | Redi et al. | Oct 2007 | A1 |
20070266208 | Kim et al. | Nov 2007 | A1 |
20070266244 | Walker et al. | Nov 2007 | A1 |
20070282787 | Shirai et al. | Dec 2007 | A1 |
20070286135 | Kirke | Dec 2007 | A1 |
20080005275 | Overton et al. | Jan 2008 | A1 |
20080010400 | Moon | Jan 2008 | A1 |
20080098392 | Wipfel et al. | Apr 2008 | A1 |
20080104442 | Diao et al. | May 2008 | A1 |
20080114827 | Gerber et al. | May 2008 | A1 |
20080162622 | Becker et al. | Jul 2008 | A1 |
20080215727 | Denis et al. | Sep 2008 | A1 |
20080222080 | Stewart et al. | Sep 2008 | A1 |
20080222104 | Stewart et al. | Sep 2008 | A1 |
20080256138 | Sim-Tang | Oct 2008 | A1 |
20080320138 | Wada | Dec 2008 | A1 |
20090006888 | Bernhard et al. | Jan 2009 | A1 |
20090097443 | Pasanen et al. | Apr 2009 | A1 |
20090106269 | Zuckerman et al. | Apr 2009 | A1 |
20090109891 | Fonseca, Jr. et al. | Apr 2009 | A1 |
20090112921 | Oliveira et al. | Apr 2009 | A1 |
20090113323 | Zhao et al. | Apr 2009 | A1 |
20090144422 | Chatley et al. | Jun 2009 | A1 |
20090164790 | Pogodin | Jun 2009 | A1 |
20090183002 | Rohrer et al. | Jul 2009 | A1 |
20090198958 | Arimilli et al. | Aug 2009 | A1 |
20090201923 | Menon et al. | Aug 2009 | A1 |
20090204405 | Kato et al. | Aug 2009 | A1 |
20090213731 | Bhasin et al. | Aug 2009 | A1 |
20090249418 | Alastruey Gracia et al. | Oct 2009 | A1 |
20090259665 | Howe et al. | Oct 2009 | A1 |
20090265218 | Amini et al. | Oct 2009 | A1 |
20090268611 | Persson et al. | Oct 2009 | A1 |
20090271412 | Lacapra et al. | Oct 2009 | A1 |
20090300407 | Kamath et al. | Dec 2009 | A1 |
20090307329 | Olston et al. | Dec 2009 | A1 |
20090313438 | Krishnaprasad et al. | Dec 2009 | A1 |
20100005151 | Gokhale | Jan 2010 | A1 |
20100008230 | Khandekar et al. | Jan 2010 | A1 |
20100008347 | Qin et al. | Jan 2010 | A1 |
20100017444 | Chatterjee | Jan 2010 | A1 |
20100061366 | DelRegno et al. | Mar 2010 | A1 |
20100094955 | Zuckerman et al. | Apr 2010 | A1 |
20100094956 | Zuckerman et al. | Apr 2010 | A1 |
20100153639 | Corry et al. | Jun 2010 | A1 |
20100161657 | Cha et al. | Jun 2010 | A1 |
20100169287 | Klose | Jul 2010 | A1 |
20100191919 | Bernstein et al. | Jul 2010 | A1 |
20100198888 | Blomstedt et al. | Aug 2010 | A1 |
20100198972 | Umbehocker | Aug 2010 | A1 |
20100228835 | Pitts | Sep 2010 | A1 |
20100250648 | Cao et al. | Sep 2010 | A1 |
20100250746 | Murase | Sep 2010 | A1 |
20100277345 | Rodriguez et al. | Nov 2010 | A1 |
20100332454 | Prahlad et al. | Dec 2010 | A1 |
20100332818 | Prahlad et al. | Dec 2010 | A1 |
20110022574 | Hansen | Jan 2011 | A1 |
20110075628 | Cho et al. | Mar 2011 | A1 |
20110083154 | Boersma | Apr 2011 | A1 |
20110099126 | Belani et al. | Apr 2011 | A1 |
20110145442 | Diab | Jun 2011 | A1 |
20110145818 | Vermuri et al. | Jun 2011 | A1 |
20110153835 | Rimae et al. | Jun 2011 | A1 |
20110161723 | Taleck et al. | Jun 2011 | A1 |
20110205974 | Zhu et al. | Aug 2011 | A1 |
20110208837 | Sartori | Aug 2011 | A1 |
20110219208 | Asaad et al. | Sep 2011 | A1 |
20110228789 | Jia | Sep 2011 | A1 |
20110246471 | Rakib | Oct 2011 | A1 |
20110246735 | Bryant et al. | Oct 2011 | A1 |
20110258290 | Nightingale et al. | Oct 2011 | A1 |
20110258297 | Nightingale et al. | Oct 2011 | A1 |
20110258482 | Nightingale et al. | Oct 2011 | A1 |
20110258488 | Nightingale et al. | Oct 2011 | A1 |
20110283019 | Bennett et al. | Nov 2011 | A1 |
20110292949 | Hayashi et al. | Dec 2011 | A1 |
20110296025 | Lieblich et al. | Dec 2011 | A1 |
20110307886 | Thanga et al. | Dec 2011 | A1 |
20120041976 | Annapragada | Feb 2012 | A1 |
20120042130 | Peapell | Feb 2012 | A1 |
20120042162 | Anglin et al. | Feb 2012 | A1 |
20120047239 | Donahue et al. | Feb 2012 | A1 |
20120047339 | Decasper | Feb 2012 | A1 |
20120054556 | Grube et al. | Mar 2012 | A1 |
20120158948 | Pang et al. | Jun 2012 | A1 |
20120197958 | Nightingale et al. | Aug 2012 | A1 |
20120207036 | Ong et al. | Aug 2012 | A1 |
20120224481 | Babiarz et al. | Sep 2012 | A1 |
20120256735 | Gilson | Oct 2012 | A1 |
20120278400 | Elson et al. | Nov 2012 | A1 |
20130042156 | Srinivasan et al. | Feb 2013 | A1 |
20130117240 | Taylor et al. | May 2013 | A1 |
20130263184 | Melnychenko | Oct 2013 | A1 |
20140068224 | Fan et al. | Mar 2014 | A1 |
20140101234 | Lee | Apr 2014 | A1 |
20140279893 | Branton | Sep 2014 | A1 |
20150052392 | Mickens et al. | Feb 2015 | A1 |
Number | Date | Country |
---|---|---|
2840596 | Jan 2013 | CA |
1664791 | Sep 2005 | CN |
102057366 | Sep 2005 | CN |
1871806 | Nov 2006 | CN |
1975679 | Jun 2007 | CN |
101411096 | Apr 2009 | CN |
101420786 | Apr 2009 | CN |
101431510 | May 2009 | CN |
101656644 | Feb 2010 | CN |
101902776 | Dec 2010 | CN |
102414692 | Apr 2012 | CN |
102930227 | Feb 2013 | CN |
2192729 | Jun 2010 | EP |
WO03038628 | May 2003 | WO |
WO2010108368 | Sep 2010 | WO |
WO2913068023 | May 2013 | WO |
Entry |
---|
Yen-Hung Kuo; A Hybrid Cloud Storage Architecture for Service Operational High Availability; 2013;IEEE; p. 487-492 (Year: 2013). |
Jiyi Wu; Cloud Storage as the Infrastructure of Cloud Computing; 2010; IEEE; pp. 380-383 (Year: 2010). |
The European Office Action dated May 23, 2014 for European patent application No. 12776594.9, a counterpart foreign application of U.S. Appl. No. 13/096,194, 6 pages. |
The Supplementary European Search Report dated May 13, 2014 for European Patent Application No. 12776594.9, 4 pages. |
Office action for U.S. Appl. No. 13/112,978 dated May 22, 14, Elson et al., “Data Layout for Recovery and Durability”, 11 pages. |
Office Action for U.S. Appl. No. 13/017,193, dated Jul. 18, 2014, Edmund B. Nightingale, “Parallel Serialization of Request Processing”, 21 pages. |
The European Office Action dated Oct. 6, 2014 for European patent application No. 12776594.9, a counterpart foreign application of U.S. Appl. No. 13/096,194, 6 pages. |
Office Action for U.S. Appl. No. 13/116,270, dated Aug. 14, 2014, Edmund B. Nightingale, “Server Failure Recovery”, 15 pages. |
Corbett et.al. “The Vesta Parallel File System”, ACM Transactions on Computer Systems, vol. 14, No. 3, Aug. 1996, 40 pgs. |
He et al, “Performance Evaluation of Distributed iSCSI Raid”, Proc of Intl Workshop on Storage Network Architecture and Parallel IOs, Sep. 2003, 8 pgs. |
International Search Report for PCT Application No. PCTUS2013056070, dated Nov. 20, 2013, Filed Date Aug. 22, 2013, 11 pgs. |
“Introduction to the Azure Platform”, Microsoft Patterns & Practices, retrieved at http:f/msdn.microsoft.com/en-us/libraryfff803364.aspx, Dec. 6, 2011, pp. 1-13. |
Lesem, Steve, “Cloud Storage Strategy”, Cloud Taxonomy Archives, retrieved at http:f/cloudstoragestrategy.com/cloud-taxonomy, Jan. 24, 2012, pp. 1-21. |
Office action for U.S. Appl. No. 13/096,194, dated Nov. 6, 14, Elson et al., “Effective Circuits in Packet-Switched Networks”, 25 pages. |
Office action for U.S. Appl. No. 13/112,978, dated Dec. 3, 2014, Elson, et al., “Data Layout for Recovery and Durability”, 14 pages. |
Ousterhout et al., “The Case for RAMClouds-Scalable High-Performance Storage Entirely in DRAM”, SIGOPS Operating Systems Review, vol. 43, No. 4, Dec. 2009, pp. 92-105. |
The European Office Action dated Apr. 1, 2015 for European patent application No. 1276594.9, a counterpart foreign application of U.S. Appl. No. 13/096,194, 6 pages. |
Office action for U.S. Appl. No. 13/116,270, dated Mar. 12, 2015, Nightingale et al., “Server Failure Recovery”, 9 pages. |
Office action for U.S. Appl. No. 13/112,978, dated Apr. 3, 2015, Elson et al., “Data Layout for Recovery and Durability”, 16 pages. |
Office Action for U.S. Appl. No. 13/598,990, dated Apr. 9, 2015, Fan et al., “Block-level Access to Parallel Storage”, 18 pages. |
Office Action for U.S. Appl. No. 13/598,990, dated Sep. 11, 2014, Fan et al., “Block-level Access to Parallel Storage”, 8 pages. |
Translated the Chinese Office Action dated Jun. 3, 2015 for Chinese patent application No. 201280020755.7, a counterpart foreign application of U.S. Appl. No. 13/096,194, 15 pages. |
Office action for U.S. Appl. No. 13/096,194, dated May 27, 2015, Elson et al., “Effective Circuits in Packet-Switched Networks”, 27 pages. |
Qin, et al., “Test and Simulation System of the Ad Hoc Network Based on Height Speed Ethernet”, Computer Applications, Roll 26, Issue 6, Jan. 2006, pp. 1298-1300. |
The European Office Action dated Oct. 29, 2015 for European patent application No. 12776594.9, a counterpart foreign application of U.S. Appl. No. 13/096,194, 8 pages. |
International Search Report and Written Opinion for PCT Application No. PCTUS2014051397, dated Oct. 28, 2015, 18 pgs. |
Office action for U.S. Appl. No. 13/112,978 dated Nov. 6, 2015, Elson et al., “Data Layout for Recovery and Durability”, 16 pages. |
Office action for U.S. Appl. No. 13/096,194, dated Feb. 7, 2014, Elson, et al., “Effective Circuits in Packet-Switched Networks”, 23 pages. |
U.S. Appl. No. 12/410,697, “Data Center Without Structural Bottlenecks,” Maltz etal, filed Mar. 25, 2009. |
U.S. Appl. No. 12/410,745, “Data Center Interconnect and Traffic Engineering,” Maltz et al, filed Mar. 25, 2009. |
U.S. Appl. No. 12/578,608, “Agile Data Center Network Architecture,” Greenberg et al, filed Oct. 14, 2009. |
U.S. Appl. No. 13/598,990, “Block Level Access to Parallel Storage”, Fan et al, filed Aug. 30, 2012. |
Akturk, “Asynchronous Replication of Metadata Across Multi-Master Servers in Distributed Data Storage Systems”, A Thesis Submitted to Louisiana State University and Agricultural and Mechanical College, Dec. 2009, 70 pages. |
Bafna et al, “CHIRAYU: A Highly Available Metadata Server for Object Based Storage Cluster File System,” retrieved from <<http://abhinaykampasi.tripod.com/TechDocs/ChirayuPaper.pdf>>, IEEE Bombay Section, Year 2003 Prof K Shankar Student Paper & Project Contest, Apr. 2003, 6 pgs. |
Baratto et al., “Thing: A Remote Display Architecture for Thin-Client Computing”, In Technical Report CUCS-027-04, Jul. 2004, 15 pages. |
Bonwick et al., “ZFS: The Last Word in File Systems”, retrieved at <<wiki.illumos.org/download/attachments/1146951zfs_last.pdf>>, Sun microsystems, Sep. 2008, 44 pages. |
Borthakur, “The Hadoop Distributed File System: Architecture and Design”, retrieved at <<http://hadoop.apache.org/docs/stable/hdfs_design.html>>, The Apache Software Foundation, Mar. 2013, 8 pages. |
Braam, “The Lustre Storage Architecture”, Cluster File Systems, Inc., Aug. 2004, 439 pages. |
Buddhikot et al, “Design of a Large Scale Multimedia Storage Server,” Journal Computer Networks and ISDN Systems, vol. 27, Issue 3, Dec. 1994, pp. 1-18. |
Carnes rt al., “PVFS: A Parallel File System for Linux Clusters”, In Proceedings of the Extreme Linux Track: 4th Annual Linux Showcase and Conference, Oct. 2000, 11 pages. |
Chen et al, “Replication-Based Highly Available Metadata Management for Cluster File Systems,” 2010 IEEE International Conference on Cluster Computing, Sep. 2010, pp. 292-301. |
“Citrix Storage Delivery Services Adapter for NetApp Data ONTAP”, retrieved on Mar. 9, 2010 at <<http://citrix.com/site/resources/dynamic/partnerDocs/datasheet_adapter.pdf>>, Citrix Systems, Citrix Storage Delivery Services Data sheet, 2008, 2 pgs. |
“Citrix Xen-Desktop Virtualization Desktop Infrastructure”, retrieved on Jun. 11, 2013 at <<http://www.citrix.com/solutions/desktop-virtualization/overview.html>> Citrix Systems, Inc., 2 pages. |
Norton et al., “Common Internet File System (CIFS) Technical Reference”, Storage Networking Industry Association, Mar. 2002, 150 pages. |
“EMC RecoverPoint Family: Cost-Effective Local and Remote Data Protection and Disaster Recovery Solution”, retrieved on Mar. 9, 2010 at <<http://www.emc.com/collateral/software/data-sheet/h2769-emc-recoverpoint-family.pdf>>, EMC Corporation, Data Sheet H2769.8, 2010, 3 pgs. |
Fan et al, “A Failure Recovery Mechanism for Distributed Metadata Servers in DCFS2,” Seventh International Conference on High Performance Computing and Grid in Asia Pacific Region, Jul. 20-22, 2004, 7 pgs. |
Feller, Virtual Desktop Resource Allocation, retrieved at <<http://blogs.citrix.com/2010/11/12/virtual-desktop-resource-allocation>>, Citrix Systems, Inc., Nov. 2010, 2 pages. |
Fellows, “Storage Optimization for VDI”, Storage Networking Industry Association, 2011, 42 pages. |
Fu, et al., “A Novel Dynamic Metadata Management Scheme for Large Distributed Storage Systems”, Proceedings of the 2008 10th IEEE International Conference on High Performance Computing and Communications, Sep. 2008, pp. 987-992. |
Fullmer et al, “Solutions to Hidden Terminal Problems in Wireless Networks,” Proceedings of the ACM SIGCOMM '97 Conference on Applications, Technologies, Architectures, and Protocols for Computer Communication, Cannes, France, Oct. 1997, pp. 39-49. |
Ghemawat et al., “The Google File System”, In Proceedings of the Ninetheenth ACM Symposium on Operating Systems Principles, Oct. 2003, 15 pages. |
Greenberg et al., “Towards a Next Generation Data Center Architecture: Scalability and Commoditization”, In Proceedings of theACM Workshop on Programmable Routers for Extensible Service of Tomorrow, Aug. 2008, pp. 57-62. |
Hartman et al., “The Zebra Striped Network File System” In Proceedings of the Fourteenth ACM Symposium on Operating Systems Principles, Dec. 1993, pp. 29-43. |
Hitz et al., “File System Design for an NFS File Server Appliance” USENIX Winter 1994 Conference, Jan. 1994, 23 pages. |
Hopkins et al., “AoE (ATA over Ethernet)”, The Brantley Coile Company, Inc., Feb. 2009, 14 pages. |
TechNet, “How Dynamic Disks and Volumes Work”, available at <<http://technet.microsoft.com/en-us/library/cc758035>>, Microsoft, last updated Mar. 2003, 19 pages. |
Howard et al., “Scale and Performance in a Distributed File System”, Journal of ACM Transactions on Computer Systems, vol. 6, Issue 1, Feb. 1988, pp. 51-81. |
Hsiao et al., “Chained Declustering: A New Availability Strategy for Multiprocessor Database Machines”, Sixth Annual Conference on Data Engineering, Feb. 1990, 10 pages. |
Isard, et al., “Dryad: Distributed Data-Parallel Programs from Sequential Building Blocks”, In Proceedings of the 2nd ACM SIGOPS/EuroSys European Conference on Computer Systems, Mar. 21, 2007, 14 pages. |
Technet, “Jetstress Field Guide”, retrieved at <<http://gallery.technet.microsoft.com/Jetstress-Field-Guide-1602d64c>>, Microsoft, Inc., Nov. 2010, 1 page. |
Kennedy, “Is Parallel Computing Dead”, retrieved on Oct. 2, 12, at http://www.crpc.rice.edu/newsletters/oct.94/director.html., Parallel Computing Newsletter, vol. 2, Issue 4, Oct. 1994, 2 pages. |
Kistler et al., “Disconnected Operation in the Coda File System”, ACM Transactions on Computer Systems, vol. 10, No. 1, Feb. 1992, pp. 3-25. |
Krioukov et al., “Parity Lost and Parity Regained”, The Proceedings of the 6th USENIX Conference on File and Storage Technologies, Feb. 2008, pp. 127-141. |
Lang, “Parallel Virtual File System, Version 2”, retrieved on Nov. 12, 2010 from <<http://www.pvfs.org/cvs/pvfs-2-7-branch.build/doc/pvfs2-guide/pvfs2-guide.php>>, Sep. 2003, 39 pages. |
Lee et al., “Petal: Distributed Virtual Disks”, In The Proceedings of the 7th International Conference on Architectural Support for Porgramming Languages and Operating Systems, vol. 31, No. 9, Sep. 1996, 9 pages. |
Lim et al., “Voluntary Disconnected Operations for Energy Efficient Mobile Devices in Pervasive Computing Environments”, In Intelligent Automation & Soft Computing, vol. 19, Issue 1, Mar. 2013, pp. 1-12. |
Menon et al., “IBM Storage Tank—A heterogeneous scalable SAN file system”, IBM Systems Journal, vol. 42, No. 2, Nov. 2003, pp. 250-267. |
Mohamed et al, “Extensible Communication Architecture for Grid Nodes,” abstract retrieved on Apr. 23, 2010 at <<http://www.computer.org/portal/web/csdl/doi/10.1109/itcc.2004.1286587>>, International Conference on Information Technology: Coding and Computing (ITCC'04), vol. 2, Apr. 5-7, 2004, Las Vegas, NV, 1 pg. |
Nightingale et al., “Flat Datacenter Storage”, 10th USENIX Symposium on Operating Systems Design and Implementation, Oct. 18, 2012, 15 pages. |
Nightingale et al., “Rethink the Sync”, 7th USENIX Symposium on Operating Systems Design and Implementation, Nov. 2006, 14 pages. |
Office action for U.S. Appl. No. 13/112,978, dated Jan. 16, 2014, Elson, et al., “Data Layout for Recovery and Durability”, 18 pages. |
Office Action for U.S. Appl. No. 12/766,726, dated May 29, 12, Nightingale et al., “Bandwidth-Proportioned Datacenters”, 21 pages. |
Office action for U.S. Appl. No. 13/116,270, dated Aug. 27, 2013, Nightingale, et al., “Server Failure Recovery”, 18 pages. |
Office action for U.S. Appl. No. 13/096,194, dated Sep. 23, 2013, Elson, et al., “Effective Circuits in Packet-Switched Networks”, 26 pages. |
Office Action for U.S. Appl. No. 13/412,944, dated Oct. 11, 12, Nightingale et al., “Reading and Writing During Cluster Growth Phase”, 10 pages. |
Office action for U.S. Appl. No. 13/017,193, dated Dec. 5, 2013, Nightingale, et al., “Parallel Serialization of Request Processing”, 19 pages. |
Office Action for U.S. Appl. No. 13/112,978, dated Dec. 14, 12, Elson et al., “Data Layout for Recovery and Durability”, 13 pages. |
Office Action for U.S. Appl. No. 13/017,193, dated Dec. 3, 12, Nightingale et al., “Parallel Serialization of Request Processing”, 19 pages. |
Office Action for U.S. Appl. No. 13/116,270, dated Feb. 15, 13, Nightingale et al., “Server Failure Recovery”, 16 pages. |
Office action for U.S. Appl. No. 13/017,193, dated Jun. 3, 13, Nightingale et al., “Parallel Serialization of Request Processing”, 21 pages. |
Non-Final Office Action for U.S. Appl. No. 13/112,978, dated Jul. 17, 2013, Elson et al., “Data Layout for Recovery and Durability”, 15 pages. |
Office Action for U.S. Appl. No. 12/763,107, dated Jul. 20, 12, Nightingale et al., “LocatorTable and Client Library for Datacenters”, 11 pages. |
Non-Final Office Action for U.S. Appl. No. 12/763,133, dated Sep. 16, 2011, Edmund Nightingale, “Memory Management and Recovery for Datacenters”, 18 pages. |
Pawlowski et al., “NFS Version 3 Design and Implementation”, Summer USENIX Conference, Jun. 1994, 15 pages. |
The PCT Search Report and Written Opinion dated Oct. 23, 2012 for PCT Application No. PCT/US2012/035700, 10 pages. |
Rhea et al., “Maintenance-Free Global Data Storage”, IEEE Internet Computing, Sep.-Oct. 2001, pp. 40-49. |
Rodeh et al., “zFS—A Scalable Distributed File System Using Object Disks”, 20th IEEE/11th NASA Goddard Conference on Mass Storage Systems and Technologies, Apr. 2003, 12 pages. |
Satran et al., “Internet Small Computer Systems Interface (iSCSI)”, Technical Report, RFC3720, IBM, Apr. 2004, 155 pages. |
Schmuck et al., “GPFS: A Shared-Disk File System for Large Computing Clusters”, In Proceedings of the Conference on File and Storage Technologies (FAST'02), Jan. 2002, pp. 231-244. |
Shepler et al., “Network File System (NFS) Version 4 Minor Version 1 Protocol”, Technical Report, RFC 5661, Internet Engineering Task Force, Jan. 2010, 618 pages. |
Sinnamohideen et al, “A Transparently-Scalable Metadata Service for the Ursa Minor Storage System,” USENIXATC'10 Proceedings of the 2010 USENIX Conference, Jun. 2010, 14 pgs. |
Terry et al, “Managing Update Conflicts in Bayou, a Weakly Connected Replicated Storage System”, in Proceedings of the 15th ACM Symposoim on Operating System Principles, Dec. 1995, pp. 172-183. |
Verbowski et al., “Flight Data Recorder: Monitoring Persistent-State Interactions to Improve Systems Management”, in Proceedings of the 7th USENIX Symposium on Operating Systems Design and Implementation, Nov. 2006, pp. 117-130. |
“VMware View—Your Cloud, Your Desktop, Just Got Better”, retrieved Jun. 2013 at <<www.vmware.com/files/pdf/view/VMware-View-Datasheet.pdf>>, VMware, Inc., 4 pages. |
Vrable et al., “BlueSky: A Cloud-Backed File System for the Enterprise”, Proceedings of the 10th USENIX Conference on File and Storage, Feb. 2013, 14 pages. |
Vrable et al., “Cumulus: Filesystem Backup to the Cloud”, In 7th USENIX Conference on File Storage Technologies, Published Feb. 24, 2009, pp. 1-14. |
Vrable, “Migrating Enterprise Storage Applications to the Cloud”, In Doctoral Dissertation, University of California, Published 2011, pp. 1-112. |
Weil et al., “Ceph: A Scalable, High-Performance Distributed File System” in Proceedings of the 7th USENIX Symposium on Operating Systems Design and Implementation, Nov. 2006, pp. 307-320. |
Weil et al, “CRUSH: Controlled, Scalable, Decentralized Placement of Replicated Data,” Proceedings of SC '06, Nov. 2006, 12 pgs. |
Weinsberg et al., “A Programming Model and System Support for Disconnected-Aware Applications on Resource-Constrained Devices”, in Proceedings of the 24th International Conference on Software Engineering, May 2002, pp. 374-384. |
Weiser, “Some Computer Science Issues in Ubiquitous Computing,” retrieved at <<https://www.cs.ucsb.edu/˜ravenben/papers/coreos/Wei93.pdf>>, Mar. 1993, 14 pgs. |
Welch et al., “Scalable Performance of the Panasas Parallel File System” in Proceedings of the 8th USENIX Conference on File and Storage Technologies, Feb. 2008, pp. 17-33. |
Technet, “Windows PE Technical Reference”, available at <<http://technet.microsoft.com/en-us/library/dd744322>>, Microsoft, Oct. 2009, 2 pages. |
Translated the Chinese Office Action dated Feb. 2, 2016 for Chinese patent application No. 201280020755.7, a counterpart foreign application of U.S. Appl. No. 13/096,194, 7 pages. |
The European Office Action dated Apr. 6, 2016 for European patent application No. 12776594.9, a counterpart foreign application of U.S. Appl. No. 13/096,194, 8 pages. |
Office action for U.S. Appl. No. 13/112,978, dated Feb. 25, 2016, Elson et al., “Data Layout for Recovery and Durability”, 17 pages. |
CN Patent Application No. 20138004574.0, First Office Action and Search Report dated Oct. 28, 2016, 16 pages. |
EP Patent Application No. 14759385.9, Rule 71(3), dated Jan. 16, 2017, 31 pages. |
U.S. Appl. No. 13/598,990, Non Final Office Action dated Dec. 20, 2016, 14 pages. |
Corbett, Peter F., et al., The Vesta Parallel File System, ACM Transactions Computer Systems, vol. 14, No. 3, Aug. 1996, 40 pages. |
Second Office Action and Search Report Issued in CN Patent Application No. 201380045740.0, dated Apr. 1, 2017, 16 pages. |
U.S. Appl. No. 13/598,990, Notice of Allowance dated Jun. 8, 2017, 8 pages. |
U.S. Appl. No. 13/096,194, Notice of Allowance dated Jul. 19, 2017, 5 pages. |
“Office Action Issued in European Patent Application No. 12776594.9”, dated Aug. 11, 2016, 7 Pages. |
“Final Office Action Issued in U.S. Appl. No. 13/598,990”, dated Jun. 30, 2016, 20 Pages. |
“Office Action Issued in European Patent Application No. 13759363.8”, dated Jan. 19, 2018, 6 Pages. |
“Third Office Action Issued in Chinese Patent Application No. 201380045740.0”, dated Jul. 28, 2017, 6 Pages. |
“First Office Action Issued in Chinese Patent Application No. 201480046028.7”, dated Jul. 30, 2018, 11 Pages. |
“First Office Action Issued in Chinese Patent Application No. 201610389666.X”, dated May 17, 2018, 12 Pages. |
“Second Office Action Issued in Chinese Patent Application No. 201480046028.7”, dated Mar. 5, 2019, 5 Pages. |
Kuri, et al., “Reliable Multicast in Multi-Access Wireless LANs”, In Journal of Wireless Networks, vol. 7, Issue 4, Sep. 1, 2001, pp. 359-369. |
“Second Office Action Issued in Chinese Patent Application No. 201610389666.X”, dated Dec. 10, 2018, 7 Pages. |
“Office Action Issued in Brazil Patent Application No. BR112015003406-3”, dated Jan. 14, 2020, 5 Pages. |
“Office Action Issued in Indian Patent Application No. 437/CHENP/2015”, dated Mar. 16, 2020, 8 Pages. |
Number | Date | Country | |
---|---|---|---|
20150052392 A1 | Feb 2015 | US |