Patents Assigned to Caringo, Inc.
  • Patent number: 10762045
    Abstract: A client application is provided with a view of a subset of objects within an object store. A REST protocol, REST interface, or API may be used to access the objects. A coupling server may include a filter and a generator. The generator may automatically generate object metadata for newly created files that matches a filter. A client application may mount a drive on a computer based on metadata objects, such as providing a filter on object metadata to view files a user wants to access; or editing, reading, and updating object metadata as a file.
    Type: Grant
    Filed: July 27, 2017
    Date of Patent: September 1, 2020
    Assignee: CARINGO, INC.
    Inventors: Glen Olsen, Jonathan Ring, Russell Turpin
  • Patent number: 9916198
    Abstract: A cluster receives a request to store an object using replication or erasure coding. The cluster writes the object using erasure coding. A manifest is written that includes an indication of erasure coding and a unique identifier for each segment. The cluster returns a unique identifier of the manifest. The cluster receives a request from a client that includes a unique identifier. The cluster determines whether the object has been stored using replication or erasure coding. If using erasure coding, the method reads a manifest. The method identifies segments within the cluster using unique segment identifiers of the manifest. Using these unique segment identifiers, the method reconstructs the object. A persistent storage area of another disk is scanned to find a unique identifier of a failed disk. If using erasure coding, a missing segment previously stored on the disk is identified. The method locates other segments. Missing segments are regenerated.
    Type: Grant
    Filed: August 24, 2015
    Date of Patent: March 13, 2018
    Assignee: CARINGO, INC.
    Inventors: Don Baker, Paul R. M. Carpentier, Andrew Klager, Aaron Pierce, Jonathan Ring, Russell Turpin, David Yoakley
  • Patent number: 9575826
    Abstract: Digital objects are stored and accessed within a fixed content storage cluster by using a page mapping table and a pages index. A stream is read from the cluster by using a portion of its unique identifier as a key into the page mapping table. The page mapping table indicates a node holding a pages index indicating where the stream is stored. A stream is written to the cluster by storing the stream on any suitable node and then updating a pages index stored within the cluster. The cluster recovers from a node failure by first replicating streams from the failed node and reallocating a page mapping table to create a new pages index. The remaining nodes send records of the unique identifiers corresponding to objects they hold to the new pages index. A node is added to the cluster by reallocating a page mapping table.
    Type: Grant
    Filed: June 30, 2015
    Date of Patent: February 21, 2017
    Assignee: Caringo, Inc.
    Inventors: Paul R. M. Carpentier, Russell Turpin
  • Patent number: 9348408
    Abstract: Each node and volume in a storage cluster makes a decision whether to reduce power consumption based on lack of requests from client applications and nodes over a time period. Node configuration parameters determine how long to wait until idling a node or volume, and how long to wait while idle before performing integrity checks. A bid value is calculated by each node and reflects how much it will cost for that node to write a file, read a file, or keep a copy. A node with the lowest bid wins, and nodes that are idle have a premium added to each bid to ensure that idle nodes are kept idle. In an archive mode, writes bids are reversed, nodes with less capacity submit lower bids, fuller nodes fill up faster and are then idled, while empty or near empty nodes may remain idle before winning a write bid.
    Type: Grant
    Filed: January 16, 2015
    Date of Patent: May 24, 2016
    Assignee: Caringo, Inc.
    Inventors: James E. Dutton, Laura Arbilla, David Yoakley
  • Patent number: 9148174
    Abstract: A cluster receives a request to store an object using replication or erasure coding. The cluster writes the object using erasure coding. A manifest is written that includes an indication of erasure coding and a unique identifier for each segment. The cluster returns a unique identifier of the manifest. The cluster receives a request from a client that includes a unique identifier. The cluster determines whether the object has been stored using replication or erasure coding. If using erasure coding, the method reads a manifest. The method identifies segments within the cluster using unique segment identifiers of the manifest. Using these unique segment identifiers, the method reconstructs the object. A persistent storage area of another disk is scanned to find a unique identifier of a failed disk. If using erasure coding, a missing segment previously stored on the disk is identified. The method locates other segments. Missing segments are regenerated.
    Type: Grant
    Filed: June 30, 2014
    Date of Patent: September 29, 2015
    Assignee: Caringo, Inc.
    Inventors: Don Baker, Paul R. M. Carpentier, Andrew Klager, Aaron Pierce, Jonathan Ring, Russell Turpin, David Yoakley
  • Patent number: 9128833
    Abstract: Digital objects are stored and accessed within a fixed content storage cluster by using a page mapping table and a pages index. A stream is read from the cluster by using a portion of its unique identifier as a key into the page mapping table. The page mapping table indicates a node holding a pages index indicating where the stream is stored. A stream is written by storing the stream on any suitable node and then updating a pages index stored within the cluster responsible for knowing the location of digital objects having unique identifiers that fall within a particular address range. The cluster recovers from a node failure by first replicating streams from the failed node and reallocating a page mapping table to create a new pages index. The remaining nodes send records of the unique identifiers corresponding to objects they hold to the new pages index.
    Type: Grant
    Filed: March 7, 2014
    Date of Patent: September 8, 2015
    Assignee: Caringo, Inc.
    Inventors: Paul R.M. Carpentier, Russell Turpin
  • Patent number: 9104560
    Abstract: Digital objects are stored and accessed within a fixed content storage cluster by using a page mapping table and a pages index. A stream is read from the cluster by using a portion of its unique identifier as a key into the page mapping table. The page mapping table indicates a node holding a pages index indicating where the stream is stored. A stream is written to the cluster by storing the stream on any suitable node and then updating a pages index stored within the cluster. The cluster recovers from a node failure by first replicating streams from the failed node and reallocating a page mapping table to create a new pages index. The remaining nodes send records of the unique identifiers corresponding to objects they hold to the new pages index. A node is added to the cluster by reallocating a page mapping table.
    Type: Grant
    Filed: June 13, 2012
    Date of Patent: August 11, 2015
    Assignee: Caringo, Inc.
    Inventors: Paul R. M. Carpentier, Russell Turpin
  • Patent number: 8938633
    Abstract: Each node and volume in a storage cluster makes a decision whether to reduce power consumption based on lack of requests from client applications and nodes over a time period. Node configuration parameters determine how long to wait until idling a node or volume, and how long to wait while idle before performing integrity checks. A bid value is calculated by each node and reflects how much it will cost for that node to write a file, read a file, or keep a copy. A node with the lowest bid wins, and nodes that are idle have a premium added to each bid to ensure that idle nodes are kept idle. In an archive mode, writes bids are reversed, nodes with less capacity submit lower bids, fuller nodes fill up faster and are then idled, while empty or near empty nodes may remain idle before winning a write bid.
    Type: Grant
    Filed: September 11, 2013
    Date of Patent: January 20, 2015
    Assignee: Caringo, Inc.
    Inventors: James E. Dutton, Laura Arbilla, David Yoakley
  • Patent number: 8843454
    Abstract: Digital objects within a fixed-content storage cluster use a page mapping table and a hash-to-UID table to store a representation of each object. For each object stored within the cluster, a record in the hash-to-UID table stores the object's hash value and its unique identifier (or portions thereof). To detect a duplicate of an object, a portion of its hash value is used as a key into the page mapping table. The page mapping table indicates a node holding a hash-to-UID table indicating currently stored objects in a particular page range. Finding the same hash value but with a different unique identifier in the table indicates that a duplicate of an object exists. Portions of the hash value and unique identifier may be used in the hash-to-UID table. Unneeded duplicate objects are deleted by copying their metadata to a manifest and then redirecting unique identifiers to point at the manifest.
    Type: Grant
    Filed: April 25, 2014
    Date of Patent: September 23, 2014
    Assignee: Caringo, Inc.
    Inventors: Paul R. M. Carpentier, Russell Turpin
  • Patent number: 8843539
    Abstract: Two or more numerical samples are read from a storage location (or many storage locations) and the samples are compared to generate a single bit of entropy. This method is repeated to populate two arrays which are also compared to generate a single bit. Comparison of the arrays is also repeated to generate a sequence of bits which are formed into computer words. The words are combined with a shift register to generate a seed block array of any length. The seed block array is used to seed a pseudo random number generator. The storage location is a register, accumulator, buffer, clock, address, memory location, etc., that changes periodically. Comparison may be performed by counting the number of certain types of bits in the two values and returning a one or zero depending upon the count.
    Type: Grant
    Filed: May 8, 2012
    Date of Patent: September 23, 2014
    Assignee: Caringo, Inc.
    Inventor: Eric Dey
  • Publication number: 20140236906
    Abstract: Digital objects within a fixed-content storage cluster use a page mapping table and a hash-to-UID table to store a representation of each object. For each object stored within the cluster, a record in the hash-to-UID table stores the object's hash value and its unique identifier (or portions thereof). To detect a duplicate of an object, a portion of its hash value is used as a key into the page mapping table. The page mapping table indicates a node holding a hash-to-UID table indicating currently stored objects in a particular page range. Finding the same hash value but with a different unique identifier in the table indicates that a duplicate of an object exists. Portions of the hash value and unique identifier may be used in the hash-to-UID table. Unneeded duplicate objects are deleted by copying their metadata to a manifest and then redirecting unique identifiers to point at the manifest.
    Type: Application
    Filed: April 25, 2014
    Publication date: August 21, 2014
    Applicant: Caringo, Inc.
    Inventors: Paul R.M. CARPENTIER, Russell TURPIN
  • Patent number: 8799746
    Abstract: A cluster receives a request to store an object using replication or erasure coding. The cluster writes the object using erasure coding. A manifest is written that includes an indication of erasure coding and a unique identifier for each segment. The cluster returns a unique identifier of the manifest. The cluster receives a request from a client that includes a unique identifier. The cluster determines whether the object has been stored using replication or erasure coding. If using erasure coding, the method reads a manifest. The method identifies segments within the cluster using unique segment identifiers of the manifest. Using these unique segment identifiers, the method reconstructs the object. A persistent storage area of another disk is scanned to find a unique identifier of a failed disk. If using erasure coding, a missing segment previously stored on the disk is identified. The method locates other segments. Missing segments are regenerated.
    Type: Grant
    Filed: June 13, 2012
    Date of Patent: August 5, 2014
    Assignee: Caringo, Inc.
    Inventors: Don Baker, Paul R. M. Carpentier, Andrew Klager, Aaron Pierce, Jonathan Ring, Russell Turpin, David Yoakley
  • Patent number: 8762353
    Abstract: Digital objects within a fixed-content storage cluster use a page mapping table and a hash-to-UID table to store a representation of each object. For each object stored within the cluster, a record in the hash-to-UID table stores the object's hash value and its unique identifier (or portions thereof). To detect a duplicate of an object, a portion of its hash value is used as a key into the page mapping table. The page mapping table indicates a node holding a hash-to-UID table indicating currently stored objects in a particular page range. Finding the same hash value but with a different unique identifier in the table indicates that a duplicate of an object exists. Portions of the hash value and unique identifier may be used in the hash-to-UID table. Unneeded duplicate objects are deleted by copying their metadata to a manifest and then redirecting their unique identifiers to point at the manifest.
    Type: Grant
    Filed: June 13, 2012
    Date of Patent: June 24, 2014
    Assignee: Caringo, Inc.
    Inventors: Paul R. M. Carpentier, Russell Turpin
  • Patent number: 8726053
    Abstract: Each node and volume in a fixed-content storage cluster makes an independent decision whether to reduce power consumption based on lack of requests from client applications and nodes over a configurable time period. Node configuration parameters sleepAfter and wakeAfter respectively determine how long to wait until idling a node or volume, and how long to wait while idle before again performing integrity checks. A bid value is calculated by each node and reflects how much it will cost for that node to write a file, read a file, or keep a copy of the file. A node with the lowest bid wins, and nodes that are idle have a premium added to each bid to help ensure that idle nodes are kept idle. Normally, nodes with more capacity will submit a lower bid to write a file.
    Type: Grant
    Filed: July 19, 2010
    Date of Patent: May 13, 2014
    Assignee: Caringo, Inc.
    Inventors: James E. Dutton, Laura Arbilla, David Yoakley
  • Publication number: 20140013134
    Abstract: Each node and volume in a storage cluster makes a decision whether to reduce power consumption based on lack of requests from client applications and nodes over a time period. Node configuration parameters determine how long to wait until idling a node or volume, and how long to wait while idle before performing integrity checks. A bid value is calculated by each node and reflects how much it will cost for that node to write a file, read a file, or keep a copy. A node with the lowest bid wins, and nodes that are idle have a premium added to each bid to ensure that idle nodes are kept idle. In an archive mode, writes bids are reversed, nodes with less capacity submit lower bids, fuller nodes fill up faster and are then idled, while empty or near empty nodes may remain idle before winning a write bid.
    Type: Application
    Filed: September 11, 2013
    Publication date: January 9, 2014
    Applicant: Caringo, Inc.
    Inventors: James E. DUTTON, Laura Arbilla, David Yoakley
  • Publication number: 20130339818
    Abstract: A cluster receives a request to store an object using replication or erasure coding. The cluster writes the object using erasure coding. A manifest is written that includes an indication of erasure coding and a unique identifier for each segment. The cluster returns a unique identifier of the manifest. The cluster receives a request from a client that includes a unique identifier. The cluster determines whether the object has been stored using replication or erasure coding. If using erasure coding, the method reads a manifest. The method identifies segments within the cluster using unique segment identifiers of the manifest. Using these unique segment identifiers, the method reconstructs the object. A persistent storage area of another disk is scanned to find a unique identifier of a failed disk. If using erasure coding, a missing segment previously stored on the disk is identified. The method locates other segments. Missing segments are regenerated.
    Type: Application
    Filed: June 13, 2012
    Publication date: December 19, 2013
    Applicant: CARINGO, INC.
    Inventors: Don BAKER, Paul R.M. CARPENTIER, Andrew KLAGER, Aaron PIERCE, Jonathan RING, Russell TURPIN, David YOAKLEY
  • Publication number: 20130339314
    Abstract: Digital objects within a fixed-content storage cluster use a page mapping table and a hash-to-UID table to store a representation of each object. For each object stored within the cluster, a record in the hash-to-UID table stores the object's hash value and its unique identifier (or portions thereof). To detect a duplicate of an object, a portion of its hash value is used as a key into the page mapping table. The page mapping table indicates a node holding a hash-to-UID table indicating currently stored objects in a particular page range. Finding the same hash value but with a different unique identifier in the table indicates that a duplicate of an object exists. Portions of the hash value and unique identifier may be used in the hash-to-UID table. Unneeded duplicate objects are deleted by copying their metadata to a manifest and then redirecting their unique identifiers to point at the manifest.
    Type: Application
    Filed: June 13, 2012
    Publication date: December 19, 2013
    Applicant: CARINGO, INC.
    Inventors: Paul R. M. CARPENTIER, Russell TURPIN
  • Publication number: 20130339567
    Abstract: Digital objects are stored and accessed within a fixed content storage cluster by using a page mapping table and a pages index. A stream is read from the cluster by using a portion of its unique identifier as a key into the page mapping table. The page mapping table indicates a node holding a pages index indicating where the stream is stored. A stream is written to the cluster by storing the stream on any suitable node and then updating a pages index stored within the cluster. The cluster recovers from a node failure by first replicating streams from the failed node and reallocating a page mapping table to create a new pages index. The remaining nodes send records of the unique identifiers corresponding to objects they hold to the new pages index. A node is added to the cluster by reallocating a page mapping table.
    Type: Application
    Filed: June 13, 2012
    Publication date: December 19, 2013
    Applicant: CARINGO, INC.
    Inventors: Paul R. M. CARPENTIER, Russell TURPIN
  • Publication number: 20130304781
    Abstract: Two or more numerical samples are read from a storage location (or many storage locations) and the samples are compared to generate a single bit of entropy. This method is repeated to populate two arrays which are also compared to generate a single bit. Comparison of the arrays is also repeated to generate a sequence of bits which are formed into computer words. The words are combined with a shift register to generate a seed block array of any length. The seed block array is used to seed a pseudo random number generator. The storage location is a register, accumulator, buffer, clock, address, memory location, etc., that changes periodically. Comparison may be performed by counting the number of certain types of bits in the two values and returning a one or zero depending upon the count.
    Type: Application
    Filed: May 8, 2012
    Publication date: November 14, 2013
    Applicant: CARINGO, INC.
    Inventor: Eric DEY
  • Patent number: 8566626
    Abstract: Each node and volume in a storage cluster makes a decision whether to reduce power consumption based on lack of requests from client applications and nodes over a time period. Node configuration parameters determine how long to wait until idling a node or volume, and how long to wait while idle before performing integrity checks. A bid value is calculated by each node and reflects how much it will cost for that node to write a file, read a file, or keep a copy. A node with the lowest bid wins, and nodes that are idle have a premium added to each bid to ensure that idle nodes are kept idle. In an archive mode, writes bids are reversed, nodes with less capacity submit lower bids, fuller nodes fill up faster and are then idled, while empty or near empty nodes may remain idle before winning a write bid.
    Type: Grant
    Filed: June 19, 2012
    Date of Patent: October 22, 2013
    Assignee: Caringo, Inc.
    Inventors: James E. Dutton, Laura Arbilla, David Yoakley