In order to keep redirects fast FunnelFlux does things in a different way to most trackers.
Here's a basic outline of what happens when traffic is hitting your server:
- FunnelFlux reads cached data telling it how to redirect a user. No direct interactions with your database, since that would slow things down.
- After redirecting the user and logging data, FunnelFlux writes all this to temporary cache files
- The system eventually moves these cached data into your tracker database where they are accessible to reporting
- Using free resources, FunnelFlux continuously runs background jobs to precompile reports and aggregates, so that you can see "quick stats" very rapidly (i.e. these are the quickstats available when you click a campaign or funnel), and these are also used in your reporting view for relevant groupings where cached data exists.
All of this leads to a faster system with some sacrifice of how real-time the data is under high load.
If you are running low volume, chances are the caching and background jobs will keep the precompiled reports very up to date.
If you run high volume on a VPS with low resources, the background jobs can get behind and play catch up.
Here is a list of all the background aggregations FunnelFux does. Note that it does these separately for each funnel + traffic source combination, and then by quite a few different properties -- in most cases just by one:
- funnel + traffic source + tracking field
- funnel + traffic source + referrer
- funnel + traffic source + visitor IP
- funnel + traffic source + connection data (ISP, ASN, carrier, connection type)
- funnel + traffic source + location data
- funnel + traffic source + page (lander, offer, lander/offer category)
- funnel + traffic source + node (node ID, node name, node type)
- funnel + traffic source + node/page + MVT combination
- funnel + traffic source + node/page + MVT key/values
- funnel + traffic source + user agent
- funnel + traffic source + node paths
- funnel + traffic source + location data + user agent + connection data + node paths
Quite a lot as you can see!
So, if you are wondering why your server is using significant resources constantly even when you abruptly stop traffic, its probably these jobs catching up.
Likewise if you find certain reporting queries are much faster than others, you guessed it, probably these cached reports.
Notably, this is also a cause of parent/child rows mismatching, i.e. the sum of the children not matching the parent.
In situations where your server is playing catch up, a drilldown of funnel > traffic source > country > landers would use the cached country data, but would pull directly from the database for the country > lander segmentation, thus giving the most up-to-date data.