<commit_before>[id='data_sets_caching_con']
= Caching

{CENTRAL} provides caching mechanisms for storing data sets and performing data operations using the in-memory data. Caching data reduces network traffic, remote system payload, and processing time, among other things. In {CENTRAL}, you have to fine tune the caching settings so as to avoid facing performance issues. For any data look-up call that results in a data set, the caching techniques determine where the data lookup calls are executed and where the resulting data set is stored.

{CENTRAL} data set functionality provides two cache levels:

* Client level
* Back-end level

[float]
== Client cache

When this cache is turned on, the data set is cached in a web browser during the look-up operation. Consequently, further look-up operations do not perform requests to the back end. Data set operations like grouping, aggregations, filtering and sorting are processed in the web browser. Enable client caching only if the data set size is small (for example, less than 10 mb) otherwise for large data sets, browser issues such as slow performance or intermittent freezing can occur.

You should use client caching if you determine that the data set size of your project is small. Client caching reduces the the number of back-end requests including requests to the storage system.

[float]
== Back-end cache

When this cache is turned on, the data set is cached by the {CENTRAL} engine. Doing this reduces the number of requests to the remote storage system. All data set operations are performed in the {CENTRAL} engine using the in-memory data. Enable back-end caching only if the data set size is not updated frequently and it can be stored and processed in memory.

You should use back-end caching when the data set does not change very often and its size is also acceptable to be held and processed in-memory. Using back-end caching is also useful in cases with low latency connectivity issues with the remote storage.

[NOTE]
====
The Java and CSV data providers rely on back-end caching.
====
[NOTE]
====
Back-end cache settings are not always visible in the *Advanced* tab of the *Data Set Editor*.
====<commit_msg>BXMSDOC-2396-master patch<commit_after>[id='data_sets_caching_con']
= Caching

{CENTRAL} provides caching mechanisms for storing data sets and performing data operations using the in-memory data. Caching data reduces network traffic, remote system payload, and processing time, among other things. In {CENTRAL}, you have to fine tune the caching settings so as to avoid facing performance issues. For any data look-up call that results in a data set, the caching techniques determine where the data lookup calls are executed and where the resulting data set is stored.

{CENTRAL} data set functionality provides two cache levels:

* Client level
* Back-end level

[float]
== Client cache

When this cache is turned on, the data set is cached in a web browser during the look-up operation. Consequently, further look-up operations do not perform requests to the back end. Data set operations like grouping, aggregations, filtering and sorting are processed in the web browser. Enable client caching only if the data set size is small (for example, less than 10 mb) otherwise for large data sets, browser issues such as slow performance or intermittent freezing can occur. Client caching reduces the number of back-end requests including requests to the storage system.

[float]
== Back-end cache

When this cache is turned on, the data set is cached by the {CENTRAL} engine. Doing this reduces the number of requests to the remote storage system. All data set operations are performed in the {CENTRAL} engine using the in-memory data. Enable back-end caching only if the data set size is not updated frequently and it can be stored and processed in memory. Using back-end caching is also useful in cases with low latency connectivity issues with the remote storage.

[NOTE]
====
The Java and CSV data providers rely on back-end caching.
====

[NOTE]
====
Back-end cache settings are not always visible in the *Advanced* tab of the *Data Set Editor*.
====
{'fraction_non_alphanumeric': 0.04782608695652174, 'fraction_numerical': 0.001932367149758454, 'mean_word_length': 4.595945945945946, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1891000', 'n_tokens_mistral': 1013, 'n_tokens_neox': 955, 'n_words': 642}