hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jerry He (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (HBASE-10367) RegionServer graceful stop / decommissioning
Date Fri, 20 Oct 2017 05:09:00 GMT

     [ https://issues.apache.org/jira/browse/HBASE-10367?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Jerry He updated HBASE-10367:
-----------------------------
    Release Note: 
Added three top level Admin APIs to help decommissioning and graceful stop of region servers.

  /**
   * Mark region server(s) as decommissioned to prevent additional regions from getting
   * assigned to them. Optionally unload the regions on the servers. If there are multiple
servers
   * to be decommissioned, decommissioning them at the same time can prevent wasteful region
   * movements. Region unloading is asynchronous.
   * @param servers The list of servers to decommission.
   * @param offload True to offload the regions from the decommissioned servers
   */
  void decommissionRegionServers(List<ServerName> servers, boolean offload) throws IOException;

  /**
   * List region servers marked as decommissioned, which can not be assigned regions.
   * @return List of decommissioned region servers.
   */
  List<ServerName> listDecommissionedRegionServers() throws IOException;

  /**
   * Remove decommission marker from a region server to allow regions assignments.
   * Load regions onto the server if a list of regions is given. Region loading is
   * asynchronous.
   * @param server The server to recommission.
   * @param encodedRegionNames Regions to load onto the server.
   */
  void recommissionRegionServer(ServerName server, List<byte[]> encodedRegionNames)
 throws IOException;



  was:
Added three top level Admin APIs to help decommissioning and graceful stop of region servers.

  /**
   * Mark region server(s) as decommissioned to prevent additional regions from getting
   * assigned to them. Optionally unload the regions on the servers. If there are multiple
servers
   * to be decommissioned, decommissioning them at the same time can prevent wasteful region
   * movements. Region unloading is asynchronous.
   * @param servers The list of servers to decommission.
   * @param offload True to offload the regions from the decommissioned servers
   */
  void decommissionRegionServers(List<ServerName> servers, boolean offload) throws IOException;

  /**
   * List region servers marked as decommissioned, which can not be assigned regions.
   * @return List of decommissioned region servers.
   */
  List<ServerName> listDecommissionedRegionServers() throws 
 IOException;

  /**
   * Remove decommission marker from a region server to allow regions assignments.
   * Load regions onto the server if a list of regions is given. Region loading is
   * asynchronous.
   * @param server The server to recommission.
   * @param encodedRegionNames Regions to load onto the server.
   */
  void recommissionRegionServer(ServerName server, List<byte[]> encodedRegionNames)
 throws IOException;




> RegionServer graceful stop / decommissioning
> --------------------------------------------
>
>                 Key: HBASE-10367
>                 URL: https://issues.apache.org/jira/browse/HBASE-10367
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Enis Soztutar
>            Assignee: Jerry He
>             Fix For: 2.0.0-beta-1
>
>         Attachments: HBASE-10367-master-2.patch, HBASE-10367-master.patch, HBASE-10367-master.patch
>
>
> Right now, we have a weird way of node decommissioning / graceful stop, which is a graceful_stop.sh
bash script, and a region_mover ruby script, and some draining server support which you have
to manually write to a znode (really!). Also draining servers is only partially supported
in LB operations (LB does take that into account for roundRobin assignment, but not for normal
balance) 
> See 
> http://hbase.apache.org/book/node.management.html and HBASE-3071
> I think we should support graceful stop as a first class citizen. Thinking about it,
it seems that the difference between regionserver stop and graceful stop is that regionserver
stop will close the regions, but the master will only assign them after the znode is deleted.

> In the new master design (or even before), if we allow RS to be able to close regions
on its own (without master initiating it), then graceful stop becomes regular stop. The RS
already closes the regions cleanly, and will reject new region assignments, so that we don't
need much of the balancer or draining server trickery. 
> This ties into the new master/AM redesign (HBASE-5487), but still deserves it's own jira.
Let's use this to brainstorm on the design. 



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Mime
View raw message