2021-03-17 13:20:05 +00:00
|
|
|
module github.com/pulumi/pulumi/pkg/v3
|
2020-03-18 23:30:44 +00:00
|
|
|
|
[snapshot] Use a newer diff package
The version of gopls that gotextdiff is derived from is over three years
old. In the intervening time, the differ used by gopls has improved
tremendously, and the language has grown new features like generics.
These changes use a different diff package that is derived from an
up-to-date version of gopls and exposes an API that is parameterized
over the storage of the text. Taken together, this allows us to use a
much faster and more memory-efficient algorithm for diffing while
safely avoiding string copies when invoking the differ.
The more efficient algorithm operates on arbitrary slices whose elements
are comparable. Naive use of this algorithm--passing byte slices
in--can cause increased time spent diffing, as the sequences being
compared are longer. In order to avoid this, these changes record
spans of marshaled deployments as the deployments are marshaled. These
spans are strings that cover the diffable elements of the deployment:
its header, its resources, and its pending operations.
The output of the newer algorithm is converible to the format we
currently send to the service, so these changes should not require
service-side changes.
In order to avoid bumping the minimum Go version required to build the
`github.com/pulumi/pulumi/pkg/v3" and therefore break backwards
compatibility with consumers using older toolchains (e.g. providers),
these changes use the existing differ when built with a pre-1.20
toolchain. Official builds of the CLI are already using Go 1.20+ and
should use the new differ without additional changes.
These changes improve CPU time, allocation volume, and the compression
ratio by 57%, 87%, and 52%, respectively.
Benchmark results and analysis:
httpstate ❯ go test -count=10 -run none -benchmem -bench . | tee spanned.txt
httpstate ❯ benchstat buffer-pool.txt spanned.txt >stat.txt
```
│ buffer-pool.txt │ spanned.txt │
│ sec/op │ sec/op vs base │
DiffStack/1_x_2_B-10 45.09µ ± 1% 22.81µ ± 1% -49.41% (p=0.000 n=10)
DiffStack/2_x_2_B-10 79.49µ ± 1% 40.60µ ± 1% -48.93% (p=0.000 n=10)
DiffStack/4_x_2_B-10 172.54µ ± 2% 81.57µ ± 0% -52.72% (p=0.000 n=10)
DiffStack/8_x_2_B-10 455.4µ ± 1% 200.4µ ± 0% -56.00% (p=0.000 n=10)
DiffStack/16_x_2_B-10 1388.2µ ± 1% 575.1µ ± 1% -58.57% (p=0.000 n=10)
DiffStack/32_x_2_B-10 4.409m ± 1% 1.866m ± 0% -57.67% (p=0.000 n=10)
DiffStack/48_x_2_B-10 9.275m ± 0% 3.484m ± 0% -62.44% (p=0.000 n=10)
DiffStack/64_x_2_B-10 14.564m ± 0% 5.945m ± 1% -59.18% (p=0.000 n=10)
DiffStack/1_x_8.2_kB-10 124.81µ ± 1% 40.14µ ± 1% -67.84% (p=0.000 n=10)
DiffStack/2_x_8.2_kB-10 299.8µ ± 0% 121.8µ ± 1% -59.38% (p=0.000 n=10)
DiffStack/4_x_8.2_kB-10 846.2µ ± 1% 355.8µ ± 0% -57.96% (p=0.000 n=10)
DiffStack/8_x_8.2_kB-10 2.743m ± 1% 1.150m ± 0% -58.06% (p=0.000 n=10)
DiffStack/16_x_8.2_kB-10 9.271m ± 1% 4.041m ± 0% -56.41% (p=0.000 n=10)
DiffStack/32_x_8.2_kB-10 31.78m ± 0% 14.97m ± 0% -52.88% (p=0.000 n=10)
DiffStack/48_x_8.2_kB-10 66.14m ± 1% 30.66m ± 0% -53.63% (p=0.000 n=10)
DiffStack/64_x_8.2_kB-10 107.50m ± 0% 53.44m ± 0% -50.29% (p=0.000 n=10)
DiffStack/1_x_33_kB-10 240.51µ ± 1% 76.95µ ± 0% -68.01% (p=0.000 n=10)
DiffStack/2_x_33_kB-10 798.5µ ± 0% 310.6µ ± 0% -61.10% (p=0.000 n=10)
DiffStack/4_x_33_kB-10 2451.9µ ± 1% 978.9µ ± 3% -60.08% (p=0.000 n=10)
DiffStack/8_x_33_kB-10 8.258m ± 0% 3.731m ± 0% -54.82% (p=0.000 n=10)
DiffStack/16_x_33_kB-10 28.29m ± 1% 12.77m ± 0% -54.85% (p=0.000 n=10)
DiffStack/32_x_33_kB-10 104.11m ± 1% 44.84m ± 1% -56.93% (p=0.000 n=10)
DiffStack/48_x_33_kB-10 199.73m ± 1% 95.87m ± 1% -52.00% (p=0.000 n=10)
DiffStack/64_x_33_kB-10 339.6m ± 2% 159.2m ± 2% -53.12% (p=0.000 n=10)
DiffStack/2_x_131_kB-10 2721.7µ ± 0% 984.3µ ± 0% -63.84% (p=0.000 n=10)
DiffStack/4_x_131_kB-10 8.334m ± 1% 3.654m ± 2% -56.15% (p=0.000 n=10)
DiffStack/8_x_131_kB-10 25.89m ± 0% 12.23m ± 0% -52.77% (p=0.000 n=10)
DiffStack/16_x_131_kB-10 87.49m ± 1% 40.26m ± 0% -53.98% (p=0.000 n=10)
DiffStack/32_x_131_kB-10 317.0m ± 5% 150.4m ± 0% -52.57% (p=0.000 n=10)
DiffStack/48_x_131_kB-10 681.8m ± 1% 332.1m ± 0% -51.28% (p=0.000 n=10)
DiffStack/64_x_131_kB-10 1190.4m ± 1% 583.1m ± 0% -51.01% (p=0.000 n=10)
DiffStack/1_x_524_kB-10 3.215m ± 0% 1.086m ± 0% -66.21% (p=0.000 n=10)
DiffStack/2_x_524_kB-10 9.676m ± 1% 3.994m ± 0% -58.72% (p=0.000 n=10)
DiffStack/4_x_524_kB-10 29.84m ± 0% 12.88m ± 1% -56.84% (p=0.000 n=10)
DiffStack/8_x_524_kB-10 92.11m ± 1% 42.35m ± 0% -54.02% (p=0.000 n=10)
DiffStack/16_x_524_kB-10 322.1m ± 0% 154.0m ± 0% -52.19% (p=0.000 n=10)
DiffStackRecorded/two-large-checkpoints.json-10 54.73m ± 1% 22.63m ± 0% -58.65% (p=0.000 n=10)
DiffStackRecorded/checkpoints.json-10 815.1m ± 0% 395.5m ± 2% -51.48% (p=0.000 n=10)
geomean 10.45m 4.530m -56.65%
│ buffer-pool.txt │ spanned.txt │
│ checkpoint_bytes │ checkpoint_bytes vs base │
DiffStack/1_x_2_B-10 2.539k ± 0% 1.950k ± 0% -23.20% (p=0.000 n=10)
DiffStack/2_x_2_B-10 5.201k ± 0% 4.548k ± 0% -12.56% (p=0.000 n=10)
DiffStack/4_x_2_B-10 13.63k ± 0% 12.30k ± 0% -9.77% (p=0.000 n=10)
DiffStack/8_x_2_B-10 45.09k ± 0% 42.86k ± 0% -4.95% (p=0.000 n=10)
DiffStack/16_x_2_B-10 161.9k ± 0% 156.4k ± 0% -3.42% (p=0.000 n=10)
DiffStack/32_x_2_B-10 579.8k ± 0% 604.2k ± 0% +4.21% (p=0.000 n=10)
DiffStack/48_x_2_B-10 1.306M ± 0% 1.180M ± 0% -9.68% (p=0.000 n=10)
DiffStack/64_x_2_B-10 2.164M ± 0% 2.134M ± 0% -1.36% (p=0.000 n=10)
DiffStack/1_x_8.2_kB-10 27.109k ± 0% 9.856k ± 0% -63.64% (p=0.000 n=10)
DiffStack/2_x_8.2_kB-10 78.91k ± 0% 61.59k ± 0% -21.94% (p=0.000 n=10)
DiffStack/4_x_8.2_kB-10 284.2k ± 0% 258.3k ± 0% -9.13% (p=0.000 n=10)
DiffStack/8_x_8.2_kB-10 1.119M ± 0% 1.041M ± 0% -6.89% (p=0.000 n=10)
DiffStack/16_x_8.2_kB-10 4.389M ± 0% 4.201M ± 0% -4.29% (p=0.000 n=10)
DiffStack/32_x_8.2_kB-10 16.74M ± 0% 17.06M ± 0% +1.95% (p=0.000 n=10)
DiffStack/48_x_8.2_kB-10 36.30M ± 0% 35.93M ± 0% -1.00% (p=0.000 n=10)
DiffStack/64_x_8.2_kB-10 60.98M ± 0% 64.06M ± 0% +5.05% (p=0.000 n=10)
DiffStack/1_x_33_kB-10 67.79k ± 0% 34.43k ± 0% -49.20% (p=0.000 n=10)
DiffStack/2_x_33_kB-10 300.1k ± 0% 233.6k ± 0% -22.15% (p=0.000 n=10)
DiffStack/4_x_33_kB-10 1128.3k ± 0% 929.5k ± 0% -17.62% (p=0.000 n=10)
DiffStack/8_x_33_kB-10 4.437M ± 0% 4.238M ± 0% -4.49% (p=0.000 n=10)
DiffStack/16_x_33_kB-10 16.57M ± 0% 15.78M ± 0% -4.79% (p=0.000 n=10)
DiffStack/32_x_33_kB-10 64.35M ± 0% 58.66M ± 0% -8.84% (p=0.000 n=10)
DiffStack/48_x_33_kB-10 127.0M ± 0% 128.0M ± 0% +0.80% (p=0.000 n=10)
DiffStack/64_x_33_kB-10 217.7M ± 0% 216.5M ± 0% -0.54% (p=0.000 n=10)
DiffStack/2_x_131_kB-10 1316.2k ± 0% 921.8k ± 0% -29.97% (p=0.000 n=10)
DiffStack/4_x_131_kB-10 4.733M ± 0% 4.207M ± 0% -11.11% (p=0.000 n=10)
DiffStack/8_x_131_kB-10 16.03M ± 0% 15.77M ± 0% -1.64% (p=0.000 n=10)
DiffStack/16_x_131_kB-10 57.42M ± 0% 54.66M ± 0% -4.81% (p=0.000 n=10)
DiffStack/32_x_131_kB-10 214.8M ± 0% 210.7M ± 0% -1.90% (p=0.000 n=10)
DiffStack/48_x_131_kB-10 472.9M ± 0% 466.9M ± 0% -1.28% (p=0.000 n=10)
DiffStack/64_x_131_kB-10 832.3M ± 0% 824.7M ± 0% -0.92% (p=0.000 n=10)
DiffStack/1_x_524_kB-10 1.575M ± 0% 1.051M ± 0% -33.32% (p=0.000 n=10)
DiffStack/2_x_524_kB-10 5.248M ± 0% 4.199M ± 0% -20.00% (p=0.000 n=10)
DiffStack/4_x_524_kB-10 18.36M ± 0% 15.74M ± 0% -14.28% (p=0.000 n=10)
DiffStack/8_x_524_kB-10 60.86M ± 0% 56.66M ± 0% -6.90% (p=0.000 n=10)
DiffStack/16_x_524_kB-10 223.5M ± 0% 214.0M ± 0% -4.23% (p=0.000 n=10)
DiffStackRecorded/two-large-checkpoints.json-10 13.21M ± 0% 13.20M ± 0% -0.01% (p=0.000 n=10)
DiffStackRecorded/checkpoints.json-10 155.9M ± 0% 154.9M ± 0% -0.60% (p=0.000 n=10)
geomean 3.606M 3.173M -12.01%
│ buffer-pool.txt │ spanned.txt │
│ ratio │ ratio vs base │
DiffStack/1_x_2_B-10 789.5m ± 0% 1641.0m ± 0% +107.85% (p=0.000 n=10)
DiffStack/2_x_2_B-10 1.034 ± 0% 2.353 ± 0% +127.56% (p=0.000 n=10)
DiffStack/4_x_2_B-10 1.575 ± 0% 3.592 ± 0% +128.06% (p=0.000 n=10)
DiffStack/8_x_2_B-10 2.829 ± 0% 6.684 ± 0% +136.27% (p=0.000 n=10)
DiffStack/16_x_2_B-10 5.296 ± 0% 12.610 ± 0% +138.10% (p=0.000 n=10)
DiffStack/32_x_2_B-10 9.681 ± 0% 24.790 ± 0% +156.07% (p=0.000 n=10)
DiffStack/48_x_2_B-10 14.65 ± 0% 32.44 ± 0% +121.43% (p=0.000 n=10)
DiffStack/64_x_2_B-10 18.26 ± 0% 44.11 ± 0% +141.57% (p=0.000 n=10)
DiffStack/1_x_8.2_kB-10 1.383 ± 0% 1.051 ± 0% -24.01% (p=0.000 n=10)
DiffStack/2_x_8.2_kB-10 1.716 ± 0% 2.324 ± 0% +35.43% (p=0.000 n=10)
DiffStack/4_x_8.2_kB-10 2.878 ± 0% 4.251 ± 0% +47.71% (p=0.000 n=10)
DiffStack/8_x_8.2_kB-10 5.475 ± 0% 8.056 ± 0% +47.14% (p=0.000 n=10)
DiffStack/16_x_8.2_kB-10 10.56 ± 0% 15.77 ± 0% +49.34% (p=0.000 n=10)
DiffStack/32_x_8.2_kB-10 19.97 ± 0% 31.57 ± 0% +58.09% (p=0.000 n=10)
DiffStack/48_x_8.2_kB-10 28.80 ± 0% 44.11 ± 0% +53.16% (p=0.000 n=10)
DiffStack/64_x_8.2_kB-10 36.23 ± 0% 58.84 ± 0% +62.41% (p=0.000 n=10)
DiffStack/1_x_33_kB-10 986.0m ± 0% 1014.0m ± 0% +2.84% (p=0.000 n=10)
DiffStack/2_x_33_kB-10 1.777 ± 0% 2.331 ± 0% +31.18% (p=0.000 n=10)
DiffStack/4_x_33_kB-10 3.057 ± 0% 3.993 ± 0% +30.62% (p=0.000 n=10)
DiffStack/8_x_33_kB-10 5.766 ± 0% 8.511 ± 0% +47.61% (p=0.000 n=10)
DiffStack/16_x_33_kB-10 10.55 ± 0% 15.35 ± 0% +45.50% (p=0.000 n=10)
DiffStack/32_x_33_kB-10 20.28 ± 0% 28.08 ± 0% +38.46% (p=0.000 n=10)
DiffStack/48_x_33_kB-10 26.59 ± 0% 40.64 ± 0% +52.84% (p=0.000 n=10)
DiffStack/64_x_33_kB-10 34.14 ± 0% 51.44 ± 0% +50.67% (p=0.000 n=10)
DiffStack/2_x_131_kB-10 1.993 ± 0% 2.333 ± 0% +17.06% (p=0.000 n=10)
DiffStack/4_x_131_kB-10 3.263 ± 0% 4.569 ± 0% +40.02% (p=0.000 n=10)
DiffStack/8_x_131_kB-10 5.291 ± 0% 7.995 ± 0% +51.11% (p=0.000 n=10)
DiffStack/16_x_131_kB-10 9.275 ± 0% 13.410 ± 0% +44.58% (p=0.000 n=10)
DiffStack/32_x_131_kB-10 17.17 ± 0% 25.44 ± 0% +48.17% (p=0.000 n=10)
DiffStack/48_x_131_kB-10 25.11 ± 0% 37.39 ± 0% +48.90% (p=0.000 n=10)
DiffStack/64_x_131_kB-10 33.09 ± 0% 49.40 ± 0% +49.29% (p=0.000 n=10)
DiffStack/1_x_524_kB-10 1.498 ± 0% 1.999 ± 0% +33.44% (p=0.000 n=10)
DiffStack/2_x_524_kB-10 1.998 ± 0% 2.666 ± 0% +33.43% (p=0.000 n=10)
DiffStack/4_x_524_kB-10 3.180 ± 0% 4.285 ± 0% +34.75% (p=0.000 n=10)
DiffStack/8_x_524_kB-10 5.040 ± 0% 7.199 ± 0% +42.84% (p=0.000 n=10)
DiffStack/16_x_524_kB-10 9.058 ± 0% 13.160 ± 0% +45.29% (p=0.000 n=10)
DiffStackRecorded/two-large-checkpoints.json-10 1.997 ± 0% 1.999 ± 0% +0.10% (p=0.000 n=10)
DiffStackRecorded/checkpoints.json-10 36.60 ± 0% 40.42 ± 0% +10.44% (p=0.000 n=10)
geomean 5.993 9.122 +52.20%
│ buffer-pool.txt │ spanned.txt │
│ wire_bytes │ wire_bytes vs base │
DiffStack/1_x_2_B-10 3.216k ± 0% 1.188k ± 0% -63.06% (p=0.000 n=10)
DiffStack/2_x_2_B-10 5.031k ± 0% 1.933k ± 0% -61.58% (p=0.000 n=10)
DiffStack/4_x_2_B-10 8.655k ± 0% 3.424k ± 0% -60.44% (p=0.000 n=10)
DiffStack/8_x_2_B-10 15.938k ± 0% 6.412k ± 0% -59.77% (p=0.000 n=10)
DiffStack/16_x_2_B-10 30.58k ± 0% 12.40k ± 0% -59.45% (p=0.000 n=10)
DiffStack/32_x_2_B-10 59.89k ± 0% 24.37k ± 0% -59.31% (p=0.000 n=10)
DiffStack/48_x_2_B-10 89.17k ± 0% 36.38k ± 0% -59.21% (p=0.000 n=10)
DiffStack/64_x_2_B-10 118.48k ± 0% 48.39k ± 0% -59.16% (p=0.000 n=10)
DiffStack/1_x_8.2_kB-10 19.596k ± 0% 9.378k ± 0% -52.14% (p=0.000 n=10)
DiffStack/2_x_8.2_kB-10 45.98k ± 0% 26.50k ± 0% -42.36% (p=0.000 n=10)
DiffStack/4_x_8.2_kB-10 98.75k ± 0% 60.76k ± 0% -38.47% (p=0.000 n=10)
DiffStack/8_x_8.2_kB-10 204.3k ± 0% 129.3k ± 0% -36.72% (p=0.000 n=10)
DiffStack/16_x_8.2_kB-10 415.5k ± 0% 266.3k ± 0% -35.91% (p=0.000 n=10)
DiffStack/32_x_8.2_kB-10 837.9k ± 0% 540.4k ± 0% -35.50% (p=0.000 n=10)
DiffStack/48_x_8.2_kB-10 1260.4k ± 0% 814.6k ± 0% -35.37% (p=0.000 n=10)
DiffStack/64_x_8.2_kB-10 1.683M ± 0% 1.089M ± 0% -35.31% (p=0.000 n=10)
DiffStack/1_x_33_kB-10 68.75k ± 0% 33.95k ± 0% -50.61% (p=0.000 n=10)
DiffStack/2_x_33_kB-10 168.9k ± 0% 100.2k ± 0% -40.64% (p=0.000 n=10)
DiffStack/4_x_33_kB-10 369.1k ± 0% 232.8k ± 0% -36.93% (p=0.000 n=10)
DiffStack/8_x_33_kB-10 769.6k ± 0% 497.9k ± 0% -35.30% (p=0.000 n=10)
DiffStack/16_x_33_kB-10 1.571M ± 0% 1.028M ± 0% -34.53% (p=0.000 n=10)
DiffStack/32_x_33_kB-10 3.173M ± 0% 2.089M ± 0% -34.16% (p=0.000 n=10)
DiffStack/48_x_33_kB-10 4.775M ± 0% 3.149M ± 0% -34.04% (p=0.000 n=10)
DiffStack/64_x_33_kB-10 6.377M ± 0% 4.210M ± 0% -33.98% (p=0.000 n=10)
DiffStack/2_x_131_kB-10 660.4k ± 0% 395.1k ± 0% -40.16% (p=0.000 n=10)
DiffStack/4_x_131_kB-10 1450.4k ± 0% 920.9k ± 0% -36.51% (p=0.000 n=10)
DiffStack/8_x_131_kB-10 3.031M ± 0% 1.972M ± 0% -34.91% (p=0.000 n=10)
DiffStack/16_x_131_kB-10 6.191M ± 0% 4.076M ± 0% -34.17% (p=0.000 n=10)
DiffStack/32_x_131_kB-10 12.512M ± 0% 8.282M ± 0% -33.81% (p=0.000 n=10)
DiffStack/48_x_131_kB-10 18.83M ± 0% 12.49M ± 0% -33.69% (p=0.000 n=10)
DiffStack/64_x_131_kB-10 25.15M ± 0% 16.69M ± 0% -33.63% (p=0.000 n=10)
DiffStack/1_x_524_kB-10 1051.8k ± 0% 525.5k ± 0% -50.04% (p=0.000 n=10)
DiffStack/2_x_524_kB-10 2.626M ± 0% 1.575M ± 0% -40.04% (p=0.000 n=10)
DiffStack/4_x_524_kB-10 5.776M ± 0% 3.673M ± 0% -36.40% (p=0.000 n=10)
DiffStack/8_x_524_kB-10 12.075M ± 0% 7.871M ± 0% -34.82% (p=0.000 n=10)
DiffStack/16_x_524_kB-10 24.67M ± 0% 16.27M ± 0% -34.07% (p=0.000 n=10)
DiffStackRecorded/two-large-checkpoints.json-10 6.612M ± 0% 6.606M ± 0% -0.10% (p=0.000 n=10)
DiffStackRecorded/checkpoints.json-10 4.259M ± 0% 3.833M ± 0% -10.00% (p=0.000 n=10)
geomean 601.7k 347.8k -42.19%
│ buffer-pool.txt │ spanned.txt │
│ B/op │ B/op vs base │
DiffStack/1_x_2_B-10 31.85Ki ± 0% 15.79Ki ± 0% -50.42% (p=0.000 n=10)
DiffStack/2_x_2_B-10 61.81Ki ± 0% 28.01Ki ± 0% -54.68% (p=0.000 n=10)
DiffStack/4_x_2_B-10 147.58Ki ± 0% 55.60Ki ± 0% -62.33% (p=0.000 n=10)
DiffStack/8_x_2_B-10 425.9Ki ± 0% 116.9Ki ± 0% -72.55% (p=0.000 n=10)
DiffStack/16_x_2_B-10 1429.9Ki ± 0% 307.8Ki ± 0% -78.47% (p=0.000 n=10)
DiffStack/32_x_2_B-10 4955.7Ki ± 0% 934.1Ki ± 0% -81.15% (p=0.000 n=10)
DiffStack/48_x_2_B-10 10.746Mi ± 0% 1.682Mi ± 0% -84.34% (p=0.000 n=10)
DiffStack/64_x_2_B-10 17.664Mi ± 0% 2.822Mi ± 0% -84.03% (p=0.000 n=10)
DiffStack/1_x_8.2_kB-10 202.50Ki ± 0% 41.18Ki ± 0% -79.66% (p=0.000 n=10)
DiffStack/2_x_8.2_kB-10 511.5Ki ± 0% 134.1Ki ± 0% -73.78% (p=0.000 n=10)
DiffStack/4_x_8.2_kB-10 1513.5Ki ± 0% 309.4Ki ± 0% -79.56% (p=0.000 n=10)
DiffStack/8_x_8.2_kB-10 4886.0Ki ± 0% 674.2Ki ± 0% -86.20% (p=0.000 n=10)
DiffStack/16_x_8.2_kB-10 16.287Mi ± 0% 1.427Mi ± 0% -91.24% (p=0.000 n=10)
DiffStack/32_x_8.2_kB-10 57.541Mi ± 0% 3.198Mi ± 0% -94.44% (p=0.000 n=10)
DiffStack/48_x_8.2_kB-10 121.703Mi ± 0% 5.810Mi ± 0% -95.23% (p=0.000 n=10)
DiffStack/64_x_8.2_kB-10 200.588Mi ± 0% 7.495Mi ± 0% -96.26% (p=0.000 n=10)
DiffStack/1_x_33_kB-10 562.5Ki ± 0% 136.3Ki ± 0% -75.78% (p=0.000 n=10)
DiffStack/2_x_33_kB-10 2041.0Ki ± 0% 505.5Ki ± 0% -75.23% (p=0.000 n=10)
DiffStack/4_x_33_kB-10 5.874Mi ± 0% 1.129Mi ± 0% -80.78% (p=0.000 n=10)
DiffStack/8_x_33_kB-10 18.837Mi ± 0% 2.410Mi ± 0% -87.21% (p=0.000 n=10)
DiffStack/16_x_33_kB-10 61.898Mi ± 0% 5.015Mi ± 0% -91.90% (p=0.000 n=10)
DiffStack/32_x_33_kB-10 221.69Mi ± 0% 10.36Mi ± 0% -95.32% (p=0.000 n=10)
DiffStack/48_x_33_kB-10 430.13Mi ± 0% 18.50Mi ± 0% -95.70% (p=0.000 n=10)
DiffStack/64_x_33_kB-10 722.07Mi ± 0% 21.63Mi ± 0% -97.00% (p=0.000 n=10)
DiffStack/2_x_131_kB-10 8.098Mi ± 0% 1.656Mi ± 0% -79.55% (p=0.000 n=10)
DiffStack/4_x_131_kB-10 22.662Mi ± 0% 3.934Mi ± 0% -82.64% (p=0.000 n=10)
DiffStack/8_x_131_kB-10 65.217Mi ± 0% 8.425Mi ± 0% -87.08% (p=0.000 n=10)
DiffStack/16_x_131_kB-10 204.90Mi ± 0% 17.22Mi ± 1% -91.60% (p=0.000 n=10)
DiffStack/32_x_131_kB-10 703.12Mi ± 0% 34.89Mi ± 0% -95.04% (p=0.000 n=10)
DiffStack/48_x_131_kB-10 1505.36Mi ± 0% 61.24Mi ± 0% -95.93% (p=0.000 n=10)
DiffStack/64_x_131_kB-10 2586.04Mi ± 0% 70.48Mi ± 1% -97.27% (p=0.000 n=10)
DiffStack/1_x_524_kB-10 11.854Mi ± 1% 2.127Mi ± 0% -82.06% (p=0.000 n=10)
DiffStack/2_x_524_kB-10 32.932Mi ± 1% 6.558Mi ± 1% -80.09% (p=0.000 n=10)
DiffStack/4_x_524_kB-10 90.04Mi ± 0% 15.15Mi ± 0% -83.17% (p=0.000 n=10)
DiffStack/8_x_524_kB-10 252.94Mi ± 0% 32.27Mi ± 1% -87.24% (p=0.000 n=10)
DiffStack/16_x_524_kB-10 801.77Mi ± 0% 66.46Mi ± 1% -91.71% (p=0.000 n=10)
DiffStackRecorded/two-large-checkpoints.json-10 103.67Mi ± 0% 35.52Mi ± 0% -65.74% (p=0.000 n=10)
DiffStackRecorded/checkpoints.json-10 913.90Mi ± 0% 53.53Mi ± 1% -94.14% (p=0.000 n=10)
geomean 19.16Mi 2.409Mi -87.43%
│ buffer-pool.txt │ spanned.txt │
│ allocs/op │ allocs/op vs base │
DiffStack/1_x_2_B-10 344.0 ± 0% 184.0 ± 0% -46.51% (p=0.000 n=10)
DiffStack/2_x_2_B-10 616.0 ± 0% 295.0 ± 0% -52.11% (p=0.000 n=10)
DiffStack/4_x_2_B-10 1381.0 ± 0% 524.0 ± 0% -62.06% (p=0.000 n=10)
DiffStack/8_x_2_B-10 3.922k ± 0% 1.032k ± 0% -73.69% (p=0.000 n=10)
DiffStack/16_x_2_B-10 12.791k ± 0% 2.233k ± 0% -82.54% (p=0.000 n=10)
DiffStack/32_x_2_B-10 43.416k ± 0% 5.410k ± 0% -87.54% (p=0.000 n=10)
DiffStack/48_x_2_B-10 95.803k ± 0% 9.036k ± 0% -90.57% (p=0.000 n=10)
DiffStack/64_x_2_B-10 156.99k ± 0% 13.99k ± 0% -91.09% (p=0.000 n=10)
DiffStack/1_x_8.2_kB-10 335.0 ± 0% 182.0 ± 0% -45.67% (p=0.000 n=10)
DiffStack/2_x_8.2_kB-10 597.5 ± 0% 295.0 ± 0% -50.63% (p=0.000 n=10)
DiffStack/4_x_8.2_kB-10 1304.0 ± 0% 527.0 ± 0% -59.59% (p=0.000 n=10)
DiffStack/8_x_8.2_kB-10 3.475k ± 0% 1.036k ± 0% -70.19% (p=0.000 n=10)
DiffStack/16_x_8.2_kB-10 10.677k ± 0% 2.239k ± 0% -79.03% (p=0.000 n=10)
DiffStack/32_x_8.2_kB-10 35.357k ± 0% 5.414k ± 0% -84.69% (p=0.000 n=10)
DiffStack/48_x_8.2_kB-10 72.782k ± 0% 9.296k ± 0% -87.23% (p=0.000 n=10)
DiffStack/64_x_8.2_kB-10 119.24k ± 0% 14.26k ± 0% -88.04% (p=0.000 n=10)
DiffStack/1_x_33_kB-10 309.0 ± 0% 182.0 ± 0% -41.10% (p=0.000 n=10)
DiffStack/2_x_33_kB-10 594.0 ± 0% 296.0 ± 0% -50.17% (p=0.000 n=10)
DiffStack/4_x_33_kB-10 1324.5 ± 0% 528.0 ± 0% -60.14% (p=0.000 n=10)
DiffStack/8_x_33_kB-10 3.554k ± 0% 1.047k ± 0% -70.54% (p=0.000 n=10)
DiffStack/16_x_33_kB-10 10.511k ± 0% 2.232k ± 0% -78.77% (p=0.000 n=10)
DiffStack/32_x_33_kB-10 35.147k ± 0% 5.194k ± 0% -85.22% (p=0.000 n=10)
DiffStack/48_x_33_kB-10 66.519k ± 0% 8.958k ± 0% -86.53% (p=0.000 n=10)
DiffStack/64_x_33_kB-10 110.71k ± 0% 13.28k ± 0% -88.00% (p=0.000 n=10)
DiffStack/2_x_131_kB-10 644.0 ± 0% 296.0 ± 0% -54.04% (p=0.000 n=10)
DiffStack/4_x_131_kB-10 1418.5 ± 0% 535.0 ± 0% -62.28% (p=0.000 n=10)
DiffStack/8_x_131_kB-10 3.497k ± 0% 1.047k ± 0% -70.06% (p=0.000 n=10)
DiffStack/16_x_131_kB-10 9.805k ± 0% 2.182k ± 0% -77.75% (p=0.000 n=10)
DiffStack/32_x_131_kB-10 30.996k ± 0% 5.040k ± 0% -83.74% (p=0.000 n=10)
DiffStack/48_x_131_kB-10 63.751k ± 0% 8.656k ± 0% -86.42% (p=0.000 n=10)
DiffStack/64_x_131_kB-10 107.97k ± 0% 13.03k ± 0% -87.93% (p=0.000 n=10)
DiffStack/1_x_524_kB-10 356.0 ± 0% 186.0 ± 0% -47.75% (p=0.000 n=10)
DiffStack/2_x_524_kB-10 671.0 ± 0% 300.0 ± 0% -55.29% (p=0.000 n=10)
DiffStack/4_x_524_kB-10 1467.5 ± 0% 536.0 ± 0% -63.48% (p=0.000 n=10)
DiffStack/8_x_524_kB-10 3.553k ± 0% 1.038k ± 0% -70.80% (p=0.000 n=10)
DiffStack/16_x_524_kB-10 9.971k ± 0% 2.182k ± 0% -78.12% (p=0.000 n=10)
DiffStackRecorded/two-large-checkpoints.json-10 489.16k ± 0% 73.65k ± 0% -84.94% (p=0.000 n=10)
DiffStackRecorded/checkpoints.json-10 7236.9k ± 0% 857.8k ± 0% -88.15% (p=0.000 n=10)
geomean 7.989k 1.934k -75.79%
```
2023-05-05 02:15:09 +00:00
|
|
|
go 1.20
|
2020-03-18 23:30:44 +00:00
|
|
|
|
2022-06-17 16:27:52 +00:00
|
|
|
replace github.com/pulumi/pulumi/sdk/v3 => ../sdk
|
|
|
|
|
|
|
|
// Working around https://github.com/sergi/go-diff/issues/123
|
|
|
|
replace github.com/sergi/go-diff => github.com/sergi/go-diff v1.1.0
|
2020-03-18 23:30:44 +00:00
|
|
|
|
2022-08-12 15:07:55 +00:00
|
|
|
replace github.com/xanzy/ssh-agent => github.com/pulumi/ssh-agent v0.5.1
|
2022-07-22 18:50:38 +00:00
|
|
|
|
2020-03-18 23:30:44 +00:00
|
|
|
require (
|
2024-04-15 07:47:29 +00:00
|
|
|
cloud.google.com/go/logging v1.9.0
|
|
|
|
cloud.google.com/go/storage v1.39.1
|
|
|
|
github.com/aws/aws-sdk-go v1.50.36
|
2020-03-18 23:30:44 +00:00
|
|
|
github.com/blang/semver v3.5.1+incompatible
|
2021-10-06 18:30:24 +00:00
|
|
|
github.com/davecgh/go-spew v1.1.1
|
2022-04-21 11:23:36 +00:00
|
|
|
github.com/djherbis/times v1.5.0
|
2023-08-30 17:08:44 +00:00
|
|
|
github.com/dustin/go-humanize v1.0.1
|
2023-06-16 14:24:59 +00:00
|
|
|
github.com/gofrs/uuid v4.2.0+incompatible
|
2024-04-15 07:47:29 +00:00
|
|
|
github.com/golang/glog v1.2.0
|
|
|
|
github.com/golang/protobuf v1.5.4 // indirect
|
2022-04-21 11:23:36 +00:00
|
|
|
github.com/google/go-querystring v1.1.0
|
2023-06-26 21:54:40 +00:00
|
|
|
github.com/google/pprof v0.0.0-20230406165453-00490a63f317
|
2022-10-03 08:13:47 +00:00
|
|
|
github.com/gorilla/mux v1.8.0
|
2021-06-17 21:46:05 +00:00
|
|
|
github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645
|
2021-06-03 22:28:33 +00:00
|
|
|
github.com/hashicorp/go-multierror v1.1.1
|
2023-10-10 01:35:39 +00:00
|
|
|
github.com/hashicorp/hcl/v2 v2.17.0
|
2022-02-16 18:11:33 +00:00
|
|
|
github.com/iancoleman/strcase v0.2.0
|
2020-03-18 23:30:44 +00:00
|
|
|
github.com/ijc/Gotty v0.0.0-20170406111628-a8b993ba6abd
|
2022-11-08 23:35:18 +00:00
|
|
|
github.com/mitchellh/copystructure v1.2.0
|
Bump the go_modules group across 1 directory with 1 update (#15718)
Bumps the go_modules group with 1 update in the /pkg directory:
[github.com/moby/moby](https://github.com/moby/moby).
Updates `github.com/moby/moby` from 24.0.9+incompatible to
25.0.4+incompatible
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/moby/moby/releases">github.com/moby/moby's
releases</a>.</em></p>
<blockquote>
<h2>v25.0.4</h2>
<p>For a full list of pull requests and changes in this release, refer
to the relevant GitHub milestones:</p>
<ul>
<li><a
href="https://github.com/docker/cli/issues?q=is%3Aclosed+milestone%3A25.0.4">docker/cli,
25.0.4 milestone</a></li>
<li><a
href="https://github.com/moby/moby/issues?q=is%3Aclosed+milestone%3A25.0.4">moby/moby,
25.0.4 milestone</a></li>
<li>Deprecated and removed features, see <a
href="https://github.com/docker/cli/blob/v25.0.4/docs/deprecated.md">Deprecated
Features</a>.</li>
<li>Changes to the Engine API, see <a
href="https://github.com/moby/moby/blob/v25.0.4/docs/api/version-history.md">API
version history</a>.</li>
</ul>
<h3>Bug fixes and enhancements</h3>
<ul>
<li>Restore DNS names for containers in the default "nat"
network on Windows. <a
href="https://redirect.github.com/moby/moby/pull/47490">moby/moby#47490</a></li>
<li>Fix <code>docker start</code> failing when used with
<code>--checkpoint</code> <a
href="https://redirect.github.com/moby/moby/pull/47466">moby/moby#47466</a></li>
<li>Don't enforce new validation rules for existing swarm networks <a
href="https://redirect.github.com/moby/moby/pull/47482">moby/moby#47482</a></li>
<li>Restore IP connectivity between the host and containers on an
internal bridge network. <a
href="https://redirect.github.com/moby/moby/pull/47481">moby/moby#47481</a></li>
<li>Fix a regression introduced in v25.0 that prevented the classic
builder from ADDing a tar archive with xattrs created on a non-Linux OS
<a
href="https://redirect.github.com/moby/moby/pull/47483">moby/moby#47483</a></li>
<li>containerd image store: Fix image pull not emitting <code>Pulling fs
layer</code> status <a
href="https://redirect.github.com/moby/moby/pull/47484">moby/moby#47484</a></li>
</ul>
<h3>API</h3>
<ul>
<li>To preserve backwards compatibility, make read-only mounts not
recursive by default when using older clients (API version < v1.44).
<a
href="https://redirect.github.com/moby/moby/pull/47393">moby/moby#47393</a></li>
<li><code>GET /images/{id}/json</code> omits the <code>Created</code>
field (previously it was <code>0001-01-01T00:00:00Z</code>) if the
<code>Created</code> field is missing from the image config. <a
href="https://redirect.github.com/moby/moby/pull/47451">moby/moby#47451</a></li>
<li>Populate a missing <code>Created</code> field in <code>GET
/images/{id}/json</code> with <code>0001-01-01T00:00:00Z</code> for API
version <= 1.43. <a
href="https://redirect.github.com/moby/moby/pull/47387">moby/moby#47387</a></li>
<li>Fix a regression that caused API socket connection failures to
report an API version negotiation failure instead. <a
href="https://redirect.github.com/moby/moby/pull/47470">moby/moby#47470</a></li>
<li>Preserve supplied endpoint configuration in a container-create API
request, when a container-wide MAC address is specified, but
<code>NetworkMode</code> name-or-id is not the same as the name-or-id
used in <code>NetworkSettings.Networks</code>. <a
href="https://redirect.github.com/moby/moby/pull/47510">moby/moby#47510</a></li>
</ul>
<h3>Packaging updates</h3>
<ul>
<li>Upgrade Go runtime to <a
href="https://go.dev/doc/devel/release#go1.21.8">1.21.8</a>. <a
href="https://redirect.github.com/moby/moby/pull/47503">moby/moby#47503</a></li>
<li>Upgrade RootlessKit to <a
href="https://github.com/rootless-containers/rootlesskit/releases/tag/v2.0.2">v2.0.2</a>.
<a
href="https://redirect.github.com/moby/moby/pull/47508">moby/moby#47508</a></li>
<li>Upgrade Compose to <a
href="https://github.com/docker/compose/releases/tag/v2.24.7">v2.24.7</a>.
<a
href="https://redirect.github.com/docker/docker-ce-packaging/pull/998">docker/docker-ce-packaging#998</a></li>
<li>Upgrade Buildx to <a
href="https://github.com/docker/buildx/releases/tag/v0.13.0">v0.13.0</a>.
<a
href="https://redirect.github.com/docker/docker-ce-packaging/pull/997">docker/docker-ce-packaging#997</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/moby/moby/compare/v25.0.3...v25.0.4">https://github.com/moby/moby/compare/v25.0.3...v25.0.4</a></p>
<h2>v25.0.3</h2>
<h2>25.0.3</h2>
<p>For a full list of pull requests and changes in this release, refer
to the relevant GitHub milestones:</p>
<ul>
<li><a
href="https://github.com/docker/cli/issues?q=is%3Aclosed+milestone%3A25.0.3">docker/cli,
25.0.3 milestone</a></li>
<li><a
href="https://github.com/moby/moby/issues?q=is%3Aclosed+milestone%3A25.0.3">moby/moby,
25.0.3 milestone</a></li>
</ul>
<h2>What's Changed</h2>
<ul>
<li>[25.0 backport] pkg/ioutils: Make subsequent Close attempts noop <a
href="https://redirect.github.com/moby/moby/pull/47222">moby/moby#47222</a></li>
<li>[25.0 backport] Fix HasResource inverted boolean error - vendor
swarmkit v2.0.0-20240125134710-dcda100a8261 <a
href="https://redirect.github.com/moby/moby/pull/47225">moby/moby#47225</a></li>
<li>[25.0 backport] gha: update actions to account for node 16
deprecation <a
href="https://redirect.github.com/moby/moby/pull/47291">moby/moby#47291</a></li>
<li>[25.0 backport] docs: remove dead links from api verison history <a
href="https://redirect.github.com/moby/moby/pull/47296">moby/moby#47296</a></li>
<li>[25.0 backport] Assert temp output directory is not an empty string
<a
href="https://redirect.github.com/moby/moby/pull/47298">moby/moby#47298</a></li>
<li>[25.0 backport] api: Document <code>version</code> in
<code>/build</code> <a
href="https://redirect.github.com/moby/moby/pull/47295">moby/moby#47295</a></li>
<li>[25.0 backport] De-flake TestSwarmClusterRotateUnlockKey <a
href="https://redirect.github.com/moby/moby/pull/47201">moby/moby#47201</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/moby/moby/commit/061aa95809be396a6b5542618d8a34b02a21ff77"><code>061aa95</code></a>
Merge pull request <a
href="https://redirect.github.com/moby/moby/issues/47513">#47513</a>
from vvoland/v25.0-47498</li>
<li><a
href="https://github.com/moby/moby/commit/d0d85f6438af71ddd15d0441ec219daba192d4e5"><code>d0d85f6</code></a>
daemon: overlay2: remove world writable permission from the lower
file</li>
<li><a
href="https://github.com/moby/moby/commit/5d6679345c8a9eed569d358857c0b974031c26e5"><code>5d66793</code></a>
Merge pull request <a
href="https://redirect.github.com/moby/moby/issues/47508">#47508</a>
from vvoland/v25.0-47504</li>
<li><a
href="https://github.com/moby/moby/commit/ef1fa235cde1c2fdeeb26f9c6309421a3b23b846"><code>ef1fa23</code></a>
Merge pull request <a
href="https://redirect.github.com/moby/moby/issues/47510">#47510</a>
from akerouanton/25.0-47441_mac_addr_config_migration</li>
<li><a
href="https://github.com/moby/moby/commit/0451b287dc4bef2fe95ebc7628bb89e3f8b00fb3"><code>0451b28</code></a>
Don't create endpoint config for MAC addr config migration</li>
<li><a
href="https://github.com/moby/moby/commit/d27fe2558dcede92e30a7c4db0e779248d9b2c58"><code>d27fe25</code></a>
dockerd-rootless-setuptool.sh: check RootlessKit functionality</li>
<li><a
href="https://github.com/moby/moby/commit/77de535364e099a75ba5a1fe5a7e1ca6b2a3dad3"><code>77de535</code></a>
Dockerfile: update RootlessKit to v2.0.2</li>
<li><a
href="https://github.com/moby/moby/commit/9e526bc3943c9db4cc3ffc27586ecfba82e7d581"><code>9e526bc</code></a>
Merge pull request <a
href="https://redirect.github.com/moby/moby/issues/47503">#47503</a>
from vvoland/v25.0-47502</li>
<li><a
href="https://github.com/moby/moby/commit/2d347024d1ab2dea0a70a927fe6a6dd49e93b33d"><code>2d34702</code></a>
update to go1.21.8</li>
<li><a
href="https://github.com/moby/moby/commit/51e876cd964c4bb1f0a7c1bc24ecab9321b3ff1c"><code>51e876c</code></a>
Merge pull request <a
href="https://redirect.github.com/moby/moby/issues/47493">#47493</a>
from akerouanton/25.0-47370_windows_natnw_dns_test</li>
<li>Additional commits viewable in <a
href="https://github.com/moby/moby/compare/v24.0.9...v25.0.4">compare
view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/moby/moby&package-manager=go_modules&previous-version=24.0.9+incompatible&new-version=25.0.4+incompatible)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions
You can disable automated security fix PRs for this repo from the
[Security Alerts page](https://github.com/pulumi/pulumi/network/alerts).
</details>
---------
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Justin Van Patten <jvp@justinvp.com>
2024-03-18 14:57:43 +00:00
|
|
|
github.com/moby/moby v25.0.4+incompatible
|
2022-03-25 19:49:29 +00:00
|
|
|
github.com/moby/term v0.0.0-20210619224110-3f7ff695adc6
|
2020-03-18 23:30:44 +00:00
|
|
|
github.com/mxschmitt/golang-combinations v1.0.0
|
|
|
|
github.com/nbutton23/zxcvbn-go v0.0.0-20180912185939-ae427f1e4c1d
|
2022-04-21 11:23:36 +00:00
|
|
|
github.com/opentracing/opentracing-go v1.2.0
|
2020-06-17 21:02:45 +00:00
|
|
|
github.com/pgavlin/goldmark v1.1.33-0.20200616210433-b5eb04559386
|
2024-06-20 09:04:33 +00:00
|
|
|
github.com/pulumi/inflector v0.1.1
|
2024-08-05 20:02:26 +00:00
|
|
|
github.com/pulumi/pulumi/sdk/v3 v3.128.0
|
2021-09-20 19:00:42 +00:00
|
|
|
github.com/santhosh-tekuri/jsonschema/v5 v5.0.0
|
2024-04-25 14:30:00 +00:00
|
|
|
github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3
|
2024-03-28 00:03:58 +00:00
|
|
|
github.com/spf13/cobra v1.8.0
|
2022-03-28 13:43:56 +00:00
|
|
|
github.com/spf13/pflag v1.0.5
|
2024-04-25 14:30:00 +00:00
|
|
|
github.com/stretchr/testify v1.9.0
|
2020-07-27 19:57:51 +00:00
|
|
|
github.com/tweekmonster/luser v0.0.0-20161003172636-3fa38070dbd7
|
2020-03-18 23:30:44 +00:00
|
|
|
github.com/xeipuuv/gojsonschema v1.2.0
|
2023-06-07 21:50:45 +00:00
|
|
|
github.com/zclconf/go-cty v1.13.2
|
2024-04-15 07:47:29 +00:00
|
|
|
gocloud.dev v0.37.0
|
2024-05-21 06:49:44 +00:00
|
|
|
gocloud.dev/secrets/hashivault v0.37.0
|
2024-06-05 06:22:01 +00:00
|
|
|
golang.org/x/crypto v0.24.0 // indirect
|
|
|
|
golang.org/x/net v0.26.0
|
2024-04-15 07:47:29 +00:00
|
|
|
golang.org/x/oauth2 v0.18.0
|
2024-06-05 06:22:01 +00:00
|
|
|
golang.org/x/sync v0.7.0
|
2024-04-15 07:47:29 +00:00
|
|
|
google.golang.org/api v0.169.0
|
|
|
|
google.golang.org/genproto v0.0.0-20240311173647-c811ad7063a7
|
2024-04-25 14:30:00 +00:00
|
|
|
google.golang.org/grpc v1.63.2
|
2022-06-29 09:36:01 +00:00
|
|
|
gopkg.in/yaml.v3 v3.0.1
|
filestate: Add re-usable worker pool
The filestate backend's Upgrade method currently
does some manual goroutine management
to ensure that it uses a fixed number of goroutines
as it attempts to upgrade all stacks in parallel.
This was fine while the upgrade step was just one phase:
Roughly:
for _, stack := range stacks {
go upgrade(stack)
}
// Using a pool instead of a new goroutine for each upgrade.
However, this will not suffice with upcoming changes to address #12600
because the upgrade process will now have multiple phases:
gather information, fill missing information with a prompt, upgrade.
Only the first and last phases of this are parallelizable.
Attempting to do that using the existing pattern in Upgrade
will lead to code that is quite difficult to read,
so this change introduces a simple shared worker pool abstraction.
It operates like a mix of `sync.WaitGroup` and [errgroup][1].
Namely:
- supports multiple `Wait` and `Enqueue` phases (like WaitGroup)
- supports functions that return errors (like errgroup)
[1]: https://pkg.go.dev/golang.org/x/sync@v0.1.0/errgroup
This makes it very easy to adapt code that looks like the following:
wg := &errgroup.Group{}
for _, x := range xs {
x := x
wg.Go(func() error { return f(x) })
}
if err := wg.Wait(); err != nil {
return err
}
wg = &errgroup.Group{}
for _, y := range ys {
y := y
wg.Go(func() error { return f(y) })
}
if err := wg.Wait(); err != nil {
return err
}
Into the following:
pool := newWorkerPool(..)
defer pool.Close()
for _, x := range xs {
x := x
pool.Enqueue(func() error { return f(x) })
}
if err := pool.Wait(); err != nil {
return err
}
for _, y := range ys {
y := y
pool.Enqueue(func() error { return f(y) })
}
if err := pool.Wait(); err != nil {
return err
}
The workerPool-based version looks similar,
but it'll spawn a fixed number of goroutines once at the start
and re-use them for all tasks.
2023-04-12 19:13:47 +00:00
|
|
|
pgregory.net/rapid v0.6.1
|
2020-03-18 23:30:44 +00:00
|
|
|
)
|
2021-10-11 16:47:08 +00:00
|
|
|
|
2022-10-05 15:53:00 +00:00
|
|
|
require (
|
2024-04-15 07:47:29 +00:00
|
|
|
cloud.google.com/go/kms v1.15.7
|
2023-09-20 14:48:41 +00:00
|
|
|
github.com/AlecAivazis/survey/v2 v2.3.7
|
2024-06-19 18:18:35 +00:00
|
|
|
github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.6.0
|
2024-01-03 14:47:09 +00:00
|
|
|
github.com/Azure/azure-sdk-for-go/sdk/keyvault/azkeys v0.10.0
|
2023-05-02 17:20:28 +00:00
|
|
|
github.com/BurntSushi/toml v1.2.1
|
2023-06-01 15:37:55 +00:00
|
|
|
github.com/Netflix/go-expect v0.0.0-20220104043353-73e0943537d2
|
2023-11-22 05:04:14 +00:00
|
|
|
github.com/acarl005/stripansi v0.0.0-20180116102854-5a71ef0e047d
|
2024-04-12 09:34:53 +00:00
|
|
|
github.com/aws/aws-sdk-go-v2 v1.26.1
|
|
|
|
github.com/aws/aws-sdk-go-v2/config v1.27.11
|
|
|
|
github.com/aws/aws-sdk-go-v2/service/iam v1.31.4
|
|
|
|
github.com/aws/aws-sdk-go-v2/service/kms v1.30.1
|
|
|
|
github.com/aws/aws-sdk-go-v2/service/sts v1.28.6
|
2023-11-22 20:57:02 +00:00
|
|
|
github.com/charmbracelet/glamour v0.6.0
|
2023-06-01 15:37:55 +00:00
|
|
|
github.com/creack/pty v1.1.17
|
2023-12-03 23:20:43 +00:00
|
|
|
github.com/deckarep/golang-set/v2 v2.5.0
|
2022-10-05 15:53:00 +00:00
|
|
|
github.com/edsrzf/mmap-go v1.1.0
|
2023-11-22 05:04:14 +00:00
|
|
|
github.com/erikgeiser/promptkit v0.9.0
|
2024-04-25 14:30:00 +00:00
|
|
|
github.com/go-git/go-git/v5 v5.12.0
|
2023-09-12 15:34:03 +00:00
|
|
|
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510
|
2024-04-15 07:47:29 +00:00
|
|
|
github.com/google/uuid v1.6.0
|
2024-03-26 17:24:37 +00:00
|
|
|
github.com/hexops/autogold/v2 v2.2.1
|
2022-09-19 16:44:37 +00:00
|
|
|
github.com/hexops/gotextdiff v1.0.3
|
2023-06-01 15:37:55 +00:00
|
|
|
github.com/hinshun/vt10x v0.0.0-20220301184237-5011da428d02
|
2022-12-06 21:19:23 +00:00
|
|
|
github.com/json-iterator/go v1.1.12
|
cmd/stack output: Add --shell option
Adds a `--shell` option to `pulumi stack output`
that writes the outputs for a stack as a shell script.
% pulumi stack output --shell
bucketName=mybucket-1234
websiteURL="http://mybucket-1234.example.com"
The idea is that given:
% pulumi stack output
[..]
bucketName mybucket-1234
websiteURL http://mybucket-1234.example.com
A user will be able to do the following
in a shell script:
eval "$(pulumi stack output --shell)"
echo "Created bucket $bucketName"
# => Created bucket mybucket-1234
echo "Visit at $websiteURL"
# => Visit at http://mybucket-1234.example.com
If a user specifies a single property name,
only that will be written in the shell script.
eval "$(pulumi stack output --shell bucketName)"
echo "$bucketName"
Although that's no better than:
bucketName="$(pulumi stack output bucketName)"
Future improvements we could make here:
- Support multiple output names in `pulumi stack output`
so that users can use `--shell` for a subset of the variables
in one go (e.g. `pulumi stack outputs --shell bucketName websiteURL`).
I've created #11955 to discuss that.
- Add a flag that adds a prefix to each variable in the shell script.
This would be useful if multiple stacks are in play in the same
script.
Testing:
Besides unit tests that verify the exact output,
this change includes a fuzz test
that feeds the result of shell quoting a string into `bash`
and verifies that we get the original string back.
The test runs only if `bash` is available,
and we're on Go 1.18 or newer.
Note that the fuzz test will only run against the given sample inputs
and prior failures (if any) in CI.
To actually fuzz, you have to run:
```
go test -run '^$' -fuzz .
```
I ran this on my laptop for a couple minutes with no failures:
```
[..]
fuzz: elapsed: 3m9s, execs: 183179 (0/sec), new interesting: 18 (total: 83)
fuzz: elapsed: 3m12s, execs: 184258 (360/sec), new interesting: 18 (total: 83)
fuzz: elapsed: 3m15s, execs: 185176 (306/sec), new interesting: 18 (total: 83)
fuzz: elapsed: 3m18s, execs: 198128 (4317/sec), new interesting: 18 (total: 83)
fuzz: elapsed: 3m21s, execs: 202555 (1476/sec), new interesting: 18 (total: 83)
```
Resolves #2632
2023-01-21 01:55:50 +00:00
|
|
|
github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51
|
[cli] Reimplement the interactive renderer
The display pipleline looks like this:
╭──────╮
│Engine│
╰──────╯
⬇ engine events
╭────────────────╮
│Progress Display│
╰────────────────╯
⬇ display events: ticks, resource updates, system messages
╭─────────────────╮
│Progress Renderer│
╰─────────────────╯
⬇ text
╭────────╮
│Terminal│
╰────────╯
The existing implementation of the interactive Progress Renderer is broken
into two parts, the display renderer and the message renderer. The display
renderer converts display events into progress messages, each of which
generally represents a single line of text at a particular position in
the output. The message renderer converts progress messages into screen
updates by identifying whether or not the contents of a particular
message have changed and if so, re-rendering its output line. In
somewhat greater detail:
╭────────────────╮
│Display Renderer│
╰────────────────╯
⬇ convert resource rows into a tree table
⬇ convert the tree table and system messages into lines
⬇ convert each line into a progress message with an index
╭────────────────╮
│Message Renderer│
╰────────────────╯
⬇ if the line identified in a progress message has changed,
⬇ go to that line on the terminal, clear it, and update it
╭────────╮
│Terminal│
╰────────╯
This separation of concerns is unnecessary and makes it difficult to
understand where and when the terminal is updated. This approach also
makes it somewhat challenging to change the way in which the display
interacts with the terminal, as both the display renderer and the
message renderer need to e.g. understand terminal dimensions, movement,
etc.
These changes reimplement the interactive Progress Renderer using a
frame-oriented approach. The display is updated at 60 frame per second.
If nothing has happened to invalidate the display's contents (i.e. no
changes to the terminal geometry or the displayable contents have occurred),
then the frame is not redrawn. Otherwise, the contents of the display
are re-rendered and redrawn.
An advantage of this approach is that it made it relatively simple to
fix a long-standing issue with the interactive display: when the number
of rows in the output exceed the height of the terminal, the new
renderer clamps the output and allows the user to scroll the tree table
using the up and down arrow keys.
2022-10-31 14:59:14 +00:00
|
|
|
github.com/muesli/cancelreader v0.2.2
|
2022-10-05 15:53:00 +00:00
|
|
|
github.com/natefinch/atomic v1.0.1
|
[snapshot] Use a newer diff package
The version of gopls that gotextdiff is derived from is over three years
old. In the intervening time, the differ used by gopls has improved
tremendously, and the language has grown new features like generics.
These changes use a different diff package that is derived from an
up-to-date version of gopls and exposes an API that is parameterized
over the storage of the text. Taken together, this allows us to use a
much faster and more memory-efficient algorithm for diffing while
safely avoiding string copies when invoking the differ.
The more efficient algorithm operates on arbitrary slices whose elements
are comparable. Naive use of this algorithm--passing byte slices
in--can cause increased time spent diffing, as the sequences being
compared are longer. In order to avoid this, these changes record
spans of marshaled deployments as the deployments are marshaled. These
spans are strings that cover the diffable elements of the deployment:
its header, its resources, and its pending operations.
The output of the newer algorithm is converible to the format we
currently send to the service, so these changes should not require
service-side changes.
In order to avoid bumping the minimum Go version required to build the
`github.com/pulumi/pulumi/pkg/v3" and therefore break backwards
compatibility with consumers using older toolchains (e.g. providers),
these changes use the existing differ when built with a pre-1.20
toolchain. Official builds of the CLI are already using Go 1.20+ and
should use the new differ without additional changes.
These changes improve CPU time, allocation volume, and the compression
ratio by 57%, 87%, and 52%, respectively.
Benchmark results and analysis:
httpstate ❯ go test -count=10 -run none -benchmem -bench . | tee spanned.txt
httpstate ❯ benchstat buffer-pool.txt spanned.txt >stat.txt
```
│ buffer-pool.txt │ spanned.txt │
│ sec/op │ sec/op vs base │
DiffStack/1_x_2_B-10 45.09µ ± 1% 22.81µ ± 1% -49.41% (p=0.000 n=10)
DiffStack/2_x_2_B-10 79.49µ ± 1% 40.60µ ± 1% -48.93% (p=0.000 n=10)
DiffStack/4_x_2_B-10 172.54µ ± 2% 81.57µ ± 0% -52.72% (p=0.000 n=10)
DiffStack/8_x_2_B-10 455.4µ ± 1% 200.4µ ± 0% -56.00% (p=0.000 n=10)
DiffStack/16_x_2_B-10 1388.2µ ± 1% 575.1µ ± 1% -58.57% (p=0.000 n=10)
DiffStack/32_x_2_B-10 4.409m ± 1% 1.866m ± 0% -57.67% (p=0.000 n=10)
DiffStack/48_x_2_B-10 9.275m ± 0% 3.484m ± 0% -62.44% (p=0.000 n=10)
DiffStack/64_x_2_B-10 14.564m ± 0% 5.945m ± 1% -59.18% (p=0.000 n=10)
DiffStack/1_x_8.2_kB-10 124.81µ ± 1% 40.14µ ± 1% -67.84% (p=0.000 n=10)
DiffStack/2_x_8.2_kB-10 299.8µ ± 0% 121.8µ ± 1% -59.38% (p=0.000 n=10)
DiffStack/4_x_8.2_kB-10 846.2µ ± 1% 355.8µ ± 0% -57.96% (p=0.000 n=10)
DiffStack/8_x_8.2_kB-10 2.743m ± 1% 1.150m ± 0% -58.06% (p=0.000 n=10)
DiffStack/16_x_8.2_kB-10 9.271m ± 1% 4.041m ± 0% -56.41% (p=0.000 n=10)
DiffStack/32_x_8.2_kB-10 31.78m ± 0% 14.97m ± 0% -52.88% (p=0.000 n=10)
DiffStack/48_x_8.2_kB-10 66.14m ± 1% 30.66m ± 0% -53.63% (p=0.000 n=10)
DiffStack/64_x_8.2_kB-10 107.50m ± 0% 53.44m ± 0% -50.29% (p=0.000 n=10)
DiffStack/1_x_33_kB-10 240.51µ ± 1% 76.95µ ± 0% -68.01% (p=0.000 n=10)
DiffStack/2_x_33_kB-10 798.5µ ± 0% 310.6µ ± 0% -61.10% (p=0.000 n=10)
DiffStack/4_x_33_kB-10 2451.9µ ± 1% 978.9µ ± 3% -60.08% (p=0.000 n=10)
DiffStack/8_x_33_kB-10 8.258m ± 0% 3.731m ± 0% -54.82% (p=0.000 n=10)
DiffStack/16_x_33_kB-10 28.29m ± 1% 12.77m ± 0% -54.85% (p=0.000 n=10)
DiffStack/32_x_33_kB-10 104.11m ± 1% 44.84m ± 1% -56.93% (p=0.000 n=10)
DiffStack/48_x_33_kB-10 199.73m ± 1% 95.87m ± 1% -52.00% (p=0.000 n=10)
DiffStack/64_x_33_kB-10 339.6m ± 2% 159.2m ± 2% -53.12% (p=0.000 n=10)
DiffStack/2_x_131_kB-10 2721.7µ ± 0% 984.3µ ± 0% -63.84% (p=0.000 n=10)
DiffStack/4_x_131_kB-10 8.334m ± 1% 3.654m ± 2% -56.15% (p=0.000 n=10)
DiffStack/8_x_131_kB-10 25.89m ± 0% 12.23m ± 0% -52.77% (p=0.000 n=10)
DiffStack/16_x_131_kB-10 87.49m ± 1% 40.26m ± 0% -53.98% (p=0.000 n=10)
DiffStack/32_x_131_kB-10 317.0m ± 5% 150.4m ± 0% -52.57% (p=0.000 n=10)
DiffStack/48_x_131_kB-10 681.8m ± 1% 332.1m ± 0% -51.28% (p=0.000 n=10)
DiffStack/64_x_131_kB-10 1190.4m ± 1% 583.1m ± 0% -51.01% (p=0.000 n=10)
DiffStack/1_x_524_kB-10 3.215m ± 0% 1.086m ± 0% -66.21% (p=0.000 n=10)
DiffStack/2_x_524_kB-10 9.676m ± 1% 3.994m ± 0% -58.72% (p=0.000 n=10)
DiffStack/4_x_524_kB-10 29.84m ± 0% 12.88m ± 1% -56.84% (p=0.000 n=10)
DiffStack/8_x_524_kB-10 92.11m ± 1% 42.35m ± 0% -54.02% (p=0.000 n=10)
DiffStack/16_x_524_kB-10 322.1m ± 0% 154.0m ± 0% -52.19% (p=0.000 n=10)
DiffStackRecorded/two-large-checkpoints.json-10 54.73m ± 1% 22.63m ± 0% -58.65% (p=0.000 n=10)
DiffStackRecorded/checkpoints.json-10 815.1m ± 0% 395.5m ± 2% -51.48% (p=0.000 n=10)
geomean 10.45m 4.530m -56.65%
│ buffer-pool.txt │ spanned.txt │
│ checkpoint_bytes │ checkpoint_bytes vs base │
DiffStack/1_x_2_B-10 2.539k ± 0% 1.950k ± 0% -23.20% (p=0.000 n=10)
DiffStack/2_x_2_B-10 5.201k ± 0% 4.548k ± 0% -12.56% (p=0.000 n=10)
DiffStack/4_x_2_B-10 13.63k ± 0% 12.30k ± 0% -9.77% (p=0.000 n=10)
DiffStack/8_x_2_B-10 45.09k ± 0% 42.86k ± 0% -4.95% (p=0.000 n=10)
DiffStack/16_x_2_B-10 161.9k ± 0% 156.4k ± 0% -3.42% (p=0.000 n=10)
DiffStack/32_x_2_B-10 579.8k ± 0% 604.2k ± 0% +4.21% (p=0.000 n=10)
DiffStack/48_x_2_B-10 1.306M ± 0% 1.180M ± 0% -9.68% (p=0.000 n=10)
DiffStack/64_x_2_B-10 2.164M ± 0% 2.134M ± 0% -1.36% (p=0.000 n=10)
DiffStack/1_x_8.2_kB-10 27.109k ± 0% 9.856k ± 0% -63.64% (p=0.000 n=10)
DiffStack/2_x_8.2_kB-10 78.91k ± 0% 61.59k ± 0% -21.94% (p=0.000 n=10)
DiffStack/4_x_8.2_kB-10 284.2k ± 0% 258.3k ± 0% -9.13% (p=0.000 n=10)
DiffStack/8_x_8.2_kB-10 1.119M ± 0% 1.041M ± 0% -6.89% (p=0.000 n=10)
DiffStack/16_x_8.2_kB-10 4.389M ± 0% 4.201M ± 0% -4.29% (p=0.000 n=10)
DiffStack/32_x_8.2_kB-10 16.74M ± 0% 17.06M ± 0% +1.95% (p=0.000 n=10)
DiffStack/48_x_8.2_kB-10 36.30M ± 0% 35.93M ± 0% -1.00% (p=0.000 n=10)
DiffStack/64_x_8.2_kB-10 60.98M ± 0% 64.06M ± 0% +5.05% (p=0.000 n=10)
DiffStack/1_x_33_kB-10 67.79k ± 0% 34.43k ± 0% -49.20% (p=0.000 n=10)
DiffStack/2_x_33_kB-10 300.1k ± 0% 233.6k ± 0% -22.15% (p=0.000 n=10)
DiffStack/4_x_33_kB-10 1128.3k ± 0% 929.5k ± 0% -17.62% (p=0.000 n=10)
DiffStack/8_x_33_kB-10 4.437M ± 0% 4.238M ± 0% -4.49% (p=0.000 n=10)
DiffStack/16_x_33_kB-10 16.57M ± 0% 15.78M ± 0% -4.79% (p=0.000 n=10)
DiffStack/32_x_33_kB-10 64.35M ± 0% 58.66M ± 0% -8.84% (p=0.000 n=10)
DiffStack/48_x_33_kB-10 127.0M ± 0% 128.0M ± 0% +0.80% (p=0.000 n=10)
DiffStack/64_x_33_kB-10 217.7M ± 0% 216.5M ± 0% -0.54% (p=0.000 n=10)
DiffStack/2_x_131_kB-10 1316.2k ± 0% 921.8k ± 0% -29.97% (p=0.000 n=10)
DiffStack/4_x_131_kB-10 4.733M ± 0% 4.207M ± 0% -11.11% (p=0.000 n=10)
DiffStack/8_x_131_kB-10 16.03M ± 0% 15.77M ± 0% -1.64% (p=0.000 n=10)
DiffStack/16_x_131_kB-10 57.42M ± 0% 54.66M ± 0% -4.81% (p=0.000 n=10)
DiffStack/32_x_131_kB-10 214.8M ± 0% 210.7M ± 0% -1.90% (p=0.000 n=10)
DiffStack/48_x_131_kB-10 472.9M ± 0% 466.9M ± 0% -1.28% (p=0.000 n=10)
DiffStack/64_x_131_kB-10 832.3M ± 0% 824.7M ± 0% -0.92% (p=0.000 n=10)
DiffStack/1_x_524_kB-10 1.575M ± 0% 1.051M ± 0% -33.32% (p=0.000 n=10)
DiffStack/2_x_524_kB-10 5.248M ± 0% 4.199M ± 0% -20.00% (p=0.000 n=10)
DiffStack/4_x_524_kB-10 18.36M ± 0% 15.74M ± 0% -14.28% (p=0.000 n=10)
DiffStack/8_x_524_kB-10 60.86M ± 0% 56.66M ± 0% -6.90% (p=0.000 n=10)
DiffStack/16_x_524_kB-10 223.5M ± 0% 214.0M ± 0% -4.23% (p=0.000 n=10)
DiffStackRecorded/two-large-checkpoints.json-10 13.21M ± 0% 13.20M ± 0% -0.01% (p=0.000 n=10)
DiffStackRecorded/checkpoints.json-10 155.9M ± 0% 154.9M ± 0% -0.60% (p=0.000 n=10)
geomean 3.606M 3.173M -12.01%
│ buffer-pool.txt │ spanned.txt │
│ ratio │ ratio vs base │
DiffStack/1_x_2_B-10 789.5m ± 0% 1641.0m ± 0% +107.85% (p=0.000 n=10)
DiffStack/2_x_2_B-10 1.034 ± 0% 2.353 ± 0% +127.56% (p=0.000 n=10)
DiffStack/4_x_2_B-10 1.575 ± 0% 3.592 ± 0% +128.06% (p=0.000 n=10)
DiffStack/8_x_2_B-10 2.829 ± 0% 6.684 ± 0% +136.27% (p=0.000 n=10)
DiffStack/16_x_2_B-10 5.296 ± 0% 12.610 ± 0% +138.10% (p=0.000 n=10)
DiffStack/32_x_2_B-10 9.681 ± 0% 24.790 ± 0% +156.07% (p=0.000 n=10)
DiffStack/48_x_2_B-10 14.65 ± 0% 32.44 ± 0% +121.43% (p=0.000 n=10)
DiffStack/64_x_2_B-10 18.26 ± 0% 44.11 ± 0% +141.57% (p=0.000 n=10)
DiffStack/1_x_8.2_kB-10 1.383 ± 0% 1.051 ± 0% -24.01% (p=0.000 n=10)
DiffStack/2_x_8.2_kB-10 1.716 ± 0% 2.324 ± 0% +35.43% (p=0.000 n=10)
DiffStack/4_x_8.2_kB-10 2.878 ± 0% 4.251 ± 0% +47.71% (p=0.000 n=10)
DiffStack/8_x_8.2_kB-10 5.475 ± 0% 8.056 ± 0% +47.14% (p=0.000 n=10)
DiffStack/16_x_8.2_kB-10 10.56 ± 0% 15.77 ± 0% +49.34% (p=0.000 n=10)
DiffStack/32_x_8.2_kB-10 19.97 ± 0% 31.57 ± 0% +58.09% (p=0.000 n=10)
DiffStack/48_x_8.2_kB-10 28.80 ± 0% 44.11 ± 0% +53.16% (p=0.000 n=10)
DiffStack/64_x_8.2_kB-10 36.23 ± 0% 58.84 ± 0% +62.41% (p=0.000 n=10)
DiffStack/1_x_33_kB-10 986.0m ± 0% 1014.0m ± 0% +2.84% (p=0.000 n=10)
DiffStack/2_x_33_kB-10 1.777 ± 0% 2.331 ± 0% +31.18% (p=0.000 n=10)
DiffStack/4_x_33_kB-10 3.057 ± 0% 3.993 ± 0% +30.62% (p=0.000 n=10)
DiffStack/8_x_33_kB-10 5.766 ± 0% 8.511 ± 0% +47.61% (p=0.000 n=10)
DiffStack/16_x_33_kB-10 10.55 ± 0% 15.35 ± 0% +45.50% (p=0.000 n=10)
DiffStack/32_x_33_kB-10 20.28 ± 0% 28.08 ± 0% +38.46% (p=0.000 n=10)
DiffStack/48_x_33_kB-10 26.59 ± 0% 40.64 ± 0% +52.84% (p=0.000 n=10)
DiffStack/64_x_33_kB-10 34.14 ± 0% 51.44 ± 0% +50.67% (p=0.000 n=10)
DiffStack/2_x_131_kB-10 1.993 ± 0% 2.333 ± 0% +17.06% (p=0.000 n=10)
DiffStack/4_x_131_kB-10 3.263 ± 0% 4.569 ± 0% +40.02% (p=0.000 n=10)
DiffStack/8_x_131_kB-10 5.291 ± 0% 7.995 ± 0% +51.11% (p=0.000 n=10)
DiffStack/16_x_131_kB-10 9.275 ± 0% 13.410 ± 0% +44.58% (p=0.000 n=10)
DiffStack/32_x_131_kB-10 17.17 ± 0% 25.44 ± 0% +48.17% (p=0.000 n=10)
DiffStack/48_x_131_kB-10 25.11 ± 0% 37.39 ± 0% +48.90% (p=0.000 n=10)
DiffStack/64_x_131_kB-10 33.09 ± 0% 49.40 ± 0% +49.29% (p=0.000 n=10)
DiffStack/1_x_524_kB-10 1.498 ± 0% 1.999 ± 0% +33.44% (p=0.000 n=10)
DiffStack/2_x_524_kB-10 1.998 ± 0% 2.666 ± 0% +33.43% (p=0.000 n=10)
DiffStack/4_x_524_kB-10 3.180 ± 0% 4.285 ± 0% +34.75% (p=0.000 n=10)
DiffStack/8_x_524_kB-10 5.040 ± 0% 7.199 ± 0% +42.84% (p=0.000 n=10)
DiffStack/16_x_524_kB-10 9.058 ± 0% 13.160 ± 0% +45.29% (p=0.000 n=10)
DiffStackRecorded/two-large-checkpoints.json-10 1.997 ± 0% 1.999 ± 0% +0.10% (p=0.000 n=10)
DiffStackRecorded/checkpoints.json-10 36.60 ± 0% 40.42 ± 0% +10.44% (p=0.000 n=10)
geomean 5.993 9.122 +52.20%
│ buffer-pool.txt │ spanned.txt │
│ wire_bytes │ wire_bytes vs base │
DiffStack/1_x_2_B-10 3.216k ± 0% 1.188k ± 0% -63.06% (p=0.000 n=10)
DiffStack/2_x_2_B-10 5.031k ± 0% 1.933k ± 0% -61.58% (p=0.000 n=10)
DiffStack/4_x_2_B-10 8.655k ± 0% 3.424k ± 0% -60.44% (p=0.000 n=10)
DiffStack/8_x_2_B-10 15.938k ± 0% 6.412k ± 0% -59.77% (p=0.000 n=10)
DiffStack/16_x_2_B-10 30.58k ± 0% 12.40k ± 0% -59.45% (p=0.000 n=10)
DiffStack/32_x_2_B-10 59.89k ± 0% 24.37k ± 0% -59.31% (p=0.000 n=10)
DiffStack/48_x_2_B-10 89.17k ± 0% 36.38k ± 0% -59.21% (p=0.000 n=10)
DiffStack/64_x_2_B-10 118.48k ± 0% 48.39k ± 0% -59.16% (p=0.000 n=10)
DiffStack/1_x_8.2_kB-10 19.596k ± 0% 9.378k ± 0% -52.14% (p=0.000 n=10)
DiffStack/2_x_8.2_kB-10 45.98k ± 0% 26.50k ± 0% -42.36% (p=0.000 n=10)
DiffStack/4_x_8.2_kB-10 98.75k ± 0% 60.76k ± 0% -38.47% (p=0.000 n=10)
DiffStack/8_x_8.2_kB-10 204.3k ± 0% 129.3k ± 0% -36.72% (p=0.000 n=10)
DiffStack/16_x_8.2_kB-10 415.5k ± 0% 266.3k ± 0% -35.91% (p=0.000 n=10)
DiffStack/32_x_8.2_kB-10 837.9k ± 0% 540.4k ± 0% -35.50% (p=0.000 n=10)
DiffStack/48_x_8.2_kB-10 1260.4k ± 0% 814.6k ± 0% -35.37% (p=0.000 n=10)
DiffStack/64_x_8.2_kB-10 1.683M ± 0% 1.089M ± 0% -35.31% (p=0.000 n=10)
DiffStack/1_x_33_kB-10 68.75k ± 0% 33.95k ± 0% -50.61% (p=0.000 n=10)
DiffStack/2_x_33_kB-10 168.9k ± 0% 100.2k ± 0% -40.64% (p=0.000 n=10)
DiffStack/4_x_33_kB-10 369.1k ± 0% 232.8k ± 0% -36.93% (p=0.000 n=10)
DiffStack/8_x_33_kB-10 769.6k ± 0% 497.9k ± 0% -35.30% (p=0.000 n=10)
DiffStack/16_x_33_kB-10 1.571M ± 0% 1.028M ± 0% -34.53% (p=0.000 n=10)
DiffStack/32_x_33_kB-10 3.173M ± 0% 2.089M ± 0% -34.16% (p=0.000 n=10)
DiffStack/48_x_33_kB-10 4.775M ± 0% 3.149M ± 0% -34.04% (p=0.000 n=10)
DiffStack/64_x_33_kB-10 6.377M ± 0% 4.210M ± 0% -33.98% (p=0.000 n=10)
DiffStack/2_x_131_kB-10 660.4k ± 0% 395.1k ± 0% -40.16% (p=0.000 n=10)
DiffStack/4_x_131_kB-10 1450.4k ± 0% 920.9k ± 0% -36.51% (p=0.000 n=10)
DiffStack/8_x_131_kB-10 3.031M ± 0% 1.972M ± 0% -34.91% (p=0.000 n=10)
DiffStack/16_x_131_kB-10 6.191M ± 0% 4.076M ± 0% -34.17% (p=0.000 n=10)
DiffStack/32_x_131_kB-10 12.512M ± 0% 8.282M ± 0% -33.81% (p=0.000 n=10)
DiffStack/48_x_131_kB-10 18.83M ± 0% 12.49M ± 0% -33.69% (p=0.000 n=10)
DiffStack/64_x_131_kB-10 25.15M ± 0% 16.69M ± 0% -33.63% (p=0.000 n=10)
DiffStack/1_x_524_kB-10 1051.8k ± 0% 525.5k ± 0% -50.04% (p=0.000 n=10)
DiffStack/2_x_524_kB-10 2.626M ± 0% 1.575M ± 0% -40.04% (p=0.000 n=10)
DiffStack/4_x_524_kB-10 5.776M ± 0% 3.673M ± 0% -36.40% (p=0.000 n=10)
DiffStack/8_x_524_kB-10 12.075M ± 0% 7.871M ± 0% -34.82% (p=0.000 n=10)
DiffStack/16_x_524_kB-10 24.67M ± 0% 16.27M ± 0% -34.07% (p=0.000 n=10)
DiffStackRecorded/two-large-checkpoints.json-10 6.612M ± 0% 6.606M ± 0% -0.10% (p=0.000 n=10)
DiffStackRecorded/checkpoints.json-10 4.259M ± 0% 3.833M ± 0% -10.00% (p=0.000 n=10)
geomean 601.7k 347.8k -42.19%
│ buffer-pool.txt │ spanned.txt │
│ B/op │ B/op vs base │
DiffStack/1_x_2_B-10 31.85Ki ± 0% 15.79Ki ± 0% -50.42% (p=0.000 n=10)
DiffStack/2_x_2_B-10 61.81Ki ± 0% 28.01Ki ± 0% -54.68% (p=0.000 n=10)
DiffStack/4_x_2_B-10 147.58Ki ± 0% 55.60Ki ± 0% -62.33% (p=0.000 n=10)
DiffStack/8_x_2_B-10 425.9Ki ± 0% 116.9Ki ± 0% -72.55% (p=0.000 n=10)
DiffStack/16_x_2_B-10 1429.9Ki ± 0% 307.8Ki ± 0% -78.47% (p=0.000 n=10)
DiffStack/32_x_2_B-10 4955.7Ki ± 0% 934.1Ki ± 0% -81.15% (p=0.000 n=10)
DiffStack/48_x_2_B-10 10.746Mi ± 0% 1.682Mi ± 0% -84.34% (p=0.000 n=10)
DiffStack/64_x_2_B-10 17.664Mi ± 0% 2.822Mi ± 0% -84.03% (p=0.000 n=10)
DiffStack/1_x_8.2_kB-10 202.50Ki ± 0% 41.18Ki ± 0% -79.66% (p=0.000 n=10)
DiffStack/2_x_8.2_kB-10 511.5Ki ± 0% 134.1Ki ± 0% -73.78% (p=0.000 n=10)
DiffStack/4_x_8.2_kB-10 1513.5Ki ± 0% 309.4Ki ± 0% -79.56% (p=0.000 n=10)
DiffStack/8_x_8.2_kB-10 4886.0Ki ± 0% 674.2Ki ± 0% -86.20% (p=0.000 n=10)
DiffStack/16_x_8.2_kB-10 16.287Mi ± 0% 1.427Mi ± 0% -91.24% (p=0.000 n=10)
DiffStack/32_x_8.2_kB-10 57.541Mi ± 0% 3.198Mi ± 0% -94.44% (p=0.000 n=10)
DiffStack/48_x_8.2_kB-10 121.703Mi ± 0% 5.810Mi ± 0% -95.23% (p=0.000 n=10)
DiffStack/64_x_8.2_kB-10 200.588Mi ± 0% 7.495Mi ± 0% -96.26% (p=0.000 n=10)
DiffStack/1_x_33_kB-10 562.5Ki ± 0% 136.3Ki ± 0% -75.78% (p=0.000 n=10)
DiffStack/2_x_33_kB-10 2041.0Ki ± 0% 505.5Ki ± 0% -75.23% (p=0.000 n=10)
DiffStack/4_x_33_kB-10 5.874Mi ± 0% 1.129Mi ± 0% -80.78% (p=0.000 n=10)
DiffStack/8_x_33_kB-10 18.837Mi ± 0% 2.410Mi ± 0% -87.21% (p=0.000 n=10)
DiffStack/16_x_33_kB-10 61.898Mi ± 0% 5.015Mi ± 0% -91.90% (p=0.000 n=10)
DiffStack/32_x_33_kB-10 221.69Mi ± 0% 10.36Mi ± 0% -95.32% (p=0.000 n=10)
DiffStack/48_x_33_kB-10 430.13Mi ± 0% 18.50Mi ± 0% -95.70% (p=0.000 n=10)
DiffStack/64_x_33_kB-10 722.07Mi ± 0% 21.63Mi ± 0% -97.00% (p=0.000 n=10)
DiffStack/2_x_131_kB-10 8.098Mi ± 0% 1.656Mi ± 0% -79.55% (p=0.000 n=10)
DiffStack/4_x_131_kB-10 22.662Mi ± 0% 3.934Mi ± 0% -82.64% (p=0.000 n=10)
DiffStack/8_x_131_kB-10 65.217Mi ± 0% 8.425Mi ± 0% -87.08% (p=0.000 n=10)
DiffStack/16_x_131_kB-10 204.90Mi ± 0% 17.22Mi ± 1% -91.60% (p=0.000 n=10)
DiffStack/32_x_131_kB-10 703.12Mi ± 0% 34.89Mi ± 0% -95.04% (p=0.000 n=10)
DiffStack/48_x_131_kB-10 1505.36Mi ± 0% 61.24Mi ± 0% -95.93% (p=0.000 n=10)
DiffStack/64_x_131_kB-10 2586.04Mi ± 0% 70.48Mi ± 1% -97.27% (p=0.000 n=10)
DiffStack/1_x_524_kB-10 11.854Mi ± 1% 2.127Mi ± 0% -82.06% (p=0.000 n=10)
DiffStack/2_x_524_kB-10 32.932Mi ± 1% 6.558Mi ± 1% -80.09% (p=0.000 n=10)
DiffStack/4_x_524_kB-10 90.04Mi ± 0% 15.15Mi ± 0% -83.17% (p=0.000 n=10)
DiffStack/8_x_524_kB-10 252.94Mi ± 0% 32.27Mi ± 1% -87.24% (p=0.000 n=10)
DiffStack/16_x_524_kB-10 801.77Mi ± 0% 66.46Mi ± 1% -91.71% (p=0.000 n=10)
DiffStackRecorded/two-large-checkpoints.json-10 103.67Mi ± 0% 35.52Mi ± 0% -65.74% (p=0.000 n=10)
DiffStackRecorded/checkpoints.json-10 913.90Mi ± 0% 53.53Mi ± 1% -94.14% (p=0.000 n=10)
geomean 19.16Mi 2.409Mi -87.43%
│ buffer-pool.txt │ spanned.txt │
│ allocs/op │ allocs/op vs base │
DiffStack/1_x_2_B-10 344.0 ± 0% 184.0 ± 0% -46.51% (p=0.000 n=10)
DiffStack/2_x_2_B-10 616.0 ± 0% 295.0 ± 0% -52.11% (p=0.000 n=10)
DiffStack/4_x_2_B-10 1381.0 ± 0% 524.0 ± 0% -62.06% (p=0.000 n=10)
DiffStack/8_x_2_B-10 3.922k ± 0% 1.032k ± 0% -73.69% (p=0.000 n=10)
DiffStack/16_x_2_B-10 12.791k ± 0% 2.233k ± 0% -82.54% (p=0.000 n=10)
DiffStack/32_x_2_B-10 43.416k ± 0% 5.410k ± 0% -87.54% (p=0.000 n=10)
DiffStack/48_x_2_B-10 95.803k ± 0% 9.036k ± 0% -90.57% (p=0.000 n=10)
DiffStack/64_x_2_B-10 156.99k ± 0% 13.99k ± 0% -91.09% (p=0.000 n=10)
DiffStack/1_x_8.2_kB-10 335.0 ± 0% 182.0 ± 0% -45.67% (p=0.000 n=10)
DiffStack/2_x_8.2_kB-10 597.5 ± 0% 295.0 ± 0% -50.63% (p=0.000 n=10)
DiffStack/4_x_8.2_kB-10 1304.0 ± 0% 527.0 ± 0% -59.59% (p=0.000 n=10)
DiffStack/8_x_8.2_kB-10 3.475k ± 0% 1.036k ± 0% -70.19% (p=0.000 n=10)
DiffStack/16_x_8.2_kB-10 10.677k ± 0% 2.239k ± 0% -79.03% (p=0.000 n=10)
DiffStack/32_x_8.2_kB-10 35.357k ± 0% 5.414k ± 0% -84.69% (p=0.000 n=10)
DiffStack/48_x_8.2_kB-10 72.782k ± 0% 9.296k ± 0% -87.23% (p=0.000 n=10)
DiffStack/64_x_8.2_kB-10 119.24k ± 0% 14.26k ± 0% -88.04% (p=0.000 n=10)
DiffStack/1_x_33_kB-10 309.0 ± 0% 182.0 ± 0% -41.10% (p=0.000 n=10)
DiffStack/2_x_33_kB-10 594.0 ± 0% 296.0 ± 0% -50.17% (p=0.000 n=10)
DiffStack/4_x_33_kB-10 1324.5 ± 0% 528.0 ± 0% -60.14% (p=0.000 n=10)
DiffStack/8_x_33_kB-10 3.554k ± 0% 1.047k ± 0% -70.54% (p=0.000 n=10)
DiffStack/16_x_33_kB-10 10.511k ± 0% 2.232k ± 0% -78.77% (p=0.000 n=10)
DiffStack/32_x_33_kB-10 35.147k ± 0% 5.194k ± 0% -85.22% (p=0.000 n=10)
DiffStack/48_x_33_kB-10 66.519k ± 0% 8.958k ± 0% -86.53% (p=0.000 n=10)
DiffStack/64_x_33_kB-10 110.71k ± 0% 13.28k ± 0% -88.00% (p=0.000 n=10)
DiffStack/2_x_131_kB-10 644.0 ± 0% 296.0 ± 0% -54.04% (p=0.000 n=10)
DiffStack/4_x_131_kB-10 1418.5 ± 0% 535.0 ± 0% -62.28% (p=0.000 n=10)
DiffStack/8_x_131_kB-10 3.497k ± 0% 1.047k ± 0% -70.06% (p=0.000 n=10)
DiffStack/16_x_131_kB-10 9.805k ± 0% 2.182k ± 0% -77.75% (p=0.000 n=10)
DiffStack/32_x_131_kB-10 30.996k ± 0% 5.040k ± 0% -83.74% (p=0.000 n=10)
DiffStack/48_x_131_kB-10 63.751k ± 0% 8.656k ± 0% -86.42% (p=0.000 n=10)
DiffStack/64_x_131_kB-10 107.97k ± 0% 13.03k ± 0% -87.93% (p=0.000 n=10)
DiffStack/1_x_524_kB-10 356.0 ± 0% 186.0 ± 0% -47.75% (p=0.000 n=10)
DiffStack/2_x_524_kB-10 671.0 ± 0% 300.0 ± 0% -55.29% (p=0.000 n=10)
DiffStack/4_x_524_kB-10 1467.5 ± 0% 536.0 ± 0% -63.48% (p=0.000 n=10)
DiffStack/8_x_524_kB-10 3.553k ± 0% 1.038k ± 0% -70.80% (p=0.000 n=10)
DiffStack/16_x_524_kB-10 9.971k ± 0% 2.182k ± 0% -78.12% (p=0.000 n=10)
DiffStackRecorded/two-large-checkpoints.json-10 489.16k ± 0% 73.65k ± 0% -84.94% (p=0.000 n=10)
DiffStackRecorded/checkpoints.json-10 7236.9k ± 0% 857.8k ± 0% -88.15% (p=0.000 n=10)
geomean 7.989k 1.934k -75.79%
```
2023-05-05 02:15:09 +00:00
|
|
|
github.com/pgavlin/diff v0.0.0-20230503175810-113847418e2e
|
2024-02-16 00:00:36 +00:00
|
|
|
github.com/pgavlin/fx v0.1.6
|
2024-04-15 07:47:29 +00:00
|
|
|
github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c
|
2023-06-29 19:32:00 +00:00
|
|
|
github.com/pkg/errors v0.9.1
|
2023-11-30 14:21:35 +00:00
|
|
|
github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231
|
2024-06-05 06:22:01 +00:00
|
|
|
github.com/pulumi/esc v0.9.1
|
2024-08-05 22:40:45 +00:00
|
|
|
github.com/pulumi/pulumi-java/pkg v0.13.0
|
2024-07-11 22:33:05 +00:00
|
|
|
github.com/pulumi/pulumi-yaml v1.9.1
|
2022-10-05 15:53:00 +00:00
|
|
|
github.com/segmentio/encoding v0.3.5
|
|
|
|
github.com/shirou/gopsutil/v3 v3.22.3
|
2023-03-16 11:14:49 +00:00
|
|
|
github.com/spf13/afero v1.9.5
|
2024-04-15 07:47:29 +00:00
|
|
|
go.opentelemetry.io/otel v1.24.0
|
Add InstrumentationScope to otelSpan (#15451)
# Description
Re https://github.com/pulumi/pulumi/pull/15439
I was trying out the `--otel` flag for trace export and got a nil
pointer in `span.InstrumentationScope`
```
Pulumi Version: 3.106.1-dev.0
Go Version: go1.21.7
Go Compiler: gc
Architecture: arm64
Operating System: darwin
Panic: runtime error: invalid memory address or nil pointer dereference
goroutine 1 [running]:
runtime/debug.Stack()
/opt/homebrew/Cellar/go/1.21.7/libexec/src/runtime/debug/stack.go:24 +0x64
main.panicHandler(0x1400231feff)
/Users/julien/Projects/pulumi/pulumi/pkg/cmd/pulumi/main.go:35 +0x44
panic({0x107033d20?, 0x1087b94c0?})
/opt/homebrew/Cellar/go/1.21.7/libexec/src/runtime/panic.go:914 +0x218
main.(*otelSpan).InstrumentationScope(0x1072ffe40?)
<autogenerated>:1 +0x34
go.opentelemetry.io/otel/exporters/otlp/otlptrace/internal/tracetransform.Spans({0x140015a3000, 0x1, 0x1?})
/Users/julien/Projects/go/pkg/mod/go.opentelemetry.io/otel/exporters/otlp/otlptrace@v1.19.0/internal/tracetransform/span.go:51 +0x168
go.opentelemetry.io/otel/exporters/otlp/otlptrace.(*Exporter).ExportSpans(0x14002000050, {0x107482ec8, 0x1089ffe20}, {0x140015a3000?, 0x1400231fb08?, 0x1?})
/Users/julien/Projects/go/pkg/mod/go.opentelemetry.io/otel/exporters/otlp/otlptrace@v1.19.0/exporter.go:44 +0x38
main.exportTraceToOtel({0x10745ae08, 0x140015155a0}, 0x1)
/Users/julien/Projects/pulumi/pulumi/pkg/cmd/pulumi/convert-trace.go:645 +0x3c0
main.newConvertTraceCmd.func1(0x0?, {0x14001515540, 0x1, 0x0?})
/Users/julien/Projects/pulumi/pulumi/pkg/cmd/pulumi/convert-trace.go:677 +0xf8
main.newConvertTraceCmd.RunFunc.func2(0x0?, {0x14001515540?, 0x0?, 0x0?})
/Users/julien/Projects/pulumi/pulumi/sdk/go/common/util/cmdutil/exit.go:99 +0x28
main.newConvertTraceCmd.RunFunc.RunResultFunc.func5(0x1400157a900?, {0x14001515540, 0x1, 0x2})
/Users/julien/Projects/pulumi/pulumi/sdk/go/common/util/cmdutil/exit.go:115 +0x34
github.com/spf13/cobra.(*Command).execute(0x14001592600, {0x14001515520, 0x2, 0x2})
/Users/julien/Projects/go/pkg/mod/github.com/spf13/cobra@v1.7.0/command.go:944 +0x654
github.com/spf13/cobra.(*Command).ExecuteC(0x14000d5f800)
/Users/julien/Projects/go/pkg/mod/github.com/spf13/cobra@v1.7.0/command.go:1068 +0x320
github.com/spf13/cobra.(*Command).Execute(...)
/Users/julien/Projects/go/pkg/mod/github.com/spf13/cobra@v1.7.0/command.go:992
main.main()
/Users/julien/Projects/pulumi/pulumi/pkg/cmd/pulumi/main.go:56 +0x54
```
## Checklist
- [x] I have run `make tidy` to update any new dependencies
- [x] I have run `make lint` to verify my code passes the lint check
- [x] I have formatted my code using `gofumpt`
<!--- Please provide details if the checkbox below is to be left
unchecked. -->
- [ ] I have added tests that prove my fix is effective or that my
feature works
<!---
User-facing changes require a CHANGELOG entry.
-->
- [ ] I have run `make changelog` and committed the
`changelog/pending/<file>` documenting my change
<!--
If the change(s) in this PR is a modification of an existing call to the
Pulumi Cloud,
then the service should honor older versions of the CLI where this
change would not exist.
You must then bump the API version in
/pkg/backend/httpstate/client/api.go, as well as add
it to the service.
-->
- [ ] Yes, there are changes in this PR that warrants bumping the Pulumi
Cloud API version
<!-- @Pulumi employees: If yes, you must submit corresponding changes in
the service repo. -->
2024-02-20 12:09:14 +00:00
|
|
|
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.19.0
|
2024-04-15 07:47:29 +00:00
|
|
|
go.opentelemetry.io/otel/sdk v1.22.0
|
|
|
|
go.opentelemetry.io/otel/trace v1.24.0
|
2023-08-21 15:06:46 +00:00
|
|
|
go.pennock.tech/tabular v1.1.3
|
2024-06-05 06:22:01 +00:00
|
|
|
golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8
|
|
|
|
golang.org/x/mod v0.18.0
|
|
|
|
golang.org/x/term v0.21.0
|
|
|
|
golang.org/x/text v0.16.0
|
2024-03-17 22:20:32 +00:00
|
|
|
google.golang.org/protobuf v1.33.0
|
2022-10-05 15:53:00 +00:00
|
|
|
)
|
|
|
|
|
2021-10-11 16:47:08 +00:00
|
|
|
require (
|
2024-04-15 07:47:29 +00:00
|
|
|
cloud.google.com/go v0.112.1 // indirect
|
|
|
|
cloud.google.com/go/compute v1.25.0 // indirect
|
2023-03-01 22:33:59 +00:00
|
|
|
cloud.google.com/go/compute/metadata v0.2.3 // indirect
|
2024-04-15 07:47:29 +00:00
|
|
|
cloud.google.com/go/iam v1.1.6 // indirect
|
|
|
|
cloud.google.com/go/longrunning v0.5.5 // indirect
|
2023-11-01 17:21:52 +00:00
|
|
|
dario.cat/mergo v1.0.0 // indirect
|
2024-06-19 18:18:35 +00:00
|
|
|
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.11.1 // indirect
|
|
|
|
github.com/Azure/azure-sdk-for-go/sdk/internal v1.8.0 // indirect
|
2024-01-03 14:47:09 +00:00
|
|
|
github.com/Azure/azure-sdk-for-go/sdk/keyvault/internal v0.7.1 // indirect
|
2024-04-15 07:47:29 +00:00
|
|
|
github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.3.1 // indirect
|
2022-03-25 19:49:29 +00:00
|
|
|
github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 // indirect
|
2021-10-11 16:47:08 +00:00
|
|
|
github.com/Azure/go-autorest v14.2.0+incompatible // indirect
|
|
|
|
github.com/Azure/go-autorest/autorest/to v0.4.0 // indirect
|
2024-04-15 07:47:29 +00:00
|
|
|
github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2 // indirect
|
2023-11-01 17:21:52 +00:00
|
|
|
github.com/Microsoft/go-winio v0.6.1 // indirect
|
2024-04-25 14:30:00 +00:00
|
|
|
github.com/ProtonMail/go-crypto v1.0.0 // indirect
|
2022-10-05 15:53:00 +00:00
|
|
|
github.com/aead/chacha20 v0.0.0-20180709150244-8b13a72661da // indirect
|
2022-04-21 11:23:36 +00:00
|
|
|
github.com/agext/levenshtein v1.2.3 // indirect
|
2023-10-10 01:35:39 +00:00
|
|
|
github.com/alecthomas/chroma v0.10.0 // indirect
|
2024-06-05 06:22:01 +00:00
|
|
|
github.com/alecthomas/chroma/v2 v2.13.0 // indirect
|
2022-10-05 15:53:00 +00:00
|
|
|
github.com/apparentlymart/go-textseg/v13 v13.0.0 // indirect
|
2023-08-30 17:08:44 +00:00
|
|
|
github.com/atotto/clipboard v0.1.4 // indirect
|
2024-04-12 09:34:53 +00:00
|
|
|
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2 // indirect
|
|
|
|
github.com/aws/aws-sdk-go-v2/credentials v1.17.11 // indirect
|
|
|
|
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.1 // indirect
|
|
|
|
github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.15 // indirect
|
|
|
|
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.5 // indirect
|
|
|
|
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.5 // indirect
|
|
|
|
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 // indirect
|
|
|
|
github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.5 // indirect
|
|
|
|
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.2 // indirect
|
|
|
|
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.7 // indirect
|
|
|
|
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.7 // indirect
|
|
|
|
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.5 // indirect
|
|
|
|
github.com/aws/aws-sdk-go-v2/service/s3 v1.53.1 // indirect
|
|
|
|
github.com/aws/aws-sdk-go-v2/service/sso v1.20.5 // indirect
|
|
|
|
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.23.4 // indirect
|
|
|
|
github.com/aws/smithy-go v1.20.2 // indirect
|
2023-08-30 17:08:44 +00:00
|
|
|
github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect
|
2023-10-10 01:35:39 +00:00
|
|
|
github.com/aymerick/douceur v0.2.0 // indirect
|
|
|
|
github.com/ccojocar/zxcvbn-go v1.0.1 // indirect
|
2022-10-05 15:53:00 +00:00
|
|
|
github.com/cenkalti/backoff/v3 v3.2.2 // indirect
|
Add InstrumentationScope to otelSpan (#15451)
# Description
Re https://github.com/pulumi/pulumi/pull/15439
I was trying out the `--otel` flag for trace export and got a nil
pointer in `span.InstrumentationScope`
```
Pulumi Version: 3.106.1-dev.0
Go Version: go1.21.7
Go Compiler: gc
Architecture: arm64
Operating System: darwin
Panic: runtime error: invalid memory address or nil pointer dereference
goroutine 1 [running]:
runtime/debug.Stack()
/opt/homebrew/Cellar/go/1.21.7/libexec/src/runtime/debug/stack.go:24 +0x64
main.panicHandler(0x1400231feff)
/Users/julien/Projects/pulumi/pulumi/pkg/cmd/pulumi/main.go:35 +0x44
panic({0x107033d20?, 0x1087b94c0?})
/opt/homebrew/Cellar/go/1.21.7/libexec/src/runtime/panic.go:914 +0x218
main.(*otelSpan).InstrumentationScope(0x1072ffe40?)
<autogenerated>:1 +0x34
go.opentelemetry.io/otel/exporters/otlp/otlptrace/internal/tracetransform.Spans({0x140015a3000, 0x1, 0x1?})
/Users/julien/Projects/go/pkg/mod/go.opentelemetry.io/otel/exporters/otlp/otlptrace@v1.19.0/internal/tracetransform/span.go:51 +0x168
go.opentelemetry.io/otel/exporters/otlp/otlptrace.(*Exporter).ExportSpans(0x14002000050, {0x107482ec8, 0x1089ffe20}, {0x140015a3000?, 0x1400231fb08?, 0x1?})
/Users/julien/Projects/go/pkg/mod/go.opentelemetry.io/otel/exporters/otlp/otlptrace@v1.19.0/exporter.go:44 +0x38
main.exportTraceToOtel({0x10745ae08, 0x140015155a0}, 0x1)
/Users/julien/Projects/pulumi/pulumi/pkg/cmd/pulumi/convert-trace.go:645 +0x3c0
main.newConvertTraceCmd.func1(0x0?, {0x14001515540, 0x1, 0x0?})
/Users/julien/Projects/pulumi/pulumi/pkg/cmd/pulumi/convert-trace.go:677 +0xf8
main.newConvertTraceCmd.RunFunc.func2(0x0?, {0x14001515540?, 0x0?, 0x0?})
/Users/julien/Projects/pulumi/pulumi/sdk/go/common/util/cmdutil/exit.go:99 +0x28
main.newConvertTraceCmd.RunFunc.RunResultFunc.func5(0x1400157a900?, {0x14001515540, 0x1, 0x2})
/Users/julien/Projects/pulumi/pulumi/sdk/go/common/util/cmdutil/exit.go:115 +0x34
github.com/spf13/cobra.(*Command).execute(0x14001592600, {0x14001515520, 0x2, 0x2})
/Users/julien/Projects/go/pkg/mod/github.com/spf13/cobra@v1.7.0/command.go:944 +0x654
github.com/spf13/cobra.(*Command).ExecuteC(0x14000d5f800)
/Users/julien/Projects/go/pkg/mod/github.com/spf13/cobra@v1.7.0/command.go:1068 +0x320
github.com/spf13/cobra.(*Command).Execute(...)
/Users/julien/Projects/go/pkg/mod/github.com/spf13/cobra@v1.7.0/command.go:992
main.main()
/Users/julien/Projects/pulumi/pulumi/pkg/cmd/pulumi/main.go:56 +0x54
```
## Checklist
- [x] I have run `make tidy` to update any new dependencies
- [x] I have run `make lint` to verify my code passes the lint check
- [x] I have formatted my code using `gofumpt`
<!--- Please provide details if the checkbox below is to be left
unchecked. -->
- [ ] I have added tests that prove my fix is effective or that my
feature works
<!---
User-facing changes require a CHANGELOG entry.
-->
- [ ] I have run `make changelog` and committed the
`changelog/pending/<file>` documenting my change
<!--
If the change(s) in this PR is a modification of an existing call to the
Pulumi Cloud,
then the service should honor older versions of the CLI where this
change would not exist.
You must then bump the API version in
/pkg/backend/httpstate/client/api.go, as well as add
it to the service.
-->
- [ ] Yes, there are changes in this PR that warrants bumping the Pulumi
Cloud API version
<!-- @Pulumi employees: If yes, you must submit corresponding changes in
the service repo. -->
2024-02-20 12:09:14 +00:00
|
|
|
github.com/cenkalti/backoff/v4 v4.2.1 // indirect
|
2023-09-15 20:29:18 +00:00
|
|
|
github.com/charmbracelet/bubbles v0.16.1 // indirect
|
2024-06-05 06:22:01 +00:00
|
|
|
github.com/charmbracelet/bubbletea v0.25.0 // indirect
|
2023-09-15 20:29:18 +00:00
|
|
|
github.com/charmbracelet/lipgloss v0.7.1 // indirect
|
2022-04-21 11:23:36 +00:00
|
|
|
github.com/cheggaaa/pb v1.0.29 // indirect
|
2024-01-16 08:59:57 +00:00
|
|
|
github.com/cloudflare/circl v1.3.7 // indirect
|
2023-08-30 17:08:44 +00:00
|
|
|
github.com/containerd/console v1.0.4-0.20230313162750-1ae8d489ac81 // indirect
|
2024-03-28 00:03:58 +00:00
|
|
|
github.com/cpuguy83/go-md2man/v2 v2.0.3 // indirect
|
2023-11-01 17:21:52 +00:00
|
|
|
github.com/cyphar/filepath-securejoin v0.2.4 // indirect
|
2024-06-05 06:22:01 +00:00
|
|
|
github.com/dlclark/regexp2 v1.11.0 // indirect
|
2023-02-02 15:28:14 +00:00
|
|
|
github.com/emirpasic/gods v1.18.1 // indirect
|
2022-10-05 15:53:00 +00:00
|
|
|
github.com/ettle/strcase v0.1.1 // indirect
|
2024-06-28 22:17:40 +00:00
|
|
|
github.com/fatih/color v1.16.0 // indirect
|
2024-04-15 07:47:29 +00:00
|
|
|
github.com/felixge/httpsnoop v1.0.4 // indirect
|
2024-07-30 19:21:26 +00:00
|
|
|
github.com/fsnotify/fsnotify v1.7.0 // indirect
|
2023-11-01 17:21:52 +00:00
|
|
|
github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect
|
|
|
|
github.com/go-git/go-billy/v5 v5.5.0 // indirect
|
2024-05-21 06:49:44 +00:00
|
|
|
github.com/go-jose/go-jose/v3 v3.0.3 // indirect
|
2024-04-15 07:47:29 +00:00
|
|
|
github.com/go-logr/logr v1.4.1 // indirect
|
2024-02-16 00:00:36 +00:00
|
|
|
github.com/go-logr/stdr v1.2.2 // indirect
|
2022-04-07 13:50:26 +00:00
|
|
|
github.com/go-ole/go-ole v1.2.6 // indirect
|
2022-04-18 10:17:56 +00:00
|
|
|
github.com/gogo/protobuf v1.3.2 // indirect
|
2024-04-15 07:47:29 +00:00
|
|
|
github.com/golang-jwt/jwt/v5 v5.2.1 // indirect
|
2021-10-11 16:47:08 +00:00
|
|
|
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
|
2024-03-26 17:24:37 +00:00
|
|
|
github.com/google/go-cmp v0.6.0 // indirect
|
2024-02-01 09:39:41 +00:00
|
|
|
github.com/google/s2a-go v0.1.7 // indirect
|
2024-04-15 07:47:29 +00:00
|
|
|
github.com/google/wire v0.6.0 // indirect
|
2024-02-01 09:39:41 +00:00
|
|
|
github.com/googleapis/enterprise-certificate-proxy v0.3.2 // indirect
|
2024-04-15 07:47:29 +00:00
|
|
|
github.com/googleapis/gax-go/v2 v2.12.2 // indirect
|
2023-10-10 01:35:39 +00:00
|
|
|
github.com/gorilla/css v1.0.0 // indirect
|
Add InstrumentationScope to otelSpan (#15451)
# Description
Re https://github.com/pulumi/pulumi/pull/15439
I was trying out the `--otel` flag for trace export and got a nil
pointer in `span.InstrumentationScope`
```
Pulumi Version: 3.106.1-dev.0
Go Version: go1.21.7
Go Compiler: gc
Architecture: arm64
Operating System: darwin
Panic: runtime error: invalid memory address or nil pointer dereference
goroutine 1 [running]:
runtime/debug.Stack()
/opt/homebrew/Cellar/go/1.21.7/libexec/src/runtime/debug/stack.go:24 +0x64
main.panicHandler(0x1400231feff)
/Users/julien/Projects/pulumi/pulumi/pkg/cmd/pulumi/main.go:35 +0x44
panic({0x107033d20?, 0x1087b94c0?})
/opt/homebrew/Cellar/go/1.21.7/libexec/src/runtime/panic.go:914 +0x218
main.(*otelSpan).InstrumentationScope(0x1072ffe40?)
<autogenerated>:1 +0x34
go.opentelemetry.io/otel/exporters/otlp/otlptrace/internal/tracetransform.Spans({0x140015a3000, 0x1, 0x1?})
/Users/julien/Projects/go/pkg/mod/go.opentelemetry.io/otel/exporters/otlp/otlptrace@v1.19.0/internal/tracetransform/span.go:51 +0x168
go.opentelemetry.io/otel/exporters/otlp/otlptrace.(*Exporter).ExportSpans(0x14002000050, {0x107482ec8, 0x1089ffe20}, {0x140015a3000?, 0x1400231fb08?, 0x1?})
/Users/julien/Projects/go/pkg/mod/go.opentelemetry.io/otel/exporters/otlp/otlptrace@v1.19.0/exporter.go:44 +0x38
main.exportTraceToOtel({0x10745ae08, 0x140015155a0}, 0x1)
/Users/julien/Projects/pulumi/pulumi/pkg/cmd/pulumi/convert-trace.go:645 +0x3c0
main.newConvertTraceCmd.func1(0x0?, {0x14001515540, 0x1, 0x0?})
/Users/julien/Projects/pulumi/pulumi/pkg/cmd/pulumi/convert-trace.go:677 +0xf8
main.newConvertTraceCmd.RunFunc.func2(0x0?, {0x14001515540?, 0x0?, 0x0?})
/Users/julien/Projects/pulumi/pulumi/sdk/go/common/util/cmdutil/exit.go:99 +0x28
main.newConvertTraceCmd.RunFunc.RunResultFunc.func5(0x1400157a900?, {0x14001515540, 0x1, 0x2})
/Users/julien/Projects/pulumi/pulumi/sdk/go/common/util/cmdutil/exit.go:115 +0x34
github.com/spf13/cobra.(*Command).execute(0x14001592600, {0x14001515520, 0x2, 0x2})
/Users/julien/Projects/go/pkg/mod/github.com/spf13/cobra@v1.7.0/command.go:944 +0x654
github.com/spf13/cobra.(*Command).ExecuteC(0x14000d5f800)
/Users/julien/Projects/go/pkg/mod/github.com/spf13/cobra@v1.7.0/command.go:1068 +0x320
github.com/spf13/cobra.(*Command).Execute(...)
/Users/julien/Projects/go/pkg/mod/github.com/spf13/cobra@v1.7.0/command.go:992
main.main()
/Users/julien/Projects/pulumi/pulumi/pkg/cmd/pulumi/main.go:56 +0x54
```
## Checklist
- [x] I have run `make tidy` to update any new dependencies
- [x] I have run `make lint` to verify my code passes the lint check
- [x] I have formatted my code using `gofumpt`
<!--- Please provide details if the checkbox below is to be left
unchecked. -->
- [ ] I have added tests that prove my fix is effective or that my
feature works
<!---
User-facing changes require a CHANGELOG entry.
-->
- [ ] I have run `make changelog` and committed the
`changelog/pending/<file>` documenting my change
<!--
If the change(s) in this PR is a modification of an existing call to the
Pulumi Cloud,
then the service should honor older versions of the CLI where this
change would not exist.
You must then bump the API version in
/pkg/backend/httpstate/client/api.go, as well as add
it to the service.
-->
- [ ] Yes, there are changes in this PR that warrants bumping the Pulumi
Cloud API version
<!-- @Pulumi employees: If yes, you must submit corresponding changes in
the service repo. -->
2024-02-20 12:09:14 +00:00
|
|
|
github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 // indirect
|
2021-10-11 16:47:08 +00:00
|
|
|
github.com/hashicorp/errwrap v1.1.0 // indirect
|
|
|
|
github.com/hashicorp/go-cleanhttp v0.5.2 // indirect
|
2024-06-28 22:17:40 +00:00
|
|
|
github.com/hashicorp/go-retryablehttp v0.7.7 // indirect
|
2021-10-11 16:47:08 +00:00
|
|
|
github.com/hashicorp/go-rootcerts v1.0.2 // indirect
|
2024-05-21 06:49:44 +00:00
|
|
|
github.com/hashicorp/go-secure-stdlib/parseutil v0.1.8 // indirect
|
2022-12-13 14:33:01 +00:00
|
|
|
github.com/hashicorp/go-secure-stdlib/strutil v0.1.2 // indirect
|
2024-05-21 06:49:44 +00:00
|
|
|
github.com/hashicorp/go-sockaddr v1.0.6 // indirect
|
2021-10-11 16:47:08 +00:00
|
|
|
github.com/hashicorp/hcl v1.0.0 // indirect
|
2024-05-21 06:49:44 +00:00
|
|
|
github.com/hashicorp/vault/api v1.12.0 // indirect
|
2024-03-26 17:24:37 +00:00
|
|
|
github.com/hexops/valast v1.4.4 // indirect
|
2023-04-18 19:47:37 +00:00
|
|
|
github.com/inconshreveable/mousetrap v1.1.0 // indirect
|
2021-10-11 16:47:08 +00:00
|
|
|
github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect
|
|
|
|
github.com/jmespath/go-jmespath v0.4.0 // indirect
|
2023-02-02 15:28:14 +00:00
|
|
|
github.com/kevinburke/ssh_config v1.2.0 // indirect
|
2022-10-05 15:53:00 +00:00
|
|
|
github.com/kylelemons/godebug v1.1.0 // indirect
|
2023-08-30 17:08:44 +00:00
|
|
|
github.com/lucasb-eyer/go-colorful v1.2.0 // indirect
|
2022-10-05 15:53:00 +00:00
|
|
|
github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect
|
2024-03-26 17:24:37 +00:00
|
|
|
github.com/mattn/go-colorable v0.1.13 // indirect
|
2024-06-28 22:17:40 +00:00
|
|
|
github.com/mattn/go-isatty v0.0.20 // indirect
|
2023-08-30 17:08:44 +00:00
|
|
|
github.com/mattn/go-localereader v0.0.1 // indirect
|
2023-11-22 05:04:14 +00:00
|
|
|
github.com/mattn/go-runewidth v0.0.15 // indirect
|
2021-10-11 16:47:08 +00:00
|
|
|
github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b // indirect
|
2023-10-10 01:35:39 +00:00
|
|
|
github.com/microcosm-cc/bluemonday v1.0.21 // indirect
|
2021-10-11 16:47:08 +00:00
|
|
|
github.com/mitchellh/go-homedir v1.1.0 // indirect
|
|
|
|
github.com/mitchellh/go-ps v1.0.0 // indirect
|
2022-04-21 11:23:36 +00:00
|
|
|
github.com/mitchellh/go-wordwrap v1.0.1 // indirect
|
2022-11-08 23:35:18 +00:00
|
|
|
github.com/mitchellh/mapstructure v1.5.0 // indirect
|
|
|
|
github.com/mitchellh/reflectwalk v1.0.2 // indirect
|
|
|
|
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
|
|
|
|
github.com/modern-go/reflect2 v1.0.2 // indirect
|
2023-11-22 05:04:14 +00:00
|
|
|
github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 // indirect
|
2023-08-30 17:08:44 +00:00
|
|
|
github.com/muesli/reflow v0.3.0 // indirect
|
2023-11-22 05:04:14 +00:00
|
|
|
github.com/muesli/termenv v0.15.2 // indirect
|
2024-03-26 17:24:37 +00:00
|
|
|
github.com/nightlyone/lockfile v1.0.0 // indirect
|
2024-07-30 19:21:26 +00:00
|
|
|
github.com/nxadm/tail v1.4.11 // indirect
|
2023-10-10 01:35:39 +00:00
|
|
|
github.com/olekukonko/tablewriter v0.0.5 // indirect
|
2022-04-21 11:23:36 +00:00
|
|
|
github.com/opentracing/basictracer-go v1.1.0 // indirect
|
2023-10-10 01:35:39 +00:00
|
|
|
github.com/petar-dambovaliev/aho-corasick v0.0.0-20230725210150-fb29fc3c913e // indirect
|
[snapshot] Use a newer diff package
The version of gopls that gotextdiff is derived from is over three years
old. In the intervening time, the differ used by gopls has improved
tremendously, and the language has grown new features like generics.
These changes use a different diff package that is derived from an
up-to-date version of gopls and exposes an API that is parameterized
over the storage of the text. Taken together, this allows us to use a
much faster and more memory-efficient algorithm for diffing while
safely avoiding string copies when invoking the differ.
The more efficient algorithm operates on arbitrary slices whose elements
are comparable. Naive use of this algorithm--passing byte slices
in--can cause increased time spent diffing, as the sequences being
compared are longer. In order to avoid this, these changes record
spans of marshaled deployments as the deployments are marshaled. These
spans are strings that cover the diffable elements of the deployment:
its header, its resources, and its pending operations.
The output of the newer algorithm is converible to the format we
currently send to the service, so these changes should not require
service-side changes.
In order to avoid bumping the minimum Go version required to build the
`github.com/pulumi/pulumi/pkg/v3" and therefore break backwards
compatibility with consumers using older toolchains (e.g. providers),
these changes use the existing differ when built with a pre-1.20
toolchain. Official builds of the CLI are already using Go 1.20+ and
should use the new differ without additional changes.
These changes improve CPU time, allocation volume, and the compression
ratio by 57%, 87%, and 52%, respectively.
Benchmark results and analysis:
httpstate ❯ go test -count=10 -run none -benchmem -bench . | tee spanned.txt
httpstate ❯ benchstat buffer-pool.txt spanned.txt >stat.txt
```
│ buffer-pool.txt │ spanned.txt │
│ sec/op │ sec/op vs base │
DiffStack/1_x_2_B-10 45.09µ ± 1% 22.81µ ± 1% -49.41% (p=0.000 n=10)
DiffStack/2_x_2_B-10 79.49µ ± 1% 40.60µ ± 1% -48.93% (p=0.000 n=10)
DiffStack/4_x_2_B-10 172.54µ ± 2% 81.57µ ± 0% -52.72% (p=0.000 n=10)
DiffStack/8_x_2_B-10 455.4µ ± 1% 200.4µ ± 0% -56.00% (p=0.000 n=10)
DiffStack/16_x_2_B-10 1388.2µ ± 1% 575.1µ ± 1% -58.57% (p=0.000 n=10)
DiffStack/32_x_2_B-10 4.409m ± 1% 1.866m ± 0% -57.67% (p=0.000 n=10)
DiffStack/48_x_2_B-10 9.275m ± 0% 3.484m ± 0% -62.44% (p=0.000 n=10)
DiffStack/64_x_2_B-10 14.564m ± 0% 5.945m ± 1% -59.18% (p=0.000 n=10)
DiffStack/1_x_8.2_kB-10 124.81µ ± 1% 40.14µ ± 1% -67.84% (p=0.000 n=10)
DiffStack/2_x_8.2_kB-10 299.8µ ± 0% 121.8µ ± 1% -59.38% (p=0.000 n=10)
DiffStack/4_x_8.2_kB-10 846.2µ ± 1% 355.8µ ± 0% -57.96% (p=0.000 n=10)
DiffStack/8_x_8.2_kB-10 2.743m ± 1% 1.150m ± 0% -58.06% (p=0.000 n=10)
DiffStack/16_x_8.2_kB-10 9.271m ± 1% 4.041m ± 0% -56.41% (p=0.000 n=10)
DiffStack/32_x_8.2_kB-10 31.78m ± 0% 14.97m ± 0% -52.88% (p=0.000 n=10)
DiffStack/48_x_8.2_kB-10 66.14m ± 1% 30.66m ± 0% -53.63% (p=0.000 n=10)
DiffStack/64_x_8.2_kB-10 107.50m ± 0% 53.44m ± 0% -50.29% (p=0.000 n=10)
DiffStack/1_x_33_kB-10 240.51µ ± 1% 76.95µ ± 0% -68.01% (p=0.000 n=10)
DiffStack/2_x_33_kB-10 798.5µ ± 0% 310.6µ ± 0% -61.10% (p=0.000 n=10)
DiffStack/4_x_33_kB-10 2451.9µ ± 1% 978.9µ ± 3% -60.08% (p=0.000 n=10)
DiffStack/8_x_33_kB-10 8.258m ± 0% 3.731m ± 0% -54.82% (p=0.000 n=10)
DiffStack/16_x_33_kB-10 28.29m ± 1% 12.77m ± 0% -54.85% (p=0.000 n=10)
DiffStack/32_x_33_kB-10 104.11m ± 1% 44.84m ± 1% -56.93% (p=0.000 n=10)
DiffStack/48_x_33_kB-10 199.73m ± 1% 95.87m ± 1% -52.00% (p=0.000 n=10)
DiffStack/64_x_33_kB-10 339.6m ± 2% 159.2m ± 2% -53.12% (p=0.000 n=10)
DiffStack/2_x_131_kB-10 2721.7µ ± 0% 984.3µ ± 0% -63.84% (p=0.000 n=10)
DiffStack/4_x_131_kB-10 8.334m ± 1% 3.654m ± 2% -56.15% (p=0.000 n=10)
DiffStack/8_x_131_kB-10 25.89m ± 0% 12.23m ± 0% -52.77% (p=0.000 n=10)
DiffStack/16_x_131_kB-10 87.49m ± 1% 40.26m ± 0% -53.98% (p=0.000 n=10)
DiffStack/32_x_131_kB-10 317.0m ± 5% 150.4m ± 0% -52.57% (p=0.000 n=10)
DiffStack/48_x_131_kB-10 681.8m ± 1% 332.1m ± 0% -51.28% (p=0.000 n=10)
DiffStack/64_x_131_kB-10 1190.4m ± 1% 583.1m ± 0% -51.01% (p=0.000 n=10)
DiffStack/1_x_524_kB-10 3.215m ± 0% 1.086m ± 0% -66.21% (p=0.000 n=10)
DiffStack/2_x_524_kB-10 9.676m ± 1% 3.994m ± 0% -58.72% (p=0.000 n=10)
DiffStack/4_x_524_kB-10 29.84m ± 0% 12.88m ± 1% -56.84% (p=0.000 n=10)
DiffStack/8_x_524_kB-10 92.11m ± 1% 42.35m ± 0% -54.02% (p=0.000 n=10)
DiffStack/16_x_524_kB-10 322.1m ± 0% 154.0m ± 0% -52.19% (p=0.000 n=10)
DiffStackRecorded/two-large-checkpoints.json-10 54.73m ± 1% 22.63m ± 0% -58.65% (p=0.000 n=10)
DiffStackRecorded/checkpoints.json-10 815.1m ± 0% 395.5m ± 2% -51.48% (p=0.000 n=10)
geomean 10.45m 4.530m -56.65%
│ buffer-pool.txt │ spanned.txt │
│ checkpoint_bytes │ checkpoint_bytes vs base │
DiffStack/1_x_2_B-10 2.539k ± 0% 1.950k ± 0% -23.20% (p=0.000 n=10)
DiffStack/2_x_2_B-10 5.201k ± 0% 4.548k ± 0% -12.56% (p=0.000 n=10)
DiffStack/4_x_2_B-10 13.63k ± 0% 12.30k ± 0% -9.77% (p=0.000 n=10)
DiffStack/8_x_2_B-10 45.09k ± 0% 42.86k ± 0% -4.95% (p=0.000 n=10)
DiffStack/16_x_2_B-10 161.9k ± 0% 156.4k ± 0% -3.42% (p=0.000 n=10)
DiffStack/32_x_2_B-10 579.8k ± 0% 604.2k ± 0% +4.21% (p=0.000 n=10)
DiffStack/48_x_2_B-10 1.306M ± 0% 1.180M ± 0% -9.68% (p=0.000 n=10)
DiffStack/64_x_2_B-10 2.164M ± 0% 2.134M ± 0% -1.36% (p=0.000 n=10)
DiffStack/1_x_8.2_kB-10 27.109k ± 0% 9.856k ± 0% -63.64% (p=0.000 n=10)
DiffStack/2_x_8.2_kB-10 78.91k ± 0% 61.59k ± 0% -21.94% (p=0.000 n=10)
DiffStack/4_x_8.2_kB-10 284.2k ± 0% 258.3k ± 0% -9.13% (p=0.000 n=10)
DiffStack/8_x_8.2_kB-10 1.119M ± 0% 1.041M ± 0% -6.89% (p=0.000 n=10)
DiffStack/16_x_8.2_kB-10 4.389M ± 0% 4.201M ± 0% -4.29% (p=0.000 n=10)
DiffStack/32_x_8.2_kB-10 16.74M ± 0% 17.06M ± 0% +1.95% (p=0.000 n=10)
DiffStack/48_x_8.2_kB-10 36.30M ± 0% 35.93M ± 0% -1.00% (p=0.000 n=10)
DiffStack/64_x_8.2_kB-10 60.98M ± 0% 64.06M ± 0% +5.05% (p=0.000 n=10)
DiffStack/1_x_33_kB-10 67.79k ± 0% 34.43k ± 0% -49.20% (p=0.000 n=10)
DiffStack/2_x_33_kB-10 300.1k ± 0% 233.6k ± 0% -22.15% (p=0.000 n=10)
DiffStack/4_x_33_kB-10 1128.3k ± 0% 929.5k ± 0% -17.62% (p=0.000 n=10)
DiffStack/8_x_33_kB-10 4.437M ± 0% 4.238M ± 0% -4.49% (p=0.000 n=10)
DiffStack/16_x_33_kB-10 16.57M ± 0% 15.78M ± 0% -4.79% (p=0.000 n=10)
DiffStack/32_x_33_kB-10 64.35M ± 0% 58.66M ± 0% -8.84% (p=0.000 n=10)
DiffStack/48_x_33_kB-10 127.0M ± 0% 128.0M ± 0% +0.80% (p=0.000 n=10)
DiffStack/64_x_33_kB-10 217.7M ± 0% 216.5M ± 0% -0.54% (p=0.000 n=10)
DiffStack/2_x_131_kB-10 1316.2k ± 0% 921.8k ± 0% -29.97% (p=0.000 n=10)
DiffStack/4_x_131_kB-10 4.733M ± 0% 4.207M ± 0% -11.11% (p=0.000 n=10)
DiffStack/8_x_131_kB-10 16.03M ± 0% 15.77M ± 0% -1.64% (p=0.000 n=10)
DiffStack/16_x_131_kB-10 57.42M ± 0% 54.66M ± 0% -4.81% (p=0.000 n=10)
DiffStack/32_x_131_kB-10 214.8M ± 0% 210.7M ± 0% -1.90% (p=0.000 n=10)
DiffStack/48_x_131_kB-10 472.9M ± 0% 466.9M ± 0% -1.28% (p=0.000 n=10)
DiffStack/64_x_131_kB-10 832.3M ± 0% 824.7M ± 0% -0.92% (p=0.000 n=10)
DiffStack/1_x_524_kB-10 1.575M ± 0% 1.051M ± 0% -33.32% (p=0.000 n=10)
DiffStack/2_x_524_kB-10 5.248M ± 0% 4.199M ± 0% -20.00% (p=0.000 n=10)
DiffStack/4_x_524_kB-10 18.36M ± 0% 15.74M ± 0% -14.28% (p=0.000 n=10)
DiffStack/8_x_524_kB-10 60.86M ± 0% 56.66M ± 0% -6.90% (p=0.000 n=10)
DiffStack/16_x_524_kB-10 223.5M ± 0% 214.0M ± 0% -4.23% (p=0.000 n=10)
DiffStackRecorded/two-large-checkpoints.json-10 13.21M ± 0% 13.20M ± 0% -0.01% (p=0.000 n=10)
DiffStackRecorded/checkpoints.json-10 155.9M ± 0% 154.9M ± 0% -0.60% (p=0.000 n=10)
geomean 3.606M 3.173M -12.01%
│ buffer-pool.txt │ spanned.txt │
│ ratio │ ratio vs base │
DiffStack/1_x_2_B-10 789.5m ± 0% 1641.0m ± 0% +107.85% (p=0.000 n=10)
DiffStack/2_x_2_B-10 1.034 ± 0% 2.353 ± 0% +127.56% (p=0.000 n=10)
DiffStack/4_x_2_B-10 1.575 ± 0% 3.592 ± 0% +128.06% (p=0.000 n=10)
DiffStack/8_x_2_B-10 2.829 ± 0% 6.684 ± 0% +136.27% (p=0.000 n=10)
DiffStack/16_x_2_B-10 5.296 ± 0% 12.610 ± 0% +138.10% (p=0.000 n=10)
DiffStack/32_x_2_B-10 9.681 ± 0% 24.790 ± 0% +156.07% (p=0.000 n=10)
DiffStack/48_x_2_B-10 14.65 ± 0% 32.44 ± 0% +121.43% (p=0.000 n=10)
DiffStack/64_x_2_B-10 18.26 ± 0% 44.11 ± 0% +141.57% (p=0.000 n=10)
DiffStack/1_x_8.2_kB-10 1.383 ± 0% 1.051 ± 0% -24.01% (p=0.000 n=10)
DiffStack/2_x_8.2_kB-10 1.716 ± 0% 2.324 ± 0% +35.43% (p=0.000 n=10)
DiffStack/4_x_8.2_kB-10 2.878 ± 0% 4.251 ± 0% +47.71% (p=0.000 n=10)
DiffStack/8_x_8.2_kB-10 5.475 ± 0% 8.056 ± 0% +47.14% (p=0.000 n=10)
DiffStack/16_x_8.2_kB-10 10.56 ± 0% 15.77 ± 0% +49.34% (p=0.000 n=10)
DiffStack/32_x_8.2_kB-10 19.97 ± 0% 31.57 ± 0% +58.09% (p=0.000 n=10)
DiffStack/48_x_8.2_kB-10 28.80 ± 0% 44.11 ± 0% +53.16% (p=0.000 n=10)
DiffStack/64_x_8.2_kB-10 36.23 ± 0% 58.84 ± 0% +62.41% (p=0.000 n=10)
DiffStack/1_x_33_kB-10 986.0m ± 0% 1014.0m ± 0% +2.84% (p=0.000 n=10)
DiffStack/2_x_33_kB-10 1.777 ± 0% 2.331 ± 0% +31.18% (p=0.000 n=10)
DiffStack/4_x_33_kB-10 3.057 ± 0% 3.993 ± 0% +30.62% (p=0.000 n=10)
DiffStack/8_x_33_kB-10 5.766 ± 0% 8.511 ± 0% +47.61% (p=0.000 n=10)
DiffStack/16_x_33_kB-10 10.55 ± 0% 15.35 ± 0% +45.50% (p=0.000 n=10)
DiffStack/32_x_33_kB-10 20.28 ± 0% 28.08 ± 0% +38.46% (p=0.000 n=10)
DiffStack/48_x_33_kB-10 26.59 ± 0% 40.64 ± 0% +52.84% (p=0.000 n=10)
DiffStack/64_x_33_kB-10 34.14 ± 0% 51.44 ± 0% +50.67% (p=0.000 n=10)
DiffStack/2_x_131_kB-10 1.993 ± 0% 2.333 ± 0% +17.06% (p=0.000 n=10)
DiffStack/4_x_131_kB-10 3.263 ± 0% 4.569 ± 0% +40.02% (p=0.000 n=10)
DiffStack/8_x_131_kB-10 5.291 ± 0% 7.995 ± 0% +51.11% (p=0.000 n=10)
DiffStack/16_x_131_kB-10 9.275 ± 0% 13.410 ± 0% +44.58% (p=0.000 n=10)
DiffStack/32_x_131_kB-10 17.17 ± 0% 25.44 ± 0% +48.17% (p=0.000 n=10)
DiffStack/48_x_131_kB-10 25.11 ± 0% 37.39 ± 0% +48.90% (p=0.000 n=10)
DiffStack/64_x_131_kB-10 33.09 ± 0% 49.40 ± 0% +49.29% (p=0.000 n=10)
DiffStack/1_x_524_kB-10 1.498 ± 0% 1.999 ± 0% +33.44% (p=0.000 n=10)
DiffStack/2_x_524_kB-10 1.998 ± 0% 2.666 ± 0% +33.43% (p=0.000 n=10)
DiffStack/4_x_524_kB-10 3.180 ± 0% 4.285 ± 0% +34.75% (p=0.000 n=10)
DiffStack/8_x_524_kB-10 5.040 ± 0% 7.199 ± 0% +42.84% (p=0.000 n=10)
DiffStack/16_x_524_kB-10 9.058 ± 0% 13.160 ± 0% +45.29% (p=0.000 n=10)
DiffStackRecorded/two-large-checkpoints.json-10 1.997 ± 0% 1.999 ± 0% +0.10% (p=0.000 n=10)
DiffStackRecorded/checkpoints.json-10 36.60 ± 0% 40.42 ± 0% +10.44% (p=0.000 n=10)
geomean 5.993 9.122 +52.20%
│ buffer-pool.txt │ spanned.txt │
│ wire_bytes │ wire_bytes vs base │
DiffStack/1_x_2_B-10 3.216k ± 0% 1.188k ± 0% -63.06% (p=0.000 n=10)
DiffStack/2_x_2_B-10 5.031k ± 0% 1.933k ± 0% -61.58% (p=0.000 n=10)
DiffStack/4_x_2_B-10 8.655k ± 0% 3.424k ± 0% -60.44% (p=0.000 n=10)
DiffStack/8_x_2_B-10 15.938k ± 0% 6.412k ± 0% -59.77% (p=0.000 n=10)
DiffStack/16_x_2_B-10 30.58k ± 0% 12.40k ± 0% -59.45% (p=0.000 n=10)
DiffStack/32_x_2_B-10 59.89k ± 0% 24.37k ± 0% -59.31% (p=0.000 n=10)
DiffStack/48_x_2_B-10 89.17k ± 0% 36.38k ± 0% -59.21% (p=0.000 n=10)
DiffStack/64_x_2_B-10 118.48k ± 0% 48.39k ± 0% -59.16% (p=0.000 n=10)
DiffStack/1_x_8.2_kB-10 19.596k ± 0% 9.378k ± 0% -52.14% (p=0.000 n=10)
DiffStack/2_x_8.2_kB-10 45.98k ± 0% 26.50k ± 0% -42.36% (p=0.000 n=10)
DiffStack/4_x_8.2_kB-10 98.75k ± 0% 60.76k ± 0% -38.47% (p=0.000 n=10)
DiffStack/8_x_8.2_kB-10 204.3k ± 0% 129.3k ± 0% -36.72% (p=0.000 n=10)
DiffStack/16_x_8.2_kB-10 415.5k ± 0% 266.3k ± 0% -35.91% (p=0.000 n=10)
DiffStack/32_x_8.2_kB-10 837.9k ± 0% 540.4k ± 0% -35.50% (p=0.000 n=10)
DiffStack/48_x_8.2_kB-10 1260.4k ± 0% 814.6k ± 0% -35.37% (p=0.000 n=10)
DiffStack/64_x_8.2_kB-10 1.683M ± 0% 1.089M ± 0% -35.31% (p=0.000 n=10)
DiffStack/1_x_33_kB-10 68.75k ± 0% 33.95k ± 0% -50.61% (p=0.000 n=10)
DiffStack/2_x_33_kB-10 168.9k ± 0% 100.2k ± 0% -40.64% (p=0.000 n=10)
DiffStack/4_x_33_kB-10 369.1k ± 0% 232.8k ± 0% -36.93% (p=0.000 n=10)
DiffStack/8_x_33_kB-10 769.6k ± 0% 497.9k ± 0% -35.30% (p=0.000 n=10)
DiffStack/16_x_33_kB-10 1.571M ± 0% 1.028M ± 0% -34.53% (p=0.000 n=10)
DiffStack/32_x_33_kB-10 3.173M ± 0% 2.089M ± 0% -34.16% (p=0.000 n=10)
DiffStack/48_x_33_kB-10 4.775M ± 0% 3.149M ± 0% -34.04% (p=0.000 n=10)
DiffStack/64_x_33_kB-10 6.377M ± 0% 4.210M ± 0% -33.98% (p=0.000 n=10)
DiffStack/2_x_131_kB-10 660.4k ± 0% 395.1k ± 0% -40.16% (p=0.000 n=10)
DiffStack/4_x_131_kB-10 1450.4k ± 0% 920.9k ± 0% -36.51% (p=0.000 n=10)
DiffStack/8_x_131_kB-10 3.031M ± 0% 1.972M ± 0% -34.91% (p=0.000 n=10)
DiffStack/16_x_131_kB-10 6.191M ± 0% 4.076M ± 0% -34.17% (p=0.000 n=10)
DiffStack/32_x_131_kB-10 12.512M ± 0% 8.282M ± 0% -33.81% (p=0.000 n=10)
DiffStack/48_x_131_kB-10 18.83M ± 0% 12.49M ± 0% -33.69% (p=0.000 n=10)
DiffStack/64_x_131_kB-10 25.15M ± 0% 16.69M ± 0% -33.63% (p=0.000 n=10)
DiffStack/1_x_524_kB-10 1051.8k ± 0% 525.5k ± 0% -50.04% (p=0.000 n=10)
DiffStack/2_x_524_kB-10 2.626M ± 0% 1.575M ± 0% -40.04% (p=0.000 n=10)
DiffStack/4_x_524_kB-10 5.776M ± 0% 3.673M ± 0% -36.40% (p=0.000 n=10)
DiffStack/8_x_524_kB-10 12.075M ± 0% 7.871M ± 0% -34.82% (p=0.000 n=10)
DiffStack/16_x_524_kB-10 24.67M ± 0% 16.27M ± 0% -34.07% (p=0.000 n=10)
DiffStackRecorded/two-large-checkpoints.json-10 6.612M ± 0% 6.606M ± 0% -0.10% (p=0.000 n=10)
DiffStackRecorded/checkpoints.json-10 4.259M ± 0% 3.833M ± 0% -10.00% (p=0.000 n=10)
geomean 601.7k 347.8k -42.19%
│ buffer-pool.txt │ spanned.txt │
│ B/op │ B/op vs base │
DiffStack/1_x_2_B-10 31.85Ki ± 0% 15.79Ki ± 0% -50.42% (p=0.000 n=10)
DiffStack/2_x_2_B-10 61.81Ki ± 0% 28.01Ki ± 0% -54.68% (p=0.000 n=10)
DiffStack/4_x_2_B-10 147.58Ki ± 0% 55.60Ki ± 0% -62.33% (p=0.000 n=10)
DiffStack/8_x_2_B-10 425.9Ki ± 0% 116.9Ki ± 0% -72.55% (p=0.000 n=10)
DiffStack/16_x_2_B-10 1429.9Ki ± 0% 307.8Ki ± 0% -78.47% (p=0.000 n=10)
DiffStack/32_x_2_B-10 4955.7Ki ± 0% 934.1Ki ± 0% -81.15% (p=0.000 n=10)
DiffStack/48_x_2_B-10 10.746Mi ± 0% 1.682Mi ± 0% -84.34% (p=0.000 n=10)
DiffStack/64_x_2_B-10 17.664Mi ± 0% 2.822Mi ± 0% -84.03% (p=0.000 n=10)
DiffStack/1_x_8.2_kB-10 202.50Ki ± 0% 41.18Ki ± 0% -79.66% (p=0.000 n=10)
DiffStack/2_x_8.2_kB-10 511.5Ki ± 0% 134.1Ki ± 0% -73.78% (p=0.000 n=10)
DiffStack/4_x_8.2_kB-10 1513.5Ki ± 0% 309.4Ki ± 0% -79.56% (p=0.000 n=10)
DiffStack/8_x_8.2_kB-10 4886.0Ki ± 0% 674.2Ki ± 0% -86.20% (p=0.000 n=10)
DiffStack/16_x_8.2_kB-10 16.287Mi ± 0% 1.427Mi ± 0% -91.24% (p=0.000 n=10)
DiffStack/32_x_8.2_kB-10 57.541Mi ± 0% 3.198Mi ± 0% -94.44% (p=0.000 n=10)
DiffStack/48_x_8.2_kB-10 121.703Mi ± 0% 5.810Mi ± 0% -95.23% (p=0.000 n=10)
DiffStack/64_x_8.2_kB-10 200.588Mi ± 0% 7.495Mi ± 0% -96.26% (p=0.000 n=10)
DiffStack/1_x_33_kB-10 562.5Ki ± 0% 136.3Ki ± 0% -75.78% (p=0.000 n=10)
DiffStack/2_x_33_kB-10 2041.0Ki ± 0% 505.5Ki ± 0% -75.23% (p=0.000 n=10)
DiffStack/4_x_33_kB-10 5.874Mi ± 0% 1.129Mi ± 0% -80.78% (p=0.000 n=10)
DiffStack/8_x_33_kB-10 18.837Mi ± 0% 2.410Mi ± 0% -87.21% (p=0.000 n=10)
DiffStack/16_x_33_kB-10 61.898Mi ± 0% 5.015Mi ± 0% -91.90% (p=0.000 n=10)
DiffStack/32_x_33_kB-10 221.69Mi ± 0% 10.36Mi ± 0% -95.32% (p=0.000 n=10)
DiffStack/48_x_33_kB-10 430.13Mi ± 0% 18.50Mi ± 0% -95.70% (p=0.000 n=10)
DiffStack/64_x_33_kB-10 722.07Mi ± 0% 21.63Mi ± 0% -97.00% (p=0.000 n=10)
DiffStack/2_x_131_kB-10 8.098Mi ± 0% 1.656Mi ± 0% -79.55% (p=0.000 n=10)
DiffStack/4_x_131_kB-10 22.662Mi ± 0% 3.934Mi ± 0% -82.64% (p=0.000 n=10)
DiffStack/8_x_131_kB-10 65.217Mi ± 0% 8.425Mi ± 0% -87.08% (p=0.000 n=10)
DiffStack/16_x_131_kB-10 204.90Mi ± 0% 17.22Mi ± 1% -91.60% (p=0.000 n=10)
DiffStack/32_x_131_kB-10 703.12Mi ± 0% 34.89Mi ± 0% -95.04% (p=0.000 n=10)
DiffStack/48_x_131_kB-10 1505.36Mi ± 0% 61.24Mi ± 0% -95.93% (p=0.000 n=10)
DiffStack/64_x_131_kB-10 2586.04Mi ± 0% 70.48Mi ± 1% -97.27% (p=0.000 n=10)
DiffStack/1_x_524_kB-10 11.854Mi ± 1% 2.127Mi ± 0% -82.06% (p=0.000 n=10)
DiffStack/2_x_524_kB-10 32.932Mi ± 1% 6.558Mi ± 1% -80.09% (p=0.000 n=10)
DiffStack/4_x_524_kB-10 90.04Mi ± 0% 15.15Mi ± 0% -83.17% (p=0.000 n=10)
DiffStack/8_x_524_kB-10 252.94Mi ± 0% 32.27Mi ± 1% -87.24% (p=0.000 n=10)
DiffStack/16_x_524_kB-10 801.77Mi ± 0% 66.46Mi ± 1% -91.71% (p=0.000 n=10)
DiffStackRecorded/two-large-checkpoints.json-10 103.67Mi ± 0% 35.52Mi ± 0% -65.74% (p=0.000 n=10)
DiffStackRecorded/checkpoints.json-10 913.90Mi ± 0% 53.53Mi ± 1% -94.14% (p=0.000 n=10)
geomean 19.16Mi 2.409Mi -87.43%
│ buffer-pool.txt │ spanned.txt │
│ allocs/op │ allocs/op vs base │
DiffStack/1_x_2_B-10 344.0 ± 0% 184.0 ± 0% -46.51% (p=0.000 n=10)
DiffStack/2_x_2_B-10 616.0 ± 0% 295.0 ± 0% -52.11% (p=0.000 n=10)
DiffStack/4_x_2_B-10 1381.0 ± 0% 524.0 ± 0% -62.06% (p=0.000 n=10)
DiffStack/8_x_2_B-10 3.922k ± 0% 1.032k ± 0% -73.69% (p=0.000 n=10)
DiffStack/16_x_2_B-10 12.791k ± 0% 2.233k ± 0% -82.54% (p=0.000 n=10)
DiffStack/32_x_2_B-10 43.416k ± 0% 5.410k ± 0% -87.54% (p=0.000 n=10)
DiffStack/48_x_2_B-10 95.803k ± 0% 9.036k ± 0% -90.57% (p=0.000 n=10)
DiffStack/64_x_2_B-10 156.99k ± 0% 13.99k ± 0% -91.09% (p=0.000 n=10)
DiffStack/1_x_8.2_kB-10 335.0 ± 0% 182.0 ± 0% -45.67% (p=0.000 n=10)
DiffStack/2_x_8.2_kB-10 597.5 ± 0% 295.0 ± 0% -50.63% (p=0.000 n=10)
DiffStack/4_x_8.2_kB-10 1304.0 ± 0% 527.0 ± 0% -59.59% (p=0.000 n=10)
DiffStack/8_x_8.2_kB-10 3.475k ± 0% 1.036k ± 0% -70.19% (p=0.000 n=10)
DiffStack/16_x_8.2_kB-10 10.677k ± 0% 2.239k ± 0% -79.03% (p=0.000 n=10)
DiffStack/32_x_8.2_kB-10 35.357k ± 0% 5.414k ± 0% -84.69% (p=0.000 n=10)
DiffStack/48_x_8.2_kB-10 72.782k ± 0% 9.296k ± 0% -87.23% (p=0.000 n=10)
DiffStack/64_x_8.2_kB-10 119.24k ± 0% 14.26k ± 0% -88.04% (p=0.000 n=10)
DiffStack/1_x_33_kB-10 309.0 ± 0% 182.0 ± 0% -41.10% (p=0.000 n=10)
DiffStack/2_x_33_kB-10 594.0 ± 0% 296.0 ± 0% -50.17% (p=0.000 n=10)
DiffStack/4_x_33_kB-10 1324.5 ± 0% 528.0 ± 0% -60.14% (p=0.000 n=10)
DiffStack/8_x_33_kB-10 3.554k ± 0% 1.047k ± 0% -70.54% (p=0.000 n=10)
DiffStack/16_x_33_kB-10 10.511k ± 0% 2.232k ± 0% -78.77% (p=0.000 n=10)
DiffStack/32_x_33_kB-10 35.147k ± 0% 5.194k ± 0% -85.22% (p=0.000 n=10)
DiffStack/48_x_33_kB-10 66.519k ± 0% 8.958k ± 0% -86.53% (p=0.000 n=10)
DiffStack/64_x_33_kB-10 110.71k ± 0% 13.28k ± 0% -88.00% (p=0.000 n=10)
DiffStack/2_x_131_kB-10 644.0 ± 0% 296.0 ± 0% -54.04% (p=0.000 n=10)
DiffStack/4_x_131_kB-10 1418.5 ± 0% 535.0 ± 0% -62.28% (p=0.000 n=10)
DiffStack/8_x_131_kB-10 3.497k ± 0% 1.047k ± 0% -70.06% (p=0.000 n=10)
DiffStack/16_x_131_kB-10 9.805k ± 0% 2.182k ± 0% -77.75% (p=0.000 n=10)
DiffStack/32_x_131_kB-10 30.996k ± 0% 5.040k ± 0% -83.74% (p=0.000 n=10)
DiffStack/48_x_131_kB-10 63.751k ± 0% 8.656k ± 0% -86.42% (p=0.000 n=10)
DiffStack/64_x_131_kB-10 107.97k ± 0% 13.03k ± 0% -87.93% (p=0.000 n=10)
DiffStack/1_x_524_kB-10 356.0 ± 0% 186.0 ± 0% -47.75% (p=0.000 n=10)
DiffStack/2_x_524_kB-10 671.0 ± 0% 300.0 ± 0% -55.29% (p=0.000 n=10)
DiffStack/4_x_524_kB-10 1467.5 ± 0% 536.0 ± 0% -63.48% (p=0.000 n=10)
DiffStack/8_x_524_kB-10 3.553k ± 0% 1.038k ± 0% -70.80% (p=0.000 n=10)
DiffStack/16_x_524_kB-10 9.971k ± 0% 2.182k ± 0% -78.12% (p=0.000 n=10)
DiffStackRecorded/two-large-checkpoints.json-10 489.16k ± 0% 73.65k ± 0% -84.94% (p=0.000 n=10)
DiffStackRecorded/checkpoints.json-10 7236.9k ± 0% 857.8k ± 0% -88.15% (p=0.000 n=10)
geomean 7.989k 1.934k -75.79%
```
2023-05-05 02:15:09 +00:00
|
|
|
github.com/pgavlin/text v0.0.0-20230428184845-84c285f11d2f // indirect
|
2023-02-28 23:27:30 +00:00
|
|
|
github.com/pjbgf/sha1cd v0.3.0 // indirect
|
2022-10-05 15:53:00 +00:00
|
|
|
github.com/pkg/term v1.1.0 // indirect
|
2021-10-11 16:47:08 +00:00
|
|
|
github.com/pmezard/go-difflib v1.0.0 // indirect
|
2022-10-05 15:53:00 +00:00
|
|
|
github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect
|
2023-05-25 05:27:11 +00:00
|
|
|
github.com/rivo/uniseg v0.4.4 // indirect
|
2024-06-19 18:18:35 +00:00
|
|
|
github.com/rogpeppe/go-internal v1.12.0 // indirect
|
2022-03-28 13:43:56 +00:00
|
|
|
github.com/russross/blackfriday/v2 v2.1.0 // indirect
|
2021-10-11 16:47:08 +00:00
|
|
|
github.com/ryanuber/go-glob v1.0.0 // indirect
|
2022-04-21 11:23:36 +00:00
|
|
|
github.com/sabhiram/go-gitignore v0.0.0-20210923224102-525f6e181f06 // indirect
|
2022-10-05 15:53:00 +00:00
|
|
|
github.com/segmentio/asm v1.1.3 // indirect
|
|
|
|
github.com/shurcooL/httpfs v0.0.0-20190707220628-8d4bc4ba7749 // indirect
|
|
|
|
github.com/shurcooL/vfsgen v0.0.0-20200824052919-0d455de96546 // indirect
|
2024-04-25 14:30:00 +00:00
|
|
|
github.com/skeema/knownhosts v1.2.2 // indirect
|
2023-11-30 14:21:35 +00:00
|
|
|
github.com/sourcegraph/appdash-data v0.0.0-20151005221446-73f23eafcf67 // indirect
|
2023-06-16 14:24:59 +00:00
|
|
|
github.com/spf13/cast v1.4.1 // indirect
|
2022-04-21 11:23:36 +00:00
|
|
|
github.com/texttheater/golang-levenshtein v1.0.1 // indirect
|
2022-10-05 15:53:00 +00:00
|
|
|
github.com/tklauser/go-sysconf v0.3.10 // indirect
|
2022-04-07 13:50:26 +00:00
|
|
|
github.com/tklauser/numcpus v0.4.0 // indirect
|
2022-04-21 11:23:36 +00:00
|
|
|
github.com/uber/jaeger-client-go v2.30.0+incompatible // indirect
|
|
|
|
github.com/uber/jaeger-lib v2.4.1+incompatible // indirect
|
2023-02-02 15:28:14 +00:00
|
|
|
github.com/xanzy/ssh-agent v0.3.3 // indirect
|
2021-10-11 16:47:08 +00:00
|
|
|
github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f // indirect
|
|
|
|
github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect
|
2023-10-10 01:35:39 +00:00
|
|
|
github.com/yuin/goldmark v1.5.2 // indirect
|
|
|
|
github.com/yuin/goldmark-emoji v1.0.1 // indirect
|
2022-10-05 15:53:00 +00:00
|
|
|
github.com/yusufpapurcu/wmi v1.2.2 // indirect
|
2023-03-01 22:33:59 +00:00
|
|
|
go.opencensus.io v0.24.0 // indirect
|
2024-04-15 07:47:29 +00:00
|
|
|
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0 // indirect
|
|
|
|
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0 // indirect
|
Add InstrumentationScope to otelSpan (#15451)
# Description
Re https://github.com/pulumi/pulumi/pull/15439
I was trying out the `--otel` flag for trace export and got a nil
pointer in `span.InstrumentationScope`
```
Pulumi Version: 3.106.1-dev.0
Go Version: go1.21.7
Go Compiler: gc
Architecture: arm64
Operating System: darwin
Panic: runtime error: invalid memory address or nil pointer dereference
goroutine 1 [running]:
runtime/debug.Stack()
/opt/homebrew/Cellar/go/1.21.7/libexec/src/runtime/debug/stack.go:24 +0x64
main.panicHandler(0x1400231feff)
/Users/julien/Projects/pulumi/pulumi/pkg/cmd/pulumi/main.go:35 +0x44
panic({0x107033d20?, 0x1087b94c0?})
/opt/homebrew/Cellar/go/1.21.7/libexec/src/runtime/panic.go:914 +0x218
main.(*otelSpan).InstrumentationScope(0x1072ffe40?)
<autogenerated>:1 +0x34
go.opentelemetry.io/otel/exporters/otlp/otlptrace/internal/tracetransform.Spans({0x140015a3000, 0x1, 0x1?})
/Users/julien/Projects/go/pkg/mod/go.opentelemetry.io/otel/exporters/otlp/otlptrace@v1.19.0/internal/tracetransform/span.go:51 +0x168
go.opentelemetry.io/otel/exporters/otlp/otlptrace.(*Exporter).ExportSpans(0x14002000050, {0x107482ec8, 0x1089ffe20}, {0x140015a3000?, 0x1400231fb08?, 0x1?})
/Users/julien/Projects/go/pkg/mod/go.opentelemetry.io/otel/exporters/otlp/otlptrace@v1.19.0/exporter.go:44 +0x38
main.exportTraceToOtel({0x10745ae08, 0x140015155a0}, 0x1)
/Users/julien/Projects/pulumi/pulumi/pkg/cmd/pulumi/convert-trace.go:645 +0x3c0
main.newConvertTraceCmd.func1(0x0?, {0x14001515540, 0x1, 0x0?})
/Users/julien/Projects/pulumi/pulumi/pkg/cmd/pulumi/convert-trace.go:677 +0xf8
main.newConvertTraceCmd.RunFunc.func2(0x0?, {0x14001515540?, 0x0?, 0x0?})
/Users/julien/Projects/pulumi/pulumi/sdk/go/common/util/cmdutil/exit.go:99 +0x28
main.newConvertTraceCmd.RunFunc.RunResultFunc.func5(0x1400157a900?, {0x14001515540, 0x1, 0x2})
/Users/julien/Projects/pulumi/pulumi/sdk/go/common/util/cmdutil/exit.go:115 +0x34
github.com/spf13/cobra.(*Command).execute(0x14001592600, {0x14001515520, 0x2, 0x2})
/Users/julien/Projects/go/pkg/mod/github.com/spf13/cobra@v1.7.0/command.go:944 +0x654
github.com/spf13/cobra.(*Command).ExecuteC(0x14000d5f800)
/Users/julien/Projects/go/pkg/mod/github.com/spf13/cobra@v1.7.0/command.go:1068 +0x320
github.com/spf13/cobra.(*Command).Execute(...)
/Users/julien/Projects/go/pkg/mod/github.com/spf13/cobra@v1.7.0/command.go:992
main.main()
/Users/julien/Projects/pulumi/pulumi/pkg/cmd/pulumi/main.go:56 +0x54
```
## Checklist
- [x] I have run `make tidy` to update any new dependencies
- [x] I have run `make lint` to verify my code passes the lint check
- [x] I have formatted my code using `gofumpt`
<!--- Please provide details if the checkbox below is to be left
unchecked. -->
- [ ] I have added tests that prove my fix is effective or that my
feature works
<!---
User-facing changes require a CHANGELOG entry.
-->
- [ ] I have run `make changelog` and committed the
`changelog/pending/<file>` documenting my change
<!--
If the change(s) in this PR is a modification of an existing call to the
Pulumi Cloud,
then the service should honor older versions of the CLI where this
change would not exist.
You must then bump the API version in
/pkg/backend/httpstate/client/api.go, as well as add
it to the service.
-->
- [ ] Yes, there are changes in this PR that warrants bumping the Pulumi
Cloud API version
<!-- @Pulumi employees: If yes, you must submit corresponding changes in
the service repo. -->
2024-02-20 12:09:14 +00:00
|
|
|
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0 // indirect
|
2024-04-15 07:47:29 +00:00
|
|
|
go.opentelemetry.io/otel/metric v1.24.0 // indirect
|
Add InstrumentationScope to otelSpan (#15451)
# Description
Re https://github.com/pulumi/pulumi/pull/15439
I was trying out the `--otel` flag for trace export and got a nil
pointer in `span.InstrumentationScope`
```
Pulumi Version: 3.106.1-dev.0
Go Version: go1.21.7
Go Compiler: gc
Architecture: arm64
Operating System: darwin
Panic: runtime error: invalid memory address or nil pointer dereference
goroutine 1 [running]:
runtime/debug.Stack()
/opt/homebrew/Cellar/go/1.21.7/libexec/src/runtime/debug/stack.go:24 +0x64
main.panicHandler(0x1400231feff)
/Users/julien/Projects/pulumi/pulumi/pkg/cmd/pulumi/main.go:35 +0x44
panic({0x107033d20?, 0x1087b94c0?})
/opt/homebrew/Cellar/go/1.21.7/libexec/src/runtime/panic.go:914 +0x218
main.(*otelSpan).InstrumentationScope(0x1072ffe40?)
<autogenerated>:1 +0x34
go.opentelemetry.io/otel/exporters/otlp/otlptrace/internal/tracetransform.Spans({0x140015a3000, 0x1, 0x1?})
/Users/julien/Projects/go/pkg/mod/go.opentelemetry.io/otel/exporters/otlp/otlptrace@v1.19.0/internal/tracetransform/span.go:51 +0x168
go.opentelemetry.io/otel/exporters/otlp/otlptrace.(*Exporter).ExportSpans(0x14002000050, {0x107482ec8, 0x1089ffe20}, {0x140015a3000?, 0x1400231fb08?, 0x1?})
/Users/julien/Projects/go/pkg/mod/go.opentelemetry.io/otel/exporters/otlp/otlptrace@v1.19.0/exporter.go:44 +0x38
main.exportTraceToOtel({0x10745ae08, 0x140015155a0}, 0x1)
/Users/julien/Projects/pulumi/pulumi/pkg/cmd/pulumi/convert-trace.go:645 +0x3c0
main.newConvertTraceCmd.func1(0x0?, {0x14001515540, 0x1, 0x0?})
/Users/julien/Projects/pulumi/pulumi/pkg/cmd/pulumi/convert-trace.go:677 +0xf8
main.newConvertTraceCmd.RunFunc.func2(0x0?, {0x14001515540?, 0x0?, 0x0?})
/Users/julien/Projects/pulumi/pulumi/sdk/go/common/util/cmdutil/exit.go:99 +0x28
main.newConvertTraceCmd.RunFunc.RunResultFunc.func5(0x1400157a900?, {0x14001515540, 0x1, 0x2})
/Users/julien/Projects/pulumi/pulumi/sdk/go/common/util/cmdutil/exit.go:115 +0x34
github.com/spf13/cobra.(*Command).execute(0x14001592600, {0x14001515520, 0x2, 0x2})
/Users/julien/Projects/go/pkg/mod/github.com/spf13/cobra@v1.7.0/command.go:944 +0x654
github.com/spf13/cobra.(*Command).ExecuteC(0x14000d5f800)
/Users/julien/Projects/go/pkg/mod/github.com/spf13/cobra@v1.7.0/command.go:1068 +0x320
github.com/spf13/cobra.(*Command).Execute(...)
/Users/julien/Projects/go/pkg/mod/github.com/spf13/cobra@v1.7.0/command.go:992
main.main()
/Users/julien/Projects/pulumi/pulumi/pkg/cmd/pulumi/main.go:56 +0x54
```
## Checklist
- [x] I have run `make tidy` to update any new dependencies
- [x] I have run `make lint` to verify my code passes the lint check
- [x] I have formatted my code using `gofumpt`
<!--- Please provide details if the checkbox below is to be left
unchecked. -->
- [ ] I have added tests that prove my fix is effective or that my
feature works
<!---
User-facing changes require a CHANGELOG entry.
-->
- [ ] I have run `make changelog` and committed the
`changelog/pending/<file>` documenting my change
<!--
If the change(s) in this PR is a modification of an existing call to the
Pulumi Cloud,
then the service should honor older versions of the CLI where this
change would not exist.
You must then bump the API version in
/pkg/backend/httpstate/client/api.go, as well as add
it to the service.
-->
- [ ] Yes, there are changes in this PR that warrants bumping the Pulumi
Cloud API version
<!-- @Pulumi employees: If yes, you must submit corresponding changes in
the service repo. -->
2024-02-20 12:09:14 +00:00
|
|
|
go.opentelemetry.io/proto/otlp v1.0.0 // indirect
|
2024-01-10 15:16:36 +00:00
|
|
|
go.uber.org/atomic v1.9.0 // indirect
|
2024-06-05 06:22:01 +00:00
|
|
|
golang.org/x/sys v0.21.0 // indirect
|
2024-04-15 07:47:29 +00:00
|
|
|
golang.org/x/time v0.5.0 // indirect
|
2024-06-05 06:22:01 +00:00
|
|
|
golang.org/x/tools v0.22.0 // indirect
|
2024-02-01 09:39:41 +00:00
|
|
|
golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 // indirect
|
|
|
|
google.golang.org/appengine v1.6.8 // indirect
|
2024-04-15 07:47:29 +00:00
|
|
|
google.golang.org/genproto/googleapis/api v0.0.0-20240311173647-c811ad7063a7 // indirect
|
|
|
|
google.golang.org/genproto/googleapis/rpc v0.0.0-20240311173647-c811ad7063a7 // indirect
|
2024-07-30 19:21:26 +00:00
|
|
|
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect
|
2021-10-11 16:47:08 +00:00
|
|
|
gopkg.in/warnings.v0 v0.1.2 // indirect
|
2022-06-15 19:11:20 +00:00
|
|
|
lukechampine.com/frand v1.4.2 // indirect
|
2024-03-26 17:24:37 +00:00
|
|
|
mvdan.cc/gofumpt v0.5.0 // indirect
|
2022-02-09 11:31:30 +00:00
|
|
|
)
|