commit | c11baba7dcedc227849021d0aee8303cfcc9765c | [log] [tgz] |
---|---|---|
author | Surinder Singh <sursingh@gmail.com> | Tue Mar 09 03:06:41 2021 -0800 |
committer | GitHub <noreply@github.com> | Tue Mar 09 12:06:41 2021 +0100 |
tree | 8ce7c3790af953e2ce9c4146232ae350f0d3b813 | |
parent | 98df593ba432eb08b18d98331201099cc72879dc [diff] |
Handle corrupted checkpoints ### Motivation If a checkpoint is corrupted, checkpoint restoration will fail. Currently we will keep retrying to restore the same checkpoint. The system will never recover from this. The only way out is to manually remove the checkpoint from the zookeeper ### Changes When a checkpoint is corrupted, we need to try and restore from previous checkpoint. This is done recursively till we hit a checkpoint that works. If none of the checkpoints work, we will fallback to a `nullcheckpoint` which will initialize rocksdb from scratch and replay all state from journal. Instead of just dealing with the latest checkpoint, we now return a list of checkpoints ordered by age. We then simply walk this list and stop as soon as a checkpoint is successfully restored. We currently only keep a single checkpoint, but with this change we can potentially keep `N` checkpoints to provide more robustness. Reviewers: Enrico Olivelli <eolivelli@gmail.com>, Andrey Yegorov <andrey.yegorov@datastax.com> This closes #2635 from sursingh/currupt-checkpoint
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:
Please visit the Documentation from the project website for more information.
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.