• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

hyperledger / fabric-x-committer / 36686839933
91%
main: 91%

Build:
Build:
LAST BUILD BRANCH: feature/adding_release_binary_workflow
DEFAULT BRANCH: main
Ran 30 Sep 2026 08:03AM UTC
Jobs 3
Files 141
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

30 Sep 2026 07:58AM UTC coverage: 90.599% (-0.1%) from 90.735%
36686839933

Pull #840

github

liran-funaro
[sidecar] Parse a block's transactions in parallel

#### Type of change

- Improvement (improvement to code, performance, etc)

#### Description

- Splits `mapBlock` into a parallel parse and a serial fold. `parseMessages` parses, classifies
  and validates each message across up to `max-workers-for-tx-parsing` goroutines, each given at
  least `min-tx-parsing-batch-size` messages, and `applyParsedTX` folds the results into the
  block in message order.
- Adds the sidecar `max-workers-for-tx-parsing` (default 1, parsing on one goroutine) and
  `min-tx-parsing-batch-size` (default 256) settings.
- The TX ID dedup set, the one-snapshot-per-block rule and the batch order stay single-threaded,
  so which transactions a block accepts and rejects does not depend on how parsing was split.
- Replaces `mapConfigTx` with `parseConfigTx` and `appendConfigTx`: a config TX is validated in
  the parallel pass, where failing the block is still an option, and appended in the serial one.
- Each parse worker builds its own messages' TxWithRefs in #833's per-block slabs, now allocated in
  `parseMessages`, so the slabs need no locking.

#### Related issues

- resolves #786

Signed-off-by: Liran Funaro <liran.funaro@gmail.com>

# Conflicts:
#	cmd/config/samples/sidecar.yaml
#	service/sidecar/relay.go
#	service/sidecar/relay_test.go
#	service/sidecar/sidecar.go

# Please enter the commit message for your changes. Lines starting
# with '#' will be kept; you may remove them yourself if you want to.
# An empty message aborts the commit.
#
# interactive rebase in progress; onto b2e37863f
# Last command done (1 command done):
#    pick c99857caf # [sidecar] Parse a block's transactions in parallel
# No commands remaining.
# You are currently rebasing branch 'feat/sidecar-parallel-parse' on 'b2e37863f'.
#
# Changes to be committed:
#	modified:   cmd/config/app_config_test.go
#	modified:   cmd/config/samples/sidecar.yaml
#	modified:   docs/performance-tuning.md
#	modified:   doc... (continued)
Pull Request #840: [sidecar] Parse a block's transactions in parallel

56 of 64 new or added lines in 3 files covered. (87.5%)

34 existing lines in 8 files now uncovered.

9762 of 10775 relevant lines covered (90.6%)

11654.37 hits per line

Uncovered Changes

Lines Coverage ∆ File
8
88.37
1.93% service/sidecar/mapping.go

Coverage Regressions

Lines Coverage ∆ File
7
81.11
-1.11% service/sidecar/sidecar.go
7
93.37
-3.57% service/coordinator/coordinator.go
6
83.33
-1.96% service/vc/database.go
4
93.27
-3.85% mock/coordinator.go
4
74.26
-3.96% service/vc/validator.go
3
90.32
-1.61% service/vc/validator_committer_service.go
2
86.47
-1.5% service/vc/committer.go
1
76.0
-2.0% utils/utils.go
Jobs
ID Job ID Ran Files Coverage
1 unit-test - 36686839933.1 30 Sep 2026 08:05AM UTC 95
86.17
GitHub Action Run
2 db-test - 36686839933.2 30 Sep 2026 08:03AM UTC 141
78.48
GitHub Action Run
3 core-db-test - 36686839933.3 30 Sep 2026 08:05AM UTC 108
48.93
GitHub Action Run
Source Files on build 36686839933
  • Tree
  • List 141
  • Changed 16
  • Source Changed 0
  • Coverage Changed 16
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Pull Request #840
  • PR Base - main (#36565007287)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc