DISTRIBUTED DATABASE SYSTEM

Abstract: A distributed database system has a plurality of separate nodes each including a data store to hold a duplicate copy of a set of data, the data stores being updated by a process in which a first one of the nodes initiates communication with another one of the nodes, the first and said another node then performing a comparison process to establish whether their stored sets of data are duplicates of each other, and if they are not duplicates to exchange data between them so that their stored sets of data are duplicates of each other, the invention providing that the rate at which the first node initiates communication with other nodes for said comparison process is influenced by the rate of arrival of data updates at the first node, an increase in the rate of arrival of updates tending to increase the frequency with which the first node initiates said comparison process. This rate may be subject to upper and lower thresholds. The system may be one based on a time stamped anti-entropy consistency protocol.

Description: Distributed Database System This invention relates to distributed database systems, and to communications networks incorporating such systems Fast and reliable access to information (generally, data) is a key requirement for many distributed communications applications (e.g. whether the stored data are e-mails, documents, credit details, etc and whether or not the access is effected with a telephone (using text-to-speech, for example) or with a computer or pda) . If the information is held at a single server, this server can become a bottleneck slowing down response times. Furthermore, failure of the server will make the information unavailable. Performance and availability can be enhanced by replicating the data on several servers. If each of them serves a smaller set of users, preferably users that are close to the server in network terms, then service response times will be decreased and network traffic will be reduced. Furthermore, if one server fails, then users can contact another server to obtain the data. The replication of information introduces the problem of how to maintain consistency If an update is made to one replica, then this update has to be propagated to the other replicas, otherwise they will soon diverge in content. Therefore, a protocol has to be in place in order to propagate updates to all replicas. Such protocols are generally referred to as "consistency protocols", since they determinethe level of consistency or inconsistency of the data held in the various replicas Strong or instantaneous consistency protocols ensure that users always access the latest information, but are expensive in terms of communication costs and perform poorly when communication is unreliable or the network is partitioned. Hence, they are not suitable for wide-area or mobile computing systems. Weak or optimistic consistency protocols allow replicas to diverge temporarily, but ensure that all updates will be implemented at all replicas eventually. In this approach continued access to data is provided, even if the network connectivity is unreliable or not present, whereas strong consistency sacrifices availability for consistency. There are many areas where one can usefully trade temporal inconsistency in accessed data for benefits like network use efficiency, less load on the servers, better performance in the case of partitions, better catering for the needs of special categories of users etc In some categories of group collaboration systems, and especially those involving geographically separate and possible mobile (or roaming) groups of users, users will be willing to tolerate various degrees of inconsistency for the data they are accessing as long as they are accessing a coherent view and do not get spurious information Without replication, each user will be limited by the quality and reliability of their connection to a single shared copy of any information. With replication, and with a weak consistency protocol in place, reconciling the databases which different users are accessing can be a low priority and background task thereby saving bandwidth at peak hours and allowing a greater degree of flexibility Another potential application area for distributed databases is that of autonomous replication in a large scale distributed information system, as exemplified by the World Wide Web, to efficiently distribute server load and reduce the network traffic generated by its various services. The choice of location for any local caching and the content of the cache may be determined in a number of ways, but there is a common requirement to maintain the consistency of such caches. Weak consistency protocols with a low communication overhead are suitable for use in such a scheme. Telecommunications appears to be moving towards open networks with well-defined interfaces where various providers will be collaborating to offer services to the end users. Additional functionality will be easily provided on top of existing services provided by other parties, and a number of entities will need to collaborate for a service offer For some data stored by any part of the chain, it is likely that a weak consistency protocol will be suitable for propagating updates to all the members of the chain if this approach is not going to affect the service offered to the user. So for instance, if one were to allow any user to update dynamically part of his profile held by his service provider, regardless of which network he is connected to and which server he is being served by, one would eventually need to propagate these changes to all the other servers that need to know about it A weak consistency protocol can be used to accomplish this with all the associated benefits of using such a protocol Many weak consistency protocols have been proposed and several of these are discussed in Golding and Long's paper "Modelling Replica Divergence in a Weak Consistency Protocol for Global-Scale Distributed Databases" published as UCSC-CRL-93-C9 by the University of California, Santa-Cruz. There is further discussion of options for weak consistency protocols in Richard Golding's PhD dissertation "Weak Consistency Group Communication and Membership" also available from UCSC Richard Golding discusses, in the two above-mentioned publications, a class of weak consistency protocols, which he refers to as anti-entropy protocols. Among the known anti-entropy protocols which he considers is that used in the Xerox™ Cleaπngnouse system. He particularly recommends something which he calls the Timestamped Anti -Entropy protocol (TSAE), which is reported to be "a significant improvement over previous weak consistency protocols". In anti-entropy protocols, update messages are propagated by delayed point-to-point communication. A replica periodically contacts another replica and the two replicas exchange information about the data which they hold in what is termed an anti-entropy session. If this exchange process reveals any inconsistencies data is exchanged so that there isconsistency between the two replicas. In this way update messages are propagated to all replicas. In orde to keep the network traffic as low as possible, each update message woulα ideally be sent exactly once to each replica. (This is of course simply an ideal An anti-entropy session starts with the exchange of summary vectors which allow the replicas to determine which messages are already held by the other replica The replicas then only transmit the update messages the other replica has not yet received. The inventors of the present invention have devised an improvement to known anti-entropy protocols. The improvement can be applied to TSAE systems as well as to those which do not use such time stamping. Depending upon the precise implementation, the invention may permit a reductiom in the number oτ anti entropy sessions needed in order to keep to a desired degree of out of datedness ( i.e. to maitain a desired consitency) or may permit an improved degree of consistency with no increase in the number of anti-entropy sessions needec In experiments with a modified TSAE system, the inventors have seen improved consistency with a lower number of anti-entropy sessions than in a reference TSAE system. According to a first aspect, the present invention provides a distributed database access system which has a plurality of separate nodes each including a data store to hold a duplicate copy of a set of data, the data stores being updated by a process in wnich a first one of the nodes initiates communication with another one of the nodes , the first and said another node then performing a comparison process to establish whether their stored sets of data are duplicates of each other, and if they are not duplicates to exchange data between them so that their stored sets of data are duplicates of each other, wherein the rate at which the first node initiates communication with other nodes for said comparison process is influenced by the rate of arrival of data updates at the first node an increase in the rate of arrival of updates tending to increase the frequency with which the first node initiates said comparison process. According to a second aspect the present invention provides a distributed database access system which uses an anti-entropy protocol, in which the rate at which a replica initiates anti-entropy sessions is subject to a minimum rate and a maximum rate and between the maximum and minimum rates the initiation rate is some function of the rate of arrival of data updates at that replica. Embodiments of the present invention will now be described by way of example only with reference to the accompanying figures, in which: Figure 1 shows the cumulative probability distribution for the propagation time (in multiples of the mean anti-entropy time Mp) of an update message for oldest partner selection and uniform anti-entropy generation; Figure 2 shows how, with conventional TSAE, the inconsistency of the replicas varies with the arrival rate of updates; Figure 3 corresponds to Figure 2 but was produced with the adaptive protocol of tne invention; Figure 4 is a schematic diagram of a network of nodes; and Figure 5 is a schematic diagram of a node of the network of Figure 4. Before describing the invention, a slightly fuller description of an anti- entropy updating protocol will be given. For further information on such protocols and especially of the TSAE protocol, the reader is referred to the publications of Richard Golαing, many of which can be obtained electronically from http://www.cse.ucsc.edu/~qolding/vita.html. Anti-entropy protocols provide reliable delivery of messages, but rehablity is achieved through the acceptance of delayed delivery Messages are typically delivered in batches and this can improve effiency compared to delivery of messages singly In TSAE, each node keeps a summary record of the messages which it has received and this summary is used to guide the exchange process. As the name suggests, in timestamped anti-entropy, timestamps play an important part Each node has its own clock. The clock resolution must be fine enough to permit every important event at a node to be given a unique timestamp. In TSAE, a timestamp consists of a "clock sample" i e. a unique time indication and the identity of the node (node ID) At each node, timestamps are organised into a timestamp vector, that is a set of timestamps each from a different node, indexed by the node IDs Nodes maintain a summary timestamp vector which records what updates they have received. The summary vector contains one timestamp for each of the nodes in the group. The summary vector for a node identifies the latest message received by that node from each of the other nodes. Because of the batched nature of transmission, the node effectively says with its summary vector that all earlier transmissions than those identified in the summary vector have been received. Summary vectors are thus a very easy means for nodes to use to compare their "up to dateness" i.e. their consistency. So, the summary vectors are used during anti-entropy exchanges to identify any messages which are not common to the two nodes involved in the session. The messages so identified are then passed between the two nodes , so that at the end of the process the two nodes have stored data sets which are duplictes of each other . In the summary vectors, the timestamp used for any message is that generated by the clock of the node which was the originator of that message. Golding describes two versions of TSAE, one which requires the nodes to have loosely synchronized clocks and one where clock synchronization is not required If the nodes do have loosely synchronized (or better) clocks, the lowest value timestamp in the summary vector of a node indicates that all messages ( from every other node) sent with a timestamp earlier than that lowest value have been received by that node. Thus, the lowest value timestamp can serve as an acknowledgement timestamp for the oter nodes to determine which of their messages have been received. Each node stores a copy of the acknowledgement timestamp of every other group member The TSAE protocol propagates acknowledgement timestamps in the same way that it does other messages. This permits the purging of messages from message logs, if these are used. From time to time, possibly periodically, each node updates its acknowledgement timestamp to the value of the minimum timestamp recorded in its summary vector A node can determine that a particular message has been received by all other nodes in the group when the timestamp of that message is earlier than all the entries in the group's acknowledgement vector TSAE systems are typically arranged so that each node includes a message log A message log for a node contains messages which have been received by that node. A timestamped message enters the log on receipt and is only removed when all other nodes in the group have received it ( determined from the group's acknowledgement vector) . Messages also need to be delivered within a node to the part of the node which will actually make use of the message. As Golding notes, not all TSAE systems use message logs: some provide an interface to "retrieve" messages from where they are used in the node, along with the message's node identifier and timestamp. Anti-entropy sessions, which are mentioned above will now be described in more detail From time to time, a first node will select a second node and will initiate an anti-entropy session with it. The two nodes begin a session by allocating a session timestamp and then exchange their summary and acknowledgement vectors. Each node assesses whether it has messages which the other node has not yet received. It does this by looking for any timestamps in its summary vector which are greater than the corresponding ones in the summary vector of the other node. If there are any such messages, they are retrieved from the message log and sent to the other node using a reliable stream protocol. If any of the steps of the exchange fail, either node can abort the session: any changes made to the state of either node are then discarded. A session concludes with an exchange of acknowledgement messages. After a successful anti-entropy session, both nodes have received the same set of messages, so that their message sets are duplicates of each other. The two nodes adjust their summary and acknowledgement vectors to reflect the latest message received in each field by the pair. It is important that the summary and acknowledgement vectors are only amended in this way after a successful anti-entropy session Of course, messages exchanged in an anti-entropy session will often have originated with nodes other than the two involved in the session Although, of course, messages originating at either of the two nodes may also be passed from the originator to the other node, depending upon the "holes" revealed by comparison of the summary vectors. Afte r completion of an anti-entropy session, messages can be delivered from the message log to the database of the node and the log purged of redundant entries As nodes must be expected to fail sometimes, it is important for stable storage to be provided in nodes to enable them to recover their pre-failure state. If recovery takes a significant time, by the time a node has recovered itself it is likely to be out oτ date By performing an anti-entropy session as soon as at has recoevered, a node can be brought back up to date. Also, by performing an anti- entropy session as soon as possible, the failed node makes it possible for other nodes to begin clearing their message logs Golding discusses the combination of TSAE with unreliable multicasting something which can speed dissemination when message order is not important As so far presented, in TSAE nodes use summary vectors alone when deciding whether a partner needs messages. If ones uses multicasting, there is a chance that the partner will have received one or more of the "missing" messages by multicasting ( since these messages received by multicasting will not appear in the summary vector) . Using "conventional" TSAE therefore leads to the possibilty of messages being transferred needlessly in anti-entropy sessions. Such duplicative transmissions are wasteful of resources and can be reduced in number by performing more accurate checks before the exchange of messages Golding considers messages which are received by multicasting and which have a timestamp greater than the relevant timestamp in the summary vector to have been delivered early. In order to avoid duplicative transmissions it is necessary to identify such early messages. Golding suggests using a checksum approach: each node would compute a checksum of its early messages and would send this to its partner node along with its usual summary vector. After receiving its partner's summary vector and checksum, the receiving node would compute a checksum for the messages in its log which are timestamped later than the partner's summary vector. If the received and computed checksums are the same, no messages need to be sent to the partner. Golding suggests an improvement to this which is beneficial if there is more than a low probability of missing a multicast message The improvement consists of partitioning the messsages and computing checksums for each portion. The simplest way to do this is to partition messages by sender The invention is also applicable to the combination of TSAE and multicasting As mentioned previously, TSAE can be performed in systems where the nodes do not have synchronised clocks. If clocks are unsynchronised, it is likely that the clock at one node will be much later than the clock at another node: if the minimum timestamp were selected to summarise the messages a node had received, messages from the node with the fast clock might never be acknowledgeα Golding suggests overcoming this problem by using the summary vector of a node as an acknowledgement, so that clock values from different nodes neve r need to be compared. To use summary vectors for acknowledgement, each node must maintain a two-dimensional acknowledgement matrix of timestamps. The summary vector is part of the acknowledgement matrix: the zth column of the matrix held at node z is the summary vector for that node, the other columns of the matrix are old copies of the summary vectors for the other nodes The unsynchronised clock version of TSAE is very similar to the synchronised clock case: during anti-entropy sessions, nodes exchange the entire acknowledgement matrix and then update the entire matrix using an elementwise maximum at the end of a session. TSAE can also provide message ordering to ensure that messages are delivered in order from the message log of a node to the long term storage and use part of the node. This is discussed extensively by Golding. It is worth noting that if one wants to deliver messages in a causally ordered way, then providing a logical clock at each node is useful. A logical clock is a counter that is incremented every time that a node sends a message or performs an anti-entropy session. The counter is added to every message and anti-entropy session. Every time a counter value is received from another node in a message or anti-entropy session, the local counter is set to a value larger than the counter in the message. In this way, if there is a potential causal link between two events, then the timestamp for one event will be greater than the other. A total, causal ordereπng is obtained by sorting and delivering messages in logical clock order. This is developed further by Golding in his thesis. We now turn to the invention. Figure 4 shows schematically a network of nodes in a distributed database system. The nodes are all directly connected to each other, but in practice this is not essential. Node N 1 is shown as potentially being connected to another sub-net, but the network of eight nodes shown may be the complete network. Where there is a further sub-network, all communication from nodes N2 to N8 may go via node N 1 , although this too is not essential. Figure 5 is a schematic diagram which shows the typical constituents of a node. A processor 1 0, which controls the node, has a program memory 1 2. A clock 14 is provided for timestamping events. A communication bus 1 6 is provided for communication with the other nodes and for communication with the user of the node. The main memory of the node is the working data store 20 and it is typically this which is accessed by a user when seeking data from the node, although the access will typically be via the processor 1 0. A further memory 1 8 is provided to hold a message log and incoming messages from other nodes and from the user of the node may reside there until moved into the working data store. Summary vectors, which are explained below, are stored in a memory element 22. Finally, a further memory element 24 is provided to store acknowledgement vectors, which are also explained below. We have made a small modification to the original definition of the summary vector that allows a faster implementation of update messages in some cases. However, it is not necessary to use this modification and the invention does not depend on it. When a replica receives an update message from a user, the message is timestamped and put in the replica's log. The summary vector consists of one entry for each of the replicas in the system. In the original TSAE protocol the entry for replica B in the summary vector of replica A is the largest timestamp for any update message made at B and received by A. In our case, the entry for replica B in the summary vector of replica A gives the latest time up to which replica A has received all update requests that were made at B. This is at least the arrival time of the last update request made at B and received by A. For example, if A and B exchange logs at time 1 0 and the latest update request made at B has timestamp 8, then the entry for B in A's summary vector after the exchange is 8 in the original case and 10 in our case. The semantics of the application determine in which order updates must be implemented. If total ordering (updates must be implemented in the same order at any replica) or causal ordering (updates that are causally related must be implemented in the same order at any replica) is required, then an update request that was made at time t can only be implemented if the replica knows about all update requests that were made before t. This is the case when the minimum entry in the summary vector is at least t. Since at any time the minimum entry in our summary vector is at least the minimum entry in the original vector, this will often lead to a faster implementation of updates. Of course, if less stringent conditions on the order in which updates are implemented apply, then the new summary vector will not decrease the implementation time. In the paper of Golding and Long, simulation results on the performance of the TSAE protocol are presented. We have repeated a number of these simulations to validate the results. In Golding and Long's simulations, replicas initiate anti- entropy sessions according to a Poisson process. If the anti-entropy rate is p, then the average time between two successive anti-entropy sessions initiated by the same replica is Pp. If anti-entropy sessions are generated according to a Poisson process with rate p, then the time between two anti-entropy sessions can be anything between zero and infinity. The probability that the time between two anti- entropy sessions is T is given by T = exp (-p) p T /(T>). We have compared this with the case in which the time between two successive anti-entropy sessions is generated uniformly from the interval [0.9/ , 1 .1/ ]. Here, the probability that the time between two anti-entropy sessions is T (where T is in the interval) is 1 /(0.2/p) which equals p/0.2 which is bp. The two distributions have the same mean, Mp, but the variance is much smaller in the latter case. We found that the average time needed to propagate an update request to all replicas is considerably smaller with the uniform distribution. A replica can follow many different strategies to select another replica for an anti-entropy session. We have tested the following different strategies * 1 . uniform: the probability of selecting a replica is the same for each replica; 2. age-biased: the probability of selecting a replica is proportional to the age of its entry in the summary vector; 3. age-square-biased: the probability of selecting a replica is proportional to the square of the age of its entry in the summary vector; 4. o\dest-p% uniform selection from the p% of the replicas with the oldest entries in the summary vector (p e { 1 0, 25, 50, 70}); 5. oldest-first always select the replica with the oldest entry in the summary vector. Apart from 1 , the uniform selection, all selection strategies are based on the age of entries in the summary vector. In the age-(square-) biased strategy, 3, every replica can be selected, whereas in oldest-p %, 4, only p % of the replicas can be selected We found that the deterministic oldest-first selection strategy, 5, gave the best result when anti-entropy sessions were generated using a uniform distribution Figure 1 shows the cumulative probability distribution for the propagation time (in multiples of the mean anti-entropy time Mp) of an update message for oldest-first partner selection and uniform anti-entropy generation. The propagation time scales approximately with the log of the number of replicas. Although we do not have exact expressions for the average time needed to propagate an update message to a replica in a system with N replicas (a{N)lp) or the average time needed to propagate an update message to all N replicas [m(N)lp), estimations for a(Λ/) and m(/V) can be obtained from Figure 1 . The inconsistency of a replica, i.e., how far out of date the information is, depends on the ratio between how often updates are made by the users (the arrival rate of updates) and how often replicas communicate with each other (the anti-entropy rate). As a measure of the inconsistency of a replica we take the number of updates that have not yet been implemented at the replica. In the original protocol each replica initiates anti-entropy sessions at the same (constant) rate. Figure 2 shows how in this case the inconsistency of the replicas varies with the arrival rate of updates. The results were obtained from a simulation for a system with 10 replicas. Each replica initiates anti-entropy sessions with a rate 1 /500 (that is the server starts an anti-entropy session once every 500 time units (on average) - with the uniform distribution as defined earlier, the time between two anti-entropy sessions can be anything from 0.9 x 500 = 450 to 1 .1 x 500 = 550). Update requests are generated according to an arrival rate that varies between 1 /4 and 1 /1000 (i.e. update requests arrive between once every 4 time units and once every 1 000 time units). Each replica has the same probability to receive an update request. The three graphs show for 50 time intervals of Tixed length • the total number of updates made in the interval (♦) • the total number of anti-entropy sessions in the interval (■) • the average inconsistency of a replica during the interval (A.) Fror * this formula we can see that in order to keep the level of inconsistency constant, we have to keep the ratio of the arrival rate of update requests and the anti-entropy rate constant In order to keep their out-of-dateness limited, the replicas should adapt the rate at which they initiate anti-entropy sessions to the rate of update arrivals Since a global monitoring of the arrival rate will be prohibitively expensive, each replica should determine its rate of anti-entropy sessions on the basis of local information only. In our case, the replica changes its anti-entropy rate after each event, where an event is the arrival of an update request from a user at the replica or a anti-entropy session with an other replica. The arrival rate of update requests in the system is estimated by R_ At ' where R is the number of new update requests that the replica has received in the last event and Δt is the time that has elapsed since the previous event. Obviously, more complicated formulas can be used. in order to have an average inconsistency / av when updates arrive with a rate R/Δt, the anti-entropy rate should be a(N) R_ P ( 1 The new anti-entropy rate can be taken as p' or as a weighted sum of p' and the old rate: new = wp' + ( 1 -w) p M (2) The weight factor w can be a constant or a function of Δt, but must be between 0 and 1 . In order to choose the best w in any practical application, one needs to consider in more detail the influence of w on the performance of the protocol is. In our experiments which are reported below we have taken w = 0.7 The precise value chosen is not, in general, important and hence this value is not essential to the invention. Furthermore, the new anti-entropy rate should be between mιn ,and p max . If (2) gives a value smaller than p mn or greater than p mm , then the new anti-entropy rate is set equal to p mm or max respectively. The minimum rate p mm ensures that replicas contact each other from time to time even if no or very few update requests are made. Furthermore, it gives an (average) maximum time for the propagation of a single update to all replicas, namely, m[N)lp mm (see Figure 1 ) . For a specific application one can use any requirements on the maximum time one allows for the propagation of a single update to set the value for p mm . A maximum rate p max is introduced to prevent a continuous stream of anti- entropy sessions. Notice that high rates of update arrivals induce high anti-entropy rates, thus increasing the server load even more. In practice, setting a value for p max should take into account an estimation for the maximum rate of update arrival and a maximum percentage of the server time and processing capacity that one allows for anti-entropy sessions when this maximum is attained. Besides an estimation of the maximum server load, one needs information about how much time and processor capacity the anti-entropy sessions will take. This will of course vary according to the design of the system / network one is using. The same simulation that produced Figure 1 was run with the adaptive protocol. Each of the 10 replicas changed its anti-entropy rate according to the following formulae: Pn = P X " mm < P ' < P ,„ • « > αYld where ' = 0.7 0.1 ~ + 0.3 p M , At and Pmm 500 and and R and Δt are as defined before. Figure 3 shows the number of updates made in the each interval (♦, this graph is the same as in Figure 2), the total number of anti-entropy sessions in the interval (■), and the average inconsistency of a replica during the interval (A). The maximum average inconsistency of a replica is 1 1 .1 for the adaptive protocol and 40.8 for the non-adaptive protocol. Table 1 below shows the total number of anti-entropy sessions and the average inconsistency of a replica for the entire simulated period for the adaptive and non-adaptive TSAE protocol. Table 1 Thus it can be seen that the adaptive protocol achieves a better grade of consistency while generating less network traffic (fewer anti-entropy sessions). So far, we have allowed communication between each pair of replicas without taking the different costs of network links into account. Clearly, one would like to have as much communication as possible over low-cost links. This can be enforced by organising the replicas into clusters such that the cost of communication within a cluster is low compared with communication between clusters. For example, a cluster can correspond with a local-area network or, on a larger scale, a country or continent. In each cluster only one of the replicas, the cluster gateway, can communicate with replicas in other clusters. Thus, there is no communication between two replicas in different clusters except between cluster managers. This is the hierarchical daisy architecture as described in R. Baldoni, R. Friedman, R. van Renesse, The hierarchical daisy architecture for causal delivery, TR96-1610, Department of Computer Science, Cornell University, September 1 996. The invention finds application in distributed database systems where duplicate data stores are used. Normally there will be at least, ten duplicate data stores (although the invention will work where there are three or more such stores, its value increases as the number of stores rises from three), often tens or even hundreds, dearly, the invention has application to the Internet and to intranets and similar systems In such systems there may be many hundreds of replicas Where there is a large number of replicas it is sensible to cluster them , for example as suggested in the preceding paragraph, so that each replica is part of a relatively small local group. The invention finds application anywhere where one would use a conventional anti-entropy consistency protocol. As is clear, a preferred implementation of the invention is to use a time-stamped anti entropy protocol, but this is not essential. As those skilled in the art will understand, the invention will normally be implemented in software run on a plurality of servers or other networked computers Some or all of the servers or computers may be mobile or roaming terminals when communicate via radio rather than through a fixed optical or electrical network. As already indicated, some or all of the nodes may be disconnected from the other nodes from time to time. This will clearly be the case where some of the terminals are mobile or roaming. Clearly, personal digital assistants, cellular telephones and combination products such as those known as communicators and sold by Nokia ™ , could use the invention as a means of updating replicated datastores held on the portable terminal. For example a field sales force could use the invention as the means of ensuring that catalogues, prices, stock details, orders etc. held on salesperson's portable computers could be updated in anti-entropy sessions over radio (GSM, UMTS, etc.) links between visits to customers or even white with customers , but as a background activity which does not involve the salesperson in doing anything other than perhaps hooking the computer up to a radio link in the car between site visits. Cleanv , the invention can be implemented in software deployed over an existing distriDuted database system. An existing anti-entropy based system might easily be updated to include the invention. So, in those jurisdictions where patent protection is available for computer programs or computer programs on data carriers, the invention extends to a computer program which provides instructions to permit the anti-entropy rate of a node in a distributed database system to be determined , at least in part, on the basis of the rate of arrival of data updates at that node.

Claims: CLAIMS 1 A distributed database system which uses an anti-entropy protocol, in which the rate at which a replica initiates anti-entropy sessions is derived from the rate of arrival of data updates at that replica, an increase in the rate of arrival of data updates tending to increase the rate at which the node initiates anti-entropy sessions. 2 A system as claimed in claim 1 , wherein the rate of initiation is subject to a minimum level which is not derived from the rate of arrival of data updates at that replica 3. A system as claimed in claim 1 or claim 2, wherein the rate of initiation is subject to a maximum level which is not derived from the rate of arrival of data updates at that replica. 4 A distributed database system which uses an anti-entropy protocol, in which the rate at which a replica initiates anti-entropy sessions is subject to a minimum rate and a maximum rate, and between the maximum and minimum rates the initiation rate is some function of the rate of arrival of data updates at that replica. 5. A distributed database system which has a plurality of separate nodes each including a data store to hold a duplicate copy of a set of data, the data stores being updated by a process in which a first one of the nodes initiates communication with another one of the nodes , the first and said another node then performing a comparison process to establish whether their stored sets of data are duplicates of each other, and if they are not duplicates to exchange data between them so that their stored sets of data are duplicates of each other, control means being provided in each node to control the operation of the node, characterised in that the control means in the first node is influenced by the rate of arrival of data updates at the first node to control the rate at which the first node initiates communication with other nodes for said comparison proeess, so that an increase in the rate of arrival of updates tends to increase the frequency with which the first node initiates said comparison process. 6. A node for a distributed database system in which the nodes of the system each include a data store to hold a duplicate copy of a set of data, the node ιncludιng:control means, a data store to hold a stored set of data, a communications interface for communication with other nodes of the system, the control means being configured to initiate communication with another node of the system to cause the node and said another node to perform a comparison process to establish whether their stored sets of data are duplicates of each other, and if they are not duplicates of each other to cause an exchange of data between the node and said another node so that their stored sets of data are duplicates of each other, characterised in that the control means is arranged in operation to monitor the rate of arrival of data updates at the node and to control the rate at which the node initiates communication with other nodes for the comparison process so that an increase in the rate of arrival of updates tends to increase the frquency with which the node initiates said comparison process. 7. A node as claimed in claim 6, wherein the node is a mobile communications terminal, the node being connectable to and disconnectable from the database sytem, the control means being arranged in operation to initiate the comparison and exchange process with another node on or shortly after reconnection of the node to the system. 8. A communications network including a plurality of datastores distributed throughout the network, the datastores containing replicated data in common, wherein datastores are updated, at least in part, through the use of anti-entropy sessions initiated to spread updated data from datastore to datastore, the rate of initiation of anti-entropy sessions from any given datastore being derived from the rate of arrival of data updates at said given datastore, an increase in the rate of arrival of data updates tending to increase the rate of initiation of anti-entropy sessions. 9. A method of updating datastores in a distributed database system, the datastores containing replicated data in common, the method including the step of initiating, from a datastore, anti-entropy sessions to other of said datastores, the rate of initiation being derived from the rate of arrival of data updates at said datastore, an increase in the rate of arrival of data updates tending to increase the rate of initiation of anti-entropy sessions.

Inventors: MALLIA CHRYSSOULA, MCKEE PAUL FRANCIS, VAN EIJL CLEOLA ANGELINA, MALLIA, CHRYSSOULA, MCKEE, PAUL, FRANCIS, VAN EIJL, CLEOLA, ANGELINA
Applicants: BRITISH TELECOMM, EIJL CLEOLA ANGELINA VAN, MALLIA CHRYSSOULA, MCKEE PAUL FRANCIS, BRITISH TELECOMMUNICATIONS PUBLIC LIMITED COMPANY, MALLIA, CHRYSSOULA, MCKEE, PAUL, FRANCIS, VAN EIJL, CLEOLA, ANGELINA
Application year: 1999
Main classification: G06F17
IPC codes: G06F17