You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@flink.apache.org by "Ran Tao (Jira)" <ji...@apache.org> on 2022/04/25 07:37:00 UTC

[jira] [Created] (FLINK-27381) HybridSource split should use Arrays.hashcode

Ran Tao created FLINK-27381:
-------------------------------

             Summary: HybridSource split should use Arrays.hashcode
                 Key: FLINK-27381
                 URL: https://issues.apache.org/jira/browse/FLINK-27381
             Project: Flink
          Issue Type: Improvement
          Components: Connectors / Common
    Affects Versions: 1.14.4
            Reporter: Ran Tao


 

HybridSourceSplit has been change wrappedSplit from SourceSplit to serialized wrappedSplitsBytes array. but hashcode methods did not match the byte array. however here we should use Arrays.hashcode for serialized wrappedSplitsBytes.

 
{code:java}
// old
public class HybridSourceSplit implements SourceSplit {    private final SourceSplit wrappedSplit;
    private final int sourceIndex;    public HybridSourceSplit(int sourceIndex, SourceSplit wrappedSplit) {
        this.sourceIndex = sourceIndex;
        this.wrappedSplit = wrappedSplit;
    }    public int sourceIndex() {
        return this.sourceIndex;
    }    public SourceSplit getWrappedSplit() {
        return wrappedSplit;
    }    @Override
    public int hashCode() {
        return Objects.hash(wrappedSplit, sourceIndex);
    }    ...
}     {code}
 
{code:java}
// current(master)
public class HybridSourceSplit implements SourceSplit {    private final byte[] wrappedSplitBytes;
    private final int wrappedSplitSerializerVersion;
    private final int sourceIndex;
    private final String splitId;    public HybridSourceSplit(
            int sourceIndex, byte[] wrappedSplit, int serializerVersion, String splitId) {
        this.sourceIndex = sourceIndex;
        this.wrappedSplitBytes = wrappedSplit;
        this.wrappedSplitSerializerVersion = serializerVersion;
        this.splitId = splitId;
    }    public int sourceIndex() {
        return this.sourceIndex;
    }    public byte[] wrappedSplitBytes() {
        return wrappedSplitBytes;
    }    @Override
    public int hashCode() {
        return Objects.hash(wrappedSplitBytes, sourceIndex);
    }
    ...
 }    {code}
detail diff: 

[https://github.com/apache/flink/pull/17143/files#diff-cbf6e2386d7457d9084faa23053f1f96ba5f173f5531d0e4a94205497e08df4c]

 

detail issue:

https://issues.apache.org/jira/browse/FLINK-24064

 



--
This message was sent by Atlassian Jira
(v8.20.7#820007)