Patents by Inventor James W. Mickens

James W. Mickens 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: 11422907
    Abstract: While connected to cloud storage, a computing device writes data and metadata to the cloud storage, indicates success of the write to an application of the computing device, and, after indicating success to the application, writes the data and metadata to local storage of the computing device. The data and metadata may be written to different areas of the local storage. The computing device may also determine that it has recovered from a crash or has connected to the cloud storage after operating disconnected and reconcile the local storage with the cloud storage. The reconciliation may be based at least on a comparison of the metadata stored in the area of the local storage with metadata received from the cloud storage. The cloud storage may store each item of data contiguously with its metadata as an expanded block.
    Type: Grant
    Filed: August 19, 2013
    Date of Patent: August 23, 2022
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
    Inventors: James W. Mickens, Jeremy E. Elson, Edmund B. Nightingale, Bin Fan, Asim Kadav, Osama Khan
  • Patent number: 10740195
    Abstract: This document relates to data storage techniques. One example can buffer write commands and cause the write commands to be committed to storage in flush epoch order. Another example can maintain a persistent log of write commands that are arranged in the persistent log in flush epoch order. Both examples may provide a prefix consistent state in the event of a crash.
    Type: Grant
    Filed: September 25, 2018
    Date of Patent: August 11, 2020
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: James W. Mickens, Amar Phanishayee, Vijaychidambaram Velayudhan Pillai
  • Publication number: 20190087287
    Abstract: This document relates to data storage techniques. One example can buffer write commands and cause the write commands to be committed to storage in flush epoch order. Another example can maintain a persistent log of write commands that are arranged in the persistent log in flush epoch order. Both examples may provide a prefix consistent state in the event of a crash.
    Type: Application
    Filed: September 25, 2018
    Publication date: March 21, 2019
    Applicant: Microsoft Technology Licensing, LLC
    Inventors: James W. MICKENS, Amar PHANISHAYEE, Vijaychidambaram VELAYUDHAN PILLAI
  • Patent number: 10114709
    Abstract: This document relates to data storage techniques. One example can buffer write commands and cause the write commands to be committed to storage in flush epoch order. Another example can maintain a persistent log of write commands that are arranged in the persistent log in flush epoch order. Both examples may provide a prefix consistent state in the event of a crash.
    Type: Grant
    Filed: October 19, 2016
    Date of Patent: October 30, 2018
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: James W. Mickens, Amar Phanishayee, Vijaychidambaram Velayudhan Pillai
  • Patent number: 9798631
    Abstract: This document relates to data storage techniques. One example can buffer write commands and cause the write commands to be committed to storage in flush epoch order. Another example can maintain a persistent log of write commands that are arranged in the persistent log in flush epoch order. Both examples may provide a prefix consistent state in the event of a crash.
    Type: Grant
    Filed: March 28, 2014
    Date of Patent: October 24, 2017
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: James W. Mickens, Amar Phanishayee, Vijaychidambaram Velayudhan Pillai
  • Patent number: 9778856
    Abstract: The subject disclosure is directed towards one or more parallel storage components for parallelizing block-level input/output associated with remote file data. Based upon a mapping scheme, the file data is partitioned into a plurality of blocks in which each may be equal in size. A translator component of the parallel storage may determine a mapping between the plurality of blocks and a plurality of storage nodes such that at least a portion of the plurality of blocks is accessible in parallel. Such a mapping, for example, may place each block in a different storage node allowing the plurality of blocks to be retrieved simultaneously and in its entirety.
    Type: Grant
    Filed: August 30, 2012
    Date of Patent: October 3, 2017
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
    Inventors: Bin Fan, Asim Kadav, Edmund Bernard Nightingale, Jeremy E. Elson, Richard F. Rashid, James W. Mickens
  • Publication number: 20170039114
    Abstract: This document relates to data storage techniques. One example can buffer write commands and cause the write commands to be committed to storage in flush epoch order. Another example can maintain a persistent log of write commands that are arranged in the persistent log in flush epoch order. Both examples may provide a prefix consistent state in the event of a crash.
    Type: Application
    Filed: October 19, 2016
    Publication date: February 9, 2017
    Applicant: Microsoft Technology Licensing, LLC
    Inventors: James W. MICKENS, Amar PHANISHAYEE, Vijaychidambaram VELAYUDHAN PILLAI
  • Patent number: 9292367
    Abstract: A state migration module (SMM) is described herein which seamlessly, efficiently, and correctly transfers application state between user computing devices, or between different interactions with the application on the same device that occur at different respective times. The SMM operates by capturing the current state of an application relative to the operation of a high-level execution platform (such as a browser) on which the application runs, rather than capturing the overall low-level state of the computing that runs the application. The SMM can include additional provisions designed to improve the efficiency of state migration, such as asynchronous migration, incremental delta-based migration, etc.
    Type: Grant
    Filed: April 8, 2014
    Date of Patent: March 22, 2016
    Assignee: Microsoft Corporation
    Inventor: James W. Mickens
  • Publication number: 20160036923
    Abstract: Migration functionality is described herein for efficiently migrating application state information among user devices. The migration functionality operates by receiving factor information that describes a context in which a user is using an application on a first user device. For instance, the factor information may describe the manner in which the user has used the application on various user devices on prior occasions, together with characteristics of the user's current environment. The migration functionality then determines, based on the factor information, whether to transfer application state information from the first user device to at least a second user device. The application state information captures at least a dynamic runtime state of the application on the first user device.
    Type: Application
    Filed: August 3, 2014
    Publication date: February 4, 2016
    Inventors: Amar Phanishayee, Sharad Agarwal, James W. Mickens, David A. Devecsery
  • Patent number: 9250940
    Abstract: A baseline set of graph information associated with a predefined execution environment of a program may be obtained, the baseline set associated with a baseline time interval. The predefined execution environment includes predefined environment objects, at least a portion of which are dynamically mutatable. A second set of graph information associated with the predefined execution environment may be obtained, the second set associated with a second time interval that is later in time than the baseline time interval. The baseline set and the second set may be compared to detect virtualization activity associated with a dynamic runtime.
    Type: Grant
    Filed: December 21, 2012
    Date of Patent: February 2, 2016
    Assignee: Microsoft Technology Licensing, LLC
    Inventor: James W. Mickens
  • Publication number: 20150286511
    Abstract: A state migration module (SMM) is described herein which seamlessly, efficiently, and correctly transfers application state between user computing devices, or between different interactions with the application on the same device that occur at different respective times. The SMM operates by capturing the current state of an application relative to the operation of a high-level execution platform (such as a browser) on which the application runs, rather than capturing the overall low-level state of the computing that runs the application. The SMM can include additional provisions designed to improve the efficiency of state migration, such as asynchronous migration, incremental delta-based migration, etc.
    Type: Application
    Filed: April 8, 2014
    Publication date: October 8, 2015
    Applicant: Microsoft Corporation
    Inventor: James W. Mickens
  • Publication number: 20150220439
    Abstract: This document relates to data storage techniques. One example can buffer write commands and cause the write commands to be committed to storage in flush epoch order. Another example can maintain a persistent log of write commands that are arranged in the persistent log in flush epoch order. Both examples may provide a prefix consistent state in the event of a crash.
    Type: Application
    Filed: March 28, 2014
    Publication date: August 6, 2015
    Applicant: MICROSOFT CORPORATION
    Inventors: James W. MICKENS, Amar PHANISHAYEE, Vijaychidambaram VELAYUDHAN PILLAI
  • Patent number: 9077681
    Abstract: Web page loading time may be decreased with the use of a page-maintained storage cache on a client device. In various implementations, a server may receive a request for a web page from a web browser that is on the client device. The server may provide a chunk reassembler to the client device that determines whether any chunks in the web page are already stored on the client device. Subsequently, the server may send one or more chunk of the web page to the client device when the chunk reassembler determines that the one or more chunks of the web page are missing from the client device. The chunk reassembler may then instruct the web browser to assemble the one or more received chunks with the one or more chunks that are stored on the client device into the web page for presentation on the client device.
    Type: Grant
    Filed: October 5, 2010
    Date of Patent: July 7, 2015
    Assignee: Microsoft Technology Licensing, LLC
    Inventor: James W. Mickens
  • Publication number: 20150052392
    Abstract: While connected to cloud storage, a computing device writes data and metadata to the cloud storage, indicates success of the write to an application of the computing device, and, after indicating success to the application, writes the data and metadata to local storage of the computing device. The data and metadata may be written to different areas of the local storage. The computing device may also determine that it has recovered from a crash or has connected to the cloud storage after operating disconnected and reconcile the local storage with the cloud storage. The reconciliation may be based at least on a comparison of the metadata stored in the area of the local storage with metadata received from the cloud storage. The cloud storage may store each item of data contiguously with its metadata as an expanded block.
    Type: Application
    Filed: August 19, 2013
    Publication date: February 19, 2015
    Applicant: Microsoft Corporation
    Inventors: James W. Mickens, Jeremy E. Elson, Edmund B. Nightingale, Bin Fan, Asim Kadav, Osama Khan
  • Publication number: 20140181819
    Abstract: A baseline set of graph information associated with a predefined execution environment of a program may be obtained, the baseline set associated with a baseline time interval. The predefined execution environment includes predefined environment objects, at least a portion of which are dynamically mutatable. A second set of graph information associated with the predefined execution environment may be obtained, the second set associated with a second time interval that is later in time than the baseline time interval. The baseline set and the second set may be compared to detect virtualization activity associated with a dynamic runtime.
    Type: Application
    Filed: December 21, 2012
    Publication date: June 26, 2014
    Applicant: MICROSOFT CORPORATION
    Inventor: James W. Mickens
  • Publication number: 20140068224
    Abstract: The subject disclosure is directed towards one or more parallel storage components for parallelizing block-level input/output associated with remote file data. Based upon a mapping scheme, the file data is partitioned into a plurality of blocks in which each may be equal in size. A translator component of the parallel storage may determine a mapping between the plurality of blocks and a plurality of storage nodes such that at least a portion of the plurality of blocks is accessible in parallel. Such a mapping, for example, may place each block in a different storage node allowing the plurality of blocks to be retrieved simultaneously and in its entirety.
    Type: Application
    Filed: August 30, 2012
    Publication date: March 6, 2014
    Applicant: MICROSOFT CORPORATION
    Inventors: Bin Fan, Asim Kadav, Edmund Bernard Nightingale, Jeremy E. Elson, Richard F. Rashid, James W. Mickens
  • Publication number: 20130159779
    Abstract: In one embodiment, a remote debugging infrastructure may allow a local application 114 to be debugged in real time. A remote debugging operator 120 may establish a connection with an execution platform 112 via a local application 114 activated by the execution platform 112. The remote debugging operator 120 may access an operational state of the local application 114.
    Type: Application
    Filed: December 19, 2011
    Publication date: June 20, 2013
    Applicant: Microsoft Corporation
    Inventor: James W. Mickens
  • Patent number: 8307077
    Abstract: The described implementations relate to collaborative speed determination in distributed systems. One method estimates upload speeds of a plurality of hosts. The method sends a first bandwidth probe from a first host to a second host. The method receives, at the first host, a second bandwidth probe sent from the second host. The method determines which of the first and second bandwidth probes was relatively slower. The method designates either of the first or second hosts that sent the relatively slower bandwidth probe as a loser and takes a speed of the bandwidth probe of the loser as a first estimate of the loser's upload speed.
    Type: Grant
    Filed: August 3, 2011
    Date of Patent: November 6, 2012
    Assignee: Microsoft Corporation
    Inventors: John R. Douceur, James W. Mickens, Thomas Moscibroda, Debmalya Panigrahi
  • Patent number: 8244721
    Abstract: The claimed subject matter provides a system and/or a method that facilitates generating a personalized query result for a specific user. An interface can receive at least one of a portion of a text query to be searched or a portion of personalized content related to a user that submits the portion of the text query. A personalization component can combine the portion of personalized content related to the user with a portion of personalized content related to one or more disparate users to create group personalized content, wherein the group personalized content is compared with the portion of the text query to identify a relationship there between to generate a personalized query result in accordance with the relationship.
    Type: Grant
    Filed: February 13, 2008
    Date of Patent: August 14, 2012
    Assignee: Microsoft Corporation
    Inventors: Meredith June Morris, Jaime Brooks Teevan, James W. Mickens, Saleema Amershi
  • Publication number: 20120084346
    Abstract: Web page loading time may be decreased with the use of a page-maintained storage cache on a client device. In various implementations, a server may receive a request for a web page from a web browser that is on the client device. The server may provide a chunk reassembler to the client device that determines whether any chunks in the web page are already stored on the client device. Subsequently, the server may send one or more chunk of the web page to the client device when the chunk reassembler determines that the one or more chunks of the web page are missing from the client device. The chunk reassembler may then instruct the web browser to assemble the one or more received chunks with the one or more chunks that are stored on the client device into the web page for presentation on the client device.
    Type: Application
    Filed: October 5, 2010
    Publication date: April 5, 2012
    Applicant: MICROSOFT CORPORATION
    Inventor: James W. Mickens