hanahmily opened a new pull request, #1194:
URL: https://github.com/apache/skywalking-banyandb/pull/1194

   ### Storage-node in-merge trace retention filter with native `.so` plugin 
pipeline
   
   Adds the storage-node in-merge trace retention filter 
(`PIPELINE_EVENT_MERGE`), building on the post-trace pipeline scaffolding from 
#1189.
   
   **Engine (in-merge filter hook)**
   - Builds a sampler chain from per-group config and evaluates traces at merge 
time, dropping non-retained traces from **both** the core part and the coupled 
sidx. `sidx.Merge` gains a keep predicate; a nil predicate restores the 
wholesale merge.
   - Chain execution **fails open** on panic / error / length-mismatch / 
timeout, with a consecutive-timeout circuit breaker.
   
   **Config-driven plugin loading (static bootstrap ingress)**
   - `--trace-pipeline-config` loads a `TracePipelineConfig` (protojson) at 
startup and registers `.so` samplers via `loadSamplerPlugin` (trusted-dir 
escape guard + dual ABI check + recover-wrapped open/ctor).
   - The dynamic `TracePipelineRegistryService` RPC remains a follow-up.
   
   **Reusable, cross-topology integration test**
   - `test/cases/tracepipeline`: pure-gRPC write/verify case unit with a 
two-batch + Phase-0 visibility protocol that distinguishes "filtered by merge" 
from "not yet merged" / "no-op filter".
   - `test/integration/{standalone,distributed}/pipeline`: out-of-process 
runners that build a CGO server + `.so` and exercise the real `plugin.Open` 
path end-to-end; opt-in soak via `TRACE_PIPELINE_SOAK`.
   - `pkg/test/setup/external.go`: launch `banyand` as a separate OS process 
(exec + health-check + SIGTERM teardown).
   - `test/plugins/_latencystatussampler`: latency/status sampler plugin (drops 
`duration < 500ms && status == success`, fail-open on any ambiguity).
   - Make targets `build-trace-pipeline-{plugin,server}` + 
`test-trace-pipeline` (`CGO_ENABLED=1`, `-trimpath`; excluded from `-race` 
since Go plugins require a matching build mode).
   
   ### <Feature checklist>
   - [ ] If this is non-trivial feature, paste the links/URLs to the design 
doc. <!-- design carried in #1189 (storage-node post-trace pipeline) -->
   - [ ] Update the documentation to include this new feature. <!-- docs 
follow-up; dynamic-registration RPC not yet shipped -->
   - [x] Tests (including UT, IT, E2E) are added to verify the new feature.
   - [ ] If it's UI related, attach the screenshots below. <!-- n/a -->
   
   - [x] Update the [`CHANGES` 
log](https://github.com/apache/skywalking-banyandb/blob/main/CHANGES.md).
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to