Skip to content

clink v0.5.0

Choose a tag to compare

@orhaugh orhaugh released this 31 Jul 07:52
· 461 commits to main since this release

Cluster-hardening release. A class of jobs the earlier releases never exercised
end to end - a bounded source with checkpointing on, side-output sinks, and a
fan-out topology, deployed as a compiled job plugin and recovered across a hard
worker kill - now completes and recovers cleanly. Every fix was found by driving
that shape with a real downstream consumer. No REST API or state-format
breaks; plugin ABI unchanged (v1).

Highlights:

  • Checkpoint barriers and watermarks now reach side-output channels, so a
    checkpointed bounded job with a side-output sink no longer hangs at its
    end-of-stream final checkpoint.
  • Worker-loss recovery rolls the whole job back instead of leaving surviving
    upstreams holding stale bridges to relocated peers.
  • Cluster-built sinks get a stable, unique identity, so sibling 2PC sinks no
    longer collide on one PREPARE TRANSACTION gid.
  • clink replay works on plugin-typed operators, not just SQL Row
    (--plugin=<so> --verify / --emit-test).
  • A fluent CEP timed-out side output (PatternStream::select_with_timed_out)
    for alerting on the absence of a match, and the runtime image now ships as a
    job SDK.

Full notes: CHANGELOG.md.

Consume a release without a compiler

Every release carries a prebuilt Linux x86_64 SDK:

curl -fsSLO https://github.com/orhaugh/clink/releases/download/v0.5.0/clink-v0.5.0-linux-x86_64-ubuntu24.04.tar.gz
tar xzf clink-v0.5.0-linux-x86_64-ubuntu24.04.tar.gz
./clink-v0.5.0-linux-x86_64-ubuntu24.04/bin/clink run pipeline.sql

A relocatable prefix - the clink CLI and clink_node daemon, static
libraries, headers, and the CMake package, with the pinned Arrow bundled and
$ORIGIN rpaths - built at an Ubuntu 24.04 glibc floor. Point
CMAKE_PREFIX_PATH at it and find_package(clink) resolves. Scope is the
dependency-free impl set (SQL, file/Parquet, RocksDB state, HTTP, TLS,
WebSocket, Avro, vector search); anything needing an external client library or
object-store SDK is a from-source build.