Faster Reporting: Introducing Automated Statistics Aggregation
Introduction
Ever since we launched Revive Adserver Hosted edition in 2018, we’ve seen a tremendous growth in the number of subscribers and the actual use of the system. One of the effects is that we now have many years worth of statistics in the underlying database. To help reduce the overall database size, we’ve started optimizing the database storage of long term statistics in January 2020.
Today we’re announcing that starting in May 2026, we’ll be taking this optimization to the next level.
Aggregation of statistics
Starting from May 2026, we’re going to run a monthly process that will do the following:
- Recent statistics (not older than 3 months) will remain available at an hourly level
- Any statistics older than 3 months will be aggregated to a daily sum
- Any statistics older than 12 months will be aggregated to a monthly sum
For example:
In mid-May 2026 we’ll run the aggregation process, and at that time:
- Statistics for February, March, April, and May 2026 will remain available by hour
- Statistics for January 2026 will be aggregated from the hourly to the daily level
- Statistics for April 2025 will be aggregated from the daily level to the monthly level
And then, in mid-June 2026, we’ll run it again, and at that time:
- Statistics for March, April, May, and June 2026 will remain available by hour
- Statistics for February 2026 will be aggregated from the hourly to the daily level
- Statistics for May 2025 will be aggregated from the daily level to the monthly level
And so on….
How the aggregation works
The developers of the Revive Adserver software have created a tool that automates the aggregation process entirely, in order to make it work very fast and to avoid errors that could result from manually performing such database operations. Initially we’ll be starting the aggregation process manually and monitoring execution time and other performance effects. Once we’ve established that it works correctly, we will consider scheduling it for automatic completion once a month.
What our users think
Before we started on this idea, we’ve examined server logs to find out how our users interact with the long term statistics in the database. We found that it hardly ever happens that users run reports for data from more than a year ago. And if they do, it virtually never happens that they look at statistics by hour from that long ago.
We also email-interviewed a small group of users about this, and the consensus was that nobody will miss having access to hourly level data from longer than 3 months ago, or daily level data from longer than 12 months ago.
Expected benefits
As a result of this aggregation, the overall size of the database that stores all data for Revive Adserver Hosted edition will decrease significantly. This is expected to have a number of benefits:
- When a user runs a report, it should appear even more quickly than it does today, with the additional benefit that other users won’t have to wait as long for the first user to complete the report. On the whole, all users should see report performance improvements.
- Since the database as a whole will be smaller, it will take less time to make backups of it, and that frees up resources for all users and for other background processes.
While testing the aggregation tool (code-named Condens), it was found that it runs surprisingly fast. It actually supports a flag to run the process in relatively small batches, which is useful because it helps avoid overwhelming the database server.



