The described technology is directed to the field of filesystems.
Enterprise filesystems can store large volumes of data on behalf of large numbers of users. These filesystems can have thousands of accounts, each account storing any amount of data. Enterprises, businesses, and individuals alike now use large scale filesystems to store data that is remotely accessible via a network, such as a cloud based storage environment. Such filesystems are often accessible via closed (e.g., enterprise) and open (e.g., Internet) networks and allow concurrent access via multiple client devices. Furthermore, the amount of data stored for a particular account may grow or shrink without notice.
Users, such as account administrators, account holders, and/or storage system managers, benefit from being able to limit the amount of storage that consumers can use at any one time. For example, if a system administrator has allotted 10 GB of storage space in a shared file system with a capacity of 1000 GB to each of 100 users (i.e., a 10 GB quota per user), the system administrator may benefit from preventing each user from going over their allotted 10 GB. In this manner, the system administrator can ensure that each user has access to the amount of storage space that has been allotted to them and that one or more users are not unfairly or inappropriately taking up more than their fair share of storage space. As another example, even if the system administrator is not concerned with individual users surpassing 10 GB of storage usage, the system administrator may benefit from preventing the group of 100 users, as a whole, from going over the 1000 GB capacity of the shared file system. In this manner, the system administrator can ensure that the group does not violate any system wide restrictions on usage of storage space, such as a system wide 1000 GB quota, which may, for example, result in higher costs, degradation of service, and so on. The demand for scalable storage resources and the ability to provide rapid access to content stored thereby is a key concern to end-users. Furthermore, the ability to impose limits or quotas on the usage of this storage space is a concern to filesystem users, managers, and providers.
A facility for managing filesystem object storage quotas (i.e., size limits) in a storage environment is disclosed. The facility enables users to establish, modify, and remove quotas on directories and files within a filesystem. In the disclosed facility, each quota acts as a soft limit on the size of the associated filesystem object, including any child objects of the filesystem object. For example, a quota on a directory acts as a limit on the size of the contents of that directory and all of its subdirectories. The facility leverages the aggregation techniques described in, for example, U.S. Provisional Application No. 62/181,111 entitled “FILESYSTEM HIERARCHICAL CAPACITY QUANTITY AND AGGREGATE METRICS,” filed on Jun. 17, 2015; U.S. Provisional Application No. 61/982,926 entitled DATA STORAGE SYSTEM,” filed on Apr. 23, 2014; U.S. Provisional Application No. 61/982,931 entitled “DATA STORAGE SYSTEM,” filed on Apr. 23, 2014; U.S. Non-Provisional Application Ser. No. 14/595,043 entitled “FILESYSTEM HIERARCHICAL AGGREGATE METRICS,” filed on Jan. 12, 2015, and U.S. Non-Provisional Application Ser. No. 14/859,114, entitled FILESYSTEM HIERARCHICAL CAPACITY QUANTITY AND AGGREGATE METRICS, filed on Sep. 18, 2015, each of which is herein incorporated by reference in its entirety, to provide improved techniques for managing quotas within a filesystem. For example, because the disclosed filesystem itself maintains aggregate values such as size for individual directories, the facility can manage and enforce quotas without having to traverse an entire file structure every time a change is made in the filesystem. In this manner, the facility improves the speed at which the system can test for and identify violations of quotas established for individual filesystem objects—such as directories and files—and reduces the processing resources need to do so.
In some embodiments, the facility maintains each quota enforcement status using an enforcement (or enforcing) bit. Furthermore, because a filesystem object without its own quota can be subject to the quota of an ancestor filesystem object (e.g., a parent directory), an enforcement bit can bet set for any filesystem object that is directly or indirectly subject to a quota. Thus, if a directory that has a quota is currently violating its quota, every descendent of the violating directory can be marked to indicate that it is subject to a quota that is currently being enforced. In this manner, the enforcement bit for a filesystem object indicates whether the filesystem (or any of its ancestors) is currently in violation of its associated quota. In some embodiments, the enforcement bit is stored in metadata or an inode associated with the corresponding filesystem object. When the enforcement bit for a quota is set (e.g., equal to true or ‘1’), the facility is enforcing an associated quota and, therefore, the facility will deny any requests to increase the size of any file and/or directory that impacted by the quota. For example, the facility will prevent attempts to 1) add metadata to an “enforcing” file or directory, 2) create new directories or files within an “enforcing” directory, 3) hard link files to an “enforcing” directory, 4) write additional information to a file within an “enforcing” directory, and so on. The facility can, however, allow modifications that do not increase the size of the data subject to the quota, such as writes that decrease the size of a file or directory and/or writes that do not change the size of a file or directory. When the enforcement bit is not set (e.g., equal to false or ‘0’), the facility is not enforcing any associated quota and, therefore, the corresponding filesystem object is not subject to any quota that is currently being violated and, therefore, the facility will allow requests to increase the size of any file and/or directory that effects the quota.
In some embodiments, the facility uses a system “epoch” counter to manage quotas. Each system epoch represents a period of time in which the facility can determine that the enforcement status of any file or directory within the quota system has not changed. Thus, when an operation occurs that will cause a non-enforcing filesystem object to surpass its quota, the facility, among other things, increments the system epoch counter to establish a new system epoch. Similarly, when an operation occurs that will cause an enforcing filesystem object to drop below its quota, the facility, among other things, increments the system epoch counter to establish a new system epoch. When a requested modification to a filesystem object that is not enforcing causes the filesystem object to surpass its quota, the facility allows the modification but registers a “quota event.” Similarly, when a requested modification to a filesystem object that is enforcing causes the filesystem object to go under its quota, the facility allows also registers a “quota event”. The facility registers these “quota events” by incrementing the system “epoch” counter. In addition to events that cause a filesystem object to go over or under its quota, in some embodiments the facility increments the system epoch counter in response to other events, such as any changes to a quota, including creating a quota, updating a quota, deleting a quota, increasing a quota, decreasing a quota, and so on; moving a directory from one directory to another directory (so that it has a new parent directory), etc.
In addition to the system epoch, in some embodiments the facility maintains, for each filesystem object subject to a quota, an indication of an epoch during which the enforcement status of the filesystem object was last determined to have changed. For example, if the size of an enforcing directory drops below its quota during “epoch 2,” the facility stores an indication of “epoch 2” in association with the directory (e.g., in an inode or other metadata associated with the directory) and increments the current epoch to 3. Maintaining epoch values for individual filesystem objects enables the facility to determine whether enforcement bits for individual quotas can be trusted. Accordingly, the facility can maintain quotas for individual filesystem objects without needing to traverse the entire filesystem to determine whether any filesystem objects are in violation of the quota, thereby providing a substantial improvement over conventional quota management systems.
In some embodiments, during aggregate reconciliation, the filesystem updates filesystem object epoch information based on the current state of the filesystem object during reconciliation. For example, if, during reconciliation, the facility determines that the aggregate size of a filesystem object is larger than its quota and the filesystem object is not enforcing, the facility can adjust system and object epoch values accordingly. Aggregate reconciliation is further discussed in, for example, U.S. Non-Provisional Application Ser. No. 14/595,043 entitled “FILESYSTEM HIERARCHICAL AGGREGATE METRICS,” filed on Jan. 12, 2015 and U.S. Non-Provisional Application Ser. No. 14/859,114, entitled FILESYSTEM HIERARCHICAL CAPACITY QUANTITY AND AGGREGATE METRICS, filed on Sep. 18, 2015, each of which is herein incorporated by reference in its entirety.
The epoch information enables the facility to quickly and easily determine whether quota enforcement information associated with a particular filesystem object is up to date. This is especially useful when adding information to the filesystem. If the filesystem receives a request to add information to a filesystem object that is not enforcing, the facility can allow the operation unless the epoch associated with the filesystem object (i.e., the most recent epoch during which the enforcement bit was changed for the filesystem object) is different from the current epoch. This is because if these two values are the same, the facility can trust that no filesystem object has changed its associated quota enforcement status at least since the filesystem object to be modified was last updated.
For example, if none of the filesystem objects in the system are enforcing and a requested write to a file with the path/usr1/dir1/file1 and a size of 100 GB during epoch “3” would put either the/usr1 directory or the/usr1/dir1 directory over its quota, then the filesystem would (1) allow the write, (2) set the enforcing bit of each of the directories that are now in violation of its quota, (3) set the epoch of the directory or directories that are now in violation of the quota to “3”—the current epoch—, and (4) increment the system epoch counter to “4.” Similarly, if the/usr1 directory and the/usr1/dir1 directories were enforcing (i.e., had their enforcement bits set) and a requested write to a file with the path/usr1/dir1/file1 during epoch “20” would put either the/usr1 directory or the/usr1/dir1 directory under its quota, then the filesystem would (1) allow the write, (2) clear the enforcing bit of each of the directories that are no longer in violation of its quota, (3) set the epoch of the directory or directories that are no longer in violation of the quota to “21”—the current epoch—, and (4) increment the system epoch counter to “22.” Because the disclosed file system maintains aggregate metrics for individual directories, the facility need not necessarily traverse an entire file structure to determine the size of a directory.
In some embodiments, the facility notifies or alerts users when a quota is violated or is close to being violated. For example, the facility may send a message (e.g., email, SMS message, system message) to an end user or system administrator when the size of a filesystem object reaches a predetermined percentage of its quota (e.g., 33%, 50%, 75%, 90%, 95%). In some embodiments, individual quotas may have different notification percentages stored in, for example, metadata or an inode associated with a corresponding filesystem object. For example, “/usr1/dir1” may have a notification percentage of 80% while “/usr1” has a notification percentage of 95%. Furthermore, the notifications may occur during aggregate reconciliation. In some cases the notification may be transmitted over a wireless communication channel to a wireless device associated with a particular user or users (e.g., a system administrator, an owner of an account whose quota has been violated, etc.) based upon an address or addresses associated with the particular user or users. The notification may be used to activate a user application to cause the notification to display on a remote user computer system and to enable connection, via a link or other identifier in the notification, to the quota management facility over the Internet when the wireless device is connected (e.g., locally) to the remote user computer system and the remote user computer system comes online.
Additionally, in some embodiments the facility provides reports for any number of quotas in the quota management system, such as a percentage of the quota currently being used by the corresponding filesystem objects. In some cases, the facility aggregates quota values for directory, quota enforcement bits, and so on and store these aggregations in metadata or an inode for a directory. For example, an aggregated quota enforcement bit can be used to indicate whether any subdirectories of a given directory (the directory associated with the aggregated value) are enforcing their quota. As another example, an aggregated quota value may provide an indication of the subdirectory of the given directory with the highest percentage of its quota used, the unused percentage, the lowest net amount of unused quota space, and so on.
In some cases, the facility may employ quota templates, which establish default quota values for newly created filesystem objects subject to the quota template (e.g., newly created directories under a parent directory assigned to a particular quota template). For example, a user may establish a quota template for the root directory that specifies that any new subdirectory of the root directory will be created with a quota of a specified value (e.g., 1 GB, 5 GB, 100 GB, 1 TB, 50 TB, and so on); a specified percentage of the root directory's quota (e.g., 10%, 20%, 50%, and so on); a specified percentage of the root directory's unused quota; and so on. In some embodiments, the facility may track a count of the number of quotas that are currently being violated to further minimize processing. For example, if the count is currently 0 then the facility could bypass checking whether any quotas are currently violated.
The disclosed technology offers several benefits over other techniques for managing quotas in a shared storage system, such as a shared filesystem. In other quota management systems, the system must traverse a user's entire filesystem when changes are made to ensure that the user has not surpassed the user's quota. This traversal can take up valuable resources in the corresponding system, thereby delaying the execution of other operations in the filesystems. In some cases, other quota management systems “slow down” a user's ability to perform filesystem operations as the user approaches the user's quota to ensure that the quota management system has sufficient time to confirm that the user will not violate the user's quota if a particular operation is performed. For example, the quota management system may only allow a user to perform one write operation per traversal of the filesystem to ensure that the user has not (or will not) violate the user's quota. The installation and use of the disclosed quota management facility, in contrast, enables an organization or other party to create, manage, and enforce quotas within a storage system without necessarily requiring traversal of a user's portion of a storage system and without slowing down a user's access to the storage system, even as the user approaches the user's quota. Thus, the disclosed facility improves the ability of computers to maximize the usefulness of a shared storage system to users hile simultaneously managing quotas within the storage system.
The computing devices on which the facility is implemented may include a central processing unit, memory, input devices (e.g., keyboard and pointing devices), output devices (e.g., display devices), and storage devices (e.g., disk drives), such as computer-readable storage media. Computer-readable storage media include, for example, tangible media such as hard drives, CD-ROMs, DVD-ROMS, and memories such as ROM, RAM, and Compact Flash memories that can store instructions and other storage media. The phrase “computer-readable storage medium” does not include propagating, transitory signals and should not be interpreted as propagating, transitory signals. In addition, the instructions, data structures, and message structures may be stored or transmitted via a data transmission medium, such as a signal on a communications link and may be encrypted. The term “data transmission medium” should not be interpreted as computer-readable storage media. Various communications links may be used, such as the Internet, a local area network, a wide area network, a point-to-point dial-up connection, a cell phone network, and so on and may be encrypted.
Embodiments of the facility may be implemented in and used with various operating environments that include personal computers, server computers, handheld or laptop devices, multiprocessor systems, microprocessor-based systems, programmable consumer electronics, digital cameras, network PCs, minicomputers, mainframe computers, computing environments that include any of the above systems or devices, and so on.
The facility may be described in the general context of computer-executable instructions, such as program modules, executed by one or more computers or other devices. Further, such functions correspond to modules, which are software, hardware, firmware, or any combination thereof. Multiple functions can be performed in one or more modules as desired, and the embodiments described are merely examples. A digital signal processor, ASIC, microprocessor, or any other type of processor operating on a system, such as a personal computer, server computer, supercomputing system, router, or any other device capable of processing data including network interconnection devices executes the software. Those skilled in the art will appreciate that any logic illustrated in the Figures (e.g., flow diagrams), may be altered in a variety of ways. For example, the order of the logic may be rearranged, sublogic may be performed in parallel, illustrated logic may be omitted, other logic may be included, etc. Typically, the functionality of the program modules may be combined or distributed as desired in various embodiments.
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.
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 Utility Patent Application is a Continuation of U.S. patent application Ser. No. 15/474,047 entitled “MANAGING STORAGE QUOTAS IN A SHARED STORAGE SYSTEM,” filed on Mar. 30, 2017, now U.S. Pat. No. 10,095,729 issued on Oct. 9, 2018, which is based on previously filed U.S. Provisional Application No. 62/432,554 entitled “MANAGING STORAGE QUOTAS IN A SHARED STORAGE SYSTEM,” filed on Dec. 9, 2016 and claims the benefit of U.S. Provisional Application No. 62/446,261 entitled “MANAGING STORAGE QUOTAS IN A SHARED STORAGE SYSTEM,” filed on Jan. 13, 2017, the benefit of the filing dates of which are claimed under 35 U.S.C § 120 and § 119(e), and the contents of which are each further incorporated in entirety by reference. This application is related to U.S. Provisional Application No. 62/181,111 entitled “FILESYSTEM HIERARCHICAL CAPACITY QUANTITY AND AGGREGATE METRICS,” filed on Jun. 17, 2015; U.S. Provisional Application No. 61/982,926 entitled DATA STORAGE SYSTEM,” filed on Apr. 23, 2014; U.S. Provisional Application No. 61/982,931 entitled “DATA STORAGE SYSTEM,” filed on Apr. 23, 2014; U.S. Non-Provisional Application Ser. No. 14/595,043 entitled “FILESYSTEM HIERARCHICAL AGGREGATE METRICS,” filed on Jan. 12, 2015; U.S. Non-Provisional Application Ser. No. 14/595,598 entitled “FAIR SAMPLING IN A HIERARCHICAL FILESYSTEM,” filed on Jan. 13, 2015; U.S. Non-Provisional Application Ser. No. 14/658,015 entitled “DATA MOBILITY, ACCESSIBILITY, AND CONSISTENCY IN A DATA STORAGE SYSTEM,” filed on Mar. 13, 2015; and U.S. Non-Provisional Application Ser. No. 14/859,114, entitled FILESYSTEM HIERARCHICAL CAPACITY QUANTITY AND AGGREGATE METRICS, filed on Sep. 18, 2015, each of the above-mentioned applications is herein incorporated by reference in its entirety. In cases where the present application and a document incorporated herein by reference conflict, the present application controls.
Number | Name | Date | Kind |
---|---|---|---|
5165031 | Pruul et al. | Nov 1992 | A |
5319773 | Britton et al. | Jun 1994 | A |
5410684 | Ainsworth et al. | Apr 1995 | A |
5410719 | Shackleford | Apr 1995 | A |
5442561 | Yoshizawa et al. | 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 |
6529998 | Yochai et al. | Mar 2003 | B1 |
6560615 | Zayas et al. | May 2003 | B1 |
6772435 | Thexton et al. | Aug 2004 | B1 |
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 |
7213040 | Stokes et al. | May 2007 | B1 |
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 | Oct 2011 | B1 |
8108429 | Sim-Tang et al. | Jan 2012 | B2 |
8296312 | Leung et al. | Oct 2012 | B1 |
8355407 | Wookey et al. | Jan 2013 | B2 |
8364648 | Sim-Tang | Jan 2013 | B1 |
8423733 | Ozdemir | 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 | Aug 2013 | B1 |
8612404 | Bone et al. | Dec 2013 | B2 |
8612488 | Subramanya et al. | Dec 2013 | B1 |
8645323 | Jackiewicz et al. | Feb 2014 | B2 |
8661447 | Olliff et al. | Feb 2014 | B1 |
8776050 | Plouffe et al. | Jul 2014 | B2 |
8782655 | Blanding | Jul 2014 | B2 |
8806154 | Gupta | Aug 2014 | B1 |
8838887 | Burke et al. | Sep 2014 | B1 |
8838931 | Marshak et al. | Sep 2014 | B1 |
8849764 | Long et al. | Sep 2014 | B1 |
8868797 | Kirac et al. | Oct 2014 | B1 |
8924364 | Zhong | Dec 2014 | B1 |
8972694 | Dolan et al. | Mar 2015 | B1 |
9015214 | Nishida et al. | Apr 2015 | B2 |
9026765 | Marshak et al. | May 2015 | B1 |
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 | Oct 2015 | B2 |
9244975 | Das et al. | Jan 2016 | B2 |
9244976 | Zhang et al. | Jan 2016 | B1 |
9384252 | Akirav et al. | Jul 2016 | B2 |
9501487 | Yuan et al. | Nov 2016 | B1 |
9547560 | Lee | Jan 2017 | B1 |
9600193 | Ahrens | Mar 2017 | B2 |
9747171 | Beeken et al. | Aug 2017 | B2 |
9753782 | Fang et al. | Sep 2017 | B2 |
9753932 | Brow et al. | Sep 2017 | B1 |
9785377 | Shin et al. | Oct 2017 | B2 |
10140185 | Lopez | Nov 2018 | B1 |
10261868 | Brown et al. | Apr 2019 | B2 |
10275493 | Mostak | Apr 2019 | B1 |
10303561 | Beeken et al. | May 2019 | B2 |
10318401 | Rothschilds | Jun 2019 | B2 |
10339101 | Gupta | Jul 2019 | B1 |
10423609 | Strauss | Sep 2019 | B1 |
10437509 | Alexeev | Oct 2019 | B1 |
10447779 | Dieterich et al. | Oct 2019 | B2 |
10474635 | Unger et al. | Nov 2019 | B1 |
10534758 | Carpenter et al. | Jan 2020 | B1 |
10678663 | Sharma et al. | Jun 2020 | B1 |
10725977 | Chmiel et al. | Jul 2020 | B1 |
20010039622 | Hitz et al. | Nov 2001 | 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 |
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 |
20050114726 | Ouchi | May 2005 | A1 |
20050119996 | Ohata et al. | Jun 2005 | A1 |
20050154866 | Steely | Jul 2005 | A1 |
20050195660 | Kavuri et al. | Sep 2005 | A1 |
20050223019 | Das | Oct 2005 | A1 |
20060004890 | Semple et al. | Jan 2006 | A1 |
20060053139 | Marzinski | 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 | 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 et al. | Apr 2008 | A1 |
20080172366 | Hannel 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 | 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 |
20100030825 | Matsuzawa et al. | Feb 2010 | A1 |
20100036895 | Boyd | 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 et al. | Sep 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 | Jun 2011 | A1 |
20110161964 | Piazza et al. | Jun 2011 | A1 |
20110196833 | Drobychev | 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 et al. | Feb 2012 | A1 |
20120066179 | Saika | Mar 2012 | A1 |
20120096059 | Shimizu | Apr 2012 | A1 |
20120136843 | Bone et al. | May 2012 | A1 |
20120151438 | Bach et al. | Jun 2012 | A1 |
20120166478 | Das et al. | Jun 2012 | A1 |
20120204060 | Swift 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 | Aug 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 |
20140095249 | Tarakad et al. | Apr 2014 | A1 |
20140101389 | Nellans et al. | 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 et al. | Sep 2014 | A1 |
20140281411 | Abdallah | Sep 2014 | A1 |
20140344222 | Morris et al. | Nov 2014 | A1 |
20140372384 | Long et al. | Dec 2014 | A1 |
20140372607 | Gladwin et al. | 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 |
20150149736 | Kwon et al. | May 2015 | A1 |
20150186529 | Rope et al. | Jul 2015 | A1 |
20150193347 | Kluesing et al. | Jul 2015 | A1 |
20150215405 | Baek et al. | Jul 2015 | A1 |
20150234879 | Baldwin | Aug 2015 | A1 |
20150242263 | Klose | Aug 2015 | A1 |
20150278282 | Sardina et al. | Oct 2015 | A1 |
20150310035 | Godman | Oct 2015 | A1 |
20150347126 | Tibble et al. | Dec 2015 | A1 |
20160034356 | Aron et al. | Feb 2016 | A1 |
20160139836 | Nallathambi et al. | May 2016 | A1 |
20160147654 | Zhao et al. | May 2016 | A1 |
20160224430 | Long et al. | Aug 2016 | A1 |
20160246816 | Abiri et al. | Aug 2016 | A1 |
20160292013 | Li et al. | Oct 2016 | A1 |
20160306810 | Ni | 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 et al. | Dec 2016 | A1 |
20160380878 | Bugenhagen | Dec 2016 | 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 |
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 |
20170206231 | Binder et al. | Jul 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 | Nov 2017 | A1 |
20170366609 | Dieterich et al. | Dec 2017 | A1 |
20180040029 | Zeng et al. | Feb 2018 | A1 |
20180059946 | Kunii et al. | Mar 2018 | A1 |
20180101546 | Krasnow | Apr 2018 | A1 |
20180129443 | Karve et al. | May 2018 | A1 |
20180288057 | Varadamma | Oct 2018 | A1 |
20180314423 | Gong et al. | Nov 2018 | A1 |
20180365115 | Fang et al. | Dec 2018 | A1 |
20190095112 | Lingarajappa | Mar 2019 | A1 |
20190102700 | Babu et al. | Apr 2019 | A1 |
20190163591 | Ouyang et al. | May 2019 | A1 |
20190196879 | Dutta et al. | Jun 2019 | A1 |
20190384640 | Swamy et al. | Dec 2019 | A1 |
20200004977 | Araujo et al. | Jan 2020 | A1 |
20200026438 | Peleg et al. | Jan 2020 | A1 |
20200174692 | Dave et al. | Jun 2020 | A1 |
20210042263 | Zdornov et al. | Feb 2021 | A1 |
20210042282 | Cseri et al. | Feb 2021 | 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 |
---|
Official Communication for U.S. Appl. No. 15/474,047 dated Mar. 9, 2018, pp. 1-8. |
Official Communication for U.S. Appl. No. 15/474,047 dated Sep. 18, 2017, pp. 1-14. |
Official Communication for U.S. Appl. No. 15/474,047 dated Aug. 15, 2018, pp. 1-11. |
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. 14/595,598 dated Jul. 9, 2020, pp. 1-26. |
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 mailed 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 Appiication 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. |
International Search Report and Written Opinion for Application No. PCT/US2016/38242 dated Oct. 11, 2016, pp. 1-11. |
Office Communication for U.S. Appl. No. 14/595,598 dated Jul. 31, 2019, pp. 1-5. |
Office Communication for U.S. Appl. No. 14/595,598 dated Sep. 20, 2018, pp. 1-18. |
Office Communication for U.S. Appl. No. 14/595,598 dated Dec. 15, 2017, pp. 1-18. |
Office Communication for U.S. Appl. No. 14/595,598 dated Feb. 24, 2017, pp. 1-8. |
Office Communication for U.S. Appl. No. 14/595,598 dated Apr. 19, 2018, pp. 1-3. |
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. 14/595,598 dated Sep. 25, 2020, pp. 1-7. |
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,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/262,756 dated Oct. 25, 2019, pp. 1-6. |
Office Communication for U.S. Appl. No. 16/659,488 dated Dec. 30, 2019, pp. 1-35. |
Office Communication for U.S. Appl. No. 14/595,598 dated Dec. 31, 2019, pp. 1-23. |
Office Communication for U.S. Appl. No. 16/004,208 dated Aug. 27, 2018, pp. 1-11. |
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. 15/473,051 dated Jun. 30, 2017, pp. 1-22. |
European Search Report for European Application 18155779.4 dated Apr. 17, 2018, pp. 1-15. |
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,182 dated Mar. 5, 2019, pp. 1-46. |
Office Communication for U.S. Appl. No. 16/004,182 dated Jul. 3, 2019, pp. 1-50. |
Office Communication for U.S. Appl. No. 15/694,604 dated Jun. 3, 2019, pp. 1-14. |
Office Communication for U.S. Appl. No. 16/004,182 dated May 22, 2019, pp. 1-6. |
Office Communication for U.S. Appl. No. 14/595,043 dated May 4, 2017, pp. 1-38. |
Office Communication for U.S. Appl. No. 14/595,043 dated Feb. 23, 2018, pp. 1-22. |
Office Communication for U.S. Appl. No. 14/595,043 dated May 25, 2018, pp. 1-14. |
Office Communication for U.S. Appl. No. 14/595,043 dated Oct. 5, 2018, pp. 1-26. |
Office Communication for U.S. Appl. No. 14/595,043 dated Jun. 7, 2019, pp. 1-29. |
Office Communication for U.S. Appl. No. 14/595,043 dated Aug. 27, 2019, pp. 1-34. |
Office Communication for U.S. Appl. No. 14/658,015 dated Apr. 27, 2017, pp. 1-8. |
Office Communication for U.S. Appl. No. 14/658,015 dated Jan. 4, 2018, pp. 1-35. |
Office Communication for U.S. Appl. No. 14/658,015 dated Jul. 13, 2018, pp. 1-18. |
Office Communication for U.S. Appl. No. 14/859,061 dated Sep. 22, 2017, pp. 1-29. |
Office Communication for U.S. Appl. No. 15/831,236 dated Mar. 30, 2018, pp. 1-8. |
Office Communication for U.S. Appl. No. 15/831,236 dated Aug. 15, 2018, pp. 1-27. |
Office Communication for U.S. Appl. No. 14/859,114 dated Jul. 24, 2017, pp. 1-165. |
Office Communication for U.S. Appl. No. 14/859,114 dated Feb. 21, 2018, pp. 1-27. |
Office Communication for U.S. Appl. No. 14/859,114 dated May 11, 2018, pp. 1-7. |
Office Communication for U.S. Appl. No. 14/859,114 dated Jun. 27, 2018, pp. 1-40. |
Office Communication for U.S. Appl. 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 Jun. 26, 2019, pp. 1-66. |
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. 16/436,825 dated Jul. 11, 2019, pp. 1-22. |
Office Communication for U.S. Appl. No. 16/234,334 dated Oct. 11, 2019, pp. 1-22. |
Hitz et al. “Merging NT and UNIX filesystem Permissions”, Proceedings of the 2nd USENIX Windows NT Symposium, Seattle, Washington, Aug. 3-4, 1998, pp. 1-10. |
Office Communication for U.S. Appl. No. 15/474,047 dated Jun. 11, 2018, pp. 1-7. |
Office Communication for U.S. Appl. No. 16/234,395 dated Mar. 28, 2019, pp. 1-36. |
Kappes et al. “Dike: Virtualization-aware Access Control for Multitenant Filesystems”, Feb. 18, 2013, pp. 1-6. |
Office Communication for U.S. Appl. No. 15/957,809 dated Jan. 24, 2019, 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/152,259 dated Apr. 29, 2020, pp. 1-19. |
Office Communication for U.S. Appl. No. 16/434,157 dated Jul. 25, 2019, pp. 1-16. |
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. |
Extended European Search Report for European Application 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. |
Extended European Search Report for European Application 18155779.4 dated Apr. 17, 2018, pp. 1-15. |
Office Communication for U.S. Appl. No. 16/004,182 dated Jan. 7, 2020, pp. 1-54. |
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/262,790 dated Dec. 12, 2019, pp. 1-23. |
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/775,041 dated Mar. 11, 2020, pp. 1-8. |
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/228,716 dated Jun. 24, 2019, pp. 1-28. |
Office Communication for U.S. Appl. No. 16/226,587 dated Aug. 5, 2019, pp. 1-54. |
Office Communication for U.S. Appl. No. 16/231,354 dated Jul. 10, 2019, pp. 1-16. |
Office Communication for U.S. Appl. No. 15/967,499 dated Jun. 27, 2018, pp. 1-25. |
Office Communication for U.S. Appl. No. 16/226,587 dated Feb. 25, 2019, pp. 1-65. |
Office Communication for U.S. Appl. No. 16/228,716 dated Feb. 28, 2019, pp. 1-28. |
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,756 dated Apr. 2, 2019, pp. 1-40. |
Office Communication for U.S. Appl. No. 16/004,182 dated Mar. 23, 2020, pp. 1-6. |
Office Communication for U.S. Appl. No. 15/694,604 dated Nov. 20, 2019, pp. 1-24. |
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,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,114 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. |
Office Communication for U.S. Appl. No. 16/004,598 dated Jan. 28, 2021, pp. 1-4. |
Office Communication for U.S. Appl. No. 14/595,598 dated Feb. 4, 2021, pp. 1-19. |
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. |
Examination Report for European Patent Application No. 17206518.7 dated Feb. 23, 2021, pp. 1-6. |
Office Communication for U.S. Appl. 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. 17/160,698 dated Mar. 18, 2021, pp. 1-11. |
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/203,452 dated Jun. 23, 2021, pp. 1-11. |
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/114,384 dated Aug. 3, 2021, pp. 1-4. |
Office Communication for U.S. Appl. No. 14/595,598 dated Aug. 6, 2021, pp. 1-20. |
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/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. |
Number | Date | Country | |
---|---|---|---|
20190243818 A1 | Aug 2019 | US |
Number | Date | Country | |
---|---|---|---|
62446261 | Jan 2017 | US | |
62432554 | Dec 2016 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 15474047 | Mar 2017 | US |
Child | 16152277 | US |