A method comprising: receiving event data associated with media content, the event data including an event identifier; determining if the event identifier matches an event identifier for event data already stored in a first cache memory; adding the received event data to the event data stored in the first cache memory if the received event identifier does not match an event identifier for the event data stored in the first cache memory; replacing the event data stored in the first cache memory with the received event data if the received event identifier matches the event identifier for the event data stored in the first cache memory, the method further characterized such that the step of adding the received event data also increments an event count value and the step of replacing the event data stored in the first cache memory does not increment the event count value and the method further comprises: determining (510, 550) if a cache memory swap is to occur, the determination based on the event count value and a time period from a previous cache memory swap, wherein the first cache memory is swapped with a second cache memory, said second cache memory performing the steps of receiving, determining, adding and replacing after the cache memory swap; updating a first event database with the event data in the first cache memory after it is determined that the cache memory swap is to occur, the first event database being identified as a write database before the step of updating the first event database and identified as a read database after the step of updating; and copying the contents of the updated first event database to a second event database, the second event database being identified as a read database before the step of updating and identified as a write database after the step of updating. receiving event data associated with media content, the event data including an event identifier; determining if the event identifier matches an event identifier for event data already stored in a first cache memory; adding the received event data to the event data stored in the first cache memory if the received event identifier does not match an event identifier for the event data stored in the first cache memory; replacing the event data stored in the first cache memory with the received event data if the received event identifier matches the event identifier for the event data stored in the first cache memory, the method further characterized such that the step of adding the received event data also increments an event count value and the step of replacing the event data stored in the first cache memory does not increment the event count value and the method further comprises: determining (510, 550) if a cache memory swap is to occur, the determination based on the event count value and a time period from a previous cache memory swap, wherein the first cache memory is swapped with a second cache memory, said second cache memory performing the steps of receiving, determining, adding and replacing after the cache memory swap; updating a first event database with the event data in the first cache memory after it is determined that the cache memory swap is to occur, the first event database being identified as a write database before the step of updating the first event database and identified as a read database after the step of updating; and copying the contents of the updated first event database to a second event database, the second event database being identified as a read database before the step of updating and identified as a write database after the step of updating. determining (510, 550) if a cache memory swap is to occur, the determination based on the event count value and a time period from a previous cache memory swap, wherein the first cache memory is swapped with a second cache memory, said second cache memory performing the steps of receiving, determining, adding and replacing after the cache memory swap; updating a first event database with the event data in the first cache memory after it is determined that the cache memory swap is to occur, the first event database being identified as a write database before the step of updating the first event database and identified as a read database after the step of updating; and copying the contents of the updated first event database to a second event database, the second event database being identified as a read database before the step of updating and identified as a write database after the step of updating.