Skip to content

v0.4.0

Choose a tag to compare

@ashao ashao released this 12 Apr 19:31
· 125 commits to master since this release
b5d73b1

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)