[ 
https://issues.apache.org/jira/browse/HIVE-28650?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17902254#comment-17902254
 ] 

Steve Loughran commented on HIVE-28650:
---------------------------------------

Those slides were done by [~mthakur], I just reused them.

We would love to know what you're seeing here. I suspect that while you are 
seeing more GET requests, each one is for a small amount of data. And we are 
doing them in parallel.

If minio can collect access logs, please look at how s3a adds call info into 
the S3 server logs:
https://hadoop.apache.org/docs/current/hadoop-aws/tools/hadoop-aws/auditing

We put call info into the http referrer header, including something the normal 
S3 logs do not collect: those ranges.

There are a couple of options you can also use to tune this, and again, we 
would love to know what you get from tuning it.

* fs.s3a.vectored.read.min.seek.size : the size of a gap between two requests 
for us to merge (default: 4k)
* fs.s3a.vectored.read.max.merged.size : max size of a merged GET request 
before we stop merging (default 1M)

I would recommend you make both of them bigger, trying something like 256K as 
that seek size, 2M for the max merged size.

Anything you can do in benchmarking to give us better numbers through ORC on 
Minio will be really useful. That facebook Velox paper discusses how they used 
500K as their merge threshold. This paper came out after our work, otherwise I 
think we'd have lifted them: 
https://research.facebook.com/publications/velox-metas-unified-execution-engine/

bq. IO reads for nearby columns are typically coalesced (merged) if the gap 
between them is small enough (currently about 20K for SSD and 500K for 
disaggregated storage), aiming to serve neighboring reads in as few IO reads as 
possible.

The more information we get the better, and something we could document as well 
as tuning those defaults. I do think that min seek size in something we could 
really increase, with a default value everywhere of something like 16k, except 
on azure and s3 where we go up to 128k.

I'd welcome any update to our performance doc performance.md on this too, as 
well as a minio-specific section
 
https://hadoop.apache.org/docs/current/hadoop-aws/tools/hadoop-aws/performance.html


Final points
* for any report on performance, can you give us the storediag output from 
https://github.com/steveloughran/cloudstore ; a "before" one is something you 
could do today.

* if you can do this ASAP we could change the values for the 3.4.2 release 
which will be kicked off in january

Thanks

> Upgrade Apache ORC version to 2.0.3
> -----------------------------------
>
>                 Key: HIVE-28650
>                 URL: https://issues.apache.org/jira/browse/HIVE-28650
>             Project: Hive
>          Issue Type: Improvement
>            Reporter: Butao Zhang
>            Priority: Major
>
> ORC 2.0.x version added the Hadoop Vectored IO feature in ORC-1251.
> We can try to upgrade ORC to latest version 2.0.x to make this feature work 
> in Hive.
> But ORC 2.0.x is built on JDK17+, so we need to upgrade Hive jdk to 17+ 
> first.  This depends on this ticket HIVE-26473 upgrading jdk17.



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

Reply via email to