[ 
https://issues.apache.org/jira/browse/HDDS-16559?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Sergey Soldatov updated HDDS-16559:
-----------------------------------
        Parent: HDDS-10338
    Issue Type: Sub-task  (was: Bug)

> Datanode ReadBlock fails with RESOURCE_EXHAUSTED when the client response 
> size exceeds the gRPC message limit
> -------------------------------------------------------------------------------------------------------------
>
>                 Key: HDDS-16559
>                 URL: https://issues.apache.org/jira/browse/HDDS-16559
>             Project: Apache Ozone
>          Issue Type: Sub-task
>          Components: Ozone Datanode
>    Affects Versions: 2.2.1
>            Reporter: Sergey Soldatov
>            Assignee: Sergey Soldatov
>            Priority: Major
>
>  The streaming ReadBlock request carries a client-chosen responseDataSize, 
> taken from ozone.client.stream.read.response-data-size. The datanode 
> (KeyValueHandler.readBlockImpl) allocates the read buffer with that size and 
> fills it from disk before sending the first response.                         
>                    
>                
>   OzoneClientConfig only rejects a zero or negative value. Any value above 
> the client's gRPC inbound message limit, OZONE_SCM_CHUNK_MAX_SIZE (32 MiB), 
> makes the datanode allocate that much heap per stream and send a response the 
> client cannot accept. The read then fails with:                  
>                                        
>     RESOURCE_EXHAUSTED: gRPC message exceeds maximum size 33554432: 41958428
> Reproduce: set ozone.client.stream.read.response-data-size to 64 MiB, enable 
> streaming reads, and read a 40 MiB key. Without the cap the datanode sends 
> the whole block in one message and the client fails the read. 



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

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

Reply via email to