All Versions
11
Latest Version
Avg Release Cycle
99 days
Latest Release
180 days ago

Changelog History
Page 1

  • v1.3.124

    October 03, 2019

    πŸš€ 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

    June 26, 2019

    ⚑️ 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

    January 31, 2019

    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

  • v1.2.3

    May 16, 2018

    πŸš€ Release 1.2.3 brings bug fixes and minor performance improvements.

    🐎 As of 1.2.3, Xodus no longer uses NIO by default, i.e. EnvironmentConfig.DEFAULT.getLogCacheUseNio() returns false. This change can slightly affect performance of certain workloads, but it makes applications more stable and robust.

    πŸ› Bug fixes

    • Environments
      • XD-629 β€” Transactions per second could get stuck on wildly incorrect value
      • XD-682 β€” Indeterminate behavior of Cursor opened against a transaction which is flushed then
      • XD-692 β€” Bad diagnostics of invalid cipher parameters
      • XD-697 β€” Illegal reflective access error when running on JRE 9
      • XD-698 β€” Unable to run an application in Docker under Windows
      • XD-704 β€” EnvironmentConfig.DEFAULT can be mutated
      • XD-705 β€” Cursor.close() is supposed to be idempotent but is not
      • XD-706 β€” Undocumented restriction: Can't create mutable tree in a thread different from the one which transaction was created in

    🐎 Performance improvements

    • Entity Stores
      • XD-680 β€” Introduce all_links_idx
      • XD-681 β€” FilterLinksIterable should use Cursors API instead of Store.get()

    πŸš€ Release Notes
    Maven Central

  • v1.2.2

    March 09, 2018

    πŸš€ Release 1.2.2 brings more bug fixes mostly related to database encryption.

    πŸ› Bug fixes

    Environments

    - XD-678 β€” Scytale: create encrypted database in existing folder if it is empty

    Entity Stores

    - XD-679 β€” In an encrypted EntityStore, Entity.setBlob(String, java.io.InputStream) can fail if the stream is read before the transaction is flushed

    Lucene Directory

    • XD-677 β€” False DataCorruptionException from ExodusIndexInput

    πŸš€ Release Notes
    Maven Central

  • v1.2.1

    February 27, 2018

    ⚑️ This is bug fix update. Only database encryption functionality is affected.

    πŸ› Bug fixes

    Environments

    - XD-676 β€” Blockwise read of StreamCipherInputStream results in corrupted output

    Entity Stores

    • XD-675 β€” In an encrypted EntityStore, Entity.setBlob(String, java.io.File) fails

    πŸš€ Release Notes
    Maven Central

  • v1.2.0

    February 21, 2018

    πŸ“š This release offers database encryption. For details, refer to the documentation.

    ⚑️ Updates of dependencies

    Kotlin 1.2.21 is used.

    πŸ› Bug fixes

    Environments

    • XD-667 β€” Transaction leak in GC as a result of race with switching Environment to read-only mode

    - XD-673 β€” put returns false in case of overwrite

    Entity Stores

    • XD-669 β€” Entity.getLinks(linkNames) can return result with duplicates
    • XD-670 β€” For descending sorting, StableInMemorySortIterator returns entities with the null property value first

    🐎 Performance improvements

    Virtual File Systems

    • XD-664 β€” VirtualFileSystem#getFileLength() enumerates all file clusters in case of linear clustering strategy

    πŸš€ Release Notes
    Maven Central

  • v1.1.0

    November 10, 2017

    πŸš€ This release makes Xodus compliant with Java 9. Applications using Xodus would be able to run on JRE 9, though the project itself cannot be built under JDK9 due to the bug in Kotlin dokka.

    ⚑️ Updates of dependencies

    Kotlin 1.1.51 is used.

    API changes

    Entity Stores

    • XD-612 β€” Implement execute/compute in exclusive transaction for persistent store level
    • XD-615 β€” Add method to determine whether StoreTransaction is finished

    πŸ› Bug fixes

    Environments

    • XD-614 β€” Cursor.getPrev() sometimes moves to wrong position in StoreConfig.WITHOUT_DUPLICATES_WITH_PREFIXING setup
    • XD-619 β€” For enough large Store, Cursor.getNext() and Cursor.getPrev() invalidate previously loaded key/value pair even though cursor position doesn't change
    • XD-625 β€” GC might delete data that is still used by opened transactions
    • XD-628 β€” An application can false positively report data corruption

    - XD-660 β€” Exceptions are logged when running on jre 9

    Entity Stores

    • XD-618 β€” Invalidation of cached instances of PropertyValueIterable and PropertyRangeIterable can fail for properties of the ComparableSet type

    - XD-626 β€” Attempt to cache an EntityIterable (queried over entities of a newly created type) result can fail

    Virtual File Systems

    - XD-624 β€” For enough large file, seek to the end of the file using VfsOutputStream fails

    Utils

    • XD-622 β€” An application using Xodus won't run on JDK 9 because of changes in java versioning scheme

    🐎 Performance improvements

    Entity Stores

    • XD-609 β€” Implement O(M * (log(M) + log(N))) sorting option in case we are sorting an M-sized subset of larger N

    ⚑️ Further reduction of memory traffic in implementation of the Environments API is done. Tokyo Cabinet benchmarks results updated. Benchmarks for LMDB JNI and Akiban PersistIt added.

    πŸš€ Release Notes
    Maven Central

  • v1.0.6

    July 10, 2017

    ⚑️ This is bug fix update.

    πŸ› Bug fixes

    Environments

    • XD-606 β€” Files of a closed Environment are kept mapped by SharedMappedFilesCache

    - XD-608 β€” Cursor.getPrev() does not move cursor after call to Cursor.getSearchKey(..) with StoreConfig.WITHOUT_DUPLICATES_WITH_PREFIXING

    Entity Stores

    • XD-603 β€” PersistentEntityStore.registerCustomPropertyType() fails if invoked twice
    • XD-610 β€” Iterable handle.identity.hashCode() is not thread-safe

    πŸš€ Release Notes
    Maven Central

  • v1.0.5

    May 21, 2017

    πŸš€ Release 1.0.5 brings lots of performance improvements in implementation of the Environments API (related mostly to reducing memory allocations) and in implementaion of the EntityStores API (more compact EntityIterableCache, its partial invalidation and updates are times faster).

    πŸš‘ Besides, 1.0.5 delivers fixes of several bugs. One of the bugs (XD-601) is pretty critical, thanks to Thorsten Schemm for reporting. The bug is old (it was introduced prior to 1.0.0), so we recommend to update unconditionally to 1.0.5.

    πŸš€ Release Notes
    Maven Central