Github user rtudoran commented on the issue:

    https://github.com/apache/flink/pull/3700
  
    @fhueske @shijinkui @hongyuhong @stefanobortoli @sunjincheng121 @twalthr 
    
    I have created a first implementation for supporting logical sort. As per 
the discussion on the JIRA issue the intention is to merge in the master the 
support for sorting based on proctime and event time (potentially with 
additional fields) in append only mode. The other cases (having offset, 
fetch..) will be merged in the retraction branch. The backbone for the 2 is the 
same and this implementation contains it.
    Please review it and let me know if you have particular comments mainly 
about the structure and the idea on how to approach it.
    As reference the key point is to support this via aggregates. Therefor we 
have a sort aggregate where we accumulate rows which are internally sorted and 
maintained in a sorted list based on the order given by the keys. This requires 
to have a single extension for retrieving the results in the form of a 
getValues instead of getValue.
    
    A second remark is about the usage of processFunction (with the advantage 
that values are accumulated/sorted as they come) - which by default requires 
partition. However, if there is a prepartition of the stream beforehand this 
would reshufle all elements. If this case is possible i will drop the 
partitionBy before the function (i hope this does not break the usage of 
ValueState) - i will add a specific comment inline
    
    For the tests - please ignore them as instead of integration tests i will 
use the harness framework


---
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.
---

Reply via email to