Hi Kovil, thank you for your questions,
In general, FlexCache is an internal caching system that leverages Apache Arrow to boost performance by storing query results in an optimized binary format. This caching mechanism allows for quicker retrieval of data for
identical repeated queries and report filters, leading to reduced data warehouse costs and faster dashboard load times. It's important to note that FlexCache is not a substitute for a live database connection and does not store data permanently.
The data within FlexCache does not have a set expiration period. Instead, cached results are invalidated either
manually or through specific system events. These events include modifications to the Logical Data Model (LDM), updates to the Analytical Data Model (ADM), or changes to the Data Source, such as upload notifications. Simply adding new data to the database will not automatically clear the cache unless one of these invalidation triggers occurs. As a result, cached data can persist indefinitely until an explicit invalidation or a system-triggered event takes place.
Concerning your Redshift database being offline, FlexCache can serve previously cached queries as long as the user interaction precisely matches an earlier query. However, any new query or the need to refresh the cache necessitates a live connection to Redshift. Consequently, if your Redshift database is off or disconnected, any visualizations that require new data or a cache refresh will be impacted.
Therefore, it is strongly advised to keep your Redshift instance online, even in your staging environment. This ensures the consistent operation of your visualizations because cached results only apply to exact prior queries, and any new interactions will require a live database connection to function correctly.
You can check the following links for better understanding:
•
GoodData Docs: Cache Management (FlexCache)
•
GoodData Blog: FlexCache with Apache Arrow
•
GoodData UI Docs: Dashboard Performance