You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Nicolas Spiegelberg (JIRA)" <ji...@apache.org> on 2011/06/10 01:00:59 UTC
[jira] [Created] (HBASE-3975) NoServerForRegionException stalls
write pipeline
NoServerForRegionException stalls write pipeline
------------------------------------------------
Key: HBASE-3975
URL: https://issues.apache.org/jira/browse/HBASE-3975
Project: HBase
Issue Type: Bug
Components: client
Affects Versions: 0.90.3, 0.89.20100924, 0.92.0
Reporter: Nicolas Spiegelberg
Assignee: Nicolas Spiegelberg
When we process a batch of puts, the current algorithm basically goes like this:
1. Find all servers for the Put requests
2. Partition Puts by servers
3. Make requests
4. Collect success/error results
If we throw an IOE in step 1 or 2, we will abort the whole batch operation. In our case, this was an NoServerForRegionException due to region rebalancing. However, the asynchronous put case normally has requests going to a wide variety of servers. We should fail all the put requests that throw an IOE in Step 1 but continue to try all the put requests that succeed at this stage.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (HBASE-3975) NoServerForRegionException stalls
write pipeline
Posted by "Lars Hofhansl (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/HBASE-3975?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13444266#comment-13444266 ]
Lars Hofhansl commented on HBASE-3975:
--------------------------------------
@Nicolas: How do you envision the API here? Will the client get a list of successful Puts and then has to disentangle those from the successful and retry?
> NoServerForRegionException stalls write pipeline
> ------------------------------------------------
>
> Key: HBASE-3975
> URL: https://issues.apache.org/jira/browse/HBASE-3975
> Project: HBase
> Issue Type: Bug
> Components: client
> Affects Versions: 0.89.20100924, 0.90.3, 0.92.0
> Reporter: Nicolas Spiegelberg
> Assignee: Nicolas Spiegelberg
>
> When we process a batch of puts, the current algorithm basically goes like this:
> 1. Find all servers for the Put requests
> 2. Partition Puts by servers
> 3. Make requests
> 4. Collect success/error results
> If we throw an IOE in step 1 or 2, we will abort the whole batch operation. In our case, this was an NoServerForRegionException due to region rebalancing. However, the asynchronous put case normally has requests going to a wide variety of servers. We should fail all the put requests that throw an IOE in Step 1 but continue to try all the put requests that succeed at this stage.
--
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