Patents by Inventor Garret Buban

Garret Buban 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: 11281396
    Abstract: Methods, systems, and computer storage media for providing temporary storage for data that has to be durably stored based on a replica set that includes a partial replica and a set of full replicas in a distributed computing environment. The partial replica of the replica set temporarily and durably stores data but does not persist the data when the set of full replicas have communicated a promise response to store the data. In operation, instructions to communicate promise responses are communicated to a replica set comprising a partial replica and a set of full replicas. A promise response indicates that a replica in the replica set will commit the data block of the write request. Promise responses are received from the set of full replicas. Based on receiving promise responses from the set of full replicas, a forget instruction is communicated to the partial replica to forget the data block.
    Type: Grant
    Filed: September 23, 2019
    Date of Patent: March 22, 2022
    Assignee: Microsoft Technology Licensing, LLC
    Inventor: Garret Buban
  • Patent number: 11108698
    Abstract: A computing device includes a processor and memory. A throttling application is stored in the memory and is executed by the processor. The throttling application receives a server request from a first application. The throttling application is located in a non-accessible location relative to the first application. The throttling application is configured, in response to the server request, to estimate a completion time when the server request will complete; send the server request with the completion time to a server; receive a response to the server request from the server prior to the completion time; when the completion time for the server request is in the future, wait until the completion time is now; and when the completion time is now, indicate completion to the first application.
    Type: Grant
    Filed: February 3, 2017
    Date of Patent: August 31, 2021
    Assignee: Microsoft Technology Licensing, LLC
    Inventor: Garret Buban
  • Publication number: 20210089228
    Abstract: Methods, systems, and computer storage media for providing temporary storage for data that has to be durably stored based on a replica set that includes a partial replica and a set of full replicas in a distributed computing environment. The partial replica of the replica set temporarily and durably stores data but does not persist the data when the set of full replicas have communicated a promise response to store the data. In operation, instructions to communicate promise responses are communicated to a replica set comprising a partial replica and a set of full replicas. A promise response indicates that a replica in the replica set will commit the data block of the write request. Promise responses are received from the set of full replicas. Based on receiving promise responses from the set of full replicas, a forget instruction is communicated to the partial replica to forget the data block.
    Type: Application
    Filed: September 23, 2019
    Publication date: March 25, 2021
    Inventor: Garret BUBAN
  • Patent number: 10754549
    Abstract: An append-only streams capability may be implemented that allows the host (e.g., the file system) to determine an optimal stream size based on the data to be stored in that stream. The storage device may expose to the host one or more characteristics of the available streams on the device, including but not limited to the maximum number of inactive and active streams on the device, the erase block size, the maximum number of erase blocks that can be written in parallel, and an optimal write size of the data. Using this information, the host may determine which particular stream offered by the device is best suited for the data to be stored.
    Type: Grant
    Filed: May 30, 2018
    Date of Patent: August 25, 2020
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Bryan S. Matthew, Aaron W. Ogus, Vadim Makhervaks, Laura M. Caulfield, Rajsekhar Das, Scott Chao-Chueh Lee, Omar Carey, Madhav Pandya, Ioan Oltean, Garret Buban, Lee Prewitt
  • Patent number: 10721177
    Abstract: A computing device comprises a processor and memory. A throttling application stored in the memory that is executed by the processor is configured, in response to a new server request from a first application, to determine whether performing the new server request exceeds a predetermined number of requests in progress; if performing the new server request does not exceed a predetermined number of requests in progress, estimate a completion time for the new server request; insert the new server request and the completion time in a request queue; and send the new server request and a time to live field to a server, wherein the time to live field is equal to the completion time minus a current time that the new server request is sent to the server.
    Type: Grant
    Filed: February 22, 2019
    Date of Patent: July 21, 2020
    Assignee: Microsoft Technology Licensing, LLC
    Inventor: Garret Buban
  • Patent number: 10564665
    Abstract: A first set of replicated state machines includes a first state machine that compares a clock value included in a state update message incremented by a first amount, a clock value for the first state machine incremented by a second amount, and a current local wall clock value for the first state machine to determine a maximum value and assigns the maximum value as the clock value for the first state machine. Additionally, in response to a passage of an amount of time, the first state machine advances the clock value for the first state machine to its current local wall clock value and propagates this clock value to the other state machines in the first set of replicated state machines. The advancement of the clock value for all state machines even in the absence of state updates improves their ability to respond to distributed read requests.
    Type: Grant
    Filed: May 1, 2018
    Date of Patent: February 18, 2020
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Cheng Huang, Garret Buban, Jacob R. Lorch, Aaron W. Ogus, Mauricio David Zaragoza Ibarra, Jieqing Wang
  • Publication number: 20190339734
    Abstract: A first set of replicated state machines includes a first state machine that compares a clock value included in a state update message incremented by a first amount, a clock value for the first state machine incremented by a second amount, and a current local wall clock value for the first state machine to determine a maximum value and assigns the maximum value as the clock value for the first state machine. Additionally, in response to a passage of an amount of time, the first state machine advances the clock value for the first state machine to its current local wall clock value and propagates this clock value to the other state machines in the first set of replicated state machines. The advancement of the clock value for all state machines even in the absence of state updates improves their ability to respond to distributed read requests.
    Type: Application
    Filed: May 1, 2018
    Publication date: November 7, 2019
    Inventors: Cheng Huang, Garret Buban, Jacob R. Lorch, Aaron W. Ogus, Mauricio David Zaragoza Ibarra, Jieqing Wang
  • Publication number: 20190190842
    Abstract: A computing device comprises a processor and memory. A throttling application stored in the memory that is executed by the processor is configured, in response to a new server request from a first application, to determine whether performing the new server request exceeds a predetermined number of requests in progress; if performing the new server request does not exceed a predetermined number of requests in progress, estimate a completion time for the new server request; insert the new server request and the completion time in a request queue; and send the new server request and a time to live field to a server, wherein the time to live field is equal to the completion time minus a current time that the new server request is sent to the server.
    Type: Application
    Filed: February 22, 2019
    Publication date: June 20, 2019
    Applicant: Microsoft Technology Licensing, LLC
    Inventor: Garret BUBAN
  • Patent number: 10250517
    Abstract: A computing device comprises a processor and memory. A throttling application stored in the memory that is executed by the processor is configured, in response to a new server request from a first application, to determine whether performing the new server request exceeds a predetermined number of requests in progress; if performing the new server request does not exceed a predetermined number of requests in progress, estimate a completion time for the new server request; insert the new server request and the completion time in a request queue; and send the new server request and a time to live field to a server, wherein the time to live field is equal to the completion time minus a current time that the new server request is sent to the server.
    Type: Grant
    Filed: February 3, 2017
    Date of Patent: April 2, 2019
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
    Inventor: Garret Buban
  • Publication number: 20180227237
    Abstract: A computing device includes a processor and memory. A throttling application is stored in the memory and is executed by the processor. The throttling application receives a server request from a first application. The throttling application is located in a non-accessible location relative to the first application. The throttling application is configured, in response to the server request, to estimate a completion time when the server request will complete; send the server request with the completion time to a server; receive a response to the server request from the server prior to the completion time; when the completion time for the server request is in the future, wait until the completion time is now; and when the completion time is now, indicate completion to the first application.
    Type: Application
    Filed: February 3, 2017
    Publication date: August 9, 2018
    Applicant: Microsoft Technology Licensing, LLC
    Inventor: Garret BUBAN
  • Publication number: 20180227238
    Abstract: A computing device comprises a processor and memory. A throttling application stored in the memory that is executed by the processor is configured, in response to a new server request from a first application, to determine whether performing the new server request exceeds a predetermined number of requests in progress; if performing the new server request does not exceed a predetermined number of requests in progress, estimate a completion time for the new server request; insert the new server request and the completion time in a request queue; and send the new server request and a time to live field to a server, wherein the time to live field is equal to the completion time minus a current time that the new server request is sent to the server.
    Type: Application
    Filed: February 3, 2017
    Publication date: August 9, 2018
    Applicant: Microsoft Technology Licensing, LLC
    Inventor: Garret BUBAN
  • Publication number: 20180032249
    Abstract: A host computer includes a virtual machine including a device-specific nonvolatile memory interface (NVMI). A nonvolatile memory virtualization abstraction layer (NVMVAL) hardware device communicates with the device-specific NVMI of the virtual machine. A NVMVAL driver is executed by the host computer and communicates with the NVMVAL hardware device. The NVMVAL hardware device advertises a local NVM device to the device-specific NVMI of the virtual machine. The NVMVAL hardware device and the NVMVAL driver are configured to virtualize access by the virtual machine to remote NVM that is remote from the virtual machine as if the remote NVM is local to the virtual machine.
    Type: Application
    Filed: July 26, 2016
    Publication date: February 1, 2018
    Applicant: Microsoft Technology Licensing, LLC
    Inventors: Vadim MAKHERVAKS, Garret Buban
  • Patent number: 8645579
    Abstract: A system, device, and method for virtually connecting a media device to a computing device are disclosed. One embodiment comprises a method to operate a virtual media device in a computing device, wherein the virtual media device that is controlled by a remote media device. In this manner, a computing device may stream media data to and from the remote media device.
    Type: Grant
    Filed: May 29, 2008
    Date of Patent: February 4, 2014
    Assignee: Microsoft Corporation
    Inventors: Robert D Young, Stephen Cooper, Garret Buban, Brien Roell, David V Skyberg, Dennis Ming-Shu Lee, Doron Holan, Anand Ganesh, David Roberts, Noel Richard Cross
  • Publication number: 20090300241
    Abstract: A system, device, and method for virtually connecting a media device to a computing device are disclosed. One embodiment comprises a method to operate a virtual media device in a computing device, wherein the virtual media device that is controlled by a remote media device. In this manner, a computing device may stream media data to and from the remote media device.
    Type: Application
    Filed: May 29, 2008
    Publication date: December 3, 2009
    Applicant: MICROSOFT CORPORATION
    Inventors: Robert D. Young, Stephen Cooper, Garret Buban, Brien Roell, David V. Skyberg, Dennis Ming-Shu Lee, Doron Holan, Anand Ganesh, David Roberts, Noel Richard Cross
  • Publication number: 20070286046
    Abstract: A file system which is enabled to use a Metadata Partition instead of VAT for write-once discs, is provided by a pseudo-overwrite method. On applying this invention to a drive apparatus which supports pseudo-overwrite media, the file system distinguishes data to overwrite from data to append. When the data is newly written to a logical sector (S1305), the drive apparatus writes the data to a physical sector to which the logical sector corresponds (S1311). When the logical sector is overwritten the data is written to another unrecorded physical sector in the volume space (1321), and remapping information that specifies the original address, and the remapping address are stored in the remapping table (S1322).
    Type: Application
    Filed: May 9, 2005
    Publication date: December 13, 2007
    Inventors: Rajeev Nagar, Garret Buban, Yoshiho Gotoh, Sarosh Havewala, Ravinder Thind, Vishal Ghotge
  • Publication number: 20070239720
    Abstract: Systems and methods that create a virtual name space of Universal Naming Convention (UNC) over a local file system (e.g., drive letter based names), via employing a UNC provider and filter arrangement that changes a name in the file object to reparse it to a volume where the local file exists. A name in the file object is changed to a local name (e.g., morphed name); subsequently reparsed and forwarded to a Name Space Owner component (NSO). As such, a request can originate from a UNC stack and reparsed on the local stack. The name space is presented to an application in UNC format, while the underlying file write occur in the file system.
    Type: Application
    Filed: April 7, 2006
    Publication date: October 11, 2007
    Applicant: Microsoft Corporation
    Inventors: Rohan Kumar, Neal Christiansen, Eileen Brown, Garret Buban
  • Publication number: 20070143563
    Abstract: Described is a technology by which a new volume or partition may be created on a disk, e.g., by running a shrink program and then reclaiming freed space. Shrink occurs online, while the user or system processes may be otherwise using the disk for reads and writes. Further, the technology operates while protecting snapshot versions of the volume. To shrink, upon receiving a request to shrink a volume to within a boundary, new allocations are restricted such that any allocation is to a volume area within the boundary. Data is moved from outside the boundary to within the boundary, and the shrink is committed when no volume data remains outside the boundary. A reduced-size volume or partition that does not include the specified region is committed when the data has been moved out of the specified region. A new volume or partition may be freed that corresponds to the region.
    Type: Application
    Filed: December 16, 2005
    Publication date: June 21, 2007
    Applicant: Microsoft Corporation
    Inventors: Ravisankar Pudipeddi, Kevin Seng, Garret Buban
  • Publication number: 20050055686
    Abstract: A system and method for improved software servicing by installation of an updated version is provided. Using branch versioning techniques that support multi-branch development and release versioning techniques that support multi-version development, an update package may include updated files for each branch or release version. The least possible version from the update package may be installed to minimize the risk for potential software bugs introduced by the high frequency of changes made to a higher version. Additionally, any fix installed on a target machine running a particular version may be migrated when updating the target machine to a new version without losing the fix and regressing the change. Such an update may be uninstalled by reverse migration of any fixes before uninstalling files from the version update.
    Type: Application
    Filed: September 8, 2003
    Publication date: March 10, 2005
    Applicant: MICROSOFT CORPORATION
    Inventors: Garret Buban, Kory Gill, Manojkumar Shende, James Holmes, Michael Sliger, William Tipton