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

Weijie Guo updated FLINK-31763:
-------------------------------
    Description: 
As we discussed in FLINK-31610, new buffers can be requested only when 
"{_}numOfRequestedMemorySegments + numberOfRequestedOverdraftMemorySegments < 
poolSize + maxOverdraftBuffersPerGate"{_}.

Consider such a scenario, the {{{}CurrentPoolSize = 5{}}}, 
{{{}numOfRequestedMemorySegments = 7{}}}, {{{}maxOverdraftBuffersPerGate = 
2{}}}. If {{{}numberOfRequestedOverdraftMemorySegments = 0{}}}, then 2 buffers 
can be requested now. 

We should convert {{numberOfRequestedMemorySegments}} to 
{{numberOfRequestedOverdraftMemorySegments}} when poolSize is decreased. 
Further more, we can changes the definition of overdraft buffer from static to 
dynamic: 
 * When _numberOfRequestedMemorySegments <= poolSize,_ all buffers are ordinary 
buffer
 * When _numberOfRequestedMemorySegments > poolSize,_ the `{_}ordinary buffer 
size = poolSize`{_}, and `{_}the overdraft buffer size = 
numberOfRequestedMemorySegments - poolSize`{_}

This allows us to remove {{{}numberOfRequestedOverdraftMemorySegments{}}}, 
which helps us simplify logic and maintain consistency.

 

  was:
As we discussed in FLINK-31610, new buffers can be requested only when 
"{_}numOfRequestedMemorySegments + numberOfRequestedOverdraftMemorySegments < 
poolSize + maxOverdraftBuffersPerGate"{_}.

Consider such a scenario, the {{{}CurrentPoolSize = 5{}}}, 
{{{}numOfRequestedMemorySegments = 7{}}}, {{{}maxOverdraftBuffersPerGate = 
2{}}}. If {{{}numberOfRequestedOverdraftMemorySegments = 0{}}}, then 2 buffers 
can be requested now. 

We should convert {{numberOfRequestedMemorySegments}} to 
{{numberOfRequestedOverdraftMemorySegments}} when poolSize is decreased.


> Convert requested buffers to overdraft  buffers when pool size is decreased
> ---------------------------------------------------------------------------
>
>                 Key: FLINK-31763
>                 URL: https://issues.apache.org/jira/browse/FLINK-31763
>             Project: Flink
>          Issue Type: Bug
>          Components: Runtime / Network
>    Affects Versions: 1.17.1
>            Reporter: Weijie Guo
>            Assignee: Weijie Guo
>            Priority: Major
>              Labels: pull-request-available
>
> As we discussed in FLINK-31610, new buffers can be requested only when 
> "{_}numOfRequestedMemorySegments + numberOfRequestedOverdraftMemorySegments < 
> poolSize + maxOverdraftBuffersPerGate"{_}.
> Consider such a scenario, the {{{}CurrentPoolSize = 5{}}}, 
> {{{}numOfRequestedMemorySegments = 7{}}}, {{{}maxOverdraftBuffersPerGate = 
> 2{}}}. If {{{}numberOfRequestedOverdraftMemorySegments = 0{}}}, then 2 
> buffers can be requested now. 
> We should convert {{numberOfRequestedMemorySegments}} to 
> {{numberOfRequestedOverdraftMemorySegments}} when poolSize is decreased. 
> Further more, we can changes the definition of overdraft buffer from static 
> to dynamic: 
>  * When _numberOfRequestedMemorySegments <= poolSize,_ all buffers are 
> ordinary buffer
>  * When _numberOfRequestedMemorySegments > poolSize,_ the `{_}ordinary buffer 
> size = poolSize`{_}, and `{_}the overdraft buffer size = 
> numberOfRequestedMemorySegments - poolSize`{_}
> This allows us to remove {{{}numberOfRequestedOverdraftMemorySegments{}}}, 
> which helps us simplify logic and maintain consistency.
>  



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

Reply via email to