A persistent snapshot is taken and maintained in accordance with a novel method and
system for extended periods of time using only a portion of a computer readable medium of which the snapshot is taken. Multiple snapshots can be taken in succession at periodic intervals and maintained practically indefinitely. The snapshots are maintained even after powering down and rebooting of the computer
system. The state of the object of the snapshot for each snapshot preferably is accessible via a folder on volume of the snapshot. A restore of a file or folder may be accomplished by merely
copying that file or folder from the snapshot folder to a current
directory of the volume. Alternatively, the entire computer
system may be restored to a previous snapshot state thereof. Snapshots that occurred after the state to which the computer is restored are not lost in the restore operation. Different
rule sets and scenarios can be applied to each snapshot. Furthermore, each snapshot can be written to within the context of the snapshot and later restored to its pristine condition.
Software for implementing the systems and methods of snapshots in accordance with the present invention may comprise
firmware of a hard disk drive controller or a
disk controller board or within the HDD casing itself. The present invention further comprises novel systems and methods in which the systems and methods of taking and maintaining snapshots are utilized in creating and managing temporal data stores, including
temporal database management systems. The implications for
data mining and exploration,
data analysis,
intelligence gathering, and
artificial intelligence (just to name a few areas) are profound.