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

(Updated Dec. 3, 2012, 12:24 p.m.)


Review request for bookkeeper.


Description
-------

Since InMemorySubscriptionState and LedgerRanges is maintained separately, 
there may exist such inconsistent state:
 (1). Topic ledgers: L1 [1 ~ 2], L2 [3 ~ ] 
 (2). Subscriber consumes to 2 and InMemorySubscriptionState is updated 
successfully but failed when updating subscription state metadata
 (3). AbstractSubscriptionManager#MessagesConsumedTask use 
InMemorySubscriptionState to do garbage collection and L1 is delete
 (4). If Hub restarts at this time, old subscription state is read and Hub will 
try to deliver message from 1


This addresses bug BOOKKEEPER-442.
    https://issues.apache.org/jira/browse/BOOKKEEPER-442


Diffs (updated)
-----

  
hedwig-server/src/main/java/org/apache/hedwig/server/persistence/BookkeeperPersistenceManager.java
 40811de 
  
hedwig-server/src/main/java/org/apache/hedwig/server/subscriptions/AbstractSubscriptionManager.java
 31bf505 
  
hedwig-server/src/main/java/org/apache/hedwig/server/subscriptions/InMemorySubscriptionState.java
 08994f0 
  
hedwig-server/src/test/java/org/apache/hedwig/server/persistence/TestBookKeeperPersistenceManager.java
 d582fb6 

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


Testing
-------

Two test are added


Thanks,

Jiannan Wang

Reply via email to