Clarification on where crosstabs are processed

Dean Flinter shared this question 14 days ago
Answered

Hi,

We had a situation recently where a relatively simple crosstab was not running

I don't remember the exact setup of the report but it was something like 3/4 fields with 1 in rows and the rest in columns. The query was returning about 78k rows

We got a memory sandbox error from chrome and indeed when the report was running we could see RAM usage for chrome climbing rapidly until no more memory was available. This happened on 2 machines which have 16GB of RAM, with some of course being used by the OS etc

I was under the impression that crosstabs were processed solely on the server but it appears from this situation that client memory is also used?


Thanks

Dean

Comments (3)

photo
1

Hey Dean,

I hope you are well!

It was good to see you on the Virtual User Event this week :)


Funnily enough, I have had a conversation with a developer about the chrome crashing when building a crosstab report, because I have also experienced an issue with this myself.


So when building a crosstab report, I received a browser response saying that the page was unresponsive -

3bcd9422ea30881aa9bc93f557eb1aff

From this, I got the following response -


I don't really believe this is a bug with Yellowfin... It appears that Yellowfin ran the report and generated the output ok, and it was just that there was too much data to display in the browser. It could be that more capable client machines (with more processing power/ memory) could handle the result coming back, and render it correctly.

This is a problem with the Browser crashing itself because there is too much data coming back from Yellowfin. This can be fixed by not running a report that produces such a large cross-tab result.

However we have an option to put a fail-safe in.. We can have a configurable cell limit. Once met, the report will error out.. but not crash the browser.

This shouldn't be hard to implement... We can do this by performing a check during cross tab generation, and if the Rows x Columns exceeds the cell limit, an error is thrown. (Rows and Columns grow as new unique combinations of dimensions are found when processing the raw resultset from the database)


So we now have an enhancement to add this fail-safe to stop the browser from crashing.

I hope this has answered your question on how the browser is processing the yellowfin response (basically too much for the browser to handle at once, if the result set is too large)

Let me know if you have any further questions and I will be happy to acquire the answers for you!


Best Wishes,

Lesley

photo
1

Hey Leslie,

Yeah it was a good event. Couldn't do the speed networking unfortunately

Thanks for getting back to me!

Since we couldn't get it to run in crosstab form, I wasn't able to see what it was trying to produce. That is until today where I got it to run in Firefox (seems FF has different memory limits per tab than Chrome).

Having seen it, I understand now why it struggled. It produced 4.2m cells vs ~224k for a normal table

The cell limit as described would be somewhat useful but I wonder is it possible to paginate the results of a crosstab? That way only part is rendered on screen at a given time. Just a thought

You can close this one off so. Nice and easy :)


Thanks

Dean

photo
1

Hey Dean,

I hope you are well :)


Yep I think thats a good idea to add to the conversation with the development team so I have just added it as a comment in the enhancement task


I hope you have a lovely weekend!

Best Wishes,

Lesley