You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ozone.apache.org by "Tanvi Penumudy (Jira)" <ji...@apache.org> on 2023/10/03 04:27:00 UTC

[jira] [Commented] (HDDS-7715) keyManagerImpl#listStatus exceeds the maximum RPC length

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

Tanvi Penumudy commented on HDDS-7715:
--------------------------------------

Solution - PR [#5275|https://github.com/apache/ozone/pull/5275]: To introduce a newer listStatus API (we have chosen to introduce a newer API over modifying the existing API as it would break compatibility for older ozone clients) which uses a trimmed {{KeyInfo}} {{BasicKeyInfo}} proto message for excluding fields such as {{KeyLocations}} which are not very useful on the client side:

The new lightweight listStatus API would be used for:
 * {{o3}} CLI: ({{ozone sh key list}})
 * S3 ListObject requests

The existing listStatus API will continue being used for:
 * {{ofs}} commands

{code:java}
message BasicKeyInfo {
    optional string keyName = 1;
    optional uint64 dataSize = 2;
    optional uint64 creationTime = 3;
    optional uint64 modificationTime = 4;
    optional hadoop.hdds.ReplicationType type = 5;
    optional hadoop.hdds.ReplicationFactor factor = 6;
    optional hadoop.hdds.ECReplicationConfig ecReplicationConfig = 7;
}
{code}
 
This patch shall utilize the server-side Ozone key encapsulations and proto messages introduced as part of HDDS-9079. Implement a lightweight listKeys API (PR [#5115|https://github.com/apache/ozone/pull/5115]).

> keyManagerImpl#listStatus exceeds the maximum RPC length
> --------------------------------------------------------
>
>                 Key: HDDS-7715
>                 URL: https://issues.apache.org/jira/browse/HDDS-7715
>             Project: Apache Ozone
>          Issue Type: Bug
>          Components: OM, Ozone Manager
>    Affects Versions: 1.3.0
>         Environment: Version: Our forked version based ozone-1.3.0 branch. commit hash is [https://github.com/apache/ozone/commit/9c61a8aa497ab96c014ad3bb7b1ee4f731ebfaf8]
> FSO-enabled bucket
>            Reporter: Kohei Sugihara
>            Assignee: Tanvi Penumudy
>            Priority: Major
>              Labels: ozone-performance, pull-request-available
>         Attachments: large-protos.png
>
>
> keyManagerImpl#listStatus for FSO buckets serves a KeyLocationList but might be large size of response (> 100 MB) and exceed the limit. The problem is KeyLocation field is large enough (> 1MB) so just listing some multi-part uploaded keys exceeds the limit. A possible solution is to reduce KeyLocation size by omitting pipeline fields.
> {quote}% ozone sh key ls /s3v/bucket --prefix=path/to/prefix
> RPC response exceeds maximum data length
> {quote}
>  
> We checked a List<OzoneFileStatus> in our environment and it turned out that protobufs corresponding to some multi-part keys are larger than 1MB. AFAIK, the maximum IPC length is -100MB- 128MB by default so it easily exceeds the limit.
> !large-protos.png!



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

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@ozone.apache.org
For additional commands, e-mail: issues-help@ozone.apache.org