[ 
https://issues.apache.org/jira/browse/HIVE-26509?focusedWorklogId=812627&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-812627
 ]

ASF GitHub Bot logged work on HIVE-26509:
-----------------------------------------

                Author: ASF GitHub Bot
            Created on: 27/Sep/22 18:38
            Start Date: 27/Sep/22 18:38
    Worklog Time Spent: 10m 
      Work Description: saihemanth-cloudera commented on code in PR #3567:
URL: https://github.com/apache/hive/pull/3567#discussion_r981591719


##########
standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/HiveMetaStore.java:
##########
@@ -891,33 +855,34 @@ public void run() {
             startCondition.await();
           }
 
-          if (isLeader) {
-            startCompactorInitiator(conf);
-            startCompactorCleaner(conf);
-            startRemoteOnlyTasks(conf);
-            startStatsUpdater(conf);
-            HMSHandler.startAlwaysTaskThreads(conf);
-          }
-
-          // The leader HMS may not necessarily have sufficient compute 
capacity required to run
-          // actual compaction work. So it can run on a non-leader HMS with 
sufficient capacity
-          // or a configured HS2 instance.
-          if (MetastoreConf.getVar(conf, 
MetastoreConf.ConfVars.HIVE_METASTORE_RUNWORKER_IN).equals("metastore")) {
-            LOG.warn("Running compaction workers on HMS side is not suggested 
because compaction pools are not supported in HMS " +
-                "(HIVE-26443). Consider removing the 
hive.metastore.runworker.in configuration setting, as it will be " +
-                "comletely removed in future releases.");
-            startCompactorWorkers(conf);
+         LeaderElectionContext context = new 
LeaderElectionContext.ContextBuilder(conf)
+             
.setHMSHandler(thriftServer.getHandler()).servHost(getServerHostName())
+             // always tasks
+             .setTType(LeaderElectionContext.TTYPE.ALWAYS_TASKS)
+             .addListener(new HouseKeepingTasks(conf, false))
+             // housekeeping tasks
+             .setTType(LeaderElectionContext.TTYPE.HOUSEKEEPING)
+             .addListener(new CMClearer(conf))
+             .addListener(new StatsUpdaterTask(conf))
+             .addListener(new CompactorTasks(conf, false))
+             .addListener(new CompactorPMF())
+             .addListener(new HouseKeepingTasks(conf, true))

Review Comment:
   Ack





Issue Time Tracking
-------------------

    Worklog Id:     (was: 812627)
    Time Spent: 4h 50m  (was: 4h 40m)

> Introduce dynamic leader election in HMS
> ----------------------------------------
>
>                 Key: HIVE-26509
>                 URL: https://issues.apache.org/jira/browse/HIVE-26509
>             Project: Hive
>          Issue Type: New Feature
>          Components: Standalone Metastore
>            Reporter: Zhihua Deng
>            Priority: Major
>              Labels: pull-request-available
>          Time Spent: 4h 50m
>  Remaining Estimate: 0h
>
> From HIVE-21841 we have a leader HMS selected by configuring 
> metastore.housekeeping.leader.hostname on startup. This approach saves us 
> from running duplicated HMS's housekeeping tasks cluster-wide. 
> In this jira, we introduce another dynamic leader election: adopt hive lock 
> to implement the leader election. Once a HMS owns the lock, then it becomes 
> the leader, carries out the housekeeping tasks, and sends heartbeats to renew 
> the lock before timeout. If the leader fails to reclaim the lock, then stops 
> the already started tasks if it has, the electing event is audited. We can 
> achieve a more dynamic leader when the original goes down or in the public 
> cloud without well configured property, and reduce the leader’s burdens by 
> running these tasks among different leaders.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to