commit | 057f85ec1b977379938350f12d7ec99ff1162f29 | [log] [tgz] |
---|---|---|
author | Enrico Olivelli <eolivelli@gmail.com> | Mon Sep 07 09:07:56 2020 +0200 |
committer | GitHub <noreply@github.com> | Mon Sep 07 15:07:56 2020 +0800 |
tree | 5c7efbac0ab379839e9cf0a7527efa0d9c50a763 | |
parent | a0d49fcb65a40b2b49fbfb6c50f60c7a9f66f67f [diff] |
BP-41 BookieId - client side implementation (#2404) ### Motivation This is the client side implementation of BP-41, see the design doc here https://github.com/apache/bookkeeper/blob/master/site/bps/BP-41-bookieid.md ### Changes - Introduce BookeId concept - Separated BookieId from BookieSocketAddress - in LedgerMetadata we use now BookieId and not BookieSocketAddress - a BookieId is basically a wrapper around a string - BookieId is compatible with BookieSocketAddress - In order to *resolve" a BookieId to a BookieSocketAddress we use a BookieAddressResolver - the DefaultBookieAddressResolver implementation uses BookieServiceInfo metadata, read from ZooKeeper in order to discover the current network address of the Bookie (see BP-38) Unfortunately the patch is huge due to the changes in the client API and LedgerMetadata. This patch tries to be the smallest set of changes, see #2396 for the list of the follow up patches that will be contributed. Notes: - The new client and the bookie is 100% compatible with previous Bookies and Clients (and integration tests were not touched) - We are going to introduce, in a follow up patch, a flag to not use the metadata on ZooKeeper for the resolution of the BookieSocketAddress, in order to save resources - The ability to configure a custom BookieId, different from the network address will come in a separate patch Master Issue: #2396 Co-authored-by: Enrico Olivelli <eolivelli@apache.org> Co-authored-by: Enrico Olivelli <enrico.olivelli@diennea.com>
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.