You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "nkeywal (JIRA)" <ji...@apache.org> on 2012/04/23 18:33:33 UTC

[jira] [Created] (HBASE-5859) Optimize the rolling restart script

nkeywal created HBASE-5859:
------------------------------

             Summary: Optimize the rolling restart script
                 Key: HBASE-5859
                 URL: https://issues.apache.org/jira/browse/HBASE-5859
             Project: HBase
          Issue Type: Improvement
          Components: regionserver, scripts
    Affects Versions: 0.96.0
            Reporter: nkeywal
            Priority: Minor


There is a graceful_stop script. This algorithm:

{noformat}
for i = 0 to servers.size {
 regionsInServer = servers[i].regions
 move servers[i].regions to random
 stop servers[i]
 start servers[i]
 move regionsInServer to servers[i] //filled back with the same regions
}
{noformat}

It would be possible to optimize it while keeping data locality with

{noformat}
for i = 0 to servers.size {
 start servers[i*2+1] on the computer of servers[i] // Two RS on the same box
 move servers[i].regions to servers[i*2+1]  // The one on the same box
 stop servers[i]
}
{noformat}

There would be an impact with a fixed port configuration. To fix this, we could:
- use a range of port instead of a single port. This could be an issue for the web port.
- start on a port then reuse the fixed ones when they become available. This is not very elegant if a client code is already using the previous code. Moreover the region server code is written in the meta table.
- do a mix of the two solutions: a range for the server itself, while waiting for the web port to be available.


To be discussed...


--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (HBASE-5859) Optimize the rolling restart script

Posted by "stack (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HBASE-5859?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13262732#comment-13262732 ] 

stack commented on HBASE-5859:
------------------------------

I like the idea of regionservers being allocated a range of ports rather than an explicit one.  Ditto for its UI.  We'd have to do the tooling to support moving ports first -- the port the client talks to and that of the UI (maybe one day we just remove the UI from regionservers; instead have a separate UI app that is fed via jmx, etc) -- and then once that was done, we could do nice tricks like this.

Can you think of any other tricks we could do if the ports regionservers answered on were fuzzy?
                
> Optimize the rolling restart script
> -----------------------------------
>
>                 Key: HBASE-5859
>                 URL: https://issues.apache.org/jira/browse/HBASE-5859
>             Project: HBase
>          Issue Type: Improvement
>          Components: regionserver, scripts
>    Affects Versions: 0.96.0
>            Reporter: nkeywal
>            Priority: Minor
>
> There is a graceful_stop script. This algorithm:
> {noformat}
> for i = 0 to servers.size {
>  regionsInServer = servers[i].regions
>  move servers[i].regions to random
>  stop servers[i]
>  start servers[i]
>  move regionsInServer to servers[i] //filled back with the same regions
> }
> {noformat}
> It would be possible to optimize it while keeping data locality with
> {noformat}
> for i = 0 to servers.size {
>  start servers[i*2+1] on the computer of servers[i] // Two RS on the same box
>  move servers[i].regions to servers[i*2+1]  // The one on the same box
>  stop servers[i]
> }
> {noformat}
> There would be an impact with a fixed port configuration. To fix this, we could:
> - use a range of port instead of a single port. This could be an issue for the web port.
> - start on a port then reuse the fixed ones when they become available. This is not very elegant if a client code is already using the previous code. Moreover the region server code is written in the meta table.
> - do a mix of the two solutions: a range for the server itself, while waiting for the web port to be available.
> To be discussed...

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira