De-duplication in billing system
First Claim
1. A computer-implemented method for performing de-duplication of incoming events, the method comprising:
- an act of a computing system receiving a plurality of events in the form of event messages, each of at least some of the events affecting one or more of a plurality of accounts;
an act of the computing system partitioning each of the plurality of events into a plurality of channels, each of the plurality of channels receiving a subset of the plurality of events; and
for at least one of the plurality of channels, performing de-duplication for at least some of the events received by the corresponding channel, wherein de-duplication comprises;
an act of comparing an event identifier for a first event against a Bloom filter to determine that the first event cannot be ruled out as being a duplicate of another event previously received by the channel;
identifying a value of the first event; and
an act of taking subsequent action, which is directed at determining whether the first event is a duplicate, based upon both of (1) the determination that the first event cannot be ruled out as being a duplicate, as well as (2) the value of the first event,wherein the subsequent action comprises a first combination of processes when the value of the first event is less than a predetermined threshold, andwherein the subsequent action comprises a second combination of processes that is different than the first combination of processes when the value of the first event is greater than a predetermined threshold.
2 Assignments
0 Petitions
Accused Products
Abstract
Scalable handling of billing events that affect one or more accounts. A computing system partitions received events into a number of channels, perhaps by account identifier. The channels receive the events, and perform de-duplication of the events. This de-duplication may be performed using a Bloom filter that is updated to reflect the receipt of any original event. The Bloom filter may be used to either determine that the event is not a duplicate of another, or to determine that the event cannot be ruled out as being a duplicate of another. In the latter case, further processing may be performed to for definitively determine whether the event is truly a duplication, or in the alternative, the event may be immediately treated as a duplicate.
27 Citations
24 Claims
-
1. A computer-implemented method for performing de-duplication of incoming events, the method comprising:
-
an act of a computing system receiving a plurality of events in the form of event messages, each of at least some of the events affecting one or more of a plurality of accounts; an act of the computing system partitioning each of the plurality of events into a plurality of channels, each of the plurality of channels receiving a subset of the plurality of events; and for at least one of the plurality of channels, performing de-duplication for at least some of the events received by the corresponding channel, wherein de-duplication comprises; an act of comparing an event identifier for a first event against a Bloom filter to determine that the first event cannot be ruled out as being a duplicate of another event previously received by the channel; identifying a value of the first event; and an act of taking subsequent action, which is directed at determining whether the first event is a duplicate, based upon both of (1) the determination that the first event cannot be ruled out as being a duplicate, as well as (2) the value of the first event, wherein the subsequent action comprises a first combination of processes when the value of the first event is less than a predetermined threshold, and wherein the subsequent action comprises a second combination of processes that is different than the first combination of processes when the value of the first event is greater than a predetermined threshold. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A computer storage device having stored thereon computer-executable instructions that, when executed by one or more processors of a computing system, cause the computing system to perform a method that includes:
-
an act of a computing system receiving a plurality of events in the form of event messages, each of at least some of the events affecting one or more of a plurality of accounts; an act of the computing system partitioning each of the plurality of events into a plurality of channels, each of the plurality of channels receiving a subset of the plurality of events; and for at least one of the plurality of channels, performing de-duplication for at least some of the events received by the corresponding channel, wherein de-duplication comprises; an act of comparing an event identifier for a first event against a Bloom filter to determine that the first event cannot be ruled out as being a duplicate of another event previously received by the channel; identifying a value of the first event; and an act of taking subsequent action, which is directed at determining whether the first event is a duplicate, based upon both of (1) the determination that the first event cannot be ruled out as being a duplicate, as well as (2) the value of the first event, wherein the subsequent action comprises a first combination of processes when the value of the first event is a first value, and wherein the subsequent action comprises a second combination of processes that is different than the first combination of processes when the value of the first event is a second value that is different than the first value. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. A computer-implemented method for determining when to delete one or more events during de-duplication of incoming events, the method comprising:
-
an act of a computing system receiving a plurality of events in the form of event messages, each of at least some of the events affecting one or more of a plurality of accounts; an act of the computing system partitioning each of the plurality of events into a plurality of channels, each of the plurality of channels receiving a subset of the plurality of events; and for at least one of the plurality of channels, performing de-duplication for at least some of the events received by the corresponding channel, wherein de-duplication comprises; an act of comparing an event identifier for a first event against the Bloom filter to determine that the first event cannot be ruled out as being a duplicate of another event previously received by the channel; an act of deleting the first event even though the first event is not determined to be a duplicate, but is only identified as potentially being a duplicate; an act of comparing an event identifier for a second event against the Bloom filter to determine that the second event is not a duplicate of another event received by the corresponding channel; and in response to determining that the second event is not a duplicate of another event, an act of updating the Bloom filter to reflect receipt of the second event, wherein the second event may be received by the channel before or after the first event. - View Dependent Claims (21)
-
-
22. A computing system comprising:
-
one or more processor; and one or more storage device having stored computer-executable instructions that, when executed by the one or more processor, cause the computing system to implement a method that includes; receiving a plurality of events in the form of event messages, each of at least some of the events affecting one or more of a plurality of accounts; partitioning each of the plurality of events into a plurality of channels, each of the plurality of channels receiving a subset of the plurality of events; and for at least one of the plurality of channels, performing de-duplication for at least some of the events received by the corresponding channel, wherein de-duplication comprises; an act of comparing an event identifier for a first event against a Bloom filter to determine that the first event cannot be ruled out as being a duplicate of another event previously received by the channel; identifying a value of the first event; and an act of taking subsequent action, which is directed at determining whether the first event is a duplicate, based upon both of (1) the determination that the first event cannot be ruled out as being a duplicate, as well as (2) the value of the first event, wherein the subsequent action comprises a first combination of processes when the value of the first event is a first value, and wherein the subsequent action comprises a second combination of processes that is different than the first combination of processes when the value of the first event is a second value. - View Dependent Claims (23, 24)
-
Specification