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: 11281396Abstract: 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: GrantFiled: September 23, 2019Date of Patent: March 22, 2022Assignee: Microsoft Technology Licensing, LLCInventor: Garret Buban
-
Patent number: 11108698Abstract: 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: GrantFiled: February 3, 2017Date of Patent: August 31, 2021Assignee: Microsoft Technology Licensing, LLCInventor: Garret Buban
-
Publication number: 20210089228Abstract: 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: ApplicationFiled: September 23, 2019Publication date: March 25, 2021Inventor: Garret BUBAN
-
Patent number: 10754549Abstract: 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: GrantFiled: May 30, 2018Date of Patent: August 25, 2020Assignee: Microsoft Technology Licensing, LLCInventors: 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: 10721177Abstract: 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: GrantFiled: February 22, 2019Date of Patent: July 21, 2020Assignee: Microsoft Technology Licensing, LLCInventor: Garret Buban
-
Patent number: 10564665Abstract: 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: GrantFiled: May 1, 2018Date of Patent: February 18, 2020Assignee: Microsoft Technology Licensing, LLCInventors: Cheng Huang, Garret Buban, Jacob R. Lorch, Aaron W. Ogus, Mauricio David Zaragoza Ibarra, Jieqing Wang
-
Publication number: 20190339734Abstract: 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: ApplicationFiled: May 1, 2018Publication date: November 7, 2019Inventors: Cheng Huang, Garret Buban, Jacob R. Lorch, Aaron W. Ogus, Mauricio David Zaragoza Ibarra, Jieqing Wang
-
Publication number: 20190190842Abstract: 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: ApplicationFiled: February 22, 2019Publication date: June 20, 2019Applicant: Microsoft Technology Licensing, LLCInventor: Garret BUBAN
-
Patent number: 10250517Abstract: 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: GrantFiled: February 3, 2017Date of Patent: April 2, 2019Assignee: MICROSOFT TECHNOLOGY LICENSING, LLCInventor: Garret Buban
-
Publication number: 20180227237Abstract: 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: ApplicationFiled: February 3, 2017Publication date: August 9, 2018Applicant: Microsoft Technology Licensing, LLCInventor: Garret BUBAN
-
Publication number: 20180227238Abstract: 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: ApplicationFiled: February 3, 2017Publication date: August 9, 2018Applicant: Microsoft Technology Licensing, LLCInventor: Garret BUBAN
-
Publication number: 20180032249Abstract: 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: ApplicationFiled: July 26, 2016Publication date: February 1, 2018Applicant: Microsoft Technology Licensing, LLCInventors: Vadim MAKHERVAKS, Garret Buban
-
Patent number: 8645579Abstract: 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: GrantFiled: May 29, 2008Date of Patent: February 4, 2014Assignee: Microsoft CorporationInventors: 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: 20090300241Abstract: 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: ApplicationFiled: May 29, 2008Publication date: December 3, 2009Applicant: MICROSOFT CORPORATIONInventors: 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: 20070286046Abstract: 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: ApplicationFiled: May 9, 2005Publication date: December 13, 2007Inventors: Rajeev Nagar, Garret Buban, Yoshiho Gotoh, Sarosh Havewala, Ravinder Thind, Vishal Ghotge
-
Publication number: 20070239720Abstract: 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: ApplicationFiled: April 7, 2006Publication date: October 11, 2007Applicant: Microsoft CorporationInventors: Rohan Kumar, Neal Christiansen, Eileen Brown, Garret Buban
-
Publication number: 20070143563Abstract: 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: ApplicationFiled: December 16, 2005Publication date: June 21, 2007Applicant: Microsoft CorporationInventors: Ravisankar Pudipeddi, Kevin Seng, Garret Buban
-
Publication number: 20050055686Abstract: 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: ApplicationFiled: September 8, 2003Publication date: March 10, 2005Applicant: MICROSOFT CORPORATIONInventors: Garret Buban, Kory Gill, Manojkumar Shende, James Holmes, Michael Sliger, William Tipton