Patents by Inventor William R. Tipton

William R. Tipton 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: 10768829
    Abstract: The use of steaming functionality on a storage device may be optimized by performing a combination of stream and non-stream writes based on a size of the data being written to a given stream. For example, a method may comprise writing data associated with a plurality of files to a first set of one or more erase blocks, determining that an amount of data associated with a given one of the plurality of files in the first set of one or more erase blocks has reached a threshold, and moving the data associated with the given file from the first set of one or more erase blocks to a stream, the stream comprising a second set of one or more erase blocks on the storage device different from the first set of one or more erase blocks.
    Type: Grant
    Filed: June 21, 2017
    Date of Patent: September 8, 2020
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Rajsekhar Das, Scott Chao-Chueh Lee, Chesong Lee, Tristan C. Griffith, William R. Tipton, Erik Schmidt
  • Patent number: 10509730
    Abstract: A method and a processing device are provided for sequentially aggregating data to a write log included in a volume of a random-access medium. When data of a received write request is determined to be suitable for sequentially aggregating to a write log, the data may be written to the write log and a remapping tree, for mapping originally intended destinations on the random-access medium to one or more corresponding entries in the write log, may be maintained and updated. At time periods, a checkpoint may be written to the write log. The checkpoint may include information describing entries of the write log. One or more of the checkpoints may be used to recover the write log, at least partially, after a dirty shutdown. Entries of the write log may be drained to respective originally intended destinations upon an occurrence of one of a number of conditions.
    Type: Grant
    Filed: August 4, 2016
    Date of Patent: December 17, 2019
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
    Inventors: Shi Cong, Scott Brender, Karan Mehra, Darren G. Moss, William R. Tipton, Surendra Verma
  • Patent number: 10216437
    Abstract: Aspects of the subject matter described herein relate to storage systems and aliased memory. In aspects, a file system driver or other component may send a request to a memory controller to create an alias between two blocks of memory. One of the blocks of memory may be used for main memory while the other of the blocks of memory may be used for a storage system. In response, the memory controller may create an alias between the blocks of memory. Until the alias is severed, when the memory controller receives a request for data from the block in main memory, the memory controller may respond with data from the memory block used for the storage system. The memory controller may also implement other actions as described herein.
    Type: Grant
    Filed: May 30, 2017
    Date of Patent: February 26, 2019
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
    Inventors: William R. Tipton, Surendra Verma, Landy Wang, Malcolm James Smith
  • Patent number: 10120573
    Abstract: An improved interface for managing disparate read, write, and erase sizes and operations in data storage devices is provided. By improving an interface between a storage system driver layer and associated storage devices, performance of data storage is improved, including improving data storage speed and storage media endurance. Storage media management operations are made more efficient and consistent by providing improved types and sequences of commands sent from the driver layer to the device control layer such that data write operations are performed in a sequential manner as write commands are directed to portions of data as opposed to buffering individual portions of data followed by a large wholescale write/erase process for the buffered data.
    Type: Grant
    Filed: April 28, 2016
    Date of Patent: November 6, 2018
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC.
    Inventors: Robin Alexander, Lee Edward Prewitt, William R. Tipton, Laura Marie Caulfield
  • Patent number: 10067941
    Abstract: In response to a request to a file system to perform a requested update, a lock of a first node in a file system can be acquired, and an update of the first node can be performed while the lock of the first node is held. Also in response to the request, a lock of a second node can be acquired, and an update of the second node, which reflects the update of the first node, can be performed while the lock of the second node is held. A file system can allow a pair of update operations to be performed in parallel where both operations include updating the same container node. Additionally, while a file system is running, new namespace types can be defined, and the file system can be extended to manage nodes within the new namespace types.
    Type: Grant
    Filed: July 22, 2013
    Date of Patent: September 4, 2018
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Garret J. Buban, Jonathan M. Cargille, William R. Tipton
  • Publication number: 20180232160
    Abstract: The use of steaming functionality on a storage device may be optimized by performing a combination of stream and non-stream writes based on a size of the data being written to a given stream. For example, a method may comprise writing data associated with a plurality of files to a first set of one or more erase blocks, determining that an amount of data associated with a given one of the plurality of files in the first set of one or more erase blocks has reached a threshold, and moving the data associated with the given file from the first set of one or more erase blocks to a stream, the stream comprising a second set of one or more erase blocks on the storage device different from the first set of one or more erase blocks.
    Type: Application
    Filed: June 21, 2017
    Publication date: August 16, 2018
    Inventors: Rajsekhar DAS, Scott Chao-Chueh LEE, Chesong LEE, Tristan C. GRIFFITH, William R. TIPTON, Erik SCHMIDT
  • Publication number: 20180150422
    Abstract: Embodiments are directed to efficiently managing data storage and efficiently storing data. In one scenario, a computer system receives a write request addressed to one portion of data storage within a data store. The computer system redirects the received write request to another portion of data storage which includes storage containers, each of which is a logically specified portion of the data store. The computer system determines which storage container the write request is to write to, and identifies a storage container that is to be de-staged from the second portion of data storage to the first portion of data storage. The computer system then de-stages the identified storage containers to the first portion of data storage, the data of the de-staged container being stored on the first portion of data storage in the same order in which the data was stored in the identified storage container prior to de-staging.
    Type: Application
    Filed: October 30, 2017
    Publication date: May 31, 2018
    Inventors: William R. Tipton, Rajsekhar Das, Surendra Verma, Karan Mehra, Cornel Emilian Rat
  • Patent number: 9836419
    Abstract: Embodiments are directed to efficiently managing data storage and efficiently storing data. In one scenario, a computer system receives a write request addressed to one portion of data storage within a data store. The computer system redirects the received write request to another portion of data storage which includes storage containers, each of which is a logically specified portion of the data store. The computer system determines which storage container the write request is to write to, and identifies a storage container that is to be de-staged from the second portion of data storage to the first portion of data storage. The computer system then de-stages the identified storage containers to the first portion of data storage, the data of the de-staged container being stored on the first portion of data storage in the same order in which the data was stored in the identified storage container prior to de-staging.
    Type: Grant
    Filed: September 15, 2014
    Date of Patent: December 5, 2017
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: William R. Tipton, Rajsekhar Das, Surendra Verma, Karan Mehra, Cornel Emilian Rat
  • Publication number: 20170262207
    Abstract: Aspects of the subject matter described herein relate to storage systems and aliased memory. In aspects, a file system driver or other component may send a request to a memory controller to create an alias between two blocks of memory. One of the blocks of memory may be used for main memory while the other of the blocks of memory may be used for a storage system. In response, the memory controller may create an alias between the blocks of memory. Until the alias is severed, when the memory controller receives a request for data from the block in main memory, the memory controller may respond with data from the memory block used for the storage system. The memory controller may also implement other actions as described herein.
    Type: Application
    Filed: May 30, 2017
    Publication date: September 14, 2017
    Inventors: William R. TIPTON, Surendra VERMA, Landy WANG, Malcolm James SMITH
  • Patent number: 9678689
    Abstract: Aspects of the subject matter described herein relate to storage systems and aliased memory. In aspects, a file system driver or other component may send a request to a memory controller to create an alias between two blocks of memory. One of the blocks of memory may be used for main memory while the other of the blocks of memory may be used for a storage system. In response, the memory controller may create an alias between the blocks of memory. Until the alias is severed, when the memory controller receives a request for data from the block in main memory, the memory controller may respond with data from the memory block used for the storage system. The memory controller may also implement other actions as described herein.
    Type: Grant
    Filed: September 25, 2013
    Date of Patent: June 13, 2017
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: William R. Tipton, Surendra Verma, Landy Wang, Malcolm James Smith
  • Publication number: 20170075583
    Abstract: An improved interface for managing disparate read, write, and erase sizes and operations in data storage devices is provided. By improving an interface between a storage system driver layer and associated storage devices, performance of data storage is improved, including improving data storage speed and storage media endurance. Storage media management operations are made more efficient and consistent by providing improved types and sequences of commands sent from the driver layer to the device control layer such that data write operations are performed in a sequential manner as write commands are directed to portions of data as opposed to buffering individual portions of data followed by a large wholescale write/erase process for the buffered data.
    Type: Application
    Filed: April 28, 2016
    Publication date: March 16, 2017
    Applicant: Microsoft Technology Licensing, LLC.
    Inventors: Robin Alexander, Lee Edward Prewitt, William R. Tipton, Laura Marie Caulfield
  • Patent number: 9575678
    Abstract: Aspects of the subject matter described herein relate to storage allocation. In aspects, a hierarchical data structure is used to track allocation data for storage managed by a file system. The hierarchical data structure may have multiple levels with each level having data regarding a different granularity of storage. Portions of the hierarchical data structure may be locked independently of other portions of the hierarchical data structure. The hierarchical data structure may indicate that one or more portions of storage are for exclusive use by a directory. Extra space may be reserved in allocated space in anticipation of subsequent operations. Allocation requestors may obtain storage allocation from regions associated with different levels of the hierarchical data structure.
    Type: Grant
    Filed: December 15, 2015
    Date of Patent: February 21, 2017
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
    Inventors: Thomas J. Miller, Jonathan M. Cargille, William R. Tipton, Surendra Verma
  • Patent number: 9547549
    Abstract: Aspects of the subject matter described herein relate to file system technology. In aspects, a mechanism is described that allows a file system to handle corrupted file system metadata in a way that provides high availability. When corrupted metadata is detected, the corrupted metadata may be deleted while the file system remains online and available to service file input/output operations that involve non-corrupted metadata.
    Type: Grant
    Filed: February 27, 2013
    Date of Patent: January 17, 2017
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
    Inventors: William R. Tipton, Rajsekhar Das, Malcolm James Smith, Shao-Chuan Wang, Surendra Verma
  • Publication number: 20160342528
    Abstract: A method and a processing device are provided for sequentially aggregating data to a write log included in a volume of a random-access medium. When data of a received write request is determined to be suitable for sequentially aggregating to a write log, the data may be written to the write log and a remapping tree, for mapping originally intended destinations on the random-access medium to one or more corresponding entries in the write log, may be maintained and updated. At time periods, a checkpoint may be written to the write log. The checkpoint may include information describing entries of the write log. One or more of the checkpoints may be used to recover the write log, at least partially, after a dirty shutdown. Entries of the write log may be drained to respective originally intended destinations upon an occurrence of one of a number of conditions.
    Type: Application
    Filed: August 4, 2016
    Publication date: November 24, 2016
    Inventors: Shi Cong, Scott Brender, Karan Mehra, Darren G. Moss, William R. Tipton, Surendra Verma
  • Patent number: 9448869
    Abstract: Aspects of the subject matter described herein relate to error detection for files. In aspects, before allowing updates to a clean file, a flag marking the file as dirty is written to non-volatile storage. Thereafter, the file may be updated as long as desired. Periodically or at some other time, the file may be marked as clean after all outstanding updates to the file and error codes associated with the file are written to storage. While waiting for outstanding updates and error codes to be written to storage, if additional requests to update the file are received, the file may be marked as dirty again prior to allowing the additional requests to update the file. The request to write a clean flag regarding the file may be done lazily.
    Type: Grant
    Filed: July 24, 2014
    Date of Patent: September 20, 2016
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
    Inventors: Thomas J. Miller, Jonathan M. Cargille, William R. Tipton, Surendra Verma
  • Patent number: 9448890
    Abstract: A method and a processing device are provided for sequentially aggregating data to a write log included in a volume of a random-access medium. When data of a received write request is determined to be suitable for sequentially aggregating to a write log, the data may be written to the write log and a remapping tree, for mapping originally intended destinations on the random-access medium to one or more corresponding entries in the write log, may be maintained and updated. At time periods, a checkpoint may be written to the write log. The checkpoint may include information describing entries of the write log. One or more of the checkpoints may be used to recover the write log, at least partially, after a dirty shutdown. Entries of the write log may be drained to respective originally intended destinations upon an occurrence of one of a number of conditions.
    Type: Grant
    Filed: January 5, 2012
    Date of Patent: September 20, 2016
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
    Inventors: Shi Cong, Scott Brender, Karan Mehra, Darren G. Moss, William R. Tipton, Surendra Verma
  • Patent number: 9430160
    Abstract: Aspects of the subject matter described herein relate to maintaining consistency in a storage system. In aspects, one or more objects may be updated in the context of a transaction. In conjunction with updating the objects, logical copies of the objects may be obtained and modified. A request to write the updated logical copies is sent to a storage controller. The logical copies do not overwrite the original copies. In conjunction with sending the request, a data structure is provided for the storage controller to store on the disk. The data structure indicates the one or more objects that were supposed to be written to disk and may include verification data to indicate the content that was supposed to be written to disk. During recovery, this data structure may be used to determine whether all of the object(s) were correctly written to disk.
    Type: Grant
    Filed: March 25, 2015
    Date of Patent: August 30, 2016
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
    Inventors: Thomas J. Miller, Jonathan M. Cargille, William R. Tipton, Surendra Verma
  • Patent number: 9361183
    Abstract: A method and a processing device are provided for sequentially aggregating data to a write log included in a volume of a random-access medium. When data of a received write request is determined to be suitable for sequentially aggregating to a write log, the data may be written to the write log and a remapping tree, for mapping originally intended destinations on the random-access medium to one or more corresponding entries in the write log, may be maintained and updated. At time periods, a checkpoint may be written to the write log. The checkpoint may include information describing entries of the write log. One or more of the checkpoints may be used to recover the write log, at least partially, after a dirty shutdown. Entries of the write log may be drained to respective originally intended destinations upon an occurrence of one of a number of conditions.
    Type: Grant
    Filed: April 22, 2014
    Date of Patent: June 7, 2016
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
    Inventors: Shi Cong, Scott Brender, Karan Mehra, Darren G. Moss, William R. Tipton, Surendra Verma
  • Publication number: 20160098224
    Abstract: Aspects of the subject matter described herein relate to storage allocation. In aspects, a hierarchical data structure is used to track allocation data for storage managed by a file system. The hierarchical data structure may have multiple levels with each level having data regarding a different granularity of storage. Portions of the hierarchical data structure may be locked independently of other portions of the hierarchical data structure. The hierarchical data structure may indicate that one or more portions of storage are for exclusive use by a directory. Extra space may be reserved in allocated space in anticipation of subsequent operations. Allocation requestors may obtain storage allocation from regions associated with different levels of the hierarchical data structure.
    Type: Application
    Filed: December 15, 2015
    Publication date: April 7, 2016
    Inventors: Thomas J. Miller, Jonathan M. Cargille, William R. Tipton, Surendra Verma
  • Publication number: 20160077988
    Abstract: Embodiments are directed to efficiently managing data storage and efficiently storing data. In one scenario, a computer system receives a write request addressed to one portion of data storage within a data store. The computer system redirects the received write request to another portion of data storage which includes storage containers, each of which is a logically specified portion of the data store. The computer system determines which storage container the write request is to write to, and identifies a storage container that is to be de-staged from the second portion of data storage to the first portion of data storage. The computer system then de-stages the identified storage containers to the first portion of data storage, the data of the de-staged container being stored on the first portion of data storage in the same order in which the data was stored in the identified storage container prior to de-staging.
    Type: Application
    Filed: September 15, 2014
    Publication date: March 17, 2016
    Inventors: William R. Tipton, Rajsekhar Das, Surendra Verma, Karan Mehra, Cornel Emilian Rat