[GitHub] flink pull request: [FLINK-2530]optimize equal() of AcknowledgeChe...

2015-08-16 Thread ffbin
GitHub user ffbin opened a pull request:

https://github.com/apache/flink/pull/1024

[FLINK-2530]optimize equal() of AcknowledgeCheckpoint

optimize  repeated check of this.state == null

You can merge this pull request into a Git repository by running:

$ git pull https://github.com/ffbin/flink FLINK-2530

Alternatively you can review and apply these changes as the patch at:

https://github.com/apache/flink/pull/1024.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

This closes #1024


commit 643d74865c414a6aa466309ef1514c98339d6995
Author: ffbin 869218...@qq.com
Date:   2015-08-16T08:01:46Z

[FLINK-2530]optimize equal() of AcknowledgeCheckpoint




---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[GitHub] flink pull request: [FLINK-2530]optimize equal() of AcknowledgeChe...

2015-08-16 Thread zentol
Github user zentol commented on the pull request:

https://github.com/apache/flink/pull/1024#issuecomment-131512254
  
i don't think these statements are equivalent.

Assume that this.state == null and that.state != null.

In the original version we evaluate that.state == null, which is False, so 
the overall result is False.

In your version we would evaluate (this.state == null || 
this.state.equals(that.state)), which is True, making the overall result true.

Unless i made a mistake, -1.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[GitHub] flink pull request: [FLINK-2530]optimize equal() of AcknowledgeChe...

2015-08-16 Thread zentol
Github user zentol commented on the pull request:

https://github.com/apache/flink/pull/1024#issuecomment-131534953
  
Looking at the pure logic this would work, but you can't remove that.state 
!= null since that could result in a NullPointerException inside equals.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[GitHub] flink pull request: [FLINK-2530]optimize equal() of AcknowledgeChe...

2015-08-16 Thread StephanEwen
Github user StephanEwen commented on the pull request:

https://github.com/apache/flink/pull/1024#issuecomment-131577837
  
Is this really in need of optimization? It is written failsafe, where it 
does not crash even if `state` does not handle null values properly. This is 
good, because it helps prevent future bugs. The performance cost is minimal.

Concerning performance:  This is an actor message send and processed 
asynchronously by the JobManager. These code paths should never saturate the 
CPU in any reasonable setup, and even the computation during the processing of 
this message is dominated by other parts (cache misses during hash table 
lookups). Checking more, this method is never even executed. It is there only 
for the sake of testing / debugability.

Please double check whether statements really need fixing. Eliminating 
checks for the sake of performance is really only necessary on the most 
performance critical code paths (the inner loops of the runtime operators and 
algorithms).


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[GitHub] flink pull request: [FLINK-2530]optimize equal() of AcknowledgeChe...

2015-08-16 Thread ffbin
Github user ffbin commented on the pull request:

https://github.com/apache/flink/pull/1024#issuecomment-131523209
  
@zentol hi. You are right.I want to change 
(this.state == null ? that.state == null : (that.state != null  
this.state.equals(that.state))) to
(this.state == null ? that.state == null : 
this.state.equals(that.state)), because equals()  will check null of  
that.state and if  that.state is null it will return false.
What is your suggestion? Thanks.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[GitHub] flink pull request: [FLINK-2530]optimize equal() of AcknowledgeChe...

2015-08-16 Thread ffbin
Github user ffbin closed the pull request at:

https://github.com/apache/flink/pull/1024


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[GitHub] flink pull request: [FLINK-2530]optimize equal() of AcknowledgeChe...

2015-08-16 Thread ffbin
Github user ffbin commented on the pull request:

https://github.com/apache/flink/pull/1024#issuecomment-131657696
  
@zentol @StephanEwen Thanks.This is not performance critical code and  some 
check is better.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---