hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Elliott Clark (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-6295) Possible performance improvement in client batch operations: presplit and send in background
Date Tue, 25 Jun 2013 17:57:22 GMT

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

Elliott Clark commented on HBASE-6295:
--------------------------------------

Looks like this broke integration tests.  We've failed 5 different jobs in a row.  Seems like
the async threads don't recover if there's a chaos monkey.

Additionally there's a lot of spamming on the info level:

{code}
2013-06-25 06:54:03,749 INFO  [HBaseWriterThread_4] client.AsyncProcess: IntegrationTestDataIngestSlowDeterministic:
Waiting for the global number of tasks to be equals or less than 0, currently it's 6877
2013-06-25 06:54:03,750 INFO  [HBaseWriterThread_5] client.AsyncProcess: IntegrationTestDataIngestSlowDeterministic:
Waiting for the global number of tasks to be equals or less than 0, currently it's 6848
2013-06-25 06:54:03,750 INFO  [HBaseWriterThread_7] client.AsyncProcess: IntegrationTestDataIngestSlowDeterministic:
Waiting for the global number of tasks to be equals or less than 0, currently it's 6815
2013-06-25 06:54:03,750 INFO  [HBaseWriterThread_0] client.AsyncProcess: IntegrationTestDataIngestSlowDeterministic:
Waiting for the global number of tasks to be equals or less than 0, currently it's 6844
2013-06-25 06:54:03,750 INFO  [HBaseWriterThread_8] client.AsyncProcess: IntegrationTestDataIngestSlowDeterministic:
Waiting for the global number of tasks to be equals or less than 0, currently it's 6850
2013-06-25 06:54:03,750 INFO  [HBaseWriterThread_3] client.AsyncProcess: IntegrationTestDataIngestSlowDeterministic:
Waiting for the global number of tasks to be equals or less than 0, currently it's 6892
2013-06-25 06:54:03,750 INFO  [HBaseWriterThread_6] client.AsyncProcess: IntegrationTestDataIngestSlowDeterministic:
Waiting for the global number of tasks to be equals or less than 0, currently it's 6858
2013-06-25 06:54:03,750 INFO  [HBaseWriterThread_2] client.AsyncProcess: IntegrationTestDataIngestSlowDeterministic:
Waiting for the global number of tasks to be equals or less than 0, currently it's 6849
2013-06-25 06:54:03,750 INFO  [HBaseWriterThread_9] client.AsyncProcess: IntegrationTestDataIngestSlowDeterministic:
Waiting for the global number of tasks to be equals or less than 0, currently it's 6873
2013-06-25 06:54:03,751 INFO  [HBaseWriterThread_4] client.AsyncProcess: IntegrationTestDataIngestSlowDeterministic:
Waiting for the global number of tasks to be equals or less than 0, currently it's 6878
2013-06-25 06:54:03,751 INFO  [HBaseWriterThread_1] client.AsyncProcess: IntegrationTestDataIngestSlowDeterministic:
Waiting for the global number of tasks to be equals or less than 0, currently it's 6819
2013-06-25 06:54:03,751 INFO  [HBaseWriterThread_7] client.AsyncProcess: IntegrationTestDataIngestSlowDeterministic:
Waiting for the global number of tasks to be equals or less than 0, currently it's 6816
2013-06-25 06:54:03,751 INFO  [HBaseWriterThread_5] client.AsyncProcess: IntegrationTestDataIngestSlowDeterministic:
Waiting for the global number of tasks to be equals or less than 0, currently it's 6849
2013-06-25 06:54:03,751 INFO  [HBaseWriterThread_0] client.AsyncProcess: IntegrationTestDataIngestSlowDeterministic:
Waiting for the global number of tasks to be equals or less than 0, currently it's 6845
2013-06-25 06:54:03,751 INFO  [HBaseWriterThread_8] client.AsyncProcess: IntegrationTestDataIngestSlowDeterministic:
Waiting for the global number of tasks to be equals or less than 0, currently it's 6851
2013-06-25 06:54:03,752 INFO  [HBaseWriterThread_3] client.AsyncProcess: IntegrationTestDataIngestSlowDeterministic:
Waiting for the global number of tasks to be equals or less than 0, currently it's 6893
2013-06-25 06:54:03,752 INFO  [HBaseWriterThread_2] client.AsyncProcess: IntegrationTestDataIngestSlowDeterministic:
Waiting for the global number of tasks to be equals or less than 0, currently it's 6850
{code}
                
> Possible performance improvement in client batch operations: presplit and send in background
> --------------------------------------------------------------------------------------------
>
>                 Key: HBASE-6295
>                 URL: https://issues.apache.org/jira/browse/HBASE-6295
>             Project: HBase
>          Issue Type: Improvement
>          Components: Client, Performance
>    Affects Versions: 0.95.2
>            Reporter: Nicolas Liochon
>            Assignee: Nicolas Liochon
>              Labels: noob
>             Fix For: 0.98.0, 0.95.2
>
>         Attachments: 6295.v11.patch, 6295.v12.patch, 6295.v14.patch, 6295.v15.patch,
6295.v1.patch, 6295.v2.patch, 6295.v3.patch, 6295.v4.patch, 6295.v5.patch, 6295.v6.patch,
6295.v8.patch, 6295.v9.patch
>
>
> today batch algo is:
> {noformat}
> for Operation o: List<Op>{
>   add o to todolist
>   if todolist > maxsize or o last in list
>     split todolist per location
>     send split lists to region servers
>     clear todolist
>     wait
> }
> {noformat}
> We could:
> - create immediately the final object instead of an intermediate array
> - split per location immediately
> - instead of sending when the list as a whole is full, send it when there is enough data
for a single location
> It would be:
> {noformat}
> for Operation o: List<Op>{
>   get location
>   add o to todo location.todolist
>   if (location.todolist > maxLocationSize)
>     send location.todolist to region server 
>     clear location.todolist
>     // don't wait, continue the loop
> }
> send remaining
> wait
> {noformat}
> It's not trivial to write if you add error management: retried list must be shared with
the operations added in the todolist. But it's doable.
> It's interesting mainly for 'big' writes

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message