-----------------------------------------------------------
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

Reply via email to