You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@flink.apache.org by GitBox <gi...@apache.org> on 2019/05/08 07:56:46 UTC

[GitHub] [flink] sunhaibotb commented on issue #8124: [FLINK-11877] Implement the runtime handling of the InputSelectable interface

sunhaibotb commented on issue #8124: [FLINK-11877] Implement the runtime handling of the InputSelectable interface
URL: https://github.com/apache/flink/pull/8124#issuecomment-490388025
 
 
   @pnowojski , the code has been updated and it relies on the latest version of [PR-7959](https://github.com/apache/flink/pull/7959).
   
   - The throughput difference of `StreamTwoInputSelectableProcessor` to `StreamTwoInputProcessor` dropped from 3.51% to 2.88%.  That is to say,  **`StreamTwoInputSelectableProcessor` is still 2.88% slower than `StreamTwoInputProcessor`**.
   
     - Benchmark Results (run three times benchmark to calculate the average)
     `StreamTwoInputSelectableProcessor`: 23151 ops/ms
     `StreamTwoInputProcessor`: 23839 ops/ms
   
     - If the code which deserializes  elements from the buffers as the following, is put into `StreamTwoInputSelectableProcessor#loopProcessingInput()`, the performance will be greatly improved (I tested it before). But this deviates from the purpose of abstracting the `Input` interface.  **Is Digging JIT-optimization the next direction?  Or is the performance regression acceptable under the current structure?**
   
   ```
   if (currentRecordDeserializer != null) {
       DeserializationResult result = currentRecordDeserializer.getNextRecord(deserializationDelegate1);
       if (result.isFullRecord()) {
           element = deserializationDelegate1.getInstance();
       }
   }
   ```
   
   - The related code of `Input#listen()` is temporary and has not been modified to base on your [PR-8361](https://github.com/apache/flink/pull/8361). Replacing listeners with `CompletableFuture` in `InputGates` is a very good design, and the old interface is really awkward to `Input`. **Next, do I put this PR on the top of your [PR-8361](https://github.com/apache/flink/pull/8361)?**
   
   P.S., the benchmark code has been split into the new [PR-8368](https://github.com/apache/flink/pull/8368).

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services