On Tue, Jun 17, 2014 at 11:56 PM, Jaln <[email protected]> wrote:

> Hi,
>
> I'm running the bookkeeper benchmark read,
> I first start 3 local bookie, then run the 'benchmark writes',
> it works. (I'm assuming the later 'read' will need some data, so I generate
> it first)
>
> Secondly,  run 'benchmark reads -ledger'
> it's supposed to work, bc the 'help' says, with no 'args' for ledger, it
> will read all. It turns out not working.
>

-ledger is an option with argument. you need to specify ledger number for
it. you could use either '-ledger' to specify a ledger to read, or use
'-listen' to specify number of ledgers you want to read.

Ivan: could you give more details on '-ledger' and '-listen' options?


>
> Thirdly, I try 'benchmark reads -ledger 0', 'benchmark reads -ledger 1',
> 'benchmark reads -ledger 2'
> it all says like 'INFO  - [main:BenchReadThroughputLatency@260] - Watching
> for creation of/ledgers/L0000000002'
>
> Well, I tried more, e.g.,  'benchmark reads -ledger 3', 'benchmark reads
> -ledger 4', and so on..
> it works, and returns like 'Read 9999 in 2001ms', though I have no idea
> what does this mean.
>

You need to specify a valid ledger id. The ledger ids should be the ledgers
generated in the write benchmark. I guessed currently write benchmark
doesn't print the ledger ids for u. so you tried starting from zero. but
the ledger id might not be generated monotonically from zero. so some of
the ids might not be valid ledger ids.


>
> Last, I debugged the 'bookkeeper benchmark',
> I found that the 'benchmark reads -ledger 4' finally goes to this function:
>
>         LedgerEntryRequest(ArrayList<InetSocketAddress> ensemble, long lId,
> long eId) {
>             super(lId, eId);
>
>             this.ensemble = ensemble;
>             this.writeSet = lh.distributionSchedule.getWriteSet(entryId);
>             this.sentReplicas = new
> BitSet(lh.getLedgerMetadata().getWriteQuorumSize());
>             this.erroredReplicas = new
> BitSet(lh.getLedgerMetadata().getWriteQuorumSize());
>         }
> I can not find the place where the ledger file is opened and read, in my
> understanding, the 0.log file should be read, as shown in the below, one
> bookie has the following contents:
>
>  └── bookie29131094670313057736test
>     └── current
>         ├── 0
>         │   ├── 3
>         │   │   └── 3.idx
>         │   └── 4
>         │       └── 4.idx
>         ├── 0.log
>         ├── 146ad7d2a78.txn
>         ├── lastId
>         ├── lastMark
>         └── VERSION
>
> In which the sub-directory '/current/0', contains the index files; the
> '0.log' is the ledger file for later faster read, and the '146ad7d2a78.txn'
> is the journal file.
>

The benchmark is running clients to talk to bookie servers. And  those
files were opened by bookie servers not by the clients.


> Plz help and correct me. Thanks very much.
>
> Best,
> Jialin
>

Reply via email to