Skip to content

Conversation

@vraulji567
Copy link

Motivation

The bookkeeper shell read ledger commands ends without reading any entries when the first entry and last entry are not provided as part command while reading ledger for a specific bookie. The firstentry -fe and lastentry -le becomes mandatory while reading ledger for a specific bookie using the bookkeeper shell readledger command. Make changes to make the -fe and -le optional while reading ledger from a bookie using the readledger command. The readledger should automatically determine the entries to read when the first entry and last entry are not provided.

Changes

  • Update the ReadLedgerCommand to determine the last entry from ledger metadata when lastentry is not provided as part of the command.

Test

Before:

bin/bookkeeper shell readledger -l 1234 -bookie 10.10.0.1:3181
17:47:48.786 [main] INFO  o.a.b.c.a.impl.ByteBufAllocatorImpl  - Setting Netty allocator leak detector to Simple
17:47:49.157 [main] INFO  o.a.b.c.RackawareEnsemblePlacementPolicyImpl - Initialize rackaware ensemble placement policy @ <Bookie:10.10.0.3:0> @ /default-rack : org.apache.bookkeeper.client.TopologyAwareEnsemblePlacementPolicy$DefaultResolver.
17:47:49.157 [main] INFO  o.a.b.c.RackawareEnsemblePlacementPolicyImpl - Not weighted
17:47:49.165 [main] INFO  o.a.bookkeeper.client.BookKeeper     - Weighted ledger placement is not enabled
17:47:49.232 [main-EventThread] INFO  o.a.b.discover.ZKRegistrationClient  - Update BookieInfoCache (writable bookie) 10.10.0.1:3181 -> BookieServiceInfo{properties={}, endpoints=[EndpointInfo{id=bookie, port=3181, host=10.10.0.1, protocol=bookie-rpc, auth=[], extensions=[tls]}]}
17:47:49.233 [main-EventThread] INFO  o.a.b.discover.ZKRegistrationClient  - Update BookieInfoCache (writable bookie) 10.10.0.2:3181 -> BookieServiceInfo{properties={}, endpoints=[EndpointInfo{id=bookie, port=3181, host=10.10.0.2, protocol=bookie-rpc, auth=[], extensions=[tls]}]}
17:47:49.233 [main-EventThread] INFO  o.a.b.discover.ZKRegistrationClient  - Update BookieInfoCache (writable bookie) 10.10.0.3:3181 -> BookieServiceInfo{properties={}, endpoints=[EndpointInfo{id=bookie, port=3181, host=10.10.0.3, protocol=bookie-rpc, auth=[], extensions=[tls]}]}
17:47:49.238 [BookKeeperClientScheduler-OrderedScheduler-0-0] INFO  o.a.b.net.NetworkTopologyImpl        - Adding a new node: /default-rack/10.10.0.1:3181
17:47:49.238 [BookKeeperClientScheduler-OrderedScheduler-0-0] INFO  o.a.b.net.NetworkTopologyImpl        - Adding a new node: /default-rack/10.10.0.2:3181
17:47:49.238 [BookKeeperClientScheduler-OrderedScheduler-0-0] INFO  o.a.b.net.NetworkTopologyImpl        - Adding a new node: /default-rack/10.10.0.3:3181
17:47:49.282 [main] WARN  o.a.bookkeeper.client.BookKeeper     - The mainWorkerPool did not shutdown cleanly

After:

bin/bookkeeper shell readledger -l 1234 -bookie 10.10.0.1:3181
16:26:12.092 [main] INFO  o.a.b.c.a.impl.ByteBufAllocatorImpl  - Setting Netty allocator leak detector to Simple
16:26:12.966 [nioEventLoopGroup-12-1] INFO  o.a.b.proto.PerChannelBookieClient   - Successfully connected to bookie using TLS: 10.10.0.1:3181
16:26:12.988 [BookieClientScheduler-OrderedExecutor-0-0] INFO  o.a.b.t.c.c.bookie.ReadLedgerCommand - --------- Lid=1234, Eid=0 ---------
16:26:12.990 [BookieClientScheduler-OrderedExecutor-0-0] INFO  o.a.b.t.c.c.bookie.ReadLedgerCommand - --------- Lid=1234, Eid=1 ---------
16:26:12.991 [BookieClientScheduler-OrderedExecutor-0-0] INFO  o.a.b.t.c.c.bookie.ReadLedgerCommand - --------- Lid=1234, Eid=2 ---------
16:26:12.992 [BookieClientScheduler-OrderedExecutor-0-0] INFO  o.a.b.t.c.c.bookie.ReadLedgerCommand - --------- Lid=1234, Eid=3 ---------
16:26:22.785 [main] INFO  o.a.b.proto.PerChannelBookieClient   - Closing the per channel bookie client for 10.10.0.1:3181
16:26:22.790 [main] WARN  o.a.bookkeeper.client.BookKeeper     - The mainWorkerPool did not shutdown cleanly

@vraulji567
Copy link
Author

@zymap Can I get an approval on this PR?

Copy link
Contributor

@rdhabalia rdhabalia left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@vraulji567
Copy link
Author

@rdhabalia @zymap I have fixed the failing test. Can you review and approve again?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants