Methods, apparatus and computer programs for managing persistence
First Claim
1. A data processing apparatus comprising:
- a processor;
a volatile data store;
a non-volatile data store;
a persistence manager for managing saving of data to the non-volatile data store, wherein the persistence manager includes means for evaluating a′
least one criterion of a set of criteria, the set of criteria representing costs of saving and risks associated with not saving data to the non-volatile data store, to determine whether a data update held in the volatile data store requires saving to the non-volatile data store; and
,a messaging manager, wherein the persistence manager includes functions for;
evaluating at least one criterion of a set of criteria, the set of criteria representing costs of saving and risks associated with not saving data relating to a message to the non-volatile data store, during handling of the message by the messaging manager, to determine whether to save a data update to the persistent storage, the evaluating including receiving a value representing a number of messages read from a queue per second, and 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;
determining from said evaluation whether to save the data relating to the message to the non-volatile data store;
in response to a positive determination, initiating a save of the data relating to the message to the non-volatile data store;
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;
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 at an end of a set time period resulting from an expiration of the timer; and
,saving the data update to the persistent storage upon a determination to save the data update to the persistent storage.
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 behaviour 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).
-
Citations
19 Claims
-
1. A data processing apparatus comprising:
-
a processor; a volatile data store; a non-volatile data store; a persistence manager for managing saving of data to the non-volatile data store, wherein the persistence manager includes means for evaluating a′
least one criterion of a set of criteria, the set of criteria representing costs of saving and risks associated with not saving data to the non-volatile data store, to determine whether a data update held in the volatile data store requires saving to the non-volatile data store; and
,a messaging manager, wherein the persistence manager includes functions for; evaluating at least one criterion of a set of criteria, the set of criteria representing costs of saving and risks associated with not saving data relating to a message to the non-volatile data store, during handling of the message by the messaging manager, to determine whether to save a data update to the persistent storage, the evaluating including receiving a value representing a number of messages read from a queue per second, and 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; determining from said evaluation whether to save the data relating to the message to the non-volatile data store; in response to a positive determination, initiating a save of the data relating to the message to the non-volatile data store; 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; 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 at an end of a set time period resulting from an expiration of the timer; and
,saving the data update to the persistent storage upon a determination to save the data update to the persistent storage. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. 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 costs of saving and risks associated with not saving data to persistent storage, to determine whether to save a data update to persistent storage, the evaluating comprising valuating a risk of loss of data relating to a message and evaluating a potential cost of said loss based on a value of the message, the evaluating additionally 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 in response to a determination that the data update should be saved to persistent storage, initiating, by the persistence manager, a save of the data update to 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; 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 at an end of a set time period resulting from an expiration of the timer; and
,saving the data update to the persistent storage upon a determination to save the data update to the persistent storage. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19)
-
Specification