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