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

Yun Tang resolved FLINK-24460.
------------------------------
    Fix Version/s: 1.14.1
                   1.15.0
       Resolution: Fixed

merged in master:
77b8e9c042d1d4d2779afc7edaf0d33334ae9eaa

merged in release-1.14:
1f17b28f4ddb8b3896e1a43de63d83feccf03c65

> Rocksdb Iterator Error Handling Improvement
> -------------------------------------------
>
>                 Key: FLINK-24460
>                 URL: https://issues.apache.org/jira/browse/FLINK-24460
>             Project: Flink
>          Issue Type: Improvement
>          Components: Runtime / State Backends
>    Affects Versions: 1.14.0
>            Reporter: Victor Xu
>            Assignee: Victor Xu
>            Priority: Minor
>              Labels: pull-request-available
>             Fix For: 1.15.0, 1.14.1
>
>
> In FLINK-9373, we introduced RocksIteratorWrapper which was a wrapper around 
> RocksIterator to check the iterator status for all the methods. At that time, 
> it was required because the iterator may pass the blocks or files it had 
> difficulties in reading (because of IO errors, data corruptions, or other 
> issues) and continue with the next available keys. *The status flag may not 
> be OK, even if the iterator is valid.*
> However, the above behaviour changed after 
> [3810|https://github.com/facebook/rocksdb/pull/3810] was merged on May 17, 
> 2018:
>  *- If the iterator is valid, the status() is guaranteed to be OK;*
>  *- If the iterator is not valid, there are two possibilities:*
>     *1) We have reached the end of the data. And in this case, status() is 
> OK;*
>     *2) There is an error. In this case, status() is not OK;*
> More information can be found here: 
> https://github.com/facebook/rocksdb/wiki/Iterator#error-handling
> Thus, it should be safe to proceed with other operations (e.g. seek, next, 
> seekToFirst, seekToLast, seekForPrev, and prev) without checking status(). 
> And we only need to check the status if the iterator is invalid. After the 
> change, there will be less status() native calls and could theoretically 
> improve performance.
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to