hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jurriaan Mous (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-13784) Add Async Client Table API
Date Fri, 29 May 2015 10:36:17 GMT

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

Jurriaan Mous commented on HBASE-13784:
---------------------------------------

I sent out a mail to the mailinglist. Below my latest suggestion as I also added it to the
mail. This version also includes a suggestion for the Coprocessor calls.

I am currently proposing the following methods in the simpler AsyncTable interface:
* exists(Get): ResponsePromise<Boolean>
* exists(List<Get>): ResponsePromise<Boolean[]>
* get(Get): ResponsePromise<Result>
* get(List<Get>): ResponsePromise<Result[]>
* mutate(Mutation): ResponsePromise<Void> - Instead of separate Put, Delete, Increment,
IncrementValue and Append methods
* checkAndMutate(byte[], byte[], byte[], CompareOp, byte[], Mutation): ResponsePromise<Void>
- Will not accept Append and Increment
* checkAndMutate(byte[], byte[], byte[], CompareOp, byte[], RowMutations): ResponsePromise<Void>
- Will not accept Append and Increment
* getScanner(Scan): ResponsePromise<Void> - AsyncResultScanner
* coprocessorService(byte[]): AsyncCoprocessorRpcService
* coprocessorService(Class<T extends Service>, byte[] startkey, byte[] endkey, Batch.Call<T,R>
callable): ResponsePromise<Map<byte[], R>>
* batchCoprocessorService(Descriptors.MethodDescriptor, Message, byte[] startKey, byte[] endKey,
R responsePrototype): ResponsePromise<Map<byte[], R>>

To send multiple mutations you need to use a BufferedMutator which handles writeBuffers internally.
I will look into making it possible to use it with Promises.

Batch operations will be able to be done by a PromiseKeeper which is a promise to which other
promises can be added.

There will be a new AsyncResultScanner which handles incoming batches of result. It will not
be possible to do next on it since this does not makes sense in an async context. There will
be however a way to request a new batch with a promise.

> Add Async Client Table API
> --------------------------
>
>                 Key: HBASE-13784
>                 URL: https://issues.apache.org/jira/browse/HBASE-13784
>             Project: HBase
>          Issue Type: New Feature
>            Reporter: Jurriaan Mous
>            Assignee: Jurriaan Mous
>         Attachments: HBASE-13784-v1.patch, HBASE-13784.patch
>
>
> With the introduction of the Async HBase RPC Client it is possible to create an Async
Table API and more. This issue is focussed on creating a first async Table API so it is possible
to do any non deprecated Table call in an async way.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message