Hi Flavio,

I am using zookeeper 3.2.2. The documentation on apache 
(http://hadoop.apache.org/zookeeper/docs/r3.3.0/bookkeeperStarted.html) refers 
to example that uses LedgerSequence class.

Basically I am trying to use BookKeeper / Hedwig and see if they can be used as 
a reliable message bus. Hedwig has only a video (http://vimeo.com/13282102) 
explains the system overview. But installation is non-trivial. I tried building 
from trunk, but trunk version is 3.4 and hedwig bundles zk 3.2 code within 
itself. In short, was not able to build/install hedwig.

1. Could you please give some pointers for hedwig. It seems that BookKeeper 
need higher level abstraction which Hedwig can provide.

2. How does bookkeeper handles zk session expiry? To be honest, zk itself 
come up with a solution to recover from session expiry. Found this blog 
: http://sna-projects.com/blog/2010/08/zookeeper-experience/ which actually 
lists all the issues that I also faced while working with zk. 

3. Any comments on '“Low Latency Message Bus With Scribe and HDFS
 : http://sna-projects.com/blog/2010/09/scribe-and-hdfs/ and how that compares 
to BookKeeper / Hedwig?


----- Original Message ----
From: Flavio Junqueira <f...@yahoo-inc.com>
To: "zookeeper-user@hadoop.apache.org" <zookeeper-user@hadoop.apache.org>
Sent: Fri, 1 October, 2010 2:37:35 PM
Subject: Re: BookKeeper newbie question

Thanks for your questions, Amit.

On Sep 28, 2010, at 6:37 PM, amit jaiswal wrote:

> Hi,
> I am experimenting with BookKeeper and have a question on LedgerHandler class.
> The readEntries(firstEntry, lastEntry) method takes the indexes of first and
> last entries. Also, the LedgerSequence object returned has method
> hasMoreElements().

Which version are you using? I don't think we have LedgerSequence any longer.

> Question:
> 1. How does a client knows the index of the last entry? I was expecting 
> to make a call like readEntries(0, Integer.MAX_INT) and the hasMoreElements() 
> return false the moment there are no more entries. Am I missing something in 
> way the API is supposed to be used?

I believe you should use public long getLastAddConfirmed().

> 2. The LedgerSequence.hasMoreElements() returns true (even if there are no 
> entries), and the nextEntry returns null.

readEntries currently return Enumeration<LedgerEntry>, but I just noticed that 
the documentation is not correct, so I'll open a jira to fix it.


Reply via email to