Skip to content

v2.4.0

Compare
Choose a tag to compare
@etremel etremel released this 09 May 17:48
· 20 commits to master since this release
v2.4.0
7109b15

New Features

  • Out-of-Band RDMA transfers (i.e. using buffers not managed by Derecho) - PR #256
  • GPU-direct and CUDA support for out-of-band transfers - PRs #273 and #275. This is enabled with the new compile-time configuration flag ENABLE_HMEM.
  • Optionally split derecho.cfg into 2 configuration files (derecho.cfg and derecho_node.cfg) - PR #268
  • Configuration option renamed from "leader IP" to "contact IP" - PR #269
  • Allow Replicated objects to get new-view callbacks - PR #250
  • Split debug logs into multiple modules with independent log levels - PR #254
  • Persistent<T> objects throw exceptions derived from std::exception instead of throwing integers - PR #253
  • Configuration-related string constants are exposed as constants rather than macros - PR #260
  • External clients can gracefully exit instead of abruptly closing their connection - PR #266
  • New methods on GroupProjection pointers to allow RPC methods to read group configuration settings - PR #265
  • Global stability callback is not triggered for RPC messages delivered to Replicated objects, only for "raw" Derecho multicast messages. This is not documented in a PR but is a significant API change. (Changed in commit eb5b281)
  • Type aliases node_id_t and ip_addr_t are contained within the derecho:: namespace instead of being placed in the global namespace, to reduce conflicts with other libraries. (Changed in commit 9a0e5ad)
  • Macros that enable/disable features at compile time (e.g. USE_VERBS_API) are written into a generated config.h file by CMake, instead of passed to every compiler invocation as a -D flag

Bug fixes

  • Serialization problems related to inconsistent usage of context_ptr<const T> - issue #204, PRs #240, #270
  • Node crashes caused by an external client connecting while the group is starting - PR #243
  • Node crashes during total restart due to new members being unaware of the total restart - issue #252, PR #257
  • Node configured as the restart leader could not rejoin if it crashed - PR #269
  • Minor errors and inconsistencies in CMake files - PRs #255, #259
  • Dependency-installation scripts neglecting to clean up their temporary work directories - PR #258
  • Timestamp order could be inconsistent among replicas if clocks drifted - PR #267
  • Incomplete synchronization on graceful shutdowns - PR #263
  • Signed persistent logs did not properly handle Delta-supporting Persistent objects in some cases - PR #271