V5 Documentation

RDI Data Limits

NCrunch's RDI works by tracking the execution of code under test in large rolling binary logs stored on the machine responsible for execution. To handle execution at scale without runaway data collection, RDI will enforce limits on the amount of data that can be captured.

Currently, RDI enforces four types of data limits. Under default settings, all limits are active and are rigidly enforced by the collection system.

String Length Data Limit

RDI will only collect strings up to a configurable character limit. This limit is controlled by the following:

Strings exceeding the limit will be truncated, with the RDI overlay displaying only the permitted number of characters.

The intention of this limit is to ensure tests processing large strings do not store excessive amounts of string data.

Method Data Limit

RDI limits the amount of data that can be collected by any given method. This limit is controlled by the following:

Once a method has reached the limit, RDI will stop collecting any more data for it, though the capturing system will still continue to count frames for the method. The result is that a frequently executed method may have only a certain number of frames accessible and searchable by RDI. When an attempt is made to open a frame for a method that exists past its data limit, the UI will show a warning and the overlay will contain no data.

When method data limits are disabled, binary logs can become extremely large. This can cause some tests to run for unacceptably long periods and consume excessive disk space. However, disabling method data limits will allow RDI to access every frame of every method executed by a test, effectively allowing the entire run to become searchable and all data to be visible.

Sometimes when troubleshooting a complex test using a large amount of data, temporarily turning off the method data limit can mean the difference between finding the problem in minutes rather than hours.

Storage Data Limit

The RDI Storage Settings configuration setting can specify a limit to the total amount of RDI data that can be stored on a machine.

When RDI reaches this limit's pruning threshold, a background thread in the NCrunch engine attempts to prune unused data from other RDI sessions (i.e. for other solutions RDI was used for on the same machine).

Generally, the pruning system clears disk space fast enough for RDI to avoid hitting the storage data limit. However, if the pruning threshold is set too high or the overall storage is too small to fit data for the open solution in its entirety, RDI will immediately cease collecting all data when it hits the limit. This can make RDI almost completely unavailable until test data is eventually cleaned up by newer execution runs (which may themselves be truncated by this limit).

This limit is a rough tool for controlling disk space consumption. When encountered, it can make RDI almost useless, as some tests simply won't have any captured data at all.

A correctly configured machine with sufficient hardware resources should not encounter this limit. If you are receiving warnings from RDI about encountering this limit, it is strongly recommended that you provision additional storage for RDI or consider setting a lower method data limit.

Reserved Disk Space Limit

The RDI Storage Settings configuration setting can specify a reserved amount of disk space that should not be used by RDI.

In practice, this limit is very similar to the Storage Data Limit. The only difference is that where the storage data limit is an absolute limit, the reserved disk space limit is calculated relative to the amount of free disk space remaining.

Since software can often become unstable when a machine runs out of disk space, it is strongly recommended to always have at least some disk space reserved. This is to prevent a situation where the storage data limit may be set too high and RDI eats up all remaining disk space.

As with the storage data limit, enforcement of this setting can cause RDI data to be largely unavailable or even missing entirely.

Trial NCrunch
Take NCrunch for a spin
Do your fingers a favour and supercharge your testing workflow
Free Download