[go: up one dir, main page]

HK1140030B - System and method for optimizing changes of data sets - Google Patents

System and method for optimizing changes of data sets Download PDF

Info

Publication number
HK1140030B
HK1140030B HK10106069.1A HK10106069A HK1140030B HK 1140030 B HK1140030 B HK 1140030B HK 10106069 A HK10106069 A HK 10106069A HK 1140030 B HK1140030 B HK 1140030B
Authority
HK
Hong Kong
Prior art keywords
data set
data
elements
operator
operators
Prior art date
Application number
HK10106069.1A
Other languages
Chinese (zh)
Other versions
HK1140030A1 (en
Inventor
Staffan Lantz
Lars Jansson
Original Assignee
Nasdaq Technology Ab
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US11/641,957 external-priority patent/US8117609B2/en
Application filed by Nasdaq Technology Ab filed Critical Nasdaq Technology Ab
Publication of HK1140030A1 publication Critical patent/HK1140030A1/en
Publication of HK1140030B publication Critical patent/HK1140030B/en

Links

Description

System and method for optimizing changes in a data set
Technical Field
The present invention relates to data dissemination in a computer environment, and more particularly to extracting changes in a data set for distributing those changes in a computer network.
Background
Today, it is very common to send data over computer networks. As technology advances, the amount of data transmitted has increased rapidly, enabling more data to be transmitted and processed at higher speeds than previously possible. In addition, new applications also require more data as these new applications become more complex. An example of a computer system in which data dissemination techniques are one of the most important parts is the electronic trading system.
Electronic trading of securities, derivatives, commodities and other financial instruments results in a large amount of data that must be distributed to users who need it to make trading decisions, statistical calculations and other evaluations. The process of extracting and sending all of this information in a high performance computer system places very high demands on the processor. The amount of time of the CPU is a scarce resource and should not be wasted on the execution steps that could otherwise be avoided.
Furthermore, users connected to such central transaction systems typically want to have the information as quickly as possible. In these cases, it may not be sufficient to improve the performance of the central system by, for example, updating the hardware.
To get rid of bottlenecks or other potential problems in the system, additional techniques must be used.
One such additional technique is therefore to make the processor work more efficient. For example, when updating a data set on a user terminal, there are different approaches.
One commonly used and obvious solution is to always send a completely new data set that replaces the old one. This is generally inefficient when only a portion of the data in the data set has changed. A more efficient way may be to send only the part of the data set that has changed. A further improvement is to send delta changes.
Another known technique is to send an operator describing the difference between two data sets. Applying the operator to the first data set may transform the first data set into a second data set.
Optimization is possible by selecting a good set of operators that act on the data set. Today, the methods available for extracting dataset differences are inadequate. Accordingly, there is a need to develop techniques for extracting and selecting operators in an efficient manner, e.g., with fewer steps, in order to reduce the load on the processor, and for reducing data propagation, such as bandwidth, in a computer system.
Disclosure of Invention
It is therefore an object of the present invention to provide a solution for generating an update data set to be sent to a remote terminal.
It is another object of the present invention to provide a solution for efficiently extracting data from a data set.
It is another object of the invention to provide a solution that efficiently extracts and/or selects operators based on differences between data sets.
It is another object of the invention to provide a solution for generating a data structure to be transmitted to a remote terminal.
It is a further object of the invention to provide a solution that uses less processor time.
According to a first aspect of the present invention, the above object and other objects are achieved by a computer system for generating an update data set to be sent to a remote terminal, the update data set comprising operators describing differences between a first data set comprising sorted data elements and a second data set comprising sorted data elements, the computer system comprising:
a memory comprising a first data set and a second data set,
a comparator connectable to the memory for sequentially comparing data elements in the second data set with data elements in the first data set, the result of the first comparison controlling which data element in the first data set is to be compared with which data element in the second data set in the second comparison, the change parameter in the memory being updated after each comparison, and the selector being activated upon detection of a correspondence of a data element in the second data set with a data element in the first data set,
a selector connectable to the memory and the comparator, the selector for determining an operator based on the variation parameter stored in the memory and storing the determined operator in the memory,
thereby generating an update data set to be sent to the remote terminal comprising operators describing differences between the first data set and the second data set.
The computer system has the advantage that it enables a computer system, such as a transaction system, to more efficiently generate an updated data set by using less CPU time. For example, the reason for this is that the computer system allows the first data set and the second data set to be compared by running each data set through only one pass.
The computer system further includes a communicator associated with the selector for generating and transmitting an update message including the update data set. The message may include a data structure, such as a list, array, bit checkerboard (bitmap), stack, heap (heap), tree or collection, etc., that includes a set of data to be transmitted to the remote terminal. Preferably, the message is sent by using the FIX standard, however it may be sent using any other protocol known to the person skilled in the art, such as the Omnet API, XTP, SSL or any other standard or proprietary protocol.
Preferably, the first data set and the second data set comprise dynamic data elements that change over time. For example, the first data set may be a command book in the trading system at time T1, and the second data set may be a command book at time T2. The data in the order book may have changed during times T1 and T2 because new orders to buy or bid on selling financial instruments may have been entered. The information dissemination system may disseminate information to remote terminals at certain predetermined time intervals or based on activity in the command book. For example, if the command book does not receive any new commands, it makes no sense to send new updates to the remote terminal. However, when a new command enters the command book, the new information must be propagated to the remote terminal. Therefore, when activity occurs at this point in time, it may be necessary to send an update message. Another example of a change that may occur in a command book is during a state transition, such as when the command book is turned on or off.
Thus, the second data set is a subsequent version (later version) of the first data set. In this way, the central system can compare what changes have occurred and because the central system knows what data sets the remote terminals have, the central system can extract operators to store and send to the update data sets. Furthermore, certain portions of the change between the first data set and the second data set may also be sent to a particular remote terminal, as a user at the remote terminal may desire information about different portions of the data set.
Preferably, the operator is determined from the group comprising: add operator, delete operator, replace operator. By determining these operators based on the variation parameters, an updated data set may be generated. These operators may be combined as described later in this document.
The variation parameter preferably comprises a first counter associated with the first data set and a second counter associated with the second data set. In this way, the selection process can be monitored and managed in a more accurate manner. Thus, the selector may determine the operator based on a relationship between a first counter associated with the first data set and a second counter associated with the second data set. This speeds up the selection process, since the relationship is preferably a relationship selected from the group of relationships consisting of: >, <, ≧ gtoreq, ≦ or ≠ may be used. Based on the relationship between the counters, at least one operator may be determined: addition, deletion, replacement.
The variation parameters may further include a first location parameter associated with the first data set and a second location parameter associated with the second data set for tracking a logical location of the comparator in the first data set and the second data set. In this way, the results of the sequential comparison of the first list and the second list can be monitored and managed in a more accurate manner.
The operator may include a delta change. Thus, if only a portion of the data elements have changed, the operator may describe the portion of the data elements that have changed. However, the operator may also describe that the entire data element should be deleted or replaced or added, for example.
Each data element normally includes at least a key. However, the data elements may also include data portions. In general, the data portion may be empty. In a trading system, however, the typical key is the price in the order book. The data portion may be, for example, the total capacity for that price. However, if the key includes a price and a time, it is not always necessary to send the entire key. The data element classification may be based on price and time, but only the price may be sent to the remote terminal.
In a second aspect of the invention, the above object and other objects are fulfilled by an electronic transaction system comprising a computer system as described above.
Thus, in an electronic trading system, the computer system may be an integrated module. The computer system may also be a stand-alone module sold separately as an information extraction system.
In a third aspect of the invention, the above object and other objects are achieved by a method for generating an update data set to be transmitted to a remote terminal, the update data set comprising operators describing differences between a first data set comprising sorted data elements and a second data set comprising sorted data elements, the method comprising the steps of:
sequentially comparing data elements in the first data set with data elements in the second data set, the result of the first comparison controlling which data element in the first data set is to be compared with which data element in the second data set in the second comparison,
-updating the variation parameter in the memory after each comparison,
-upon detecting that the data elements in the second data set coincide with the data elements in the first data set, initiating a selection process, the selection process determining operators based on the variation parameters stored in the memory,
-storing the determined operators in a memory, thereby generating an update data set to be sent to the remote terminal, the update data set comprising operators describing differences between the first data set and the second data set.
This approach has the advantage of enabling a computer system such as a trading system to generate updated data sets more efficiently by using less CPU time, because the invention enables, for example, a first data set to be compared with a second data set by running each data set through only one pass.
The method may further comprise the step of comparing the data elements in association with the determined operator. In this way, the system can track which data elements an operator should be used for.
The method may also include the steps of: from the group consisting of: at least one operator is determined from the group of add operator, delete operator, replace operator. The update data set may be generated by determining these operators based on the variation parameters. These operators may be combined as described in the present document below.
As described above, the variation parameter may include a first counter associated with the first data set and a second counter associated with the second data set. Thus, the method may further comprise the step of determining an operator based on a relationship between a first counter associated with the first data set and a second counter associated with the second data set.
Preferably, each data element comprises a key and a data portion, the method may further comprise the step of comparing at least one of the key and the data portion of a data element of the first data set with at least one of the key and the data portion of a data element of the second data set.
As mentioned earlier, the first data set and the second data set may comprise dynamic information that varies over time.
In a fourth aspect of the invention the above object and other objects are achieved by a computer program product according to any one of the preceding aspects and/or embodiments, stored on a data carrier.
These and other aspects of the invention are apparent from and will be elucidated with reference to the embodiments described hereinafter.
Drawings
Fig. 1 shows an overview of a computer network in which the present invention may be used.
Fig. 2 shows an electronic device comprising a memory, a first data set, a second data set, a change parameter, a comparator, a selector, an update data set and an interface.
FIG. 3 illustrates a data set including data elements, and data elements including keys and data.
FIG. 4 shows an algorithm for iterating the data sets described herein.
Fig. 5 shows data set a and data set B.
FIG. 6 illustrates a comparison of data elements in data set A with data elements in data set B.
FIG. 7 illustrates a comparison of data elements in data set A with data elements in data set B.
FIG. 8 illustrates a comparison of data elements in data set A with data elements in data set B.
FIG. 9 shows a comparison of data elements in data set A with data elements in data set B.
FIG. 10 illustrates a comparison of data elements in data set A with data elements in data set B.
Fig. 11 shows a first operator selected by the selection method.
FIG. 12 shows a comparison of data elements in data set A with data elements in data set B.
FIG. 13 shows a comparison of data elements in data set A with data elements in data set B.
FIG. 14 shows a comparison of data elements in data set A with data elements in data set B.
FIG. 15 shows a comparison of data elements in data set A with data elements in data set B.
FIG. 16 shows a comparison of data elements in data set A with data elements in data set B.
FIG. 17 shows a comparison of data elements in data set A with data elements in data set B.
FIG. 18 shows additional operators selected by the selection method.
FIG. 19 illustrates an update data set including operators selected by a selection method.
FIG. 20 shows data set A and data set B before the operator is used.
Fig. 21 shows one row in the update data set.
Fig. 22 shows the change of the data set a after the first operator is applied.
Fig. 23 shows one row in the update data set.
Fig. 24 shows the change of the data set a after the second operator is applied.
Fig. 25 shows one row in the update data set.
Fig. 26 shows a change of the data set a after the third operator is applied.
Fig. 27 shows one row in the update data set.
Fig. 28 shows the change of the data set a after the fourth operator is applied.
FIG. 29 shows the result after the operator is applied to data set A.
Fig. 30 shows a selection method B.
Detailed Description
Fig. 1 shows a computer network comprising a remote terminal 1, a central computer 2 and a gateway or router 3. Between the different devices there are connections shown by lines 4 of different thickness. The thickness represents the bandwidth (data rate). The thick lines have a high data rate, while the thin lines have a low data rate. The 3 front end computers in fig. 1 have letters on the screen, which means that the front end computers are remote terminals belonging to users A, B and C. The update data set 6 is transmitted from the central computer 2 to the remote terminal 1 via a network comprising the line 4 and network means such as a router or the like. The update data set 6 is generated in the computer system 5 according to the invention.
Fig. 2 shows a computer system 5 according to the invention. The computer system 5 comprises a memory 10, a comparator 14, a selector 15 and an interface 16 for sending the update data set 7. The memory 10 comprises a first data set 11 and a second data set 12. Furthermore, the memory comprises an area for storing the change parameters 13, an area for storing the update data set 7 and an area for storing the operators 18.
Fig. 3 shows a data set 11 and an enlarged portion of a data element 17 in the data set. In the figure, the data element 17 comprises both a key and a data part. However, in another embodiment of the present invention, the data element 17 may include at least a key portion.
In the following, the invention will be explained in detail with reference to the drawings. The details of how operators can be decided/selected will be explained.
The following is an example of a method for selecting an operator that describes the difference between two data sets in an efficient manner.
A data set consists of one or several data elements, each having a key and possibly a data part. The key, together with the sorting algorithm, gives each data element a logical position in the data set.
The method is based on:
(1) a set of valid operators is designed.
(2) An efficient algorithm is designed to evaluate the differences of the two data sets and use a set of operators to describe these differences. To achieve this, the algorithm uses one-pass translation on both datasets.
The method describes the change between two data sets using the following set of operators:
introduction to the method
The data elements that are consistent in both datasets (both keys and data portions) are unchanged. The algorithm considers the unchanged data elements as barriers (barriers). The method uses a barrier to confirm when optimization of an operator can be performed. The method is based on the observation that the operator used before the barrier is detected can be optimized.
Assume data sets a and B, see fig. 5. From data set a, data set B may be implemented applying several operators. The algorithms and methods described below extract these operators that convert data set a into data set B.
The following counters # Del and # Add are preferably used during traversal of the data set. These counters are initially set to 0 or any other corresponding value that meets the same goal.
Data set a and data set B are then preferably traversed from the beginning, according to the key's sort command.
The actual logical location in data set a is referred to below as APos, which includes location parameters for data set a. The actual logical position in data set B is referred to below as BPos, which includes position parameters for data set B. APos and BPos are initially set to the first logical position in data sets a and B.
Initialization:
setting # Add-0 and # Del-0.
APos and BPos are set to the first logical position in data sets a and B.
APosStart and BPosStart are set.
The algorithm is as follows: data sets a and B were iterated and # Add and # Del were calculated:
1. the a-set data elements at logical location APos are compared with the B-set data elements at logical location BPos.
a. If there are no A and B data elements, the operator is selected using method B below, and then proceeds to step 2 (Done).
b. If the key is consistent, but the data portions are different, # Add plus 1, # Del plus 1, APos plus 1, BPos plus 1. Proceed to step 1 and compare the next data element.
c. If the key of an A data element is worse (according to the sort command) than the key of a B data element, or there is no A data element, # Add 1 and BPos adds 1. Proceed to step 1 and compare the next data element.
d. If the key of the A data element is better (according to the sort command) than the key of the B data element, or there is no B data element, # Del is incremented by 1 and APos is incremented by 1. Proceed to step 1 and compare the next data element.
e. If the key and data portions are consistent, a barrier is found. If (# Add ≠ 0 or # Del ≠ 0), then the following method B is used to select the operator. Continuing:
setting # Add-0 and # Del-0.
APos plus 1 and BPos plus 1.
APosStart and BPosStart are set.
Proceed to step 1 and compare the next data element.
2. Completion (Done)
Method B. Selecting an operator: compare # Del to # Add.
a. If # Del > # Add, then the following operator is selected:
delete (N ═ Del) operator at logical position apossstart.
The following steps are carried out:
from the B set elements, # Add operators, starting at logical position aposttart.
b. If # Del is # Add, the following operator is selected:
from the B set elements, # Add replacement operators, starting at logical position aposttart.
c. If # Del < # Add, then the following operator is selected:
from the set B elements, # Del replacement operators, starting with logical position aposttart.
The following steps are carried out:
(# Add- # Del) Add operators from B set elements, starting with APOSStart + # Del.
Examples of the present invention
The following are examples describing different method steps with reference to the drawings.
From the table shown in fig. 5, two data sets a and B are imagined. The data elements are preferably sorted based on the key, resulting in the highest value at logical position 1. Data set a represents the old data set and data set B represents the new data set. The task is to transform data set a into data set B.
The method is carried out as follows:
initialization:
setting # Add-0 and # Del-0.
APos is set at the first logical location in data set a, BPos is set at the first logical location in data set B,
apos 1 and Bpos 1 are given.
Apostart and bpossstart are set to APos and bpossstart,
AposStart 1 and bpossart 1 are given.
The method and system begin initializing a counter that is preferably used during iterations of the data set.
An iteration step is then started in which the variation parameters # Add and # Del are iterated and incremented.
Step 1, comparing the data elements of the A set with the data elements of the B set. Since Apos and Bpos are both set to 1, this means that the first data element in the list is compared. However, if the data elements in the data set are sorted in another way, the method may start first with comparing other data elements.
This comparison is depicted in fig. 6. In this case 99 is worse than 101 (see algorithm step c) (data elements in dataset a (Apos ═ 1) are worse than data elements in dataset B (Bpos ═ 1)), so # Add 1, assuming # Add 1. BPos adds 1, assuming BPos equals 2.
Step 1 in the algorithm is continued and the next data element is compared.
And 2, comparing the data elements of the A set with the data elements of the B set. Now the Bpos counter has incremented by 1, so the data element in dataset a at (Apos ═ 1) is compared to the data element in dataset B at (Bpos ═ 2).
This comparison is shown in fig. 7. 99 is worse than 100 (see algorithm step c), so # Add is increased by 1, assuming # Add is 2. BPos plus 1, assuming BPos equals 3.
Step 1 in the algorithm is continued and the next data element is compared.
And 3, comparing the data elements of the A set with the data elements of the B set. Similar to the steps described above.
This comparison is shown in fig. 8. 99 is better than 97 (see algorithm step d), so # Del is added to 1, assuming # Del is 1. APos plus 1, assuming APos ═ 2.
Step 1 in the algorithm is continued and the next data element is compared.
And 4, comparing the data elements of the A set with the data elements of the B set. This comparison is shown in fig. 9. 98 is better than 97 (see algorithm step d), so # Del is added to 1, assuming # Del is 2. APos plus 1, assuming APos ═ 3.
Step 1 in the algorithm is continued and the next data element is compared.
And 5, comparing the data elements of the A set with the data elements of the B set. This comparison is shown in fig. 10. The key and the data part are both identical (see algorithm step e) and therefore the barrier has been reached.
Method B is used to launch the selector and select the operator.
And 6, comparing the # Del with the # Add. According to method B, step B can be applied in this case:
(b) # Del (2) # Add (2) and thus selects the following operator:
instead of the 2(# Add) operator, data is selected from the B set, starting with logical position aposttart ═ 1.
The selected operator is shown in fig. 11.
And 7, continuously performing iteration and comparison on the data elements in the data set A and the data set B.
Setting # Add-0 and # Del-0.
To reach the barrier the counter is incremented, APos is incremented by 1 and BPos is incremented by 1, assuming APos 4 and BPos 4.
APosStart and BPosStart are set assuming APosStart and BPosStart are 4.
Step 1 in the algorithm is continued and the next data element is compared.
And 8, comparing the data elements of the A set with the data elements of the B set. This comparison is shown in fig. 12. 96 is better than 93 (see algorithm step d), so # Del is added to 1, assuming # Del is 1. APos plus 1, assuming APos ═ 5.
Step 1 in the algorithm is continued and the next data element is compared.
And 9, comparing the data elements of the A set with the data elements of the B set. This comparison is shown in fig. 13. 95 is better than 93 (see algorithm step d), so # Del is added with 1, assuming # Del is 2. APos plus 1, assuming APos ═ 6.
Step 1 in the algorithm is continued and the next data element is compared.
And 10, comparing the data elements of the A set with the data elements of the B set. This comparison is shown in fig. 14. 94 is better than 93 (see algorithm step d), so # Del is added with 1, assuming # Del is 3. APos plus 1, assuming APos ═ 7.
Step 1 in the algorithm is continued and the next data element is compared.
And 11, comparing the data elements of the A set with the data elements of the B set. This comparison is shown in fig. 15. The keys are identical but the data parts are different (10 not equal to 15) (see algorithm step b).
Add 1 to # Add 1, assuming # Add is 1.
Add 1 to # Del, assuming # Del is 4.
APos plus 1, assuming APos ═ 8.
BPos plus 1, assuming BPos equals 5.
Step 1 in the algorithm is continued and the next data element is compared.
And 12, comparing the data elements of the A set with the data elements of the B set. This comparison is shown in fig. 16. There are no B data elements (empty) (see algorithm step d).
Add 1 to # Del, assuming # Del is 5. Apos plus 1, assuming Apos ═ 9.
Step 1 in the algorithm is continued and the next data element is compared.
And 13, comparing the data elements of the A set with the data elements of the B set. This comparison is shown in fig. 17. The data element in data set a at APos (9) and the data element in data set B at BPos (5) are empty, so step a in the algorithm is applied. Step a in the algorithm activates the selector and thus applies method B as described in step 14.
Step 2 (done) continues after this selection.
Step 14. the counter # Del is compared to the counter # Add by using the selection method B.
According to the selection step (a) in the selection method B, # Del (5) > # Add (1), it is therefore preferable to select the operator as follows:
delete 5(# Del) operator at logical position apoststart (4).
The following steps are carried out:
the Add 1(# Add) operator from the B-set data element begins at logical position APOSStart (4).
The selected operator is shown in fig. 18.
Step 15 the last step 2 (done) in the algorithm is implemented in step 14 as described above.
After the iteration of the algorithm and method B is completed, the full number of operators describing the change from data set a to data set B is stored in memory, preferably together with the corresponding logical locations, keys and data parts. An update data set is generated that includes operators, logical positions, keys, and data portions, as shown in fig. 19.
In another embodiment, the logical locations may be represented by keys. In this case, the terminal receiving the update data set preferably comprises information how the logical positions are related to each other in order to be able to sort the data elements. Thus, the logical positions need not be 1, 2, 3. May also be represented by A, B, c.
With knowledge of dataset a and of the updated dataset comprising operators as shown in fig. 19, dataset B can be generated by using one operator at a time in sequence from start to finish.
A method description of how this is done is shown below using figures 20-29.
Fig. 20 shows the case of the data set a and the data set B before the update data set is applied to the data set a. Thus, by using the update data set in fig. 19, the following steps generate data set B from data set a.
By applying the first row of the updated data set in fig. 19 shown in fig. 21 to the data set a, a modified data set a as shown in fig. 22 is obtained.
By applying the second row of the updated data set in fig. 19 shown in fig. 23 to the data set a, a modified data set a as shown in fig. 24 is obtained.
By applying the third row of the updated data set in fig. 19 shown in fig. 25 to the data set a, the modified data set a as shown in fig. 26 is obtained.
By applying the fourth row of the updated data set in fig. 19 shown in fig. 27 to the data set a, a modified data set a as shown in fig. 28 is obtained.
As shown in fig. 29, the operator has now converted data set a to data set B.
In the above description, the term "comprising" does not exclude other data elements or steps, and "a" or "an" does not exclude a plurality.
Furthermore, the term "comprising" does not exclude other data elements or steps.

Claims (12)

1. A computer system for generating an update data set to be sent to a remote terminal, the update data set comprising operators describing differences between a first data set containing classification data elements and a second data set containing classification data elements, said operators being determined from the group comprising: add operator, delete operator, replace operator,
the computer system includes:
a memory, the memory including a first data set and a second data set,
a comparator connected to the memory for sequentially comparing data elements in the second data set with data elements in the first data set, wherein the result of a first comparison between one data element of the second data set and one data element of the first data set controls which data element in the first data set and which data element in the second data set are to be compared in a second comparison in the data element comparison order, a change parameter in the memory is updated after each comparison, and the selector is activated upon detection that a data element in the second data set coincides with a data element in the first data set, wherein the change parameter comprises a first counter associated with the first data set and a second counter associated with the second data set, and further comprises a first position parameter associated with the first data set and a second position parameter associated with the second data set, for tracking the position of the comparator in the first data set and in the second data set,
a selector connected to the memory and the comparator, the selector for determining an operator based on the variation parameter stored in the memory and storing the determined operator in the memory,
thereby generating an update data set to be sent to the remote terminal comprising operators describing differences between the first data set and the second data set.
2. The computer system of claim 1, further comprising a communicator associated with the selector for generating and transmitting an update message comprising the update data set.
3. The computer system of claim 1, wherein the first data set and the second data set include dynamic data elements that change over time.
4. The computer system of claim 1, wherein the second data set is a subsequent version of the first data set.
5. The computer system of claim 1, wherein the selector selects an operator based on a relationship between a first counter associated with a first data set and a second counter associated with a second data set.
6. The computer system of claim 1, wherein each data element comprises a key and a data portion.
7. An electronic transaction system comprising the computer system of claim 1.
8. A method for generating an update data set to be transmitted to a remote terminal, the update data set comprising operators describing differences between a first data set containing classification data elements and a second data set containing classification data elements, the operators being determined from the group comprising: adding, deleting and replacing operators, the method comprises the following steps:
sequentially comparing data elements in the first data set with data elements in the second data set, wherein the result of a first comparison between a data element of the second data set and a data element of the first data set controls which data element in the first data set is to be compared with which data element in the second data set in a second comparison in the data element comparison order,
updating in memory a change parameter upon each comparison, wherein the change parameter comprises a first counter associated with the first data set and a second counter associated with the second data set, and further comprises a first location parameter associated with the first data set and a second location parameter associated with the second data set,
-in case it is detected that the data elements in the second data set coincide with the data elements in the first data set, initiating a selection procedure, which determines operators based on the variation parameters stored in the memory,
-storing the determined operators in a memory,
thereby generating an update data set to be sent to the remote terminal, the update data set comprising operators describing differences between the first data set and the second data set.
9. The method of claim 8, further comprising the step of: the determined operator is associated with the compared data element.
10. The method of claim 8, further comprising the step of determining an operator based on a relationship between a first counter associated with the first data set and a second counter associated with the second data set.
11. The method of claim 8, wherein each data element includes a key and a data portion, the method further comprising comparing the key and data portion of the data element of the first data set with the key and data portion of the data element of the second data set, respectively.
12. The method of claim 8, wherein the first data set and the second data set include dynamic information that varies over time.
HK10106069.1A 2006-12-20 2007-12-14 System and method for optimizing changes of data sets HK1140030B (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/641,957 2006-12-20
US11/641,957 US8117609B2 (en) 2006-12-20 2006-12-20 System and method for optimizing changes of data sets
PCT/EP2007/064005 WO2008074751A1 (en) 2006-12-20 2007-12-14 System and method for optimizing changes of data sets

Publications (2)

Publication Number Publication Date
HK1140030A1 HK1140030A1 (en) 2010-09-30
HK1140030B true HK1140030B (en) 2013-08-16

Family

ID=

Similar Documents

Publication Publication Date Title
AU2007336337B2 (en) System and method for optimizing changes of data sets
WO2021142917A1 (en) Multi-depot vehicle routing method, apparatus, computer device and storage medium
CN109325041A (en) Business data processing method, device, computer equipment and storage medium
KR101689908B1 (en) Distributed evolutionary algorithm for asset management and trading
CN108961052A (en) Verification method, storage method, device, equipment and the medium of block chain data
US20130124380A1 (en) Template Based Matching
CN112035366B (en) Test case generation method, device and equipment
CN108255994A (en) A kind of database version management method based on database snapshot
CN111259312B (en) Multi-objective flow shop scheduling method, device, computer equipment and storage medium
WO2025086378A1 (en) Data processing method and apparatus for virtual resources
CN107644025B (en) Method and device for distributing WAL records of distributed database
CN112966054A (en) Enterprise graph node relation-based ethnic group division method and computer equipment
CN111292178A (en) Demand matching method and device, storage medium and electronic equipment
CN116362889A (en) Product limit verification method and device based on cache index and computer equipment
CN113434505B (en) Transaction information attribute retrieval method, device, computer equipment and storage medium
HK1140030B (en) System and method for optimizing changes of data sets
CN109460318A (en) It is a kind of can rollback archives acquisition data introduction method, computer installation and computer readable storage medium
CN115203312A (en) User data processing method, apparatus, computer equipment and storage medium
US12524723B2 (en) Systems and methods for risk diagnosis of cryptocurrency addresses on blockchains using anonymous and public information
CN113360539B (en) Market subscription-based subscription information pushing method, device, equipment and medium
US20230054360A1 (en) Machine learning consolidation
CN115170313A (en) Transaction risk determination method, device and server
CN115858001A (en) Grayscale management method and device based on equipment identification and computer storage medium
CN118839343A (en) Reliability determination method and device for software network and server
CN116955745A (en) File data processing method and device