Maintaining consistency with ensure
When we use the STM, we are trying to coordinate and maintain consistency between several values, all of which keep changing. However, we'll sometimes want to maintain consistency with those references that won't change and therefore won't be included in the transaction. We can signal that the STM should include these other references in the transaction by using the ensure
function.
This helps simplify the data processing system by ensuring that the data structures stay synchronized and consistent. The ensure
function allows us to have more control over what gets managed by the STM.
For this recipe, we'll use a slightly contrived example. We'll process a set of text files and compute the frequency of a term as well as the total number of words. We'll do this concurrently, and we'll be able to watch the results get updated as we progress.
For the set of text files, we'll use the Brown corpus. Constructed in the 1960s, this was one of the first digital collections...