Skip to content

Release Notes

These release notes are divided into the following sections:

HSE Stack Release Notes

You must install a supported combination of HSE and mpool releases from the hse, mpool, and mpool-kmod repos. The table below specifies the supported combinations, referred to as HSE stacks.

HSE stack numbering follows the scheme HSE-S.X.Y.Z.M, where

  • X.Y.Z is the hse release number
  • M is the combination of mpool and mpool-kmod releases to use with X.Y.Z
HSE Stack hse version mpool version mpool-kmod version
HSE-S.1.7.1.1 r1.7.1 r1.7.1 r1.7.1
HSE-S.1.8.0.1 r1.8.0 r1.8.0 r1.8.0
HSE-S.1.9.0.1 r1.9.0 r1.9.0 r1.9.0

HSE-S.1.9.0.1

Includes the following features and enhancements.

  • QoS enhancements resulting in more consistent performance in the presence of quickly changing workloads, client thread counts, and KV pair sizes
  • Increased value compression performance
  • Experimental KVS parameter kvs.vcompmin specifying the minimum length value to compress, which defaults to eight (8) bytes

Prior to installing HSE-S.1.9.0.1, ensure that all KVDBs on the system have shutdown cleanly. If you are not certain that a KVDB was shutdown cleanly, you can run the following command to get the KVDB into a clean state.

$ hse kvdb compact -s <kvdb>

If HSE is upgraded to 1.9.0 with a KVDB in a dirty state then the KVDB may fail to open. In this case, you will need to downgrade HSE to the prior version and run the command above.

Do not skip major releases when upgrading HSE. For example, you should upgrade to HSE-S.1.9.0.1 from HSE-S.1.8.0.1.

  • Prefix deletes do not detect conflicts with other mutations sharing the target prefix. As a result, snapshot isolation may be violated.
  • HSE API function hse_kvdb_compact_status() is renamed to hse_kvdb_compact_status_get() to disambiguate it from struct hse_kvdb_compact_status. There is no change in semantics. While we strive to keep the HSE API stable and backward compatible across releases, this minor change is needed to accommodate future language bindings.
  • Ubuntu 18.04 may exhibit performance that is 5-30% below that of RHEL 8, depending on workload.
  • All issues identified in the release notes for HSE-S.1.8.0.1 related to recovery, spurious ENOSPC errors, and the KVDB becoming full.
  • HSE API function hse_kvs_cursor_update() ignored the opspec flag HSE_KVDB_KOP_FLAG_REVERSE, which must match that specified in the corresponding hse_kvs_cursor_create(). The caller will now correctly receive an EINVAL error if these flag values do not match (e.g., if the caller attempts to change the cursor direction).
  • Various issues found in internal testing.

HSE-S.1.8.0.1

Includes the following features and enhancements.

  • Ubuntu 18.04 may exhibit performance that is 5-30% below that of RHEL 8, depending on workload.
  • Recovery from an unclean shutdown (e.g., a crash) may leak mpool capacity.
  • Client applications may experience ENOSPC errors when a large number of threads (hundreds) are mutating large values (hundreds of KB). Shutdown the app and restart to clear the error.
  • If the mpool storing a KVDB becomes full, cached updates may be lost. Should this occur, halt the client application, increase the mpool capacity, and then restart the client application.
  • Snapshot isolation semantics may be violated under certain conditions.
  • Various issues found in internal testing.

HSE-S.1.7.1.1

Reissue of initial release to revise package and kernel module naming.

  • None
  • Build of tarball automatically generated by GitHub
  • Failure to load mpool kernel module on SELinux

YCSB Release Notes

Releases of YCSB with HSE use the numbering scheme rA.B.C.D.E-hse-X.Y.Z, where

  • A.B.C is the YCSB version (e.g., 0.17.0)
  • D.E is our YCSB integration version
  • X.Y.Z is the minimum HSE release version required

YCSB r0.17.0.2.1-hse-1.8.0

Adds support for Ubuntu 18.04.4.

  • None
  • Various issues found in internal testing.

YCSB r0.17.0.2.0-hse-1.7.1

Reissue of initial release of YCSB with HSE to revise package naming.

  • None
  • Build of tarball automatically generated by GitHub

MongoDB Release Notes

Releases of MongoDB with HSE use the numbering scheme rA.B.C.D.E-hse-X.Y.Z, where

  • A.B.C is the MongoDB version (e.g., 3.4.17)
  • D.E is our MongoDB integration version
  • X.Y.Z is the minimum HSE release version required

MongoDB r3.4.17.3.0-hse-1.9.0

Includes the following features and enhancements.

  • Bug fixes only

This version of MongoDB with HSE does not support the following:

  • compact administration command
  • fsync administration command with the lock option, or the corresponding fsyncUnlock command
  • Read concern "majority"
  • SSL on RHEL 8 or Ubuntu 18.04
  • None
  • Various issues found in internal testing.

MongoDB r3.4.17.2.1-hse-1.8.0

Includes the following features and enhancements.

  • Support for Ubuntu 18.04.4
  • Building from source creates packages

This version of MongoDB with HSE does not support the following:

  • compact administration command
  • fsync administration command with the lock option, or the corresponding fsyncUnlock command
  • Read concern "majority"
  • SSL on RHEL 8 or Ubuntu 18.04
  • Cannot be used with HSE 1.9.0 or later due to improper use of an HSE API argument which is detected starting with HSE 1.9.0.
  • Under certain conditions an object may fail to be replicated, or the incorrect object version may be replicated.
  • Various issues found in internal testing.

MongoDB r3.4.17.2.0-hse-1.7.1

Reissue of initial release of MongoDB with HSE to revise package naming. This version of MongoDB with HSE does not support the following:

  • compact administration command
  • fsync administration command with the lock option, or the corresponding fsyncUnlock command
  • Read concern "majority"
  • SSL on RHEL 8
  • None
  • Build of tarball automatically generated by GitHub

The following build commands are referenced from the MongoDB section of this documentation. Please refer to those instructions. Running these commands results in the same set of binaries in the build directory as are normally generated when compiling the unmodified source code base. No packages are generated.

$ scons CC=/opt/rh/gcc-toolset-9/root/bin/gcc CXX=/opt/rh/gcc-toolset-9/root/bin/g++ OBJCOPY=/opt/rh/gcc-toolset-9/root/bin/objcopy -j$(nproc) --disable-warnings-as-errors --dbg=off --opt=on all MONGO_VERSION=3.4.17

Tip

Do not specify --ssl when building for RHEL 8.

$ scl enable rh-mongodb32 'scons CC=/opt/rh/devtoolset-9/root/bin/gcc CXX=/opt/rh/devtoolset-9/root/bin/g++ OBJCOPY=/opt/rh/devtoolset-9/root/bin/objcopy -j$(nproc) --ssl --disable-warnings-as-errors --dbg=off --opt=on all MONGO_VERSION=3.4.17'