Methods, apparatus and computer programs for managing persistence
First Claim
1. A data processing system for managing persistence, comprising:
- a non-volatile data store coupled to a computer;
a volatile data store coupled to the computer; and
,a persistence manager executing in a memory of the computer, the persistence manager comprising program code that when executed in the memory of the computer causes the computer to;
evaluate at least one criterion of a set of criteria representing both costs of saving data to the non-volatile data store and also risks associated with not saving data to the non-volatile data store in order to determine whether or not a data update held in the volatile data store requires saving to the non-volatile data store, the evaluation comprising receiving a value representing a number of messages read from a queue per second, applying an exponential smoothing algorithm to the value representing the number of messages read from the queue per second to generate a message processing rate value, and storing the message processing rate in a database;
determine whether to save the data update to the non-volatile data store based upon the evaluation of the at least one criterion of the set of criteria;
in response to determining that the data update should be saved to the non-volatile data store, initiate a save of the data update to the non-volatile data store;
in response to determining that the data update should not be saved to the persistent storage, set a timer for a next evaluation; and
,determine whether to save the data update to the persistent storage based upon evaluating the at least one criterion of the set of criteria after an expiration of the timer.
1 Assignment
0 Petitions
Accused Products
Abstract
Described are methods, apparatus and computer programs for managing persistence within a data processing system such as a messaging system, database system or file system. The method for managing persistence includes a deferred evaluation (230,330,430) of at least one criterion associated with costs and/or benefits of saving to persistent storage, instead of persistence behavior being fully predefined. The evaluation may be performed when a disk write is about to be performed (240,340,440), or at various times during processing of a data update and at various points within a data processing network. In a messaging solution, the method for managing persistence includes a dynamic evaluation (230,330,430) of costs and/or benefits of saving to persistent storage, with the evaluation being performed at various points in the messaging network after the message has been created and sent by the originating entity. The method includes determining whether message data and/or log records relating to the message require saving to persistent storage, in accordance with the costs and/or the benefits of saving to persistent storage. The benefits of persisting may be determined with reference to a message value (400).
10 Citations
18 Claims
-
1. A data processing system for managing persistence, comprising:
-
a non-volatile data store coupled to a computer; a volatile data store coupled to the computer; and
,a persistence manager executing in a memory of the computer, the persistence manager comprising program code that when executed in the memory of the computer causes the computer to; evaluate at least one criterion of a set of criteria representing both costs of saving data to the non-volatile data store and also risks associated with not saving data to the non-volatile data store in order to determine whether or not a data update held in the volatile data store requires saving to the non-volatile data store, the evaluation comprising receiving a value representing a number of messages read from a queue per second, applying an exponential smoothing algorithm to the value representing the number of messages read from the queue per second to generate a message processing rate value, and storing the message processing rate in a database; determine whether to save the data update to the non-volatile data store based upon the evaluation of the at least one criterion of the set of criteria; in response to determining that the data update should be saved to the non-volatile data store, initiate a save of the data update to the non-volatile data store; in response to determining that the data update should not be saved to the persistent storage, set a timer for a next evaluation; and
,determine whether to save the data update to the persistent storage based upon evaluating the at least one criterion of the set of criteria after an expiration of the timer. - View Dependent Claims (2, 3, 4, 5, 6, 7, 18)
-
-
8. A method for managing persistence of data within a data processing apparatus, comprising the steps of:
-
evaluating, by a persistence manager executing in a memory of a computer, at least one criterion of a set of criteria, the set of criteria representing both costs of saving data to persistent storage and also risks associated with not saving data to the persistent storage, to determine whether to save a data update to the persistent storage, where evaluating the at least one criterion of the set of criteria comprises receiving a value representing a number of messages read from a queue per second, applying an exponential smoothing algorithm to the value representing the number of messages read from the queue per second to generate a message processing rate value, and storing the message processing rate in a database; determining, by the persistence manager, whether to save the data update to the persistent storage based upon evaluating the at least one criterion of the set of criteria; in response to determining that the data update should be saved to the persistent storage, initiating, by the persistence manager, a save of the data update to the persistent storage; in response to determining that the data update should not be saved to the persistent storage, setting, by the persistence manager, a timer for a next evaluation; and
,determining, by the persistence manager, whether to save the data update to the persistent storage based upon evaluating the at least one criterion of the set of criteria after an expiration of the timer. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
9. A computer program product comprising a set of instructions implemented in program code on a non-transitory recording medium for controlling performance of a data processing apparatus on which the program code executes, to perform a method comprising the steps of:
-
evaluating, by a persistence manager executing in a memory of a computer, at least one criterion of a set of criteria, the set of criteria representing both costs of saving data to persistent storage and also risks associated with not saving data to the persistent storage, to determine whether to save a data update to the persistent storage, where evaluating the at least one criterion of the set of criteria comprises receiving a value representing a number of messages read from a queue per second, applying an exponential smoothing algorithm to the value representing the number of messages read from the queue per second to generate a message processing rate value, and storing the message processing rate in a database; determining, by the persistence manager, whether to save the data update to the persistent storage based upon evaluating the at least one criterion of the set of criteria; in response to determining that the data update should be saved to the persistent storage, initiating, by the persistence manager, a save of the data update to the persistent storage; in response to determining that the data update should not be saved to the persistent storage, setting, by the persistence manager, a timer for a next evaluation; and
,determining, by the persistence manager, whether to save the data update to the persistent storage based upon evaluating the at least one criterion of the set of criteria after an expiration of the timer. - View Dependent Claims (17)
-
Specification