Bookkeeper
  1. Bookkeeper
  2. BOOKKEEPER-181 Scale hedwig
  3. BOOKKEEPER-203

improve ledger manager interface to remove zookeeper dependency on metadata operations.

    Details

      Description

      we need to improve ledger manager interface to remove zookeeper dependency on metadata operations, so it is easy for us to implement a MetaStore based ledger manager.

      1. BOOKKEEPER-203.diff_v7
        168 kB
        Sijie Guo
      2. BOOKKEEPER-203.diff_v6
        169 kB
        Sijie Guo
      3. BOOKKEEPER-203.diff_v5
        169 kB
        Sijie Guo
      4. BOOKKEEPER-203.diff_v4
        169 kB
        Sijie Guo
      5. BOOKKEEPER-203.diff_v3
        158 kB
        Sijie Guo
      6. BOOKKEEPER-203.diff_v2
        157 kB
        Sijie Guo
      7. BOOKKEEPER-203.diff
        155 kB
        Sijie Guo

        Issue Links

          Activity

          Hide
          Sijie Guo added a comment -

          create a patch to improve ledger manager interface

          1) split ledger manager interface into client/server part, client side is LedgerManager, server side is ActiveLedgerManager.
          2) remove zookeeper dependency on metadata operations, provides a well-defined metadata operation interface.

          Show
          Sijie Guo added a comment - create a patch to improve ledger manager interface 1) split ledger manager interface into client/server part, client side is LedgerManager, server side is ActiveLedgerManager. 2) remove zookeeper dependency on metadata operations, provides a well-defined metadata operation interface.
          Hide
          jiraposter@reviews.apache.org added a comment -

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

          Review request for bookkeeper.

          Summary
          -------

          we need to improve ledger manager interface to remove zookeeper dependency on metadata operations, so it is easy for us to implement a MetaStore based ledger manager.

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

          Diffs


          bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/Bookie.java ee38862
          bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/GarbageCollectorThread.java 2eed192
          bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/LedgerCacheImpl.java 17c70f1
          bookkeeper-server/src/main/java/org/apache/bookkeeper/client/BKException.java 911c660
          bookkeeper-server/src/main/java/org/apache/bookkeeper/client/BookKeeper.java 490c130
          bookkeeper-server/src/main/java/org/apache/bookkeeper/client/BookKeeperAdmin.java b9cd624
          bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerCreateOp.java f0a165f
          bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerDeleteOp.java 5b10a5b
          bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerHandle.java e576792
          bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerMetadata.java 2dcf0e4
          bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerOpenOp.java 56186ab
          bookkeeper-server/src/main/java/org/apache/bookkeeper/conf/AbstractConfiguration.java e1bd1ff
          bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/AbstractZkLedgerManager.java 8fd7df8
          bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/ActiveLedgerManager.java PRE-CREATION
          bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/FlatLedgerManager.java 1300974
          bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/FlatLedgerManagerFactory.java PRE-CREATION
          bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/HierarchicalLedgerManager.java b573181
          bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/HierarchicalLedgerManagerFactory.java PRE-CREATION
          bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/LedgerLayout.java 3a3a81e
          bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/LedgerManager.java 7d9eb96
          bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/LedgerManagerFactory.java b62ad3a
          bookkeeper-server/src/main/java/org/apache/bookkeeper/util/ReflectionUtils.java PRE-CREATION
          bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/LedgerCacheTest.java 52cf514
          bookkeeper-server/src/test/java/org/apache/bookkeeper/client/BookieRecoveryTest.java 6135250
          bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestFencing.java c5350ad
          bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/GcLedgersTest.java 12c1b5a
          bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/HierarchicalAsyncLedgerOpsTest.java 24b3c12
          bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/HierarchicalBookieFailureTest.java 70a4ea9
          bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/HierarchicalBookieReadWriteTest.java 7d97fd4
          bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/HierarchicalBookieRecoveryTest.java d99156e
          bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/HierarchicalLedgerDeleteTest.java dbcd65a
          bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/LedgerLayoutTest.java 4784854
          bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/LedgerManagerTestCase.java b8a541b
          bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/TestLedgerManager.java e07c756
          bookkeeper-server/src/test/java/org/apache/bookkeeper/test/AsyncLedgerOpsTest.java d7f153a
          bookkeeper-server/src/test/java/org/apache/bookkeeper/test/BookKeeperClusterTestCase.java c172224
          bookkeeper-server/src/test/java/org/apache/bookkeeper/test/BookieFailureTest.java e647d68
          bookkeeper-server/src/test/java/org/apache/bookkeeper/test/BookieReadWriteTest.java 3a3c8af
          bookkeeper-server/src/test/java/org/apache/bookkeeper/test/LedgerDeleteTest.java 2d3593e
          bookkeeper-server/src/test/java/org/apache/bookkeeper/test/MultiLedgerManagerBaseTestCase.java PRE-CREATION
          bookkeeper-server/src/test/java/org/apache/bookkeeper/test/MultiLedgerManagerTestCase.java PRE-CREATION

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

          Testing
          -------

          Thanks,

          Sijie

          Show
          jiraposter@reviews.apache.org added a comment - ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/4603/ ----------------------------------------------------------- Review request for bookkeeper. Summary ------- we need to improve ledger manager interface to remove zookeeper dependency on metadata operations, so it is easy for us to implement a MetaStore based ledger manager. This addresses bug BOOKKEEPER-203 . https://issues.apache.org/jira/browse/BOOKKEEPER-203 Diffs bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/Bookie.java ee38862 bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/GarbageCollectorThread.java 2eed192 bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/LedgerCacheImpl.java 17c70f1 bookkeeper-server/src/main/java/org/apache/bookkeeper/client/BKException.java 911c660 bookkeeper-server/src/main/java/org/apache/bookkeeper/client/BookKeeper.java 490c130 bookkeeper-server/src/main/java/org/apache/bookkeeper/client/BookKeeperAdmin.java b9cd624 bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerCreateOp.java f0a165f bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerDeleteOp.java 5b10a5b bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerHandle.java e576792 bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerMetadata.java 2dcf0e4 bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerOpenOp.java 56186ab bookkeeper-server/src/main/java/org/apache/bookkeeper/conf/AbstractConfiguration.java e1bd1ff bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/AbstractZkLedgerManager.java 8fd7df8 bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/ActiveLedgerManager.java PRE-CREATION bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/FlatLedgerManager.java 1300974 bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/FlatLedgerManagerFactory.java PRE-CREATION bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/HierarchicalLedgerManager.java b573181 bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/HierarchicalLedgerManagerFactory.java PRE-CREATION bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/LedgerLayout.java 3a3a81e bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/LedgerManager.java 7d9eb96 bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/LedgerManagerFactory.java b62ad3a bookkeeper-server/src/main/java/org/apache/bookkeeper/util/ReflectionUtils.java PRE-CREATION bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/LedgerCacheTest.java 52cf514 bookkeeper-server/src/test/java/org/apache/bookkeeper/client/BookieRecoveryTest.java 6135250 bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestFencing.java c5350ad bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/GcLedgersTest.java 12c1b5a bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/HierarchicalAsyncLedgerOpsTest.java 24b3c12 bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/HierarchicalBookieFailureTest.java 70a4ea9 bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/HierarchicalBookieReadWriteTest.java 7d97fd4 bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/HierarchicalBookieRecoveryTest.java d99156e bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/HierarchicalLedgerDeleteTest.java dbcd65a bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/LedgerLayoutTest.java 4784854 bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/LedgerManagerTestCase.java b8a541b bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/TestLedgerManager.java e07c756 bookkeeper-server/src/test/java/org/apache/bookkeeper/test/AsyncLedgerOpsTest.java d7f153a bookkeeper-server/src/test/java/org/apache/bookkeeper/test/BookKeeperClusterTestCase.java c172224 bookkeeper-server/src/test/java/org/apache/bookkeeper/test/BookieFailureTest.java e647d68 bookkeeper-server/src/test/java/org/apache/bookkeeper/test/BookieReadWriteTest.java 3a3c8af bookkeeper-server/src/test/java/org/apache/bookkeeper/test/LedgerDeleteTest.java 2d3593e bookkeeper-server/src/test/java/org/apache/bookkeeper/test/MultiLedgerManagerBaseTestCase.java PRE-CREATION bookkeeper-server/src/test/java/org/apache/bookkeeper/test/MultiLedgerManagerTestCase.java PRE-CREATION Diff: https://reviews.apache.org/r/4603/diff Testing ------- Thanks, Sijie
          Hide
          jiraposter@reviews.apache.org added a comment -

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

          It looks pretty good for me, I just have a few small comments.

          bookkeeper-server/src/main/java/org/apache/bookkeeper/client/BKException.java
          <https://reviews.apache.org/r/4603/#comment14294>

          For clarity, can we rename it to MetaStoreException or MetadataStoreException?

          bookkeeper-server/src/main/java/org/apache/bookkeeper/client/BKException.java
          <https://reviews.apache.org/r/4603/#comment14397>

          MetaStoreException

          bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerMetadata.java
          <https://reviews.apache.org/r/4603/#comment14401>

          It doesn't look like we need to make this call public. If it is for testing, we could simply use inheritance, no?

          bookkeeper-server/src/main/java/org/apache/bookkeeper/conf/AbstractConfiguration.java
          <https://reviews.apache.org/r/4603/#comment14404>

          I'm wondering if it is ok to have a reference specific to zk here. Is the idea here that for every new backend we add, we include required system properties here?

          bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/ActiveLedgerManager.java
          <https://reviews.apache.org/r/4603/#comment14417>

          You may want to say bookie instead of server side.

          bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/ActiveLedgerManager.java
          <https://reviews.apache.org/r/4603/#comment14416>

          I wonder if ActiveLedgerManager is a good name for this class. It doesn't indicate that it is related to the bookie side, and it might be good to refer to it. But, I don't feel too strongly about it, since the comment before the class says that it is for bookies.

          bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/LedgerManager.java
          <https://reviews.apache.org/r/4603/#comment14405>

          The comment here should not refer to zk, right?

          • fpj

          On 2012-04-01 15:56:33, Sijie Guo wrote:

          -----------------------------------------------------------

          This is an automatically generated e-mail. To reply, visit:

          https://reviews.apache.org/r/4603/

          -----------------------------------------------------------

          (Updated 2012-04-01 15:56:33)

          Review request for bookkeeper.

          Summary

          -------

          we need to improve ledger manager interface to remove zookeeper dependency on metadata operations, so it is easy for us to implement a MetaStore based ledger manager.

          This addresses bug BOOKKEEPER-203.

          https://issues.apache.org/jira/browse/BOOKKEEPER-203

          Diffs

          -----

          bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/Bookie.java ee38862

          bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/GarbageCollectorThread.java 2eed192

          bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/LedgerCacheImpl.java 17c70f1

          bookkeeper-server/src/main/java/org/apache/bookkeeper/client/BKException.java 911c660

          bookkeeper-server/src/main/java/org/apache/bookkeeper/client/BookKeeper.java 490c130

          bookkeeper-server/src/main/java/org/apache/bookkeeper/client/BookKeeperAdmin.java b9cd624

          bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerCreateOp.java f0a165f

          bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerDeleteOp.java 5b10a5b

          bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerHandle.java e576792

          bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerMetadata.java 2dcf0e4

          bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerOpenOp.java 56186ab

          bookkeeper-server/src/main/java/org/apache/bookkeeper/conf/AbstractConfiguration.java e1bd1ff

          bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/AbstractZkLedgerManager.java 8fd7df8

          bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/ActiveLedgerManager.java PRE-CREATION

          bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/FlatLedgerManager.java 1300974

          bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/FlatLedgerManagerFactory.java PRE-CREATION

          bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/HierarchicalLedgerManager.java b573181

          bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/HierarchicalLedgerManagerFactory.java PRE-CREATION

          bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/LedgerLayout.java 3a3a81e

          bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/LedgerManager.java 7d9eb96

          bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/LedgerManagerFactory.java b62ad3a

          bookkeeper-server/src/main/java/org/apache/bookkeeper/util/ReflectionUtils.java PRE-CREATION

          bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/LedgerCacheTest.java 52cf514

          bookkeeper-server/src/test/java/org/apache/bookkeeper/client/BookieRecoveryTest.java 6135250

          bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestFencing.java c5350ad

          bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/GcLedgersTest.java 12c1b5a

          bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/HierarchicalAsyncLedgerOpsTest.java 24b3c12

          bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/HierarchicalBookieFailureTest.java 70a4ea9

          bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/HierarchicalBookieReadWriteTest.java 7d97fd4

          bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/HierarchicalBookieRecoveryTest.java d99156e

          bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/HierarchicalLedgerDeleteTest.java dbcd65a

          bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/LedgerLayoutTest.java 4784854

          bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/LedgerManagerTestCase.java b8a541b

          bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/TestLedgerManager.java e07c756

          bookkeeper-server/src/test/java/org/apache/bookkeeper/test/AsyncLedgerOpsTest.java d7f153a

          bookkeeper-server/src/test/java/org/apache/bookkeeper/test/BookKeeperClusterTestCase.java c172224

          bookkeeper-server/src/test/java/org/apache/bookkeeper/test/BookieFailureTest.java e647d68

          bookkeeper-server/src/test/java/org/apache/bookkeeper/test/BookieReadWriteTest.java 3a3c8af

          bookkeeper-server/src/test/java/org/apache/bookkeeper/test/LedgerDeleteTest.java 2d3593e

          bookkeeper-server/src/test/java/org/apache/bookkeeper/test/MultiLedgerManagerBaseTestCase.java PRE-CREATION

          bookkeeper-server/src/test/java/org/apache/bookkeeper/test/MultiLedgerManagerTestCase.java PRE-CREATION

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

          Testing

          -------

          Thanks,

          Sijie

          Show
          jiraposter@reviews.apache.org added a comment - ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/4603/#review6616 ----------------------------------------------------------- It looks pretty good for me, I just have a few small comments. bookkeeper-server/src/main/java/org/apache/bookkeeper/client/BKException.java < https://reviews.apache.org/r/4603/#comment14294 > For clarity, can we rename it to MetaStoreException or MetadataStoreException? bookkeeper-server/src/main/java/org/apache/bookkeeper/client/BKException.java < https://reviews.apache.org/r/4603/#comment14397 > MetaStoreException bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerMetadata.java < https://reviews.apache.org/r/4603/#comment14401 > It doesn't look like we need to make this call public. If it is for testing, we could simply use inheritance, no? bookkeeper-server/src/main/java/org/apache/bookkeeper/conf/AbstractConfiguration.java < https://reviews.apache.org/r/4603/#comment14404 > I'm wondering if it is ok to have a reference specific to zk here. Is the idea here that for every new backend we add, we include required system properties here? bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/ActiveLedgerManager.java < https://reviews.apache.org/r/4603/#comment14417 > You may want to say bookie instead of server side. bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/ActiveLedgerManager.java < https://reviews.apache.org/r/4603/#comment14416 > I wonder if ActiveLedgerManager is a good name for this class. It doesn't indicate that it is related to the bookie side, and it might be good to refer to it. But, I don't feel too strongly about it, since the comment before the class says that it is for bookies. bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/LedgerManager.java < https://reviews.apache.org/r/4603/#comment14405 > The comment here should not refer to zk, right? fpj On 2012-04-01 15:56:33, Sijie Guo wrote: ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/4603/ ----------------------------------------------------------- (Updated 2012-04-01 15:56:33) Review request for bookkeeper. Summary ------- we need to improve ledger manager interface to remove zookeeper dependency on metadata operations, so it is easy for us to implement a MetaStore based ledger manager. This addresses bug BOOKKEEPER-203 . https://issues.apache.org/jira/browse/BOOKKEEPER-203 Diffs ----- bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/Bookie.java ee38862 bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/GarbageCollectorThread.java 2eed192 bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/LedgerCacheImpl.java 17c70f1 bookkeeper-server/src/main/java/org/apache/bookkeeper/client/BKException.java 911c660 bookkeeper-server/src/main/java/org/apache/bookkeeper/client/BookKeeper.java 490c130 bookkeeper-server/src/main/java/org/apache/bookkeeper/client/BookKeeperAdmin.java b9cd624 bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerCreateOp.java f0a165f bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerDeleteOp.java 5b10a5b bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerHandle.java e576792 bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerMetadata.java 2dcf0e4 bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerOpenOp.java 56186ab bookkeeper-server/src/main/java/org/apache/bookkeeper/conf/AbstractConfiguration.java e1bd1ff bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/AbstractZkLedgerManager.java 8fd7df8 bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/ActiveLedgerManager.java PRE-CREATION bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/FlatLedgerManager.java 1300974 bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/FlatLedgerManagerFactory.java PRE-CREATION bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/HierarchicalLedgerManager.java b573181 bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/HierarchicalLedgerManagerFactory.java PRE-CREATION bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/LedgerLayout.java 3a3a81e bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/LedgerManager.java 7d9eb96 bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/LedgerManagerFactory.java b62ad3a bookkeeper-server/src/main/java/org/apache/bookkeeper/util/ReflectionUtils.java PRE-CREATION bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/LedgerCacheTest.java 52cf514 bookkeeper-server/src/test/java/org/apache/bookkeeper/client/BookieRecoveryTest.java 6135250 bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestFencing.java c5350ad bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/GcLedgersTest.java 12c1b5a bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/HierarchicalAsyncLedgerOpsTest.java 24b3c12 bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/HierarchicalBookieFailureTest.java 70a4ea9 bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/HierarchicalBookieReadWriteTest.java 7d97fd4 bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/HierarchicalBookieRecoveryTest.java d99156e bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/HierarchicalLedgerDeleteTest.java dbcd65a bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/LedgerLayoutTest.java 4784854 bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/LedgerManagerTestCase.java b8a541b bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/TestLedgerManager.java e07c756 bookkeeper-server/src/test/java/org/apache/bookkeeper/test/AsyncLedgerOpsTest.java d7f153a bookkeeper-server/src/test/java/org/apache/bookkeeper/test/BookKeeperClusterTestCase.java c172224 bookkeeper-server/src/test/java/org/apache/bookkeeper/test/BookieFailureTest.java e647d68 bookkeeper-server/src/test/java/org/apache/bookkeeper/test/BookieReadWriteTest.java 3a3c8af bookkeeper-server/src/test/java/org/apache/bookkeeper/test/LedgerDeleteTest.java 2d3593e bookkeeper-server/src/test/java/org/apache/bookkeeper/test/MultiLedgerManagerBaseTestCase.java PRE-CREATION bookkeeper-server/src/test/java/org/apache/bookkeeper/test/MultiLedgerManagerTestCase.java PRE-CREATION Diff: https://reviews.apache.org/r/4603/diff Testing ------- Thanks, Sijie
          Hide
          Flavio Junqueira added a comment -

          Even if we +1 this jira, I was wondering if we should move it to 4.2.0. This jira is a sub-task of BOOKKEPER-181, and we have marked it for 4.2.0.

          Show
          Flavio Junqueira added a comment - Even if we +1 this jira, I was wondering if we should move it to 4.2.0. This jira is a sub-task of BOOKKEPER-181, and we have marked it for 4.2.0.
          Hide
          Sijie Guo added a comment -

          Agreed to move it to 4.2.0.

          Show
          Sijie Guo added a comment - Agreed to move it to 4.2.0.
          Hide
          jiraposter@reviews.apache.org added a comment -

          On 2012-04-03 21:17:04, fpj wrote:

          > It looks pretty good for me, I just have a few small comments.

          Thanks Flavio for reviewing it. I would like to bring the patch to latest trunk and update it with your comments.

          On 2012-04-03 21:17:04, fpj wrote:

          > bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerMetadata.java, line 178

          > <https://reviews.apache.org/r/4603/diff/1/?file=97866#file97866line178>

          >

          > It doesn't look like we need to make this call public. If it is for testing, we could simply use inheritance, no?

          we use parseConfig in ledgermanager not for testing, which is another package.

          On 2012-04-03 21:17:04, fpj wrote:

          > bookkeeper-server/src/main/java/org/apache/bookkeeper/conf/AbstractConfiguration.java, line 146

          > <https://reviews.apache.org/r/4603/diff/1/?file=97868#file97868line146>

          >

          > I'm wondering if it is ok to have a reference specific to zk here. Is the idea here that for every new backend we add, we include required system properties here?

          zkLedgersRootPath not only for zookeeper-based ledger manager to store ledger metadata. under zkLedgersRootPath there is a 'layout' znode, which describes the metadata layout and which ledger manager it used for current bookkeeper cluster.

          On 2012-04-03 21:17:04, fpj wrote:

          > bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/ActiveLedgerManager.java, line 30

          > <https://reviews.apache.org/r/4603/diff/1/?file=97870#file97870line30>

          >

          > I wonder if ActiveLedgerManager is a good name for this class. It doesn't indicate that it is related to the bookie side, and it might be good to refer to it. But, I don't feel too strongly about it, since the comment before the class says that it is for bookies.

          I don't have a good name for it also, just used its original name before we abstracted ledger manager interface.

          • Sijie

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

          On 2012-04-01 15:56:33, Sijie Guo wrote:

          -----------------------------------------------------------

          This is an automatically generated e-mail. To reply, visit:

          https://reviews.apache.org/r/4603/

          -----------------------------------------------------------

          (Updated 2012-04-01 15:56:33)

          Review request for bookkeeper.

          Summary

          -------

          we need to improve ledger manager interface to remove zookeeper dependency on metadata operations, so it is easy for us to implement a MetaStore based ledger manager.

          This addresses bug BOOKKEEPER-203.

          https://issues.apache.org/jira/browse/BOOKKEEPER-203

          Diffs

          -----

          bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/Bookie.java ee38862

          bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/GarbageCollectorThread.java 2eed192

          bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/LedgerCacheImpl.java 17c70f1

          bookkeeper-server/src/main/java/org/apache/bookkeeper/client/BKException.java 911c660

          bookkeeper-server/src/main/java/org/apache/bookkeeper/client/BookKeeper.java 490c130

          bookkeeper-server/src/main/java/org/apache/bookkeeper/client/BookKeeperAdmin.java b9cd624

          bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerCreateOp.java f0a165f

          bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerDeleteOp.java 5b10a5b

          bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerHandle.java e576792

          bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerMetadata.java 2dcf0e4

          bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerOpenOp.java 56186ab

          bookkeeper-server/src/main/java/org/apache/bookkeeper/conf/AbstractConfiguration.java e1bd1ff

          bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/AbstractZkLedgerManager.java 8fd7df8

          bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/ActiveLedgerManager.java PRE-CREATION

          bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/FlatLedgerManager.java 1300974

          bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/FlatLedgerManagerFactory.java PRE-CREATION

          bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/HierarchicalLedgerManager.java b573181

          bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/HierarchicalLedgerManagerFactory.java PRE-CREATION

          bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/LedgerLayout.java 3a3a81e

          bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/LedgerManager.java 7d9eb96

          bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/LedgerManagerFactory.java b62ad3a

          bookkeeper-server/src/main/java/org/apache/bookkeeper/util/ReflectionUtils.java PRE-CREATION

          bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/LedgerCacheTest.java 52cf514

          bookkeeper-server/src/test/java/org/apache/bookkeeper/client/BookieRecoveryTest.java 6135250

          bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestFencing.java c5350ad

          bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/GcLedgersTest.java 12c1b5a

          bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/HierarchicalAsyncLedgerOpsTest.java 24b3c12

          bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/HierarchicalBookieFailureTest.java 70a4ea9

          bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/HierarchicalBookieReadWriteTest.java 7d97fd4

          bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/HierarchicalBookieRecoveryTest.java d99156e

          bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/HierarchicalLedgerDeleteTest.java dbcd65a

          bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/LedgerLayoutTest.java 4784854

          bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/LedgerManagerTestCase.java b8a541b

          bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/TestLedgerManager.java e07c756

          bookkeeper-server/src/test/java/org/apache/bookkeeper/test/AsyncLedgerOpsTest.java d7f153a

          bookkeeper-server/src/test/java/org/apache/bookkeeper/test/BookKeeperClusterTestCase.java c172224

          bookkeeper-server/src/test/java/org/apache/bookkeeper/test/BookieFailureTest.java e647d68

          bookkeeper-server/src/test/java/org/apache/bookkeeper/test/BookieReadWriteTest.java 3a3c8af

          bookkeeper-server/src/test/java/org/apache/bookkeeper/test/LedgerDeleteTest.java 2d3593e

          bookkeeper-server/src/test/java/org/apache/bookkeeper/test/MultiLedgerManagerBaseTestCase.java PRE-CREATION

          bookkeeper-server/src/test/java/org/apache/bookkeeper/test/MultiLedgerManagerTestCase.java PRE-CREATION

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

          Testing

          -------

          Thanks,

          Sijie

          Show
          jiraposter@reviews.apache.org added a comment - On 2012-04-03 21:17:04, fpj wrote: > It looks pretty good for me, I just have a few small comments. Thanks Flavio for reviewing it. I would like to bring the patch to latest trunk and update it with your comments. On 2012-04-03 21:17:04, fpj wrote: > bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerMetadata.java, line 178 > < https://reviews.apache.org/r/4603/diff/1/?file=97866#file97866line178 > > > It doesn't look like we need to make this call public. If it is for testing, we could simply use inheritance, no? we use parseConfig in ledgermanager not for testing, which is another package. On 2012-04-03 21:17:04, fpj wrote: > bookkeeper-server/src/main/java/org/apache/bookkeeper/conf/AbstractConfiguration.java, line 146 > < https://reviews.apache.org/r/4603/diff/1/?file=97868#file97868line146 > > > I'm wondering if it is ok to have a reference specific to zk here. Is the idea here that for every new backend we add, we include required system properties here? zkLedgersRootPath not only for zookeeper-based ledger manager to store ledger metadata. under zkLedgersRootPath there is a 'layout' znode, which describes the metadata layout and which ledger manager it used for current bookkeeper cluster. On 2012-04-03 21:17:04, fpj wrote: > bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/ActiveLedgerManager.java, line 30 > < https://reviews.apache.org/r/4603/diff/1/?file=97870#file97870line30 > > > I wonder if ActiveLedgerManager is a good name for this class. It doesn't indicate that it is related to the bookie side, and it might be good to refer to it. But, I don't feel too strongly about it, since the comment before the class says that it is for bookies. I don't have a good name for it also, just used its original name before we abstracted ledger manager interface. Sijie ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/4603/#review6616 ----------------------------------------------------------- On 2012-04-01 15:56:33, Sijie Guo wrote: ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/4603/ ----------------------------------------------------------- (Updated 2012-04-01 15:56:33) Review request for bookkeeper. Summary ------- we need to improve ledger manager interface to remove zookeeper dependency on metadata operations, so it is easy for us to implement a MetaStore based ledger manager. This addresses bug BOOKKEEPER-203 . https://issues.apache.org/jira/browse/BOOKKEEPER-203 Diffs ----- bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/Bookie.java ee38862 bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/GarbageCollectorThread.java 2eed192 bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/LedgerCacheImpl.java 17c70f1 bookkeeper-server/src/main/java/org/apache/bookkeeper/client/BKException.java 911c660 bookkeeper-server/src/main/java/org/apache/bookkeeper/client/BookKeeper.java 490c130 bookkeeper-server/src/main/java/org/apache/bookkeeper/client/BookKeeperAdmin.java b9cd624 bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerCreateOp.java f0a165f bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerDeleteOp.java 5b10a5b bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerHandle.java e576792 bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerMetadata.java 2dcf0e4 bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerOpenOp.java 56186ab bookkeeper-server/src/main/java/org/apache/bookkeeper/conf/AbstractConfiguration.java e1bd1ff bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/AbstractZkLedgerManager.java 8fd7df8 bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/ActiveLedgerManager.java PRE-CREATION bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/FlatLedgerManager.java 1300974 bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/FlatLedgerManagerFactory.java PRE-CREATION bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/HierarchicalLedgerManager.java b573181 bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/HierarchicalLedgerManagerFactory.java PRE-CREATION bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/LedgerLayout.java 3a3a81e bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/LedgerManager.java 7d9eb96 bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/LedgerManagerFactory.java b62ad3a bookkeeper-server/src/main/java/org/apache/bookkeeper/util/ReflectionUtils.java PRE-CREATION bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/LedgerCacheTest.java 52cf514 bookkeeper-server/src/test/java/org/apache/bookkeeper/client/BookieRecoveryTest.java 6135250 bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestFencing.java c5350ad bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/GcLedgersTest.java 12c1b5a bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/HierarchicalAsyncLedgerOpsTest.java 24b3c12 bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/HierarchicalBookieFailureTest.java 70a4ea9 bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/HierarchicalBookieReadWriteTest.java 7d97fd4 bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/HierarchicalBookieRecoveryTest.java d99156e bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/HierarchicalLedgerDeleteTest.java dbcd65a bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/LedgerLayoutTest.java 4784854 bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/LedgerManagerTestCase.java b8a541b bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/TestLedgerManager.java e07c756 bookkeeper-server/src/test/java/org/apache/bookkeeper/test/AsyncLedgerOpsTest.java d7f153a bookkeeper-server/src/test/java/org/apache/bookkeeper/test/BookKeeperClusterTestCase.java c172224 bookkeeper-server/src/test/java/org/apache/bookkeeper/test/BookieFailureTest.java e647d68 bookkeeper-server/src/test/java/org/apache/bookkeeper/test/BookieReadWriteTest.java 3a3c8af bookkeeper-server/src/test/java/org/apache/bookkeeper/test/LedgerDeleteTest.java 2d3593e bookkeeper-server/src/test/java/org/apache/bookkeeper/test/MultiLedgerManagerBaseTestCase.java PRE-CREATION bookkeeper-server/src/test/java/org/apache/bookkeeper/test/MultiLedgerManagerTestCase.java PRE-CREATION Diff: https://reviews.apache.org/r/4603/diff Testing ------- Thanks, Sijie
          Hide
          Sijie Guo added a comment -

          attach a new patch, which brought the code to latest trunk and addressed Flavio's suggestions.

          Show
          Sijie Guo added a comment - attach a new patch, which brought the code to latest trunk and addressed Flavio's suggestions.
          Hide
          jiraposter@reviews.apache.org added a comment -

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

          (Updated 2012-05-13 02:44:58.032203)

          Review request for bookkeeper.

          Changes
          -------

          update a new patch, which brought the code to latest trunk and addressed Flavio's suggestions.

          Summary
          -------

          we need to improve ledger manager interface to remove zookeeper dependency on metadata operations, so it is easy for us to implement a MetaStore based ledger manager.

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

          Diffs (updated)


          bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/Bookie.java aa4dec2
          bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/GarbageCollectorThread.java 4dc71e5
          bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/InterleavedLedgerStorage.java c8b5001
          bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/LedgerCacheImpl.java 4df689e
          bookkeeper-server/src/main/java/org/apache/bookkeeper/client/BKException.java 484a055
          bookkeeper-server/src/main/java/org/apache/bookkeeper/client/BookKeeper.java eb0955b
          bookkeeper-server/src/main/java/org/apache/bookkeeper/client/BookKeeperAdmin.java 712bbea
          bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerCreateOp.java 8c5bce3
          bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerDeleteOp.java 5b10a5b
          bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerHandle.java 6ce576d
          bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerMetadata.java c699eae
          bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerOpenOp.java 101ebf3
          bookkeeper-server/src/main/java/org/apache/bookkeeper/conf/AbstractConfiguration.java e1bd1ff
          bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/AbstractZkLedgerManager.java ce53461
          bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/ActiveLedgerManager.java PRE-CREATION
          bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/FlatLedgerManager.java 1300974
          bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/FlatLedgerManagerFactory.java PRE-CREATION
          bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/HierarchicalLedgerManager.java b573181
          bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/HierarchicalLedgerManagerFactory.java PRE-CREATION
          bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/LedgerLayout.java cab02fe
          bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/LedgerManager.java 7d9eb96
          bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/LedgerManagerFactory.java 491a3e4
          bookkeeper-server/src/main/java/org/apache/bookkeeper/util/ReflectionUtils.java PRE-CREATION
          bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/LedgerCacheTest.java 52cf514
          bookkeeper-server/src/test/java/org/apache/bookkeeper/client/BookieRecoveryTest.java 8bd3f6b
          bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestFencing.java 1c109a2
          bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/GcLedgersTest.java 12c1b5a
          bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/HierarchicalAsyncLedgerOpsTest.java 24b3c12
          bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/HierarchicalBookieFailureTest.java 70a4ea9
          bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/HierarchicalBookieReadWriteTest.java 7d97fd4
          bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/HierarchicalBookieRecoveryTest.java d99156e
          bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/HierarchicalLedgerDeleteTest.java dbcd65a
          bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/LedgerLayoutTest.java 4784854
          bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/LedgerManagerTestCase.java b8a541b
          bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/TestLedgerManager.java e07c756
          bookkeeper-server/src/test/java/org/apache/bookkeeper/test/AsyncLedgerOpsTest.java d7f153a
          bookkeeper-server/src/test/java/org/apache/bookkeeper/test/BookKeeperClusterTestCase.java a81067d
          bookkeeper-server/src/test/java/org/apache/bookkeeper/test/BookieFailureTest.java e647d68
          bookkeeper-server/src/test/java/org/apache/bookkeeper/test/BookieReadWriteTest.java 3a3c8af
          bookkeeper-server/src/test/java/org/apache/bookkeeper/test/LedgerDeleteTest.java 2d3593e
          bookkeeper-server/src/test/java/org/apache/bookkeeper/test/MultiLedgerManagerBaseTestCase.java PRE-CREATION
          bookkeeper-server/src/test/java/org/apache/bookkeeper/test/MultiLedgerManagerTestCase.java PRE-CREATION

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

          Testing
          -------

          Thanks,

          Sijie

          Show
          jiraposter@reviews.apache.org added a comment - ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/4603/ ----------------------------------------------------------- (Updated 2012-05-13 02:44:58.032203) Review request for bookkeeper. Changes ------- update a new patch, which brought the code to latest trunk and addressed Flavio's suggestions. Summary ------- we need to improve ledger manager interface to remove zookeeper dependency on metadata operations, so it is easy for us to implement a MetaStore based ledger manager. This addresses bug BOOKKEEPER-203 . https://issues.apache.org/jira/browse/BOOKKEEPER-203 Diffs (updated) bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/Bookie.java aa4dec2 bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/GarbageCollectorThread.java 4dc71e5 bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/InterleavedLedgerStorage.java c8b5001 bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/LedgerCacheImpl.java 4df689e bookkeeper-server/src/main/java/org/apache/bookkeeper/client/BKException.java 484a055 bookkeeper-server/src/main/java/org/apache/bookkeeper/client/BookKeeper.java eb0955b bookkeeper-server/src/main/java/org/apache/bookkeeper/client/BookKeeperAdmin.java 712bbea bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerCreateOp.java 8c5bce3 bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerDeleteOp.java 5b10a5b bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerHandle.java 6ce576d bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerMetadata.java c699eae bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerOpenOp.java 101ebf3 bookkeeper-server/src/main/java/org/apache/bookkeeper/conf/AbstractConfiguration.java e1bd1ff bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/AbstractZkLedgerManager.java ce53461 bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/ActiveLedgerManager.java PRE-CREATION bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/FlatLedgerManager.java 1300974 bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/FlatLedgerManagerFactory.java PRE-CREATION bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/HierarchicalLedgerManager.java b573181 bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/HierarchicalLedgerManagerFactory.java PRE-CREATION bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/LedgerLayout.java cab02fe bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/LedgerManager.java 7d9eb96 bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/LedgerManagerFactory.java 491a3e4 bookkeeper-server/src/main/java/org/apache/bookkeeper/util/ReflectionUtils.java PRE-CREATION bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/LedgerCacheTest.java 52cf514 bookkeeper-server/src/test/java/org/apache/bookkeeper/client/BookieRecoveryTest.java 8bd3f6b bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestFencing.java 1c109a2 bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/GcLedgersTest.java 12c1b5a bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/HierarchicalAsyncLedgerOpsTest.java 24b3c12 bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/HierarchicalBookieFailureTest.java 70a4ea9 bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/HierarchicalBookieReadWriteTest.java 7d97fd4 bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/HierarchicalBookieRecoveryTest.java d99156e bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/HierarchicalLedgerDeleteTest.java dbcd65a bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/LedgerLayoutTest.java 4784854 bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/LedgerManagerTestCase.java b8a541b bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/TestLedgerManager.java e07c756 bookkeeper-server/src/test/java/org/apache/bookkeeper/test/AsyncLedgerOpsTest.java d7f153a bookkeeper-server/src/test/java/org/apache/bookkeeper/test/BookKeeperClusterTestCase.java a81067d bookkeeper-server/src/test/java/org/apache/bookkeeper/test/BookieFailureTest.java e647d68 bookkeeper-server/src/test/java/org/apache/bookkeeper/test/BookieReadWriteTest.java 3a3c8af bookkeeper-server/src/test/java/org/apache/bookkeeper/test/LedgerDeleteTest.java 2d3593e bookkeeper-server/src/test/java/org/apache/bookkeeper/test/MultiLedgerManagerBaseTestCase.java PRE-CREATION bookkeeper-server/src/test/java/org/apache/bookkeeper/test/MultiLedgerManagerTestCase.java PRE-CREATION Diff: https://reviews.apache.org/r/4603/diff Testing ------- Thanks, Sijie
          Hide
          Sijie Guo added a comment -

          attach a new patch rebased to latest trunk.

          Show
          Sijie Guo added a comment - attach a new patch rebased to latest trunk.
          Hide
          Sijie Guo added a comment -

          new patch 1) updated to latest trunk 2) introduce Version interface to remove zookeeper integer version dependency. because not every storage support integer version.

          Show
          Sijie Guo added a comment - new patch 1) updated to latest trunk 2) introduce Version interface to remove zookeeper integer version dependency. because not every storage support integer version.
          Hide
          Ivan Kelly added a comment -

          Patch looks good. There's some small issues with it.

          • Needs to be rebased on trunk
          • MetaStoreException is not used. Is in wrong patch i guess?
          • BookKeeper.java patch removed the throwing of NoSuchLedgerExistsException, which we added in BOOKKEEPER-273. Is this intentional?
          • there are two overloads of getClass where only one is ever used. setClass is unused.
          • LedgerManagerFactory#newLedgerManagerFactory breaks getLedgerManagerType(). if factoryClass is null and layout is null, it should check getLedgerManagerType before setting factoryClass to FlatLedgerManagerType or HierarchicalLedgerManagerType.
          • This does introduce some incompatiblity. A 4.1.0 client will not work with an installation that has been initialised with the LedgerLayout code from this patch. This should be fine though, as LedgerLayout is only ever written on cluster initialization. However, I think we should change this to use protobufs so that any other changes like this are more BC friendly. Not in this patch though.
          • You may as well you MultiLedgerManagerBaseTestCase for the places where you use MultiLedgerManagerTestCase and get rid of MultiLedgerManagerTestCase.
          Show
          Ivan Kelly added a comment - Patch looks good. There's some small issues with it. Needs to be rebased on trunk MetaStoreException is not used. Is in wrong patch i guess? BookKeeper.java patch removed the throwing of NoSuchLedgerExistsException, which we added in BOOKKEEPER-273 . Is this intentional? there are two overloads of getClass where only one is ever used. setClass is unused. LedgerManagerFactory#newLedgerManagerFactory breaks getLedgerManagerType(). if factoryClass is null and layout is null, it should check getLedgerManagerType before setting factoryClass to FlatLedgerManagerType or HierarchicalLedgerManagerType. This does introduce some incompatiblity. A 4.1.0 client will not work with an installation that has been initialised with the LedgerLayout code from this patch. This should be fine though, as LedgerLayout is only ever written on cluster initialization. However, I think we should change this to use protobufs so that any other changes like this are more BC friendly. Not in this patch though. You may as well you MultiLedgerManagerBaseTestCase for the places where you use MultiLedgerManagerTestCase and get rid of MultiLedgerManagerTestCase.
          Hide
          Ivan Kelly added a comment -

          ah, ignore first comment.

          Show
          Ivan Kelly added a comment - ah, ignore first comment.
          Hide
          Sijie Guo added a comment -

          Ivan, thanks for reviewing.

          MetaStoreException is not used. Is in wrong patch i guess?

          I think it is introduced when I am working on BOOKKEEPER-204. would remove it in next patch.

          BookKeeper.java patch removed the throwing of NoSuchLedgerExistsException, which we added in BOOKKEEPER-273. Is this intentional?

          Actually, I put in AbstractZkLedgerManager, because NONODE is zookeeper's return code. You could refer it as below:

          +    @Override
          +    public void deleteLedger(final long ledgerId, final GenericCallback<Void> cb) {
          +        zk.delete(getLedgerPath(ledgerId), -1, new VoidCallback() {
          +            @Override
          +            public void processResult(int rc, String path, Object ctx) {
          +                int bkRc;
          +                if (rc == KeeperException.Code.NONODE.intValue()) {
          +                    LOG.warn("Ledger node does not exist in ZooKeeper: ledgerId={}", ledgerId);
          +                    bkRc = BKException.Code.NoSuchLedgerExistsException;
          +                } else if (rc == KeeperException.Code.OK.intValue()) {
          +                    bkRc = BKException.Code.OK;
          +                } else {
          +                    bkRc = BKException.Code.ZKException;
          +                }
          +                cb.operationComplete(bkRc, (Void)null);
          +            }
          +        }, null);
          +    }
          

          there are two overloads of getClass where only one is ever used. setClass is unused.

          ah, ur right. would remove unused methods.

          LedgerManagerFactory#newLedgerManagerFactory breaks getLedgerManagerType(). if factoryClass is null and layout is null, it should check getLedgerManagerType before setting factoryClass to FlatLedgerManagerType or HierarchicalLedgerManagerType.

          yes. ur right. would improve it.

          Show
          Sijie Guo added a comment - Ivan, thanks for reviewing. MetaStoreException is not used. Is in wrong patch i guess? I think it is introduced when I am working on BOOKKEEPER-204 . would remove it in next patch. BookKeeper.java patch removed the throwing of NoSuchLedgerExistsException, which we added in BOOKKEEPER-273 . Is this intentional? Actually, I put in AbstractZkLedgerManager, because NONODE is zookeeper's return code. You could refer it as below: + @Override + public void deleteLedger( final long ledgerId, final GenericCallback< Void > cb) { + zk.delete(getLedgerPath(ledgerId), -1, new VoidCallback() { + @Override + public void processResult( int rc, String path, Object ctx) { + int bkRc; + if (rc == KeeperException.Code.NONODE.intValue()) { + LOG.warn( "Ledger node does not exist in ZooKeeper: ledgerId={}" , ledgerId); + bkRc = BKException.Code.NoSuchLedgerExistsException; + } else if (rc == KeeperException.Code.OK.intValue()) { + bkRc = BKException.Code.OK; + } else { + bkRc = BKException.Code.ZKException; + } + cb.operationComplete(bkRc, ( Void ) null ); + } + }, null ); + } there are two overloads of getClass where only one is ever used. setClass is unused. ah, ur right. would remove unused methods. LedgerManagerFactory#newLedgerManagerFactory breaks getLedgerManagerType(). if factoryClass is null and layout is null, it should check getLedgerManagerType before setting factoryClass to FlatLedgerManagerType or HierarchicalLedgerManagerType. yes. ur right. would improve it.
          Hide
          Sijie Guo added a comment -

          You may as well you MultiLedgerManagerBaseTestCase for the places where you use MultiLedgerManagerTestCase and get rid of MultiLedgerManagerTestCase.

          MultiLedgerManagerBaseTestCase is used to test different digest type and ledger manager, which gets rid of adding Hierarchical prefixed test cases.

          MultiLedgerManagerTestCase is used to test different ledger manager.

          Show
          Sijie Guo added a comment - You may as well you MultiLedgerManagerBaseTestCase for the places where you use MultiLedgerManagerTestCase and get rid of MultiLedgerManagerTestCase. MultiLedgerManagerBaseTestCase is used to test different digest type and ledger manager, which gets rid of adding Hierarchical prefixed test cases. MultiLedgerManagerTestCase is used to test different ledger manager.
          Hide
          Sijie Guo added a comment -

          update new patch addressing Ivan's comments.

          1) rebased to latest trunk
          2) remove unused MetaStoreException and setClass in ReflectionUtils
          3) improve LedgerManagerFactory#newLedgerManagerFactory for backward compatibility.
          4) add uninitialize in LedgerManagerFactory to release resources used by ledger manager factory.

          Show
          Sijie Guo added a comment - update new patch addressing Ivan's comments. 1) rebased to latest trunk 2) remove unused MetaStoreException and setClass in ReflectionUtils 3) improve LedgerManagerFactory#newLedgerManagerFactory for backward compatibility. 4) add uninitialize in LedgerManagerFactory to release resources used by ledger manager factory.
          Hide
          Ivan Kelly added a comment -
          MultiLedgerManagerBaseTestCase is used to test different digest type and ledger manager, which gets rid of adding Hierarchical prefixed test cases.
          
          MultiLedgerManagerTestCase is used to test different ledger manager.
          

          So MultiLedgerManagerBaseTestCase is really a superset of MultiLedgerManagerTestCase. I don't see any harm in just using MultiLedgerManagerBaseTestCase for all. The reason I wrote some test cases which didn't use the BaseTestCase, was because with Parameterized junit tests, it's not possible to run individual tests (i.e. mvn test -Dtest=TestFencing#testBasicFencing), which I found annoying. However, if the test is going to use a Parameterized junit test in any case, we should just run everything.

          Show
          Ivan Kelly added a comment - MultiLedgerManagerBaseTestCase is used to test different digest type and ledger manager, which gets rid of adding Hierarchical prefixed test cases. MultiLedgerManagerTestCase is used to test different ledger manager. So MultiLedgerManagerBaseTestCase is really a superset of MultiLedgerManagerTestCase. I don't see any harm in just using MultiLedgerManagerBaseTestCase for all. The reason I wrote some test cases which didn't use the BaseTestCase, was because with Parameterized junit tests, it's not possible to run individual tests (i.e. mvn test -Dtest=TestFencing#testBasicFencing), which I found annoying. However, if the test is going to use a Parameterized junit test in any case, we should just run everything.
          Hide
          Sijie Guo added a comment -

          @Ivan,

          HierarchicalAsyncLedgerOpsTest -> AsyncLedgerOpsTest (BaseTestCase)
          HierarchicalBookieReadWriteTest -> BookieReadWriteTest (BaseTestCase)
          HierarchicalBookieFailureTest -> BookieFailureTest (BaseTestCase)
          HierarchicalBookieRecoveryTest -> BookieRecoveryTest (BaseTestCase)
          HierarchicalLedgerDeleteTest -> LedgerDeleteTest (BookKeeperClusterTestCase)
          

          MultiLedgerManagerBaseTestCase & MultiLedgerManagerTestCase are used to remove HierarchicalxxxTests to let them run as parameterized tests.

          So MultiLedgerManagerBaseTestCase is really a superset of MultiLedgerManagerTestCase. I don't see any harm in just using MultiLedgerManagerBaseTestCase for all.

          If everything is run as MultiLedgerManagerBaseTestCase, it would take a long time to run. For example, LedgerDeleteTest just tests ledger deletion functionality. so we don't need to parameterize the test to run with different digest type. But we have to run with different ledger managers because deletion is related to gc implementation in different ledger managers.

          Show
          Sijie Guo added a comment - @Ivan, HierarchicalAsyncLedgerOpsTest -> AsyncLedgerOpsTest (BaseTestCase) HierarchicalBookieReadWriteTest -> BookieReadWriteTest (BaseTestCase) HierarchicalBookieFailureTest -> BookieFailureTest (BaseTestCase) HierarchicalBookieRecoveryTest -> BookieRecoveryTest (BaseTestCase) HierarchicalLedgerDeleteTest -> LedgerDeleteTest (BookKeeperClusterTestCase) MultiLedgerManagerBaseTestCase & MultiLedgerManagerTestCase are used to remove HierarchicalxxxTests to let them run as parameterized tests. So MultiLedgerManagerBaseTestCase is really a superset of MultiLedgerManagerTestCase. I don't see any harm in just using MultiLedgerManagerBaseTestCase for all. If everything is run as MultiLedgerManagerBaseTestCase, it would take a long time to run. For example, LedgerDeleteTest just tests ledger deletion functionality. so we don't need to parameterize the test to run with different digest type. But we have to run with different ledger managers because deletion is related to gc implementation in different ledger managers.
          Hide
          Ivan Kelly added a comment -

          If everything is run as MultiLedgerManagerBaseTestCase, it would take a long time to run.

          This is true. Would it be a big change to rename it to MultiLedgerManagerMultiDigestTestCase, to make things clearer?

          Show
          Ivan Kelly added a comment - If everything is run as MultiLedgerManagerBaseTestCase, it would take a long time to run. This is true. Would it be a big change to rename it to MultiLedgerManagerMultiDigestTestCase, to make things clearer?
          Hide
          Sijie Guo added a comment -

          attach a new patch renaming MultiLedgerManagerBaseTestCase to MultiLedgerManagerMultiDigestTestCase

          review board: https://reviews.apache.org/r/4603/diff/5/#index_header

          Show
          Sijie Guo added a comment - attach a new patch renaming MultiLedgerManagerBaseTestCase to MultiLedgerManagerMultiDigestTestCase review board: https://reviews.apache.org/r/4603/diff/5/#index_header
          Hide
          Ivan Kelly added a comment -

          BOOKKEEPER-203.diff_v6 doesn't apply cleanly to trunk? Did you generate the patch against the correct branch? It looks like the clash is against BOOKKEEPER-183.

          Show
          Ivan Kelly added a comment - BOOKKEEPER-203 .diff_v6 doesn't apply cleanly to trunk? Did you generate the patch against the correct branch? It looks like the clash is against BOOKKEEPER-183 .
          Hide
          Sijie Guo added a comment -

          Thanks Ivan for reminding.

          Attach a new patch rebased on latest trunk.

          review board: https://reviews.apache.org/r/4603/diff/6

          Show
          Sijie Guo added a comment - Thanks Ivan for reminding. Attach a new patch rebased on latest trunk. review board: https://reviews.apache.org/r/4603/diff/6
          Hide
          Ivan Kelly added a comment -

          One last thing (unfortunately it wasn't in the patch i reviewed last week). I think Version and Versioned should be in the meta package and not in a package of their own. Actually, Versioned doesn't even seem to be used at all. I guess it's there for another patch you have planned?

          Show
          Ivan Kelly added a comment - One last thing (unfortunately it wasn't in the patch i reviewed last week). I think Version and Versioned should be in the meta package and not in a package of their own. Actually, Versioned doesn't even seem to be used at all. I guess it's there for another patch you have planned?
          Hide
          Sijie Guo added a comment -

          @Ivan,

          Versioned is added as a generic interface. I was planning to make LedgerMetadata as Versioned interface, but seems that there are too much modifications. so I don't do the change.

          But the idea I kept Versioned here is for completeness of versioning interface, and it would be used in Hedwig Meta Manager to write topic persistence info and owner info. (BOOKKEEPER-250 and BOOKKEEPER-259)

          meta package is used to put metadata related things of BookKeeper, while Version and Versioned are more generic abstraction than BookKeeper meta, it would be used in both BookKeeper and Hedwig metadata manager. So I put them in a separated versioning package.

          Show
          Sijie Guo added a comment - @Ivan, Versioned is added as a generic interface. I was planning to make LedgerMetadata as Versioned interface, but seems that there are too much modifications. so I don't do the change. But the idea I kept Versioned here is for completeness of versioning interface, and it would be used in Hedwig Meta Manager to write topic persistence info and owner info. ( BOOKKEEPER-250 and BOOKKEEPER-259 ) meta package is used to put metadata related things of BookKeeper, while Version and Versioned are more generic abstraction than BookKeeper meta, it would be used in both BookKeeper and Hedwig metadata manager. So I put them in a separated versioning package.
          Hide
          Ivan Kelly added a comment -

          Ok, I'll take one last pass over the patch, but i think it's ready to go.

          Show
          Ivan Kelly added a comment - Ok, I'll take one last pass over the patch, but i think it's ready to go.
          Hide
          Ivan Kelly added a comment -

          looks good +1

          Show
          Ivan Kelly added a comment - looks good +1
          Hide
          Ivan Kelly added a comment -

          Committed r1351646. Great work Sijie.

          Show
          Ivan Kelly added a comment - Committed r1351646. Great work Sijie.
          Hide
          Hudson added a comment -

          Integrated in bookkeeper-trunk #567 (See https://builds.apache.org/job/bookkeeper-trunk/567/)
          BOOKKEEPER-203: improve ledger manager interface to remove zookeeper dependency on metadata operations. (sijie via ivank) (Revision 1351646)

          Result = ABORTED
          ivank :
          Files :

          • /zookeeper/bookkeeper/trunk/CHANGES.txt
          • /zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/Bookie.java
          • /zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/GarbageCollectorThread.java
          • /zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/InterleavedLedgerStorage.java
          • /zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/LedgerCacheImpl.java
          • /zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/BKException.java
          • /zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/BookKeeper.java
          • /zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/BookKeeperAdmin.java
          • /zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerCreateOp.java
          • /zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerDeleteOp.java
          • /zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerHandle.java
          • /zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerMetadata.java
          • /zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerOpenOp.java
          • /zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/conf/AbstractConfiguration.java
          • /zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/AbstractZkLedgerManager.java
          • /zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/ActiveLedgerManager.java
          • /zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/FlatLedgerManager.java
          • /zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/FlatLedgerManagerFactory.java
          • /zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/HierarchicalLedgerManager.java
          • /zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/HierarchicalLedgerManagerFactory.java
          • /zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/LedgerLayout.java
          • /zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/LedgerManager.java
          • /zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/LedgerManagerFactory.java
          • /zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/ZkVersion.java
          • /zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/util/ReflectionUtils.java
          • /zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/versioning
          • /zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/versioning/Version.java
          • /zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/versioning/Versioned.java
          • /zookeeper/bookkeeper/trunk/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/LedgerCacheTest.java
          • /zookeeper/bookkeeper/trunk/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/BookieRecoveryTest.java
          • /zookeeper/bookkeeper/trunk/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestFencing.java
          • /zookeeper/bookkeeper/trunk/bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/GcLedgersTest.java
          • /zookeeper/bookkeeper/trunk/bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/HierarchicalAsyncLedgerOpsTest.java
          • /zookeeper/bookkeeper/trunk/bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/HierarchicalBookieFailureTest.java
          • /zookeeper/bookkeeper/trunk/bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/HierarchicalBookieReadWriteTest.java
          • /zookeeper/bookkeeper/trunk/bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/HierarchicalBookieRecoveryTest.java
          • /zookeeper/bookkeeper/trunk/bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/HierarchicalLedgerDeleteTest.java
          • /zookeeper/bookkeeper/trunk/bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/LedgerLayoutTest.java
          • /zookeeper/bookkeeper/trunk/bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/LedgerManagerTestCase.java
          • /zookeeper/bookkeeper/trunk/bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/TestLedgerManager.java
          • /zookeeper/bookkeeper/trunk/bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/TestZkVersion.java
          • /zookeeper/bookkeeper/trunk/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/AsyncLedgerOpsTest.java
          • /zookeeper/bookkeeper/trunk/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/BookKeeperClusterTestCase.java
          • /zookeeper/bookkeeper/trunk/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/BookieFailureTest.java
          • /zookeeper/bookkeeper/trunk/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/BookieReadWriteTest.java
          • /zookeeper/bookkeeper/trunk/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/LedgerDeleteTest.java
          • /zookeeper/bookkeeper/trunk/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/MultiLedgerManagerMultiDigestTestCase.java
          • /zookeeper/bookkeeper/trunk/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/MultiLedgerManagerTestCase.java
          Show
          Hudson added a comment - Integrated in bookkeeper-trunk #567 (See https://builds.apache.org/job/bookkeeper-trunk/567/ ) BOOKKEEPER-203 : improve ledger manager interface to remove zookeeper dependency on metadata operations. (sijie via ivank) (Revision 1351646) Result = ABORTED ivank : Files : /zookeeper/bookkeeper/trunk/CHANGES.txt /zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/Bookie.java /zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/GarbageCollectorThread.java /zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/InterleavedLedgerStorage.java /zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/LedgerCacheImpl.java /zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/BKException.java /zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/BookKeeper.java /zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/BookKeeperAdmin.java /zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerCreateOp.java /zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerDeleteOp.java /zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerHandle.java /zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerMetadata.java /zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerOpenOp.java /zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/conf/AbstractConfiguration.java /zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/AbstractZkLedgerManager.java /zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/ActiveLedgerManager.java /zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/FlatLedgerManager.java /zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/FlatLedgerManagerFactory.java /zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/HierarchicalLedgerManager.java /zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/HierarchicalLedgerManagerFactory.java /zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/LedgerLayout.java /zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/LedgerManager.java /zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/LedgerManagerFactory.java /zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/ZkVersion.java /zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/util/ReflectionUtils.java /zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/versioning /zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/versioning/Version.java /zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/versioning/Versioned.java /zookeeper/bookkeeper/trunk/bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/LedgerCacheTest.java /zookeeper/bookkeeper/trunk/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/BookieRecoveryTest.java /zookeeper/bookkeeper/trunk/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestFencing.java /zookeeper/bookkeeper/trunk/bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/GcLedgersTest.java /zookeeper/bookkeeper/trunk/bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/HierarchicalAsyncLedgerOpsTest.java /zookeeper/bookkeeper/trunk/bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/HierarchicalBookieFailureTest.java /zookeeper/bookkeeper/trunk/bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/HierarchicalBookieReadWriteTest.java /zookeeper/bookkeeper/trunk/bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/HierarchicalBookieRecoveryTest.java /zookeeper/bookkeeper/trunk/bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/HierarchicalLedgerDeleteTest.java /zookeeper/bookkeeper/trunk/bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/LedgerLayoutTest.java /zookeeper/bookkeeper/trunk/bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/LedgerManagerTestCase.java /zookeeper/bookkeeper/trunk/bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/TestLedgerManager.java /zookeeper/bookkeeper/trunk/bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/TestZkVersion.java /zookeeper/bookkeeper/trunk/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/AsyncLedgerOpsTest.java /zookeeper/bookkeeper/trunk/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/BookKeeperClusterTestCase.java /zookeeper/bookkeeper/trunk/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/BookieFailureTest.java /zookeeper/bookkeeper/trunk/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/BookieReadWriteTest.java /zookeeper/bookkeeper/trunk/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/LedgerDeleteTest.java /zookeeper/bookkeeper/trunk/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/MultiLedgerManagerMultiDigestTestCase.java /zookeeper/bookkeeper/trunk/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/MultiLedgerManagerTestCase.java

            People

            • Assignee:
              Sijie Guo
              Reporter:
              Sijie Guo
            • Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development