From 88047d84a7a4b8a83c5a77ad45118fca0a934e5d Mon Sep 17 00:00:00 2001 From: Hongtao Gao Date: Thu, 3 Sep 2026 21:48:37 +0000 Subject: [PATCH 1/3] Add BanyanDB 0.11.0 release blog: vectorized queries by default --- .../banner.jpg | Bin 0 -> 188620 bytes .../index.md | 247 ++++++++++++++++++ 2 files changed, 247 insertions(+) create mode 100644 content/blog/banyandb-0-11-0-vectorized-queries-by-default-explained/banner.jpg create mode 100644 content/blog/banyandb-0-11-0-vectorized-queries-by-default-explained/index.md diff --git a/content/blog/banyandb-0-11-0-vectorized-queries-by-default-explained/banner.jpg b/content/blog/banyandb-0-11-0-vectorized-queries-by-default-explained/banner.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2933e3d2c346f957e927244f86bd4547d77175dd GIT binary patch literal 188620 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 smD-xbuZRoB)Ae^0vyhz2d~ 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 z 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
    A>N%wtQ!jTHlgG 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

    e7hY>`e>- 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 **Key Takeaways** +> +> - Vectorized query paths for measure, stream, and trace are now **on by default**. Rolling upgrades must go **liaison nodes first, then data nodes** — the opposite of the normal order — or queries fail mid-rollout. +> - A new in-merge and finalize-time trace-sampling pipeline lets you drop unwanted spans with pluggable `.so` sampler plugins, with bounded memory even under multi-million-trace merges. +> - Schema changes are now cluster-consistent: `SchemaBarrierService` lets a client confirm a Create/Update/Delete has actually propagated to every liaison and data node before it proceeds. +> - etcd support is fully removed — the property-based schema registry is now the only mode — and BanyanDB fixed a backup-restore path-traversal vulnerability that CHANGES.md doesn't mention by name. + +## What Shipped, at a Glance + +We classified all 229 non-merge commits between v0.10.3 and v0.11.0 by subject line. Bug fixes are the largest single bucket — this is a maturity release as much as a features release — but nearly a quarter of the work is new capability. + +

    + + + What 229 commits in BanyanDB 0.11.0 were about + Bug fixes 86 (37.6%), Features 56 (24.5%), Tooling/tests/CI/docs 46 (20.1%), Other/mixed 19 (8.3%), Canopy UI 15 (6.6%), Performance 7 (3.1%). Source: git log v0.10.3..v0.11.0, non-merge commits, classified by commit-subject prefix. + 229 commits, classified + v0.10.3 → v0.11.0 + Bug fixes: 86 commits (37.6%) + Features: 56 commits (24.5%) + Tooling, tests, CI & docs: 46 commits (20.1%) + Other / mixed: 19 commits (8.3%) + Canopy UI: 15 commits (6.6%) + Performance: 7 commits (3.1%) + 229 + commits + + Bug fixes — 86 (37.6%) + + Features — 56 (24.5%) + + Tooling, tests, CI & docs — 46 (20.1%) + + Other / mixed — 19 (8.3%) + + Canopy UI — 15 (6.6%) + + Performance — 7 (3.1%) + Source: BanyanDB git history, v0.10.3…v0.11.0 (229 non-merge commits) + + +
    Source: BanyanDB git history, v0.10.3…v0.11.0 (229 non-merge commits), classified by commit-subject prefix. Original analysis.
    +
    + +Three storylines account for most of the engineering weight in that "features" slice: the vectorized query engine going default-on, a new trace-retention sampling pipeline, and cluster-wide schema consistency. We'll take each in turn, then round up everything else — including two fixes CHANGES.md itself doesn't call out. + +## Vectorized Queries Are Now the Default + +The columnar (vectorized) query path — which replaces per-row protobuf serialization with a batch, columnar pipeline — was already on by default for measure queries since 0.10. In 0.11, **stream and trace queries join it**: `--stream-vectorized-enabled`, `--trace-vectorized-enabled`, and `--measure-vectorized-enabled` all default to `true`. + +For measure queries specifically, coverage is now complete on a single node: scan, `GroupBy`+`Agg` via `BatchAggregation`, scalar reduce, raw `GroupBy`, `TopN`/`BottomN`, `order_by`, and boundary-error parity all resolve through the vectorized dispatch with row-path-equivalent semantics. The gRPC wire format is byte-identical to the row path's output, and the team validated it with a 6-hour production soak showing zero divergences. Distributed Map-mode partial aggregation and multi-group requests still flow through the row path pending follow-up work. + +This is also the release's headline **breaking change for rolling upgrades**, so it's worth stating precisely: a distributed data node with a vectorized path enabled emits a native columnar frame instead of protobuf on the liaison…data wire. A 0.11 liaison decodes both formats — it dispatches per message on the frame's leading magic byte — but an older liaison has no frame decoder at all and fails to deserialize the response. That flips the normal rolling-upgrade order: + +| Upgrade order | Result | +| --- | --- | +| Liaison first, then data | **Safe.** New liaisons decode both frames and protobuf; old data nodes keep sending protobuf until upgraded. | +| Data first, then liaison | **Queries fail** for the duration of the rollout. | + +Standalone deployments are unaffected — the frame is only emitted on a distributed data node. If you can't control node ordering, start new data nodes with `--stream-vectorized-enabled=false --trace-vectorized-enabled=false --measure-vectorized-enabled=false` and flip them on only after every liaison is upgraded. Rollback is the same three flags; no data migration is involved, since the flags affect only the query and wire paths, never the on-disk format. + +See the [full rolling-upgrade procedure](https://github.com/apache/skywalking-banyandb/blob/master/docs/operation/upgrade.md#upgrading-to-011) for the "Upgrading to 0.11" section in detail. + +## A Pluggable Pipeline for Trace Retention Sampling + +Trace volume is the classic observability-backend problem: keep everything and pay for it, or drop data and hope you kept the traces that mattered. 0.11 gives BanyanDB an answer: a storage-node **in-merge trace-retention filter** that evaluates per-group sampler chains and safely drops non-retained traces from both core and secondary-index parts, configured dynamically per group with runtime register/update/remove support. + +Two pieces make this production-shaped rather than a one-off filter: + +- **Finalization sampling** is a best-effort backstop. A single node-wide, concurrency-1 scanner periodically sweeps cooled segments and force-merges each shard's un-finalized parts through the group's sampler chain, reusing the existing hot-merge path so it never contends with the hot-merge semaphore. A per-part `finalizeGen` stamp — written to disk before the part metadata — means a crash can't double-sample on replay. +- **The drop-set is bounded.** The team found that a shard's first finalize round could select every cooled part into one merge, and an 18-million-entry drop set reaches roughly 1.3 GiB live and 2.6 GiB reserved heap in a process also serving queries. The fix bounds the sampling *decision*, not the pruning predicate: once a merge's drop set is full, every further proposed drop is retained instead of recorded, so the set stays complete with respect to drops actually performed — no orphaned entries, none missing. The ceiling is resolved from the memory protector as `limit/(16×CPUs)`, so the aggregate across concurrent merges stays near `limit/16`. + +See the [trace drop-set bounding design doc](https://github.com/apache/skywalking-banyandb/blob/master/docs/design/trace-drop-set-bounding.md) for the full derivation. + +First-party sampler plugins ship for SkyWalking's own trace schema and for Zipkin (`sw-trace-sampler.so`, `zipkin-trace-sampler.so`), plus a bounded telemetry SDK so a sampler plugin can emit its own metered metrics and logs without the host process's cardinality or log budget going unbounded. One plugin was also **removed**: `latencystatussampler` projected `duration` and `status` — `status` exists in neither shipped trace schema, and `duration` exists only in Zipkin's, in microseconds rather than the plugin's millisecond threshold (a 1000x unit mismatch) — so it could never match live data and, failing open, silently kept every trace it was given. + +See the [trace-pipeline plugin SDK and sampler config reference](https://github.com/apache/skywalking-banyandb/blob/master/plugins/README.md) for the full config schema. + +## Cluster-Wide Schema Consistency + +Before 0.11, a schema change (create a stream, add an index rule, delete a group) could return success from the metadata service before every node in the cluster had actually applied it — a query against a node that hadn't caught up could see stale or missing schema. 0.11 introduces client-observable revision tracking and a barrier RPC to close that gap: + +- `mod_revision` on Group/IndexRule/IndexRuleBinding/TopNAggregation responses, and `delete_time` on delete responses, so clients can observe exactly which version they're looking at, including tombstones. +- A three-way `ModRevision` gate on write RPCs and a per-group query-path gate, so a write or query whose revision is ahead of a node's cache gets a distinct `STATUS_SCHEMA_NOT_APPLIED` instead of silently running against stale schema. +- `SchemaBarrierService`, with `AwaitRevisionApplied`, `AwaitSchemaApplied`, and `AwaitSchemaDeleted` — a client (or an internal caller like the standalone preload path) can block until a change has actually propagated, cluster-wide, before proceeding. + +Phase 2 extends the barrier cluster-wide: it fans the same three calls out across every liaison and data node through a new `NodeSchemaStatusService`, handling mixed-version and membership-change cases safely. All of it is opt-in and zero-valued requests preserve prior behavior, so existing clients that don't pass a revision see no change. + +See the [schema-consistency client surface and SchemaBarrierService reference](https://github.com/apache/skywalking-banyandb/blob/master/docs/interacting/schema-consistency/barriers.md) for the full RPC contract. + +## Also Shipped: Canopy, Migration Tooling, and the End of etcd + +Three more efforts are worth knowing about even if they're not this release's headline: + +- **Canopy** is a brand-new admin UI — a standalone React SPA with a Fastify BFF, not embedded in the existing `ui/` — covering metadata CRUD for Group/Stream/Measure/Trace/IndexRule, a query console with WHERE-clause coverage across distributed clusters, Property collection CRUD, and TopN aggregation management. It shipped with its own Docker image, CI, and E2E suite. (These specifics come from the `canopy/` commits themselves, not from CHANGES.md, which covers Canopy in less detail.) +- **A migration tool** with `copy`, `verify`, and `analyze` subcommands now covers measure and stream data (index-mode measures included per the underlying commits), building on the trace/lifecycle migration work from earlier releases. +- **etcd support is fully removed** — the property-based schema registry is the only supported mode now. Every `--etcd-*` flag is gone, `--namespace` is gone, and `--node-discovery-mode` no longer accepts `etcd` (use `dns`, `file`, or `none`). If you're still running etcd-backed clusters, this is a hard blocker on upgrading to 0.11 until you migrate. + +See the [Canopy setup and architecture guide](https://github.com/apache/skywalking-banyandb/blob/master/canopy/README.md) for how to run it. + +There's also a new `bydbctl agent` — a two-pane terminal UI that drives Codex or Claude Code for natural-language BanyanDB querying: it discovers your schema, proposes typed query plans, and runs read-only queries. It owns none of your AI provider's credentials — you authenticate the CLI it wraps, separately. + +See the [bydbctl agent setup and usage doc](https://github.com/apache/skywalking-banyandb/blob/master/docs/interacting/bydbctl/agent.md) to get started. + +## Correctness and Security Hardening + +This is the section we'd read most closely before upgrading a production cluster. A few of these are quietly severe: + +- **A merge write-path durability gap** ([apache/skywalking#13862](https://github.com/apache/skywalking/issues/13862)): `seqWriter.Close` was discarding `fdatasync` errors, so a disk error (ENOSPC, EIO, EBADF) during a merge — a path shared by trace, measure, stream, and sidx — could silently lose data and leave a torn part on crash. Metadata now goes through an atomic write-tmp + fsync + rename + fsync-dir sequence. +- **A backup-restore path-traversal fix.** Landed with new sanitization logic in `pkg/path` and `pkg/fs/remote/local`, plus tests. This one doesn't appear anywhere in CHANGES.md's Bug Fixes section — worth flagging if you maintain your own release notes off of it. +- **A stream migration data-corruption bug**: an arena-owned tag value was being pooled and reused after a migration copy, corrupting tag data. Also absent from CHANGES.md. +- **The trace merge loop could wedge an entire node.** In production, a few unreadable parts made every merge selection fail. Each failed attempt leaked its output directory, which exhausted volume inodes at just 8% byte usage. The resulting disk-full panic killed the merge lane workers, which are recovered but never respawned — so the dispatcher blocked forever and every part stayed pinned in flight. Four layered changes fix it: + - Clean up the output directory on any merge failure. + - Quarantine a part after three consecutive attributable failures. + - Back off merge dispatch exponentially (1s→60s cap) after consecutive failures. + - Convert merge-execution panics into ordinary errors so the semaphore release and failure accounting always run. +- **Queries could return TTL-expired data.** Retention only removes a segment on its next scheduled run, so a fully expired segment could linger on disk and keep serving stale results; queries now skip segments whose entire time range is past the retention deadline. +- **Two CVE-tagged dependency bumps**: `golang.org/x/net` v0.52.0→v0.56.0 ([CVE-2026-25680](https://nvd.nist.gov/vuln/detail/CVE-2026-25680)) and `opencontainers/runc` v1.3.3→v1.3.6 ([CVE-2026-41579](https://nvd.nist.gov/vuln/detail/CVE-2026-41579)), alongside a new `govulncheck` CI job to catch the next one earlier. + +And one fix with numbers clean enough to chart on their own: + +
    + + + Lifecycle row-replay peak heap: before vs. after the 0.11.0 fix + Peak heap during large-measure-part row replay dropped from approximately 1.5 GB to approximately 296 MB, roughly an 80% reduction, via a streaming dump reader, pooled size-classed marshal buffers, and a bounded in-flight batch (default 32 MiB). Source: BanyanDB CHANGES.md, 0.11.0 Bug Fixes. + Lifecycle migration: peak heap, before → after + Row-replay of large measure parts, same workload + + ~1.5 GB + Before + + ~296 MB + After + + ↓ ~80% less peak heap + Source: BanyanDB CHANGES.md, 0.11.0 Bug Fixes (streaming dump reader + pooled buffers + 32 MiB bounded batch) + + +
    Source: BanyanDB CHANGES.md, 0.11.0 Bug Fixes — streaming dump reader, pooled size-classed marshal buffers, and a 32 MiB default bound on in-flight batch bytes.
    +
    + +Lifecycle migration's row-replay path was reading large measure parts entirely into memory before this fix; on large parts that meant real OOM risk on the receiving node. Streaming the dump reader and pooling size-classed marshal buffers cut peak heap by roughly 80% for the same workload. + +## Breaking Changes and How to Upgrade Safely + +Straight from the project's own upgrade guide, in order: + +**1. API version 0.11.** A cluster containing both 0.10 and 0.11 nodes is not supported. This one needs a maintenance window: stop writes and all API clients, stop all 0.10 nodes, upgrade and start all nodes at 0.11, upgrade API clients to require version 0.11, then verify schema initialization and ingestion before restoring traffic. Rollback means stopping all clients and nodes first — never run a mixed 0.10/0.11 cluster, in either direction. + +**2. Vectorized query paths, liaison before data.** Covered above — this is the one most likely to bite an automated rolling-upgrade pipeline that assumes "data nodes first" from every previous release. + +**3. etcd is gone.** If `--schema-registry-mode` or `--node-discovery-mode` still reference etcd, you need to migrate to the property-based registry and `dns`/`file`/`none` discovery before you can run 0.11 at all. + +**4. Queue and lifecycle metrics were redesigned.** `queue_pub`/`queue_sub` metrics moved to a uniform `operation`/`group`-labeled model (the old `topic` label and chunk-ordering metric families are gone), and lifecycle health metrics gained `remote_node`/`remote_role`/`remote_tier`/`group` labels while `banyandb_lifecycle_self_identity_resolution_total` was removed outright. Update dashboards and alerts before you upgrade, not after. + +See the [complete "Upgrading to 0.11" walkthrough](https://github.com/apache/skywalking-banyandb/blob/master/docs/operation/upgrade.md#upgrading-to-011) for the full maintenance-window checklist. + +## Behind the Release + +14 people contributed non-merge commits between v0.10.3 and v0.11.0 — a reminder that a release this dense is a team effort, not a single push. + +
    + + + Top contributors to BanyanDB 0.11.0 + Commit counts, v0.10.3 to v0.11.0, non-merge commits, 14 total contributors. Gao Hongtao 131, mrproliu 48, eight other contributors combined 18, Owen Willison 11, Huang Youliang 10, OmCheeLin 6, Tanay Paul 5. + Top contributors to 0.11.0 + Commits per author, v0.10.3→v0.11.0 (14 contributors total) + Gao Hongtao + + Gao Hongtao: 131 commits + 131 + mrproliu + + mrproliu: 48 commits + 48 + 8 other contributors + + 8 other contributors: 18 commits + 18 + Owen Willison + + Owen Willison: 11 commits + 11 + Huang Youliang + + Huang Youliang: 10 commits + 10 + OmCheeLin + + OmCheeLin: 6 commits + 6 + Tanay Paul + + Tanay Paul: 5 commits + 5 + + Source: BanyanDB git history, v0.10.3…v0.11.0 (229 non-merge commits, 14 authors) + + +
    Source: BanyanDB git history, v0.10.3…v0.11.0 (229 non-merge commits, 14 authors). Original analysis.
    +
    + +## What's Next + +The vectorized engine's own release notes flag what's still pending: distributed Map-mode partial aggregation and multi-group (multi-measure) requests still run through the row path. Expect that gap to close in a follow-up release rather than this one — and expect the trace-sampling pipeline's plugin ecosystem to grow past the two first-party samplers now that the SDK and dev toolkit are stable. + +## Frequently Asked Questions + +### Do I have to reorder my upgrade automation for 0.11? + +Yes, if you run a distributed cluster with any of the vectorized flags enabled (the default). Upgrade liaison nodes before data nodes — the reverse of every prior release's guidance — or disable the vectorized flags on new data nodes until every liaison is upgraded. + +### Can I keep running etcd for schema discovery? + +No. `--schema-registry-mode` only accepts `property` in 0.11, and every `--etcd-*` flag has been removed. Migrate to the property-based registry before upgrading. + +### Is the vectorized query path safe to trust for correctness, not just speed? + +The measure path was validated by a 6-hour production soak with byte-identical parity and zero divergences against the row path, plus per-workload bench gates. All three engines (measure, stream, trace) keep a rollback flag (`--{measure,stream,trace}-vectorized-enabled=false`) that reverts to the row path immediately with no data migration required, if you do hit a discrepancy. + +### What happened to the `latencystatussampler` plugin? + +It was removed. `status` exists in neither shipped trace schema, and `duration` exists only in Zipkin's — in microseconds, not the plugin's millisecond threshold — so the plugin could never match live data and, failing open, silently kept every trace it was given rather than actually filtering anything. If you had it configured, switch to `sw-trace-sampler` or `zipkin-trace-sampler`. + +## Conclusion + +0.11.0 is the release where BanyanDB's columnar query engine graduates from opt-in to default, and where trace retention gets a real, pluggable answer instead of a blunt TTL. The correctness and security fixes buried in the bug-fix list — the merge durability gap, the path-traversal fix, the migration double-free — are the ones worth reading even if you skim everything else. Read the [full 0.11.0 release notes](https://github.com/apache/skywalking-banyandb/tree/master/CHANGES.md) for the complete list, and work through the ["Upgrading to 0.11" checklist](https://github.com/apache/skywalking-banyandb/blob/master/docs/operation/upgrade.md#upgrading-to-011) before you touch a production cluster. \ No newline at end of file From d29108acac9f99a6461c2b47efbe7cb29aa36fa5 Mon Sep 17 00:00:00 2001 From: Hongtao Gao Date: Fri, 4 Sep 2026 22:14:49 +0000 Subject: [PATCH 2/3] Update BanyanDB 0.11.0 release blog --- .../index.md | 234 ++++++++++-------- 1 file changed, 134 insertions(+), 100 deletions(-) diff --git a/content/blog/banyandb-0-11-0-vectorized-queries-by-default-explained/index.md b/content/blog/banyandb-0-11-0-vectorized-queries-by-default-explained/index.md index 97fad68d5ec3..ab68d02b8a7f 100644 --- a/content/blog/banyandb-0-11-0-vectorized-queries-by-default-explained/index.md +++ b/content/blog/banyandb-0-11-0-vectorized-queries-by-default-explained/index.md @@ -1,66 +1,30 @@ --- -title: "BanyanDB 0.11.0: Vectorized Queries by Default, Explained" +title: "BanyanDB 0.11.0: What's New and How to Upgrade" date: 2026-09-02 -author: "Hongtao Gao" +author: "The BanyanDB Team" description: "BanyanDB 0.11.0: default vectorized queries, pluggable trace sampling, schema barriers, and the upgrade order you must not skip." tags: - BanyanDB - Apache SkyWalking - release notes - vectorized query + - BydbQL - observability - time series database --- -![Banner](banner.jpg) +![BanyanDB 0.11.0 release cover showing 229 commits, 14 contributors, and three query engines vectorized by default](banner.jpg) -[BanyanDB](https://github.com/apache/skywalking-banyandb) 0.11.0 is out, and it's the release where the columnar query engine stops being an opt-in experiment and becomes how the database answers queries by default. It ships alongside a pluggable trace-retention sampling pipeline, cluster-wide schema-consistency barriers, a full admin UI, and the end of etcd as a supported schema-registry backend. We went through the 229 commits behind the release — not just the changelog — to pull out what actually matters if you operate a cluster. +[BanyanDB](https://github.com/apache/skywalking-banyandb) 0.11.0 is out, and it's a dense one: vectorized queries move from opt-in to the default query path, a new pluggable pipeline handles trace-retention sampling, cluster-wide schema-consistency barriers close a real correctness gap, coding agents get two new ways to query BanyanDB in natural language, and etcd support is fully removed in favor of the property-based schema registry. We went through the 229 commits behind the release — not just the changelog — to pull out what actually matters if you operate a cluster. > **Key Takeaways** > -> - Vectorized query paths for measure, stream, and trace are now **on by default**. Rolling upgrades must go **liaison nodes first, then data nodes** — the opposite of the normal order — or queries fail mid-rollout. -> - A new in-merge and finalize-time trace-sampling pipeline lets you drop unwanted spans with pluggable `.so` sampler plugins, with bounded memory even under multi-million-trace merges. -> - Schema changes are now cluster-consistent: `SchemaBarrierService` lets a client confirm a Create/Update/Delete has actually propagated to every liaison and data node before it proceeds. -> - etcd support is fully removed — the property-based schema registry is now the only mode — and BanyanDB fixed a backup-restore path-traversal vulnerability that CHANGES.md doesn't mention by name. +> - Vectorized query paths for measure, stream, and trace are now **on by default**, cutting allocations for scan-heavy queries — but it flips the rolling-upgrade order: **liaison nodes first, then data nodes**. +> - A new in-merge and finalize-time trace-retention sampling pipeline drops unwanted spans with pluggable `.so` sampler plugins, with bounded memory even under multi-million-trace merges. +> - Coding agents can query BanyanDB in natural language two ways now: a Claude Code/Codex **MCP plugin** with a `bydbql` skill, and a standalone **`bydbctl agent`** terminal UI. +> - **etcd support is fully removed** and the API version bumps to 0.11 — plan a maintenance-window upgrade. Queue and lifecycle metrics were also redesigned. -## What Shipped, at a Glance - -We classified all 229 non-merge commits between v0.10.3 and v0.11.0 by subject line. Bug fixes are the largest single bucket — this is a maturity release as much as a features release — but nearly a quarter of the work is new capability. - -
    - - - What 229 commits in BanyanDB 0.11.0 were about - Bug fixes 86 (37.6%), Features 56 (24.5%), Tooling/tests/CI/docs 46 (20.1%), Other/mixed 19 (8.3%), Canopy UI 15 (6.6%), Performance 7 (3.1%). Source: git log v0.10.3..v0.11.0, non-merge commits, classified by commit-subject prefix. - 229 commits, classified - v0.10.3 → v0.11.0 - Bug fixes: 86 commits (37.6%) - Features: 56 commits (24.5%) - Tooling, tests, CI & docs: 46 commits (20.1%) - Other / mixed: 19 commits (8.3%) - Canopy UI: 15 commits (6.6%) - Performance: 7 commits (3.1%) - 229 - commits - - Bug fixes — 86 (37.6%) - - Features — 56 (24.5%) - - Tooling, tests, CI & docs — 46 (20.1%) - - Other / mixed — 19 (8.3%) - - Canopy UI — 15 (6.6%) - - Performance — 7 (3.1%) - Source: BanyanDB git history, v0.10.3…v0.11.0 (229 non-merge commits) - - -
    Source: BanyanDB git history, v0.10.3…v0.11.0 (229 non-merge commits), classified by commit-subject prefix. Original analysis.
    -
    - -Three storylines account for most of the engineering weight in that "features" slice: the vectorized query engine going default-on, a new trace-retention sampling pipeline, and cluster-wide schema consistency. We'll take each in turn, then round up everything else — including two fixes CHANGES.md itself doesn't call out. +Below: the features worth trying, the performance work worth knowing about, the API surface that grew, and the changes that will break your upgrade if you're not ready for them. ## Vectorized Queries Are Now the Default @@ -68,80 +32,129 @@ The columnar (vectorized) query path — which replaces per-row protobuf seriali For measure queries specifically, coverage is now complete on a single node: scan, `GroupBy`+`Agg` via `BatchAggregation`, scalar reduce, raw `GroupBy`, `TopN`/`BottomN`, `order_by`, and boundary-error parity all resolve through the vectorized dispatch with row-path-equivalent semantics. The gRPC wire format is byte-identical to the row path's output, and the team validated it with a 6-hour production soak showing zero divergences. Distributed Map-mode partial aggregation and multi-group requests still flow through the row path pending follow-up work. -This is also the release's headline **breaking change for rolling upgrades**, so it's worth stating precisely: a distributed data node with a vectorized path enabled emits a native columnar frame instead of protobuf on the liaison…data wire. A 0.11 liaison decodes both formats — it dispatches per message on the frame's leading magic byte — but an older liaison has no frame decoder at all and fails to deserialize the response. That flips the normal rolling-upgrade order: - -| Upgrade order | Result | -| --- | --- | -| Liaison first, then data | **Safe.** New liaisons decode both frames and protobuf; old data nodes keep sending protobuf until upgraded. | -| Data first, then liaison | **Queries fail** for the duration of the rollout. | - -Standalone deployments are unaffected — the frame is only emitted on a distributed data node. If you can't control node ordering, start new data nodes with `--stream-vectorized-enabled=false --trace-vectorized-enabled=false --measure-vectorized-enabled=false` and flip them on only after every liaison is upgraded. Rollback is the same three flags; no data migration is involved, since the flags affect only the query and wire paths, never the on-disk format. - -See the [full rolling-upgrade procedure](https://github.com/apache/skywalking-banyandb/blob/master/docs/operation/upgrade.md#upgrading-to-011) for the "Upgrading to 0.11" section in detail. +This is also the release's headline **breaking change for rolling upgrades** — see [Breaking Changes](#breaking-changes-and-how-to-upgrade-safely) below for the required upgrade order. ## A Pluggable Pipeline for Trace Retention Sampling Trace volume is the classic observability-backend problem: keep everything and pay for it, or drop data and hope you kept the traces that mattered. 0.11 gives BanyanDB an answer: a storage-node **in-merge trace-retention filter** that evaluates per-group sampler chains and safely drops non-retained traces from both core and secondary-index parts, configured dynamically per group with runtime register/update/remove support. -Two pieces make this production-shaped rather than a one-off filter: +Two design properties make this production-shaped rather than a one-off filter: - **Finalization sampling** is a best-effort backstop. A single node-wide, concurrency-1 scanner periodically sweeps cooled segments and force-merges each shard's un-finalized parts through the group's sampler chain, reusing the existing hot-merge path so it never contends with the hot-merge semaphore. A per-part `finalizeGen` stamp — written to disk before the part metadata — means a crash can't double-sample on replay. -- **The drop-set is bounded.** The team found that a shard's first finalize round could select every cooled part into one merge, and an 18-million-entry drop set reaches roughly 1.3 GiB live and 2.6 GiB reserved heap in a process also serving queries. The fix bounds the sampling *decision*, not the pruning predicate: once a merge's drop set is full, every further proposed drop is retained instead of recorded, so the set stays complete with respect to drops actually performed — no orphaned entries, none missing. The ceiling is resolved from the memory protector as `limit/(16×CPUs)`, so the aggregate across concurrent merges stays near `limit/16`. +- **The drop-set is bounded by design.** A shard's first finalize round can select every cooled part into one merge. An 18-million-entry drop set would otherwise reach roughly 1.3 GiB live and 2.6 GiB reserved heap, in a process also serving queries. So the pipeline bounds the sampling *decision* instead, not the pruning predicate. Once a merge's drop set is full, every further proposed drop is retained instead of recorded. The set stays complete with respect to drops actually performed — no orphaned entries, none missing. The ceiling itself comes from the memory protector, as `limit/(16×CPUs)`, so the aggregate across concurrent merges stays near `limit/16`. + +
    + + + How the trace-retention sampling pipeline decides what to keep + Two inputs feed the sampler chain: new parts evaluated during in-merge filtering, and cooled segments swept by the finalization backstop scanner for parts that missed the in-merge pass. The sampler chain evaluates per-group rules and routes each trace to retained or dropped. + + New parts + (in-merge filter) + + Cooled segments + (finalization backstop) + + Sampler chain + (per-group rules) + + Retained + + Dropped + + + + + + + + + Source: BanyanDB CHANGES.md and docs/design/trace-drop-set-bounding.md, 0.11.0 + + +
    How the trace-retention sampling pipeline decides what to keep. Original diagram.
    +
    See the [trace drop-set bounding design doc](https://github.com/apache/skywalking-banyandb/blob/master/docs/design/trace-drop-set-bounding.md) for the full derivation. -First-party sampler plugins ship for SkyWalking's own trace schema and for Zipkin (`sw-trace-sampler.so`, `zipkin-trace-sampler.so`), plus a bounded telemetry SDK so a sampler plugin can emit its own metered metrics and logs without the host process's cardinality or log budget going unbounded. One plugin was also **removed**: `latencystatussampler` projected `duration` and `status` — `status` exists in neither shipped trace schema, and `duration` exists only in Zipkin's, in microseconds rather than the plugin's millisecond threshold (a 1000x unit mismatch) — so it could never match live data and, failing open, silently kept every trace it was given. +First-party sampler plugins ship for SkyWalking's own trace schema and for Zipkin (`sw-trace-sampler.so`, `zipkin-trace-sampler.so`), plus a bounded telemetry SDK so a sampler plugin can emit its own metered metrics and logs without the host process's cardinality or log budget going unbounded. See the [trace-pipeline plugin SDK and sampler config reference](https://github.com/apache/skywalking-banyandb/blob/master/plugins/README.md) for the full config schema. ## Cluster-Wide Schema Consistency -Before 0.11, a schema change (create a stream, add an index rule, delete a group) could return success from the metadata service before every node in the cluster had actually applied it — a query against a node that hadn't caught up could see stale or missing schema. 0.11 introduces client-observable revision tracking and a barrier RPC to close that gap: +Before 0.11, a schema change (create a stream, add an index rule, delete a group) could return success from the metadata service before every node in the cluster had actually applied it — a query against a node that hadn't caught up could see stale or missing schema. 0.11 introduces client-observable revision tracking and a barrier RPC to close that gap. See [API Changes](#api-changes) below for the concrete fields and RPCs, and the [schema-consistency client surface and SchemaBarrierService reference](https://github.com/apache/skywalking-banyandb/blob/master/docs/interacting/schema-consistency/barriers.md) for the full RPC contract. -- `mod_revision` on Group/IndexRule/IndexRuleBinding/TopNAggregation responses, and `delete_time` on delete responses, so clients can observe exactly which version they're looking at, including tombstones. -- A three-way `ModRevision` gate on write RPCs and a per-group query-path gate, so a write or query whose revision is ahead of a node's cache gets a distinct `STATUS_SCHEMA_NOT_APPLIED` instead of silently running against stale schema. -- `SchemaBarrierService`, with `AwaitRevisionApplied`, `AwaitSchemaApplied`, and `AwaitSchemaDeleted` — a client (or an internal caller like the standalone preload path) can block until a change has actually propagated, cluster-wide, before proceeding. +Phase 2 extends the barrier cluster-wide: it fans the same calls out across every liaison and data node through a new `NodeSchemaStatusService`, handling mixed-version and membership-change cases safely. All of it is opt-in — zero-valued requests preserve prior behavior, so existing clients that don't pass a revision see no change. -Phase 2 extends the barrier cluster-wide: it fans the same three calls out across every liaison and data node through a new `NodeSchemaStatusService`, handling mixed-version and membership-change cases safely. All of it is opt-in and zero-valued requests preserve prior behavior, so existing clients that don't pass a revision see no change. +## Natural-Language Querying for Coding Agents -See the [schema-consistency client surface and SchemaBarrierService reference](https://github.com/apache/skywalking-banyandb/blob/master/docs/interacting/schema-consistency/barriers.md) for the full RPC contract. +0.11 gives coding agents two independent ways to query BanyanDB without hand-writing BydbQL. -## Also Shipped: Canopy, Migration Tooling, and the End of etcd +The first is a **Claude Code / Codex plugin** that packages the BanyanDB MCP server with a `bydbql` skill for natural-language-to-BydbQL generation over STREAM, MEASURE, TRACE, and PROPERTY resources. Install it directly from the repository (`/plugin install apache/skywalking-banyandb` in Claude Code, or the equivalent `codex plugin add` flow), and any Claude Code or Codex session gains four MCP tools: `list_groups_schemas` for schema discovery, `get_generate_bydbql_prompt` for generation (it's the only tool that injects the live indexed-field list and enforces `ORDER BY` index-rule substitution), `validate_bydbql` for parse-only syntax and safety validation via a prebuilt Go binary, and `list_resources_bydbql` to execute a validated, read-only statement. -Three more efforts are worth knowing about even if they're not this release's headline: +The second is **`bydbctl agent`**, a standalone two-pane terminal UI that drives a Codex or Claude Code CLI process directly for interactive natural-language BanyanDB querying: it discovers your schema, proposes typed query plans, and runs read-only queries. It owns none of your AI provider's credentials — you authenticate the CLI it wraps, separately. Where the MCP plugin adds BanyanDB querying to any Claude Code/Codex session, `bydbctl agent` is a dedicated interactive tool for the same job. -- **Canopy** is a brand-new admin UI — a standalone React SPA with a Fastify BFF, not embedded in the existing `ui/` — covering metadata CRUD for Group/Stream/Measure/Trace/IndexRule, a query console with WHERE-clause coverage across distributed clusters, Property collection CRUD, and TopN aggregation management. It shipped with its own Docker image, CI, and E2E suite. (These specifics come from the `canopy/` commits themselves, not from CHANGES.md, which covers Canopy in less detail.) -- **A migration tool** with `copy`, `verify`, and `analyze` subcommands now covers measure and stream data (index-mode measures included per the underlying commits), building on the trace/lifecycle migration work from earlier releases. -- **etcd support is fully removed** — the property-based schema registry is the only supported mode now. Every `--etcd-*` flag is gone, `--namespace` is gone, and `--node-discovery-mode` no longer accepts `etcd` (use `dns`, `file`, or `none`). If you're still running etcd-backed clusters, this is a hard blocker on upgrading to 0.11 until you migrate. +
    -See the [Canopy setup and architecture guide](https://github.com/apache/skywalking-banyandb/blob/master/canopy/README.md) for how to run it. + + Two ways to query BanyanDB in natural language + Path one: a Claude Code or Codex session uses the MCP plugin bydbql skill to query BanyanDB directly. Path two: the standalone bydbctl agent terminal UI drives a separate Codex or Claude Code CLI process, which queries BanyanDB. Both paths are independent and read-only. + + Claude Code / Codex + session + + MCP plugin + (bydbql skill) + + bydbctl agent + (terminal UI) + + Codex / Claude Code + CLI process + + BanyanDB + + + + + + + + + Source: docs/operation/mcp/plugin.md, skills/bydbql/SKILL.md, docs/interacting/bydbctl/agent.md + + +
    Two independent, read-only paths to query BanyanDB in natural language. Original diagram.
    +
    + +See the [bydbctl agent setup and usage doc](https://github.com/apache/skywalking-banyandb/blob/master/docs/interacting/bydbctl/agent.md) to get started with the terminal UI. -There's also a new `bydbctl agent` — a two-pane terminal UI that drives Codex or Claude Code for natural-language BanyanDB querying: it discovers your schema, proposes typed query plans, and runs read-only queries. It owns none of your AI provider's credentials — you authenticate the CLI it wraps, separately. +## Also Shipped: Canopy, Migration Tooling, and More -See the [bydbctl agent setup and usage doc](https://github.com/apache/skywalking-banyandb/blob/master/docs/interacting/bydbctl/agent.md) to get started. +Four more additions worth knowing about: -## Correctness and Security Hardening +- **Canopy** is a brand-new admin UI — a standalone React SPA with a Fastify BFF, not embedded in the existing `ui/` — covering metadata CRUD for Group/Stream/Measure/Trace/IndexRule, a query console with WHERE-clause coverage across distributed clusters, Property collection CRUD, and TopN aggregation management. It shipped with its own Docker image, CI, and E2E suite. (These specifics come from the `canopy/` commits and design docs themselves, not from CHANGES.md, which covers Canopy in less detail.) +- **A migration tool** with `copy`, `verify`, and `analyze` subcommands now covers measure and stream data (index-mode measures included), building on the trace/lifecycle migration work from earlier releases. +- **Tags can change type across schema changes without breaking old parts.** If a tag's type changes (say, int to string), BanyanDB now persists each type variant in its own file (`{tag_name}.{tag_type}.tf`) instead of overwriting, and query/merge logic resolves by the (name, type) pair. This covers measure, stream, trace, and sidx parts. +- **Fair fast/slow lane scheduling** for trace part merges, so short merges no longer queue behind long-running ones; queue wait time is now exposed as `total_merge_queue_latency`. -This is the section we'd read most closely before upgrading a production cluster. A few of these are quietly severe: +See the [Canopy setup and architecture guide](https://github.com/apache/skywalking-banyandb/blob/master/canopy/README.md) for how to run it. -- **A merge write-path durability gap** ([apache/skywalking#13862](https://github.com/apache/skywalking/issues/13862)): `seqWriter.Close` was discarding `fdatasync` errors, so a disk error (ENOSPC, EIO, EBADF) during a merge — a path shared by trace, measure, stream, and sidx — could silently lose data and leave a torn part on crash. Metadata now goes through an atomic write-tmp + fsync + rename + fsync-dir sequence. -- **A backup-restore path-traversal fix.** Landed with new sanitization logic in `pkg/path` and `pkg/fs/remote/local`, plus tests. This one doesn't appear anywhere in CHANGES.md's Bug Fixes section — worth flagging if you maintain your own release notes off of it. -- **A stream migration data-corruption bug**: an arena-owned tag value was being pooled and reused after a migration copy, corrupting tag data. Also absent from CHANGES.md. -- **The trace merge loop could wedge an entire node.** In production, a few unreadable parts made every merge selection fail. Each failed attempt leaked its output directory, which exhausted volume inodes at just 8% byte usage. The resulting disk-full panic killed the merge lane workers, which are recovered but never respawned — so the dispatcher blocked forever and every part stayed pinned in flight. Four layered changes fix it: - - Clean up the output directory on any merge failure. - - Quarantine a part after three consecutive attributable failures. - - Back off merge dispatch exponentially (1s→60s cap) after consecutive failures. - - Convert merge-execution panics into ordinary errors so the semaphore release and failure accounting always run. -- **Queries could return TTL-expired data.** Retention only removes a segment on its next scheduled run, so a fully expired segment could linger on disk and keep serving stale results; queries now skip segments whose entire time range is past the retention deadline. -- **Two CVE-tagged dependency bumps**: `golang.org/x/net` v0.52.0→v0.56.0 ([CVE-2026-25680](https://nvd.nist.gov/vuln/detail/CVE-2026-25680)) and `opencontainers/runc` v1.3.3→v1.3.6 ([CVE-2026-41579](https://nvd.nist.gov/vuln/detail/CVE-2026-41579)), alongside a new `govulncheck` CI job to catch the next one earlier. +## Performance Improvements -And one fix with numbers clean enough to chart on their own: +Beyond the vectorized-by-default query engine above, a handful of targeted optimizations landed in 0.11: + +- **Faster point-lookup queries** for trace and stream, via lazy block-metadata decode — queries that only need a handful of rows no longer pay for decoding metadata upfront. +- **Trace sampler decode path optimized**: deferred decoding, zero-copy string and tag handling, early tag rejection, direct scalar reads, and cached rule prefixes roughly halve sampler decision cost and tag-rule cost for the SkyWalking and Zipkin samplers. +- **Faster GCS backup uploads** — each object and its checksum metadata now write in one request, dropping the per-object `Update` round-trip. +- **Lifecycle migration is dramatically more memory-efficient.** Streaming the dump reader and pooling size-classed marshal buffers, instead of reading a large measure part entirely into memory, cuts peak heap for row-replay by roughly 80% on the same workload:
    - - Lifecycle row-replay peak heap: before vs. after the 0.11.0 fix - Peak heap during large-measure-part row replay dropped from approximately 1.5 GB to approximately 296 MB, roughly an 80% reduction, via a streaming dump reader, pooled size-classed marshal buffers, and a bounded in-flight batch (default 32 MiB). Source: BanyanDB CHANGES.md, 0.11.0 Bug Fixes. + + Lifecycle row-replay peak heap: before vs. after 0.11.0 + Peak heap during large-measure-part row replay dropped from approximately 1.5 GB to approximately 296 MB, roughly an 80% reduction, via a streaming dump reader, pooled size-classed marshal buffers, and a bounded in-flight batch (default 32 MiB). Source: BanyanDB CHANGES.md, 0.11.0. Lifecycle migration: peak heap, before → after Row-replay of large measure parts, same workload @@ -152,23 +165,39 @@ And one fix with numbers clean enough to chart on their own: After ↓ ~80% less peak heap - Source: BanyanDB CHANGES.md, 0.11.0 Bug Fixes (streaming dump reader + pooled buffers + 32 MiB bounded batch) + Source: BanyanDB CHANGES.md, 0.11.0 (streaming dump reader + pooled buffers + 32 MiB bounded batch) -
    Source: BanyanDB CHANGES.md, 0.11.0 Bug Fixes — streaming dump reader, pooled size-classed marshal buffers, and a 32 MiB default bound on in-flight batch bytes.
    +
    Source: BanyanDB CHANGES.md, 0.11.0 — streaming dump reader, pooled size-classed marshal buffers, and a 32 MiB default bound on in-flight batch bytes.
    -Lifecycle migration's row-replay path was reading large measure parts entirely into memory before this fix; on large parts that meant real OOM risk on the receiving node. Streaming the dump reader and pooling size-classed marshal buffers cut peak heap by roughly 80% for the same workload. +

    API Changes

    + +The API version itself also moved to 0.11 — that's covered under [Breaking Changes](#breaking-changes-and-how-to-upgrade-safely) below, since it's upgrade-blocking rather than additive. The changes here are all additive and opt-in: -## Breaking Changes and How to Upgrade Safely +- `mod_revision` added to Group/IndexRule/IndexRuleBinding/TopNAggregation create/update responses; `delete_time` added to all delete responses; `created_at` added and preserved across updates. +- New `STATUS_SCHEMA_NOT_APPLIED` status code for writes and queries whose revision is ahead of the server's cache. +- New `SchemaBarrierService` RPC — `AwaitRevisionApplied`, `AwaitSchemaApplied`, `AwaitSchemaDeleted` — so a client can block until a schema change has actually propagated, cluster-wide, before proceeding. +- `QueryRequest.group_mod_revisions` / `QueryResponse.group_statuses` added for per-group query-path revision gating. +- **BydbQL gains `?` positional parameter binding** — bind values instead of string-interpolating them into the query text, closing off QL injection the same way parameterized SQL does elsewhere. A reusable `Prepared` binding type layers prepared-statement caching on top, on the gRPC query path, with a bounded cache, top-K retention, cache and slow-query observability, and bound parameters redacted in the slow-query log. +- New validation: Measure's `ShardingKey` must now contain all `Entity` tags, to guarantee entity locality. + +

    Breaking Changes and How to Upgrade Safely

    Straight from the project's own upgrade guide, in order: **1. API version 0.11.** A cluster containing both 0.10 and 0.11 nodes is not supported. This one needs a maintenance window: stop writes and all API clients, stop all 0.10 nodes, upgrade and start all nodes at 0.11, upgrade API clients to require version 0.11, then verify schema initialization and ingestion before restoring traffic. Rollback means stopping all clients and nodes first — never run a mixed 0.10/0.11 cluster, in either direction. -**2. Vectorized query paths, liaison before data.** Covered above — this is the one most likely to bite an automated rolling-upgrade pipeline that assumes "data nodes first" from every previous release. +**2. Vectorized query paths, liaison before data.** A distributed data node with a vectorized path enabled emits a native columnar frame instead of protobuf on the liaison↔data wire. A 0.11 liaison decodes both formats — it dispatches per message on the frame's leading magic byte — but an older liaison has no frame decoder at all and fails to deserialize the response. That flips the normal rolling-upgrade order: -**3. etcd is gone.** If `--schema-registry-mode` or `--node-discovery-mode` still reference etcd, you need to migrate to the property-based registry and `dns`/`file`/`none` discovery before you can run 0.11 at all. +| Upgrade order | Result | +| --- | --- | +| Liaison first, then data | **Safe.** New liaisons decode both frames and protobuf; old data nodes keep sending protobuf until upgraded. | +| Data first, then liaison | **Queries fail** for the duration of the rollout. | + +Standalone deployments are unaffected — the frame is only emitted on a distributed data node. If you can't control node ordering, start new data nodes with `--stream-vectorized-enabled=false --trace-vectorized-enabled=false --measure-vectorized-enabled=false` and flip them on only after every liaison is upgraded. Rollback is the same three flags; no data migration is involved, since the flags affect only the query and wire paths, never the on-disk format. This is the one most likely to bite an automated rolling-upgrade pipeline that assumes "data nodes first" from every previous release. + +**3. etcd is gone.** The property-based schema registry is the only supported mode now. Every `--etcd-*` flag is gone, `--namespace` is gone, and `--node-discovery-mode` no longer accepts `etcd` (use `dns`, `file`, or `none`). If `--schema-registry-mode` or `--node-discovery-mode` still reference etcd, you need to migrate to the property-based registry before you can run 0.11 at all. **4. Queue and lifecycle metrics were redesigned.** `queue_pub`/`queue_sub` metrics moved to a uniform `operation`/`group`-labeled model (the old `topic` label and chunk-ordering metric families are gone), and lifecycle health metrics gained `remote_node`/`remote_role`/`remote_tier`/`group` labels while `banyandb_lifecycle_self_identity_resolution_total` was removed outright. Update dashboards and alerts before you upgrade, not after. @@ -176,6 +205,7 @@ See the [complete "Upgrading to 0.11" walkthrough](https://github.com/apache/sky ## Behind the Release + 14 people contributed non-merge commits between v0.10.3 and v0.11.0 — a reminder that a release this dense is a team effort, not a single push.
    @@ -214,10 +244,10 @@ See the [complete "Upgrading to 0.11" walkthrough](https://github.com/apache/sky Tanay Paul: 5 commits 5 - Source: BanyanDB git history, v0.10.3…v0.11.0 (229 non-merge commits, 14 authors) + Source: BanyanDB git history, v0.10.3…v0.11.0 (229 non-merge commits, 14 authors) -
    Source: BanyanDB git history, v0.10.3…v0.11.0 (229 non-merge commits, 14 authors). Original analysis.
    +
    Source: BanyanDB git history, v0.10.3…v0.11.0 (229 non-merge commits, 14 authors). Original analysis.
    ## What's Next @@ -238,10 +268,14 @@ No. `--schema-registry-mode` only accepts `property` in 0.11, and every `--etcd- The measure path was validated by a 6-hour production soak with byte-identical parity and zero divergences against the row path, plus per-workload bench gates. All three engines (measure, stream, trace) keep a rollback flag (`--{measure,stream,trace}-vectorized-enabled=false`) that reverts to the row path immediately with no data migration required, if you do hit a discrepancy. -### What happened to the `latencystatussampler` plugin? +### Does BydbQL support parameterized queries now? + +Yes. 0.11 adds positional `?` parameter binding to BydbQL, so you bind values instead of string-interpolating them into the query text, closing off QL injection. A reusable `Prepared` binding type also adds prepared-statement caching on the gRPC query path, with a bounded cache, top-K retention, cache and slow-query observability, and bound parameters redacted in the slow-query log. + +### What's the difference between the BydbQL MCP plugin and `bydbctl agent`? -It was removed. `status` exists in neither shipped trace schema, and `duration` exists only in Zipkin's — in microseconds, not the plugin's millisecond threshold — so the plugin could never match live data and, failing open, silently kept every trace it was given rather than actually filtering anything. If you had it configured, switch to `sw-trace-sampler` or `zipkin-trace-sampler`. +The MCP plugin adds four BanyanDB query tools (schema discovery, generation, validation, execution) to any Claude Code or Codex session you're already running — install it once and it's available alongside whatever else you're doing. `bydbctl agent` is a separate, dedicated two-pane terminal UI purpose-built for interactive BanyanDB querying. Use the plugin if you want BanyanDB querying inside your existing agent workflow; use `bydbctl agent` if you want a standalone querying tool. ## Conclusion -0.11.0 is the release where BanyanDB's columnar query engine graduates from opt-in to default, and where trace retention gets a real, pluggable answer instead of a blunt TTL. The correctness and security fixes buried in the bug-fix list — the merge durability gap, the path-traversal fix, the migration double-free — are the ones worth reading even if you skim everything else. Read the [full 0.11.0 release notes](https://github.com/apache/skywalking-banyandb/tree/master/CHANGES.md) for the complete list, and work through the ["Upgrading to 0.11" checklist](https://github.com/apache/skywalking-banyandb/blob/master/docs/operation/upgrade.md#upgrading-to-011) before you touch a production cluster. \ No newline at end of file +0.11.0 is the release where BanyanDB's columnar query engine graduates from opt-in to default, trace retention gets a real pluggable answer instead of a blunt TTL, and coding agents get first-class natural-language access to your data. Read the [full 0.11.0 release notes](https://github.com/apache/skywalking-banyandb/tree/master/CHANGES.md) for the complete list, and work through the ["Upgrading to 0.11" checklist](https://github.com/apache/skywalking-banyandb/blob/master/docs/operation/upgrade.md#upgrading-to-011) before you touch a production cluster. From e0893a83728f520544c0064fc94e96fa1e3b760a Mon Sep 17 00:00:00 2001 From: Hongtao Gao Date: Mon, 7 Sep 2026 05:53:40 +0000 Subject: [PATCH 3/3] Update blog date and labels --- .../index.md | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/content/blog/banyandb-0-11-0-vectorized-queries-by-default-explained/index.md b/content/blog/banyandb-0-11-0-vectorized-queries-by-default-explained/index.md index ab68d02b8a7f..ebc342839204 100644 --- a/content/blog/banyandb-0-11-0-vectorized-queries-by-default-explained/index.md +++ b/content/blog/banyandb-0-11-0-vectorized-queries-by-default-explained/index.md @@ -1,16 +1,11 @@ --- title: "BanyanDB 0.11.0: What's New and How to Upgrade" -date: 2026-09-02 +date: 2026-09-07 author: "The BanyanDB Team" description: "BanyanDB 0.11.0: default vectorized queries, pluggable trace sampling, schema barriers, and the upgrade order you must not skip." tags: - - BanyanDB - - Apache SkyWalking - - release notes - - vectorized query - - BydbQL - - observability - - time series database + - Release + - Storage --- ![BanyanDB 0.11.0 release cover showing 229 commits, 14 contributors, and three query engines vectorized by default](banner.jpg)