hi all We met an issue which is related with SessionCatalog synchronized, for example
def tableExists(name: TableIdentifier): Boolean = synchronized { val db = formatDatabaseName(name.database.getOrElse(currentDb)) val table = formatTableName(name.table) externalCatalog.tableExists(db, table) } We have modified the underlying hive meta store which a different hive database is placed in its own shard for performance. However, we found that the synchronized limits the concurrency, we would like 1. replace synchronized with a read-write lock 2. remove synchronized in hive *withClient* function Let me know what you guys think of it? If it is ok, I will create an issue and contribute a PR Thanks Chang