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

apache / bookkeeper / 324 / 1
72%
master: 72%

Build:
DEFAULT BRANCH: master
Ran 09 Jan 2019 02:52PM UTC
Files 494
Run time 40s
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

09 Jan 2019 02:52PM UTC coverage: 72.198% (+0.1%) from 72.077%
324.1

push

jenkins

GitHub
Allow to configure sticky reads

### Motivation

Currently the BK client is issuing the read requests in round-robin fashion across all the bookies in the write set.

One issue with this approach is that it's not taking full advantage of the read-ahead cache, either explicit (like in `DbLedgerStorage`) or implicit (by reading data through Linux page cache which will do some prefetching).

With `e=2`, `w=2`, when we read `e-0` from `bookie-1` and `e-1` from `bookie-2`, we fail to take advantage of the fact that `bookie-1` will have already `e-1` in memory.

Effectively with `e-2`, `w-2` the disk read IO will be doubled, compared to the amount of data served to BK clients. The larger the quorum, the bigger will be overhead (eg: `e=5`, `w=5` will lead to 5x reads from disk).

### Changes

Added a BK client flag for "sticky reads". When reading from a ledger that has `E=W` (every bookie has all the entries), the sticky reads will direct all read request to 1 single bookie in the ensemble.

Reviewers: Enrico Olivelli <eolivelli@gmail.com>, Sijie Guo <sijie@apache.org>

This closes #1808 from merlimat/single-bookie-per-ledger-read-master

26151 of 36221 relevant lines covered (72.2%)

0.72 hits per line

Source Files on job 324.1
  • Tree
  • List 0
  • Changed 51
  • Source Changed 38
  • Coverage Changed 51
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Build 324
  • 4c858771 on github
  • Prev Job for on master (#323.1)
  • Next Job for on master (#325.1)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc