Released on April 12, 2023
Description
This release provides a variety of features to improve usability and
debugging of the SmartRedis library, notably including Unix domain
socket support, logging, the ability to print a textual representation
of a string or dataset, dataset inspection, documentation updates, fixes
to the multi-GPU support, and much more:
- Prepare 0.4.0 release
- Disable codecov CI tests
- Improved error message in to_string methods in C interface
- Streamlined PyBind interface layer
- Updated Python API documentation
- Streamlined C interface layer
- Improved performance of get, put, and copy dataset methods
- Fix a bug which prevented multi-GPU model set in some cases
- Streamline pipelined execution of tasks for backend database
- Enhance code coverage to include all 4 languages supported by
SmartRedis
- Fix a bug which resulted in wrong key prefixing when retrieving
aggregation lists in ensembles
- Correct assorted API documentation errors
- Improve documentation of exception handling in Redis server classes
- Improve error handling for setting of scripts and models
- Add support to inspect the dimensions of a tensor via
get_tensor_dims()
- Split dataset prefixing control from use_tensor_ensemble_prefix() to
use_dataset_ensemble_prefix()
- Update to the latest version of redis-plus-plus
- Update to the latest version of PyBind
- Change documentation theme to sphinx_book_theme and fix doc strings
- Add print capability for Client and DataSet
- Add support for inspection of tensors and metadata inside datasets
- Add support for user-directed logging for Python clients, using
Client, Dataset, or LogContext logging methods
- Add support for user-directed logging for C and Fortran clients
without a Client or Dataset context
- Additional error reporting for connections to and commands run
against Redis databases
- Improved error reporting capabilities for Fortran clients
- Python error messages from SmartRedis contain more information
- Added logging functionality to the SmartRedis library
- A bug related to thread pool initialization was fixed.
- This version adds new functionality in the form of support for Unix
Domain Sockets.
- Fortran client can now be optionally built with the rest of the
library
- Initial support for dataset conversions, specifically Xarray.
Detailed Notes
- Update docs and version numbers in preparation for version 0.4.0.
Clean up duplicate marking of numpy dependency
([PR321](https://github.com/CrayLabs/SmartRedis/pull/321))
- Remove codecov thresholds to avoid commits being marked as
\'failed\' due to coverage variance
([PR317](https://github.com/CrayLabs/SmartRedis/pull/317))
- Corrected the error message in to_string methods in C interface to
not overwrite the returned error message and to name the function
([PR320](https://github.com/CrayLabs/SmartRedis/pull/320))
- Streamlined PyBind interface layer to reduce repetitive boilerplate
code ([PR315](https://github.com/CrayLabs/SmartRedis/pull/315))
- Updated Python API summary table to include new methods
([PR313](https://github.com/CrayLabs/SmartRedis/pull/313))
- Streamlined C interface layer to reduce repetitive boilerplate code
([PR312](https://github.com/CrayLabs/SmartRedis/pull/312))
- Leveraged Redis pipelining to improve performance of get, put, and
copy dataset methods
([PR311](https://github.com/CrayLabs/SmartRedis/pull/311))
- <Redis::set_model_multigpu>() will now upload the correct model to
all GPUs ([PR310](https://github.com/CrayLabs/SmartRedis/pull/310))
- RedisCluster::\_run_pipeline() will no longer unconditionally apply
a retry wait before returning
([PR309](https://github.com/CrayLabs/SmartRedis/pull/309))
- Expand code coverage to all four languages and make the CI/CD more
efficent ([PR308](https://github.com/CrayLabs/SmartRedis/pull/308))
- An internal flag was set incorrectly, it resulted in wrong key
prefixing when accessing (retrieving or querying) lists created in
ensembles ([PR306](https://github.com/CrayLabs/SmartRedis/pull/306))
- Corrected a variety of Doxygen errors and omissions in the API
documentation
([PR305](https://github.com/CrayLabs/SmartRedis/pull/305))
- Added throw documentation for exception handling in redis.h,
redisserver.h, rediscluster.h
([PR301](https://github.com/CrayLabs/SmartRedis/pull/301))
- Added error handling for a rare edge condition when setting scripts
and models
([PR300](https://github.com/CrayLabs/SmartRedis/pull/300))
- Added support to inspect the dimensions of a tensor via new
get_tensor_dims() method
([PR299](https://github.com/CrayLabs/SmartRedis/pull/299))
- The use_tensor_ensemble_prefix() API method no longer controls
whether datasets are prefixed. A new API method,
use_dataset_ensemble_prefix() now manages this.
([PR298](https://github.com/CrayLabs/SmartRedis/pull/298))
- Updated from redis-plus-plus v1.3.2 to v1.3.5
([PR296](https://github.com/CrayLabs/SmartRedis/pull/296))
- Updated from PyBind v2.6.2 to v2.10.3
([PR295](https://github.com/CrayLabs/SmartRedis/pull/295))
- Change documentation theme to sphinx_book_theme to match SmartSim
documentation theme and fix Python API doc string errors
([PR294](https://github.com/CrayLabs/SmartRedis/pull/294))
- Added print capability for Client and DataSet to give details
diagnostic information for debugging
([PR293](https://github.com/CrayLabs/SmartRedis/pull/293))
- Added support for retrieval of names and types of tensors and
metadata inside datasets
([PR291](https://github.com/CrayLabs/SmartRedis/pull/291))
- Added support for user-directed logging for Python clients via
{Client, Dataset, LogContext}.{log_data, log_warning, log_error}
methods ([PR289](https://github.com/CrayLabs/SmartRedis/pull/289))
- Added support for user-directed logging without a Client or Dataset
context to C and Fortran clients via \_string() methods
([PR288](https://github.com/CrayLabs/SmartRedis/pull/288))
- Added logging to capture transient errors that arise in the \_run()
and \_connect() methods of the Redis and RedisCluster classes
([PR287](https://github.com/CrayLabs/SmartRedis/pull/287))
- Tweak direct testing of Redis and RedisCluster classes
([PR286](https://github.com/CrayLabs/SmartRedis/pull/286))
- Resolve a disparity in the construction of Python client and
database classes
([PR285](https://github.com/CrayLabs/SmartRedis/pull/285))
- Fortran clients can now access error text and source location
([PR284](https://github.com/CrayLabs/SmartRedis/pull/284))
- Add exception location information from CPP code to Python
exceptions
([PR283](https://github.com/CrayLabs/SmartRedis/pull/283))
- Added client activity and manual logging for developer use
([PR281](https://github.com/CrayLabs/SmartRedis/pull/281))
- Fix thread pool error
([PR280](https://github.com/CrayLabs/SmartRedis/pull/280))
- Update library linking instructions and update Fortran tester build
process ([PR277](https://github.com/CrayLabs/SmartRedis/pull/277))
- Added [add_metadata_for_xarray]{.title-ref} and
[transform_to_xarray]{.title-ref} methods in
[DatasetConverter]{.title-ref} class for initial support with Xarray
([PR262](https://github.com/CrayLabs/SmartRedis/pull/262))
- Change Dockerfile to use Ubuntu 20.04 LTS image
([PR276](https://github.com/CrayLabs/SmartRedis/pull/276))
- Implemented support for Unix Domain Sockets, including
refactorization of server address code, test cases, and check-in
tests. ([PR252](https://github.com/CrayLabs/SmartRedis/pull/252))
- A new make target [make lib-with-fortran]{.title-ref} now compiles
the Fortran client and dataset into its own library which
applications can link against
([PR245](https://github.com/CrayLabs/SmartRedis/pull/245))