The write speed of bookkeper that version less than 4.30 is bigger than 1200 
entries per second when i use the same test code


[email protected]
 From: Jiannan WangDate: 2014-10-17 18:31To: [email protected][email protected]: Re: hi, why write speed of 
bookkeeper-4.3.0 is very slow?





Could you share more information:

   - What's the number of write_num?

   - What's the read throughput under your test?

   - Does the 5 bookie servers run in same machine?
   - Could you check whether StringUtil.div works well?
   - Could you also try async write API and tell us the output?





Regards,

Jiannan






From: "[email protected]" <[email protected]>

Reply-To: "[email protected]" 
<[email protected]>

Date: Friday, October 17, 2014 at 3:38 PM

To: bookkeeper-user <[email protected]>

Subject: hi, why write speed of bookkeeper-4.3.0 is very slow?







hi,

     I have tried bookkeeper-4.3.0 today. But its write speed is 4 entries per 
sec in my environment.
     There are 5 bookkeeper-server-4.3.0 in my env.
     Is there anything wrong? Test codes as follows:
public void syncWriteLedger(long write_num) throws InterruptedException, 
BKException { 

byte[] pwd = "foobar".getBytes(); 

LedgerHandle lh = client.createLedger(3, 2, 

DigestType.MAC, pwd); 



long ledgerId = lh.getId(); 

System.out.println("ledgerId=" + ledgerId); 

System.out 

.println("data_len=" 

+ ("Hello World!afdafdafdfxtyb457u8n9,7.,pbesgcerfqx" + write_num) 

.getBytes().length); 

byte[] data = ("Hello World!afdafdafdfxtyb457u8n9,7.,pbesgcerfqx" + 
write_num).getBytes(); 

long st = System.currentTimeMillis(); 

for (int i = 0; i < write_num; i++) { 

lh.addEntry(data); 

} 

long ut = System.currentTimeMillis() - st; 

lh.close(); 

double uts = StringUtil.div(ut, 1000, 3); 

double wspeed = StringUtil.div(write_num, uts, 2); 

System.out.println("ut=" + ut + " ms, write_num=" + write_num 

+ ", write speed=" + wspeed + "/s"); 





LedgerHandle lh2 = client.openLedger(ledgerId, BookKeeper.DigestType.MAC, pwd); 

long lastEntry = lh2.getLastAddConfirmed(); 

st = System.currentTimeMillis(); 

Enumeration<LedgerEntry> entries = lh2.readEntries(0, lastEntry); 

while (entries.hasMoreElements()) { 

byte[] bytes = entries.nextElement().getEntry(); 

System.out.println(new String(bytes)); 

} 

ut = System.currentTimeMillis() - st; 

lh2.close(); 

uts = StringUtil.div(ut, 1000, 3); 

double rspeed = StringUtil.div(write_num, uts, 2); 

System.out.println("ut=" + ut + " ms, read_num=" + write_num 

+ ", read speed=" + rspeed + "/s"); 



}




[email protected]








Reply via email to