System and method for generating application-consistent snapshots
A method, computer program product, and computing system for receiving a request for an application-consistent snapshot of at least a portion of a storage array. A plurality of I/O operations submitted to the at least a portion of the storage array may be monitored. A pre-defined pattern of I/O operations may be identified from the plurality of I/O operations submitted to the storage array. A snapshot of the at least a portion of the storage array may be generated.
1. A computer-implemented method comprising:
receiving, via a computing device, a request for an application-consistent snapshot of at least a portion of a storage array;
monitoring a plurality of I/O operations submitted to the at least a portion of the storage array, wherein the plurality of I/O operations submitted to the storage array include one or more I/O operations associated with one or more log files and one or more I/O operations associated with one or more data files;
identifying a pre-defined pattern of I/O operations from the plurality of I/O operations submitted to the storage array, wherein identifying the pre-defined pattern of I/O operations includes identifying a pre-defined, fixed size log file write operation to the one or more log files and a pre-defined, fixed size data file write operation to the one or more data files; and
generating a snapshot of the at least a portion of the storage array in response to identifying the pre-defined pattern of I/O operations.
2. The computer implemented method of claim 1 , wherein the at least a portion of the storage array includes a database.
3. The computer implemented method of claim 1 , wherein the plurality of I/O operations submitted to the storage array include flushing one or more log pages and one or more data pages from a cache memory system to the at least a portion of the storage array.
4. The computer-implemented method of claim 1 , receiving the request for the application-consistent snapshot of the at least a portion of storage array includes receiving a pre-defined application-consistency time limit for identifying the pre-defined pattern of I/O operations from the plurality of I/O operations.
5. The computer-implemented method of claim 4 , generating the snapshot of the at least a portion of the storage array includes at least one of:
generating an application consistent snapshot of the at least a portion of the storage array in response to identifying the pre-defined pattern of I/O operations from the plurality of I/O operations within the pre-defined application-consistency time limit; and
generating a crash-consistent snapshot of the at least a portion of the storage array in response to not identifying the pre-defined pattern of I/O operations from the plurality of I/O operations within the pre-defined application-consistency time limit.
6. A computer program product residing on a non-transitory computer readable medium having a plurality of instructions stored thereon which, when executed by a processor, cause the processor to perform operations comprising:
receiving a request for an application-consistent snapshot of at least a portion of a storage array;
monitoring a plurality of I/O operations submitted to the at least a portion of the storage array, wherein the plurality of I/O operations submitted to the storage array include one or more I/O operations associated with one or more log files and one or more I/O operations associated with one or more data files;
identifying a pre-defined pattern of I/O operations from the plurality of I/O operations submitted to the storage array, wherein identifying the pre-defined pattern of I/O operations includes identifying a pre-defined, fixed size log file write operation to the one or more log files and a pre-defined, fixed size data file write operation to the one or more data files; and
generating a snapshot of the at least a portion of the storage array in response to identifying the pre-defined pattern of I/O operations.
7. The computer program product of claim 6 , wherein the at least a portion of the storage array includes a database.
8. The computer program product of claim 6 , wherein the plurality of I/O operations submitted to the storage array include flushing one or more log pages and one or more data pages from a cache memory system to the at least a portion of the storage array.
9. The computer program product of claim 6 , wherein receiving the request for the application-consistent snapshot of the at least a portion of storage array includes receiving a pre-defined application-consistency time limit for identifying the pre-defined pattern of I/O operations from the plurality of I/O operations.
10. The computer program product of claim 9 , wherein generating the snapshot of the at least a portion of the storage array includes at least one of:
generating an application consistent snapshot of the at least a portion of the storage array in response to identifying the pre-defined pattern of I/O operations from the plurality of I/O operations within the pre-defined application-consistency time limit; and
generating a crash-consistent snapshot of the at least a portion of the storage array in response to not identifying the pre-defined pattern of I/O operations from the plurality of I/O operations within the pre-defined application-consistency time limit.
11. A computing system comprising:
a memory; and
a processor configured to receive a request for an application-consistent snapshot of at least a portion of a storage array, wherein the processor is further configured to monitor a plurality of I/O operations submitted to the at least a portion of the storage array, wherein the plurality of I/O operations submitted to the storage array include one or more I/O operations associated with one or more log files and one or more I/O operations associated with one or more data files, wherein the processor is further configured to identify a pre-defined pattern of I/O operations from the plurality of I/O operations submitted to the storage array, wherein identifying the pre-defined pattern of I/O operations includes identifying a pre-defined, fixed size log file write operation to the one or more log files and a pre-defined, fixed size data file write operation to the one or more data files, and wherein the processor is further configured to generate a snapshot of the at least a portion of the storage array in response to identifying the pre-defined pattern of I/O operations.
12. The computing system of claim 11 , wherein the at least a portion of the storage array includes a database.
13. The computing system of claim 11 , wherein the plurality of I/O operations submitted to the storage array include flushing one or more log pages and one or more data pages from a cache memory system to the at least a portion of the storage array.
14. The computing system of claim 11 , wherein receiving the request for the application-consistent snapshot of the at least a portion of storage array includes receiving a pre-defined application-consistency time limit for identifying the pre-defined pattern of I/O operations from the plurality of I/O operations.