[ 
https://issues.apache.org/jira/browse/ZOOKEEPER-1001?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13012416#comment-13012416
 ] 

Flavio Junqueira commented on ZOOKEEPER-1001:
---------------------------------------------

I also agree that it is not strictly necessary for the HDFS journal to have the 
NN connecting to ZooKeeper, since the information of what entries have been 
committed can be conveyed in other ways, e.g., by explicitly sending from the 
writer to the reader(s). Bookies can't provide the hints you're referring to 
because no single bookie has a global view of a ledger. Consequently, I can 
only see those hints working either via ZooKeeper or via direct communication.

Since we use a ZooKeeper instance to manage a bookie pool and the BK client 
talks to ZooKeeper today, the discussion so far seems to converge to using 
ZooKeeper to pass the information on what entries are committed. One idea we 
have suggested in this jira to do it through the BK client is to have the 
writer periodically writing to the CLOSED znode the last committed entry, and 
having the reader(s) reading this value. The mechanism to write the CLOSED 
znode is there already, so there is a small amount of code change needed. We 
need essentially to introduce a call to the BK api that forces the BK client to 
write the CLOSED znode.

Given that some applications, including the NN, might learn of committed 
entries through ZooKeeper, it seems to make sense to incorporate such accesses 
to ZooKeeper to the BK client, but I don't think we have reached agreement on 
it yet and leaving to the application to implement it when needed is still an 
option. If we do it in the way I suggest, then an application would not be 
forced to use ZooKeeper for such hints, and direct communication would also be 
possible. 

Also, If we end up going this direction of periodically writing to the CLOSED 
znode, we should change the name of the znode to something else, since it 
doesn't really represent any longer what the znode does.

 

> Read from open ledger
> ---------------------
>
>                 Key: ZOOKEEPER-1001
>                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1001
>             Project: ZooKeeper
>          Issue Type: New Feature
>          Components: contrib-bookkeeper
>            Reporter: Flavio Junqueira
>         Attachments: zk-1001-design-doc.pdf, zk-1001-design-doc.pdf
>
>
> The BookKeeper client currently does not allow a client to read from an open 
> ledger. That is, if the creator of a ledger is still writing to it (and the 
> ledger is not closed), then an attempt to open the same ledger for reading 
> will execute the code to recover the ledger, assuming that the ledger has not 
> been correctly closed.
> It seems that there are applications that do require the ability to read from 
> a ledger while it is being written to, and the main goal of this jira is to 
> discuss possible implementations of this feature.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to