v0.4.0
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) - Remove codecov thresholds to avoid commits being marked as
'failed' due to coverage variance
(PR317) - Corrected the error message in to_string methods in C interface to
not overwrite the returned error message and to name the function
(PR320) - Streamlined PyBind interface layer to reduce repetitive boilerplate
code (PR315) - Updated Python API summary table to include new methods
(PR313) - Streamlined C interface layer to reduce repetitive boilerplate code
(PR312) - Leveraged Redis pipelining to improve performance of get, put, and
copy dataset methods
(PR311) - Redis::set_model_multigpu() will now upload the correct model to
all GPUs (PR310) - RedisCluster::_run_pipeline() will no longer unconditionally apply
a retry wait before returning
(PR309) - Expand code coverage to all four languages and make the CI/CD more
efficent (PR308) - An internal flag was set incorrectly, it resulted in wrong key
prefixing when accessing (retrieving or querying) lists created in
ensembles (PR306) - Corrected a variety of Doxygen errors and omissions in the API
documentation
(PR305) - Added throw documentation for exception handling in redis.h,
redisserver.h, rediscluster.h
(PR301) - Added error handling for a rare edge condition when setting scripts
and models
(PR300) - Added support to inspect the dimensions of a tensor via new
get_tensor_dims() method
(PR299) - 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) - Updated from redis-plus-plus v1.3.2 to v1.3.5
(PR296) - Updated from PyBind v2.6.2 to v2.10.3
(PR295) - Change documentation theme to sphinx_book_theme to match SmartSim
documentation theme and fix Python API doc string errors
(PR294) - Added print capability for Client and DataSet to give details
diagnostic information for debugging
(PR293) - Added support for retrieval of names and types of tensors and
metadata inside datasets
(PR291) - Added support for user-directed logging for Python clients via
{Client, Dataset, LogContext}.{log_data, log_warning, log_error}
methods (PR289) - Added support for user-directed logging without a Client or Dataset
context to C and Fortran clients via _string() methods
(PR288) - Added logging to capture transient errors that arise in the _run()
and _connect() methods of the Redis and RedisCluster classes
(PR287) - Tweak direct testing of Redis and RedisCluster classes
(PR286) - Resolve a disparity in the construction of Python client and
database classes
(PR285) - Fortran clients can now access error text and source location
(PR284) - Add exception location information from CPP code to Python
exceptions
(PR283) - Added client activity and manual logging for developer use
(PR281) - Fix thread pool error
(PR280) - Update library linking instructions and update Fortran tester build
process (PR277) - 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) - Change Dockerfile to use Ubuntu 20.04 LTS image
(PR276) - Implemented support for Unix Domain Sockets, including
refactorization of server address code, test cases, and check-in
tests. (PR252) - 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)