Archiving-safe replication of relational data

A computer-implemented method for archiving information includes: executing a first application in a first process; determining that the first application is an archiving application configured to archive information stored in a transactional system; assigning, based on the determination, an archiving mode to the first process; receiving, from the first process and after assigning the archiving mode, a request to delete information; and processing the request to delete information according to the archiving mode.

TECHNICAL FIELD

This document relates to databases.

BACKGROUND

A transactional system, such as an ERP (Enterprise Resource Planning) system, can use a relational or other type of database. Such a system can be referred to as an OLTP (On-Line Transactional Processing) system. An OLTP system can be used to store and manage data produced from everyday business tasks of an organization. Occasionally, such as on a periodic basis, data stored in an OLTP system can be archived to an archiving system. An OLAP (On-Line Analytical Processing) system can be used to analyze data received from one or more OLTP systems. An OLAP system can be used for activities such as planning, problem solving, and decision support. Data in an OLAP system can be de-normalized, in contrast to data in an OLTP system, which can be highly normalized.

SUMMARY

In a first aspect, a computer-implemented method for archiving information includes: executing a first application in a first process; determining that the first application is an archiving application configured to archive information stored in a transactional system; assigning, based on the determination, an archiving mode to the first process; receiving, from the first process and after assigning the archiving mode, a request to delete information; and processing the request to delete information according to the archiving mode.

The method can be implemented using a computer program product tangibly embodied in a computer readable storage device, the computer program product including instructions that when executed by a processor perform the method.

Implementations can include any or all of the following features. Determining that the first application is an archiving application comprises detecting a call to open an archive. Determining that the first application is an archiving application comprises detecting a particular database connection.

The transactional system is configured to perform an archiving process before a replication process and processing the request to delete information includes: converting the request to delete information to a new request comprising a copy request for the information and a delete request for the information; creating an information copy from the information according to the copy request; and deleting the information according to the delete request. The information is deleted from the transactional system and the information copy is provided to an analysis system. The information copy is provided to the transactional system and a replication system subsequently provides the information copy to the analysis system. The method further includes using, by an analysis application, the information copy provided to the analysis system. The new request includes a delete-into request which includes, in one database command, the copy request and the delete request. The method further includes: executing a second application in a second process, the second process having a non-archiving mode assigned; receiving, from the second process, before completion of the first process and after the determination, another request to delete other information; and performing the other request to delete the other information without converting the other request into separate copy and delete requests.

The transactional system is configured to perform the archiving process after the replication process and processing the request to delete information includes deleting information from the transactional system and not deleting information from an analysis system. The method further includes: executing a second application in a second process, the second process having a non-archiving mode assigned; receiving, from the second process, before completion of the first process and after the determination, another request to delete other information; and performing the other request to delete the other information including 1) identifying information in the analysis system that corresponds to the other information; 2) deleting the identified information from the analysis system; and 3) deleting the other information from the transactional system.

In a second aspect, a computer-implemented method for archiving information includes: executing a first application in a first process of a computer system; executing a second application in a second process of the computer system; determining that the first application is an archiving application configured to archive information stored in a transactional component of the computer system; assigning, based on the determination that the first application is an archiving application, an archiving mode to the first process; determining that the second application is not an archiving application; assigning, based on the determination that the second application is not an archiving application, a non-archiving mode to the second process; receiving, from the first process, a first request to delete first information; receiving, from the second process, a second request to delete second information; determining whether the computer system is configured to perform an archiving process before a replication process; in response to determining that the computer system is configured to perform the archiving process before the replication process: processing the first request to delete the first information including 1) converting the request to delete the first information to a new request comprising a copy request for the first information and a delete request for the first information; 2) creating an information copy from the first information according to the copy request; and 3) deleting the first information according to the delete request; and processing the second request to delete the second information including deleting the second information from the transactional component; in response to determining that the computer system is configured to perform the archiving process after the replication process: processing the first request to delete the first information including deleting the first information from the transactional component without deleting corresponding information from an analysis system; and processing the second request to delete the second information including 1) identifying information in the analysis system that corresponds to the second information; 2) deleting the identified information from the analysis system; and 3) deleting the second information from the transactional component.

Implementations can include any or all of the following features. Determining that the first application is an archiving application includes detecting a call to open an archive. Determining that the first application is an archiving application includes detecting a particular database connection.

In a third aspect, a system includes: at least one processor; and a computer program product tangibly embodied in a computer readable storage device and comprising instructions that when executed by the processor cause the system to perform a method comprising: executing a first application in a first process; determining that the first application is an archiving application configured to archive information stored in a transactional system; assigning, based on the determination, an archiving mode to the first process; receiving, from the first process and after assigning the archiving mode, a request to delete information; and processing the request to delete information according to the archiving mode.

Implementations can include any or all of the following features. The transactional system is configured to perform an archiving process before a replication process and processing the request to delete information includes: converting the request to delete information to a new request comprising a copy request for the information and a delete request for the information; creating an information copy from the information according to the copy request; and deleting the information according to the delete request. The method further includes: executing a second application in a second process, the second process having a non-archiving mode assigned; receiving, from the second process, before completion of the first process and after the determination, another request to delete other information; and performing the other request to delete the other information without converting the other request to the new request.

Particular embodiments of the subject matter described in this specification can be implemented to realize one or more of the following advantages. Analysis applications can be enabled to analyze information that has been archived from a transactional database. Analysis applications can access information that has been archived from the transactional database, even if a replication system used to copy information from the transactional database to the analysis system does not have access to the archived information. A request to delete information can be converted to a new request without modifying the source code of the archiving application that includes the request to delete information.

DETAILED DESCRIPTION

FIG. 1is a block diagram of a system100for archiving information. An organization can use a transactional system102for transactions related to one or more functions of the organization. For example, one or more transactional applications104can, based on the company's activities, add transactional information to a transactional database106, and can edit or delete transactional information included in the transactional database106. The transactional database106can be, for example, a relational database. Different types of transactional databases106(e.g., from different vendors) can be used. Below are described examples showing that information about to be archived can also be preserved so that an analytical process can take the information into account.

The transactional application(s)104can submit database commands to a database abstraction layer108included in a database layer110of the transactional system102. The database abstraction layer108can provide an abstract interface to the transactional database106. That is, the transactional applications104can issue commands in a database-neutral format to the database abstraction layer108according to the abstract interface. The database abstraction layer108can convert the database-neutral commands into native database commands that are compatible with the type of the transactional database106that is currently configured for the transactional system102. A native database layer112can perform the native database commands on the transactional database106.

The organization can use an analysis system114to analyze information received from one or more sources, for example the transactional system102. The analytical processing can be performed in the analysis system114, rather than in the transactional system102, for example, to offload analysis processing from the transactional system102or other system resources. A replication system116can be used to copy information from the transactional database106to the analysis system114, for example. The analysis system114can include one or more analysis applications118, which can, for example, analyze information stored in memory120or in an analysis database122. The analysis database122can, for example, be used for logging transactions performed against the data in the memory120, to store one or more backups of the memory120, and/or to restore information to the memory120.

The organization using the system100can, at one or more times such as periodically, archive information from the transactional database106to an archiving database123included in an archiving system124. For example, archiving applications126and128can each be designed and adapted to archive information from one or more of the transactional applications104and/or from one or more particular business objects. The archiving applications126and128can use an archiving API (Application Programming Interface)130to perform operations, for example an archiving write phase and an archiving delete phase. The archiving write phase can include copying information from the transactional database106to the archiving database123. The archiving delete phase can include deleting information written to the archiving database123from the transactional database106. In some implementations, more or fewer archiving applications can be used.

The transactional applications104can access information from the archiving database123as well as from the transactional database106. That is, the information in the archiving database123is logically present to the transactional applications104(although accessing the information from the archiving database123may take more time as compared to accessing information from the transactional database106). In contrast, information in the archiving database123may not be logically present to or accessible from the replication system116.

For example, the replication system116can be configured to use a table-based replication approach to copy data from the transactional database106to the analysis system114. In such a configuration, the replication system116can access information from tables included in the transactional database106but not information included in the archiving database123. Therefore, the replication system116might not copy, to the analysis system116, information archived to the archiving database123. As a result, analysis performed using the analysis applications118may be incomplete or inaccurate.

In some implementations, the transactional system102is configured to perform replication before archiving. In some implementations, on the other hand, the transactional system102is configured to perform archiving before replication. For implementations where archiving is performed before replication, the source code of the archiving applications126and128can be designed or modified to convert each request to delete information that occurs during an archiving delete phase to one or more new requests, for example a copy request and a delete request. During execution of the copy request, data to be deleted from the transactional database106can be copied to the analysis system114or, as another example, can be copied to a location that is accessible to the replication system116, so that the replication system116can copy the information to the analysis system114when executing a replication process. During execution of the delete request, information can be deleted from the transactional database106.

However, several problems can occur with an approach of modifying source code of the archiving applications126and128. For example, source code may not be available for every archiving application. As another example, requests to delete information may not be visible in the source code of the archiving application126or128, such as if a request to delete information is included somewhere other than the top of a function call stack. As yet another example, it may be costly to modify the source code of every archiving application, as many archiving applications can exist and be used even within a single organization.

Another approach can be used to copy data to be archived to the archiving system124to the analysis system114, for implementations where the transactional system102is configured to perform archiving before replication. For example, rather than modify source code of the archiving applications126and128, a process layer132can be used to determine that the archiving application126or128is an archiving application, rather than a transactional application104or some other type of application. The process layer132can assign an archiving mode to the archiving application126or128based on determining that the archiving application126or128is an archiving application. The process layer132can determine that the archiving application128or128is an archiving application, for example, by detecting, from a process executing the archiving application126or128(e.g., a process134or136, respectively), a call to an interface defined in the archiving API130to open an archive for deletion. For a process (e.g., the process134or the process136) that is in the archiving mode, the process layer132can convert each request to delete information received from the process to a new request that includes a copy request for the information (e.g., to copy information to the analysis system114, or to copy information to a location that is accessible to the replication system116) and a delete request for the information (e.g., to delete information from the transactional database106). By contrast, when a non-archiving application sends a request to delete information, such a non-archive request may not be converted, based on the archiving mode not having been assigned, or such a request may instead be converted in a different way, to name just two examples. In some implementations, one or more modes other than archiving and non-archiving can exist, and processing of requests to delete information may be performed based on the one or more such modes.

Each of the processes134and136can be bound to a particular archiving application (e.g., the archiving application126or128, respectively). Accordingly, the archiving mode can be assigned to the process134or136for the duration of the process134or136. For processes not in the archiving mode, the process layer132can be configured to not convert requests to delete information. For example, a process can be associated with the transactional application104, and the transactional application104can include a request to delete information, where the context of the request to delete information is not archiving, but is a transactional context in which deletions should result in permanent deletion of data from the transactional database106without archiving to the archiving database124. For such a process not in the archiving mode, the process layer132does not copy information to the analysis system114based on the request to delete information.

As mentioned above, in some implementations, the transactional system102is configured to perform replication before archiving. In such implementations, the replication system116can be configured to replicate transactional data from the transactional database106to the analysis database122, such as in response to transactional data being added to the transactional database106by the transactional applications104. The process layer132(or another component) can be configured to delete information from the transactional database106and to also identify corresponding information in the analysis database122and to delete the identified information from the analysis database122, upon receiving a request to delete information from a process associated with the transactional application104. That is, in response to a request to permanently delete information from the transactional system102, corresponding transactional information that had been previously replicated to the analysis system114can be identified and deleted from the analysis system114.

The process layer132may also be configured to delete information from the transactional system102but to not delete (e.g., to inhibit a deletion of) corresponding information from the analysis system114when a request to delete information in the context of archiving is received. For example, upon receiving a request to delete information from the process134or the process136that is associated with the archiving application126or the archiving application128, respectively, the process layer132can delete the information from the transactional database106without deleting corresponding information from the analysis database122. Corresponding information is not deleted from the analysis database122, since the request to delete information in the context of archiving is not a request to permanently delete information but rather can be a request to delete information from the transactional database106that has been written (e.g., in an archive write operation) to the archiving database123.

Each of the transactional system102, the analysis system114, the replication system116, and the archiving system124can communicate with one or more of the others, for example, over a network138. The network138can be, for example, the Internet or some other public or private, wired or wireless network. In some implementations, the archiving system124can be installed on the same physical machine(s) as, or be included within, the transactional system102, to name just a few examples. Similarly, although the replication system116is shown as communicating with the transactional system102over the network138, in some implementations, the archiving system124can be co-installed with or included in the transactional system102.

FIG. 2is a block diagram of a system200for executing at least one archiving application202and at least one transactional application204. Each of the applications202and204includes executable instructions corresponding to one or more commands. That is, the command(s) can be generated as a result of running the application. The system200illustrates execution of the applications202and204when the system200is configured to perform an archiving process before a replication process. The archiving application202in this example includes commands206-220that are associated with a delete phase. The command206signals a start of processing of the delete phase. The command208is a command to open an archive (e.g., to open an archive associated with the archiving system124). The commands210and216mark the beginning and end, respectively, of an iteration construct. The commands212and214, which are a read command for reading information from the opened archive and a delete command for deleting corresponding information from a transactional database (e.g., the transactional database106), respectively, are repeated until the end of the opened archive is reached. Deletions performed by one or more executions of the delete command214are committed by executing the command218. The command220ends the delete phase of the archiving application202.

The commands206-220can be executed by a process running in a process layer222. For illustration, the present example shows arrows224-232that visually associate the commands206,208,214,218, and220to corresponding time points234-246on a timeline248. The timeline248represents performance of the process associated with the archiving application202in the process layer222. The time points238,240, and242correspond to three separate executions of the delete command214which result from three respective iterations of the iteration construct.

A timeline250represents performance of a process associated with the transactional application204in the process layer222. For purposes of illustration, the transactional application204is here an application that is not considered an archiving application, in contrast to, say, the archiving application202. The transactional application204includes commands252-260. The command252signals a start of processing of the transactional application204. The command254selects information from a transactional database (e.g., the transactional database106). The command256is a delete command which deletes information from the transactional database. The command258commits database changes made by the transactional application204. The command260ends the transactional application204. Arrows262-268here visually associate the commands252,256,258, and260with corresponding time points270-276on the timeline250.

As discussed above, the process layer222can convert, for processes in an archiving mode, each request to delete information into a copy request and a delete request, where the copy request copies information to be deleted from the transactional database to an analysis system. For example, as indicated by an indicator278, the process layer222can assign an archiving mode to the process executing the archiving application202based on detecting that the process is requesting to execute the command208to open an archive. The command208can, for example, be a command that is only included in archiving applications and can therefore be an indication that an application is an archiving application.

The process layer222, for a process in the archiving mode, can convert each request to delete information associated with the process, for the duration of the process. Conversion of a request to delete information can prevent the request from being submitted to a database abstraction layer280. Rather, in place of the request to delete information, a copy request and a delete request can be submitted to the database abstraction layer280. For example, for the execution of the delete command214, which is associated with the archiving application202and with the time point238, the process layer222can convert the delete command214to a copy command and a delete command, represented by time points282and284on a timeline286. The timeline286represents execution of database commands by the database abstraction layer280for the process associated with the archiving application202. Similarly, for the execution of the delete command214associated with the time point240, the process layer222can submit a copy request and a delete request (represented by time points288and290, respectively) to the database abstraction layer280, and for the execution of the delete command214associated with the time point242, the process layer222can submit a copy request and a delete request (represented by time points292and294, respectively) to the database abstraction layer280.

For a process that is not in archiving mode, the process layer222can submit requests to delete information unchanged to the database abstraction layer280. For example, a time point296on a timeline298represents execution, in the database abstraction layer280, of the delete command256associated with the transactional application204, after the process layer222submits the delete command256, unconverted, to the database abstraction layer280. The timeline298represents execution of database commands for the process associated with the transactional application204.

As shown, the timeline250partially overlaps with the timeline248. The timelines248and250illustrate an example of the process layer222receiving multiple requests to delete information, from multiple processes, with some processes being in the archiving mode and some processes being in a non-archiving mode. The process layer222can convert one or more requests to delete information received from processes in the archiving mode and can perform one or more requests to delete information received from processes in the non-archiving mode, without converting such requests.

As shown, for example by time points282and284, it can be the process layer222that converts a request to delete information into a copy request and a delete request and submits the copy request and the delete request to the database abstraction layer280. As another example, the conversion of the request to delete information can be performed by the database abstraction layer280. For example, the process layer can indicate to the database abstraction layer280that the request to delete information should be converted by including a particular database connection qualifier when providing the request to delete information to the database abstraction layer280. As yet another example, the conversion of the request to delete information can be performed by a native database layer (e.g., the native database layer112).

The request to delete information can be, in some implementations, of the form “DELETE FROM table WHERE condition”. The request to delete information can be converted, in some implementations, to a copy request having the form “SELECT*FROM table INTO target WHERE condition” and to a delete request. In some implementations, the delete request can be of the same form as the request to delete information (e.g., “DELETE FROM table WHERE condition”, with the delete request occurring after the copy request). In some implementations, the request to delete information can be converted into a delete-into request which has the form “DELETE FROM table WHERE condition INTO target”, where target can be, for example, a table in a particular database, a file, a memory buffer, or some other destination. In some implementations, the delete-into request can be a SQL (Structured Query Language) extension.

FIG. 3is a block diagram of a system300for executing at least one archiving application302and at least one transactional application304. Each of the applications302and304includes executable instructions corresponding to one or more commands. That is, the command(s) can be generated as a result of running the application. The system300illustrates execution of the applications302and304when the system300is configured to perform an archiving process after a replication process. The archiving application302in this example includes commands that are associated with a delete phase that corresponds to the commands206-220discussed above with respect toFIG. 2, including an open archive command308and a delete command314.

The commands308and314can be executed by a process running in a process layer322. For illustration, the present example shows arrows326and328that visually associate the commands306and314to corresponding time points336,338,340and342on a timeline348. The timeline348represents performance of the process associated with the archiving application302in the process layer322. The time points338,340, and342correspond to three separate executions of the delete command314which result from three respective iterations of an iteration construct.

A timeline350represents performance of a process associated with the transactional application304in the process layer322. For purposes of illustration, the transactional application304is here an application that is not considered an archiving application, in contrast to, say, the archiving application302. The transactional application304includes commands that correspond to the commands252-260discussed above with respect toFIG. 2, including a delete command356which deletes information from the transactional database. An arrow364here visually associates the command356with a corresponding time point372on the timeline350.

As discussed above, the process layer322can be configured, when the system300is configured to perform an archiving process after a replication process, to delete information from a transactional database and to also identify corresponding information in an analysis database and to delete the identified information from the analysis database, upon receiving a request to delete information from a process that is associated with the transactional application304(e.g., a process that is not in the archiving mode). For example, in place of the request to delete information, a first delete request and a second delete request can be submitted to a database abstraction layer380, where the first delete request is a request to delete information from the transactional system and the second delete request is a request to delete corresponding information from the analysis system. For example, for the execution of the delete command356, the process layer322can convert the delete command356to a first delete command and a second delete command, represented by time points382and384on a timeline386, respectively. The timeline386represents execution of database commands by the database abstraction layer380for the process associated with the transactional application304.

For a process that is in the archiving mode, the process layer322can, for example, submit requests to delete information to the database abstraction layer380without converting the request to delete information to another request which includes deleting corresponding information from the analysis system. Or, as another example, the process layer322can inhibit or block a request to delete information from the analysis system. For example, time points388,389, and390on a timeline391can represent three executions, in the database abstraction layer380, of the delete command314associated with the archiving application302, after the process layer322submits the delete command314, unconverted, to the database abstraction layer380. The timeline391represents execution of database commands for the process associated with the archiving application302. As another example, indicators392,393, and394can represent the process layer322blocking or inhibiting requests to delete information from the analysis system that correspond to the requests to delete information that are associated with the time points338,340, and342, respectively (e.g., where the time points338,340, and342are associated with the delete command314that is requested by the process that is associated with the archiving application302and that is in the archiving mode).

FIG. 4shows a flow chart of an example of a method400that can be used for archiving information. The method400can be performed by a processor executing instructions in a computer program product. In step402, a first application is executed in a first process. For example, with respect toFIG. 1, the archiving application126can be executed by the process134, in the process layer132.

In step404, it is determined that the first application is an archiving application configured to archive information stored in a transactional system. Determining that the first application is an archiving application can include, for example, detecting a call to open an archive. For example, with respect toFIG. 1, the process layer132can determine that the process134calls an interface in the API130to open an archive associated with the archiving system124to archive information stored in the transactional database106. As another example, determining that the first application is an archiving application can include detecting a particular database connection. For example, the database abstraction layer108can receive a database command from the process134which includes a connection qualifier which indicates that the process134is executing an archiving application (e.g., the archiving application126).

In step406, an archiving mode is assigned to the first process, based on the determination. For example, with respect toFIG. 2, the process layer222assigns the archiving mode to a process which is executing the archiving application202. In some implementations, if the first process creates one or more child processes, each of the child processes can inherit the archiving mode.

In step408, a request to delete information is received from the first process after assigning the archiving mode. For example, with respect toFIG. 2, as indicated by the time points238,240, and242on the timeline248, the process layer222receives requests to delete information (e.g., corresponding to the delete command214) from the process executing the archiving application202.

In step410, the request to delete information is processed according to the archiving mode. For example, in some implementations, the transactional system is configured to perform an archiving process before a replication process and processing the request to delete information includes converting the request to delete information to a new request that includes a copy request for the information and a delete request for the information, creating an information copy from the information according to the copy request, and deleting the information according to the delete request. For example, the process layer222converts requests to delete information received from the process executing the archiving application202based on the process being in the archiving mode. The process layer222converts the request to delete information associated with the time point238to a new request that includes a copy request and a delete request, as illustrated by the time points282and284, respectively.

As other examples, the database abstraction layer280or a native database layer (e.g., the native database layer112) can convert the request to delete information to the new request and can perform the copy request and the delete request. Performing the copy request can result in the information copy being provided to an analysis system (e.g., the analysis system114ofFIG. 1). In some implementations, the copy request triggers a replication system (e.g., the replication system116) to provide the information copy to the analysis system. Performing the delete request can result in information being deleted from the transactional system (e.g., from the transactional database106). The copy request can be performed before the delete request is committed.

After receiving the information copy, an analysis application included in the analysis system can use the information copy for analysis. For example, with respect toFIG. 1, the analysis application(s)118included in the analysis system114can use the information copy. In some implementations, the information copy is provided to the transactional system rather than to the analysis system, and may be stored, for example, in a persistent buffer of the transactional database106. A replication system (e.g., the replication system116) can subsequently and asynchronously provide the information copy to the analysis system.

In some implementations, a second application is executed in a second process, where the second process has a non-archiving mode assigned. Another request to delete other information can be received, from the second process, before completion of the first process and after determining that the first process is an archiving application. The other request to delete the other information can be processed without converting the other request to the new request. In other words, in some implementations, in response to a request to delete information received from a process that is in a non-archiving mode, the request to delete information is not converted, and the request to delete information is therefore performed (e.g., resulting in deletion of information from the transactional system). For example, with respect toFIG. 2, the process layer222does not convert requests to delete information received from a process executing the transactional application204(e.g., a request corresponding to the time point272), since that process is not in the archiving mode.

In some implementations, the transactional system is configured to perform an archiving process after a replication process and processing a request to delete information received from a process that is in the non-archiving mode includes identifying information included in an analysis system which corresponds to the information specified in the delete request and deleting the identified information from the analysis system. For example, with respect toFIG. 3, the time point382corresponds to the delete command356that is associated with the transactional application304. An associated time point384corresponds to a request to delete information from an analysis system that corresponds to the information that is requested to be deleted by the command356. In implementations where the transactional system is configured to perform an archiving process after a replication process, processing a request to delete information received from a process in an archiving mode includes deleting information from the transactional system without deleting corresponding information from the analysis system

FIG. 5shows a flow chart of an example of a method500that can be used for archiving information. The method500can be performed by a processor executing instructions in a computer program product. The method500illustrates how requests to delete information can be handled differently depending on whether archiving is involved.

In step502, a first application is executed in a first process of a computer system. For example, with respect toFIG. 1, the archiving application126may be executed in the process134. In step504, a second application is executed in a second process of the computer system. For example, with respect toFIG. 1, the transactional application104may be executed by a process (not shown inFIG. 1) in the process layer132.

In step506, it is determined that the first application is an archiving application configured to archive information stored in a transactional component of the computer system. For example, with respect toFIG. 1, the process layer132may determine that the archiving application126is an archiving application configured to archive information stored in the transactional database106. In step508, an archiving mode is assigned to the first process, based on the determination that the first application is an archiving application. For example, with respect toFIG. 1, the process layer132can assign an archiving mode to the process134, based on the determination that the archiving application126is an archiving application.

In step510, it is determined that the second application is not an archiving application. For example, with respect toFIG. 1, the process layer132may determine that the transactional application104is not an archiving application. In step512, a non-archiving mode is assigned to the second process, based on the determination that the second application is not an archiving application. For example, with respect toFIG. 1, the process layer132can assign a non-archiving mode to the process that is executing the transactional application104, based on the determination that the transactional application104is not an archiving application.

In step514, a first request to delete first information is received from the first process. For example, with respect toFIG. 2, as indicated by the time points238,240, and242on the timeline248, the process layer222receives requests to delete information (e.g., corresponding to the delete command214) from the process executing the archiving application202. As another example, with respect toFIG. 3, as indicated by the time points338,340, and342on the timeline348, the process layer322receives requests to delete information (e.g., corresponding to the delete command324) from the process executing the archiving application302.

In step516, a second request to delete second information is received from the second process. For example, with respect toFIG. 2, as indicated by the time point272on the timeline250, the process layer222receives a request to delete information (e.g., corresponding to the delete command256) from the process executing the transactional application202. As another example, with respect toFIG. 3, as indicated by the time point372on the timeline350, the process layer322receives a request to delete information (e.g., corresponding to the delete command356) from the process executing the transactional application302.

In step518, it is determined whether the computer system is configured to perform an archiving process before a replication process. For example, with respect toFIG. 1, the process layer132(or another component) can read a configuration setting, such as from a file, a database, or some other storage area, or can send an inquiry message to another system or component (e.g., the replication system116, the archiving system124) and can receive a response that indicates whether the system100is configured to perform an archiving process before a replication process.

If it is determined that the computer system is configured to perform the archiving process before the replication process, in step520, the first request to delete the first information is processed including 1) converting the request to delete the first information to a new request that includes a copy request for the first information and a delete request for the first information; 2) creating an information copy from the first information according to the copy request; and 3) deleting the first information according to the delete request. For example, with respect toFIG. 2, the process layer222converts requests to delete information received from the process executing the archiving application202based on the process being in the archiving mode. For example, the process layer222converts the request to delete information associated with the time point238to a new request that includes a copy request and a delete request, as illustrated by the time points282and284, respectively.

In step522, the second request to delete the second information is processed including deleting the second information from the transactional component. For example, with respect toFIG. 1, processing a request to delete information that is received from the transactional application104can include deleting information from the transactional database106.

If it is determined (e.g., in step520) that the computer system is configured to perform the archiving process after the replication process, in step522, the first request to delete the first information is processed including deleting the first information from the transactional component without deleting corresponding information from an analysis system. For example, with respect toFIG. 3, time points388,389, and390on a timeline391can represent three executions, in the database abstraction layer380, of the delete command314associated with the archiving application302, after the process layer322submits the delete command314, unconverted, to the database abstraction layer380(e.g., the delete command314can delete information from the transactional component, but does not delete information from the analysis system). As another example, indicators392,393, and394can represent the process layer322blocking or inhibiting requests to delete information from the analysis system that correspond to the requests to delete information that are associated with the time points338,340, and342, respectively (e.g., where the time points338,340, and342are associated with the delete command314that is requested by the process that is associated with the archiving application302and that is in the archiving mode).

In step524, the second request to delete the second information is processed including 1) identifying information in the analysis system that corresponds to the second information; 2) deleting the identified information from the analysis system; and 3) deleting the second information from the transactional component. For example, with respect toFIG. 3, in place of the request to delete information represented by the delete command356, a first delete request and a second delete request can be submitted to a database abstraction layer380, where the first delete request is a request to delete information from the transactional system and the second delete request is a request to delete corresponding information from the analysis system. For example, for the execution of the delete command356, the process layer322can convert the delete command356to a first delete command and a second delete command, represented by time points382and384on a timeline386, respectively. The timeline386represents execution of database commands by the database abstraction layer380for the process associated with the transactional application304.

FIG. 6is a schematic diagram of a generic computer system600. The system600can be used for the operations described in association with any of the computer-implement methods described previously, according to one implementation. The system600includes a processor610, a memory620, a storage device630, and an input/output device640. Each of the components610,620,630, and640are interconnected using a system bus650. The processor610is capable of processing instructions for execution within the system600. In one implementation, the processor610is a single-threaded processor. In another implementation, the processor610is a multi-threaded processor. The processor610is capable of processing instructions stored in the memory620or on the storage device630to display graphical information for a user interface on the input/output device640.

The memory620stores information within the system600. In some implementations, the memory620is a computer-readable medium. The memory620is a volatile memory unit in some implementations and is a non-volatile memory unit in other implementations.

The storage device630is capable of providing mass storage for the system600. In one implementation, the storage device630is a computer-readable medium. In various different implementations, the storage device630may be a floppy disk device, a hard disk device, an optical disk device, or a tape device.

The input/output device640provides input/output operations for the system600. In one implementation, the input/output device640includes a keyboard and/or pointing device. In another implementation, the input/output device640includes a display unit for displaying graphical user interfaces.

A number of implementations have been described. Nevertheless, it will be understood that various modifications may be made without departing from the spirit and scope of this disclosure. Accordingly, other implementations are within the scope of the following claims.