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

Elliott Clark updated HBASE-9835:
---------------------------------

    Attachment: HBASE-9835-0.patch

Here's what I was thinking for C api.

* Fully async
* Call backs all take a void pointer for the user to supply their own data that 
will be needed.
* No explicit batching.  Since everything is async there's no need for it.
* All mutations start with the struct hb_mutation_type
* I went with the hidden struct.  Even though it necessitates a heap allocation 
I have been convinced that the encapsulation is worth it.
* It has set methods.  There are no get methods yet.  I'm not sure if they will 
be needed.
* I think the freeing of backing buffers should be the user's responsibility. 
There are destroy methods but they are just for implementation created 
resources.
* Tests are included using GTest.
* LibEV was chosen as it provides a good c++ header so creating the underlying 
rpc implementation will be OO.
* The CMake modules might need to be re-written.

I'll put this up on rb.

> Define C interface of HBase Client synchronous APIs
> ---------------------------------------------------
>
>                 Key: HBASE-9835
>                 URL: https://issues.apache.org/jira/browse/HBASE-9835
>             Project: HBase
>          Issue Type: Sub-task
>          Components: Client
>            Reporter: Aditya Kishore
>            Assignee: Aditya Kishore
>              Labels: C
>         Attachments: HBASE-9835-0.patch
>
>
> Creating this as a sub task of HBASE-1015 to define Define C language 
> interface of HBase Client synchronous APIs.



--
This message was sent by Atlassian JIRA
(v6.1#6144)

Reply via email to