Thank you Sijie.

Best,
Jialin


On Wed, Jun 18, 2014 at 11:39 PM, Sijie Guo <[email protected]> wrote:

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



-- 

Genius only means hard-working all one's life

Reply via email to