Skip to content

Conversation

@albertlockett
Copy link
Member

@albertlockett albertlockett commented Nov 14, 2025

Closes #1129

arrow-rs 57.0 has an improvement for the performance of zstd IPC compression apache/arrow-rs#8405

@albertlockett albertlockett requested a review from a team as a code owner November 14, 2025 20:08
@github-actions github-actions bot added the rust Pull requests that update Rust code label Nov 14, 2025
@codecov
Copy link

codecov bot commented Nov 14, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 83.83%. Comparing base (4cf9802) to head (6816bf3).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1433      +/-   ##
==========================================
- Coverage   83.88%   83.83%   -0.06%     
==========================================
  Files         398      398              
  Lines      108990   108990              
==========================================
- Hits        91428    91371      -57     
- Misses      17028    17085      +57     
  Partials      534      534              
Components Coverage Δ
otap-dataflow 85.66% <ø> (-0.10%) ⬇️
query_abstraction 80.61% <ø> (ø)
query_engine 90.48% <ø> (ø)
syslog_cef_receivers ∅ <ø> (∅)
otel-arrow-go 53.50% <ø> (ø)
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@albertlockett albertlockett marked this pull request as draft November 14, 2025 20:12
@albertlockett
Copy link
Member Author

albertlockett commented Nov 14, 2025

Tested perf manually:

main (arrow 56.1) albert/1129 (arrow 57.0)
cpu average 54.3% 6.3%
cpu max 86.8% 14.7%

load gen (3 cores)

settings:
  default_pipeline_ctrl_msg_channel_size: 100
  default_node_ctrl_msg_channel_size: 100
  default_pdata_channel_size: 100

nodes:
  receiver:
    kind: receiver
    plugin_urn: "urn:otel:otap:fake_data_generator:receiver"
    out_ports:
      out_port:
        destinations:
          - exporter
        dispatch_strategy: round_robin
    config:
      traffic_config:
        # max_signal_count: 1000
        max_batch_size: 1000
        signals_per_second: 50000
        log_weight: 100
      registry_path: https://github.com/open-telemetry/semantic-conventions.git[model]
  exporter:
    kind: exporter
    plugin_urn: "urn:otel:otap:exporter"
    config:
      grpc_endpoint: "http://127.0.0.1:4317"
      compression_method: zstd
      arrow:
        payload_compression: none

system under test (1 core)

settings:
  default_pipeline_ctrl_msg_channel_size: 100
  default_node_ctrl_msg_channel_size: 100
  default_pdata_channel_size: 100

nodes:
  receiver:
    kind: receiver
    plugin_urn: "urn:otel:otap:receiver"
    out_ports:
      out_port:
        destinations:
          - exporter
        dispatch_strategy: round_robin
    config:
      listening_addr: "127.0.0.1:4317"
      response_stream_channel_size: 256
      compression_method: zstd
  exporter:
    kind: exporter
    plugin_urn: "urn:otel:otap:exporter"
    config:
      grpc_endpoint: "http://127.0.0.1:4318"
      compression_method: zstd
      arrow:
        payload_compression: zstd 

@albertlockett albertlockett changed the title [WIP] upgrade arrow to improve zstd perf Upgrade arrow to improve zstd payload compression perf Nov 14, 2025
@albertlockett albertlockett changed the title Upgrade arrow to improve zstd payload compression perf Upgrade arrow to improve zstd payload compression performance in OTAP Exporter Nov 14, 2025
@albertlockett albertlockett marked this pull request as ready for review November 14, 2025 21:17
Copy link
Contributor

@lquerel lquerel left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@lquerel lquerel added this pull request to the merge queue Nov 14, 2025
@lquerel
Copy link
Contributor

lquerel commented Nov 14, 2025

Thanks for the improvement you did in the Arrow crate!

Merged via the queue into open-telemetry:main with commit c3e6f34 Nov 14, 2025
31 of 32 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

rust Pull requests that update Rust code

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

[otap-dataflow] Arrow IPC compression misbehaving

2 participants