[ 
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.

{code}
  /**
   * 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;
{code}




> 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)

Reply via email to