commit | 12525717adf45f9c32c12cfd6228935e98b2b51b | [log] [tgz] |
---|---|---|
author | Jack Vanlightly <vanlightly@gmail.com> | Thu Mar 11 23:20:31 2021 -0800 |
committer | Enrico Olivelli <eolivelli@apache.org> | Fri Mar 12 08:20:50 2021 +0100 |
tree | 32e9dd055e1b8280f59c75da0c6b499e1879c55e | |
parent | c46a4b537610fb1205fe7e415940d0c4db31ce91 [diff] |
Add fencing to recovery reads to avoid data loss issue Descriptions of the changes in this PR: ### Motivation Adding the fencing flag to recovery reads avoids a data loss scenario as described in [issue 2614](https://github.com/apache/bookkeeper/issues/2614) ### Changes Added the fencing flag to recovery reads. Refactored some mocking unit test code to introduce fencing and allow two writers to share the same bookie state. Added a new unit to verify the fix. You can recreate the initial problem by removing the fencing flag from recovery reads and running the new unit test. Master Issue: #2614 Reviewers: Enrico Olivelli <eolivelli@gmail.com>, Andrey Yegorov <andrey.yegorov@datastax.com> This closes #2616 from Vanlightly/fix-fencing (cherry picked from commit 017307bc67431a7616861ad09927c4e3327633d1) Signed-off-by: Enrico Olivelli <eolivelli@apache.org>
Apache BookKeeper is a scalable, fault tolerant and low latency storage service optimized for append-only workloads.
It is suitable for being used in following scenarios:
You can also read Turning Ledgers into Logs to learn how to turn ledgers into continuous log streams. If you are looking for a high level log stream API, you can checkout DistributedLog.
For filing bugs, suggesting improvements, or requesting new features, help us out by opening a Github issue or opening an Apache jira.
Subscribe or mail the user@bookkeeper.apache.org list - Ask questions, find answers, and also help other users.
Subscribe or mail the dev@bookkeeper.apache.org list - Join development discussions, propose new ideas and connect with contributors.
Join us on Slack - This is the most immediate way to connect with Apache BookKeeper committers and contributors.
We feel that a welcoming open community is important and welcome contributions.
See Developer Setup to get your local environment setup.
Take a look at our open issues: JIRA Issues Github Issues.
Review our coding style and follow our pull requests to learn about our conventions.
Make your changes according to our contribution guide.