Worker Thread Processing for Dashboard Visualization Rendering
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Enterprise software systems face performance bottlenecks in rendering data visualizations due to the need to repeatedly fetch and process visualization definitions and model data, leading to slow response times.
Innovation Solution
Implementing query and model data persistence at a backend data source, allowing one thread to render a story page while another thread issues queries and builds results, and using a priority queue algorithm to manage query execution.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If a reporting tool fetches visualization definitions and model data from a backend data source for each user request, then the system can provide up-to-date data, but the response time becomes slow due to repeated data fetching and query processing
Solution Approach 1:
The system performs preliminary actions by persisting queries and model data in association with visualization definitions at the backend data source before they are needed. This allows the data to be pre-positioned and ready for rapid retrieval when visualization requests occur, eliminating the need to fetch model data separately each time
Solution Approach 2:
The system creates copies of queries and model data and stores them in association with visualization definitions at the backend data source. These copied data elements can be quickly retrieved and used without requiring repeated fetching from the original sources, significantly reducing response time while maintaining data accuracy
2Adaptability or versatility
If the reporting tool builds and issues queries for each visualization request, then the queries are customized to user needs, but the repeated query building and processing creates performance bottlenecks
Solution Approach 1:
Queries are built and persisted in association with visualization definitions in advance, before actual user requests. This preliminary query construction eliminates the need to repeatedly build the same queries, while the system maintains the ability to execute customized queries when needed
Solution Approach 2:
The system creates and stores copies of queries alongside visualization definitions. These query copies can be executed directly without rebuilding, maintaining query customization capabilities while dramatically improving processing speed by avoiding repeated query construction and compilation
3Measurement precision
If model data is fetched separately for each visualization, then the system ensures data accuracy, but the separate fetching process increases overall processing time
Solution Approach 1:
The system merges the fetching of visualization definitions and model data into a single operation. By persisting model data in association with visualization definitions at the backend, both data types are retrieved together in one operation rather than separately, reducing total fetching time while ensuring data accuracy through their persistent associations
Solution Approach 2:
Model data copies are stored in association with visualization definitions, allowing both to be retrieved simultaneously in a single fetch operation. This eliminates the need for separate model data fetching while maintaining data accuracy through the persistent relationships embedded in the copied data structures
Data Source
AI summary
A system includes reception of a request to display a first dashboard, transmission of a request for a first dashboard data file associated with the first dashboard from a server system, reception of the first dashboard data file associated with the first dashboard from the server system, issuance a first plurality of queries of the first dashboard data file to the server system, reception of result sets in response to the first plurality of queries, building of results based on the result sets and the model data, rendering of one or more data visualizations based on the results, and presentation of the one or more data visualizations on the display.


