lintingbin opened a new issue, #3587:
URL: https://github.com/apache/amoro/issues/3587

   ### Search before asking
   
   - [x] I have searched in the 
[issues](https://github.com/apache/amoro/issues?q=is%3Aissue) and found no 
similar issues.
   
   
   ### What would you like to be improved?
   
   Clicking on a table name in the Amoro page expands the details of that 
table, but this detail page often takes tens of seconds to load, and sometimes 
even fails to load (likely exceeding 45 seconds). After a series of 
investigations, the issue was ultimately traced to the 
org.apache.iceberg.ClientPoolImpl:get() function.
   ```
   `---ts=2025-05-30 
10:24:43.900;thread_name=async-hive-commit-sync-executor-1;id=51;is_daemon=false;priority=5;TCCL=sun.misc.Launcher$AppClassLoader@764c12b6
       `---[24019.046181ms] org.apache.iceberg.ClientPoolImpl:get()
           `---[0.00% 0.00637ms ] 
org.apache.iceberg.relocated.com.google.common.base.Preconditions:checkState() 
#136
   
   `---ts=2025-05-30 
10:24:43.970;thread_name=async-hive-commit-sync-executor-8;id=58;is_daemon=false;priority=5;TCCL=sun.misc.Launcher$AppClassLoader@764c12b6
       `---[24023.81207ms] org.apache.iceberg.ClientPoolImpl:get()
           `---[0.00% 0.005494ms ] 
org.apache.iceberg.relocated.com.google.common.base.Preconditions:checkState() 
#136
   
   `---ts=2025-05-30 
10:24:43.970;thread_name=async-table-runtime-refresh-executor-1;id=61;is_daemon=false;priority=5;TCCL=sun.misc.Launcher$AppClassLoader@764c12b6
       `---[24244.33598ms] org.apache.iceberg.ClientPoolImpl:get()
           `---[0.00% 0.005209ms ] 
org.apache.iceberg.relocated.com.google.common.base.Preconditions:checkState() 
#136
   ```
   Further investigation revealed that the main issue was the excessively small 
size of the HiveClientPool, with a default value of only 2.
   ```
   [arthas@1]$ vmtool --action getInstances --className 
org.apache.iceberg.ClientPoolImpl
   @ClientPoolImpl[][
       @HiveClientPool[org.apache.iceberg.hive.HiveClientPool@771a5b18],
   ]
   [arthas@1]$ vmtool --action getInstances --className 
org.apache.iceberg.ClientPoolImpl --express 'instances[0].poolSize()'
   @Integer[2]
   ```
   After adjusting this value to 20 in the production environment (restarting 
AMORO was required to modify the clients parameter), the issue was resolved. 
The table details page now loads within two seconds every time, solving a 
long-standing problem that had been troubling us. This is a significant 
improvement in user experience.
   <img width="1114" alt="Image" 
src="https://github.com/user-attachments/assets/3ccb8334-4755-4b5a-9663-0ded1d9a82ce";
 />
   
   ### How should we improve?
   
   Essentially, this is a parameter of Iceberg, but it significantly impacts 
the Amoro experience. I think there are several aspects we can improve:  
   1. We can provide a default value for Amoro clients when initializing a Hive 
Metastore-type catalog, which can be configured to 5 or 10.  
   2. Add an explanation of the clients parameter in the Amoro catalog 
configuration documentation.
   <img width="704" alt="Image" 
src="https://github.com/user-attachments/assets/0233e194-b9ab-40ed-80aa-9686f3bbdd75";
 />
   
   3. Currently, the clients parameter requires a restart of Amoro to take 
effect, but it can be optimized to take effect without restarting. (Optional)
   
   ### Are you willing to submit PR?
   
   - [x] Yes I am willing to submit a PR!
   
   ### Subtasks
   
   _No response_
   
   ### Code of Conduct
   
   - [x] I agree to follow this project's [Code of 
Conduct](https://www.apache.org/foundation/policies/conduct)
   


-- 
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: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to