You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@zookeeper.apache.org by "Mahadev konar (JIRA)" <ji...@apache.org> on 2009/05/01 06:43:30 UTC

[jira] Updated: (ZOOKEEPER-380) bookkeeper should have a streaming api so that its easier to store checpoints/snapshots in bookkeeper.

     [ https://issues.apache.org/jira/browse/ZOOKEEPER-380?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Mahadev konar updated ZOOKEEPER-380:
------------------------------------

    Attachment: ZOOKEEPER-380.patch

THis patch implements a streaming api extending OutputStream and InputStream on top of ledgerhandles.

The way to use it is 
{code}
LedgerHandle lh = BooKKeeper.createLedger()
LedgerOutputStream los = new LedgerOutputStream(lh);
los.write() ...........

los.close()
lh.close()
{code}
for using the inputstream is similar

{code}
LedgerHandle lh = BooKKepeer.openLedger()
LedgerInputStream lis = new LedgerInputStream(lh);
lis.read(byte[]);
lis.close();
lh.close();
{code}

This patch does not have tests. I will add tests with the next patch. comments?

> bookkeeper should have a streaming api so that its easier to store checpoints/snapshots in bookkeeper.
> ------------------------------------------------------------------------------------------------------
>
>                 Key: ZOOKEEPER-380
>                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-380
>             Project: Zookeeper
>          Issue Type: Improvement
>          Components: contrib-bookkeeper
>            Reporter: Mahadev konar
>         Attachments: ZOOKEEPER-380.patch, ZOOKEEPER-380.patch, ZOOKEEPER-380.patch, ZOOKEEPER-380.patch
>
>
> currently, bookkeeper api allows just a bytes interface which is 
> ld.write(bytes).
> We should have an interface like 
> Stream s = ledger.createStream() (I am not very sure of the interface right now but will post a more concrete one after giving it a little more thought)
> now this stream can be used to wirte checkpoints as 
> s.write(bytes)
> and then closed to s.close() to close the snapshot. 
> This api could use the current api to implement snapshots as chunks of bytes (buffered by stream s) that can be written via ld.write(bytes).

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.