System and method for system replication and migration for in-memory database systems
Systems and methods for performing server migrations in an in-memory database system environment are provided. Various embodiments of the present technology provide systems and methods for actively monitoring a queue of the in-memory database system at the target file system to determined when all of the contents of the queue have been flushed to disk. Responsive to the determination, the source file system can be shut down, and replicated to the target file system.
1 . A method for migrating an in-memory database system from a source file system to a target file system, the method comprising:
replicating file system data from the source file system to the target file system;
in the source file system, periodically flushing contents in volatile memory to non-volatile memory;
replicating source file system data at the target file system until the target file system is consistent with the source file system;
stopping the in-memory database system at the source file system responsive to receiving an indication via a user interface to start a migration process;
capturing changes made by the source file system prior to stopping the in-memory database system by flushing contents in volatile memory to non-volatile memory to commit any changes in volatile memory to non-volatile memory;
actively monitoring, by a management service, a queue of the in-memory database system at the source file system, the actively monitoring the queue including:
determining if all changes to the source file system have been captured; and
determining if the volatile memory to non-volatile memory flush has been completed in the source file system by:
polling, by a management service at the source file system, a replication engine at the source file system; and
receiving, by a management service, a response from the replication engine indicating that the volatile memory to non-volatile memory flush has been completed;
responsive to determining that the volatile memory to non-volatile memory flush has been completed in the source file system:
replicating the source file system data at the target file system;
causing a target server of the target file system to assume an identity of a source server of the source file system; and
rebooting the target file system.
2 . The method of claim 1 , wherein the volatile memory is random access memory (RAM).
3 . The method of claim 1 , wherein the non-volatile memory is a disk storage system.
4 . A system for migrating an in-memory database system from a source file system to a target file system, the system comprising:
a processor; and
a non-transitory computer readable medium storing instructions translatable by the processor, the instructions when translated by the processor perform:
replicating file system data from the source file system to the target file system;
in the source file system, periodically flushing contents in volatile memory to non-volatile memory;
replicating source file system data at the target file system until the target file system is consistent with the source file system;
stopping the in-memory database system at the source file system responsive to receiving an indication via a user interface to start a migration process;
capturing changes made by the source file system prior to stopping the in-memory database system by flushing contents in volatile memory to non-volatile memory to commit any changes in volatile memory to non-volatile memory;
actively monitoring, by a management service, a queue of the in-memory database system at the source file system, the actively monitoring the queue including:
determining if all changes to the source file system have been captured; and
determining if the volatile memory to non-volatile memory flush has been completed in the source file system by:
polling, by a management service at the source file system, a replication engine at the source file system; and
receiving, by a management service, a response from the replication engine indicating that the volatile memory to non-volatile memory flush has been completed;
responsive to determining that the volatile memory to non-volatile memory flush has been completed in the source file system:
replicating the source file system data at the target file system;
causing a target server of the target file system to assume an identity of a source server of the source file system; and
rebooting the target file system.
5 . The system of claim 4 , wherein the volatile memory is random access memory (RAM).
6 . The system of claim 4 , wherein the non-volatile memory is a disk storage system.
7 . A computer program product comprising a non-transitory computer readable medium storing instructions translatable by a processor, the instructions when translated by the processor perform, in an enterprise computing network environment:
replicating file system data from a source file system to a target file system;
in the source file system, periodically flushing contents in volatile memory to non-volatile memory;
replicating source file system data at the target file system until the target file system is consistent with the source file system;
stopping an in-memory database system at the source file system responsive to receiving an indication via a user interface to start a migration process;
capturing changes made by the source file system prior to stopping the in-memory database system by flushing contents in volatile memory to non-volatile memory to commit any changes in volatile memory to non-volatile memory;
actively monitoring, by a management service, a queue of the in-memory database system at the source file system, the actively monitoring the queue including:
determining if all changes to the source file system have been captured; and
determining if the volatile memory to non-volatile memory flush has been completed in the source file system by:
polling, by a management service at the source file system, a replication engine at the source file system; and
receiving, by a management service, a response from the replication engine indicating that the volatile memory to non-volatile memory flush has been completed;
responsive to determining that the volatile memory to non-volatile memory flush has been completed in the source file system:
replicating the source file system data at the target file system;
causing a target server of the target file system to assume an identity of a source server of the source file system; and
rebooting the target file system.
8 . The computer program product of claim 7 , wherein the volatile memory is random access memory (RAM).
9 . The computer program product of claim 7 , wherein the non-volatile memory is a disk storage system.