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 xodus non-major dependencies to v1.3.232 (master) #457

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Feb 3, 2024

Mend Renovate

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
org.jetbrains.xodus:xodus-openAPI 1.2.3 -> 1.3.232 age adoption passing confidence
org.jetbrains.xodus:xodus-environment 1.2.3 -> 1.3.232 age adoption passing confidence

Release Notes

JetBrains/xodus (org.jetbrains.xodus:xodus-openAPI)

v1.3.232: 1.3.232

This release brings bug fixes and performance improvements related to database ciphering and memory usage control.

ChaCha20 implementation by JetBrains

The new implementation of ChaCha20, modern stream ciphering algorithm widely used nowadays, is written in Kotlin. Prior to this release, ChaCha20 had the only implementation provided by the Legion of the Bouncy Castle. The new implementation is identical to the Bouncy Castle's one in terms of ciphering, but consumes 13% less CPU:

Benchmark                                      Mode  Cnt    Score   Error   Units
JMHStreamCipherBenchmarks.chaChaCrypt         thrpt   12   97.439 ± 1.069  ops/us
JMHStreamCipherBenchmarks.jbChaChaCrypt       thrpt   12  110.342 ± 0.543  ops/us

The new implementation has been used already for two months in YouTrack InCloud servers, as well as in the main production instance of JetBrains YouTrack. So it's quite safe to just replace the the Bouncy Castle's implementation (cipherId:jetbrains.exodus.crypto.streamciphers.ChaChaStreamCipherProvider) by the new one (cipherId:jetbrains.exodus.crypto.streamciphers.JBChaChaStreamCipherProvider) and have less CPU consumption as a benefit. The Bouncy Castle's implementation won't be removed in future versions.

Log Cache can use Soft References

As of 1.3.232, it is possible to configure shared log cache to use Soft References (see EnvironmentConfig#setLogCacheUseSoftReferences). If this setting is turned on, Java GC would be able to reclaim some heap memory occupied by log cache. As before, log cache can't use more memory than certain memory control settings allow. Such memory-flexible log cache can be extremely useful during load peaks, if and when memory consumption and/or memory traffic increases explosively. The setting should be turned on explicitly, any defaults remain unchanged. Thanks to Martin Häusler for the proposal.

Bug fixes
  • Environments

    • XD-793 — GarbageCollector can miss BTree leaf in certain case of data corruption
    • XD-802 — Forced close of Environment can result in deadlock under load
  • Entity Stores

    • XD-801 — NumberOfCachingJobs in EntityStoreStatistics is always 0

Release Notes
Maven Central

v1.3.124: 1.3.124

This release brings bug fixes and minor performance improvements related to Entity Stores.

API clarification.

Starting from version 1.3.124, EntityStore.close() doesn't close underlying explicitly created Environment. Prior to 1.3.124, this contract was undefined.

Bug fixes
  • Environments
    • XD-786 — Xodus OutOfMemory during environment.truncateStore() of stores with large (100k+) records in 1.3.x.
    • XD-787 — Xodus cannot open multiple entity stores with the same environment
    • XD-789 — Stuck transaction monitor fails to finish expired transaction created against ContextualEnvironment

Release Notes
Maven Central

v1.3.91: 1.3.91

This is bug fix update.

Bug fixes
  • Environments
    • XD-770 — Update of existing BTree fails with exception if specified BTreeBalancePolicy's maximum page size is 4 times less than used before
    • XD-774 — removeStore() and openStore() in same transaction cause weird behaviour (thanks to Martin Häusler for reporting)
    • XD-778 — WatchingFileDataReader ignores file system events produced by rsync
    • XD-780 — Forced GC run doesn't estimate total utilization

Release Notes
Maven Central

v1.3.0: 1.3.0

This release offers Service Provider Interface for I/O customization in the package jetbrains.exodus.io. In addition to default disk-based I/O, it lets you configure your application to use an in-memory database, or to access in read-only mode disk-based database opened in another JVM. You can also create your own I/O provider, e.g., for storing data in a remote/cloud file system.

New versioning scheme

Since this release, versioning is changed in order to satisfy development requirements @​Jetbrains. Patch numbers no longer will be successive. E.g., next released version definitely won't be 1.3.1. Apart from that, the new versioning scheme respects all requirements of Semantic Versioning.

Updates of dependencies

Kotlin 1.3.10.

Bug fixes
  • Environments

    • #​18 — File descriptors leaking issue fix (thanks to Valery Vlasov)
    • XD-728 — Log recovery procedure can false negatively diagnose the database is encrypted with unknown cipher parameters in case of recoverable data corruption
    • XD-733 — After an OutOfDiskSpaceException, recovery procedure can require application restart
    • XD-738 — Utilization profile can get invalid even if there were no cold restarts
    • XD-739 — Utilization computed from scratch can be highly inconsistent
    • XD-763 — Xodus corrupts data store upon no space left on device
  • Entity Stores

    • XD-730 — FilterLinksIterable doesn't work with multiple links
    • XD-736 — EntityIterable handle for SortIterable ignores stability flag
    • XD-737 — Invalidation of cached FilterLinksIterable is broken if target EntityIterable is constructed as a query using links
    • XD-746 — Reversing iterable with entities may throw an exception
    • XD-749 — findLinks fails on empty EntityIterableBase
Performance improvements
  • Environments
    • XD-507 — Detect automatically if utilization profile should be recalculated
    • XD-757 — StringBinding is notably slower than String#toByteArray
    • XD-762 — Xodus environment.close() can take a long time shortly after opening if Envionment.setGcUtilizationFromScratch(true)
Features
  • Environments

    • XD-709 — Add SPI for log reader and writer customization
  • Lucene Directory

    • XD-754 — Lucene codec compatible with Lucene70Codec with no compression of stored fields

Release Notes
Maven Central


Configuration

📅 Schedule: Branch creation - "every weekend" (UTC), Automerge - "after 10pm every weekday,before 5am every weekday,every weekend" (UTC).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

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


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

This PR has been generated by Mend Renovate. View repository job log here.

@renovate renovate bot added the renovate label Feb 3, 2024
@cla-bot cla-bot bot added the cla-signed label Feb 3, 2024
@renovate renovate bot force-pushed the renovate/hivemq-community-edition/master-xodus-non-major branch from 5c8b4ce to b488f29 Compare February 5, 2024 16:23
@SgtSilvio SgtSilvio closed this Feb 5, 2024
@SgtSilvio SgtSilvio deleted the renovate/hivemq-community-edition/master-xodus-non-major branch February 5, 2024 16:26
Copy link
Contributor Author

renovate bot commented Feb 5, 2024

Renovate Ignore Notification

Because you closed this PR without merging, Renovate will ignore this update (1.3.232). You will get a PR once a newer version is released. To ignore this dependency forever, add it to the ignoreDeps array of your Renovate config.

If you accidentally closed this PR, or if you changed your mind: rename this PR to get a fresh replacement PR.

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.

None yet

1 participant