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

apache / bookkeeper / 596
72%

Build:
DEFAULT BRANCH: master
Ran 09 Oct 2019 02:45PM CUT
Jobs 1
Files 539
Run time 57s
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

pending completion
596

push

jenkins

GitHub
Enhance deferLedgerLockReleaseOfFailedLedger in ReplicationWorker

Descriptions of the changes in this PR:

**Issue:** In the past, ReplicationWorker (RW) retrial logic is enhanced to backoff
replication after threshold number of replication failures of a ledger. This is
to help in a pathological situation where data (ledger/entry) is unavailable.
But this is sub-optimal solution, since there is possibility that each RW can
try recovering a ledger threshold number of times, before a RW defers
ledgerLockRelease. Also each time a RW tries to recover it would read entry/fragment
sequentially and writes to new bookies until it finds a missing entry (completely
unavailable) before failing on replication of that ledger. This is done for
each retrial and it bloats the storage and overreplication need to detect and
delete it, which runs once a day by default. So because of this cluster can
run out of storage space and may become RO cluster. Also this puts quite a bit of
load on cluster in vain.

**So the new proposal is to**
- On each RW. remember the state in addition to the counter. State must include the entries which RW failed to read.
- Counter and state must kept around in each RW node. And exponential backup should be used for deferLedgerLockReleaseOfFailedLedger
- During next attempt by RW, try to read the failed entries which is noted in the state. Read must be successful before proceeding replicating.
- With this model we avoid duplicate copies on each attempt. At the most each RW will create only one copy

Reviewers: Enrico Olivelli <eolivelli@gmail.com>, Venkateswararao Jujjuri (JV) <None>

This closes #2166 from reddycharan/enhancereplication

28213 of 39311 relevant lines covered (71.77%)

0.72 hits per line

Jobs
ID Job ID Ran Files Coverage
1 596.1 09 Oct 2019 02:45PM CUT 0
71.77
Source Files on build 596
  • List 0
  • Changed 32
  • Source Changed 0
  • Coverage Changed 32
Loading...
Coverage∆FileLinesRelevantCoveredMissedHits/Line
No data available in table
Showing 0 to 0 of 0 entries
  • Previous
  • Next
  • Back to Repo
  • Jenkins Build #596
  • 2f996dcf on github
  • Prev Build on master (#595)
  • Next Build on master (#597)
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

© 2025 Coveralls, Inc