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 thehse
release numberM
is the combination ofmpool
andmpool-kmod
releases to use withX.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 tohse_kvdb_compact_status_get()
to disambiguate it fromstruct 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 flagHSE_KVDB_KOP_FLAG_REVERSE
, which must match that specified in the correspondinghse_kvs_cursor_create()
. The caller will now correctly receive anEINVAL
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.
- Media class tiering policies at the KVS level
- Value compression settings at the KVS level
- Configurable ingest throttling at startup based on mpool profiling
- Documented best practices for benchmarking
- Support for Ubuntu 18.04.4
- CPack-based package names
- 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 versionX.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 versionX.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 commandfsync
administration command with the lock option, or the correspondingfsyncUnlock
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 commandfsync
administration command with the lock option, or the correspondingfsyncUnlock
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 commandfsync
administration command with the lock option, or the correspondingfsyncUnlock
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'