Patents by Inventor Neal Christiansen

Neal Christiansen 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: 10209899
    Abstract: Embodiments relate to off-loading aspects of storage virtualization to storage hardware and modifying software to take advantage of hardware virtualization features. A co-design of hardware and software allows a filesystem to provide files such that indirection overhead normally needed to access the content of files can be bypassed while still managing the files as filesystem objects. A storage device manages and exposes a virtual volume which is used to store the content of a file. Virtual volumes can be initialized or populated so that virtual blocks therein align with device storage blocks. A virtual volume can be initialized and populated by parsing a virtual disk file to access virtual disk metadata, which is then used to determine and set features of the virtual volume.
    Type: Grant
    Filed: November 6, 2015
    Date of Patent: February 19, 2019
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Jacob Oshins, Neal Christiansen
  • Patent number: 9778860
    Abstract: An invention is disclosed for maintaining out-of-band metadata for data. In embodiments of the invention, an upper layer of a storage stack determines that the metadata of a lower layer of that storage stack may have become out of sync. In response, the upper layer may issue a series of commands to the lower layer based on the metadata. In other embodiments of the invention, an offload-copy operation on data may also transfer out-of-band metadata so that it is applied to the data at the destination.
    Type: Grant
    Filed: September 12, 2012
    Date of Patent: October 3, 2017
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Dustin Green, John Starks, Neal Christiansen, Chung Lang Dai
  • Publication number: 20170131920
    Abstract: Embodiments relate to off-loading aspects of storage virtualization to storage hardware and modifying software to take advantage of hardware virtualization features. A co-design of hardware and software allows a filesystem to provide files such that indirection overhead normally needed to access the content of files can be bypassed while still managing the files as filesystem objects. A storage device manages and exposes a virtual volume which is used to store the content of a file. Virtual volumes can be initialized or populated so that virtual blocks therein align with device storage blocks. A virtual volume can be initialized and populated by parsing a virtual disk file to access virtual disk metadata, which is then used to determine and set features of the virtual volume.
    Type: Application
    Filed: November 6, 2015
    Publication date: May 11, 2017
    Inventors: Jacob Oshins, Neal Christiansen
  • Patent number: 9436399
    Abstract: A thinly provisioned storage system detects whether physical storage capacity is available when there is a request to allocate storage capacity, prior to data being written to the storage system. In particular, at the time when the file system allocates storage, such as when creating a file or performing an extending write (append) operation, allocating storage to an unallocated region of a sparse file, defragmenting a file, and the like, a storage system can verify that actual physical storage capacity is available. Thus, if there is insufficient actual physical capacity at the time when a storage allocation is attempted, then an error message can be sent and remedial action can be taken.
    Type: Grant
    Filed: September 23, 2015
    Date of Patent: September 6, 2016
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Matt Garson, Neal Christiansen, Sarosh Havewala, Shiv Rajpal, Karan Mehra, Surendra Verma, Daniel Chan
  • Publication number: 20160011811
    Abstract: A thinly provisioned storage system detects whether physical storage capacity is available when there is a request to allocate storage capacity, prior to data being written to the storage system. In particular, at the time when the file system allocates storage, such as when creating a file or performing an extending write (append) operation, allocating storage to an unallocated region of a sparse file, defragmenting a file, and the like, a storage system can verify that actual physical storage capacity is available. Thus, if there is insufficient actual physical capacity at the time when a storage allocation is attempted, then an error message can be sent and remedial action can be taken.
    Type: Application
    Filed: September 23, 2015
    Publication date: January 14, 2016
    Inventors: Matt Garson, Neal Christiansen, Sarosh Havewala, Shiv Rajpal, Karan Mehra, Surendra Verma, Daniel Chan
  • Patent number: 9146853
    Abstract: A thinly provisioned storage system detects whether physical storage capacity is available when there is a request to allocate storage capacity, prior to data being written to the storage system. In particular, at the time when the file system allocates storage, such as when creating a file or performing an extending write (append) operation, allocating storage to an unallocated region of a sparse file, defragmenting a file, and the like, a storage system can verify that actual physical storage capacity is available. Thus, if there is insufficient actual physical capacity at the time when a storage allocation is attempted, then an error message can be sent and remedial action can be taken.
    Type: Grant
    Filed: March 28, 2013
    Date of Patent: September 29, 2015
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Matt Garson, Neal Christiansen, Sarosh Havewala, Shiv Rajpal, Karan Mehra, Surendra Verma, Daniel Chan
  • Publication number: 20140297987
    Abstract: A thinly provisioned storage system detects whether physical storage capacity is available when there is a request to allocate storage capacity, prior to data being written to the storage system. In particular, at the time when the file system allocates storage, such as when creating a file or performing an extending write (append) operation, allocating storage to an unallocated region of a sparse file, defragmenting a file, and the like, a storage system can verify that actual physical storage capacity is available. Thus, if there is insufficient actual physical capacity at the time when a storage allocation is attempted, then an error message can be sent and remedial action can be taken.
    Type: Application
    Filed: March 28, 2013
    Publication date: October 2, 2014
    Applicant: Microsoft Corporation
    Inventors: Matt Garson, Neal Christiansen, Sarosh Havewala, Shiv Rajpal, Karan Mehra, Surendra Verma, Daniel Chan
  • Publication number: 20140074782
    Abstract: An invention is disclosed for maintaining out-of-band metadata for data. In embodiments of the invention, an upper layer of a storage stack determines that the metadata of a lower layer of that storage stack may have become out of sync. In response, the upper layer may issue a series of commands to the lower layer based on the metadata. In other embodiments of the invention, an offload-copy operation on data may also transfer out-of-band metadata so that it is applied to the data at the destination.
    Type: Application
    Filed: September 14, 2012
    Publication date: March 13, 2014
    Applicant: MICROSOFT CORPORATION
    Inventors: Dustin Green, John Starks, Neal Christiansen, Chung Lang Dai
  • Publication number: 20140074776
    Abstract: An invention is disclosed for maintaining out-of-band metadata for data. In embodiments of the invention, an upper layer of a storage stack determines that the metadata of a lower layer of that storage stack may have become out of sync. In response, the upper layer may issue a series of commands to the lower layer based on the metadata. In other embodiments of the invention, an offload-copy operation on data may also transfer out-of-band metadata so that it is applied to the data at the destination.
    Type: Application
    Filed: September 12, 2012
    Publication date: March 13, 2014
    Applicant: Microsoft Corporation
    Inventors: Dustin Green, John Starks, Neal Christiansen, Chung Lang Dai
  • Publication number: 20120324560
    Abstract: In one embodiment, a host application may manage a data set maintained at a storage device using a token. A processor 220 of a host computer executing a host application may obtain a token representing a data set. The processor 220 may read a data set result based on the data set into a memory local to the host application. The data set result may be a data set copy, a data set digest, or a data set transformation.
    Type: Application
    Filed: June 17, 2011
    Publication date: December 20, 2012
    Applicant: Microsoft Corporation
    Inventors: Bryan Matthew, Rajeev Nagar, Neal Christiansen, Dustin Green, Jaivir Aithal
  • Patent number: 7779425
    Abstract: A model in which filter drivers are managed to receive callbacks for I/O requests in which the filter drivers have registered an interest. Per-volume instances of filter drivers register with a filter manager for pre-callbacks (for I/O to the file system) and post-callbacks (for I/O from the file system), and identify which I/O requests (e.g., create, read, write) they are registering to receive callbacks. The filter manager orders the instances for callbacks. When an I/O request is received, the filter manager converts the I/O request to callback data and calls the interested filters in the callback order, whereby the filter instances can process the I/O data. As the request returns from the file system, filters desiring post callbacks are called in the reverse order. Efficient context management for the filters and other functions, such as non-reentrant file I/O, are also provided by the model.
    Type: Grant
    Filed: January 30, 2006
    Date of Patent: August 17, 2010
    Assignee: Microsoft Corporation
    Inventors: Ravisankar Pudipeddi, Eileen C. Brown, Neal Christiansen, Ravinder Thind, Brian K. Dewey, David P. Golds, Mark J. Zbikowski
  • 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: 20070180530
    Abstract: Aspects of the subject matter described herein relate to antivirus protection and transactions. In aspects, a filter detects that a file is participating in a transaction and then may cause the file to be scanned together with any changes that have made to the file during the transaction. After a file is scanned, a cache entry may be updated to indicate that the file is clean. The cache entry may be used subsequently for like-type states. For example, if the file was scanned inside a transaction, the cache entry may be used later in the transaction. If the file was scanned outside a transaction, the cache entry may be used later for requests pertaining to files not in a transaction. Cache entries may be discarded when they are invalid or no longer useful.
    Type: Application
    Filed: March 15, 2006
    Publication date: August 2, 2007
    Applicant: Microsoft Corporation
    Inventors: Surendra Verma, Dana Groff, Jonathan Cargille, Andrew Herron, Christian Allred, Neal Christiansen, Alexey Polyakov
  • Publication number: 20070118559
    Abstract: Aspects of the subject matter described herein relate to file system filters and transactions. In aspects, a filter may enlist to receive notification of events associated with a transaction. Afterwards, the filter may receive notification of a transaction event for which it has enlisted. In response to receiving notification of the transaction the filter may perform an action as appropriate. Aspects of the subject matter described herein may be applied to stacked and managed filters.
    Type: Application
    Filed: November 18, 2005
    Publication date: May 24, 2007
    Applicant: Microsoft Corporation
    Inventors: Neal Christiansen, Ravinder Thind, Ravisankar Pudipeddi, Dana Groff, Jonathan Cargille
  • Publication number: 20070061279
    Abstract: File system metadata regarding states of a file system affected by transactions is tracked consistently even in the face of dirty shutdowns which might cause rollbacks in transactions which have already been reflected in the metadata. In order to only request time- and resource-heavy rebuilding of metadata for metadata which may have been affected by rollbacks, reliability information is tracked regarding metadata items. When a metadata item is affected by a transaction which may not complete properly in the case of a problematic shutdown or other event, that metadata item's reliability information indicates that it may not be reliable in case of such a problematic (“dirty” or“abnormal”) event. In addition to flag information indicating unreliability, timestamp information tracking a time of the command which has made a metadata item unreliable is also maintained.
    Type: Application
    Filed: September 1, 2005
    Publication date: March 15, 2007
    Applicant: Microsoft Corporation
    Inventors: Neal Christiansen, Ravinder Thind, Ravisankar Pudipeddi, Sarosh Havewala
  • Patent number: 7150018
    Abstract: A method and system for ordering software modules in a guaranteed order for execution. Unique values are statically assigned to software modules (e.g., filter drivers) when fully developed. Each module's assigned value determines its relative position to other modules in a stack or other arrangement, fixing the execution order for any set of filter drivers. Static values may comprise floating-point numbers, whereby each new software module may be assigned a number that enables positioning it between any two existing software modules. For example, filter drivers may be generally classified and assigned values in a range according to type. Drivers of the same type may be ordered within their general range to guarantee one possible ordering. A filter manager architecture is described, in which filter drivers register with a manager for relevant file system I/O operations. The manager calls appropriately registered filter drivers in an order based on their assigned numbers.
    Type: Grant
    Filed: January 23, 2001
    Date of Patent: December 12, 2006
    Assignee: Microsoft Corporation
    Inventors: David P. Golds, Keith S. Kaplan, Eileen C. Brown, Neal Christiansen
  • Publication number: 20060253655
    Abstract: Object rundown protection that scales with the number of processors in a shared-memory computer system is disclosed. Prior to object rundown, a cache-aware reference count data structure is used to prevent cache-pinging that would otherwise result from data sharing across processors in a multiprocessor computer system. In this data structure, a counter of positive references and negative dereferences, aligned on a particular cache line, is maintained for each processor. When an object is to be destroyed, a rundown wait process is begun, during which new references on the object are prohibited, and the total number of outstanding references is added to an on-stack global counter. Destruction is delayed until the global reference count is reduced to zero. In an implementation on non-uniform memory access multiprocessor machines, each processor's reference count is additionally allocated in a region of main memory that is physically close to that processor.
    Type: Application
    Filed: July 3, 2006
    Publication date: November 9, 2006
    Applicant: Microsoft Corporation
    Inventors: Ravisankar Pudipeddi, Neill Clift, Neal Christiansen
  • Publication number: 20060200635
    Abstract: A system and method for object rundown protection that scales with the number of processors in a shared-memory computer system is disclosed. In an embodiment of the present invention, prior to object rundown, a cache-aware reference count data structure is used to prevent cache-pinging that would otherwise result from data sharing across processors in a multiprocessor computer system. In this data structure, a counter of positive references and negative dereferences, aligned on a particular cache line, is maintained for each processor. When an object is to be destroyed, a rundown wait process is begun, during which new references on the object are prohibited, and the total number of outstanding references is added to an on-stack global counter. Destruction is delayed until the global reference count is reduced to zero.
    Type: Application
    Filed: April 11, 2006
    Publication date: September 7, 2006
    Applicant: Microsoft Corporation
    Inventors: Ravisankar Pudipeddi, Neill Clift, Neal Christiansen
  • Publication number: 20060136460
    Abstract: A model in which filter drivers are managed to receive callbacks for I/O requests in which the filter drivers have registered an interest. Per-volume instances of filter drivers register with a filter manager for pre-callbacks (for I/O to the file system) and post-callbacks (for I/O from the file system), and identify which I/O requests (e.g., create, read, write) they are registering to receive callbacks. The filter manager orders the instances for callbacks. When an I/O request is received, the filter manager converts the I/O request to callback data and calls the interested filters in the callback order, whereby the filter instances can process the I/O data. As the request returns from the file system, filters desiring post callbacks are called in the reverse order. Efficient context management for the filters and other functions, such as non-reentrant file I/O, are also provided by the model.
    Type: Application
    Filed: January 30, 2006
    Publication date: June 22, 2006
    Applicant: Microsoft Corporation
    Inventors: Ravisankar Pudipeddi, Eileen Brown, Neal Christiansen, Ravinder Thind, Brian Dewey, David Golds, Mark Zbikowski
  • Publication number: 20060117018
    Abstract: A method and system for caching remote objects locally. A request to access an object is received. A determination is made as to whether the object is cached. If the object is cached and the request is not to create a new object, modify an existing object, or open a directory, the request is directed to a local file system. Otherwise, the request is directed to a remote file system. Information about which objects are requested may be used to copy objects stored remotely to a local server as specified by a caching policy.
    Type: Application
    Filed: November 30, 2004
    Publication date: June 1, 2006
    Applicant: Microsoft Corporation
    Inventors: Neal Christiansen, Ravinder Thind, Alexis Eller