[
https://issues.apache.org/jira/browse/TAJO-704?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14096451#comment-14096451
]
ASF GitHub Bot commented on TAJO-704:
-------------------------------------
Github user jihoonson commented on a diff in the pull request:
https://github.com/apache/tajo/pull/77#discussion_r16218363
--- Diff: tajo-client/src/main/java/org/apache/tajo/cli/TajoCli.java ---
@@ -628,6 +633,31 @@ public void close() {
}
}
+ // In TajoMaster HA mode, if TajoCli can't connect existing active
master,
+ // this should try to connect new active master.
+ private void checkMasterStatus() {
+ try {
+ if (conf.getBoolVar(TajoConf.ConfVars.TAJO_MASTER_HA_ENABLE)) {
+ if
(!HAServiceUtil.isMasterAlive(conf.get(TajoConf.ConfVars.TAJO_MASTER_CLIENT_RPC_ADDRESS
+ .varname), conf)) {
+ String baseDatabase = client.getBaseDatabase();
+ conf.set(ConfVars.TAJO_MASTER_CLIENT_RPC_ADDRESS.varname,
+ HAServiceUtil.getMasterClientName(conf));
+
+ client.close();
+ commands.clear();
+
+ client = new TajoClient(conf, baseDatabase);
+ context.setCurrentDatabase(client.getCurrentDatabase());
+
+ initHistory();
+ initCommands();
+ }
+ }
+ } catch (Exception e) {
--- End diff --
I think that exceptions should be handled properly. It seems that the
IOException can occur when a new tajo client is created. If an IOException
occurs, the 'client' value will be not updated, and TajoCli might try to
connect to the old master.
> TajoMaster HA
> -------------
>
> Key: TAJO-704
> URL: https://issues.apache.org/jira/browse/TAJO-704
> Project: Tajo
> Issue Type: New Feature
> Components: tajo master
> Affects Versions: 0.9.0
> Reporter: Jaehwa Jung
> Assignee: Jaehwa Jung
> Fix For: 0.9.0
>
> Attachments: TAJO-704.Henrick.01.patch.txt, TajoMasterHAdraft.pdf
>
>
> TajoMaster is a Single Point of Failure in a Tajo Cluster because TajoMaster
> is the central controlling entity for all components of the Tajo system.
> TajoMaster failure prevents clients from submitting new queries to the
> cluster, and results in the disruption of the ability to run insert overwrite
> queries because the TajoWorker can’t apply its statistical information to
> CatalogStore. Therefore, the high-availability (HA) of TajoMaster is
> essential for the high-availability of Tajo generally.
--
This message was sent by Atlassian JIRA
(v6.2#6252)