Skip to content

v5.0.0

Compare
Choose a tag to compare
@Z1kkurat Z1kkurat released this 25 May 15:15
· 21 commits to master since this release
4c3e926

Breaking changes

This major release updates cats-helper dependency to 3.5.0 and smetrics to 2.0.0. APIs that used com.evolutiongaming.smetrics.MeasureDuration now expect com.evolutiongaming.catshelper.MeasureDuration. See smetrics 2.0.0 release notes for details.

Other notable changes

  • getOrUpdate* and remove interaction: if remove is performed while getOrUpdate* effect is being evaluated, the value will be put in cache after the evaluation finishes. Before, getOrUpdate* would return result of the calculation, but it would not be saved in cache.
  • remove will not return an effect corresponding to release of the value, if the value is still loading (but the release will still be performed). It will return the releasing effect resulting in the released value only if the value was already loaded in cache.
  • put is now executed faster in a highly-contentious scenarios: it will now give up much easier give up updating cache if encountered with concurrent changes being performed. Before, it would only finish executing when it succeeded writing the value, even if it meant retrying multiple times. That guarantee didn't bring much benefits, but hurt the performance.
  • A bug was fixed in which a release of some cache entries would be performed 0 or 2+ times in various scenarios involving concurrent execution of getOrUpdate*, put and `remove.

What's Changed

Full Changelog: v4.4.1...v5.0.0