Patents by Inventor Sergey Yekhanin

Sergey Yekhanin has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Publication number: 20180223340
    Abstract: This disclosure describes techniques to improve the accuracy of random access of data stored in polynucleotide sequence data storage systems. Primers used in polynucleotide sequence replication and amplification can be scored against a number of criteria that indicate the fitness of sequences of nucleotides to function as primers. Primers having scores that indicate a particular fitness to function as primers can be added to a specific group of primers. The primers from the group of primers can be used in amplification and replication of polynucleotide sequences that encode digital data. Additionally, an amount of overlap between primer targets and payloads encoding digital data can be determined. Minimizing the amount of overlap between primer targets and payloads can improve the efficiency of polynucleotide replication and amplification. The bits of the digital data can be randomized to minimize the amount of overlap between payloads encoding the digital data and primer targets.
    Type: Application
    Filed: February 8, 2017
    Publication date: August 9, 2018
    Inventors: Yuan-Jyue Chen, Luis H. Ceze, Sergey Yekhanin, Siena Dumas Ang, Karin Strauss
  • Publication number: 20180223341
    Abstract: This disclosure describes techniques to improve the accuracy of random access of data stored in polynucleotide sequence data storage systems. Primers used in polynucleotide sequence replication and amplification can be scored against a number of criteria that indicate the fitness of sequences of nucleotides to function as primers. Primers having scores that indicate a particular fitness to function as primers can be added to a specific group of primers. The primers from the group of primers can be used in amplification and replication of polynucleotide sequences that encode digital data. Additionally, an amount of overlap between primer targets and payloads encoding digital data can be determined. Minimizing the amount of overlap between primer targets and payloads can improve the efficiency of polynucleotide replication and amplification. The bits of the digital data can be randomized to minimize the amount of overlap between payloads encoding the digital data and primer targets.
    Type: Application
    Filed: February 8, 2017
    Publication date: August 9, 2018
    Inventors: Yuan-Jyue Chen, Karin Strauss, Luis H. Ceze, Siena Dumas Ang, Sergey Yekhanin
  • Publication number: 20180211001
    Abstract: Polynucleotide sequencing generates multiple reads of a polynucleotide molecule. Many or all of the reads may contain errors. Trace reconstruction takes multiple reads generated by a polynucleotide sequencer and uses those multiple reads to reconstruct accurately the nucleotide sequence. The types of errors are substitutions, deletions, and insertions. The location of an error in a read is identified by comparing the sequence of the read to the other reads. The type of error is determined by comparing both the base call of the read at the error location and base calls of the read and other reads in a look-ahead window that includes base calls adjacent to the error location. A consensus output sequence is developed from the sequences of the multiple reads and identification of the error types for errors in the reads.
    Type: Application
    Filed: April 25, 2017
    Publication date: July 26, 2018
    Applicant: Microsoft Technology Licensing, LLC
    Inventors: Parikshit S. Gopalan, Sergey Yekhanin, Siena Dumas Ang, Nebojsa Jojic, Miklos Racz, Karen Strauss, Luis Ceze
  • Publication number: 20180189164
    Abstract: A facility for reporting on original values on behalf of each of a plurality of users—each falling within a domain partitioned into a plurality of segments of uniform size—is provided. For each of the plurality of users, the facility (a) randomly selects an upward-rounding window size that is smaller than the segment size; (b) for each source value in a domain, randomly determines a mapping of each segment of the domain to a segment identifier value; (c) determines an original value for the user; (d) adds the upward-rounding window size to the user's original value to obtain a window-augmented original value; (e) identifies a segment containing the window-augmented original value; (f) identifies a segment identifier value mapped-to from the identified segment using the determined mapping; and (g) transmits a reporting communication on the user's behalf reporting a value based on the identified segment identifier value.
    Type: Application
    Filed: July 31, 2017
    Publication date: July 5, 2018
    Inventors: Janardhan Dattatreya KULKARNI, Bolin DING, Sergey YEKHANIN, Joshua ALLEN, Alexander Norton MEADE
  • Patent number: 9983959
    Abstract: The techniques and/or systems described herein implement erasure coding to generate various chunks for a data collection (e.g., data chunks and at least one encoding chunk). The chunks are then distributed and stored within an individual group (e.g., a pod) of storage units, where a pod of storage units is determined based on characteristics that affect an amount of time it takes to recover a data collection or to restore lost data.
    Type: Grant
    Filed: June 29, 2015
    Date of Patent: May 29, 2018
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Robert John Jenkins, Jr., Parikshit S Gopalan, Cheng Huang, Edmund Bernard Nightingale, Alexander Shamis, Sergey Yekhanin
  • Patent number: 9928136
    Abstract: A codeword is generated from a message. One or more anchor values are appended to the codeword at predetermined anchor positions. Before the codeword is stored in a memory block, the locations and values of stuck cells in the memory block are determined. Based on the values and positions of the stuck cells, the values of the codeword are remapped so that values of the codeword that are the same as the values of the stuck cells are placed at the positions of the stuck cells. The remapped codeword is stored in the memory block. When the message is later read, the original codeword can be recovered from the remapped codeword based on the locations of the anchor values in the remapped codeword.
    Type: Grant
    Filed: February 1, 2016
    Date of Patent: March 27, 2018
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: John D. Davis, Parikshit Gopalan, Mark Manasse, Karin Strauss, Sergey Yekhanin
  • Patent number: 9875810
    Abstract: A memory region can durably self-identify as being faulty when read. Information that would have been assigned to the faulty memory region can be assigned to another of that sized region in memory using a replacement encoding technique. For phase change memory, at least two fault states can be provided for durably self-identifying a faulty memory region; one state at a highest resistance range and the other state at a lowest resistance range. Replacement cells can be used to shift or assign data when a self-identifying memory fault is present. A memory controller and memory module, alone or in combination may manage replacement cell use and facilitate driving a newly discovered faulty cell to a fault state if the faulty cell is not already at the fault state.
    Type: Grant
    Filed: July 24, 2013
    Date of Patent: January 23, 2018
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: John D. Davis, Karin Strauss, Mark Steven Manasse, Parikshit S. Gopalan, Sergey Yekhanin
  • Patent number: 9600365
    Abstract: In some examples, an erasure code can be implemented to provide for fault-tolerant storage of data. Maximally recoverable cloud codes, resilient cloud codes, and robust product codes are examples of different erasure codes that can be implemented to encode and store data. Implementing different erasure codes and different parameters within each erasure code can involve trade-offs between reliability, redundancy, and locality. In some examples, an erasure code can specify placement of the encoded data on machines that are organized into racks.
    Type: Grant
    Filed: April 16, 2013
    Date of Patent: March 21, 2017
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Dennis Craig Fetterly, Parikshit S Gopalan, Cheng Huang, Robert John Jenkins, Jr., Jin Li, Sergey Yekhanin
  • Publication number: 20160378624
    Abstract: The techniques and/or systems described herein implement erasure coding to generate various chunks for a data collection (e.g., data chunks and at least one encoding chunk). The chunks are then distributed and stored within an individual group (e.g., a pod) of storage units, where a pod of storage units is determined based on characteristics that affect an amount of time it takes to recover a data collection or to restore lost data.
    Type: Application
    Filed: June 29, 2015
    Publication date: December 29, 2016
    Inventors: Robert John Jenkins, Jr., Parikshit S. Gopalan, Cheng Huang, Edmund Bernard Nightingale, Alexander Shamis, Sergey Yekhanin
  • Patent number: 9442799
    Abstract: A memory controller can include an error correction module for extended lifetime memory that tracks at least one sized block of non-fault consecutive bits within the disabled page as spare blocks and reuses the spare blocks from the disabled pages as an error correction resource for active blocks. The active blocks can store data, data and metadata, or metadata only (e.g., error correction metadata). A method for extended lifetime memory can include, for an active block of metadata containing at least one fault, using at least one spare block to correct the data of the active block. For an active block of data containing at least one fault, the data can be initially corrected via XOR correction with a first spare block and then ultimately corrected via XOR correction with a second spare block.
    Type: Grant
    Filed: June 26, 2014
    Date of Patent: September 13, 2016
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Mark Steven Manasse, Sergey Yekhanin, Parikshit S. Gopalan, Karin Strauss, John D. Davis
  • Patent number: 9378084
    Abstract: In various embodiments, methods and systems for erasure coding data across multiple storage zones are provided. This may be accomplished by dividing a data chunk into a plurality of sub-fragments. Each of the plurality of sub-fragments is associated with a zone. Zones comprise buildings, data centers, and geographic regions providing a storage service. A plurality of reconstruction parities is computed. Each of the plurality of reconstruction parities computed using at least one sub-fragment from the plurality of sub-fragments. The plurality of reconstruction parities comprises at least one cross-zone parity. The at least one cross-zone parity is assigned to a parity zone. The cross-zone parity provides cross-zone reconstruction of a portion of the data chunk.
    Type: Grant
    Filed: June 25, 2013
    Date of Patent: June 28, 2016
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Bradley G. Calder, Parikshit Santhana Gopalan, Cheng Huang, Jin Li, Aaron W. Ogus, Huseyin Simitci, Sergey Yekhanin
  • Publication number: 20160170830
    Abstract: A codeword is generated from a message. One or more anchor values are appended to the codeword at predetermined anchor positions. Before the codeword is stored in a memory block, the locations and values of stuck cells in the memory block are determined. Based on the values and positions of the stuck cells, the values of the codeword are remapped so that values of the codeword that are the same as the values of the stuck cells are placed at the positions of the stuck cells. The remapped codeword is stored in the memory block. When the message is later read, the original codeword can be recovered from the remapped codeword based on the locations of the anchor values in the remapped codeword.
    Type: Application
    Filed: February 1, 2016
    Publication date: June 16, 2016
    Inventors: John D. Davis, Parikshit Gopalan, Mark Manasse, Karin Strauss, Sergey Yekhanin
  • Patent number: 9280417
    Abstract: A codeword is generated from a message. One or more anchor values are appended to the codeword at predetermined anchor positions. Before the codeword is stored in a memory block, the locations and values of stuck cells in the memory block are determined. Based on the values and positions of the stuck cells, the values of the codeword are remapped so that values of the codeword that are the same as the values of the stuck cells are placed at the positions of the stuck cells. The remapped codeword is stored in the memory block. When the message is later read, the original codeword can be recovered from the remapped codeword based on the locations of the anchor values in the remapped codeword.
    Type: Grant
    Filed: May 21, 2013
    Date of Patent: March 8, 2016
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: John D. Davis, Parikshit Gopalan, Mark Manasse, Karin Strauss, Sergey Yekhanin
  • Patent number: 9244761
    Abstract: In various embodiments, methods and systems for erasure coding data across multiple storage zones are provided. This may be accomplished by dividing a data chunk into a plurality of sub-fragments. Each of the plurality of sub-fragments is associated with a zone. Zones comprise buildings, data centers, and geographic regions providing a storage service. A plurality of reconstruction parities is computed. Each of the plurality of reconstruction parities computed using at least one sub-fragment from the plurality of sub-fragments. The plurality of reconstruction parities comprises at least one cross-zone parity. The at least one cross-zone parity is assigned to a parity zone. The cross-zone parity provides cross-zone reconstruction of a portion of the data chunk.
    Type: Grant
    Filed: March 24, 2014
    Date of Patent: January 26, 2016
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Sergey Yekhanin, Huseyin Simitci, Aaron W. Ogus, Jin Li, Cheng Huang, Parikshit Santhan Gopalan, Bradley G. Calder
  • Publication number: 20150378821
    Abstract: A memory controller can include an error correction module for extended lifetime memory that tracks at least one sized block of non-fault consecutive bits within the disabled page as spare blocks and reuses the spare blocks from the disabled pages as an error correction resource for active blocks. The active blocks can store data, data and metadata, or metadata only (e.g., error correction metadata). A method for extended lifetime memory can include, for an active block of metadata containing at least one fault, using at least one spare block to correct the data of the active block. For an active block of data containing at least one fault, the data can be initially corrected via XOR correction with a first spare block and then ultimately corrected via XOR correction with a second spare block.
    Type: Application
    Filed: June 26, 2014
    Publication date: December 31, 2015
    Inventors: Mark Steven Manasse, Sergey Yekhanin, Parikshit S. Gopalan, Karin Strauss, John D. Davis
  • Patent number: 9141679
    Abstract: Cloud data storage systems, methods, and techniques partition system data symbols into predefined-sized groups and then encode each group to form corresponding parity symbols, encode all data symbols into global redundant symbols, and store each symbol (data, parity, and redundant) in different failure domains in a manner that ensures independence of failures. In several implementations, the resultant cloud-encoded data features both data locality and ability to recover up to a predefined threshold tolerance of simultaneous erasures (unavailable data symbols) without any information loss. In addition, certain implementations also feature the placement of cloud-encoded data in domains (nodes or node groups) to provide similar locality and redundancy features simultaneous with the recovery of an entire domain of data that is unavailable due to software or hardware upgrades or failures.
    Type: Grant
    Filed: August 31, 2011
    Date of Patent: September 22, 2015
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
    Inventors: Parikshit Gopalan, Cheng Huang, Huseyin Simitci, Sergey Yekhanin
  • Patent number: 8972649
    Abstract: A generator matrix is provided to generate codewords from messages of write operations. Rather than generate a codeword using the entire generator matrix, some number of bits of the codeword are determined to be, or designated as, stuck bits. One or more submatrices of the generator matrix are determined based on the columns of the generator matrix that correspond to the stuck bits. The submatrices are used to generate the codeword from the message, and only the bits of the codeword that are not the stuck bits are written to a memory block. By designating one or more bits as stuck bits, the operating life of the bits is increased. Some of the submatrices of the generator matrix may be pre-computed for different stuck bit combinations. The pre-computed submatrices may be used to generate the codewords, thereby increasing the performance of write operations.
    Type: Grant
    Filed: October 5, 2012
    Date of Patent: March 3, 2015
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: John D. Davis, Parikshit Gopalan, Mark S. Manasse, Karin Strauss, Sergey Yekhanin
  • Publication number: 20150033064
    Abstract: A memory region can durably self-identify as being faulty when read. Information that would have been assigned to the faulty memory region can be assigned to another of that sized region in memory using a replacement encoding technique. For phase change memory, at least two fault states can be provided for durably self-identifying a faulty memory region; one state at a highest resistance range and the other state at a lowest resistance range. Replacement cells can be used to shift or assign data when a self-identifying memory fault is present. A memory controller and memory module, alone or in combination may manage replacement cell use and facilitate driving a newly discovered faulty cell to a fault state if the faulty cell is not already at the fault state.
    Type: Application
    Filed: July 24, 2013
    Publication date: January 29, 2015
    Applicant: Microsoft Corporation
    Inventors: John D. Davis, Karin Strauss, Mark Steven Manasse, Parikshit S. Gopalan, Sergey Yekhanin
  • Publication number: 20140380126
    Abstract: In various embodiments, methods and systems for erasure coding data across multiple storage zones are provided. This may be accomplished by dividing a data chunk into a plurality of sub-fragments. Each of the plurality of sub-fragments is associated with a zone. Zones comprise buildings, data centers, and geographic regions providing a storage service. A plurality of reconstruction parities is computed. Each of the plurality of reconstruction parities computed using at least one sub-fragment from the plurality of sub-fragments. The plurality of reconstruction parities comprises at least one cross-zone parity. The at least one cross-zone parity is assigned to a parity zone. The cross-zone parity provides cross-zone reconstruction of a portion of the data chunk.
    Type: Application
    Filed: March 24, 2014
    Publication date: December 25, 2014
    Applicant: MICROSOFT CORPORATION
    Inventors: SERGEY YEKHANIN, HUSEYIN SIMITCI, AARON W. OGUS, JIN LI, CHENG HUANG, PARIKSHIT SANTHAN GOPALAN, BRADLEY G. CALDER
  • Publication number: 20140380125
    Abstract: In various embodiments, methods and systems for erasure coding data across multiple storage zones are provided. This may be accomplished by dividing a data chunk into a plurality of sub-fragments. Each of the plurality of sub-fragments is associated with a zone. Zones comprise buildings, data centers, and geographic regions providing a storage service. A plurality of reconstruction parities is computed. Each of the plurality of reconstruction parities computed using at least one sub-fragment from the plurality of sub-fragments. The plurality of reconstruction parities comprises at least one cross-zone parity. The at least one cross-zone parity is assigned to a parity zone. The cross-zone parity provides cross-zone reconstruction of a portion of the data chunk.
    Type: Application
    Filed: June 25, 2013
    Publication date: December 25, 2014
    Applicant: MICROSOFT CORPORATION
    Inventors: BRADLEY G. CALDER, PARIKSHIT SANTHANA GOPALAN, CHENG HUANG, JIN LI, AARON W. OGUS, HUSEYIN SIMITCI, SERGEY YEKHANIN