puchengy opened a new pull request, #4745:
URL: https://github.com/apache/iceberg/pull/4745

   Based on analysis, `plan_files()` spent most of the time on copying and file 
reading which are all IO bounded operations. However, current implementation is 
using thread pool instead of process pool which does not speed up the operation 
at all.
   
   This diff proposes switch to process pool instead of thread pool.
   
   Frame graph
   
![profile](https://user-images.githubusercontent.com/8072956/167751644-bb69eef7-051e-4514-afcb-7e163519cb48.svg)
   
   Command
   `py-spy record -o profile.svg -- python myprogram.py`
   
   Code
   ```
   from iceberg.hive import HiveTables
   
   conf = {"hive.metastore.uris": 'xxxx', 'iceberg.scan.plan-in-worker-pool': 
True, 'iceberg.worker.num-threads': 4}
   tables = HiveTables(conf)
   table = tables.load('abc.xyz')
   scan = table.new_scan()
   files = scan.plan_files()
   ```


-- 
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]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to