commit | f57962bcc5029512a30f7f89a8d1878df6ac4a36 | [log] [tgz] |
---|---|---|
author | Matteo Merli <mmerli@apache.org> | Thu Oct 31 03:17:58 2019 -0700 |
committer | Enrico Olivelli <eolivelli@gmail.com> | Thu Oct 31 11:17:58 2019 +0100 |
tree | d6e3d0b564b7d1ae602c39f551eae9e477aec857 | |
parent | f5d2e5931a86a436068d40dede2c537f4a619ee5 [diff] |
Removed mutex contention on BufferedChannel ### Motivation Contention on `BufferedChannel` between the journal thread and the ForceWriteThread was introduced in #1228. `unpersistentBytes` is only used if `unpersistedBytesBound > 0`, which is not true by default. We shouldn't be paying the penalty if not needed. Also `position` doesn't need to be `AtomicLong` since it's only updated while the mutex is taken. Using a volatile will have the same effect with less overhead. Reviewers: Enrico Olivelli <eolivelli@gmail.com>, Jia Zhai <zhaijia@apache.org> This closes #2187 from merlimat/buffered-channel-contention
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.