Patents by Inventor Aaron W. Ogus

Aaron W. Ogus 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).

  • Patent number: 9736243
    Abstract: In various embodiments, methods and systems for implementing multiple transaction logs in a distributed storage system are provided. A log stream component detects performance metrics of a plurality of log streams. The performance metrics are associated with requests from partitions in the distributed storage system. A transaction component receives a request to execute a transaction using a log stream. The request is received from a partition of the distributed storage system. The performance metrics of the plurality of log streams can be referenced, where the performance metrics indicate a performance capacity of a selected log stream to process the request. A log stream for executing the transaction is determined based on the performance capacity. The log stream selected can also factor request attributes of the request. The transaction component communicates the request to be executed, using the log stream to perform the transaction.
    Type: Grant
    Filed: December 12, 2014
    Date of Patent: August 15, 2017
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Manish Chablani, Jegan Devaraju, Yikang Xu, Muhammad Junaid Shahid, Andrew James Edwards, Bradley G. Calder, Ju Wang, Aaron W. Ogus, Shane Mainali, Krishnan Varadarajan, Pradeep Seela
  • Publication number: 20160380650
    Abstract: In various embodiments, methods and systems for erasure coding with enhanced local protection groups are provided. An erasure coding scheme can be defined based on a Vertical Local Reconstruction Code (VLRC) that achieves high storage efficiency by combining the Local Reconstruction Code and conventional erasure coding, where the local reconstruction code (LRC) is carefully laid out across zones. Thus, when a zone is down, remaining fragments form an appropriate LRC. Further, an inter-zone erasure coding scheme—Zone Local Reconstruction Code (ZZG-2 code)—is provided having both local reconstruction within every zone and a-of-b recovery property across zones. An inter-zone adaptive erasure coding (uber code) scheme is provided, the uber code is configurable to produce near optimal performance in different environments characterized by intra and inter-zone bandwidth and machine failure rates.
    Type: Application
    Filed: June 26, 2015
    Publication date: December 29, 2016
    Inventors: BRADLEY G. CALDER, PARIKSHIT SANTHAN GOPALAN, CHENG HUANG, AARON W. OGUS, HUSEYIN SIMITCI, SERGEY M. YEKHANIN
  • Patent number: 9465602
    Abstract: Systems, methods, and computer storage media for upgrading a domain in a distributed computing environment are provided. Upgrading of the domain includes preparing for the upgrade, upgrading, and finalizing the upgrade. The preparation of the domain includes ensuring predefined quantities of role instances are available in domains other than the upgrade domain. The preparation also includes ensuring that a predefined number of extent replicas are available in domains other than the upgrade domain. The preparation may also include checkpointing partitions within the upgrade domain to facilitate faster loading once transferred to a domain other than the upgrade domain. The finalization may include allowing nodes within the upgrade domain to resume functionality that was suspended during the upgrade.
    Type: Grant
    Filed: October 28, 2013
    Date of Patent: October 11, 2016
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Bradley Gene Calder, Samuel James McKelvie, Aaron W. Ogus, Arlid E. Skjolsvold, Hakon Gabriel Verespej, Ju Wang
  • 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: 20160173599
    Abstract: In various embodiments, methods and systems for implementing multiple transaction logs in a distributed storage system are provided. A log stream component detects performance metrics of a plurality of log streams. The performance metrics are associated with requests from partitions in the distributed storage system. A transaction component receives a request to execute a transaction using a log stream. The request is received from a partition of the distributed storage system. The performance metrics of the plurality of log streams can be referenced, where the performance metrics indicate a performance capacity of a selected log stream to process the request. A log stream for executing the transaction is determined based on the performance capacity. The log stream selected can also factor request attributes of the request. The transaction component communicates the request to be executed, using the log stream to perform the transaction.
    Type: Application
    Filed: December 12, 2014
    Publication date: June 16, 2016
    Inventors: MANISH CHABLANI, JEGAN DEVANRAJU, YIKANG XU, JUNAID J. SHAHID, ANDREW JAMES EDWARDS, BRADLEY G. CALDER, JU WANG, AARON W. OGUS, SHANE MAINALI, KRISHNAN VARADARAJAN, PRADEEP SEELA
  • 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: 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
  • 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: 20140059533
    Abstract: Systems, methods, and computer storage media for upgrading a domain in a distributed computing environment are provided. Upgrading of the domain includes preparing for the upgrade, upgrading, and finalizing the upgrade. The preparation of the domain includes ensuring predefined quantities of role instances are available in domains other than the upgrade domain. The preparation also includes ensuring that a predefined number of extent replicas are available in domains other than the upgrade domain. The preparation may also include checkpointing partitions within the upgrade domain to facilitate faster loading once transferred to a domain other than the upgrade domain. The finalization may include allowing nodes within the upgrade domain to resume functionality that was suspended during the upgrade.
    Type: Application
    Filed: October 28, 2013
    Publication date: February 27, 2014
    Applicant: MICROSOFT CORPORATION
    Inventors: BRADLEY GENE CALDER, SAMUEL JAMES McKELVIE, AARON W. OGUS, ARLID E. SKJOLSVOLD, HAKON GABRIEL VERESPEJ, JU WANG
  • Patent number: 8589535
    Abstract: Systems, methods, and computer storage media for upgrading a domain in a distributed computing environment are provided. Upgrading of the domain includes preparing for the upgrade, upgrading, and finalizing the upgrade. The preparation of the domain includes ensuring predefined quantities of role instances are available in domains other than the upgrade domain. The preparation also includes ensuring that a predefined number of extent replicas are available in domains other than the upgrade domain. The preparation may also include checkpointing partitions within the upgrade domain to facilitate faster loading once transferred to a domain other than the upgrade domain. The finalization may include allowing nodes within the upgrade domain to resume functionality that was suspended during the upgrade.
    Type: Grant
    Filed: October 26, 2009
    Date of Patent: November 19, 2013
    Assignee: Microsoft Corporation
    Inventors: Bradley Gene Calder, Samuel James McKelvie, Aaron W. Ogus, Arild E. Skjolsvold, Hakon Gabriel Verespej, Ju Wang
  • Patent number: 8407434
    Abstract: Systems, methods, and computer storage media for storing and retrieving data from a data store in a distributed computing environment are provided. An embodiment includes receiving data at a data store comprising a sequential journal store, RAM, and a non-sequential target store. When RAM utilization is below a threshold, received data is stored to the RAM as a write cache for the target store and the journal store. But, when the utilization is above the threshold, the data is stored to the journal store without write-caching to the RAM for the target store. When the RAM utilization falls below a threshold, data committed to the journal store, but not write-cached to the RAM for the target store, is later read from the journal store and write-cached to the RAM for a target store.
    Type: Grant
    Filed: November 13, 2009
    Date of Patent: March 26, 2013
    Assignee: Microsoft Corporation
    Inventors: Aaron W. Ogus, Yiking Xu, Bradley Gene Calder
  • Patent number: 7970861
    Abstract: Systems, methods, and computer storage media for load balancing at a client device in a distributed computing environment based on a dynamic validity duration and utilization metrics of one or more data stores are provided. The client device selects a data store from a plurality of data stores that each maintains a copy of a datum. The selection of data stores by a client is based on utilization metrics of the data stores. The utilization metrics are stored at the client. A data store determines if a request for a particular datum may be fulfilled within a validity period associated with a request from the client. The validity period is dynamically changed by the client across multiple requests to aid in the load balancing process. Additionally, a gossip protocol may be used to propagate utilization metrics of a plurality of data stores across the system.
    Type: Grant
    Filed: November 18, 2009
    Date of Patent: June 28, 2011
    Assignee: Microsoft Corporation
    Inventors: Huseyin Simitci, Aaron W. Ogus, Ramesh Shankar
  • Publication number: 20110119328
    Abstract: Systems, methods, and computer storage media for load balancing at a client device in a distributed computing environment based on a dynamic validity duration and utilization metrics of one or more data stores are provided. The client device selects a data store from a plurality of data stores that each maintains a copy of a datum. The selection of data stores by a client is based on utilization metrics of the data stores. The utilization metrics are stored at the client. A data store determines if a request for a particular datum may be fulfilled within a validity period associated with a request from the client. The validity period is dynamically changed by the client across multiple requests to aid in the load balancing process. Additionally, a gossip protocol may be used to propagate utilization metrics of a plurality of data stores across the system.
    Type: Application
    Filed: November 18, 2009
    Publication date: May 19, 2011
    Applicant: MICROSOFT CORPORATION
    Inventors: Huseyin Simitci, Aaron W. Ogus, Ramesh Shankar
  • Publication number: 20110119437
    Abstract: Systems, methods, and computer storage media for storing and retrieving data from a data store in a distributed computing environment are provided. An embodiment includes receiving data at a data store comprising a sequential journal store, RAM, and a non-sequential target store. When RAM utilization is below a threshold, received data is stored to the RAM as a write cache for the target store and the journal store. But, when the utilization is above the threshold, the data is stored to the journal store without write-caching to the RAM for the target store. When the RAM utilization falls below a threshold, data committed to the journal store, but not write-cached to the RAM for the target store, is later read from the journal store and write-cached to the RAM for a target store.
    Type: Application
    Filed: November 13, 2009
    Publication date: May 19, 2011
    Applicant: MICROSOFT CORPORATION
    Inventors: Aaron W. Ogus, Yiking Xu, Bradley Gene Calder
  • Publication number: 20110099266
    Abstract: Systems, methods, and computer storage media for upgrading a domain in a distributed computing environment are provided. Upgrading of the domain includes preparing for the upgrade, upgrading, and finalizing the upgrade. The preparation of the domain includes ensuring predefined quantities of role instances are available in domains other than the upgrade domain. The preparation also includes ensuring that a predefined number of extent replicas are available in domains other than the upgrade domain. The preparation may also include checkpointing partitions within the upgrade domain to facilitate faster loading once transferred to a domain other than the upgrade domain. The finalization may include allowing nodes within the upgrade domain to resume functionality that was suspended during the upgrade.
    Type: Application
    Filed: October 26, 2009
    Publication date: April 28, 2011
    Applicant: Microsoft Corporation
    Inventors: Bradley Gene Calder, Samuel James McKelvie, Aaron W. Ogus, Arild E. Skjolsvold, Hakon Gabriel Verespej, Ju Wang
  • Patent number: 7803054
    Abstract: Multiple vehicles being simulated at multiple devices are coordinated across a network as part of a shared gaming experience. Participating devices initially synchronize a time base using a designated host device. During game play, local devices simulate local vehicles. Local devices also produce predicted vehicle states for the local vehicles and transmit the predicted vehicle states to remote devices with regard to network latency. Remote devices in turn produce interpolated vehicle states from the predicted vehicles states and then render the vehicles using the interpolated vehicle states. Interpolation values may also be employed to maintain the synchronized time base. Additionally, the interpolations may be tuned, especially with respect to collisions, by a glancing collisions handler, a dragging collisions effectuator, and/or a remote vehicle damage agent.
    Type: Grant
    Filed: March 31, 2004
    Date of Patent: September 28, 2010
    Assignee: Microsoft Corporation
    Inventors: Aaron W. Ogus, David E. Glerok, Christopher J. Tector
  • Patent number: 7735083
    Abstract: A method for setting timers is disclosed in which an array is maintained, each element of which represents a period of time. Events which are to occur within the time period associated with the array element are linked to the array element. The events associated with each array element are executed at a pre-determined time interval. A pointer pointing to the current time period being processed wraps around to the beginning of the array when the end of the array is reached.
    Type: Grant
    Filed: October 7, 2004
    Date of Patent: June 8, 2010
    Assignee: Microsoft Corporation
    Inventors: Aaron W. Ogus, Evan J. Schrier
  • Patent number: 7177950
    Abstract: A method is provided for use in a computer system that is operating in a peer-to-peer environment. The peer-to-peer environment has a host peer and at least one non-host peer. The method of the invention is used to order the operation requests of the peers so that operations are performed only in the order that they are processed by the host peer. The method includes providing a list of recognized operations which may be requested by any of the peers in the session. The host peer then receives at least one operation request from one of the peers, the request being selected from the provided list. The host then assigns a unique version number to the operation request, so that all peers within the session can determine the proper order in which to process orders given by the host peer.
    Type: Grant
    Filed: April 26, 2001
    Date of Patent: February 13, 2007
    Assignee: Microsoft Corporation
    Inventors: Michael J. Narayan, Aaron W. Ogus
  • Patent number: 7072973
    Abstract: A networking protocol that supports the sending of reliable and non-reliable data in a common sliding window. Data to be transmitted according to the protocol is packaged into packets, where each packet has a header. Each packet carries a sequence number in the header, where the sequence numbers are successively assigned to each outgoing packet. As the packets are received, the recipient of the packets keeps track of the sequence numbers of received packets to determine whether any packets are missing and selectively acknowledges those packets that have been received. The selective acknowledgment is performed using a mask, where each bit in the mask indicates the presence or absence of a packet as an offset from a reference value. Based on the mask, the sender re-sends non-received reliable packets, and creates a second mask which indicates non-reliable non-received packets that will not be re-sent.
    Type: Grant
    Filed: June 19, 2001
    Date of Patent: July 4, 2006
    Assignee: Microsoft Corporation
    Inventors: Paul E. Newson, Aaron W. Ogus, Roderick M. Toll, Michael J. Narayan, Evan J. Schrier, James M. Boswell
  • Patent number: 6964046
    Abstract: A method for setting timers is disclosed in which an array is maintained, each element of which represents a period of time. Events which are to occur within the time period associated with the array element are linked to the array element. The events associated with each array element are executed at a pre-determined time interval. A pointer pointing to the current time period being processed wraps around to the beginning of the array when the end of the array is reached.
    Type: Grant
    Filed: March 6, 2001
    Date of Patent: November 8, 2005
    Assignee: Microsoft Corporation
    Inventors: Aaron W. Ogus, Evan J. Schrier