The described technology is directed to the field of filesystems.
The demand for scalable storage resources and the ability to provide rapid access to content stored thereby is a key concern to end-users. Enterprises, businesses, and individuals alike now use large scale filesystems to store data that is remotely accessible via a network. Such filesystems are often accessible via closed (e.g., enterprise) and open (e.g., Internet) networks and allow concurrent access via multiple client devices. Various implementations of large scale filesystems relying on network access have been developed. The primary differences between such filesystems are (1) that they use different protocols for the client devices and servers to communicate to read and write data and (2) that the data and corresponding metadata are stored in different ways.
For some filesystems, the protocol provides access to end-users by implementing APIs through a network, while others are specific to operating systems. Some such operating systems include default programs which may be called to synchronously determine and display filesystem information to an end-user. For example, Unix includes a .du program which return file space usage of a directory.
Users benefit from knowing the amount of storage resources as well as the allocation of those resources to various portions of the filesystem, such as directories, sub-directories, and files in a filesystem hierarchy, in order to facilitate management of the filesystem. For example, administrators can allocate system resources to frequently accessed nodes and can determine if additional storage capacity is required.
Systems administrators find useful various kinds of filesystem queries. For example, on system administrator may wish to generate a list of all files created in the past hour.
The inventors have recognized that conventional filesystems incur significant latency in aggregating metadata attributes of files to obtain hierarchical aggregate metric values (“metric values”) that provide a user with visibility into the filesystem. Traditionally, in tree-structured filesystems, in order to satisfy a request for metrics for a subtree of the filesystem, it has been necessary to systemically and recursively traverse an entire subtree in response to the request. The tree-structured filesystems discussed herein comprise a hierarchical tree of filesystem objects—directories and files—that include a root directory. Each filesystem object contains inode data that includes filesystem administration information. The filesystem object may be directly accessed by the filesystem via filesystem path or address, and the data contained in the inode data may be used by the filesystem to manage the hierarchy.
For example, if a user wants to know how much storage capacity is available in a particular user space, such as in a subtree of the filesystem hierarchy contained by a directory, a conventional filesystem must synchronously aggregate a file size metadata attribute value for each file in each filesystem object in the subtree to return the aggregated value to the user. In another example, if the user wants to know how much storage is dedicated to .crw files in the filesystem, conventional filesystems must synchronously check each file's type and aggregate the size of each that is a .crw file. Not only is does this create an imbalance in system performance, but it imposes a high cost in terms of number of I/O operations. More importantly, it may take hours to return the requested value to the user, depending on the size of the filesystem and its hardware components.
In addition, for conventional filesystems in which numerous users concurrently access the files, the returned values may fail to reflect any modifications to data that occur during the slow scan. Using the prior example, a second user may access the system and delete 2 TB (terabytes) of .crw files in a particular directory. However, if the scan accesses the directory containing those files prior to the deletion and returns the result subsequent to the deletion, that result is inaccurate and will fail to reflect the modified data.
To avoid latency, performance fluctuations, increased I/O costs, and other issues, the inventors have determined that it is desirable to maintain for each directory in a filesystem tree, persistent hierarchical aggregates “metric values” for file attributes of the filesystem objects contained by the subtree defined by that directory. Accordingly, a request for such metrics for a particular subtree can be satisfied without exhaustively traversing each level of the subtree of the filesystem tree structure in response.
A software and hardware facility described herein (“the facility”) addresses these issues by persistently maintaining metrics on directories at different levels within a filesystem tree. The facility may operate with respect to a distributed or monolithic filesystem, such as one maintained by a number of networked nodes in a cluster. In particular, in some embodiments, the facility aggregates attributes of filesystem objects and stores them as metric values in each directory within a tree. In some embodiments, the values stored in a directory represent data summed or otherwise aggregated from filesystem objects contained by an entire subtree of filesystem objects—directories and files—defined by that directory. In some embodiments, the metric values may represent such measures as total space consumed by a filesystem object and all the descendant objects, total number of files within an filesystem object, total data blocks used by a filesystem object and its descendant filesystem objects (if any), etc.
In some embodiments, the metrics stored in a directory containing no other directories is determined by performing an aggregation or other logical operation on attributes of the files contained by the directory. In some embodiments, the metrics stored in other directories are each determined by performing an aggregation or other logical operation on the attributes of the files contained by the directory itself, further aggregated with the corresponding metrics of the child directories. For example, metric values may provide: a most recently accessed filesystem object including all its descendant objects, a most frequently accessed filesystem object in a tree or subtree, a largest filesystem object in set of objects in a tree or subtree, and the like.
By performing in some or all of the ways described above, the facility enables rapid access to metric values based on file attributes and aggregates stored at various levels in the filesystem. Because the metric values for those attributes are maintained in each directory and are updated frequently, the facility typically does not need to traverse significant portions of the filesystem tree in order to determine corresponding metric value.
In various embodiments, the facility includes computer systems and devices including zero or more of each of the following: a central processing unit (“CPU”) for executing computer programs; a computer memory for storing programs and data while they are being used, including the facility and associated data, an operating system including a kernel, and device drivers; a persistent storage device, such as a hard drive or flash drive for persistently storing programs and data; a computer-readable media drive, such as a floppy, CD-ROM, or DVD drive, for reading programs and data stored on a computer-readable medium; and a network connection for connecting the computer system to other computer systems to send and/or receive data, such as via the Internet or another network and its networking hardware, such as switches, routers, repeaters, electrical cables and optical fibers, light emitters and receivers, radio transmitters and receivers, and the like.
While computer systems configured as described above are typically used to support the operation of the facility, those skilled in the art will appreciate that the facility may be implemented using devices of various types and configurations, and having various components. Furthermore, while various embodiments are described in terms of the environment described above, those skilled in the art will appreciate that the facility may be implemented in a variety of other environments including a single, monolithic computer system, as well as various other combinations of computer systems or similar devices connected in various ways.
The application layer of the facility exposes an instance of a web application programming interface (API) 302 (e.g., REST), a network filesystem protocol 304 (NFS), and an application layer network protocol 306 (e.g., SMB). The NFS protocol 304 is an application level protocol used to access the facility over a network, such as the Internet. The application layer network protocol 306 may be used to communicate with other nodes in the facility, accessible by the NFS 304. In some embodiments, the application layer includes protocols such as http, ftp, scp, rsync, afp, afs, or any other application layer protocol capable of providing network-level access to the facility. Any of the aforementioned protocols are considered reasonable variations to the illustrated protocols and may be used in addition to or in place of those protocols.
An OS layer implements a core filesystem 308. To access stored data, the core filesystem 308 references a location (e.g., in a protected storage unit) which is used by the address abstraction layer to retrieve the requested data. Accordingly, the address abstraction layer can include a data storage map 312 that links the referenced location to a particular node and associated disc (e.g., see
The facility also includes the kernel layer that translates the filesystem call (for the requested data) into instructions for hardware components. The hardware components may be located in a hardware layer and may include a plurality of storage devices 315 (e.g., disc1, disc2, disc3) that can be distributed across multiple storage nodes.
In some embodiments, the facility manages metric requests for filesystem objects through the web API 302. These requests are stateless in order to account for various platforms on which filesystem may be implemented. Accordingly, calls made from a client device, such as devices 102 in
Each of the metric requests within the table typically returns a value indicating an aggregate value of attributes for a collection of files contained by a directory within the facility. In some embodiments, the metric requests return integer values for aggregated attributes of a file in the facility. The capacity usage and the moving capacity usage may be in units of bytes and, in some embodiments, include 4096-byte data blocks. Some of the metrics maintained by the facility are aggregations on filesystem object attributes of types other than integer. For example, in some embodiments, the facility maintains a recent access (“raccess”) time metric based on applying a latest( )aggregation function to an access time (“atime”) attribute maintained for each descendant filesystem object. In some embodiments, the metrics are checksums.
When a metric request from a client is received for data stored by the facility, the request is eventually received at a node within the cluster. For example, the request may be received through a REST_API 302 on a REST server (not shown), which is interfaced with the local filesystem 308. The facility retrieves the requested data, such as a metric value, from a particular disc 315 on a node, provided at the address (312) reference by the filesystem 308, and then returns the requested data to the client. In some embodiments, individual metric values for a single filesystem object may be returned. When a request is received for a directory having child directories, all metric values for the entire subtree defined by the directory are returned in response to a single request from a client in some embodiments. The client can parse the values in the response message in order to identify and display a specific metric value for a particular filesystem object to the user. In various embodiments, the response message is formatted in JavaScript Object Notation (JSON), extensible markup language (XML), or other data exchange language.
In some embodiments, the initial request call (e.g., GET, PUT, POST, DELETE) from a client may include a plurality of parameters for the value of the metrics in the response. For example, in one parameter the client is able to indicate a maximum number of “directory entries” to return for a filesystem object. The directory entries may include metric values for the directory and any descendant directories or files, such as those within aa subtree defined by the directory. The returned values may include an aggregate values for the directory as well as any descendant directories. In another parameter, the client is able to provide an order to sort the returned directory entries for the directory. The order may be based on a retrieved metric value determined by aggregating an attribute of one or more files contained by the directory and any descendant directories. For example, the client may select to sort the returned directory entries based on the storage capacity used (e.g. the number of blocks in the facility) by that filesystem object and descendent objects. This parameter mainly pertains to sorting the directory entries corresponding to descendant directories of the requested directory since the requested directory includes the aggregate value of blocks used by each returned directory entry. Additional parameters may include.
In particular, each filesystem object that is a directory 402, 404, 406, 408, 410, and 412 contains metadata and other data unique to the directory which characterizes files in that directory. The other unique data includes metric values of aggregated attributes for each file in, or “contained” by, the directory, along with information viable to access the contents of each of those files.
Each filesystem object that is a file 414 in the filesystem tree also contains metadata and one or more attributes characterizing that file, which may be aggregated and stored as a metric value in the directory under which that file is located in the filesystem tree. The metadata, aggregated values and other attributes may be stored in an inode portion of the filesystem object, which is later discussed with reference to
For filesystem objects which are directories, the inode data 510 includes both the attributes of the associated directory and current metric values of aggregated attributes for each filesystem object contained by that directory. For example, the inode portion of a directory corresponding to the directory's attributes includes data such as an owner, permissions, number of links to the directory, the size of the directory in bytes or blocks (my_cap_usage), file count in the associated directory (my_num_files), most recent access time (atime), minimum access time, number of times accessed, creation time, modification time, and change (edit) time. The inode portion of the directory corresponding to the aggregate metric values includes data such as, for example, total number of files in and contained by the directory (num_files), total block usage by the directory and files contained by that directory (capacity_usage), total number of directories contained by the directory (num_directories), and various other metrics within the scope of the art. In some embodiments, the inode data also includes metric values corresponding to the Input/Output (I/O) operations performed on the associated directory (or any filesystem object contained therein) and the resource consumption to perform those operations. In some embodiments, the operations include a number of accesses, number of disk actions for accesses, number of memory accesses for accesses, and number of blocks consumed.
For filesystem objects which are files, the inode data 510 may indicate file attributes such as a last access date (file_access), a name (file_name), a type (file_type), and a size (file_size). The file access time may include a date and/or timestamp indicating the last time the file was accessed by a client. The file type may indicate the format in which the file is stored. The file size may indicate the number of bytes, kilobytes or data blocks used to store the file.
The aggregate metrics stored in the inode data for each filesystem object reflect a current state of the files or file contained by that filesystem object, including the corresponding attributes of those files. The aggregate metrics stored in the inode data for each directory also include aggregated values for file attributes of each file contained by that directory. Accordingly, each time that a file contained by a directory or descendant directory of that directory changes, the aggregate metrics in the inode data of the directory are also timely updated to reflect those changes. For example, to reflect the current state of attributes for files contained in a directory of a filesystem tree, the metric values stored in the inode data may be updated (i.e., reconciled) each time that an change is made to a file in that filesystem tree. Accordingly, there are times when updates to one directory or file may not be immediately reflected in all of that directory or file's ancestors. If the updates have not been applied to a particular ancestor directory, the unreconciled data for that directory is reflected in a descendant filesystem object from where the change originated. If the updates have been applied to that directory, an unreconciled value and reconciled value in the descendant filesystem object from where the change originated can reflect it. For example, in some embodiments, if the unreconciled value and reconciled value are equal, this indicates that the metric values in the parent directory's inode data fully reflect the filesystem object's metrics. Maintaining knowledge of whether the attributes for a filesystem object are current or not can provide additional visibility into that filesystem tree. Accordingly, a reconciled value and an unreconciled value corresponding to each attribute in a directory may be stored in the inode data. In some embodiments, the metric values for any given directory are not returned to a client if a descendant directory indicates that there is unreconciled data requiring an update in that directory.
Each change or update to an individual file in a filesystem tree is reflected in the changes to the attributes stored in the inode data of that filesystem object and in any ancestor directories with which that filesystem object may be associated. This updating may be performed up the filesystem tree until the metric values corresponding the changed attribute stored in the root directory's inode data are updated. In some embodiments, the facility asynchronously updates each filesystem object with respect to a received change or alteration to a file stored in the filesystem tree. In some embodiments, the facility systematically traverses the filesystem tree to update each filesystem object. In some such embodiments, the facility continuously updates filesystem objects in a filesystem tree to reflect changes to any file or directory contained in that filesystem tree. As previously mentioned, in some embodiments, the filesystem objects in the filesystem tree are synchronously updated with respect to received changes or alterations to files stored in those filesystem trees. So, updates to filesystem objects in the facility may only be performed each time a change to a filesystem object is received for that respective tree. Various other methods for determining when to update filesystem objects and corresponding inode data stored in those filesystem objects are further discussed with reference to
In some embodiments, the inode data 510 includes a value of a metric unreconciled to a parent directory, such as an unreconciled to parent block count and reconciled to parent block count which, when equal, indicate that all updates to the parent directory containing that filesystem object are current.
For example, if an attribute of a file (e.g., file_size) is updated in response to changes made to that file, then the updated file_size attribute will also need to be reflected in the metric corresponding to that file_size attribute in the parent directory and in any ancestor directory of that file. To indicate when the updated attribute is not yet reflected in the corresponding metric of the parent directory, a value of the metric unreconciled in the parent directory indicates a different value than the metric reconciled to parent directory. Each attribute of the file for which a metric value is stored in a parent directory can maintain these unreconciled to parent and reconciled to parent values. When these values differ, it indicates to the facility that the parent directory of that file needs to be updated by the difference between the values during a subsequent I/O operation.
In some embodiments, the facility maintains a separate “list” of filesystem objects having unreconciled data in a filesystem tree instead of, or in addition to, indicating the value of the unreconciled to parent data in the inode data of each filesystem object. In some embodiments, the facility maintains this separate list in volatile memory. Maintaining this list and performing a reconciliation process due to block count, or other attribute changes in a filesystem object, are further discussed with reference to
Referring back to
In
For a large filesystem tree structure including many directories, performing an aggregation operation on all filesystem objects in that filesystem tree can consume considerable processing resources and elapsed time to determine a metric value for a given directory. However, as previously discussed, these additional metrics that include aggregate values of file attributes, are stored in the inode data for each directory. The inode data may be updated each time a filesystem object is updated. This inode data maintains a relatively accurate indication of the attributes for a given directory, even if recent changes to one or more files in that directory are not yet reflected. Accordingly, this allows for rapid and easy access to current filesystem attributes, which may facilitate performance and allocation of resources in both large and scalable filesystems
The filesystem tree in each of
Once the corresponding metrics in the inode data for FILE2724 have been updated in directory /D 716, the next associated ancestor filesystem object in the file path from FILE2724 to the root directory (not shown), is added to the set 722 of dirty filesystem objects being tracked for updating. So, after reconciliation is performed in
In various embodiments, the facility stores the set 722 of dirty filesystem objects either as persistent data (on-disk) or volatile data (in-memory), each of which has its advantages and disadvantages. For example, where the set 722 stored in persistent storage, no initial inode scan is necessary at startup, but updates to each filesystem object are slower than when the set 722 is maintained in volatile storage. Where the set 722 is stored in volatile storage, normal operations are performed faster, but an initial inode scan is required at startup.
In some embodiments, if more than one filesystem object is located in the set 722, the filesystem object having the lowest rank (e.g., farthest file path length from the root directory) in the filesystem tree may be updated first such that its attributes indicate the updated cap_usage value. This ensures that all updates to filesystem objects in the filesystem tree are not repeated, which improves the efficiency of the facility. The filesystem objects within the set 722 of filesystem objects to be updated may be reconciled in an iterative process. Additionally, the filesystem objects in the set 722 may be sorted in order to remove duplicates and to update entries having the lowest rank first. This is done in order to avoid unnecessary and repeated updates to a filesystem object whose descendent also is included in the set 722.
As discussed previously, any updates to a filesystem object may be reflected in hierarchical aggregates indicated by the metric values stored in the inode data for each filesystem object. Once a filesystem object is updated, the filesystem object's entry in the set 722 is removed and the filesystem object's parent directory is added to the set 722. Additionally, the reconciled and unreconciled values for that attribute are updated to reflect the unreconciled data in that filesystem object's parent directory. The metric values indicated in each filesystem object may be updated in a direct path of the directories from the updated file to the root directory. Thus, only the filesystem objects in the path of the file to the root directory need be updated. Unaffected filesystem objects and subtrees are therefore not traversed or updated. So, system resource consumption may be reduced, relative to the time required for iterative scans of the full filesystem tree, and metric values of filesystem object attributes may be updated more quickly since system resources are not allocated to perform unnecessary tasks.
In some embodiments, where the facility receives a request for metric values in a “dirty” filesystem object (i.e., in set 722, or a descendant thereof in set 722), the facility updates only the filesystem object (and any descendants) in the set 722 prior to servicing the request. In some embodiments, the facility updates all filesystem objects in the set 722 prior to servicing a request by a user. In such embodiments, the facility can ensure the most up-to-date metrics for the request. To alternatively determine whether a filesystem object (or descendant thereof) is not completely current, the facility can also check the reconciled and unreconciled count for each descendant of that filesystem object. If any counts differ, the facility can then either update each of the descendants to the requested filesystem object prior to servicing the request, or update the entire tree to the root directory, as previously mentioned,
As shown in
Once directories /B 708 and /C 710 are processed, as illustrated in
An alternative approach to update the aggregate metric value in, for example, directory /A 702 (in
Accordingly, in some embodiments, the facility updates a directory's aggregated metric value for a specific attribute by summing a difference between the reconciled and unreconciled values in a child directory with the metric value previously stored in that directory. In another example, referring back to
Though the aforementioned embodiments maintain a separate list (e.g., the set of filesystem objects 722) to update metrics in the facility, the metrics can be updated by other methods which do not include such a list or associated filesystem object ranks. For example, in some embodiments, the facility ensures the currency of all of the metrics in the entire filesystem tree each time a filesystem object is updated. In effect, each time a filesystem object is updated, the system traverses the filesystem tree in which that filesystem object is stored to the root directory and updates the metrics in each directory of the direct path from the filesystem object location in the filesystem tree until the root directory is updated to also reflect the update. In some embodiments, an asynchronous, or background process continually traverses trees accumulating and updating metric values for file attributes in the filesystem objects.
To handle filesystem object updates such as deletion of a file or directory from a filesystem tree, the reconciled and unreconciled data for each ancestor directory can be updated in a similar manner as previously described with reference to
For filesystem object attributes not having integer values, metric values can be updated by aggregation functions (e.g., latest( )) which compare a prior value of that respective value in each filesystem object being updated. For example, the attribute can include an raccess attribute identifying a most recent access date/time (“atime”) of the filesystem object. The facility can compare the previous raccess date in a directory with an updated raccess date received from a descendant filesystem object, as opposed to looking at the raccess dates of all of the descendants in a subtree defined by that directory. For certain metrics and/or aggregation functions, a new aggregation can be performed across all filesystem objects in a tree or subtree in order to update metric values.
In some embodiments, the facility retrieves information about characteristics of a node, a cluster, or the entire filesystem from statistical sampling of a filesystem tree. The facility chooses the fraction of samples taken from files in each directory of the filesystem tree in such a way as to achieve a sample population that is appropriately distributed across the filesystem tree. In some embodiments, the facility determines the overall number of samples taken to satisfy a desired confidence level in the results.
To avoid the aforementioned errors, the facility uses a fair sampling approach in which it uses the metric values stored in the inode data of the directories to weight these directories in a manner that determines the likelihood that each file sample gets taken from each directory. By weighting the directories in this way, the facility achieves an improved representative sampling of the composition of the data in the filesystem tree structure. Additionally, since any attribute of a filesystem object can be utilized to weight the directories, the representative sampling is improved for each individual filesystem attribute.
To perform fair sampling on the filesystem subtree 800, the facility uses, for example, a NUM_FILES attribute associated with each directory to establish sampling frequency weights for each directory of the filesystem tree. The NUM_FILES value is the total number of files associated with a directory summed with the files in all descendant directories. Using this NUM_FILES attribute therefore answers the question, “what percentage of files are music files?” So, the total number of files to be sampled between the two directories /USER1808 and /USER2812 for the root directory /USR 802 is 1004 since the NUM_FILES attribute 806 for the root directory indicates “1005” and the my_num_files attribute for the root directory indicates “1”. By storing the aggregate file count in the inode data (e.g., 816, 820) of each directory, the system can quickly query those directories and determine that the files under directory /USER1808 should be sampled “4” times out of every “1004” samples, or approximately 0.4% of the time, and the files under directory /USER2812 should be sampled “1000” times out of every “1004” samples, or 99.6% of the time. If one hundred samples are taken in this manner, the sample results would indicate ˜99% of the files are music files in the root directory /USR 802. This result is more accurate than the 50% music files calculated without using the metric values corresponding the aggregated attributes of the files contained by the root directory /USR 802. This type of weighted sampling may be applied to any attribute of files within a filesystem tree in the facility and may facilitate improved visibility into the files contained by that tree. For example, weighted sampling may be used to determine a file size for two directories including unbalanced average file sizes, e.g., one includes .mp4 files and the other includes .doc files.
In some embodiments, the graphical user interface indicates metric values for operations performed in a directory. For example, a listing of the top I/Os per second (“IOPS”) activity 916 within the selected directory 904 is displayed. Each of these directory entries includes the path of the file at which the I/O is performed along with the number of I/O operations performed per second with respect to that file. A user can select parameters for returning the IOPS activity as well. For example, in some embodiments, the user can elect to view any IOPS namespace activity 920 related to reads and/or writes to namespaces or directories in the selected directory. In other embodiments, the user may elect to view IOPS file activity 922 related to files contained in the directories of the root directory.
The graphical representation of the metric values can include the directories of first-level (e.g., rank 1) that are children of the root directory “/”, represented by the columns 918 of the graphic. The height (y-axis) 924, 926, 928, and 930, of each directory rectangle reflects the aggregate number of files or storage capacity used by that directory in relation to its parent directory. Accordingly, some of the smaller-size directories may not be visible in the graphical representation of the root directory shown in
By providing enhanced visibility into the attributes of a data storage filesystem aggregated and stored at different levels in the filesystem hierarchy may facilitate management of the filesystem. It may be desirable to acquire analytics on portions or the entirety of a data storage filesystem tree. Analytics may relate to system capacity such as space usage by subdirectories, file counts, what is the newest/oldest file in a directory/tree, what file is most/least accessed, a histogram of file sizes, a breakdown of characteristics by file type such as space usage, file count, and the like. Other analytics may relate to performance such as transfer rates, I/O operations such as total operations, timing of I/O operations, latency and the like. This information may be used by system administrators for purposes such as: allocation of most frequently accessed data to data storage devices having a fast response time; customized backups based on date of most recent modification or change; resource planning based on total block usage by filesystem; and the like.
Live metrics of aggregate file attributes are therefore stored by the facility in the inode of a directory in the filesystem tree structure. The metric values are live in the sense that they are updated with respect to received updates for any filesystem object within the tree structure. Though each metric value may not reflect the most recent update to a particular directory, those metric values are current, or relatively current. Accordingly, the requested metric values are returned with a very low degree of latency unlike external systems. In some embodiments, the metrics are gathered from a recent system snapshot, where snapshot frequency and resulting latency may be set by a system administrator.
In some embodiments, in addition to storing metrics in the inodes of directories that are aggregated from the filesystem objects of the subtree defined by each directory, the facility also stores metrics in the inodes of files that relate solely to each file. The file metrics are copies of the file's attributes. In some embodiments, files can be added to the set of filesystem objects to be updated, as discussed in
In various embodiments, this information may facilitate the understanding of additional filesystem characteristics that may not be embedded in metadata such as: what percent of space within the filesystem is consumed by particular types of file (e.g., music files), how many files are owned or controlled by, or were created by, a particular user, information relative to additional user specified attributes (e.g., client or patient names) which may be embedded into file name structure, tags in file header data and the like.
From the foregoing, it will be appreciated that specific embodiments of the invention have been described herein for purposes of illustration, but that various modifications may be made without deviating from the scope of the invention. Accordingly, the invention is not limited except as by the appended claims.
This application claims the benefit of provisional application Nos. 61/982,926 and 61/982,931, both filed on Apr. 23, 2014, each of which is hereby incorporated by reference in its entirety.
Number | Name | Date | Kind |
---|---|---|---|
5165031 | Pruul et al. | Nov 1992 | A |
5283875 | Gibson et al. | Feb 1994 | A |
5319773 | Britton et al. | Jun 1994 | A |
5410684 | Ainsworth et al. | Apr 1995 | A |
5410719 | Shackleford | Apr 1995 | A |
5442561 | Yoshizawa | Aug 1995 | A |
5953719 | Kleewein et al. | Sep 1999 | A |
6236996 | Bapat et al. | May 2001 | B1 |
6385641 | Jiang et al. | May 2002 | B1 |
6415283 | Conklin | Jul 2002 | B1 |
6496944 | Hsiao et al. | Dec 2002 | B1 |
6560615 | Zayas et al. | May 2003 | B1 |
6772435 | Thexton et al. | Aug 2004 | B1 |
6772735 | Thexton et al. | Aug 2004 | B2 |
6874130 | Baweja et al. | Mar 2005 | B1 |
6892211 | Hitz et al. | May 2005 | B2 |
6965903 | Agarwal et al. | Nov 2005 | B1 |
6965936 | Wipfel et al. | Nov 2005 | B1 |
7165158 | Yagawa | Jan 2007 | B1 |
7213040 | Stokes et al. | May 2007 | B1 |
7330948 | Deguchi et al. | Feb 2008 | B2 |
7467333 | Keeton et al. | Dec 2008 | B2 |
7594138 | Abdulvahid | Sep 2009 | B2 |
7636743 | Erofeev | Dec 2009 | B2 |
7693876 | Hackworth et al. | Apr 2010 | B2 |
7757056 | Fair | Jul 2010 | B1 |
7844580 | Srivastava et al. | Nov 2010 | B2 |
7933870 | Webster | Apr 2011 | B1 |
7937421 | Mikesell et al. | May 2011 | B2 |
7962709 | Agrawal | Jun 2011 | B2 |
7966293 | Owara et al. | Jun 2011 | B1 |
8027827 | Bitar et al. | Sep 2011 | B2 |
8046378 | Zhuge et al. | Oct 2011 | B1 |
8108429 | Sim-Tang et al. | Jan 2012 | B2 |
8296312 | Leung | Oct 2012 | B1 |
8341540 | Haynes et al. | Dec 2012 | B1 |
8355407 | Wookey et al. | Jan 2013 | B2 |
8364648 | Sim-Tang | Jan 2013 | B1 |
8423733 | Ozdemir | Apr 2013 | B1 |
8423821 | Keith, Jr. | Apr 2013 | B1 |
8448170 | Wipfel et al. | May 2013 | B2 |
8463825 | Harty et al. | Jun 2013 | B1 |
8489656 | Erofeev | Jul 2013 | B2 |
8504733 | Iyer et al. | Aug 2013 | B1 |
8515911 | Zhou et al. | Aug 2013 | B1 |
8612404 | Bone et al. | Dec 2013 | B2 |
8645323 | Jackiewicz et al. | Feb 2014 | B2 |
8661447 | Olliff et al. | Feb 2014 | B1 |
8725691 | Natanzon | May 2014 | B1 |
8776050 | Plouffe et al. | Jul 2014 | B2 |
8782655 | Blanding et al. | Jul 2014 | B2 |
8806154 | Gupta et al. | Aug 2014 | B1 |
8838887 | Burke et al. | Sep 2014 | B1 |
8838931 | Marshak et al. | Sep 2014 | B1 |
8849764 | Long et al. | Sep 2014 | B1 |
8849809 | Seshadri | Sep 2014 | B1 |
8868797 | Kirac et al. | Oct 2014 | B1 |
8924364 | Zhong et al. | Dec 2014 | B1 |
8972694 | Dolan et al. | Mar 2015 | B1 |
9015214 | Nishida et al. | Apr 2015 | B2 |
9026765 | Marshak et al. | May 2015 | B1 |
9031994 | Cao et al. | May 2015 | B1 |
9032170 | Vaghani et al. | May 2015 | B2 |
9047017 | Dolan et al. | Jun 2015 | B1 |
9141633 | Li et al. | Sep 2015 | B1 |
9143379 | Berger et al. | Sep 2015 | B1 |
9158653 | Gold | Oct 2015 | B2 |
9171145 | Dash et al. | Oct 2015 | B2 |
9244975 | Das et al. | Jan 2016 | B2 |
9244976 | Zhang et al. | Jan 2016 | B1 |
9361187 | Jarvis | Jun 2016 | B2 |
9384252 | Akirav et al. | Jul 2016 | B2 |
9459804 | Natanzon et al. | Oct 2016 | B1 |
9501487 | Yuan et al. | Nov 2016 | B1 |
9547560 | Lee | Jan 2017 | B1 |
9600193 | Ahrens et al. | Mar 2017 | B2 |
9727432 | Cutforth et al. | Aug 2017 | B1 |
9747171 | Beeken et al. | Aug 2017 | B2 |
9753782 | Fang et al. | Sep 2017 | B2 |
9753932 | Brow et al. | Sep 2017 | B1 |
9753987 | Dolan et al. | Sep 2017 | B1 |
9785377 | Shin et al. | Oct 2017 | B2 |
10140185 | Lopez et al. | Nov 2018 | B1 |
10261868 | Brown et al. | Apr 2019 | B2 |
10275493 | Mostak | Apr 2019 | B1 |
10303561 | Beeken et al. | May 2019 | B2 |
10318401 | Rothschilds et al. | Jun 2019 | B2 |
10339101 | Gupta | Jul 2019 | B1 |
10423609 | Strauss | Sep 2019 | B1 |
10437509 | Alexeev et al. | Oct 2019 | B1 |
10447779 | Dieterich et al. | Oct 2019 | B2 |
10474635 | Unger et al. | Nov 2019 | B1 |
10534758 | Carpenter et al. | Jan 2020 | B1 |
10540662 | Barlett et al. | Jan 2020 | B2 |
10545986 | Tappan et al. | Jan 2020 | B2 |
10621147 | Liang et al. | Apr 2020 | B1 |
10664408 | Chatterjee | May 2020 | B1 |
10678663 | Sharma et al. | Jun 2020 | B1 |
10725977 | Chmiel et al. | Jul 2020 | B1 |
10795796 | Bai et al. | Oct 2020 | B1 |
10860546 | Ye et al. | Dec 2020 | B2 |
11023535 | Greenwood et al. | Jun 2021 | B1 |
11157458 | Carter et al. | Oct 2021 | B1 |
20010039622 | Hitz et al. | Nov 2001 | A1 |
20020059439 | Arroyo et al. | May 2002 | A1 |
20020065835 | Fujisaki | May 2002 | A1 |
20020083073 | Vaidya et al. | Jun 2002 | A1 |
20020099691 | Lore et al. | Jul 2002 | A1 |
20020178271 | Graham et al. | Nov 2002 | A1 |
20030033308 | Patel et al. | Feb 2003 | A1 |
20030145009 | Forman et al. | Jul 2003 | A1 |
20030177379 | Hori et al. | Sep 2003 | A1 |
20030182313 | Federwisch et al. | Sep 2003 | A1 |
20040030727 | Armangau et al. | Feb 2004 | A1 |
20040093474 | Lin et al. | May 2004 | A1 |
20040098425 | Wiss et al. | May 2004 | A1 |
20040153479 | Mikesell et al. | Aug 2004 | A1 |
20040255048 | Lev Ran et al. | Dec 2004 | A1 |
20050015674 | Haugh | Jan 2005 | A1 |
20050027748 | Kisley | Feb 2005 | A1 |
20050065986 | Bixby et al. | Mar 2005 | A1 |
20050091663 | Bagsby | Apr 2005 | A1 |
20050114593 | Cassell et al. | May 2005 | A1 |
20050114726 | Ouchi | May 2005 | A1 |
20050119996 | Ohata et al. | Jun 2005 | A1 |
20050154866 | Steely, Jr. et al. | Jul 2005 | A1 |
20050195660 | Kavuri et al. | Sep 2005 | A1 |
20050223019 | Das et al. | Oct 2005 | A1 |
20060004890 | Semple et al. | Jan 2006 | A1 |
20060053139 | Marzinski et al. | Mar 2006 | A1 |
20060089982 | Abbott et al. | Apr 2006 | A1 |
20060090036 | Zohar et al. | Apr 2006 | A1 |
20060123005 | Burnett et al. | Jun 2006 | A1 |
20060173842 | Horvitz et al. | Aug 2006 | A1 |
20060271604 | Shoens | Nov 2006 | A1 |
20070011302 | Groner et al. | Jan 2007 | A1 |
20070027985 | Ramany et al. | Feb 2007 | A1 |
20070100855 | T. Kohl | May 2007 | A1 |
20070118561 | Idicula et al. | May 2007 | A1 |
20070143371 | Kottomtharayil | Jun 2007 | A1 |
20080028006 | Liu et al. | Jan 2008 | A1 |
20080059399 | DeLorme et al. | Mar 2008 | A1 |
20080059541 | Fachan et al. | Mar 2008 | A1 |
20080082593 | Komarov | Apr 2008 | A1 |
20080162608 | Torii et al. | Jul 2008 | A1 |
20080172366 | Hanne et al. | Jul 2008 | A1 |
20080228772 | Plamondon | Sep 2008 | A1 |
20080250357 | Lee et al. | Oct 2008 | A1 |
20080256474 | Chakra et al. | Oct 2008 | A1 |
20080270469 | Myerson et al. | Oct 2008 | A1 |
20080270928 | Chakra et al. | Oct 2008 | A1 |
20080282244 | Wu et al. | Nov 2008 | A1 |
20080288306 | MacIntyre et al. | Nov 2008 | A1 |
20080301256 | McWilliams et al. | Dec 2008 | A1 |
20080313217 | Dunsmore et al. | Dec 2008 | A1 |
20090077087 | Urano et al. | Mar 2009 | A1 |
20090138500 | Yuan et al. | May 2009 | A1 |
20090199190 | Chen et al. | Aug 2009 | A1 |
20090222509 | King et al. | Sep 2009 | A1 |
20090240539 | Slawson et al. | Sep 2009 | A1 |
20090274047 | Kruys et al. | Nov 2009 | A1 |
20090319566 | Wald et al. | Dec 2009 | A1 |
20090327642 | Ogihara et al. | Dec 2009 | A1 |
20100030825 | Matsuzawa et al. | Feb 2010 | A1 |
20100036895 | Boyd et al. | Feb 2010 | A1 |
20100088317 | Bone et al. | Apr 2010 | A1 |
20100161557 | Anderson et al. | Jun 2010 | A1 |
20100179959 | Shoens | Jul 2010 | A1 |
20100217948 | Mason et al. | Aug 2010 | A1 |
20100241668 | Susanto | Aug 2010 | A1 |
20100281214 | Jernigan, IV | Nov 2010 | A1 |
20100287512 | Gan et al. | Nov 2010 | A1 |
20110039622 | Levenson | Feb 2011 | A1 |
20110066668 | Guarraci | Mar 2011 | A1 |
20110082836 | Wang et al. | Apr 2011 | A1 |
20110125799 | Kandasamy et al. | May 2011 | A1 |
20110125973 | Lev et al. | May 2011 | A1 |
20110161381 | Wang et al. | Jun 2011 | A1 |
20110161964 | Piazza et al. | Jun 2011 | A1 |
20110196833 | Drobychev et al. | Aug 2011 | A1 |
20110196899 | Hughes et al. | Aug 2011 | A1 |
20110202925 | Banerjee et al. | Aug 2011 | A1 |
20110246724 | Marathe et al. | Oct 2011 | A1 |
20120036463 | Krakovsky | Feb 2012 | A1 |
20120066179 | Saika | Mar 2012 | A1 |
20120096059 | Shimizu et al. | Apr 2012 | A1 |
20120136843 | Bone et al. | May 2012 | A1 |
20120151438 | Bach et al. | Jun 2012 | A1 |
20120166478 | Das et al. | Jun 2012 | A1 |
20120179886 | Prahlad et al. | Jul 2012 | A1 |
20120216005 | Naito et al. | Aug 2012 | A1 |
20120317079 | Shoens et al. | Dec 2012 | A1 |
20130019072 | Strasser et al. | Jan 2013 | A1 |
20130024609 | Gorobets et al. | Jan 2013 | A1 |
20130073819 | Havewala et al. | Mar 2013 | A1 |
20130086121 | Preslan | Apr 2013 | A1 |
20130091168 | Bhave et al. | Apr 2013 | A1 |
20130110787 | Garimella et al. | May 2013 | A1 |
20130191355 | Bone et al. | Jul 2013 | A1 |
20130212579 | Ben-Shaul et al. | Aug 2013 | A1 |
20130227236 | Flynn et al. | Aug 2013 | A1 |
20130254163 | Savage et al. | Sep 2013 | A1 |
20130304903 | Mick et al. | Nov 2013 | A1 |
20130311454 | Ezzat | Nov 2013 | A1 |
20130318194 | Timbs | Nov 2013 | A1 |
20130325806 | Bachar et al. | Dec 2013 | A1 |
20130325808 | Bachar et al. | Dec 2013 | A1 |
20130339406 | Kanfi | Dec 2013 | A1 |
20140006354 | Parkinson et al. | Jan 2014 | A1 |
20140040199 | Golab et al. | Feb 2014 | A1 |
20140040693 | Kim et al. | Feb 2014 | A1 |
20140059158 | Chen et al. | Feb 2014 | A1 |
20140095249 | Tarakad et al. | Apr 2014 | A1 |
20140101389 | Nellans | Apr 2014 | A1 |
20140156956 | Ezra | Jun 2014 | A1 |
20140181441 | Kottomtharayil et al. | Jun 2014 | A1 |
20140189267 | Qi et al. | Jul 2014 | A1 |
20140237193 | Shivashankaraiah | Aug 2014 | A1 |
20140258609 | Cui et al. | Sep 2014 | A1 |
20140280485 | A Hummaida et al. | Sep 2014 | A1 |
20140281307 | Peterson | Sep 2014 | A1 |
20140281411 | Abdallah | Sep 2014 | A1 |
20140344222 | Morris et al. | Nov 2014 | A1 |
20140372384 | Long et al. | Dec 2014 | A1 |
20140372607 | Gladwin | Dec 2014 | A1 |
20140373032 | Merry et al. | Dec 2014 | A1 |
20150006226 | Smith et al. | Jan 2015 | A1 |
20150012666 | Pannese et al. | Jan 2015 | A1 |
20150067086 | Adriaens et al. | Mar 2015 | A1 |
20150067142 | Renkema | Mar 2015 | A1 |
20150106145 | Hamilton et al. | Apr 2015 | A1 |
20150135331 | Das | May 2015 | A1 |
20150143026 | Reddy et al. | May 2015 | A1 |
20150149736 | Kwon et al. | May 2015 | A1 |
20150186217 | Eslami Sarab | Jul 2015 | A1 |
20150186529 | Rope et al. | Jul 2015 | A1 |
20150193347 | Kluesing et al. | Jul 2015 | A1 |
20150215405 | Baek et al. | Jul 2015 | A1 |
20150234716 | Brooker et al. | Aug 2015 | A1 |
20150234879 | Baldwin et al. | Aug 2015 | A1 |
20150242263 | Klose | Aug 2015 | A1 |
20150248253 | Kim et al. | Sep 2015 | A1 |
20150278282 | Sardina et al. | Oct 2015 | A1 |
20150347126 | Tibble et al. | Dec 2015 | A1 |
20160034356 | Aron et al. | Feb 2016 | A1 |
20160110105 | Karamcheti et al. | Apr 2016 | A1 |
20160139836 | Nallathambi et al. | May 2016 | A1 |
20160147654 | Zhao et al. | May 2016 | A1 |
20160224430 | Long et al. | Aug 2016 | A1 |
20160239185 | Balimidi et al. | Aug 2016 | A1 |
20160246816 | Abiri et al. | Aug 2016 | A1 |
20160269501 | Usgaonkar et al. | Sep 2016 | A1 |
20160292013 | Li et al. | Oct 2016 | A1 |
20160292429 | Manville et al. | Oct 2016 | A1 |
20160306810 | Ni et al. | Oct 2016 | A1 |
20160314046 | Kumarasamy | Oct 2016 | A1 |
20160335278 | Tabaaloute et al. | Nov 2016 | A1 |
20160357677 | Hooker et al. | Dec 2016 | A1 |
20160359859 | Capone | Dec 2016 | A1 |
20160371297 | Okun | Dec 2016 | A1 |
20160380878 | Bugenhagen et al. | Dec 2016 | A1 |
20170024152 | Bhagi et al. | Jan 2017 | A1 |
20170032006 | Anglin et al. | Feb 2017 | A1 |
20170046143 | Kochhar et al. | Feb 2017 | A1 |
20170052898 | Ash et al. | Feb 2017 | A1 |
20170078164 | Hildebrand et al. | Mar 2017 | A1 |
20170091046 | Bangalore et al. | Mar 2017 | A1 |
20170118287 | Beck | Apr 2017 | A1 |
20170123883 | Hail | May 2017 | A1 |
20170123935 | Pandit et al. | May 2017 | A1 |
20170163728 | Chawla et al. | Jun 2017 | A1 |
20170201582 | Zhang et al. | Jul 2017 | A1 |
20170270180 | State | Sep 2017 | A1 |
20170286455 | Li et al. | Oct 2017 | A1 |
20170316321 | Whitney et al. | Nov 2017 | A1 |
20170336983 | Roh et al. | Nov 2017 | A1 |
20170344598 | Constantinescu et al. | Nov 2017 | A1 |
20170344905 | Hack et al. | Nov 2017 | A1 |
20170366609 | Dieterich et al. | Dec 2017 | A1 |
20180040029 | Zeng et al. | Feb 2018 | A1 |
20180059946 | Kunii et al. | Mar 2018 | A1 |
20180089031 | Mitkar et al. | Mar 2018 | A1 |
20180101546 | Krasnow et al. | Apr 2018 | A1 |
20180129443 | Karve et al. | May 2018 | A1 |
20180203798 | Hughes et al. | Jul 2018 | A1 |
20180276078 | Blea et al. | Sep 2018 | A1 |
20180288057 | Varadamma et al. | Oct 2018 | A1 |
20180314423 | Gong et al. | Nov 2018 | A1 |
20180365115 | Fang et al. | Dec 2018 | A1 |
20190087770 | Walsh et al. | Mar 2019 | A1 |
20190095112 | Lingarajappa | Mar 2019 | A1 |
20190102700 | Babu et al. | Apr 2019 | A1 |
20190163589 | McBride et al. | May 2019 | A1 |
20190163591 | Ouyang et al. | May 2019 | A1 |
20190196879 | Dutta et al. | Jun 2019 | A1 |
20190212921 | Liang et al. | Jul 2019 | A1 |
20190220189 | Yang et al. | Jul 2019 | A1 |
20190286521 | Okpotse et al. | Sep 2019 | A1 |
20190286528 | Wu et al. | Sep 2019 | A1 |
20190384640 | Swamy et al. | Dec 2019 | A1 |
20200004977 | Araujo et al. | Jan 2020 | A1 |
20200026438 | Peleg et al. | Jan 2020 | A1 |
20200034077 | Haravu et al. | Jan 2020 | A1 |
20200142878 | Varadarajan et al. | May 2020 | A1 |
20200174692 | Dave et al. | Jun 2020 | A1 |
20200409583 | Kusters et al. | Dec 2020 | A1 |
20210004355 | Iwase | Jan 2021 | A1 |
20210042263 | Zdornov et al. | Feb 2021 | A1 |
20210042282 | Cseri et al. | Feb 2021 | A1 |
20210056074 | Zhu | Feb 2021 | A1 |
20210110150 | Kakrana et al. | Apr 2021 | A1 |
20210191650 | Vansteenkiste et al. | Jun 2021 | A1 |
20210240393 | Jo et al. | Aug 2021 | A1 |
20210240678 | Patel et al. | Aug 2021 | A1 |
20210311841 | McNutt | Oct 2021 | A1 |
20210374105 | Kodama et al. | Dec 2021 | A1 |
20220019361 | Kurata et al. | Jan 2022 | A1 |
20220091739 | Kumar et al. | Mar 2022 | A1 |
Number | Date | Country |
---|---|---|
1217551 | Jun 2002 | EP |
1498829 | Jan 2005 | EP |
1999044145 | Sep 1999 | WO |
0072201 | Nov 2000 | WO |
2009007250 | Jan 2009 | WO |
2012029259 | Mar 2012 | WO |
Entry |
---|
Office Communication for U.S. Appl. No. 14/859,114 dated Jun. 26, 2019, pp. 1-27. |
Office Communication for U.S. Appl. No. 16/434,157 dated Jul. 25, 2019, pp. 1-16. |
Office Communication for U.S. Appl. No. 14/595,043 dated Aug. 27, 2019, pp. 1-34. |
International Search Report and Written Opinion for application PCT/US2016038242 dated Oct. 11, 2016, pp. 1-11. |
Office Communication for U.S. Appl. No. 15/957,809 dated Jan. 24, 2019, pp. 1-28. |
Office Communication for U.S. Appl. No. 16/226,587 dated Feb. 25, 2019, pp. 1-65. |
Office Communication for U.S. Appl. No. 15/473,051 dated Jun. 30, 2017, pp. 1-22. |
Office Communication for U.S. Appl. No. 16/004,182 dated Mar. 5, 2019, pp. 1-46. |
Office Communication for U.S. Appl. No. 16/004,182 dated Aug. 23, 2018, pp. 1-46. |
Office Communication for U.S. Appl. No. 16/004,208 dated Aug. 27, 2018, pp. 1-11. |
European Communication and European Search Report for European Application No. 18155779.4, dated Apr. 17, 2018, pp. 1-15. |
Office Communication for U.S. Appl. No. 16/262,756 dated Aug. 5, 2019, pp. 1-48. |
Office Communication for U.S. Appl. No. 16/262,756 dated Apr. 2, 2019, pp. 1-40. |
Office Communication for U.S. Appl. No. 16/262,756 dated Oct. 25, 2019, pp. 1-6. |
Office Communication for U.S. Appl. No. 16/775,041 dated Mar. 11, 2020, pp. 1-8. |
Office Communication for U.S. Appl. No. 16/228,716 dated Jun. 24, 2019, pp. 1-28. |
Office Communication for U.S. Appl. No. 16/231,354 dated Jul. 10, 2019, pp. 1-19. |
Office Communication for U.S. Appl. No. 16/226,587 dated Aug. 5, 2019, pp. 1-55. |
Office Communication for U.S. Appl. No. 16/228,716 dated Feb. 28, 2019, pp. 1-27. |
Office Communication for U.S. Appl. No. 16/231,354 dated Mar. 25, 2019, pp. 1-19. |
Office Communication for U.S. Appl. No. 16/262,790 dated Aug. 23, 2019, pp. 1-20. |
Office Communication for U.S. Appl. No. 16/262,790 dated Apr. 18, 2019, pp. 1-24. |
Office Communication for U.S. Appl. No. 16/234,395 dated Aug. 8, 2019, pp. 1-28. |
Office Communication for U.S. Appl. No. 16/234,334 dated Apr. 5, 2019, pp. 1-24. |
Office Communication for U.S. Appl. No. 16/234,395 dated Mar. 28, 2019, pp. 1-36. |
Kappes et al. “Virtualization-aware Access Control for Multitenant Filesystems”, University of Ioannina, Greece, Technical Report No. DCS2013-1, 8, 61-64. (Year: 2013), pp. 1-6. |
Hitz et al. “Merging NT and UNIX filesystem permissions”, In Proceedings of the 2nd conference on USENIX Windows NT Symposium-vol. 2 (pp. 10-10). USENIX Association. (Year: 1998, August), pp. 1-10. |
Office Communication for U.S. Appl. No. 16/234,334 dated Oct. 11, 2019, pp. 1-22. |
Official Communication for U.S. Appl. No. 15/473,051 dated Jun. 30, 2017, pp. 1-23. |
Official Communication for U.S. Appl. No. 15/694,604 dated Jun. 3, 2019, pp. 1-14. |
Official Communication for U.S. Appl. No. 16/004,182 dated Aug. 23, 2018, pp. 1-46. |
Official Communication for U.S. Appl. No. 16/004,182 dated Mar. 5, 2019, pp. 1-46. |
Official Communication for U.S. Appl. No. 16/004,182 dated Jul. 3, 2019, pp. 1-50. |
Official Communication for U.S. Appl. No. 16/004,182 dated May 22, 2019, pp. 1-6. |
Official Communication for U.S. Appl. No. 16/004,182 dated Jan. 7, 2020, pp. 1-54. |
Official Communication for U.S. Appl. No. 14/595,043 dated Jun. 7, 2019, pp. 1-29. |
Official Communication for U.S. Appl. No. 14/859,061 dated Sep. 22, 2017, pp. 1-29. |
Official Communication for U.S. Appl. No. 15/831,236 dated Mar. 30, 2018, pp. 1-8. |
Official Communication for U.S. Appl. No. 15/831,236 dated Aug. 15, 2018, pp. 1-27. |
Office Communication for U.S. Appl. No. 15/694,604 dated Nov. 20, 2019, pp. 1-24. |
Office Communication for U.S. Patent Application No. 14/859,114 dated Nov. 19, 2018, pp. 1-41. |
Office Communication for U.S. Appl. No. 14/859,114 dated Jan. 31, 2019, pp. 1-5. |
Office Communication for U.S. Appl. No. 14/859,114 dated Mar. 7, 2019, pp. 1-39. |
Office Communication for U.S. Appl. No. 14/859,114 dated Sep. 13, 2019, pp. 1-8. |
Office Communication for U.S. Appl. No. 14/859,114 dated Nov. 26, 2019, pp. 1-43. |
Office Communication for U.S. Appl. No. 15/288,853 dated Sep. 19, 2018, pp. 1-27. |
Chimera, “Value Bars: An Information Visualization and Navigation Tool for Multi-attribute Listings”, CHI '92, Monterey, CA, May 3-7, 1992, pp. 293-294. |
Office Communication for U.S. Appl. No. 15/288,853 dated Mar. 25, 2019, pp. 1-25. |
Cudre-Mauroux, et al., “TrajStore: An Adaptive Storage System for Very Large Trajectory Sets”, ICDE 2010, Long Beach, CA, Mar. 1-6, 2010, pp. 109-120. |
Office Communication for U.S. Appl. No. 15/474,047 dated Sep. 18, 2017, p. 1-24. |
Office Communication for U.S. Appl. No. 15/474,047 dated Mar. 9, 2018, pp. 1-12. |
Office Communication for U.S. Appl. No. 15/474,047 dated Jun. 11, 2018, pp. 1-7. |
Office Communication for U.S. Appl. No. 15/474,047 dated Aug. 15, 2018, pp. 1-24. |
Office Communication for U.S. Appl. No. 15/957,809 dated Jun. 28, 2018, pp. 1-42. |
Office Communication for U.S. Appl. No. 16/436,825 dated Jul. 11, 2019. |
Office Communication for U.S. Appl. No. 15/854,447 dated May 6, 2019, pp. 1-31. |
Office Communication for U.S. Appl. No. 16/505,562 dated Aug. 30, 2019, pp. 1-46. |
European Communication and European Search Report for European Application No. 17206518.7 dated Apr. 5, 2018, pp. 1-8. |
Karatza et al. Epoch load sharing in a network of workstations, Simulation Symposium, 2001. Proceedings. 34th Annual Apr. 22-26, 2001, Piscataway, NJ, USA, IEEE, Apr. 22, 2001 (Apr. 22, 2001), pp. 36-42, XP010541274, ISBN: 978-0-7695-1092-7. |
Office Communication for U.S. Appl. No. 16/125,573 dated Nov. 21, 2019, pp. 1-24. |
Office Communication for U.S. Appl. No. 16/226,587 dated Oct. 24, 2019, pp. 1-6. |
Office Communication for U.S. Appl. No. 16/234,334 dated Jan. 16, 2020, pp. 1-8. |
Office Communication for U.S. Appl. No. 16/262,756 dated Jan. 28, 2020, pp. 1-27. |
Office Communication for U.S. Appl. No. 16/434,157 dated Jan. 29, 2020, pp. 1-12. |
Office Communication for U.S. Appl. No. 16/262,790 dated Feb. 6, 2020, pp. 1-8. |
Office Communication for U.S. Appl. No. 14/859,114 dated Mar. 13, 2020, pp. 1-22. |
Office Communication for U.S. Appl. No. 16/752,451 dated Mar. 12, 2020, pp. 1-14. |
Office Communication for U.S. Appl. No. 16/779,362 dated Mar. 26, 2020, pp. 1-10. |
Wikipedia clustered file system page from date Jul. 9, 2019, retrieved using the WayBackMachine, From https://web.archive.org/web/20190709083400/https://en.wikipedia.org/wiki/Clustered_file_system (Year: 2019), pp. 1-6. |
Wikipedia raft page from date Jul. 16, 2019, retrieved using the WayBackMachine, from https://web.archive.org/web/20190716115001/https://en.wikipedia.org/wiki/Raft (computer_science) (Year: 2019), pp. 1-4. |
Office Communication for U.S. Appl. No. 16/004,182 dated Mar. 23, 2020, pp. 1-6. |
Office Communication for U.S. Appl. No. 16/752,509 dated Apr. 2, 2020, pp. 1-42. |
Office Communication for U.S. Appl. No. 16/152,277 dated Apr. 3, 2020, pp. 1-10. |
Office Communication for U.S. Appl. No. 16/004,182 dated Apr. 28, 2020, pp. 1-52. |
Office Communication for U.S. Appl. No. 16/152,259 dated Apr. 29, 2020, pp. 1-19. |
Office Communication for U.S. Appl. No. 14/859,114 dated Jun. 5, 2020, pp. 1-6. |
Office Communication for U.S. Appl. No. 16/262,756 dated Jun. 8, 2020, pp. 1-43. |
Office Communication for U.S. Appl. No. 16/752,451 dated Jul. 23, 2020, pp. 1-31. |
Office Communication for U.S. Appl. No. 14/859,114 dated Jul. 23, 2020, pp. 1-28. |
Office Communication for U.S. Appl. No. 16/152,615 dated Aug. 6, 2020, pp. 1-18. |
Office Communication for U.S. Appl. No. 16/779,362 dated Aug. 7, 2020, pp. 1-33. |
Office Communication for U.S. Appl. No. 16/883,922 dated Aug. 7, 2020, pp. 1-18. |
Office Communication for U.S. Appl. No. 16/775,041 dated Aug. 18, 2020, pp. 1-17. |
Office Communication for U.S. Appl. No. 16/883,879 dated Sep. 1, 2020, pp. 1-18. |
Extended European Search Report for European Patent Application No. 16812585.4 dated Nov. 7, 2018, pp. 1-9. |
Comer, Douglas, “The Ubiquitous B-Tree,” Computing Surveys, vol. 11, No. 2, Jun. 1979. Computer Science Department, Purdue University, West Lafayette, Indiana 47907, pp. 121-137. |
Office Communication for European Patent Application No. 16812585.4 dated Jan. 2, 2020, pp. 1-6. |
Bloom, Burton H. “Space/Time Trade-offs in Hash Coding with Allowable Errors,” Communications of the ACM, vol. 13, No. 7, Jul. 1970. Computer Usage Company, Newton Upper Falls, Massachusetts, pp. 422-426. |
Office Communication for U.S. Appl. No. 16/262,756 dated Aug. 24, 2020, pp. 1-21. |
Office Communication for European Patent Application No. 18155779.4 dated Oct. 8, 2019, pp. 1-4. |
Office Communication for U.S. Appl. No. 16/152,259 dated Aug. 28, 2020, pp. 1-5. |
Office Communication for U.S. Appl. No. 16/752,509 dated Aug. 11, 2020, pp. 1-7. |
Office Communication for U.S. Appl. No. 16/152,277 dated Oct. 16, 2020, pp. 1-10. |
Office Communication for U.S. Appl. No. 16/152,615 dated Oct. 20, 2020, pp. 1-7. |
Office Communication for U.S. Appl. No. 16/775,041 dated Nov. 3, 2020, pp. 1-5. |
Office Communication for U.S. Appl. No. 17/062,500 dated Nov. 12, 2020, pp. 1-12. |
Office Communication for U.S. Appl. No. 16/004,182 dated Nov. 30, 2020, pp. 1-55. |
Office Communication for U.S. Appl. No. 14/859,144 dated Dec. 1, 2020, pp. 1-24. |
Office Communication for U.S. Appl. No. 16/883,922 dated Dec. 2, 2020, pp. 1-9. |
Office Communication for U.S. Appl. No. 16/883,879 dated Dec. 8, 2020, pp. 1-5. |
Examination Report, for European Patent Application No. 17206518.7 dated Feb. 23, 2021, pp. 1-6. |
Office Communication for U.S. Patent Application No. 14/859,114 dated Mar. 8, 2021, pp. 1-4, |
Office Communication for U.S. Appl. No. 16/004,182 dated Mar. 8, 2021, pp. 1-60. |
Office Communication for U.S. Appl. No. 17/062,500 dated Mar. 9, 2021, pp. 1-17. |
Office Communication for U.S. Appl. No. 16/152,277 dated Mar. 18, 2021, pp. 1-10. |
Offfice Communication for U.S. Appl. No. 17/160,698 dated Mar. 18, 2021, pp. 1-11. |
Office Communication for U.S. Appl. No. 16/152,277 dated Dec. 28, 2020, pp. 1-5. |
Office Communication for U.S. Appl. No. 16/004,182 dated Jan. 28, 2021, pp. 1-4. |
Office Communication for U.S. Appl. No. 17/115,529 dated Feb. 8, 2021, pp. 1-15. |
Office Communication for U.S. Appl. No. 16/262,756 dated Feb. 10, 2021, pp. 1-19. |
Office Communication for U.S. Appl. No. 17/114,384 dated Feb. 17, 2021, pp. 1-12. |
Office Communication for U.S. Appl. No. 17/062,500 dated May 18, 2021, pp. 1-4. |
Office Communication for U.S. Appl. No. 17/203,371 dated May 20, 2021, pp. 1-10. |
Office Communication for U.S. Appl. No. 17/115,529 dated May 25, 2021, pp. 1-18. |
Office Communication for U.S. Appl. No. 14/859,114 dated May 26, 2021, pp. 1-11. |
Office Communication for U.S. Appl. No. 16/262,756 dated May 27, 2021, pp. 1-7. |
Office Communication for U.S. Appl. No. 17/114,384 dated May 27, 2021, pp. 1-13. |
Office Communication for U.S. Appl. No. 17/190,653 dated May 27, 2021, pp. 1-11. |
Office Communication for U.S. Appl. No. 16/741,567 dated Jun. 8, 2021, pp. 1-5. |
Office Communication for U.S. Appl. No. 17/114,384 dated Aug. 3, 2021, pp. 1-4. |
Office Communication for U.S. Appl. No. 17/115,529 dated Aug. 12, 2021, pp. 1-4. |
Office Communication for U.S. Appl. No. 17/190,653 dated Aug. 27, 2021, pp. 1-11. |
Office Communication for U.S. Appl. No. 17/114,384 dated Sep. 2, 2021, pp. 1-5. |
Office Communication for U.S. Appl. No. 16/152,277 dated Sep. 3, 2021, pp. 1-4. |
Office Communication for U.S. Appl. No. 16/004,182 dated Sep. 10, 2021, pp. 1-4. |
Office Communication for U.S. Appl. No. 16/004,182 dated Sep. 29, 2021, pp. 1-11. |
Office Communication for U.S. Appl. No. 16/152,277 dated Oct. 18, 2021, pp. 1-5. |
International Search Report and Written Opinion for International Patent Application No. PCT/US2021/023525 dated Oct. 12, 2021, pp. 1-7. |
Office Communication for U.S. Appl. No. 17/115,529 dated Oct. 22, 2021, pp. 1-20. |
Office Communication for U.S. Appl. No. 17/062,500 dated Oct. 27, 2021, pp. 1-17. |
Office Communication for U.S. Appl. No. 16/741,567 dated Oct. 28, 2021, pp. 1-11. |
Office Communication for U.S. Appl. No. 17/203,452 dated Nov. 2, 2021, pp. 1-13. |
Office Communication for U.S. Appl. No. 17/190,653 dated Nov. 10, 2021, pp. 1-6. |
Office Communication for U.S. Appl. No. 17/484,167 dated Nov. 18, 2021, pp. 1-15. |
Office Communication for U.S. Appl. No. 17/588,120 dated Apr. 11, 2022, pp. 1-36. |
Office Communication for U.S. Appl. No. 17/588,895 dated Apr. 27, 2022, pp. 1-6. |
Office Communication for U.S. Appl. No. 17/190,653 dated Apr. 28, 2022, pp. 1-13. |
Office Communication for U.S. Appl. No. 17/510,043 dated Apr. 29, 2022, pp. 1-10. |
Office Communication for U.S. Appl. No. 17/115,529 dated Apr. 29, 2022, pp. 1-4. |
Office Communication for U.S. Appl. No. 17/062,500 dated Jan. 7, 2022, pp. 1-4. |
Office Communication for U.S. Appl. No. 16/741,567 dated Jan. 11, 2022, pp. 1-6. |
Office Communication for U.S. Appl. No. 17/203,452 dated Jan. 14, 2022, pp. 1-4. |
Office Communication for U.S. Appl. No. 17/510,043 dated Jan. 21, 2022, pp. 1-13. |
Office Communication for U.S. Appl. No. 16/741,567 dated Feb. 7, 2022, pp. 1-8. |
Office Communication for U.S. Appl. No. 17/530,420 dated Feb. 10, 2022, pp. 1-24. |
Office Communication for U.S. Appl. No. 16/004,182 dated Feb. 10, 2022, pp. 1-24. |
Office Communication for U.S. Appl. No. 17/115,529 dated Feb. 18, 2022, pp. 1-20. |
Office Communication for U.S. Appl. No. 17/203,452 dated Feb. 24, 2022, pp. 1-14. |
Office Communication for U.S. Appl. No. 17/484,167 dated Mar. 11, 2022, pp. 1-11. |
Office Communication for U.S. Appl. No. 17/062,500 dated Mar. 22, 2022, pp. 1-19. |
Office Communication for U.S. Appl. No. 17/504,289 dated Mar. 28, 2022, pp. 1-9. |
Office Communication for U.S. Appl. No. 17/203,452 dated Jun. 23, 2021, pp. 1-11. |
Office Communication for U.S. Appl. No. 16/152,277 dated Jun. 25, 2021, pp. 1-10. |
Office Communication for U.S. Appl. No. 16/004,182 dated Jul. 1, 2021, pp. 1-58. |
Office Communication for U.S. Appl. No. 17/160,698 dated Jul. 2, 2021, pp. 1-12. |
International Search Report and Written Opinion for International Patent Application No. PCT/US2021/023531 dated Jul. 6, 2021, pp. 1-7. |
Office Communication for U.S. Appl. No. 17/062,500 dated Jul. 12, 2021, pp. 1-18. |
Office Communication for U.S. Appl. No. 16/775,041 dated Jul. 21, 2021, pp. 1-11. |
Office Communication for U.S. Appl. No. 17/504,289 dated Dec. 7, 2021, pp. 1-15. |
Office Communication for U.S. Appl. No. 17/114,384 dated Dec. 14, 2021, pp. 1-7. |
Office Communication for U.S. Appl. No. 17/190,653 dated Dec. 21, 2021, pp. 1-12. |
Office Communication for U.S. Appl. No. 17/508,869 dated Dec. 22, 2021, pp. 1-9. |
Office Communication for U.S. Appl. No. 17/491,017 dated Dec. 23, 2021, pp. 1-41. |
Office Communication for U.S. Appl. No. 14/859,114 dated Jul. 24, 2017, pp. 1-49. |
Office Communication for U.S. Appl. No. 14/658,015 dated Jan. 4, 2018, pp. 1-28. |
Office Communication for U.S. Appl. No. 14/859,114 dated Feb. 21, 2018, pp. 1-25. |
Office Communication for U.S. Appl. No. 14/595,043 dated May 4, 2017, pp. 1-30. |
Office Communication for U.S. Appl. No. 14/595,043 dated May 25, 2018, pp. 1-5. |
Office Communication for U.S. Appl. No. 14/595,043 dated Feb. 23, 2018, pp. 1-16. |
Office Communication for U.S. Appl. No. 14/658,015 dated Apr. 27, 2017, pp. 1-7. |
Office Communication for U.S. Appl. No. 14/859,114 dated May 11, 2018, pp. 1-5. |
Office Communication for U.S. Appl. No. 14/859,114 dated Jun. 27, 2018, pp. 1-39. |
Office Communication for U.S. Appl. No. 15/957,809 dated Jun. 28, 2018, pp. 1-33. |
Office Communication for U.S. Appl. No. 14/595,043 dated Oct. 5, 2018, pp. 1-17. |
Office Communication for U.S. Appl. No. 14/658,015 dated Jul. 13, 2018, pp. 1-14. |
Office Communication for U.S. Appl. No. 17/491,017 dated May 12, 2022, pp. 1-50. |
Office Communication for U.S. Appl. No. 17/484,167 dated May 17, 2022, pp. 1-3. |
Office Communication for U.S. Appl. No. 17/484,167 dated Jun. 10, 2022, pp. 1-5. |
Office Communication for U.S. Appl. No. 17/203,452 dated Jun. 22, 2022, pp. 1-22. |
Number | Date | Country | |
---|---|---|---|
20150310035 A1 | Oct 2015 | US |
Number | Date | Country | |
---|---|---|---|
61982926 | Apr 2014 | US | |
61982931 | Apr 2014 | US |