Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update dependency dev.zio:zio to v2.1.8 #419

Merged
merged 1 commit into from
Aug 25, 2024
Merged

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Aug 6, 2024

Mend Renovate

This PR contains the following updates:

Package Update Change
dev.zio:zio (source) patch 2.1.6 -> 2.1.8

Release Notes

zio/zio (dev.zio:zio)

v2.1.8: 2.1.8

Compare Source

This release brings a re-implemented ZSTM runtime that significantly improves performance under contention, enables multi-threading for Scala Native 0.5.x, squashes some minor bugs, and makes a few things run a little bit faster. And it is fully binary and source-compatible with the rest of 2.x release!

Highlights
ZSTM performance improvements

The performance of ZSTM under heavy contention has regressed over time due to various bug fixes. In this release, we reimplemented the internal runtime of ZSTM in order to significantly improve its performance under heavy contention (up to 800% improved throughput in some benchmarks!) all while achieving similar or better performance under no contention. For more details check out #​9081

Scala Native multi-threading support

In the previous release, we updated Scala Native to v0.5.x but as we mentioned in the release notes, the ZIO runtime was not yet multi-threading capable. In this release, we threw most of the existing Scala Native code (which was not thread-safe) and changed it to use (mostly) the same code as the JVM artifacts. Users that currently use ZIO with Scala Native 0.5.x must enable multi-threading for Scala Native in their builds by removing nativeConfig ~= { _.withMultithreading(false) }.

[!WARNING]
We're aware of an issue when using zio-test on MacOS ARM64 when the debug compilation mode is used (default). If you come across any issues, try setting the mode to releaseFast or releaseFull (see here for an example)

What's Changed
Other changes (CI, dependencies and documentation)

v2.1.7: 2.1.7

Compare Source

This release adds support for Scala Native 0.5, contains various bug fixes as well as performance optimizations.

Highlights

Scala Native 0.5 support

This version of ZIO is released using Scala Native 0.5, which means that libraries that depend on ZIO can now also update their Scala Native version. Special thanks to @​sideeffffect for his work on this 🎉

[!WARNING]
At the moment, ZIO is not yet fully compatible for use with Scala Native's multi-threading feature. We are planning on adding support for it soon, but until then, users are encouraged to disable it using nativeConfig ~= { _.withMultithreading(false) } in their project config.

Fix memory leaks in parallel ZStream processing methods

In v2.1.3 we did a number of optimizations to parallel ZStream processing. Unfortunately, since then we received a number of reports where users experienced memory leaks, which we managed to trace back to these optimizations. While we managed to patch a number of these issues in subsequent releases, we weren't able to fully eliminate them and therefor we made the decision to temporarily revert them back to their pre-v2.1.3 implementation. We are planning be revisiting optimizations for these methods in a future release but this time ensuring that they don't lead to memory leaks for edge-case usage patterns.

[!TIP]
Based on the reports we received, it appears that many users use unbounded parallelism (i.e., n = Int.MaxValue) in ZStream's *Par methods. To improve performance of these methods, we highly encourage users the following:

  • Use a finite parallelism limit for ZStream's*Par methods. The limit needs to make sense for the workflow and system's resources. If unsure on what value to use, you can use these values as a vague starting point:
    i. CPU-bounded workflow: n = nCPU
    ii. IO-bounded: workflow n = nCPU x ~8-16
  • If overriding the buffer size, use a relatively small value (i.e., <= 16)
  • Use a power of 2 value for both parallelism and buffer sizes

What's Changed

Other changes (CI, dependencies and documentation)


Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Enabled.

Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate bot added the dependencies label Aug 6, 2024
@renovate renovate bot enabled auto-merge (squash) August 6, 2024 13:43
@renovate renovate bot force-pushed the renovate/dev.zio-zio-2.x branch from 42fae4e to 83c1756 Compare August 24, 2024 12:54
@renovate renovate bot changed the title Update dependency dev.zio:zio to v2.1.7 Update dependency dev.zio:zio to v2.1.8 Aug 24, 2024
@renovate renovate bot merged commit b371db4 into main Aug 25, 2024
6 of 11 checks passed
@renovate renovate bot deleted the renovate/dev.zio-zio-2.x branch August 25, 2024 00:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant