You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pulsar.apache.org by lh...@apache.org on 2026/09/26 17:19:28 UTC

(pulsar) branch lh-key-shared-500x20-scenario updated (bf8cc19c4920 -> 5c7a93213fb5)

This is an automated email from the ASF dual-hosted git repository.

lhotari pushed a change to branch lh-key-shared-500x20-scenario
in repository https://gitbox.apache.org/repos/asf/pulsar.git


    omit bf8cc19c4920 [improve][test] Name the Key_Shared 500x20 runs after their scenario files
    omit da04230be084 [improve][test] Add a launcher scenario for 500 producers and a 20-member Key_Shared subscription
    omit 6c8832caede3 [improve][test] Add a script that frees the Docker disk space that test runs use up
    omit aeb35ffc0f7e [improve][test] Add a script that configures the host for performance testing and restores it afterwards
    omit 332e8e110737 [improve][test] Set environment variables of the producer and consumer containers from the scenario
    omit 54095bab949c [improve][test] Cut the cool-down before the measurement out of the throughput and backlog charts
    omit 096392414af7 [improve][test] Signal the measurement start over HTTP instead of coordination files
    omit 93af7bf3dfec [improve][test] Report the host's CPU temperature and throttling, and cool down between runs
    omit b6afb246487c [improve][test] Use AssertJ assertions in the performance launcher and report tool tests
    omit 355b6ca778f0 [improve][test] Drop the delivery-after-publish estimate from the run report
    omit 036a1d871c96 [improve][test] Name the end-to-end latency rows after their application
    omit 61988df2417e [improve][test] Name each consumer application's output directory after its subscription
    omit 90a5fd71c44d [improve][test] Name each consumer application after its subscription in the run report and latency charts
    omit 4fb34b9b59b4 [improve][test] Name the latency chart lines briefly
    omit 761475e12834 [improve][test] Draw publish latency dotted, as the producers are in the throughput chart
    omit 424ffb3dd3de [improve][test] Plot latency by percentile and over time per application with XChart, log latency every second, and write .hgrm percentile distributions
    omit 8ab74bbb60c4 [improve][test] Leave the 0.0% label off the latency chart's baseline
    omit 2dfbc00192b8 [improve][test] Put the latency chart's axis labels right next to the axis
    omit 8e8f1ada0872 [improve][test] Put the latency chart's axis labels next to their panels, and the panels further apart
    omit 345d8b07fa2f [improve][test] Move the performance reports and renderers to a report-tool module, and serve reports with their text files as text
    omit aa5604d5e3d1 [improve][test] Count only Pulsar and BookKeeper frames as the application in profiles
    omit f37e683a7101 [improve][test] Link a profile's files from tables with descriptive link texts, and its recordings from the run report
    omit 95546a1408ca [improve][test] List a run's files in a collapsed section at the end of its report, and save container logs as text
    omit 87a8eada7316 [improve][test] Say which run each chart shows, link each run's files, and leave stacks without an application frame out of the app-root flame graphs
    omit 8809f478badb [improve][test] Write each launcher run to its own directory by day, branch and name, and record its provenance
    omit 21419a33354e [improve][test] Hide BookKeeper and Pulsar dispatch frames in the off-CPU digest and app-root flame graphs, abbreviate Java names on the digest page
    omit 232442cf841c [improve][test] Follow the jonoffcpu 0.7.0 digest options and wording, end the backlog maximum at the producers' finish
    omit 5c716ba75fc6 [improve][test] Name only the rendered views, lead the run report with its profiles, bound the backlog maximum to the measurement, tidy the latency chart
    omit 188c9945ce0a [improve][test] Give headings ids in the launcher's HTML report pages
    omit a7d596c923a1 [improve][test] Treat Jetty's reserved threads waiting for a job as idle in off-CPU profiles
    omit 0c2fdafd361b [improve][test] Write a run report with throughput, latency and sampled backlog, rendered to HTML
    omit a5fbe9b0f114 [improve][test] Write a profile report, app-rooted off-CPU graphs and heatmaps for profiled runs
    omit 09c7aea0bf8b [improve][test] Upgrade jonoffcpu to 0.7.0
    omit 6466f4a87d5d [improve][test] Use jonoffcpu 0.6.0 from its new home
    omit 4f65a2f5a56f [improve][doc] Document profiling performance scenarios with jonoffcpu
    omit 160a508d84f5 [improve][test] Render the configured flame graph views of profiled recordings
    omit 13aafd0036f9 [improve][test] Read the off-CPU idle-wait patterns from a resource file
    omit 3268b9bd7362 [improve][test] Render off-CPU flame graphs with and without idle waits
    omit d56cd3c675a8 [improve][test] Profile IoT performance scenarios with the jonoffcpu off-CPU agent
     add d649aacd9581 [improve][misc] Use Netty's adaptive allocator for Pulsar's default allocator (#26720)
     add d8e65c6bc8ab [improve][test] Profile IoT performance scenarios with the jonoffcpu off-CPU agent
     add a44b49f412c1 [improve][test] Render off-CPU flame graphs with and without idle waits
     add b408684cb729 [improve][test] Read the off-CPU idle-wait patterns from a resource file
     add 28e14bb41b6c [improve][test] Render the configured flame graph views of profiled recordings
     add 212ef4749bf1 [improve][doc] Document profiling performance scenarios with jonoffcpu
     add 0973a4917133 [improve][test] Use jonoffcpu 0.6.0 from its new home
     add f00ba073d6f6 [improve][test] Upgrade jonoffcpu to 0.7.0
     add 17efe139ab6e [improve][test] Write a profile report, app-rooted off-CPU graphs and heatmaps for profiled runs
     add 4cc75d416cec [improve][test] Write a run report with throughput, latency and sampled backlog, rendered to HTML
     add 1ba8bb685066 [improve][test] Treat Jetty's reserved threads waiting for a job as idle in off-CPU profiles
     add 39c12a8cecd3 [improve][test] Give headings ids in the launcher's HTML report pages
     add 24d6b5c0b1cc [improve][test] Name only the rendered views, lead the run report with its profiles, bound the backlog maximum to the measurement, tidy the latency chart
     add 801a96643038 [improve][test] Follow the jonoffcpu 0.7.0 digest options and wording, end the backlog maximum at the producers' finish
     add b78c64566e97 [improve][test] Hide BookKeeper and Pulsar dispatch frames in the off-CPU digest and app-root flame graphs, abbreviate Java names on the digest page
     add 262428e7c1e6 [improve][test] Write each launcher run to its own directory by day, branch and name, and record its provenance
     add a3a3c708804b [improve][test] Say which run each chart shows, link each run's files, and leave stacks without an application frame out of the app-root flame graphs
     add 7c611a3ca514 [improve][test] List a run's files in a collapsed section at the end of its report, and save container logs as text
     add 1ac898bf7984 [improve][test] Link a profile's files from tables with descriptive link texts, and its recordings from the run report
     add 67754b945492 [improve][test] Count only Pulsar and BookKeeper frames as the application in profiles
     add 7c6566dac4fc [improve][test] Move the performance reports and renderers to a report-tool module, and serve reports with their text files as text
     add 8e91089c0d61 [improve][test] Put the latency chart's axis labels next to their panels, and the panels further apart
     add 681ee9614044 [improve][test] Put the latency chart's axis labels right next to the axis
     add 5a84f1b09011 [improve][test] Leave the 0.0% label off the latency chart's baseline
     add 037b6288b3e3 [improve][test] Plot latency by percentile and over time per application with XChart, log latency every second, and write .hgrm percentile distributions
     add 5d13af282f58 [improve][test] Draw publish latency dotted, as the producers are in the throughput chart
     add f07021cbf66c [improve][test] Name the latency chart lines briefly
     add 2037fcc6230b [improve][test] Name each consumer application after its subscription in the run report and latency charts
     add 605970fcbee2 [improve][test] Name each consumer application's output directory after its subscription
     add 812a8e9d2f39 [improve][test] Name the end-to-end latency rows after their application
     add b48aae1826fe [improve][test] Drop the delivery-after-publish estimate from the run report
     add 5f3b2426aae6 [improve][test] Use AssertJ assertions in the performance launcher and report tool tests
     add f7ca35c4421a [improve][test] Report the host's CPU temperature and throttling, and cool down between runs
     add b264d2bf7acb [improve][test] Signal the measurement start over HTTP instead of coordination files
     add fa3e345949a5 [improve][test] Cut the cool-down before the measurement out of the throughput and backlog charts
     add 342d6dd82f84 [improve][test] Set environment variables of the producer and consumer containers from the scenario
     add db11c9cb6498 [improve][test] Add a script that configures the host for performance testing and restores it afterwards
     add ddcf77985845 [improve][test] Add a script that frees the Docker disk space that test runs use up
     add 55a89ef76dc0 [improve][build] Build the integration test image when it is out of date
     add b918ec72a0a8 [improve][doc] Link the performance testing environment setup and the microbenchmarks
     add 90f499f32f05 [improve][test] Fix the description of the renderHdrHistograms task
     add b58f0592fe8b [improve][test] Add a Gradle task that serves the performance reports over HTTP
     add f9db3d128eda [improve][test] Name the run and profile reports README.md and index.html
     add 00ff715a692e [improve][doc] Restructure the performance testing docs as a tutorial with reference pages
     add bebaabf3939f [improve][doc] Summarize the test areas in CONTRIBUTING.md and add agent guides for them
     add b2a866a97919 [improve][test] Add a validate command that checks the host before performance tests
     add 457544f9ff85 [improve][doc] Describe the recorders of a profiled performance run consistently
     add 76f859928681 [fix][test] Write the user's Gradle properties as the user, and restart Docker only when no containers run
     add 840a4386c534 [fix][test] Count thermal throttle events on every core, and report unknown throttling as unknown
     add 985af4c25c94 [fix][test] Report the producer's message counts, and chart the backlog and rates per subscription
     add cb7f5f94fba4 [improve][test] Collapse the host's temperature and frequency charts in the run report
     add 2aa1d3e0de50 [fix][test] Wait for the recorded interval and the host sample instead of sleeping in the performance tests
     add e203f22faa69 [improve][doc] Describe a baseline that has the same performance tests, and what to do when a run fails
     add 76c136f52b69 [improve][build] Keep libraries that only tools use out of pulsar-dependencies
     add 41318da8a463 [improve][test] Render the latency charts as SVG too, and let every SVG chart scale to the space it gets
     add 0f3a7ef291b0 [improve][doc] Introduce the performance tests in the tests README
     add 8644310e4eff [improve][doc] Explain that the performance tests simulate real-world use cases, with the IoT domain they model
     add 972263815a11 [improve][doc] Mention the jafar-perf plugin for analyzing JFR recordings and heap dumps
     add fd6e15569f15 [improve][doc] Describe the heap dump analysis tools in one section, and link to it
     add 53c32845fc71 [improve][doc] Name the analysis tools in one place, and link to the performance testing guide from other docs
     add 9a9717570445 [improve][doc] Say that the performance tests aren't automated regression tests yet
     add b830bb5c0e84 [improve][doc] Link the profilers in the performance testing guide
     add dd1c7d48dc64 [improve][test] Point to JDK Mission Control and its Flight Recorder guide from the profile reports and the docs
     add a817cbd35b67 [improve][doc] Set up a shared reports root before running the performance tests
     add 361051836967 [improve][test] Rename the reports server's address property to bindAddress, and document reaching the server
     add caaeb52a8da1 [improve][test] Add a launcher scenario for 500 producers and a 20-member Key_Shared subscription
     add 5c7a93213fb5 [improve][test] Name the Key_Shared 500x20 runs after their scenario files

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (bf8cc19c4920)
            \
             N -- N -- N   refs/heads/lh-key-shared-500x20-scenario (5c7a93213fb5)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

No new revisions were added by this update.

Summary of changes:
 .ratignore                                         |   1 +
 AGENTS.md                                          |   8 +
 CONTRIBUTING.md                                    | 172 ++---
 .../src/main/kotlin/DockerImageBuild.kt            |  44 ++
 conf/bkenv.sh                                      |   6 +
 conf/pulsar_env.sh                                 |  11 +-
 docker/pulsar/build.gradle.kts                     |  10 +
 gradle/libs.versions.toml                          |  27 +-
 microbench/AGENTS.md                               |  10 +
 CLAUDE.md => microbench/CLAUDE.md                  |   0
 microbench/README.md                               |  23 +-
 pulsar-build/run_integration_group_gradle.sh       |   8 +-
 pulsar-dependencies/build.gradle.kts               |   4 +-
 tests/README.md                                    | 110 ++-
 .../docker-images/java-test-image/build.gradle.kts |  11 +
 .../latest-version-image/build.gradle.kts          |  15 +
 tests/integration/AGENTS.md                        |  10 +
 CLAUDE.md => tests/integration/CLAUDE.md           |   0
 tests/integration/build.gradle.kts                 |  19 +
 .../profiling/AbstractPulsarProfilingTest.java     |   2 +-
 tests/performance/AGENTS.md                        |  66 ++
 CLAUDE.md => tests/performance/CLAUDE.md           |   0
 tests/performance/README.md                        | 763 +++++++--------------
 tests/performance/docs/analyzing-profiles.md       | 184 +++++
 tests/performance/docs/comparing-revisions.md      | 100 +++
 .../docs/images/iot-system-overview.svg            | 135 ++++
 tests/performance/docs/legacy-testng-runner.md     | 119 ++++
 tests/performance/docs/profiling.md                | 198 ++++++
 tests/performance/docs/run-reports.md              | 217 ++++++
 tests/performance/docs/running-scenarios.md        | 132 ++++
 tests/performance/environment/README.md            |  31 +-
 .../scripts/configure-perf-test-environment.sh     | 248 ++++++-
 .../environment/scripts/docker-cleanup.sh          |   6 +-
 tests/performance/launcher/build.gradle.kts        |   6 +-
 .../performance/launcher/HostStatsSampler.java     |  26 +-
 .../performance/launcher/PerformanceLauncher.java  |   5 +-
 .../tests/performance/launcher/RunDirectory.java   |  31 -
 .../performance/launcher/HostStatsSamplerTest.java |  41 +-
 .../performance/launcher/RunDirectoryTest.java     |  45 --
 tests/performance/report-tool/build.gradle.kts     |  37 +-
 .../tests/performance/report/ChartStyle.java       |  15 +
 .../performance/report/HdrHistogramRenderer.java   |  51 +-
 .../tests/performance/report/MarkdownPages.java    |  37 +-
 .../tests/performance/report/ProfileReport.java    |  41 +-
 .../tests/performance/report/ReportsServer.java    | 219 ++++++
 .../pulsar/tests/performance/report/RunReport.java | 129 +++-
 .../performance/report/TimeSeriesRenderer.java     |   4 +-
 .../report/HdrHistogramRendererTest.java           |  16 +-
 .../performance/report/MarkdownPagesTest.java      |  12 +
 .../performance/report/ProfileReportTest.java      |  45 +-
 .../performance/report/ReportsServerTest.java      | 126 ++++
 .../tests/performance/report/RunReportTest.java    |  89 ++-
 .../performance/report/TimeSeriesRendererTest.java |   5 +-
 tests/performance/scenarios/README.md              |  88 +++
 .../{ => scenarios/docs}/iot-telemetry.md          |  38 +-
 .../docs}/read-completion-isolation.md             |  16 +-
 .../performance/scenarios/docs/scenario-format.md  | 101 +++
 .../scenarios/read-completion-isolation.yaml       |   2 +-
 tests/performance/serve-reports.py                 |   1 +
 .../performance/tools/HdrLatencyRecorderTest.java  |   6 +-
 60 files changed, 2990 insertions(+), 932 deletions(-)
 create mode 100644 build-logic/conventions/src/main/kotlin/DockerImageBuild.kt
 create mode 100644 microbench/AGENTS.md
 copy CLAUDE.md => microbench/CLAUDE.md (100%)
 create mode 100644 tests/integration/AGENTS.md
 copy CLAUDE.md => tests/integration/CLAUDE.md (100%)
 create mode 100644 tests/performance/AGENTS.md
 copy CLAUDE.md => tests/performance/CLAUDE.md (100%)
 create mode 100644 tests/performance/docs/analyzing-profiles.md
 create mode 100644 tests/performance/docs/comparing-revisions.md
 create mode 100644 tests/performance/docs/images/iot-system-overview.svg
 create mode 100644 tests/performance/docs/legacy-testng-runner.md
 create mode 100644 tests/performance/docs/profiling.md
 create mode 100644 tests/performance/docs/run-reports.md
 create mode 100644 tests/performance/docs/running-scenarios.md
 create mode 100644 tests/performance/report-tool/src/main/java/org/apache/pulsar/tests/performance/report/ReportsServer.java
 create mode 100644 tests/performance/report-tool/src/test/java/org/apache/pulsar/tests/performance/report/ReportsServerTest.java
 create mode 100644 tests/performance/scenarios/README.md
 rename tests/performance/{ => scenarios/docs}/iot-telemetry.md (84%)
 rename tests/performance/{ => scenarios/docs}/read-completion-isolation.md (89%)
 create mode 100644 tests/performance/scenarios/docs/scenario-format.md