Patents by Inventor David A. Majnemer

David A. Majnemer 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: 10073851
    Abstract: In one embodiment, a new file creation cache is reserved on a fast storage device that is part of a composite storage device that also includes a slow storage device; the composite storage device is treated as a single logical volume (or a plurality of logical volumes) by a file system which maintains a mapping table that is used to determine whether the write operation is for a new file. If the write operation is for a new file, the file system attempts to write the new file to the fast storage device. If the write operation is not for a new file, the mapping table specifies which device is used for the write operation.
    Type: Grant
    Filed: January 8, 2013
    Date of Patent: September 11, 2018
    Assignee: Apple Inc.
    Inventors: Wenguang Wang, David A. Majnemer, Deric S. Horn
  • Patent number: 9292217
    Abstract: Space sharing between logical volumes is achieved through a technique that enables available storage space to be flexibly consumed and released by the logical volumes. Each logical volume is associated with an address tree that defines how available storage space is consumed by the logical volume. The technique involves receiving an input/output (I/O) operation that specifies a logical address within an address tree associated with the logical volume, parsing the address tree to identify an entry therein, if any, that is associated with the logical address, where the entry stores physical address information that is associated with the logical address. If it is determined that the entry exists, then one or more translated I/O operations are generated based on the physical address information and forwarded to a physical device manager to carry out the translated one or more I/O operations.
    Type: Grant
    Filed: August 5, 2015
    Date of Patent: March 22, 2016
    Assignee: Apple Inc.
    Inventors: Deric S. Horn, David A. Majnemer, Wenguang Wang
  • Patent number: 9208258
    Abstract: In one embodiment, two-phase mutation of an ordered tree data structure is performed, wherein a lock can be acquired on a first node in an ordered tree data structure, and an identifier for the first node can be added to a lock path data structure. A second node can also be locked, and an identifier for the second node can be added to the lock path data structure. Subsequently, a set of operations to perform on the ordered tree responsive to a modification of the second node can be determined for each node affected by the modification, and the operation for each node can be stored in the lock path data structure. Once the operations for the nodes have been determined, the operations listed in the lock path can be performed.
    Type: Grant
    Filed: April 11, 2013
    Date of Patent: December 8, 2015
    Assignee: Apple Inc.
    Inventors: Richard P. Spillane, Wenguang Wang, David A. Majnemer
  • Publication number: 20150347495
    Abstract: In some implementations, a B+tree (b plus tree) can provide concurrent access to data while modifying nodes of the B+tree. In some implementations, a top-down B+tree can be provided where nodes of the B+tree can be proactively merged, rebalanced and split to prevent recursive operations moving up the B+tree. In some implementations, node (or page) record data can be merged to consolidate record entries within nodes of the B+tree while only locking 1-3 nodes of the tree at the same time. In some implementations, record data can be merged across multiple nodes of the B+tree. In some implementations, ranges of data can be removed from the tree while only locking 1-3 nodes of the tree at the same time. In some implementations, range of data can be replaced with new data while only locking 1-3 nodes of the tree at the same time.
    Type: Application
    Filed: June 8, 2015
    Publication date: December 3, 2015
    Inventors: Wenguang Wang, David A. Majnemer
  • Publication number: 20150339077
    Abstract: Space sharing between logical volumes is achieved through a technique that enables available storage space to be flexibly consumed and released by the logical volumes. Each logical volume is associated with an address tree that defines how available storage space is consumed by the logical volume. The technique involves receiving an input/output (I/O) operation that specifies a logical address within an address tree associated with the logical volume, parsing the address tree to identify an entry therein, if any, that is associated with the logical address, where the entry stores physical address information that is associated with the logical address. If it is determined that the entry exists, then one or more translated I/O operations are generated based on the physical address information and forwarded to a physical device manager to carry out the translated one or more I/O operations.
    Type: Application
    Filed: August 5, 2015
    Publication date: November 26, 2015
    Inventors: Deric S. HORN, David A. MAJNEMER, Wenguang WANG
  • Patent number: 9134908
    Abstract: Space sharing between logical volumes is achieved through a technique that enables available storage space to be flexibly consumed and released by the logical volumes. Each logical volume is associated with an address tree that defines how available storage space is consumed by the logical volume. The technique involves receiving an input/output (I/O) operation that specifies a logical address within an address tree associated with the logical volume, parsing the address tree to identify an entry therein, if any, that is associated with the logical address, where the entry stores physical address information that is associated with the logical address. If it is determined that the entry exists, then one or more translated I/O operations are generated based on the physical address information and forwarded to a physical device manager to carry out the translated one or more I/O operations.
    Type: Grant
    Filed: January 9, 2013
    Date of Patent: September 15, 2015
    Assignee: Apple Inc.
    Inventors: Deric S. Horn, David A. Majnemer, Wenguang Wang
  • Patent number: 9081503
    Abstract: In one embodiment, a method for managing access to a fast non-volatile storage device, such as a solid state device, and a slower non-volatile storage device, such as a magnetic hard drive, can include a method of managing a sparse logical volume in which unmapped blocks of the logical volume are not allocated until use. In one embodiment, a method of sparse hole filling operates in which range locks are dynamically adjusted to perform allocations for sparse hole filling, and then re-adjusted to perform standard operations using a byte range lock. In one embodiment, a high level data structure can be used in the range lock service in the form of an ordered search tree, which could use any search tree algorithm, such as red-black tree, AVL tree, splay tree, etc.
    Type: Grant
    Filed: October 16, 2012
    Date of Patent: July 14, 2015
    Assignee: Apple Inc.
    Inventors: Wenguang Wang, David A. Majnemer
  • Patent number: 9053140
    Abstract: In some implementations, a B+tree (b plus tree) can provide concurrent access to data while modifying nodes of the B+tree. In some implementations, a top-down B+tree can be provided where nodes of the B+tree can be proactively merged, rebalanced and split to prevent recursive operations moving up the B+tree. In some implementations, node (or page) record data can be merged to consolidate record entries within nodes of the B+tree while only locking 1-3 nodes of the tree at the same time. In some implementations, record data can be merged across multiple nodes of the B+tree. In some implementations, ranges of data can be removed from the tree while only locking 1-3 nodes of the tree at the same time. In some implementations, range of data can be replaced with new data while only locking 1-3 nodes of the tree at the same time.
    Type: Grant
    Filed: September 28, 2012
    Date of Patent: June 9, 2015
    Assignee: Apple Inc.
    Inventors: Wenguang Wang, David A. Majnemer
  • Patent number: 8914381
    Abstract: In one embodiment, the correlation filter can use one of several data structure to track each migration unit and reject successive accesses within a period of time to each migration unit. In one embodiment, the correlation filter uses a space efficient data structure, such as a hash indexed correlation array to store the address of referenced migration units, and to filter accesses to a single migration unit that are correlated accesses resulting from multiple accesses to the same migration unit during a sequential I/O stream. In one embodiment, the correlation array contains a global timeout, which resets each element to a default value, clearing all store migration unit address values from the correlation array. In one embodiment, each element of the migration array can time-out separately.
    Type: Grant
    Filed: October 16, 2012
    Date of Patent: December 16, 2014
    Assignee: Apple Inc.
    Inventors: David A. Majnemer, Wenguang Wang
  • Patent number: 8868531
    Abstract: In one embodiment, non-transitory computer-readable medium stores instructions for implementing a file system, which include operations for acquiring an exclusive lock on a first node in an ordered tree data-structure, and adding an identifier and index of the first node to a path data structure. If the value of the index in the first node is non-zero, then each exclusive lock acquired between the first node and the root of the tree data structure is released. In any case, the operation proceeds to a second node, which is addressed at the index on the first node. In one embodiment, operations further include acquiring an exclusive lock on the second node, and, if the second node is a leaf node, performing updates to the second node, and then releasing each exclusive lock in the data-structure.
    Type: Grant
    Filed: October 16, 2012
    Date of Patent: October 21, 2014
    Assignee: Apple Inc.
    Inventors: David A. Majnemer, Wenguang Wang
  • Publication number: 20140310317
    Abstract: In one embodiment, two-phase mutation of an ordered tree data structure is performed, wherein a lock can be acquired on a first node in an ordered tree data structure, and an identifier for the first node can be added to a lock path data structure. A second node can also be locked, and an identifier for the second node can be added to the lock path data structure. Subsequently, a set of operations to perform on the ordered tree responsive to a modification of the second node can be determined for each node affected by the modification, and the operation for each node can be stored in the lock path data structure. Once the operations for the nodes have been determined, the operations listed in the lock path can be performed.
    Type: Application
    Filed: April 11, 2013
    Publication date: October 16, 2014
    Applicant: Apple Inc.
    Inventors: Richard P. Spillane, Wenguang Wang, David A. Majnemer
  • Publication number: 20140195761
    Abstract: Space sharing between logical volumes is achieved through a technique that enables available storage space to be flexibly consumed and released by the logical volumes. Each logical volume is associated with an address tree that defines how available storage space is consumed by the logical volume. The technique involves receiving an input/output (I/O) operation that specifies a logical address within an address tree associated with the logical volume, parsing the address tree to identify an entry therein, if any, that is associated with the logical address, where the entry stores physical address information that is associated with the logical address. If it is determined that the entry exists, then one or more translated I/O operations are generated based on the physical address information and forwarded to a physical device manager to carry out the translated one or more I/O operations.
    Type: Application
    Filed: January 9, 2013
    Publication date: July 10, 2014
    Applicant: APPLE INC.
    Inventors: Deric S. HORN, David A. MAJNEMER, Wenguang WANG
  • Publication number: 20140195571
    Abstract: In one embodiment, a new file creation cache is reserved on a fast storage device that is part of a composite storage device that also includes a slow storage device; the composite storage device is treated as a single logical volume (or a plurality of logical volumes) by a file system which maintains a mapping table that is used to determine whether the write operation is for a new file. If the write operation is for a new file, the file system attempts to write the new file to the fast storage device. If the write operation is not for a new file, the mapping table specifies which device is used for the write operation.
    Type: Application
    Filed: January 8, 2013
    Publication date: July 10, 2014
    Applicant: Apple Inc.
    Inventors: Wenguang Wang, David A. Majnemer, Deric S. Horn
  • Publication number: 20140181455
    Abstract: The invention provides a technique for carrying out a request to store data. The technique includes the steps of receiving, from an application, the request to store data, and determining a storage functionality associated with the request. The storage functionality represents a particular storage function (e.g., RAID-5) that can be implemented using space available in one or more storage devices that are associated with the storage functionality. Identifications of the one or more storage devices, as well as a size of the data, are transmitted to a space allocator. In turn, the space allocator analyzes various aspects of the one or more storage devices (e.g., amount of free space therein) and allocates space within at least one of the one more storage devices according to the analysis. Information about the space allocations is then used to issue In/Out (I/O) commands that cause the storage functionality to be implemented.
    Type: Application
    Filed: March 14, 2013
    Publication date: June 26, 2014
    Applicant: APPLE INC.
    Inventors: Wenguang WANG, David A. MAJNEMER, John GARVEY
  • Publication number: 20140074841
    Abstract: In one embodiment, non-transitory computer-readable medium stores instructions for implementing a file system, which include operations for acquiring an exclusive lock on a first node in an ordered tree data-structure, and adding an identifier and index of the first node to a path data structure. If the value of the index in the first node is non-zero, then each exclusive lock acquired between the first node and the root of the tree data structure is released. In any case, the operation proceeds to a second node, which is addressed at the index on the first node. In one embodiment, operations further include acquiring an exclusive lock on the second node, and, if the second node is a leaf node, performing updates to the second node, and then releasing each exclusive lock in the data-structure.
    Type: Application
    Filed: October 16, 2012
    Publication date: March 13, 2014
    Applicant: Apple Inc.
    Inventors: David A. Majnemer, Wenguang Wang