-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/8350/
-----------------------------------------------------------
Review request for bookkeeper, Ivan Kelly, Sijie Guo, and Aniruddha Laud.
Description
-------
Uses skip list to sort entries before adding them to entry log file, to improve
ledger read performance. Memory arena is used to allocate skip list entries, to
avoid GC impact.
A single-threaded scheduler is used to flush skip list to buffered entry log
file channel, once configured data size limit is reached. Sync thread is
notified as well to flush file buffers.
Compaction uses Skip list, to merge entries together as well as remove
duplicate entries.
This change also fix an existing issue of old entry logs being removed w/o
forcing new entry logs flushed, which is more obvious with SkipList store.
This addresses bug BOOKKEEPER-432.
https://issues.apache.org/jira/browse/BOOKKEEPER-432
Diffs
-----
bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/Bookie.java
929be51
bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/CacheCallback.java
PRE-CREATION
bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/EntryKey.java
PRE-CREATION
bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/EntryKeyValue.java
PRE-CREATION
bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/EntryMemTable.java
PRE-CREATION
bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/GarbageCollectorThread.java
cecb74a
bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/InterleavedLedgerStorage.java
c3f5149
bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/LedgerCacheImpl.java
c8d2b21
bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/LedgerStorage.java
14f1338
bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/SkipListArena.java
PRE-CREATION
bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/SkipListFlusher.java
PRE-CREATION
bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/SkipListLedgerStorage.java
PRE-CREATION
bookkeeper-server/src/main/java/org/apache/bookkeeper/client/PendingAddOp.java
acef474
bookkeeper-server/src/main/java/org/apache/bookkeeper/conf/ServerConfiguration.java
d7e5b2c
bookkeeper-server/src/main/java/org/apache/bookkeeper/proto/BookieServer.java
5d7082a
bookkeeper-server/src/main/resources/findbugsExclude.xml 8404e3f
bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/CompactionTest.java
720f07b
bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/EntryLogTest.java
2d9fa78
bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/LedgerCacheTest.java
a24b1e2
bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/TestEntryMemTable.java
PRE-CREATION
bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/TestSkipListArena.java
PRE-CREATION
bookkeeper-server/src/test/java/org/apache/bookkeeper/test/LedgerDeleteTest.java
984c2f8
bookkeeper-server/src/test/java/org/apache/bookkeeper/test/ReadOnlyBookieTest.java
a375f09
Diff: https://reviews.apache.org/r/8350/diff/
Testing
-------
Unit tests (new + existing)
Thanks,
Yixue (Andrew) Zhu