-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Timeouts with large number of reportsuites #5
Comments
Let's look at the maximum size of an events response for a single reportsuite. Events responses will be bigger than anything else because of the 1000 custom events, plus 13 default events which Adobe preconfigures. That leaves us with 1013 events per response. The longest IDs are going to be with the preconfigured events. We can go ahead and calculate the typical/max size of the default events by using Now all we need to worry about is the size of the remaining 1000 custom events. I don't know if a single production reportsuite in the world has all these configured, but it's worth examining the maximum possible amount.
Let's break this down into maximum lengths. First, we can figure out the length from the IDs, as they will be static.
15893 bytes for IDs.
We also get 4 bytes per object for the object initialization {} and also for their newlines. In total, we get OK, so Per reportsuite we have a maximum of 606693 characters (I've been using bytes and characters interchangeably, but this is only true if ASCII characters are exclusively used. This may not be true for international reportsuites, where UTF-8 is used and will use up additional space). There are a few more characters which are included for each reportsuite.
I could go through the max size for these too, but I'm tired of this post now. Let's assume 100 chars total for our purposes. Maximum size per reportsuite is thus 609,703 bytes, or 610 KB. This is massive. With only 2 reportsuites an event API response could be 1.2 megabytes. 100 reportsuites could result in API results of over 60MB! Typical lengths will be under this because descriptions for non-configured events are much smaller, but 300KB per reportsuite is still typical. One bit of data I will collect on reportsuites.com is the total size per reportsuite of each response. I'm hoping to publish a few blog posts on the subject as I get more data. |
Moving to getSettings, which will allow for getting all the details on a reportsuite at a time. This should fix this issue. |
See this twitter chain
Large numbers of reportsuites can create timeout issues. I suspect this is linked to limits on the Adobe side of request sizes. Events in particular create massive requests even for relatively small report suite sizes.
The solution is to split requests for information on evars, props, and events, perhaps into groups of 10-20? I'll do some math on the maximum possible size per report_suite and go from there.
The text was updated successfully, but these errors were encountered: