A data management system or "DMS" provides an automated, continuous,
real-time, substantially no downtime data protection service to one or
more data sources associated with a set of application host servers. To
facilitate the data protection service, a host driver embedded in an
application server captures real-time data transactions, preferably in
the form of an event journal that is provided to other DMS components.
The driver functions to translate traditional file/database/block I/O and
the like into a continuous, application-aware, output data stream. The
host driver includes an event processor that provides the data protection
service, preferably by implementing a finite state machine (FSM). In
particular, the data protection is provided to a given data source in the
host server by taking advantage of the continuous, real-time data that
the host driver is capturing and providing to other DMS components. The
state of the most current data in DMS matches the state of the data in
the host server; as a consequence, the data protection is provided under
the control of the finite state machine as a set of interconnected phases
or "states." The otherwise separate processes (initial data upload,
continuous backup, blackout and data resynchronization, and recovery) are
simply phases of the overall data protection cycle. As implemented by the
finite state machine, this data protection cycle preferably loops around
indefinitely until, for example, a user terminates the service. A given
data protection phase (a given state) changes only as the state of the
data and the environment change (a given incident).