-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/6719/
-----------------------------------------------------------

Review request for Flume and Hari Shreedharan.


Description
-------

The data structure we implement in FileChannel requires consistent checkpoints, 
in that It's very similar to a LGSM. This change moves the shared/exclusive 
lock in Log up to the transaction level. Every transaction operation will get a 
shared lock on the log before doing any changes to the log or queue. 
Checkpoints when they occur obtain an exclusive lock.

This change introduces four methods to the Log class:

tryLockShared
tryLockExclusive
unlockShared
unlockExclusive

Calls to obtain the shared lock have been moved up to the FileBackedTransaction 
and use these newly created methods.


This addresses bug FLUME-1498.
    https://issues.apache.org/jira/browse/FLUME-1498


Diffs
-----

  
flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/FileChannel.java
 b5a0b88 
  
flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/Log.java
 c356ca4 

Diff: https://reviews.apache.org/r/6719/diff/


Testing
-------

Without this patch FileChannel.testRestartLogReplayV2 fails once in awhile 
because of lost data. With this patch the test has run several hundred times 
without failure. All FileChannel unit tests have been run a dozen times without 
failure.


Thanks,

Brock Noland

Reply via email to