ngsg commented on code in PR #5771: URL: https://github.com/apache/hive/pull/5771#discussion_r2188060497
########## ql/src/java/org/apache/hadoop/hive/ql/metadata/Hive.java: ########## @@ -6006,11 +6009,21 @@ public HiveMetaHook getHook( } }; + IMetaStoreClient thriftClient = ThriftHiveMetaStoreClient.newClient(conf, allowEmbedded); + IMetaStoreClient clientWithLocalCache = HiveMetaStoreClientWithLocalCache.newClient(conf, thriftClient); + IMetaStoreClient sessionLevelClient = SessionHiveMetaStoreClient.newClient(conf, clientWithLocalCache); + IMetaStoreClient clientWithHook = HookEnabledMetaStoreClient.newClient(conf, hookLoader, sessionLevelClient); + if (conf.getBoolVar(ConfVars.METASTORE_FASTPATH)) { - return new SessionHiveMetaStoreClient(conf, hookLoader, allowEmbedded); + return org.apache.hadoop.hive.metastore.client.SynchronizedMetaStoreClient.newClient(conf, clientWithHook); Review Comment: I wrapped this with `SynchronizedMetaStoreClient` based on a request from @dengzhhu653 to always make the client chain be thread-safe. `SessionHiveMetaStoreClient` itself didn't support synchronized access; synchronization was previously achieved by calling static method `HiveMetaStoreClient#newSynchronizedClient` in `Hive#getMSC` as you noted. So the PR changes the synchronization logic from * MSC to remote MS -> wrap with `SynchronizedHandler` * otherwise -> no wrapping to * always wrap with `SynchronizedMetaStoreClient`. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@hive.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: gitbox-unsubscr...@hive.apache.org For additional commands, e-mail: gitbox-h...@hive.apache.org