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

bedrock-kv / bedrock / e2dd803db1a7f390633bba764a1d3e740e1050ce
82%

Build:
DEFAULT BRANCH: develop
Ran 24 Aug 2026 11:07PM UTC
Jobs 1
Files 216
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

24 Aug 2026 11:06PM UTC coverage: 77.968% (+0.1%) from 77.821%
e2dd803db1a7f390633bba764a1d3e740e1050ce

push

github

web-flow
The system shard is looked up, never discovered or invented (#203)

Recovery found tag 0 by **roll call**: it locked every advertised
materializer in the cluster, asked each which shard it served, and ran a
most-advanced-durable **contest** to pick one. If none answered, it
**created an empty materializer and read the cluster's shard layout out
of it**.

Both halves are gone. `CoreState` now carries the system shard's
members, so recovery looks them up.

## FDB has the same indirection — and a stricter discipline

FDB's coordinated state names the tlogs that hold the `txnStateStore`.
Recovery builds its log system from exactly those servers and locks
exactly those (`TagPartitionedLogSystem.actor.cpp:2549-2585`), then
waits for a quorum of **them**:

```cpp
// W + (N - R) < F, and optimally (N-W)+(N-R)=F-1.  Thus R=N+1-F+W.
int requiredCount = logSet->logServers.size() + 1 - tLogReplicationFactor + tLogWriteAntiQuorum;
```

Derived in the source so no replica set can be entirely
out-of-date-or-unavailable (`:2076-2082`). It never substitutes another
server and never fabricates one. **An unavailable named member is a
wait, not a fallback.**

So an existing cluster that cannot reach its named members now
**stalls**. The director retries; an operator can see why. Recovery
manufacturing the store its own metadata lives in would come up
"successfully" on an empty layout and orphan the cluster's data — the
failure mode most worth refusing.

Creation survives in exactly one place: a **fresh** cluster seeding tag
0, where there is no prior data and nothing is invented.

## The contest was asking the wrong question twice

- The strays it existed to filter out were made by **recovery's own
invent path**.
- `durable_version` measures **stream position**, not data completeness
— a worker that started empty and pulled the log tail can rank at or
above one holding the whole shard.

The fallback for tags the family doesn't name is now the **lowest worker
id** — the s... (continued)

21 of 26 new or added lines in 5 files covered. (80.77%)

254 existing lines in 20 files now uncovered.

6699 of 8592 relevant lines covered (77.97%)

1031.84 hits per line

Uncovered Changes

Lines Coverage ∆ File
4
50.0
-6.0% lib/bedrock/control_plane/director/recovery/persistence_phase.ex
1
93.33
lib/bedrock/control_plane/config/core_state.ex

Coverage Regressions

Lines Coverage ∆ File
77
38.71
-1.54% lib/bedrock/control_plane/coordinator/server.ex
65
0.0
0.0% lib/bedrock/object_storage/s3.ex
23
84.28
1.89% lib/bedrock/control_plane/director/recovery/materializer_bootstrap_phase.ex
21
50.0
-6.0% lib/bedrock/control_plane/director/recovery/persistence_phase.ex
11
88.54
0.91% lib/bedrock/control_plane/director/recovery/log_recruitment_phase.ex
11
90.09
0.51% lib/bedrock/control_plane/distributor/server.ex
7
80.22
4.08% lib/bedrock/control_plane/director/recovery.ex
6
90.91
0.43% lib/bedrock/object_storage/local_filesystem.ex
5
91.08
-0.58% lib/bedrock/data_plane/demux/shard_server.ex
5
87.27
-0.06% lib/bedrock/data_plane/materializer/olivine/server.ex
5
92.96
0.0% lib/bedrock/object_storage/chunk_reader.ex
4
89.19
0.0% lib/bedrock/control_plane/director/recovery/locking_phase.ex
4
88.1
-3.8% lib/bedrock/object_storage/snapshot.ex
3
90.91
0.28% lib/bedrock/object_storage.ex
2
88.89
0.0% lib/bedrock/control_plane/coordinator/state.ex
1
62.5
3.68% lib/bedrock/control_plane/coordinator/telemetry.ex
1
97.37
0.0% lib/bedrock/control_plane/director/recovery/log_recovery_planning_phase.ex
1
80.0
0.0% lib/bedrock/control_plane/distributor/placeholder.ex
1
97.87
0.58% lib/bedrock/data_plane/commit_proxy/routing_data.ex
1
94.87
0.13% lib/bedrock/system_keys/reader.ex
Jobs
ID Job ID Ran Files Coverage
1 e2dd803db1a7f390633bba764a1d3e740e1050ce.1 24 Aug 2026 11:07PM UTC 216
77.97
GitHub Action Run
Source Files on build e2dd803db1a7f390633bba764a1d3e740e1050ce
  • Tree
  • List 216
  • Changed 29
  • Source Changed 0
  • Coverage Changed 29
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • e2dd803d on github
  • Prev Build on develop (#D1FF4946...)
  • Next Build on develop (#F3348554...)
  • Delete
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