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

bedrock-kv / bedrock
78%
develop: 82%

Build:
Build:
LAST BUILD BRANCH: bedrock-5yi/election-flapping
DEFAULT BRANCH: develop
Repo Added 02 Oct 2025 12:09AM UTC
Token s5ZhiY9p3BKcBOY6Au8fohhCDmrp89s9W regen
Build 582 Last
Files 216
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

LAST BUILD ON BRANCH integration/commit-path-perf
branch: integration/commit-path-perf
CHANGE BRANCH
x
Reset
Sync Branches
  • integration/commit-path-perf
  • bedrock-162/atomic-localfs-cas
  • bedrock-1cp/object-storage-resolution
  • bedrock-22g/spread-materializer-placement
  • bedrock-31d/app-env-overrides-use-config
  • bedrock-3t9/durability-params
  • bedrock-5yi/election-flapping
  • bedrock-783/mint-audit-gap
  • bedrock-80f/peer-cluster-spike
  • bedrock-8cx/mutation-order
  • bedrock-93j/genserverapi-start-link
  • bedrock-a4n-hunt-dead-code
  • bedrock-awj.1/link-foreman-order
  • bedrock-awj.2/tsl-validation-fresh
  • bedrock-b28/fix-read-conflict-encoding
  • bedrock-bkj/tsl-lifecycle
  • bedrock-bkt/plt-cache-key
  • bedrock-ck3/reclaim-scratch-files
  • bedrock-czn/fix-strict-test-warnings
  • bedrock-dead-code-sweep
  • bedrock-egw/legacy-bed0-compat
  • bedrock-fae/gh-141-layout-boundaries
  • bedrock-gu0.5/ignore-stale-worker-health
  • bedrock-hve.1/fsck-chunk-structure
  • bedrock-jb4/index-manager-stats-accounting
  • bedrock-jq8/fix-task-exit-crash
  • bedrock-jsu/credo-nesting-empty-enum
  • bedrock-jyy/0-7-1-changelog
  • bedrock-jyy/0-7-1-retag
  • bedrock-jyy/fix-package-smoke
  • bedrock-jyy/release-0-7-1
  • bedrock-jyy/release-main-0-7-1
  • bedrock-jzh/local-filesystem-moduledoc
  • bedrock-km1/filter-localfs-internal-files
  • bedrock-ls9/director-notification-attribution
  • bedrock-mi1/selector-position-arithmetic
  • bedrock-ngl/timeout-window-advance-guard
  • bedrock-oep/empty-range
  • bedrock-p5v/fix-olivine-right-edge
  • bedrock-q67.21.13/recovery-stops-at-tag-0
  • bedrock-q67.21.14/rename-components
  • bedrock-q67.21.15/exclusion-safety-log-record
  • bedrock-q67.21.19/unparseable-keys-are-errors
  • bedrock-q67.21.20/bootstrap-membership
  • bedrock-q67.21.8/materializer-idle-timeout-config
  • bedrock-q67.26/gate-system-reads
  • bedrock-q67.35/trim-batch-finalized-at
  • bedrock-q67.36/arm-heartbeat-on-recover
  • bedrock-q67.44/no-evict-on-slow
  • bedrock-qb0g/thread-tx-through-recovery
  • bedrock-qj1/read-timeouts
  • bedrock-s9x/fix-transaction-builder-down-race
  • bedrock-sfu/normalize-exit-reasons
  • bedrock-skill-upgrade
  • bedrock-tah/livebook-placeholder-cleanup
  • bedrock-uvk/retry-telemetry-deterministic
  • bedrock-uvk/shard-server-retry-telemetry-flake
  • bedrock-v65/link-epoch-fencing
  • bedrock-vih/atomic-segment-preallocation
  • bedrock-w10/leader-durable-core-state
  • bedrock-wjt/compaction-version
  • bedrock-wxf.7/object-storage-disk-cache
  • bedrock-xfc/fix-dets-test-lifecycle
  • bedrock-zi44/snapshot-upload-policy
  • ccarvalho/fix-conflict-resolution-retries
  • chore/bedrock-fu8-dep-updates
  • chore/bedrock-qep-remove-beads-gitignore
  • ci/matrix-elixir-1.19.5-1.20.2
  • ci/otp-29-matrix
  • codex/recover-shard-materializers-on-restart
  • credo-specs-lib-only
  • develop
  • docs/readme-story
  • docs/readme-tighten
  • feature/bedrock-4jo
  • feature/bedrock-as6j
  • feature/bedrock-w84
  • feature/bedrock-wsq
  • feature/increase_test_coverage
  • feature/q67-death-healing
  • feature/q67-death-healing-reconciled
  • feature/q67-distributor
  • feature/q67-idle-spindown
  • feature/q67-log-trimming
  • feature/q67-metadata-pipeline
  • feature/q67-metadata-window-protocol
  • feature/q67-phase-a
  • feature/q67-phase-b-prereqs
  • feature/q67-placeholder
  • feature/q67-readoption
  • feature/q67-recovery-relaxation
  • feature/q67-recruitment
  • feature/q67-shard-key-clearing
  • feature/q67-sharded-abort-metadata
  • feature/q67-spindown-readoption
  • feature/q67-system-key-encoding
  • feature/q67-system-keyspace-guide
  • feature/q67-tag0-death
  • feature/q67-tsl-delta
  • feature/q67.21.1-distributor-lock
  • feature/q67.21.10-drop-layout-logs
  • feature/q67.21.11-core-state
  • feature/q67.21.12-system-materializers
  • feature/q67.21.13-recovery-stops-at-tag-0
  • feature/q67.21.16-shard-readability
  • feature/q67.21.17-listing-truthfulness
  • feature/q67.21.2-recovery-read-heal
  • feature/q67.21.3a-distributor-singleton
  • feature/q67.21.3b-placeholder
  • feature/q67.21.4a-recruitment
  • feature/q67.21.4b-healing
  • feature/q67.21.5-audit-fixes
  • feature/q67.21.5-idle-spindown
  • feature/q67.21.5b-adoption
  • feature/q67.21.6-in-band-retirement
  • feature/q67.21.9-materializer-set
  • feature/q67.37-typed-unlock-seed
  • feature/q67.38-tsl-services-kill
  • feature/q67.38-worker-self-displacement
  • feature/q67.40-by-key-routing
  • feature/q67.41-epoch-constant-logs
  • feature/q67.42-bootstrap-read-continuation
  • feature/q67.43-eval-cleanup
  • feature/q67.45-stale-window-exit
  • feature/q67.9-client-read-path
  • feature/q67.9-materializer-family
  • feature/q67.9-proxy-routing-endpoint
  • feature/q67.9-tsl-shard-field-kill
  • feature/reorganize_startup
  • feature/rework_olivine
  • feature/umbrella
  • feature/xma
  • fix/bedrock-287-health-fold-order
  • fix/bedrock-61c.1-cut-interval-coupling
  • fix/bedrock-61c.2-foreman-worker-enumeration
  • fix/bedrock-61c.3-recycler-max-available
  • fix/bedrock-ghd-local-object-atomicity
  • fix/bedrock-gu0.4-remove-wait-for-healthy
  • fix/bedrock-m7j-recycler-server-clauses
  • fix/bedrock-mxt-spinup-health
  • fix/bedrock-n5h-settle-health
  • fix/bedrock-n9w-placeholder-flake
  • fix/bedrock-wn6-hex-package-bloat
  • fix/bedrock-yp2-flaky-tests
  • fix/bedrock-z2e-monitor-workers
  • fix/deps-cve-hackney
  • fix/docs-warning-wal-format
  • fix/durable-read-path
  • fix/flaky-tests
  • fix/issue-68-fresh-cluster-routing
  • fix/issue-70-olivine-waitlist-timeout
  • fix/issue-71-materializer-bootstrap
  • fix/legacy-bootstrap-system-materializers
  • fix/legacy-materializer-family
  • fix/materializer-empty-log-descriptors
  • fix/read-intent-conflicts-bedrock-udr
  • fix/reading-waitlist-nil-reply-fn
  • intent-ledger/real-bedrock-semantics
  • jessestimpson-patch-1
  • main
  • perf/decorrelated-retry-backoff
  • q67.20.5/sharded-deferred-metadata
  • q67.22-converged-verdicts
  • q67.22-retry-replay
  • q67.24-routing-window-versioning
  • q67.24-serialized-routing
  • q67.24-versioned-shard-table
  • q67.27-review-followups
  • q67.28-pipeline-validation
  • q67.29-dead-code
  • q67.30-metadata-collapse
  • q67.31-unread-system-keys
  • q67.32-fail-fast-resolver
  • q67.33-exact-relay
  • rag-system-write-gating
  • rag/ingress-keyspace-bounds
  • release/0.4.0
  • test-coverage/basalt-logic
  • test-coverage/coordinator-durability
  • test-coverage/directory
  • test-coverage/finalization
  • test-coverage/layout-index
  • test-coverage/olivine-index-update
  • test-coverage/olivine-logic
  • test-coverage/olivine-reading
  • test-coverage/repo
  • test-coverage/transaction-encoding
  • worktree-qzr1-resolver-floor
  • worktree-qzr16-shard-ownership
  • worktree-qzr17-demux-drain
  • worktree-qzr18-replay-cursor
  • worktree-qzr19-compaction-cutover
  • worktree-qzr2-wal-trim
  • worktree-qzr20-minio-gate
  • worktree-qzr21-retain-stalled-attempt
  • worktree-qzr22-tsl-replay
  • worktree-qzr23-drain-backpressure
  • worktree-qzr24-persistence-docs
  • worktree-qzr25-rollover-publish
  • worktree-qzr26-sparse-preallocation
  • worktree-qzr27-cold-start
  • worktree-qzr28-uniform-transitions
  • worktree-qzr29-remove-floor-alarm

25 Aug 2026 02:38PM UTC coverage: 78.229% (-0.02%) from 78.252%
85d1f8940e6e86c1c235769f8156be459b605880-PR-210

Pull #210

github

jallum
Hold an open batch only while batches are actually filling

The proxy closed its batch on a zero timeout, which fires as soon as the
mailbox empties. With request/response clients that is immediately, so
the batch closed at one transaction and max_latency_in_ms was never
reached. Measured batch size was 1.0 at one-way concurrency and still
only 1.41 at 128-way: essentially every transaction paid a full
finalization round -- resolver plus log push, ~3.8ms.

Holding the window fixes throughput and hurts idle latency. Uncontended
writes to distinct keys, two runs averaged:

  policy        conc=1    conc=32    conc=128   p50 @128
  close now     1768/s     6749/s     7586/s    15-17ms
  hold 1ms       490/s    15598/s    24137/s     5-6ms
  adaptive      1952/s    17044/s    25962/s     4-6ms

So the wait is decided by whether recent batches FILLED. An idle proxy
sees batches of one, keeps its average low, and waits zero -- a lone
transaction is never delayed, which is the property the zero timeout got
right. Under load the average climbs within a few batches and the proxy
starts amortizing. Note the latency improves as well as the throughput:
batching removes more queueing than the deliberate wait adds.

The mechanism is two pure functions and one state field. A sweep found
larger holds strictly worse -- 8ms cost 12x at idle and LOST throughput
under load versus 1ms -- so the hold is 1ms, which is also FDB's
COMMIT_TRANSACTION_BATCH_INTERVAL_MIN.

FDB adapts the same knob from the other side: its interval tracks a
fraction of observed latency, smoothed, clamped to [1ms, 20ms]
(CommitProxyServer.actor.cpp:2843-2849, ServerKnobs.cpp:701-704). Its
floor is 1ms, so an idle FDB commit always pays it. Ours can reach zero
because version advancement is guaranteed separately by the
empty-transaction timeout.

max_latency_in_ms and max_per_batch are unchanged and still cap the
batch; this only decides whether waiting is worth it at all.

On the contended class-s... (continued)
Pull Request #210: Integration/commit path perf

30 of 36 new or added lines in 6 files covered. (83.33%)

30 existing lines in 5 files now uncovered.

6784 of 8672 relevant lines covered (78.23%)

1029.33 hits per line

Relevant lines Covered
Build:
Build:
8672 RELEVANT LINES 6784 COVERED LINES
1029.33 HITS PER LINE
Source Files on integration/commit-path-perf
  • Tree
  • List 217
  • Changed 1
  • Source Changed 0
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
85d1f894... integration/commit-path-perf Hold an open batch only while batches are actually filling The proxy closed its batch on a zero timeout, which fires as soon as the mailbox empties. With request/response clients that is immediately, so the batch closed at one transaction and max... Pull #210 25 Aug 2026 03:26PM UTC jallum github
78.23
See All Builds (582)

Badge your Repo: bedrock

We detected this repo isn’t badged! Grab the embed code to the right, add it to your repo to show off your code coverage, and when the badge is live hit the refresh button to remove this message.

Could not find badge in README.

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

Refresh
  • Settings
  • Repo on GitHub
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