Legal claims defining the scope of protection. Each claim is shown in both the original legal language and a plain English translation.
1. A computer-implemented method, comprising: under the control of one or more computer systems configured with executable instructions, determining a manifest of one or more extents replicated on a plurality of storage servers, each extent of the one or more extents allocating data storage space of the plurality of storage servers, the data storage space being capable of storing the data; for each extent of the one or more extents, determining file system information relating to file systems, at least portions of which are stored within the extent; processing the determined file system information by at least: sorting the file system information such that it is keyed, for each file system for which a portion is stored within at least one extent of the one or more extents in the manifest, to a plurality of file system identifiers within the information; and updating, for each of the plurality of file system identifiers, at least a subset of file system records by combining the sorted file system information for each of the one or more extents in which a respective portion of a respective file system is stored, such that the updated subset of file system records includes at least a size of the file system identified by the file system identifier; and for each extent of the one or more extents in the manifest, updating the file systems for which the portions are stored within the extent to include at least a subset of the processed file system information, the subset of the processed file system information including at least the size of each of the file systems.
A computer-implemented method running on one or more computers determines a list (manifest) of data storage units (extents) that are replicated across multiple storage servers. Each extent uses some of the storage server's space and stores data. The method then finds file system information for each extent, identifying which file systems have parts stored within that extent. It organizes (sorts) this file system information, creating a list of file system identifiers (IDs) for each file system. For each file system ID, it updates file system records by combining the file system information from all extents where that file system's data is stored, calculating and storing the total size of the file system. Finally, for each extent, the method updates the affected file systems' records with the calculated size information.
2. The computer-implemented method of claim 1 , wherein the determination of the file system information includes determining a valid report among a plurality of reports received from the plurality of storage servers upon which the extent is stored.
The method described above, where the process of determining file system information for an extent involves choosing the correct (valid) report from multiple reports received from the different storage servers where the extent is stored. This handles potential inconsistencies or errors between the replicated copies of the extent's metadata by ensuring a consistent, accurate size calculation is performed.
3. The computer-implemented method of claim 1 , further comprising: for each extent of the one or more extents, providing, to one or more services, at least a subset of the processed file system information, the subset of the processed file system information including at least the size of each of the file systems.
The method described for determining file system sizes further includes, for each extent, sending a portion of the processed file system information, including the size of each file system, to external services. This allows other systems to access and use the calculated file system sizes.
4. The computer-implemented method of claim 3 , wherein the one or more services includes a billing system.
The method of providing file system size information to external services as described above, where the external service is a billing system. The calculated file system sizes are used to determine billing charges for customers based on their data usage.
5. A system, comprising: a plurality of storage devices; one or more processors; memory including instructions that, when executed by the one or more processors, cause the system to: determine one or more extent attributes for a plurality of extents allocated on at least a subset of the plurality of storage devices, the attributes including file system information for each file system within each extent of the plurality of extents; process the determined extent attributes for the plurality of storage devices to at least: sort the determined extent attributes based on the file system information; and determine size of each of the file systems by combining the sorted extent attributes with at least one set of prior records relating to the file systems.
A system including multiple storage devices, processors, and memory with instructions that cause the system to: determine attributes for data storage units (extents) on a subset of the storage devices. These attributes include file system information for each file system stored within each extent. The system then processes these extent attributes by sorting them based on the file system information, and calculates the size of each file system by combining the sorted extent attributes with existing (prior) records about the file systems.
6. The system of claim 5 , wherein the instructions further cause the system to provide the processed extent attributes to a data system.
The system described above, which determines file system sizes from extent attributes, also sends the processed extent attributes to a data system. This data system can then use the calculated information for other purposes.
7. The system of claim 6 , wherein the data system is a billing system.
The system that determines file system sizes and sends data to a data system as described above, where the data system is a billing system. The file system size data is provided to the billing system for customer billing.
8. The system of claim 6 , wherein the data system is a system that interfaces with customers associated with at least a subset of the file systems.
The system that determines file system sizes and sends data to a data system as described above, where the data system is a system that interacts with customers, showing them information about their file systems and storage usage.
9. The system of claim 6 , wherein the data system is a distributed storage system that is operably connected to the plurality of storage devices.
The system that determines file system sizes and sends data to a data system as described above, where the data system is the distributed storage system itself, which is connected to the storage devices. This allows the storage system to use the calculated file system sizes internally.
10. The system of claim 9 , wherein the instructions further cause the system to provide the determined size of each of the file systems to at least a subset of the plurality of storage devices so as to update each of the file systems with the determined size.
The system that determines file system sizes and sends data to the distributed storage system as described above, which also sends the calculated file system sizes back to the storage devices themselves, updating the file systems with their calculated sizes. This ensures the file systems have accurate size information.
11. The system of claim 5 , wherein at least some contents of the extents are replicated across at least two of the plurality of storage devices.
The system described for determining file system sizes, where the data within some of the data storage units (extents) is duplicated (replicated) across at least two of the storage devices, enhancing data reliability.
12. The system of claim 11 , wherein the instructions further cause the system to discard redundant, stale, or inaccurate attributes prior to processing the determined extent attributes.
The system that determines file system sizes with data replicated across storage devices, where the system discards redundant, outdated, or incorrect (stale) extent attributes before processing them. This ensures accuracy when dealing with replicated data, by eliminating potentially conflicting or outdated information.
13. A non-transitory computer-readable storage medium having stored thereon executable instructions that, when executed by one or more processors of a computer system, cause the computer system to at least: generate, for at least two extents of a plurality of extents allocated on a plurality of storage devices, a first set of records for file system attributes relating to each of a plurality of file systems stored on the extents, the file system attributes including identifiers for each of the plurality of file systems; identify duplicate records from the first set of records; map the identified duplicate set of records to generate a second set of records that is sorted by the identifiers; combine the second set of records with at least one third set of historical records relating to each of the plurality of file systems to determine the size of each of the plurality of file systems, thereby generating a fourth set of records; and provide programmatic access to the fourth set of records.
A non-transitory computer-readable storage medium (like a hard drive or SSD) stores instructions that, when executed by a computer, cause the computer to: create a first set of records for file system attributes (including file system identifiers) for multiple file systems stored across at least two data storage units (extents) on multiple storage devices. The system identifies duplicate records within this first set, then organizes (maps) these duplicates into a second set of records, sorted by file system identifiers. It combines the second set with a third set of older (historical) records about the file systems to calculate the size of each file system, generating a fourth set of records. Finally, it provides programmatic access to this fourth set of records.
14. The non-transitory computer-readable storage medium of claim 13 , wherein the instructions further comprise instructions that, when executed by the one or more processors, cause the computer system to generate the first set of records on a distributed storage system that is separate from the computer system.
The storage medium described above, where the process of creating the first set of records for file system attributes happens on a distributed storage system that is separate from the computer system executing the instructions. This allows for centralized metering data collection from a distributed system.
15. The non-transitory computer-readable storage medium of claim 13 , wherein the computer system is operably connected to the plurality of storage devices.
The storage medium described above, where the computer system executing the instructions is connected to the multiple storage devices where the data is stored. This allows the computer system to directly access and process the storage information.
16. The non-transitory computer-readable storage medium of claim 13 , wherein each extent of the plurality of extents is durably replicated across at least a plural subset of the plurality of storage devices.
The storage medium described above, where each data storage unit (extent) is reliably duplicated (replicated) across multiple storage devices, improving data availability and fault tolerance.
17. The non-transitory computer-readable storage medium of claim 13 , wherein the instructions further comprise instructions that, when executed by the one or more processors, cause the computer system to, prior to generating the first set of records, enable each of the storage devices to report the file system attributes for each extent stored thereon.
The storage medium described above further includes instructions that, before creating the initial set of records, enable each of the storage devices to report the file system attributes for each data storage unit (extent) it stores. This ensures that the storage devices are actively participating in the data gathering process.
18. The non-transitory computer-readable storage medium of claim 17 , wherein the instructions further comprise instructions that, when executed by the one or more processors, cause the computer system to cull the duplicate records by selecting a recent valid report for an extent.
The storage medium that enables storage devices to report file system attributes, also includes instructions to remove duplicate records by selecting the most recent valid report for each data storage unit (extent). This ensures that the system uses the latest and most accurate data.
19. The non-transitory computer-readable storage medium of claim 13 , wherein the instructions further comprise instructions that, when executed by the one or more processors, cause the computer system to provide programmatic access to the fourth set of records through one or more application programming interfaces (APIs).
The storage medium described above, which provides access to the final set of records (including file system sizes), does so through one or more application programming interfaces (APIs). This allows other software systems to easily access and use the data.
20. The non-transitory computer-readable storage medium of claim 13 , wherein the instructions further comprise instructions that, when executed by the one or more processors, cause the computer system to provide the fourth set of records to one or more services by pushing the fourth set of records to the one or more services.
The storage medium described above, which provides access to the final set of records (including file system sizes), sends (pushes) the data to one or more services. This automatically delivers the calculated file system information to the services that need it.
Unknown
September 5, 2017
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.