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

apache / bookkeeper / 41 / 1
72%
master: 72%

Build:
DEFAULT BRANCH: master
Ran 03 Apr 2018 01:54PM UTC
Files 401
Run time 13s
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

03 Apr 2018 01:54PM UTC coverage: 72.442% (+0.04%) from 72.407%
41.1

push

jenkins

Matteo Merli
<a href="https://github.com/apache/bookkeeper/commit/<a class=hub.com/apache/bookkeeper/commit/46171e67e526702487641438144f28b7eb1aa07b">46171e67e<a href="https://github.com/apache/bookkeeper/commit/46171e67e526702487641438144f28b7eb1aa07b">&quot;&gt;Refactored OrderedSafeExecutor and OrderedScheduler

As outlined in https://lists.apache.org/thread.html/</a><a class="double-link" href="https://github.com/apache/bookkeeper/commit/<a class="double-link" href="https://github.com/apache/bookkeeper/commit/102383ea42f473f36720637e41af0ee83fc38d9f">102383ea4</a>">102383ea4</a><a href="https://github.com/apache/bookkeeper/commit/46171e67e526702487641438144f28b7eb1aa07b">992736e0d1a7f985%3Cdev.bookkeeper.apache.org%3E

right now `OrderedSafeExecutor` is implemented on top of `OrderedScheduler`.  There are few problems with this approach that are causing impact on performance:

 1. `OrderedScheduler` is a `ScheduledExecutorService` which uses a priority queue for tasks. The priority queue has a single mutex for both publishers/consumers on the queue
 2. There are many objects created for each task submission, due to listenable future decorators

Since in all cases in critical write/read path we don&#39;t need delay task execution or futures, we should try to have a light weight execution for that.

### Modifications

 * Inverted the hierarchy between `OrderedSafeExecutor` and `OrderedScheduler`. Now the base class is `OrderedSafeExecutor` and the other extends from it, since it provides additional methods.
 * Moved `OrderedSafeExecutor` in `bookkeeper-common` since `OrderedScheduler` was already there.
 * Moved `OrderedSafeGenericCallback` in its own file, since it needs to be in `bookkeeper-server` module at this point.
 * Changed some method names from `submitOrdered()` into `executeOrdered()` to be consistent with JDK name (`submit()` returns a future while `execute()` returns void).
 * Changed `BookKeeper` instance of `scheduler` into `OrderedScheduler` so that the few cases which were using the `mainWorkerPool` could be easily converted to use the scheduler instead.

Author: Matteo Merli &lt;mmerli@apache.org&gt;

Reviewers: Andrey Yegorov <None>, Enrico Olivelli <eolivelli@gmail.com>... (continued)

23056 of 31827 relevant lines covered (72.44%)

0.72 hits per line

Source Files on job 41.1
  • Tree
  • List 0
  • Changed 39
  • Source Changed 18
  • Coverage Changed 29
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Build 41
  • 46171e67 on github
  • Prev Job for on master (#40.1)
  • Next Job for on master (#42.1)
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

© 2026 Coveralls, Inc