A computer-implemented method, system and computer program product for file system delta visualization
Patent Information
- Application Number
- TW113143961
- Authority / Receiving Office
- TW · TW
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2023-11-17
- Filing Date
- 2024-11-15
- Publication Date
- 2026-08-11
- Estimated Expiration
- 2044-11-14
AI Technical Summary
Current systems lack a convenient way to visualize differences between primary and replica storage systems in the event of a failure, which can be costly and time-consuming, especially in asynchronous replication scenarios.
A file system differential visualization method that indicates differences between primary and secondary data sets by visually representing file sizes and modification statuses, allowing users to quickly decide whether to restore primary or failover to replica storage.
Enables quick and informed decisions about storage system recovery, reducing overhead and conserving computing resources by providing comprehensive visual information on file modifications and priorities.
Smart Images

Figure TWG2TB001905470_001 
Figure TWG2TB001905470_002 
Figure TWG2TB001905470_003
Abstract
Description
File system differential visualization The present disclosure relates generally to the field of computing, and more particularly, to file system differential visualization. A file system is a data structure used by a computer operating system to control the storage and retrieval of data. Each group of data stored in a file system is called a file. A file system may be formatted or otherwise configured for a specific purpose (e.g., optical disks and hard drives). Aspects of the present disclosure relate to a computer program product, system, and method for differential visualization of file systems. Aspects of the present disclosure relate to a computer-implemented method that includes generating a file system differential visualization that indicates differences between files in a primary data set and a secondary data set. The file system differential visualization is generated by: visually representing the size of each file in the file system differential visualization; displaying a first subset of files stored in the file system using a first visual distinguishing indicator indicating a modified status, wherein the modified status indicates that the files in the first subset of files have been modified in the primary data set but not in the secondary data set; and displaying a second subset of files stored in the file system using a second visual distinguishing indicator indicating an unmodified status, wherein the unmodified status indicates that the files in the second subset of files have not been modified in both the primary data set and the secondary data set. Aspects of the present disclosure relate to a system comprising: one or more processors; and one or more computer-readable storage media collectively storing program instructions that, when executed by the one or more processors, are configured to cause the one or more processors to perform a method. The method includes generating a file system differential visualization that indicates differences between files in a primary data set and a secondary data set. The file system differential visualization is generated by: identifying a first group of files having a modified state and a high priority state; identifying a second group of files having a modified state and a low priority state; identifying a third group of files having an unmodified state and a high priority state; identifying a fourth group of files having an unmodified state and a low priority state; and visually distinguishing the first group of files, the second group of files, the third group of files, and the fourth group of files within the file system differential visualization. Aspects of the present disclosure relate to a computer program product comprising one or more computer-readable storage media and program instructions collectively stored on the one or more computer-readable storage media, the program instructions comprising instructions configured to cause one or more processors to perform a method. The method comprises receiving a primary dataset and a secondary dataset, the secondary dataset being a replicated version of the primary dataset at a specific point in time. The method further comprises determining differences between the primary dataset and the secondary dataset. The method further comprises determining that a condition for file system differential visualization is met. The method further comprises visualizing the differences between the primary dataset and the secondary dataset within a file system differential visualization. The above summary is not intended to describe each illustrated embodiment or every implementation of the present disclosure. Aspects of the present disclosure generally relate to the field of computing, and more particularly, to file system differential visualization. Although the present disclosure is not necessarily limited to such applications, various aspects of the present disclosure can be understood through discussion of various examples using this context. As discussed above, a file system is a data structure used by a computer operating system to control the storage and retrieval of data. Each group of data stored in a file system is called a file. A file system can be formatted or otherwise configured for a specific purpose (e.g., optical disks and hard drives). Data replication allows the same data to be stored across multiple storage systems. Synchronous replication writes data to both primary and replica storage simultaneously, while asynchronous replication writes data to primary storage first and then copies the data to the replica storage. Asynchronous replication has various benefits. Because the replicated data is written to the replica storage after it has been written to the primary storage, the performance and availability of the primary storage are not affected. Asynchronous replication can improve the performance of data replication by reducing the latency and bandwidth requirements of data transfer. However, because there is a delay in writing the replicated data to the replica storage, if downtime occurs, the data stored on the primary storage may be different (e.g., differential) than the data stored on the replica storage. Downtime associated with a primary storage system can be costly. Quickly making a decision about whether to restore the primary storage or failover to a replica storage system to reduce losses associated with a failure can be crucial. However, currently, there is no way for a user to conveniently visualize the differences between the primary and replica storage systems in the event of a failure. Aspects of the present disclosure recognize the benefits of visualizing the differences between the primary and replica storage systems in a data replication environment. Aspects of the present disclosure also recognize the benefits of being able to generate a visual representation of the differences between a first data set (e.g., a primary data set) and a secondary data set (e.g., a replica data set or a backup data set). The following description provides examples of embodiments of the present disclosure, and variations and substitutions may be made in other embodiments. Several examples will now be provided to further illustrate various aspects of the present disclosure. Example 1: A computer-implemented method, wherein the method includes generating a file system differential visualization that indicates differences between files in a primary dataset and a secondary dataset. The file system differential visualization is generated by: visually representing the size of each file in the file system differential visualization; displaying a first subset of files stored in the file system using a first visual distinguishing indicator indicating a modified status, wherein the modified status indicates that the files in the first subset of files have been modified in the primary dataset and not modified in the secondary dataset; and displaying a second subset of files stored in the file system using a second visual distinguishing indicator indicating an unmodified status, wherein the unmodified status indicates that the files in the second subset of files have not been modified in both the primary dataset and the secondary dataset. The above-described restrictions advantageously enable visualization of differences between a primary data set (e.g., stored on primary storage) and a secondary data set (e.g., stored on secondary storage). This can enable a user to make a quick and informed decision about whether to restore primary storage or failover to replica storage in the event of a storage system failure. This can reduce overhead associated with storage system failures. Additionally, aspects can improve processing efficiency compared to other approaches for file system visualization (e.g., where multiple file system views may be required to present data for each individual data set). Additionally, aspects conserve computing resources by removing the need for manual comparison of replicated / backed-up storage system data. Additionally, aspects accurately convey the differences between the primary and secondary data sets. Example 2: As limited in Example 1, wherein the first visually distinguishing indicator further indicates a first priority status of the first subset of files. The above limitation advantageously enables a user to view the importance (e.g., priority) of files that have been modified within the file system differential visual representation. This can assist the user in making a quick and informed decision regarding whether to restore the primary storage or failover to the replica storage in the event of a storage system failure. For example, if the file system differential visual representation indicates that a high-priority file has been modified within the primary data set but not within the secondary data set, the user may want to restore the primary storage rather than failover to the secondary storage. Example 3: The limitation of any one of Examples 1-2, wherein the second visual distinction indicator further indicates a second priority status of the second subset of files. The above limitation advantageously enables a user to view the importance (e.g., priority) of files that have been modified within the file system differential visual representation. This can assist the user in making a quick and informed decision regarding whether to restore the primary storage or failover to the replica storage in the event of a storage system failure. For example, if the file system differential visual representation indicates that a high-priority file has been modified within the primary data set but not within the secondary data set, the user may want to restore the primary storage rather than failover to the secondary storage. Example 4: As limited in any of Examples 1-3, wherein the files within the differential visual representation of the file system are sorted based on at least one file attribute. This limitation advantageously enables sorting of files within the differential visual representation of the file system. This can enhance processing efficiency within the differential visual representation of the file system because input actions required to navigate files within the differential visual representation of the file system can be reduced. Furthermore, because the file attribute based on which the files within the differential visual representation of the file system are sorted can be varied, the usability of the system can be enhanced because users can select the file attribute based on which they wish to sort the files. Example 5: As limited in any of Examples 1-4, wherein the at least one file attribute is selected from the group consisting of: file name, file size, and last modified time. The above-described limitations advantageously enable sorting of files within the differential visual representation of the file system. This can enhance processing efficiency within the differential visual representation of the file system because input actions required to navigate files within the differential visual representation of the file system can be reduced. Furthermore, because the file attribute based on which files within the differential visual representation of the file system are sorted can be varied, the usability of the system can be enhanced because users can select the file attribute based on which they wish to sort files. Example 6: As in any of the limitations of Examples 1 to 5, wherein at least one file attribute is a file name, wherein the file system differential visualization is a geometric shape having a plurality of columns and a plurality of rows, each unique combination of columns and rows corresponding to a cell, wherein each cell corresponds to a storage size, and wherein the files are alphabetically sorted in a serpentine pattern within the geometric shape. The above limitations advantageously enable sorting of files based on their names as displayed within the cell grid, wherein each cell corresponds to a storage size. This can facilitate viewing of files alphabetically sorted in a serpentine pattern within the file system differential visualization. Additionally, the size of a file can be determined based on the number of cells occupied by the file within the file system differential visualization. Example 7: As a limitation of any of Examples 1 to 6, wherein a third subset of files is displayed within the file system differential visual representation, the third subset of files being new files added to the primary data set but not to the secondary data set, the third subset of files being displayed using a third visual distinguishing indicator. The above limitation advantageously enables visualization of new files that have been added to the primary data set but not yet added to the replicated (e.g., secondary) data set. This can assist a user in making a quick and informed decision regarding whether to restore the primary storage or failover to the replica storage in the event of a storage system failure. For example, if new files (e.g., indicated as important) have been added to the primary data set, then restoring the primary storage may be desirable compared to failover to the replica storage that does not include the new files. Example 8: As in any of Examples 1 to 7, wherein the first visually distinguishing indicator is a first color, and wherein the second visually distinguishing indicator is a second color. The above limitation advantageously enables a user to easily determine which files have a modified status and which files have an unmodified status based on color. Example 9: The limitation of any one of Examples 1 to 7, wherein the first visually distinguishing indicator is a first texture, and wherein the second visually distinguishing indicator is a second texture. The above limitation advantageously enables a user to easily determine which files have a modified status and which files have an unmodified status based on the texture. Example 10: The limitation of any one of Examples 1 to 9, wherein the method further comprises receiving a zoom-in input action, and in response to receiving the zoom-in input action, redisplaying the file system differential visual representation using a zoomed-in view. The above limitation advantageously enables a user to perform a zoom action to view different portions of the file system differential visual representation in greater detail. Example 11: A system comprising: one or more processors; and one or more computer-readable storage media collectively storing program instructions that, when executed by the one or more processors, are configured to cause the one or more processors to perform the method of any one of Examples 1 to 10. The above limitations advantageously enable the system comprising one or more processors to perform and achieve the advantages described with respect to Examples 1 to 10. Example 12: A computer program product comprising one or more computer-readable storage media, and program instructions collectively stored on the one or more computer-readable storage media, the program instructions comprising instructions configured to cause one or more processors to perform the method of any one of Examples 1 to 10. The above restrictions advantageously enable the computer program product having the program instructions to be configured to cause one or more processors to execute and achieve the advantages described with respect to Examples 1 to 10. Example 13: A system comprising one or more processors and one or more computer-readable storage media collectively storing program instructions, the program instructions being configured to cause the one or more processors to perform a method when executed by the one or more processors. The method comprises generating a file system differential visualization indicating differences between files in a primary data set and a secondary data set. The file system differential visualization is generated by: identifying a first group of files having a modified state and a high priority state; identifying a second group of files having a modified state and a low priority state; identifying a third group of files having an unmodified state and a high priority state; identifying a fourth group of files having an unmodified state and a low priority state; and visually distinguishing the first group of files, the second group of files, the third group of files, and the fourth group of files within the file system differential visualization. The above-described restrictions advantageously enable visualization of differences between a primary data set (e.g., stored on primary storage) and a secondary data set (e.g., stored on secondary storage). This can enable a user to make a quick and informed decision about whether to restore primary storage or failover to replica storage in the event of a storage system failure. This can reduce overhead associated with storage system failures. Additionally, aspects can improve processing efficiency compared to other approaches for file system visualization (e.g., where multiple file system views may be required to present data for each individual data set). Additionally, aspects conserve computing resources by removing the need for manual comparison of replicated / backed-up storage system data. Visualizing different groups of files based on modification status and / or priority status provides the user with comprehensive information about whether to restore primary storage or failover to replica storage in the event of a storage system failure. Additionally, aspects accurately convey the differences between the primary and secondary data sets. Example 14: As limited to Example 13, wherein the file system differential visualization is represented as a pie chart, wherein each of the first group, the second group, the third group, and the fourth group is depicted in a respective slice of the pie chart. The above limitation advantageously improves the file system visualization by depicting different file groups within the slices of the pie chart based on modification status and / or priority status. This enables a user to easily determine the number of files belonging to a given file group (e.g., based on storage size), which can enable the user to make a quick and informed decision on whether to restore primary storage or failover to replica storage in the event of a storage system failure. Example 15: As limited in any of Examples 13-14, wherein each slice of the pie chart is sized based on storage size. This limitation advantageously improves file system visualization by depicting different file groups within the slices of the pie chart based on modification status and / or priority status. This enables a user to easily determine the number of files belonging to a given file group (e.g., based on storage size), which can enable the user to make a quick and informed decision on whether to restore primary storage or failover to replica storage in the event of a storage system failure. Example 16: As limited in any of Examples 13-15, wherein the file system differential visualization is represented as a geometric shape comprising a plurality of rows and a plurality of columns, each unique row and column combination corresponding to a cell, wherein each cell corresponds to a storage size, wherein a first group occupies a first number of cells, wherein a second group occupies a second number of cells, wherein a third group occupies a third number of cells, and wherein a fourth group occupies a fourth number of cells. The above limitation advantageously improves the file system visualization by depicting different file groups within the geometric shape comprising a grid of cells based on modification status and / or priority status, wherein each cell corresponds to a storage size. This enables a user to easily determine the amount of files belonging to a given file group (e.g., based on storage size), which can enable the user to make a quick and informed decision whether to restore primary storage or failover to replica storage in the event of a storage system failure. Example 17: A computer program product comprising one or more computer-readable storage media, and program instructions collectively stored on the one or more computer-readable storage media, the program instructions comprising instructions configured to cause one or more processors to perform the method of any one of Examples 13 to 16. The above restrictions advantageously enable the computer program product having the program instructions to be configured to cause one or more processors to execute and achieve the advantages described with respect to Examples 13 to 16. Example 18: A computer-implemented method comprising generating a file system differential visualization representation indicating differences between files of a primary data set and a secondary data set as in any of Examples 13-16. Example 19: A computer program product comprising one or more computer-readable storage media and program instructions collectively stored on the one or more computer-readable storage media, the program instructions comprising instructions configured to cause one or more processors to perform a method. The method comprises receiving a primary dataset and a secondary dataset, the secondary dataset being a replicated version of the primary dataset at a specific point in time. The method further comprises determining a difference between the primary dataset and the secondary dataset. The method further comprises determining that a condition for file system differential visualization is met. The method further comprises visualizing the difference between the primary dataset and the secondary dataset in a file system differential visualization representation. The above-described restrictions advantageously enable visualization of differences between a primary data set (e.g., stored on primary storage) and a secondary data set (e.g., stored on secondary storage). This can enable a user to make a quick and informed decision about whether to restore primary storage or failover to replica storage in the event of a storage system failure. This can reduce overhead associated with storage system failures. Additionally, aspects can improve processing efficiency compared to other approaches for file system visualization (e.g., where multiple file system views may be required to present data for each individual data set). Additionally, aspects conserve computing resources by removing the need for manual comparison of replicated / backed-up storage system data. Additionally, aspects accurately convey the differences between the primary and secondary data sets. Example 20: As in Example 19, wherein the file system differential visualization depicts different file names within a two-dimensional (2D) graphical representation, each file name occupying a certain amount of space within the 2D graphical representation, wherein the amount of space occupied by each file name is visually distinguished based on modification status and priority status. The above limitation advantageously improves the file system visualization by depicting different file names that are visually distinguished based on modification status and / or priority status. This enables a user to easily identify files with a particular modification / priority status, which can enable the user to make a quick and informed decision regarding whether to restore primary storage or failover to replica storage in the event of a storage system failure. Example 21: As limited by Example 19, wherein the file system differential visualization depicts different file classifications within a two-dimensional (2D) graphical representation, each file classification occupying a certain amount of space within the 2D graphical representation, wherein the amount of space occupied by each file classification is visually distinguished using a visual distinguishing indicator, wherein the file classifications include an unmodified and high priority classification, an unmodified and low priority classification, a modified and high priority classification, and a modified and low priority classification. Visualizing different file groups based on modification status and / or priority status provides a user with comprehensive information regarding whether to restore primary storage or failover to replica storage in the event of a storage system failure. Example 22: As in Example 21, wherein the program instructions include additional program instructions configured to cause one or more processors to perform the method, the method further comprising: receiving an input command to filter a first file classification; and removing the first file classification from the file system differential visual representation. The above limitation advantageously enables filtering specific file classifications from the file system differential visual representation. This can enable a user to remove specific file groups from the file system differential visual representation, thereby improving processing efficiency (e.g., eliminating the need to add file groups deemed unnecessary for viewing). Example 23: The limitation of any one of Examples 19 to 22, wherein the file system difference visualization corresponds to the current difference between the primary data set and the secondary data set. The above limitation advantageously enables a user to view changes between the primary data set and the secondary data set in "real time." Example 24: A computer-implemented method comprising: receiving a primary dataset and a secondary dataset, the secondary dataset being a replicated version of the primary dataset at a specific point in time; determining differences between the primary dataset and the secondary dataset; determining that a condition for file system differential visualization is met; and visualizing the differences between the primary dataset and the secondary dataset in a file system differential visualization. The computer-implemented method may implement any of the limitations of Examples 20-23. The computer-implemented method implements improvements to Examples 19-23. Example 25: A system comprising: one or more processors; and one or more computer-readable storage media collectively storing program instructions that, when executed by the one or more processors, are configured to cause the one or more processors to perform the method of any one of Examples 19 to 23. The above limitations advantageously enable a system comprising one or more processors to perform and achieve the advantages described with respect to Examples 19 to 23. Example 26: A computer-implemented method, system, or computer program product for file system visualization. The method, system, or computer program product comprises: receiving a primary dataset and a secondary dataset, the secondary dataset being a replicated version of the primary dataset at a current point in time; determining differences between the primary dataset and the secondary dataset; determining whether a condition for file system differential visualization is met; and visualizing the differences between the primary dataset and the secondary dataset in a file system differential visualization representation, wherein the file system differential visualization representation depicts different file classifications within a two-dimensional (2D) graphical representation, each file classification occupying a certain amount of space within the 2D graphical representation, wherein the amount of space occupied by each file classification is visually distinguished using a visual distinguishing indicator, wherein the file classifications include an unmodified and high priority classification, an unmodified and low priority classification, a modified and high priority classification, and a modified and low priority classification. Visualizing different file groups based on modification status and / or priority status provides a user with comprehensive information regarding whether to restore primary storage or failover to replica storage in the event of a storage system failure. Aspects allow for convenient and accurate viewing of differences between files in a primary data set (e.g., stored on primary storage) and a secondary data set (e.g., stored on secondary storage such as replicated / backup storage). Aspects of the present disclosure may be used in technical scenarios where a storage system includes multiple storage devices. In particular, aspects of the present disclosure may be used in storage systems incorporating asynchronous replication. Referring to FIG. 1 , an example network environment according to an embodiment of the present disclosure is shown. Network environment 100 is presented to illustrate an example of an environment in which the systems and methods according to the present disclosure may be implemented. Network environment 100 is provided as an example and not as a limitation. In addition to the illustrated network environment 100, the systems and methods disclosed herein are applicable to a wide variety of different network environments. As shown, network environment 100 includes one or more computers 102, 106 interconnected by a network 104. Network 104 may include, for example, a local area network (LAN) 104, a wide area network (WAN) 104, the Internet 104, an intranet 104, or the like. In some embodiments, computers 102, 106 may include both a client computer 102 and a server computer 106 (also referred to herein as a "host system" 106). Generally, client computer 102 initiates a communication session, while server computer 106 awaits requests from client computer 102. In some embodiments, computers 102 and / or server 106 may be connected to one or more internal or external direct-attached storage systems 110a (e.g., arrays of hard drives, solid-state drives, tape drives, etc.). The computers 102, 106 and direct attached storage system 110a may communicate using a protocol such as Advanced Technology Attachment (ATA), Serial Advanced Technology Attachment (SATA), Small Computer System Interface (SCSI), Serial Attached SCSI (SAS), Fibre Channel, or the like. In some embodiments, the network environment 100 may include a storage network 108 behind the server 106, such as a storage area network (SAN) 108 or a LAN 108 (for example, when network attached storage is used). This storage network 108 may connect the server 106 to one or more storage systems, such as an array of hard drives or solid-state drives 110b, a tape library 110c, individual hard drives 110d or solid-state drives 110d, a tape drive 110e, a CD-ROM library, or the like. To access the storage system 110, the host system 106 may communicate via a physical connection from one or more ports on the host system 106 to one or more ports on the storage system 110. The connection may be made via a switch, a mesh fabric, a direct connection, or the like. In some embodiments, the server 106 and the storage system 110 may communicate using a network connection standard such as Fibre Channel (FC). Storage system 110 may include primary storage and secondary storage. The primary storage may include a primary dataset, and the secondary storage may include a secondary dataset (e.g., a replicated or backup dataset). The primary storage may replicate / back up to the secondary storage synchronously (e.g., simultaneously) or asynchronously (e.g., the primary storage may be updated first, and changes made to the primary storage may be replicated to the secondary storage after some delay). Embodiments of the present disclosure may be configured to visualize the differences between the primary dataset of the primary storage and the secondary dataset of the secondary storage of storage system 110 at any given point in time. Specifically, program instructions (e.g., stored on and executed by server 106) may be configured to perform aspects of the present disclosure by visualizing the differences between the primary dataset and the secondary dataset within a file system differential visualization. 2 , a storage system 110 including an array of hard drives 204 and / or solid-state drives 204 is shown according to an embodiment of the present disclosure. As shown, the storage system 110 includes a storage controller 200, one or more switches 202, and one or more storage drives 204, such as hard drives 204 or solid-state drives 204 (such as flash-based drives 204). The storage controller 200 enables one or more host systems 106 (e.g., open systems and / or mainframe computer servers 106 running an operating system such as z / OS, zVM, or the like) to access data in the one or more storage drives 204. In one embodiment, the storage controller 200 includes one or more servers 206. The storage controller 200 may also include a host adapter 208 and a device adapter 210 to connect the storage controller 200 to the host system 106 and the storage drives 204, respectively. The multiple servers 206a and 206b provide redundancy to ensure that data is always available to the connected host systems 106. Therefore, if one server 206a fails, another server 206b can take over the I / O load of the failed server 206a, ensuring that I / O can continue between the host system 106 and the storage drives 204. In one embodiment, each server 206 may include one or more processors 212 and memory 214. Memory 214 may include volatile memory (e.g., RAM) and non-volatile memory (e.g., read-only memory (ROM), erasable programmable read-only memory (EPROM), EEPROM, a hard drive, flash memory, etc.). In some embodiments, the volatile and non-volatile memories may be stored in software modules that execute on the processor 212 and are used to access data in the storage drive 204. These software modules may manage all read and write requests to the logical disk volumes in the storage drive 204. In one embodiment, the memory 214 includes a cache 218, such as a DRAM cache 218. Whenever a host system 106 (e.g., an open system or mainframe server 106) performs a read operation, the server 206 performing the read can retrieve the data from the storage drive 204 and store the data in its cache 218 if the data is needed again. If the host system 106 requests the data again, the server 206 can retrieve the data from the cache 218 instead of from the storage drive 204, saving both time and resources. Similarly, when the host system performs a write, the server 106 receiving the write request can store the write in its cache 218 and later destage the write to the storage drive 204. While the write is stored in the cache 218, it can also be stored in the non-volatile storage (NVS) 220 of the opposing server 206, allowing the write to be recovered by the opposing server 206 in the event of a failure of the first server 206. In some embodiments, NVS 220 is implemented as a batch-backed memory in the peer server 206 . An example of a storage system 110 having an architecture similar to that depicted in FIG. 2 is the IBM DS8000 ® Enterprise storage system. DS8000 ® This is a high performance, high capacity storage controller that provides disk storage designed to support continuous operation. However, the system and method disclosed herein are not limited to IBM DS8000 ® The present invention is not intended to operate with an enterprise storage system 110, but may operate with any comparable or similar storage system 110, regardless of the manufacturer, product name, components, or component names associated with the system 110. Furthermore, any storage system that can benefit from one or more embodiments of the present invention is considered to be within the scope of the present invention. Thus, the IBM DS8000® is presented as an example and is not intended to be limiting. Storage drive 204 may be the same as or substantially similar to storage system 110 of FIG. 1 . That is, storage drive 204 may include primary storage and secondary storage. The primary storage may include a primary data set, and the secondary storage may include a secondary data set. The primary storage may be replicated / backed up to the secondary storage synchronously or asynchronously. Embodiments of the present disclosure may be configured to visualize the differences between the primary data set of the primary storage and the secondary data set of the secondary storage of storage drive 204 at any given point in time. Specifically, program instructions (e.g., stored on and executed by server 206 ) may be configured to perform aspects of the present disclosure by visualizing the differences between the primary data set and the secondary data set within a file system differential visualization. 3A , an example file system differential visualization according to an embodiment of the present disclosure is shown. The file system differential visualization can depict whether differences exist between files in a primary data set (e.g., stored in primary storage) and a secondary data set (e.g., stored in secondary storage such as replica storage or backup storage), as well as specific files that have been modified. While the following examples describe differential visualization within a file system, the same visualization approach can be applied to other data storage systems, both logical and physical. Logical storage interfaces to which differential visualization can be applied include databases, object stores, and block volumes. Physical storage devices to which differential visualization can be applied include disks and flash drives, redundant arrays of independent disks (RAID), tape drives, solid-state drives, and optical media. Finally, differential visualization can be configured to depict the differences between a primary data set stored in primary storage and a secondary data set stored in secondary storage, regardless of the specific logical / physical storage format / device. As shown in FIG3A , the file system differential visualization can be a 2-dimensional (2D) graphical representation. The 2D graphical representation can be a geometric shape, shown as a rectangle in FIG3A , but other shapes are contemplated. A plurality of columns and rows can be implemented to divide the geometric shape into cells or pixels, which can correspond to the storage space occupied (e.g., based on the number of cells occupied). As shown in FIG3A , the file " / a" is depicted within the first column of the geometric shape, while the file " / da" spans two columns within the geometric shape. The files in FIG3A are sorted alphabetically based on their names in a serpentine fashion. In the specific embodiment depicted in FIG3A , the files are sorted from left to right and from right to left in alternating columns from the top to the bottom of the geometric shape. For example, once the first column containing " / a," " / b," " / c," and " / da" is full, the next column down (e.g., the second column from the top) begins from right to left (e.g., " / da" spans the first and second columns). However, other ways of ordering the files in FIG. 3A are contemplated. For example, the sorting may occur: left to right and top to bottom (where as each upper row is filled, the lower row is next filled from left to right); right to left and top to bottom (where as each upper row is filled, the lower row is next filled from right to left); left to right and bottom to top (where as each lower row is filled, the upper row is next filled from left to right); right to left and bottom to top (where as each lower row is filled, the upper row is next filled from right to left); Fill the upper column with the left); top-down and left-to-right (where as each left-going row is filled, the right-going row is filled from top to bottom); bottom-up and left-to-right (where as each left-going row is filled, the right-going row is filled from bottom to top); top-down and right-to-left (where as each right-going row is filled, the left-going row is filled from top to bottom); and bottom-up and right-to-left (where as each right-going row is filled, the left-going row is filled from bottom to top). Serpentine ordering can occur in any direction without departing from the spirit and scope of the present disclosure. For example, although depicted as a serpentine pattern from left to right and top to bottom, other possible serpentine patterns are: right to left and top to bottom, left to right and bottom to top, right to left and bottom to top, top to bottom and left to right (e.g., with rows changing direction), top to bottom and right to left, bottom to top and left to right, and bottom to top and right to left. The file system differential visual representation includes the name of each file stored in the file system (e.g., " / a", " / b", " / c", " / da", " / db", and " / e"). In the embodiment depicted in Figure 3A, the files are sorted alphabetically based on the name. However, the files may be sorted based on any other suitable attribute. Other attributes based on which the files in the file system differential visual representation may be sorted include size, time since last update, age, and priority level, among other potential attributes. In some embodiments, the files may be sorted based on spatial location within the storage media (e.g., HDD or SSD). In some embodiments, the files may not be sorted at all. As also depicted in FIG3A , files are visually represented by size. That is, file " / a" has a first visually represented size, file " / b" has a second visually represented size, file " / c" has a third visually represented size, file " / da" has a fourth visually represented size, file " / db" has a fifth visually represented size, and file " / e" has a sixth visually represented size. As shown in FIG3A , " / b" is the smallest file, and " / e" is the largest file. The size of each file is visually represented based on the screen space occupied (e.g., based on the number of cells / pixels occupied within the graphical representation). However, in embodiments, the size of each file may be visually represented in some other manner (e.g., based on color, pattern, shading, etc.). In one embodiment, to represent files based on size within a file system differential visualization, a mapping (e.g., a relationship) may be established between grid cells (e.g., cells or pixels) of the file system differential visualization and the data size of each file (e.g., in kilobytes (KB), megabytes (MB), or any other data unit). For example, a 4MB file may occupy a first number of rows / columns or pixels (e.g., 8 cells) within the file system differential visualization, while an 8MB file may occupy a second number of rows / columns or pixels (e.g., 16 cells) within the file system differential visualization. Each file in FIG3A has associated visually distinguishing indicators depicting a modified status and a priority status. The modified status indicates whether a given file has been updated in the primary dataset (e.g., on primary storage) but not in a secondary dataset (e.g., a secondary storage such as a replica dataset or a backup dataset). For example, if a file is indicated as modified, the file has been updated in the primary dataset but not in the secondary dataset. If a file is indicated as unmodified, the file has not been updated in either the primary dataset or the secondary dataset. The priority status indicates the level of importance of a file. For example, a file marked or otherwise indicated as "high priority" or "important" is a file that has been determined to be of great significance, while a file marked or otherwise indicated as "low priority" or "unimportant" is a file that has been determined to be of less significance. The priority status of a file can be indicated in any suitable manner. In some embodiments, the priority status is manually defined. The priority status can be set based on how frequently a file is referenced and / or used. The priority status can also or alternatively be set based on the type of file. For example, system files (e.g., files required for use by the operating system) can be given a relatively higher priority than application files. In embodiments, file priority can be indicated based on a tag or other indicator within the data behind each individual file. The tag applied to a file to indicate priority can be applied manually by a user or programmatically (e.g., via an application). In some embodiments, the fully qualified file name (FQFN) of the file can be used to indicate priority. For example, if the FQFN of a file indicates that the file is in a specific subdirectory or matches a specific pattern, the corresponding priority can be determined based on the subdirectory or pattern corresponding to the FQFN. However, the priority of a specific file can be established in any suitable manner without departing from the spirit and scope of the present disclosure. In some embodiments, priority levels may be indicated by numerical values (e.g., values between 0 and 10). In such embodiments, priority levels may be determined as "high," "low," or any other classification (e.g., "medium") based on a comparison between the priority value and one or more priority thresholds. For example, a first priority threshold (e.g., 7 or greater) may indicate that any file that meets (e.g., exceeds) the first priority threshold is marked with a first priority level (e.g., "high"), a second priority threshold (e.g., between 5 and 7) may indicate that any file that meets the second priority threshold is marked with a second priority level (e.g., "medium"), and a third priority threshold (e.g., 5 or less) may indicate that any file that meets the third priority threshold is marked with a third priority level (e.g., "low"). As shown in Figure 3A, file " / a" has a first visual distinguishing indicator, which specifies that file " / a" has a modified status and is marked as important. File " / b" has a second visual distinguishing indicator, which specifies that file " / b" has a modified status and is not marked as important. File " / c" has a third visual distinguishing indicator, which specifies that file " / c" has an unmodified status and is marked as important. File " / da" has a fourth visual distinguishing indicator, which specifies that file " / da" has an unmodified status and is not marked as important. File " / db" has a third visual distinguishing indicator, which specifies that file " / db" has an unmodified status and is marked as important. File " / e" has a first visual distinguishing indicator, which specifies that file " / e" has a modified status and is marked as important. Therefore, multiple files can have the same visual distinguishing indicator (for example, files " / a" and " / e" both have the first visual distinguishing indicator). In an embodiment, only a single file may have a given visual distinguishing indicator (eg, only the file " / b" has the second visual distinguishing indicator). While the visually distinguishing indicators depicted in FIG3A are shown as different textures, any other suitable visually distinguishing indicators may be implemented without departing from the spirit and scope of the present disclosure. For example, the visually distinguishing indicators may implement colors, hues, tones, shapes, symbols, icons, or any other suitable visually distinguishable indicators. As an example, a first visually distinguishable indicator may be a first color (e.g., blue), a second visually distinguishable indicator may be a second color (e.g., red), a third visually distinguishable indicator may be a third color (e.g., yellow), and a fourth visually distinguishable indicator may be a fourth color (e.g., green). In embodiments, shapes, icons, or other symbols may be inserted into the occupied file space (e.g., in a corner, side, or any other suitable location within the file space within the differential visual representation of the file system) to indicate a modified state, priority state, or other file attribute. The file system differential visualization of FIG3A can assist a user in determining the number of modified files and / or the relative importance of the modified files. This can assist a user in determining whether to restore the primary storage or failover to the secondary storage. For example, following the example depicted in FIG3A , a user may need to restore the primary storage because the primary storage includes modified files marked as important (e.g., file " / a" and file " / e"). Upon consideration, the file system differential visualizations of Figures 3A-3B and 5A-5B can be performed for virtual files in a virtual file system (VFS). That is, the differences between files in the primary and secondary VFSs can be determined. A virtual file system differential visualization can then be generated that depicts changes made to files between the primary and secondary VFSs and / or the priority of files. In one embodiment, a file system differential visualization can be generated between a physical file system and a virtual file system (e.g., a primary data set can correspond to a virtual file system and a secondary data set can correspond to a physical file system, or vice versa). In some embodiments, a file system differential visualization can be generated even if no changes have been made to the files between the primary and secondary datasets. In these embodiments, the priority of the files and / or other characteristics of the files (e.g., size, file type, location, etc.) can still be indicated in the file system differential visualization. In some embodiments, files that have recently been introduced into the primary dataset but have not yet been added to the secondary dataset can be depicted using specific visually distinguishable indicators within the file system differential visualization. In one embodiment, a user viewing a file system differential visualization may be permitted to perform input actions to modify the view of the file system differential visualization. For example, the file system differential visualization may be configured to allow the user to zoom in (e.g., see FIG. 3B ) and out (e.g., see FIG. 3B ) to further examine a portion of a file or a subset of files within the file system differential visualization. If the file system differential visualization is large (e.g., exceeds the amount of space required to display all files on a given screen), a scrolling feature may be enabled to allow the user to scroll through multiple files within the file system differential visualization. Scrolling down may allow the user to view files further down the file system differential visualization, while scrolling up may allow the user to view files further up the file system differential visualization. This may be particularly useful for file system differential visualizations that include many files or large files. Additionally, in one embodiment, input actions (e.g., hovering and / or pointer actions) may be available to the user to allow the user to examine specific files. For example, hovering over a specific file may display specific properties of the file. For example, if a user hovers over the file " / a", information such as the file path (e.g., " / home / user / work / a"), the last modification time (e.g., 2:02:02 02 / 02 / 2023), size (e.g., 128K), and / or offset (e.g., 502K) may be displayed. In an embodiment, a user may be permitted to filter out specific files and / or categories (e.g., based on modified / priority status) from the file system differential visual representation. For example, a user may be permitted to type an input action to filter out files belonging to the category "Modified data, not marked as important." This will remove files belonging to the category "Modified data, not marked as important" from the view in Figure 3A. A user may also be permitted to filter out specific files from the file system differential visual representation. For example, a user may be permitted to filter out the file " / db" so that the file " / db" does not exist in the file system differential visual representation. Filtering may be applied based on any suitable file characteristic (e.g., priority status, modified status, size, name, etc.). Filtering may be permitted to occur within any of the file system differential visual representations, such as those depicted in Figures 3B, 5A, and 5B. It should be noted that FIG3A is merely an illustrative representation of a file system differential visualization. The number of files, file naming types, file order, file size, applied visually distinguishable indicators, attributes captured within the visually distinguishable indicators, and / or other layout features may vary without departing from the spirit and scope of this disclosure. Furthermore, different logical / physical storage formats may implement the differential visualization technique of FIG3A without departing from the spirit and scope of this disclosure. Referring now to FIG. 3B , a zoomed-in version of the archive system differential visualization of FIG. 3A is shown, according to an embodiment of the present disclosure. As depicted in FIG. 3B , a user may have executed a command (e.g., via an input device (mouse / keyboard) or input mechanism (voice command, gesture command, touch command, etc.)) to cause a zoom action to be performed on the archive system differential visualization of FIG. 3A , thereby generating the zoomed-in view of FIG. 3B . This allows the user to inspect specific files and portions thereof. This can be particularly helpful when a large number of files are included in the archive system differential visualization, allowing the user to focus on areas of interest within the plurality of files. 4 , a flowchart illustrating an example method 400 for generating a differential visualization of a file system according to an embodiment of the present disclosure is shown. One or more operations of method 400 may be performed by one or more processing circuits (e.g., server 106 , client 102 , server 206 , device adapter 210 , storage drive 204 , storage controller 200 , computer 801 , or end-user device 803 ). Method 400 begins at operation 405, where a primary dataset (e.g., a primary version of a file system) and a secondary dataset (e.g., a replicated or backup version of a file system) are received. In some embodiments, receiving the primary dataset and the secondary dataset may include inspecting, reading, or otherwise viewing the primary dataset and the secondary dataset in storage. However, in some embodiments, receiving the primary dataset and the secondary dataset may include actually receiving data for the primary dataset and the secondary dataset (e.g., via a network). Determine the difference (e.g., the difference) between the primary dataset and the secondary dataset. This is illustrated at operation 410. Determining the difference between the primary dataset and the secondary dataset can be accomplished by determining new files added to the primary dataset, files removed from the primary dataset, and / or changes made to files within the primary dataset compared to the secondary dataset. The comparison can be accomplished by comparing snapshots representing the state of the file system within the primary dataset and the secondary dataset, for example, using a difference command or storage management application function. Thus, alphanumeric data (e.g., text data) representing the difference between the primary dataset and the secondary dataset can be received. In some embodiments, the comparison need not be accomplished by comparing the entire state of the primary dataset and the secondary dataset. Instead, changes can be continuously monitored over time by tracking the data units that have changed between the primary dataset and the secondary dataset, making a full comparison unnecessary. Priority data for the files is then received. This is illustrated at operation 415. The priority data may be set in the same or substantially similar manner as described with respect to FIG. 3A. The priority data indicates the relative importance of each file, which may be indicated by a classification (e.g., "high priority," "medium priority," and "low priority"). The assigned priority classification may be manually assigned based on the file type or other file attributes (e.g., frequency of use) or based on a priority value assigned to each file. A determination is then made as to whether the conditions for file system differential visualization are met. This is illustrated at operation 420. The conditions for initiating file system differential visualization may vary. In one embodiment, file system differential visualization may be initiated in response to a user request (e.g., a manual request from a user). In one embodiment, file system differential visualization may be initiated in response to an indication that the primary storage system containing the primary dataset has experienced downtime (e.g., data corruption, hardware failure, network loss, etc.). This may be accomplished because a user may wish to view the differences between the primary dataset and the secondary dataset to determine whether to perform a failover to a secondary storage containing the secondary dataset or to restore the primary dataset from the primary storage (if possible). In one embodiment, file system differential visualization may be initiated in response to a determination that the primary and secondary datasets have changed (e.g., based on a determination at operation 410 that a differential exists). In some embodiments, a user may be permitted to view a file system differential visualization in "real time" or "historical" fashion. That is, as changes are made, the file system differential visualization may be dynamically updated, allowing the user to view the file system differential visualization as changes are made (e.g., in "real time"). In some embodiments, the user may be permitted to view the file system differential visualization at a specific point in time in the past (e.g., one hour ago, one day ago, one month ago, etc.). If it is determined that the conditions for file system visualization are not met, method 400 may continue to operation 420 until the conditions for file system visualization are met. If it is determined that the conditions for file system visualization are met, the difference between the primary data set and the secondary data set is visualized in a file system difference visualization. This is illustrated at operation 425. For example, the file system difference visualization depicted in FIG. 3A may be visualized in response to identifying that the conditions for file system visualization are met. The aforementioned operations may be completed in any order and are not limited to the order described. Additionally, some, all, or none of the aforementioned operations may be completed while still remaining within the spirit and scope of the present disclosure. Referring now to FIG5A , another example file system differential visualization according to an embodiment of the present disclosure is shown. Compared to FIG3A , FIG5A depicts groups of files belonging to the same classification as indicated by the visual distinguishing indicator, rather than the individual files themselves. That is, a first group of files (e.g., one or more files) belongs to classification “B,” a second group of files belongs to classification “A,” a third group of files belongs to classification “C,” and a fourth group of files belongs to classification “D.” The file system differential visualization of FIG5A enables a user to easily determine the number of files or the amount of data belonging to a particular classification. For example, referring to FIG3A , not all visualized files “ / a” and “ / e” are captured by the same visual distinguishing indicator; in FIG5A , files “ / a” and “ / e” both belong to classification “B.” Therefore, in the view depicted in FIG5A , the amount of data displayed in the file system differential visualization can be reduced. As depicted in Figure 5A, files belonging to category "B" are files that have a modified status (e.g., files that are modified in the primary data set but not in the secondary data set) and are marked with an "important" priority status. Category "B" is marked with a first visual distinguishing indicator (e.g., a first texture). Files belonging to category "A" are files that have a modified status and are not marked as "important". Category "A" is marked with a second visual distinguishing indicator. Files belonging to category "C" are files that have an unmodified status and are marked with an "important" priority status. Category "C" is marked with a third visual distinguishing indicator. Files belonging to category "D" are files that have an unmodified status and are not marked as "important". Category "D" is marked with a fourth visual distinguishing indicator. Similar to FIG3A , the size of each individual group classification is depicted within the file system differential visualization based on the screen space occupied (e.g., the number of cells or pixels occupied). For example, a relationship can be established between the amount of space occupied (e.g., the number of cells or pixels) and the data size of the file group classification to visually depict the size of each file group. As shown in FIG5A , file group "A" is the smallest file group (e.g., in terms of data size, not necessarily the number of files), and file group "C" is the largest file group. The file system differential visualization of FIG. 5A may include various features discussed with respect to FIG. 3A . Specifically, zooming and / or scrolling functionality may be enabled to explore / inspect specific file groups (e.g., categories). In one embodiment, input actions (e.g., hovering, right-clicking, left-clicking) may allow a user to inspect file groups. For example, right-clicking, hovering over, or otherwise inputting to file category “B” within the file system differential visualization may enable a user to view specific files included in group “B” and the properties of specific files within group “B.” The file system differential visualization of FIG5A can assist a user in determining the number of modified files and / or the relative importance of the modified files. This can assist a user in determining whether to restore the primary storage or failover to the secondary storage. For example, following the example depicted in FIG5A , a user may need to restore the primary storage because the primary storage includes modified files that are marked as important (e.g., represented as Group "B"). The file system differential visual representation depicted in FIG5A is illustrative only. The number of file groups, file group naming type, file group order, file group size, applied visually distinguishable indicators, attributes captured within the visually distinguishable indicators, and / or other layout features may vary without departing from the spirit and scope of the present disclosure. Additional or fewer groups depicting different classifications may be included. Referring now to FIG5B , another example file system differential visualization representation according to an embodiment of the present disclosure is shown. As depicted in FIG5B , the file system differential visualization representation is a pie chart. The pie chart depicts the proportion of files belonging to different classifications based on the modification and priority status within each individual pie chart slice (e.g., based on file size, not necessarily the number of files). This file system differential visualization representation enables a user to easily view the relative proportions of files belonging to the different classifications in each pie chart slice throughout the system. Each classification (e.g., based on whether each file has been modified and / or based on the file priority status) is depicted as having a different texture within each slice, as defined in the legend below the pie chart. The file system differential visualization depicted in FIG5B is illustrative only. The number of file groups, file group naming type, order of file groups within the slice, file group size, applied visually distinguishable indicators, attributes captured within the visually distinguishable indicators, and / or other layout features may vary without departing from the spirit and scope of the present disclosure. Additional or fewer groups depicting different categories may be included within the pie chart. 6 , a flowchart illustrating another example method 600 for generating a differential visualization of a file system according to an embodiment of the present disclosure is shown. One or more operations of method 600 may be performed by one or more processing circuits (e.g., server 106 , client 102 , server 206 , device adapter 210 , storage drive 204 , storage controller 200 , computer 801 , or end-user device 803 ). Method 600 begins at operation 605, where a primary dataset (e.g., a primary version of a file system) and a secondary dataset (e.g., a replicated or backup version of a file system) are received. In some embodiments, receiving the primary dataset and the secondary dataset may include inspecting, reading, or otherwise viewing the primary dataset and the secondary dataset in storage. However, in some embodiments, receiving the primary dataset and the secondary dataset may include actually receiving data for the primary dataset and the secondary dataset (e.g., via a network). Determine the difference (e.g., the difference) between the primary dataset and the secondary dataset. This is illustrated at operation 610. Determining the difference between the primary dataset and the secondary dataset can be accomplished by determining new files added to the primary dataset, files removed from the primary dataset, and / or changes made to files within the primary dataset compared to the secondary dataset. The comparison can be accomplished by comparing snapshots representing the state of the file system within the primary dataset and the secondary dataset, for example, using a difference command or storage management application function. Thus, alphanumeric data (e.g., text data) representing the difference between the primary dataset and the secondary dataset can be received or generated. In some embodiments, the comparison need not be accomplished by comparing the entire state of the primary dataset and the secondary dataset. Instead, changes can be continuously monitored over time by tracking the data units that have changed between the primary dataset and the secondary dataset, making a full comparison unnecessary. Priority data for the files is then received. This is illustrated at operation 615. The priority data may be set in the same or substantially similar manner as described with respect to FIG. 3A. The priority data indicates the relative importance of each file, which may be indicated by a classification (e.g., "high priority," "medium priority," and "low priority"). The assigned priority classification may be manually assigned based on the file type or other file attributes (e.g., frequency of use) or based on a priority value assigned to each file. A first group of files having a modified status and a "high priority" status is then determined. This is illustrated at operation 620. Files in the first group (e.g., the first category) have been modified in the primary dataset but not in the secondary dataset and are marked as important files. A second group of files with a modified status and a "low priority" status is then determined. This is illustrated at operation 625. Files in the second group (e.g., the second category) have been modified in the primary dataset but not in the secondary dataset and are marked as unimportant files. A third group of files with an unmodified status and a "high priority" status is then determined. This is illustrated at operation 630. Compared to the secondary data set, the files in the third group (e.g., the third category) have not been modified in the primary data set, but are marked as important files. A fourth file group is then determined to have an unmodified status and a "low priority" status. This is depicted at operation 635. Compared to the secondary data set, the files in the fourth group (e.g., the fourth category) have not been modified in the primary data set, but are marked as unimportant files. A determination is then made as to whether conditions for file system visualization are met. This is illustrated at operation 640. The conditions for initiating file system visualization may vary. In one embodiment, file system visualization may be initiated in response to a user request (e.g., a manual request from a user). In one embodiment, file system visualization may be initiated in response to an indication that the primary storage system containing the primary dataset has experienced downtime (e.g., hardware failure, network loss, etc.) or a data loss event (e.g., data corruption or deletion). This may be accomplished because a user may wish to view the differences between the primary dataset and the secondary dataset to determine whether to perform a failover to a secondary storage containing the secondary dataset or to restore the primary dataset from the primary storage (if possible). In one embodiment, file system visualization may be initiated in response to a determination that the primary and secondary datasets have changed (e.g., based on the differences determined at operation 610). In some embodiments, a user may be permitted to view a file system differential visualization in "real time" or "historical" fashion. That is, as changes are made, the file system differential visualization may be dynamically updated, allowing the user to view the file system differential visualization as changes are made (e.g., in "real time"). In some embodiments, the user may be permitted to view the file system differential visualization at a specific point in time in the past (e.g., one hour ago, one day ago, one month ago, etc.). If it is determined that the conditions for file system visualization are not met, method 600 may continue to operation 640 until the conditions for file system visualization are met. If it is determined that the conditions for file system visualization are met, the first group, the second group, the third group, and the fourth group are visually distinguished within the file system differential visualization. This is illustrated at operation 645. For example, the file system differential visualization depicted in Figures 5A and / or 5B may be visualized in response to identifying that the conditions for file system visualization are met. In an embodiment, multiple different file system differential visualizations may be displayed simultaneously (e.g., adjacent to each other). For example, the file system differential visualizations of Figures 5A and 5B may be displayed simultaneously. The aforementioned operations may be completed in any order and are not limited to the order described. Additionally, some, all, or none of the aforementioned operations may be completed while still remaining within the spirit and scope of the present disclosure. 7 , a flowchart illustrating another example method 700 for generating a differential visualization of a file system according to an embodiment of the present disclosure is shown. One or more operations of method 700 may be performed by one or more processing circuits (e.g., server 106 , client 102 , server 206 , device adapter 210 , storage drive 204 , storage controller 200 , computer 801 , or end-user device 803 ). Method 700 begins at operation 705, where priority data for a file is received. The priority data may be the same as or substantially similar to the priority data described with respect to FIG. 3A . The priority data indicates the relative importance of each file, which may be indicated by a classification (e.g., "high priority," "medium priority," and "low priority"). The assigned priority classification may be manually assigned based on the file type or other file attributes (e.g., frequency of use) or based on a priority value assigned to each file. The data replication / backup environment is then configured. This is illustrated at operation 710. Data replication is the process of copying data stored in primary storage to secondary storage to provide data redundancy. This can be done to improve the reliability, fault tolerance, and / or accessibility of data within the storage system. Data backup is the process of backing up (e.g., copying) a primary data set to a secondary location so that it can be used to restore the primary data set in the event of a data loss event. File system differential visualization can be performed in a data replication and / or data backup environment. Monitor updates on the primary dataset (e.g., within primary storage). This is illustrated at operation 715. Determine whether conditions for file system differential visualization are met. This is illustrated at operation 720. The conditions for initiating file system visualization can vary. In one embodiment, file system differential visualization can be initiated in response to a user request (e.g., a manual request from a user). In one embodiment, file system differential visualization can be initiated in response to an indication that the primary storage system containing the primary dataset has downtime (e.g., hardware failure, network loss, etc.) or a data loss event. This can be done because a user may want to view the differences between the primary dataset and the secondary dataset to determine whether to perform a failover to the secondary storage containing the secondary dataset or to restore the primary dataset from the primary storage (if possible). This can also be done if the user is determining whether to restore the primary dataset using a backup dataset (e.g., a secondary dataset). In an embodiment, archival system visualization may be initiated in response to determining at operation 715 that an update has been made to the primary dataset (eg, primary dataset and secondary dataset changes). In some embodiments, a user may be permitted to view a file system differential visualization in "real time" or "historical" fashion. That is, as changes are made, the file system differential visualization may be dynamically updated, allowing the user to view the file system differential visualization as changes are made (e.g., in "real time"). In some embodiments, the user may be permitted to view the file system differential visualization at a specific point in time in the past (e.g., one hour ago, one day ago, one month ago, etc.). If it is determined that the conditions for file system visualization are not met, method 700 may return to operation 715, where updates to the primary data set are monitored until the conditions for file system visualization are met. If it is determined that the conditions for file system visualization are met, a file system differential visualization representation is generated. This is illustrated at operation 725. For example, the file system differential visualization representation depicted in Figures 3A-3B and / or Figures 5A-5B may be visualized in response to identifying that the conditions for file system visualization are met. The aforementioned operations may be completed in any order and are not limited to the order described. Additionally, some, all, or none of the aforementioned operations may be completed while still remaining within the spirit and scope of the present disclosure. Various aspects of the present disclosure are described by narrative text, flowcharts, block diagrams of computer systems, and / or block diagrams of machine logic included in computer program product (CPP) embodiments. With respect to any flowchart, depending on the technology involved, the operations may be performed in an order different from that shown in a given flowchart. For example, two operations shown in successive flowchart blocks may be performed in reverse order, as a single integrated step, in parallel, or with at least partial overlap in time, also depending on the technology involved. A computer program product embodiment ("CPP embodiment" or "CPP") is a term used in this disclosure to describe any set of one or more storage media (also referred to as "mediums") collectively contained within a set of one or more storage devices that collectively include machine-readable code corresponding to instructions and / or data for performing computer operations specified in a given CPP requirement. A "storage device" is any tangible device that can retain and store instructions for use by a computer processor. Without limitation, a computer-readable storage medium may be an electronic storage medium, a magnetic storage medium, an optical storage medium, an electromagnetic storage medium, a semiconductor storage medium, a mechanical storage medium, or any suitable combination of the foregoing. Some known types of storage devices that include such media include: diskette, hard disk, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static random access memory (SRAM), compact disc read-only ROM (CD-ROM), digital compact disc (DVD), memory stick, floppy disk, mechanical encoding device (such as punch cards or pits / pads formed in the main surface of the disc), or any suitable combination of the foregoing. As used in this disclosure, the term computer readable storage medium shall not be construed as a medium that stores data in the form of a temporary signal. The data is stored in a form of its own, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through waveguides, light pulses traveling through fiber optic cables, electrical signals transmitted through wires, and / or other transmission media. As will be understood by those skilled in the art, data is typically moved at some occasional point in time during the normal operation of the storage device (such as during access, defragmentation, or garbage collection), but this does not make the storage device transient because the data is not transient when it is stored. FIG8 is a high-level block diagram illustrating an example computing environment 800 that can be used to implement one or more of the methods, tools, modules, and any related functionality described herein, according to an embodiment of the present disclosure. The computing environment 800 includes an example of an environment for executing at least some computer program code involved in performing the methods of the present invention, such as file system visualization code 850. Furthermore, the computing environment 800 includes, for example, a computer 801, a wide area network (WAN) 802, an end-user device (EUD) 803, a remote server 804, a public cloud 805, and a private cloud 806. In this embodiment, computer 801 includes a processor 810 (including processing circuitry 820 and cache 821), a communication mesh 811, dependent memory 812, persistent storage 813 (including an operating system 822 and file system visualization code 850, as identified above), a peripheral device set 814 (including a user interface (UI), a device set 823, storage 824, and an Internet of Things (IoT) sensor set 825), and a network module 815. Remote server 804 includes a remote database 830. Public cloud 805 includes a gateway 840, a cloud orchestration module 841, a host physical machine set 842, a virtual machine set 843, and a container set 844. Computer 801 can take the form of a desktop computer, laptop computer, tablet computer, smartphone, smartwatch or other portable computer, mainframe computer, quantum computer or any other form of computer or mobile device, now known or to be developed in the future, capable of executing programs, accessing a network or querying a database, such as remote database 830. As is well understood in the computer arts, and depending on the technology, the performance of computer-implemented methods can be distributed among multiple computers and / or between multiple locations. On the other hand, in this presentation of computing environment 800, the detailed discussion focuses on a single computer, specifically computer 801, to keep the presentation as simple as possible. Computer 801 can be located in the cloud, even though it is not shown in the cloud in FIG8. On the other hand, except to the extent that can be positively indicated, computer 801 need not be in the cloud. Processor set 810 includes one or more computer processors of any type now known or to be developed in the future. Processing circuitry 820 may be distributed across multiple packages, such as multiple coordinated integrated circuit chips. Processing circuitry 820 may implement multiple processor threads and / or multiple processor cores. Cache 821 is memory located in the processor chip package and is typically used for data or code that should be quickly accessible by threads or cores executing on processor set 810. Cache memory is typically organized into multiple levels depending on relative proximity to the processing circuitry. Alternatively, some or all caches for the processor set may be located "off chip." In some computing environments, processor set 810 may be designed to use qubits and perform quantum operations. Computer-readable program instructions are typically loaded onto computer 801 to cause processor 810 of computer 801 to execute a series of operational steps and thereby effect a computer-implemented method, such that the instructions executed thereby will perform the method specified in the flowcharts and / or narrative descriptions of the individual computer-implemented methods included herein (collectively, the "methods of the present invention"). These computer-readable program instructions are stored in various types of computer-readable storage media, such as cache 821 and another storage medium discussed below. The program instructions and associated data are accessed by processor 810 to control and direct the performance of the methods of the present invention. In computing environment 800, at least some of the instructions for performing the methods of the present invention may be stored in file system visualization code 850 in persistent storage 813. The communication mesh 811 includes signal conductive paths that allow the various components of the computer 801 to communicate with each other. Typically, this mesh is made up of switches and conductive paths, such as those that form buses, bridges, physical input / output ports, and the like. Other types of signal communication paths may be used, such as fiber optic communication paths and / or wireless communication paths. Volatile memory 812 is any type of volatile memory now known or to be developed in the future. Examples include dynamic random access memory (RAM) or static RAM. Typically, volatile memory 812 is characterized by random access, but this is not required unless explicitly indicated. In computer 801, volatile memory 812 is located in a single package and internal to computer 801, but alternatively or additionally, volatile memory 812 may be distributed across multiple packages and / or located externally relative to computer 801. Persistent storage 813 is any form of non-volatile storage for a computer now known or to be developed in the future. The non-volatile nature of this storage means that the stored data is maintained regardless of whether power is supplied to the computer 801 and / or directly to the persistent storage 813. Persistent storage 813 may be read-only memory (ROM), but typically at least a portion of the persistent storage allows data to be written, deleted, and overwritten. Some common forms of persistent storage include magnetic disks and solid-state storage devices. Operating system 822 can take several forms, such as various known dedicated operating systems or open source portable operating system interface operating systems using a kernel. The code included in the file system visualization code 850 typically includes at least some of the computer program code involved in executing the method of the present invention. Peripheral device set 814 includes peripheral devices for computer 801. Data communication connections between peripheral devices and other components of computer 801 can be implemented in various ways, such as Bluetooth connections, near-field communication (NFC) connections, connections via cables (such as Universal Serial Bus (USB)-type cables), plug-in connections (e.g., secure digital (SD) cards), connections via local area networks, and even connections via wide area networks such as the Internet. In various embodiments, UI device set 823 may include components such as displays, speakers, microphones, wearable devices (such as goggles and smartwatches), keyboards, mice, printers, touchpads, game controllers, mixed reality (MR) headsets, and haptic devices. Storage 824 is external storage, such as an external hard drive or plug-in storage such as an SD card. Storage 824 can be persistent and / or dependent. In some embodiments, storage 824 can take the form of a quantum computing storage device for storing data in the form of qubits. In embodiments where computer 801 is required to have a large amount of storage (e.g., where computer 801 locally stores and processes a large database), this storage can then be provided by peripheral storage devices designed for storing large amounts of data, such as a storage area network (SAN) shared by multiple geographically distributed computers. IoT sensor set 825 is composed of sensors that can be used in IoT applications. For example, one sensor may be a thermometer, while another sensor may be a motion detector. Network module 815 is a collection of computer software, hardware, and firmware that allows computer 801 to communicate with other computers via WAN 802. Network module 815 may include hardware, such as a modem or Wi-Fi transceiver; software for packetizing and / or depacketizing data for transmission over a communications network; and / or web browser software for communicating data over the Internet. In some embodiments, the network control functions and network forwarding functions of network module 815 are executed on the same physical hardware device. In other embodiments (e.g., those utilizing software-defined networking (SDN)), the control functions and forwarding functions of network module 815 are executed on physically separate devices, allowing the control functions to manage multiple different network hardware devices. Computer-readable program instructions for executing the methods of the present invention can typically be downloaded to computer 801 from an external computer or external storage device via a network adapter card or network interface included in network module 815. WAN 802 is any wide area network (e.g., the Internet) capable of transmitting computer data over non-local distances using any technology now known or later developed for transmitting computer data. In some embodiments, a WAN may be replaced and / or supplemented by a local area network (LAN), which is designed to transmit data between devices located in a region, such as a Wi-Fi network. A WAN and / or LAN typically includes computer hardware, such as copper transmission cables, optical fiber, wireless transmission, routers, firewalls, switches, gateway computers, and edge servers. End-user device (EUD) 803 is any computer system used and controlled by an end user (e.g., a customer of the enterprise operating computer 801) and may take any form as discussed above in connection with computer 801. EUD 803 typically receives helpful and useful information from the operation of computer 801. For example, if computer 801 is designed to provide recommendations to an end user, such recommendations would typically be transmitted from network module 815 of computer 801 to EUD 803 via WAN 802. In this manner, EUD 803 may display or otherwise present the recommendations to the end user. In some embodiments, EUD 803 may be a client device, such as a thin client, a thick client, a mainframe computer, a desktop computer, and the like. Remote server 804 is any computer system that provides at least some data and / or functionality to computer 801. Remote server 804 can be controlled and used by the same entity that operates computer 801. Remote server 804 represents a machine that collects and stores helpful and useful data for use by other computers, such as computer 801. For example, if computer 801 is designed and configured to provide recommendations based on historical data, this historical data can then be provided to computer 801 from remote database 830 on remote server 804. Public cloud 805 is any computer system available to multiple entities, providing on-demand availability of computer system resources and / or other computer capabilities, particularly data storage (cloud storage) and computing power, without requiring direct and active management by users. Cloud computing typically leverages resource sharing to achieve consistency and economies of scale. Direct and active management of computing resources in public cloud 805 is performed by the computer hardware and / or software of cloud orchestration module 841. The computing resources provided by public cloud 805 are typically implemented as virtual computing environments running on various computers comprising host physical machine set 842, which is the universe of physical computers in and / or available to public cloud 805. Virtual computing environments (VCEs) typically take the form of virtual machines from virtual machine set 843 and / or containers from container set 844. It should be understood that these VCEs can be stored as images and can be transferred between and among various physical hosts as images or after individual execution of the VCEs. The cloud orchestration module 841 manages the transmission and storage of images, deploys new instances of VCE, and manages active instances of VCE deployments. The gateway 840 is a collection of computer software, hardware, and firmware that allows the public cloud 805 to communicate over the WAN 802. Some further explanation of Virtual Computing Environments (VCEs) will now be provided. A VCE can be stored as an "image." New active instances of the VCE can be individualized from the image. Two common types of VCEs are virtual machines and containers. A container is a VCE that uses operating system level virtualization. This refers to an operating system feature where the kernel allows the existence of multiple independent user space instances, called containers. These independent user space instances generally appear to be real computers from the perspective of the programs running in them. Computer programs running on a normal operating system can utilize all of the computer's resources, such as connected devices, files and folders, network shares, CPU power, and quantifiable hardware capabilities. However, a program running inside a container can only use the contents of the container and the devices assigned to the container. This feature is called containerization. Private cloud 806 is similar to public cloud 805, except that the computing resources are available only to a single enterprise. Although private cloud 806 is depicted as communicating with WAN 802, in other embodiments, the private cloud may be completely disconnected from the internet and accessible only via a regional / private network. A hybrid cloud is a composite of multiple clouds of different types (e.g., private, corporate, or public), typically implemented by different vendors. Each of the multiple clouds remains a separate and discrete entity, but the larger hybrid cloud architecture is bound together by standardized or proprietary technologies that enable orchestration, management, and / or data / application portability across the multiple constituent clouds. In this embodiment, both public cloud 805 and private cloud 806 are parts of a larger hybrid cloud. As discussed in greater detail herein, it is contemplated that some or all of the operations of some embodiments of the methods described herein may be performed in an alternate order or not at all; furthermore, multiple operations may occur concurrently or at the same time as internal parts of a larger process. The terms used herein are for the purpose of describing specific embodiments only and are not intended to limit the various embodiments. As used herein, unless the context clearly indicates otherwise, the singular forms "a / an" and "the" are intended to include the plural forms as well. It should be further understood that the terms "includes" and / or "including" when used in this specification specify the presence of stated features, integers, steps, operations, elements, and / or components, but do not exclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and / or groups thereof. In the previous detailed description of example embodiments of various embodiments, reference is made to the accompanying drawings (in which like numbers represent like elements), which form part of the present invention and in which specific example embodiments in which the various embodiments can be practiced are shown by way of illustration. These embodiments are described in sufficient detail to enable those skilled in the art to practice the embodiments, but other embodiments may be used, and logical, mechanical, electrical, and other changes may be made without departing from the scope of the various embodiments. In the previous description, numerous specific details are set forth to provide a thorough understanding of the various embodiments. However, the various embodiments may be practiced without these specific details. In other instances, well-known circuits, structures, and techniques have not been shown in detail in order not to obscure the embodiments. As used in this specification, different implementations of the term "embodiment" do not necessarily refer to the same embodiment, but they may refer to the same embodiment. Any data and data structures depicted or described herein are merely examples, and in other embodiments, different data amounts, data types, fields, number and types of fields, field names, number and types of rows, records, items, or data organization may be used. Furthermore, any data may be combined with logic such that a separate data structure may not be necessary. Therefore, the preceding detailed description should not be construed as limiting. The descriptions of various embodiments of the present disclosure have been presented for illustrative purposes, but are not intended to be exhaustive or limited to the disclosed embodiments. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described embodiments. The terminology used herein is selected to best explain the principles of the embodiments, practical applications, or technical improvements over technologies found in the marketplace, or to enable others of ordinary skill in the art to understand the embodiments disclosed herein. Although the present disclosure has been described in terms of specific embodiments, it is contemplated that changes and modifications thereto will become apparent to those skilled in the art. It is therefore intended that the following claims be interpreted as covering all such changes and modifications as fall within the true spirit and scope of the present disclosure. 100: Network Environment 102: Computer / Client Computer / Client 104: Network / Local Area Network (LAN) / Wide Area Network (WAN) / Internet / Intranet 106: Computer / Server Computer / Host System / Server 108: Storage Network / Storage Area Network (SAN) / LAN 110: Storage System / IBM DS8000® Enterprise Storage System 110a: Direct-Attached Storage System 110b: Array of Hard Drives or SSDs 110c: Tape Library 110d: Individual Hard Drives / SSDs 110e: Tape Drive 200: Storage Controller 202: Switch 204: Hard Drives / SSDs / Storage Drives / Flash-Based Drives 206: Server / First Server 206a: Server 206b: Server 208: Host Adapter 210: Device Adapter 212: Processor 214: Memory 218: Cache / DRAM Cache 220: Non-Volatile Storage (NVS) / NVS 400: Method 405: Operation 410: Operation 415: Operation 420: Operation 425: Operation 600: Method 605: Operation 610: Operation 615: Operation 620: Operation 625: Operation 630: Operation 635: Operation 640: Operation 645: Operation 700: Method 705: Operation 710: Operation 715: Operation 720: Operation 725: Operation 800: Computing Environment 801: Computer 802: Wide Area Network (WAN) / WAN 803: End User Device (EUD) / End User Device / EUD 804: Remote Server 805: Public Cloud 806: Private Cloud 810: Processor Set 811: Communication Mesh 812: Dependent Memory 813: Persistent Storage 814: Peripheral Device Set 815: Network Module 820: Processing Circuit System 821: Cache 822: Operating System 823: Device Set / UI Device Set 824: Storage 825: Internet of Things (IoT) Sensor Set / IoT Sensor Set 830: Remote Database 840: Gateway 841: Cloud Orchestration Module 842: Host Physical Machine Set 843: Virtual Machine Set 844: Container Set 850: File System Visual Code The drawings included in this disclosure are incorporated into and form a part of this specification. They illustrate embodiments of the disclosure and, together with the description, serve to explain the principles of the disclosure. The drawings are merely exemplary embodiments and do not limit the disclosure. FIG1 is a block diagram illustrating an example network environment according to an embodiment of the present disclosure. FIG. 2 is a block diagram illustrating an example storage system according to an embodiment of the present disclosure. FIG. 3A is a diagram illustrating an exemplary file system differential visualization according to an embodiment of the present disclosure. FIG. 3B is a diagram illustrating an exemplary zoomed-in file system differential visualization according to an embodiment of the present disclosure. FIG4 is a flowchart illustrating an example method for generating a differential visualization of a file system according to an embodiment of the present disclosure. FIG. 5A is a diagram illustrating another exemplary file system differential visualization according to an embodiment of the present disclosure. FIG. 5B is a diagram illustrating another exemplary file system differential visualization according to an embodiment of the present disclosure. FIG6 is a flowchart illustrating another example method for generating a differential visualization of a file system according to an embodiment of the present disclosure. FIG7 is a flowchart illustrating an example method for generating a differential visualization of a file system according to an embodiment of the present disclosure. FIG8 is a high-level block diagram illustrating an example computer system and network environment that may be used to implement one or more of the methods, tools, modules, and any related functionality described herein, according to an embodiment of the present disclosure. While the embodiments described herein are susceptible to various modifications and alternative forms, details thereof have been shown by way of example in the drawings and will be described in detail. However, it should be understood that the specific embodiments described are not to be construed in a limiting sense. On the contrary, the intention is to cover all modifications, equivalents, and alternatives falling within the spirit and scope of the present disclosure. 400:Method 405: Operation 410: Operation 415: Operation 420: Operation 425: Operation
Claims
1. A computer-implemented method comprising: generating a file system differential visualization indicating a difference between files in a primary data set and a secondary data set, wherein the file system differential visualization is generated by: visually representing the size of each file within the file system differential visualization; displaying a first subset of files stored in the file system using a first visual distinction indicator indicating a modified status, the modified status indicating that files in the first subset of files have not been modified in the primary data set but not in the secondary data set; and displaying a second subset of files stored in the file system using a second visual distinction indicator indicating an unmodified status, the unmodified status indicating that files in the second subset of files have not been modified in both the primary and secondary data sets, wherein the file system differential visualization corresponds to a current difference between the primary data set and the secondary data set.
2. The computer implementation method of claim 1, wherein the first visual distinction indicator further indicates a first priority status of one of the first file subsets.
3. The computer implementation method of claim 2, wherein the second visual differentiation indicator further indicates a second priority status of one of the second file subsets.
4. The computer implementation method of claim 1, wherein the files within the differential visualization representation of the file system are sorted based on at least one file attribute.
5. The computer implementation method of request item 4, wherein the at least one file attribute is selected from one of the following groups: file name, file size and last modified time.
6. The computer implementation method of claim 5, wherein the at least one file attribute is the file name, wherein the file system is differentially visualized as a geometry having a plurality of columns and a plurality of rows, each unique combination of columns and rows corresponding to a cell, wherein each cell corresponds to a storage size, and wherein the files are sorted alphabetically in a serpentine pattern within the geometry.
7. The computer implementation method of claim 1, wherein a third file subset is displayed within the differential visualization representation of the file system, the third file subset being a new file added to the primary data set rather than the secondary data set, the third file subset being displayed using a third visual differentiation indicator.
8. The computer implementation method of claim 1, wherein the first visual differentiation indicator is a first color, and wherein the second visual differentiation indicator is a second color.
9. The computer implementation method of claim 1, wherein the first visual differentiation indicator is a first texture, and wherein the second visual differentiation indicator is a second texture.
10. The computer implementation method of claim 1, wherein the method further comprises: receiving a magnification input action; and in response to receiving the magnification input action, re-displaying the differential visualization of the file system using a magnified view.
11. A system for file system differential visualization, comprising: one or more processors; and one or more computer-readable storage media that commonly store program instructions, which, when executed by the one or more processors, are configured to cause the one or more processors to perform a method, the method comprising: generating a file system differential visualization representation indicating a difference between files of a primary data set and a secondary data set, wherein the file system differential visualization representation is generated by: identifying a first file group having a modified state and a high priority state; identifying a second file group having a modified state and a low priority state; identifying a third file group having an unmodified state and a high priority state; identifying a fourth file group having an unmodified state and a low priority state; and visually distinguishing the first file group, the second file group, the third file group, and the fourth file group within the file system differential visualization representation, wherein the file system differential visualization representation corresponds to a current difference between the primary data set and the secondary data set.
12. The system of claim 11, wherein the file system is differentially visualized as a pie chart, wherein each of the first file group, the second file group, the third file group and the fourth file group is depicted in a separate slice of the pie chart.
13. The system of claim 12, wherein the slices of the pie chart corresponding to each of the first file group, the second file group, the third file group and the fourth file group are visually distinguished by different colors.
14. The system of request item 13, wherein the size of each slice of the pie chart is set based on the memory size.
15. The system of claim 11, wherein the file system is differentially visualized as a geometry containing a plurality of columns and a plurality of rows, each unique combination of columns and rows corresponding to a cell, wherein each cell corresponds to a memory size, wherein the first file group occupies a first number of cells, wherein the second file group occupies a second number of cells, wherein the third file group occupies a third number of cells, and wherein the fourth file group occupies a fourth number of cells.
16. A computer program product comprising one or more computer-readable storage media and program instructions commonly stored on the one or more computer-readable storage media, the program instructions including instructions configured to cause one or more processors to perform a method, the method comprising: receiving a primary data set and a secondary data set, the secondary data set being a copied version of the primary data set at a specific point in time; determining a difference between the primary data set and the secondary data set; determining that a condition for file system differential visualization is met; and visualizing the difference between the primary data set and the secondary data set within a file system differential visualization representation, wherein the file system differential visualization representation corresponds to a current difference between the primary data set and the secondary data set.
17. The computer program product of claim 16, wherein the file system differentially visualizes different file names within a two-dimensional (2D) graphic representation, each file name occupying a certain amount of space within the 2D graphic representation, wherein the amount of space occupied by such individual file names is visually distinguished based on a modification status and a priority status.
18. The computer program product of claim 16, wherein the file system is differentially visualized to depict different file categories within a two-dimensional (2D) graphical representation, each file category occupying a certain amount of space within the 2D graphical representation, wherein the amount of space occupied by each file category is visually distinguished using visual differentiation indicators, wherein the file categories include an unmodified and high-priority category, an unmodified and low-priority category, a modified and high-priority category, and a modified and low-priority category.
19. The computer program product of claim 18, wherein the program instructions include additional program instructions configured to cause one or more processors to perform the method, the method further comprising: receiving an input command to filter one of a first file category; and removing the first file category from the file system differential visualization representation.
Citation Information
Patent Citations
Method for memory space management
TW200951711A
Location independent files
TW201346601A
Mirrored storage at the file system level
US7693880B1