Skip to content

2.10

Choose a tag to compare

@apolukhin apolukhin released this 04 Jun 08:01
  • Initial implementation of SQLite Driver. Many thanks to Turulin Zakhar for the implementation, tests and for the documentation.
  • GDB pretty printers now can list all the tasks via utask list and can apply commands to all or selected tasks. For example utask apply all bt prints the backtraces of all the tasks, utask apply some_task_name bt prints the backtrace of the task with name some_task_name. See Debugging with GDB for more info. Many thanks to Maxim Belov for the brilliant implementation.
  • Merged a foundation for the ODBC driver. Many thanks to Alexey for the PR!
  • Redis driver now can ignore ping times to different instances to do a fair round-robin. See consider_ping field in storages::redis::CommandControl.
  • Dropped gRPC [(userver.field).secret = true];. Use [debug_redact = true]; instead.
  • Statically assert that a destructor of an object in utils::FastPimpl is noexcept. Many thanks to Шаблов Анатолий Владимирович for the PR!

Optimizations:

  • Reduced memory allocations while generating strings for ID in tracing::Span. About a 150ns speedup on average on tracing::Span construction.
  • Removed unused code and class members in Redis internals, reducing runtime memory usage and binary code size.
  • Replaced std::unique_lock with std::lock_guard where possible to simplify optimization work for the compiler.