Cache will not be invalidated if there are any changes at the data source but it will be invalidated if the time to live seconds exceeds or manually invalidated.
I would do the following to ensure cache stored is not invalidated:
* In the [Cache Configuration](https://community.denodo.com/docs/html/browse/8.0/en/vdp/administration/creating_derived_views/advanced_configuration_of_views/configuring_the_cache_of_a_view#configuring-the-cache-of-a-view) of a view, set the Time to Live(Seconds) option to “Never expire”.
* Ensure not to invalidate the views manually either through GUI or by using VQL Script. For instance, if the below query is executed
SELECT * FROM <my_view> CONTEXT("cache_preload"="true", "cache_invalidate"="true"),Virtual DataPort will fetch the records from the data source and invalidate the existing cache and store fresh records from the source. For more information you can refer to the knowledge article [Availability of full cache](https://community.denodo.com/kb/en/view/document/Availability%20of%20full%20cache).
For additional references, you can refer to the [Invalidate Cache](https://community.denodo.com/docs/html/browse/8.0/en/vdp/administration/starting_virtual_dataport/launching_the_administration_tool/invalidate_cache) section of Virtual DataPort Administration Guide and [Cache Invalidation](https://community.denodo.com/docs/html/browse/8.0/en/vdp/vql/advanced_characteristics/using_the_cache/cache_invalidation) section of Virtual DataPort VQL Guide.
Hope this helps!