chore(deps): upgrade aerospike-client-go/v8 to v8.7.0, drop v8.2.0 replace#805
Draft
oskarszoon wants to merge 1 commit intobsv-blockchain:mainfrom
Draft
chore(deps): upgrade aerospike-client-go/v8 to v8.7.0, drop v8.2.0 replace#805oskarszoon wants to merge 1 commit intobsv-blockchain:mainfrom
oskarszoon wants to merge 1 commit intobsv-blockchain:mainfrom
Conversation
… replace The repo previously pinned the Aerospike Go client to v8.2.0 via a `replace` directive (PR bsv-blockchain#301) to avoid a performance regression introduced in v8.3 by detailed metrics in the hot path (upstream issue aerospike/aerospike-client-go#565). v8.6.0 release notes claim "Changes to improve performance regression with detailed metrics in hot path. [CLIENT-3968]". v8.7.0 is the latest minor and also pulls in several panic-in-goroutine fixes shipped in v8.6.0 (DynConfig.logUpdate nil-deref, BatchDelete/BatchGet/BatchOperate panics). Production binaries shipped under tag v0.15.0-beta-3 show v8.4.2 stack-trace paths despite the source-side replace, so the build pipeline appears not to honour it. Aligning the direct require with the latest version eliminates the ambiguity and gives us the upstream fixes either way. A local n=3 benchmark of `BenchmarkSetMinedMulti` (M3 Max + testcontainers) shows v8.7.0 vs v8.2.0 geomean: sec/op +14%, B/op -7%, allocs/op -11%. With n=3 no per-row p<0.05; treated as suggestive, not confirmatory. Re-bench under load on a steady runner before relying on the perf direction. The upstream issue bsv-blockchain#565 is still listed as OPEN, so the regression status warrants follow-up upstream regardless of changelog wording. The unrelated `Cluster.tend` -> `(*Guard).InitDoVal(nil, ...)` panic seen on `bsva-ovh-teranode-ttn-eu-4` is unchanged in v8.7.0 (cluster.go and refreshPartitions are byte-identical to v8.4.2). That upstream bug will be filed separately.
Contributor
Benchmark Comparison ReportBaseline: Current: Summary
All benchmark results (sec/op)
Threshold: >10% with p < 0.05 | Generated: 2026-05-04 13:19 UTC |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
github.com/aerospike/aerospike-client-go/v8fromv8.4.2(withreplace ... => v8.2.0) tov8.7.0as a direct require, no replace.v8.4.2paths despite the source-side replace) with the version declared ingo.mod.Why drop the replace
The replace was added in #301 (Dec 2025) to side-step the v8.3+ perf regression tracked upstream as aerospike/aerospike-client-go#565. Upstream issue is still listed as OPEN, but v8.6.0 release notes call out Changes to improve performance regression with detailed metrics in hot path. [CLIENT-3968]. v8.7.0 inherits that change.
Benchmarks (suggestive, not confirmatory)
n=3, M3 Max laptop, testcontainers Aerospike,
go test -bench BenchmarkSetMinedMulti -count=3 ./stores/utxo/aerospike/.Direction suggests CLIENT-3968 reduced allocations but didn't fully claw back the CPU cost from #565. Needs a steadier runner and n ≥ 10 before treating as a real regression. Tracked as a follow-up.
Out of scope
Cluster.tend→(*Guard).InitDoVal(nil, ...)panic seen onbsva-ovh-teranode-ttn-eu-4is unchanged in v8.7.0 (cluster.goandrefreshPartitionsare byte-identical to v8.4.2). I'll file an upstream issue with the stack trace separately.Test plan
go mod tidy— cleango build ./...— greengo test -short -race ./stores/utxo/aerospike/...— 446 passgo test -short -tags testtxmetacache ./services/blockassembly/...— 989 pass (1 unrelated flake passes alone)go vet ./...— only pre-existing test/utils issues