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

(Updated Nov. 5, 2012, 10:36 a.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
 bbe8edf 
  
hedwig-server/src/main/java/org/apache/hedwig/server/subscriptions/InMemorySubscriptionState.java
 34b54b8 
  
hedwig-server/src/test/java/org/apache/hedwig/server/persistence/TestBookKeeperPersistenceManager.java
 c645b11 

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


Testing
-------

Two test are added


Thanks,

Jiannan Wang

Reply via email to