[
https://issues.apache.org/jira/browse/HBASE-17345?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15768749#comment-15768749
]
Duo Zhang commented on HBASE-17345:
-----------------------------------
{quote}
We take startLogErrorsCnt as a param but ignore it?
{quote}
It is just for debugging... Will do some cleanup in the next patch.
{quote}
You make a new Action from passed-in Action because you don't want to modify
passed-in params?
{quote}
The action passed in is a Row, i.e., Get, Put, Delete etc. And we will use it
to construct an Action Object. It records the originalIndex of the action and
also carries the nonce.
{quote}
super nit: you can presize the following 148 this.action2Errors = new
IdentityHashMap<>();
{quote}
If there is no error then the map will remain empty after we finish. I think
this is the common case?
{quote}
This is just to log? 208 long currentTime = System.currentTimeMillis();
i.e. all timing is with nanos but millis is just for logging?
{quote}
Just follow the old log pattern. It is use to construct the error message of
RetriesExhaustedException. And I think it is reasonable as it is more friendly
for the user to get a date(think of PrintGCTimeStamps VS. PrintGCDateStamps)
{quote}
What do you see AsyncBatchRpcRetryingCaller replacing in our current stack? It
seems to do AP and a bunch of our Callable infra. Should
AsyncBatchRpcRetryingCaller implement Callable? Or what you thinking?
{quote}
I plan to use it to replace AsyncProcess. And there is no callable in the
current client implementation stack(or maybe some simple ones, see
AsyncSingleRequestRpcRetryingCaller). With this patch, I think most retrying
callers for async table are in place. The exceptions are read replica
support(HBASE-17356), and endpoint support(HBASE-17346). And still need to
improve the scan implementation(mvcc, inclusive/exclusive of start row and end
row, etc.). But I think it is time to think about building the old blocking API
on top of the new async API and get rid of the old code.
{quote}
Why we have AsyncTable and AsyncTableBase again? Do we have to have the two
Interfaces?
{quote}
There were introduced when implementing scan. See the discussion in
HBASE-16984. We can discuss later whether we can just have one AsyncTable
interface.
{quote}
Do you have to rename TestAsyncGetMultiThread ? And/or TestAsyncTableMultiGet?
{quote}
No, it is get, not multi get... I will rename TestAsyncTableMultiGet and add
other batch tests to it.
Thanks.
> Implement batch
> ---------------
>
> Key: HBASE-17345
> URL: https://issues.apache.org/jira/browse/HBASE-17345
> Project: HBase
> Issue Type: Sub-task
> Components: asyncclient, Client
> Affects Versions: 2.0.0
> Reporter: Duo Zhang
> Assignee: Duo Zhang
> Fix For: 2.0.0
>
> Attachments: HBASE-17345.patch
>
>
> Add the support for general batch based on the code introduced in HBASE-17142.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)