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: 20180223340Abstract: 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: ApplicationFiled: February 8, 2017Publication date: August 9, 2018Inventors: Yuan-Jyue Chen, Luis H. Ceze, Sergey Yekhanin, Siena Dumas Ang, Karin Strauss
-
Publication number: 20180223341Abstract: 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: ApplicationFiled: February 8, 2017Publication date: August 9, 2018Inventors: Yuan-Jyue Chen, Karin Strauss, Luis H. Ceze, Siena Dumas Ang, Sergey Yekhanin
-
Publication number: 20180211001Abstract: 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: ApplicationFiled: April 25, 2017Publication date: July 26, 2018Applicant: Microsoft Technology Licensing, LLCInventors: Parikshit S. Gopalan, Sergey Yekhanin, Siena Dumas Ang, Nebojsa Jojic, Miklos Racz, Karen Strauss, Luis Ceze
-
Publication number: 20180189164Abstract: 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: ApplicationFiled: July 31, 2017Publication date: July 5, 2018Inventors: Janardhan Dattatreya KULKARNI, Bolin DING, Sergey YEKHANIN, Joshua ALLEN, Alexander Norton MEADE
-
Patent number: 9983959Abstract: 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: GrantFiled: June 29, 2015Date of Patent: May 29, 2018Assignee: Microsoft Technology Licensing, LLCInventors: Robert John Jenkins, Jr., Parikshit S Gopalan, Cheng Huang, Edmund Bernard Nightingale, Alexander Shamis, Sergey Yekhanin
-
Patent number: 9928136Abstract: 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: GrantFiled: February 1, 2016Date of Patent: March 27, 2018Assignee: Microsoft Technology Licensing, LLCInventors: John D. Davis, Parikshit Gopalan, Mark Manasse, Karin Strauss, Sergey Yekhanin
-
Patent number: 9875810Abstract: 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: GrantFiled: July 24, 2013Date of Patent: January 23, 2018Assignee: Microsoft Technology Licensing, LLCInventors: John D. Davis, Karin Strauss, Mark Steven Manasse, Parikshit S. Gopalan, Sergey Yekhanin
-
Patent number: 9600365Abstract: 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: GrantFiled: April 16, 2013Date of Patent: March 21, 2017Assignee: Microsoft Technology Licensing, LLCInventors: Dennis Craig Fetterly, Parikshit S Gopalan, Cheng Huang, Robert John Jenkins, Jr., Jin Li, Sergey Yekhanin
-
Publication number: 20160378624Abstract: 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: ApplicationFiled: June 29, 2015Publication date: December 29, 2016Inventors: Robert John Jenkins, Jr., Parikshit S. Gopalan, Cheng Huang, Edmund Bernard Nightingale, Alexander Shamis, Sergey Yekhanin
-
Patent number: 9442799Abstract: 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: GrantFiled: June 26, 2014Date of Patent: September 13, 2016Assignee: Microsoft Technology Licensing, LLCInventors: Mark Steven Manasse, Sergey Yekhanin, Parikshit S. Gopalan, Karin Strauss, John D. Davis
-
Patent number: 9378084Abstract: 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: GrantFiled: June 25, 2013Date of Patent: June 28, 2016Assignee: Microsoft Technology Licensing, LLCInventors: Bradley G. Calder, Parikshit Santhana Gopalan, Cheng Huang, Jin Li, Aaron W. Ogus, Huseyin Simitci, Sergey Yekhanin
-
Publication number: 20160170830Abstract: 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: ApplicationFiled: February 1, 2016Publication date: June 16, 2016Inventors: John D. Davis, Parikshit Gopalan, Mark Manasse, Karin Strauss, Sergey Yekhanin
-
Patent number: 9280417Abstract: 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: GrantFiled: May 21, 2013Date of Patent: March 8, 2016Assignee: Microsoft Technology Licensing, LLCInventors: John D. Davis, Parikshit Gopalan, Mark Manasse, Karin Strauss, Sergey Yekhanin
-
Patent number: 9244761Abstract: 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: GrantFiled: March 24, 2014Date of Patent: January 26, 2016Assignee: Microsoft Technology Licensing, LLCInventors: Sergey Yekhanin, Huseyin Simitci, Aaron W. Ogus, Jin Li, Cheng Huang, Parikshit Santhan Gopalan, Bradley G. Calder
-
Publication number: 20150378821Abstract: 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: ApplicationFiled: June 26, 2014Publication date: December 31, 2015Inventors: Mark Steven Manasse, Sergey Yekhanin, Parikshit S. Gopalan, Karin Strauss, John D. Davis
-
Patent number: 9141679Abstract: 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: GrantFiled: August 31, 2011Date of Patent: September 22, 2015Assignee: MICROSOFT TECHNOLOGY LICENSING, LLCInventors: Parikshit Gopalan, Cheng Huang, Huseyin Simitci, Sergey Yekhanin
-
Patent number: 8972649Abstract: 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: GrantFiled: October 5, 2012Date of Patent: March 3, 2015Assignee: Microsoft Technology Licensing, LLCInventors: John D. Davis, Parikshit Gopalan, Mark S. Manasse, Karin Strauss, Sergey Yekhanin
-
Publication number: 20150033064Abstract: 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: ApplicationFiled: July 24, 2013Publication date: January 29, 2015Applicant: Microsoft CorporationInventors: John D. Davis, Karin Strauss, Mark Steven Manasse, Parikshit S. Gopalan, Sergey Yekhanin
-
Publication number: 20140380126Abstract: 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: ApplicationFiled: March 24, 2014Publication date: December 25, 2014Applicant: MICROSOFT CORPORATIONInventors: SERGEY YEKHANIN, HUSEYIN SIMITCI, AARON W. OGUS, JIN LI, CHENG HUANG, PARIKSHIT SANTHAN GOPALAN, BRADLEY G. CALDER
-
Publication number: 20140380125Abstract: 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: ApplicationFiled: June 25, 2013Publication date: December 25, 2014Applicant: MICROSOFT CORPORATIONInventors: BRADLEY G. CALDER, PARIKSHIT SANTHANA GOPALAN, CHENG HUANG, JIN LI, AARON W. OGUS, HUSEYIN SIMITCI, SERGEY YEKHANIN