Whenever new data is loaded, changed, deleted, or if the schema of a table has changed, the Arcadia Catalog Cache needs to know about it. Arcadia table metadata can be updated programmatically:
arcadia-shell -i <arcengined host>:31100 -q "invalidate metadata mydb.mytable"
Or through the UI:
Refer to this post for a more detailed explanation regarding table metadata refreshing.
Dataset and result cache
The Arcadia result cache is a connection level setting that allows you to optimize performance for repeated queries within a certain amount of time. For example, if your data only changes once or twice, its more optimal to use a longer cache timeout setting since the underlying data won’t be changing very often (i.e. 21600 seconds, or 6 hours). However, when your data does change you also have the option to manually or programmatically clear the result cache from your Datasets so that you’re query results reflect your most recent set of data.
The result cache is available on all connection types.
You can also configure your Datasets to inherit the result cache settings from the Connection:
or override them as needed to reflect how often you want the result cache to be invalidated.
Refer to this post for a more detailed explanation and example code for programmatically refreshing a Dataset cache.
The tables underneath your Dataset may change over time, which can cause the Dataset definition and the table schema to be out of sync temporarily. You can resolve this by click the “Refresh” button in the Fields menu of the Dataset:
If no changes have occurred between the time the Dataset was created and the time you trigger the refresh, you should see a response like this:
However, if there have been column name, column type, or schema changes since the Dataset was first created, you should see a response like this: