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) that
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 APIs
need higher level abstraction which Hedwig can provide.
2. How does bookkeeper handles zk session expiry? To be honest, zk itself should
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?
-regards
Amit
----- Original Message ----
From: Flavio Junqueira <fpj@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
clients
> to make a call like readEntries(0, Integer.MAX_INT) and the hasMoreElements()
>to
> return false the moment there are no more entries. Am I missing something in
>the
> 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
more
> 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.
-Flavio
|