[0.42.0] - Jul 9, 2021
DDShow integration
- DDShow is a timely/differential dataflow
profiler developed by @Kixiron. DDlog now supports DDShow as an alternative
to its built-in profiler. The built-in profiler is still preferable in
production environments, due to its low overhead, but DDShow is a better (and
constantly improving!) option for development-time profiling. See
Profiling tutorial for details on how to enable
DDShow-based profiling via CLI switches, as well as via Rust/C/Java APIs.
Configuration API
- DDlog now supports several configuration parameters: (1) number of worker threads,
(1) idle merge effort, (3) profiling configuration, (4) debug regions. We
introduce a new startup API<your_program>_ddlog::run_with_config()
that allows
the user to configure these parameters before instantiating a DDlog program. This
API is exposed to C via theddlog_run_with_config()
function and to Java via
theDDlogConfig
class.
Breaking API changes
-
Rust API refactoring: Moved
HDDlog
type (handle to a running DDlog program) from
the main auto-generated crate to thedifferential_datalog
crate. The
auto-generated crate now exports two public functions that create anHDDlog
instance:run
andrun_with_config
. -
Profiling is disabled by default. Previously, DDlog's self-profiler was
always enabled by default. This is no longer the case. When starting the
program via<your_program>_ddlog::run()
(ddlog_run()
in C), the profiler
will be disabled. To enable the profiler, use therun_with_config()
API
described above and explicitly set the profiling mode to eitherSelfProfiling
(to enable the internal profiler) orTimelyProfiling
(to use DDShow).
New features
- Support for "original" annotation on relations to record original name
(if name is generated by code).
Bug fixes
- Link ovsdb2ddlog statically, making it self-contained for better portability
across different Linux distros.