News Column

Patent Issued for Distributed Storage System

August 13, 2014



By a News Reporter-Staff News Editor at Journal of Engineering -- According to news reporting originating from Alexandria, Virginia, by VerticalNews journalists, a patent by the inventors Lindamood, Jack William (Mountain View, CA); Beaver, Douglas John (San Francisco, CA); Lerios, Apostolos (Austin, TX); Page, Matthew (Mountain View, CA); Ruibal, Peter Avelino (Palo Alto, CA), filed on December 17, 2010, was published online on July 29, 2014.

The assignee for this patent, patent number 8793328, is Facebook, Inc. (Menlo Park, CA).

Reporters obtained the following quote from the background information supplied by the inventors: "A distributed storage system includes multiple storage nodes, and data may be physically stored on any one of these storage nodes. Distributed storage systems are generally scalable, versatile, and efficient. For example, new storage nodes may be added to a system as the amount of data increases. Malfunctioning storage nodes in a system may be replaced individually. The same data may be duplicated on multiple storage nodes in a system for safe keeping and load balancing."

In addition to obtaining background information on this patent, VerticalNews editors also obtained the inventors' summary information for this patent: "The present disclosure generally relates to a distributed storage system, and more specifically relates to a distributed storage system that includes one or more routers, where each router locally maintains a cache of storage information so that the router does not need to access any other computing devices to retrieve storage information during any read or write operations.

"In particular embodiments, a distributed storage system includes one or more routers, one or more storage volumes, and one or more storage nodes. In particular embodiments, each storage volume is a virtual storage unit, and may include one or more physical storage nodes. In particular embodiments, the same physical storage node may simultaneously belong to any number of virtual storage volumes. In particular embodiments, each router may access any number of storage volumes. In particular embodiments, each router maintains a cache. The cache may be local to a router or located remotely but is accessible to the router. In particular embodiments, the cache includes one or more storage volumes accessible to the router, and the storage nodes belonging to each storage volume.

"In particular embodiments, upon receiving a write request together with the data to be stored in the distributed storage system, a router selects one storage volume from its cache, and attempts to write a copy of the data to each storage node that belongs to the selected storage volume. If a copy of the data is successfully written to each and every storage node that belongs to the selected storage volume, then the router returns a volume identifier of the selected storage volume and a data identifier assigned to the data. If a copy of the data is not successfully written to any storage node that belongs to the selected storage volume, then the router selects another storage volume from its cache and repeats the process, until one storage volume is found in the router's cache where a copy of the data is successfully written to each and every storage node that belongs to that one storage volume. In particular embodiments, if no storage volume may be found where a copy of the data is successfully written to each and every storage node that belongs to that one storage volume, the write operation fails.

"In particular embodiments, a first computing device (e.g., a router) receives a write request and data associated with the write request from a second computing device (e.g., a client); iteratively attempts to write the data (e.g., the router iterates over different storage volumes) to one or more storage volumes; and transmits the volume identifier of one of the one or more storage volumes to which the data have been successfully written and a data identifier assigned to the data to the second computing device. In particular embodiments, there may be one or more such first computing devices (e.g., one or more routers) servicing one or more second computing devices (e.g., one or more clients), where a client may contact a router for a write request.

"In particular embodiments, during each iteration, the first computing device (e.g., the router) accesses a cache of one or more storage volumes to select one of the one or more storage volumes, wherein: the cache is maintained locally at the first computing device; each one of the one or more storage volumes in the cache is identified by a unique volume identifier, and comprises one or more storage nodes; and the selected one of the one or more storage volumes has not been selected during any previous iteration; write a copy of the data to each one of the one or more storage nodes of the selected one of the one or more storage volumes; if the copy of the data is successfully written to each one of the one or more storage nodes of the selected one of the one or more storage volumes, then end the iterative attempt to write the data; and if the copy of the data is not successfully written to any one of the one or more storage nodes of the selected one of the one or more storage volumes, then start another iteration. Moreover, in particular embodiments, if no storage volume may be found where a copy of the data is successfully written to each and every storage node that belongs to that one storage volume, the write operation fails. The first computing device may send a write failure to the second computing device.

"In particular embodiments, upon receiving a read request together with a data identifier identifying the data to be retrieved from the distributed storage system and a volume identifier identifying the storage volume where the data are stored, a router selects the storage volume identified by the volume identifier from its cache. In particular embodiments, if the volume identifier is not present in the cache, the router may contact a name node. The router selects one storage node that belongs to the storage volume, and reads a copy of the data from the selected storage node. If a copy of the data is successfully read from the selected storage node, then the router returns the copy of the data. If a copy of the data is not successfully read from the selected storage node, then the router selects another storage node that belongs to the storage volume and repeats the read attempt, until one storage node that belongs to the storage volume is found where a copy of the data is successfully read from that one storage node. In particular embodiments, if no storage node that belongs to the storage volume may be found from which a copy of the data may be successfully read, the read operation fails.

"In particular embodiments, a first computing devices (e.g., a router) receives a read request and a volume identifier and a data identifier associated with the read request from a second computing device (e.g., a client); accesses a cache of one or more storage volumes to select one of the one or more storage volumes identified by the volume identifier, wherein: the cache is maintained locally at the first computing device; and each one of the one or more storage volumes in the cache is identified by a unique volume identifier, and comprises one or more storage nodes; iteratively attempts to read data identified by the data identifier; and transmits the copy of the data to the second computing device.

"In particular embodiments, the first computing device (e.g., the router) iteratively selects one of the one or more storage nodes of the selected one of the one or more storage volumes, wherein the selected one of the one or more storage nodes has not been selected during any previous iteration; reads a copy of the data from the selected one of the one or more storage nodes of the selected one of the one or more storage volumes; if the copy of the data is successfully read from the selected one of the one or more storage nodes of the selected one of the one or more storage volumes, then end the iterative attempt to read the data; and if the copy of the data is not successfully read from the selected one of the one or more storage nodes of the selected one of the one or more storage volumes, then start another iteration. Moreover, in particular embodiments, if no storage node that belongs to the selected one of the one or more storage volumes may be found from which a copy of the data may be successfully read, the read operation fails. The first computing device may send a read failure to the second computing device.

"These and other features, aspects, and advantages of the disclosure are described in more detail below in the detailed description and in conjunction with the following figures."

For more information, see this patent: Lindamood, Jack William; Beaver, Douglas John; Lerios, Apostolos; Page, Matthew; Ruibal, Peter Avelino. Distributed Storage System. U.S. Patent Number 8793328, filed December 17, 2010, and published online on July 29, 2014. Patent URL: http://patft.uspto.gov/netacgi/nph-Parser?Sect1=PTO1&Sect2=HITOFF&d=PALL&p=1&u=%2Fnetahtml%2FPTO%2Fsrchnum.htm&r=1&f=G&l=50&s1=8793328.PN.&OS=PN/8793328RS=PN/8793328

Keywords for this news article include: Facebook Inc.

Our reports deliver fact-based news of research and discoveries from around the world. Copyright 2014, NewsRx LLC


For more stories covering the world of technology, please see HispanicBusiness' Tech Channel



Source: Journal of Engineering


Story Tools






HispanicBusiness.com Facebook Linkedin Twitter RSS Feed Email Alerts & Newsletters