Hi all,

The voting time for FLIP-78 has passed. I'm closing the vote now.

There were 6 +1 votes, 4 of which are binding:
- Jincheng (binding)
- Hequn (binding)
- Thomas (binding)
- Maximilian (binding)
- Dian (non-binding)
- Jeff (non-binding)

There were no disapproving votes.

Thus, FLIP-78 has been accepted.

Thanks everyone for joining the discussion and giving feedback!

Best,
Wei

> 在 2019年10月28日,15:06,Wei Zhong <weizhong0...@gmail.com> 写道:
> 
> Thanks everyone for the votes!
> I’ll summarize the voting result in a separate email.
> 
> Best,
> Wei
> 
>> 在 2019年10月28日,11:38,jincheng sun <sunjincheng...@gmail.com> 写道:
>> 
>> Hi Max,
>> 
>> Thanks for your feedback. You are right, we really need a more generic
>> solution,  I volunteer to draft an init solution design doc, and bring up
>> the discussion in Beam @dev ASAP. (Maybe after release of Flink 1.10).
>> 
>> Thank you for the voting.
>> 
>> Best,
>> Jincheng
>> 
>> Maximilian Michels <m...@apache.org> 于2019年10月26日周六 上午1:05写道:
>> 
>>> Hi Wei, hi Jincheng,
>>> 
>>> +1 on the current approach.
>>> 
>>> I agree it would be nice to allow for the Beam artifact staging to use
>>> Flink's BlobServer. However, the current implementation which uses the
>>> distributed file system is more generic, since the BlobServer is only
>>> available on the TaskManager and not necessarily inside Harness
>>> containers (Stage 3).
>>> 
>>> So for stage 1 (Client <=> JobServer) we could certainly use the
>>> BlobServer. Stage 2 (Flink job submission) already uses it, and Stage 3
>>> (container setup) probably has to have some form of distributed file
>>> system or directory which has been populated with the dependencies.
>>> 
>>> Thanks,
>>> Max
>>> 
>>> On 25.10.19 03:45, Wei Zhong wrote:
>>>> Hi Max,
>>>> 
>>>> Is there any other concerns from your side? I appreciate if you can give
>>> some feedback and vote on this.
>>>> 
>>>> Best,
>>>> Wei
>>>> 
>>>>> 在 2019年10月25日,09:33,jincheng sun <sunjincheng...@gmail.com> 写道:
>>>>> 
>>>>> Hi Thomas,
>>>>> 
>>>>> Thanks for your explanation. I understand your original intention. I
>>> will
>>>>> seriously consider this issue. After I have the initial solution, I will
>>>>> bring up a further discussion in Beam ML.
>>>>> 
>>>>> Thanks for your voting. :)
>>>>> 
>>>>> Best,
>>>>> Jincheng
>>>>> 
>>>>> 
>>>>> Thomas Weise <t...@apache.org> 于2019年10月25日周五 上午7:32写道:
>>>>> 
>>>>>> Hi Jincheng,
>>>>>> 
>>>>>> Yes, this topic can be further discussed on the Beam ML. The only
>>> reason I
>>>>>> brought it up here is that it would be desirable from Beam Flink runner
>>>>>> perspective for the artifact staging mechanism that you work on to be
>>>>>> reusable.
>>>>>> 
>>>>>> Stage 1 in Beam is also up to the runner, artifact staging is a service
>>>>>> discovered from the job server and that the Flink job server currently
>>> uses
>>>>>> DFS is not set in stone. My interest was more regarding assumptions
>>>>>> regarding the artifact structure, which may or may not allow for
>>> reusable
>>>>>> implementation.
>>>>>> 
>>>>>> +1 for the proposal otherwise
>>>>>> 
>>>>>> Thomas
>>>>>> 
>>>>>> 
>>>>>> On Mon, Oct 21, 2019 at 8:40 PM jincheng sun <sunjincheng...@gmail.com
>>>> 
>>>>>> wrote:
>>>>>> 
>>>>>>> Hi Thomas,
>>>>>>> 
>>>>>>> Thanks for sharing your thoughts. I think improve and solve the
>>>>>> limitations
>>>>>>> of the Beam artifact staging is good topic(For beam).
>>>>>>> 
>>>>>>> As I understand it as follows:
>>>>>>> 
>>>>>>> For Beam(data):
>>>>>>>   Stage1: BeamClient ------> JobService (data will be upload to
>>> DFS).
>>>>>>>   Stage2: JobService(FlinkClient) ------>  FlinkJob (operator
>>> download
>>>>>>> the data from DFS)
>>>>>>>   Stage3: Operator ------> Harness(artifact staging service)
>>>>>>> 
>>>>>>> For Flink(data):
>>>>>>>   Stage1: FlinkClient(data(local) upload to BlobServer using
>>> distribute
>>>>>>> cache) ------> Operator (data will be download from BlobServer). Do
>>> not
>>>>>>> have to depend on DFS.
>>>>>>>   Stage2: Operator ------> Harness(for docker we using artifact
>>> staging
>>>>>>> service)
>>>>>>> 
>>>>>>> So, I think Beam have to depend on DFS in Stage1. and Stage2 can using
>>>>>>> distribute cache if we remove the dependency of DFS for Beam in
>>>>>> Stage1.(Of
>>>>>>> course we need more detail here),  we can bring up the discussion in a
>>>>>>> separate Beam dev@ ML, the current discussion focuses on Flink 1.10
>>>>>>> version
>>>>>>> of  UDF Environment and Dependency Management for python, so I
>>> recommend
>>>>>>> voting in the current ML for Flink 1.10, Beam artifact staging
>>>>>> improvements
>>>>>>> are discussed in a separate Beam dev@.
>>>>>>> 
>>>>>>> What do you think?
>>>>>>> 
>>>>>>> Best,
>>>>>>> Jincheng
>>>>>>> 
>>>>>>> Thomas Weise <t...@apache.org> 于2019年10月21日周一 下午10:25写道:
>>>>>>> 
>>>>>>>> Beam artifact staging currently relies on shared file system and
>>> there
>>>>>>> are
>>>>>>>> limitations, for example when running locally with Docker and local
>>> FS.
>>>>>>> It
>>>>>>>> sounds like a distributed cache based implementation might be a good
>>>>>>>> (better?) option for artifact staging even for the Beam Flink runner?
>>>>>>>> 
>>>>>>>> If so, can the implementation you propose be compatible with the Beam
>>>>>>>> artifact staging service so that it can be plugged into the Beam
>>> Flink
>>>>>>>> runner?
>>>>>>>> 
>>>>>>>> Thanks,
>>>>>>>> Thomas
>>>>>>>> 
>>>>>>>> 
>>>>>>>> On Mon, Oct 21, 2019 at 2:34 AM jincheng sun <
>>> sunjincheng...@gmail.com
>>>>>>> 
>>>>>>>> wrote:
>>>>>>>> 
>>>>>>>>> Hi Max,
>>>>>>>>> 
>>>>>>>>> Sorry for the late reply. Regarding the issue you mentioned above,
>>>>>> I'm
>>>>>>>> glad
>>>>>>>>> to share my thoughts:
>>>>>>>>> 
>>>>>>>>>> For process-based execution we use Flink's cache distribution
>>>>>> instead
>>>>>>>> of
>>>>>>>>> Beam's artifact staging.
>>>>>>>>> 
>>>>>>>>> In current design, we use Flink's cache distribution to upload
>>> users'
>>>>>>>> files
>>>>>>>>> from client to cluster in both docker mode and process mode. That
>>> is,
>>>>>>>>> Flink's cache distribution and Beam's artifact staging service work
>>>>>>>>> together in docker mode.
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>>> Do we want to implement two different ways of staging artifacts? It
>>>>>>>> seems
>>>>>>>>> sensible to use the same artifact staging functionality also for the
>>>>>>>>> process-based execution.
>>>>>>>>> 
>>>>>>>>> I agree that the implementation will be simple if we use the same
>>>>>>>> artifact
>>>>>>>>> staging functionality also for the process-based execution. However,
>>>>>>> it's
>>>>>>>>> not the best for performance as it will introduce an additional
>>>>>> network
>>>>>>>>> transmission, as in process mode TaskManager and python worker share
>>>>>>> the
>>>>>>>>> same environment, in which case the user files in Flink Distribute
>>>>>>> Cache
>>>>>>>>> can be accessed by python worker directly. We do not need the
>>> staging
>>>>>>>>> service in this case.
>>>>>>>>> 
>>>>>>>>>> Apart from being simpler, this would also allow the process-based
>>>>>>>>> execution to run in other environments than the Flink TaskManager
>>>>>>>>> environment.
>>>>>>>>> 
>>>>>>>>> IMHO, this case is more like docker mode, and we can share or reuse
>>>>>> the
>>>>>>>>> code of Beam docker mode. Furthermore, in this case python worker is
>>>>>>>>> launched by the operator, so it is always in the same environment as
>>>>>>> the
>>>>>>>>> operator.
>>>>>>>>> 
>>>>>>>>> Thanks again for your feedback, and it is valuable for find out the
>>>>>>> final
>>>>>>>>> best architecture.
>>>>>>>>> 
>>>>>>>>> Feel free to correct me if there is anything incorrect.
>>>>>>>>> 
>>>>>>>>> Best,
>>>>>>>>> Jincheng
>>>>>>>>> 
>>>>>>>>> Maximilian Michels <m...@apache.org> 于2019年10月16日周三 下午4:23写道:
>>>>>>>>> 
>>>>>>>>>> I'm also late to the party here :) When I saw the first draft, I
>>>>>> was
>>>>>>>>>> thinking how exactly the design doc would tie in with Beam. Thanks
>>>>>>> for
>>>>>>>>>> the update.
>>>>>>>>>> 
>>>>>>>>>> A couple of comments with this regard:
>>>>>>>>>> 
>>>>>>>>>>> Flink has provided a distributed cache mechanism and allows users
>>>>>>> to
>>>>>>>>>> upload their files using "registerCachedFile" method in
>>>>>>>>>> ExecutionEnvironment/StreamExecutionEnvironment. The python files
>>>>>>> users
>>>>>>>>>> specified through "add_python_file", "set_python_requirements" and
>>>>>>>>>> "add_python_archive" are also uploaded through this method
>>>>>>> eventually.
>>>>>>>>>> 
>>>>>>>>>> For process-based execution we use Flink's cache distribution
>>>>>> instead
>>>>>>>> of
>>>>>>>>>> Beam's artifact staging.
>>>>>>>>>> 
>>>>>>>>>>> Apache Beam Portability Framework already supports artifact
>>>>>> staging
>>>>>>>>> that
>>>>>>>>>> works out of the box with the Docker environment. We can use the
>>>>>>>> artifact
>>>>>>>>>> staging service defined in Apache Beam to transfer the dependencies
>>>>>>>> from
>>>>>>>>>> the operator to Python SDK harness running in the docker container.
>>>>>>>>>> 
>>>>>>>>>> Do we want to implement two different ways of staging artifacts? It
>>>>>>>>>> seems sensible to use the same artifact staging functionality also
>>>>>>> for
>>>>>>>>>> the process-based execution. Apart from being simpler, this would
>>>>>>> also
>>>>>>>>>> allow the process-based execution to run in other environments than
>>>>>>> the
>>>>>>>>>> Flink TaskManager environment.
>>>>>>>>>> 
>>>>>>>>>> Thanks,
>>>>>>>>>> Max
>>>>>>>>>> 
>>>>>>>>>> On 15.10.19 11:13, Wei Zhong wrote:
>>>>>>>>>>> Hi Thomas,
>>>>>>>>>>> 
>>>>>>>>>>> Thanks a lot for your suggestion!
>>>>>>>>>>> 
>>>>>>>>>>> As you can see from the section "Goals" that this FLIP focuses on
>>>>>>> the
>>>>>>>>>> dependency management in process mode. However, the APIs and design
>>>>>>>>>> proposed in this FLIP also applies for the docker mode. So it makes
>>>>>>>> sense
>>>>>>>>>> to me to also describe how this design is integated to the artifact
>>>>>>>>> staging
>>>>>>>>>> service of Apache Beam in docker mode. I have updated the design
>>>>>> doc
>>>>>>>> and
>>>>>>>>>> looking forward to your feedback.
>>>>>>>>>>> 
>>>>>>>>>>> Thanks,
>>>>>>>>>>> Wei
>>>>>>>>>>> 
>>>>>>>>>>>> 在 2019年10月15日,01:54,Thomas Weise <t...@apache.org> 写道:
>>>>>>>>>>>> 
>>>>>>>>>>>> Sorry for joining the discussion late.
>>>>>>>>>>>> 
>>>>>>>>>>>> The Beam environment already supports artifact staging, it works
>>>>>>> out
>>>>>>>>> of
>>>>>>>>>> the
>>>>>>>>>>>> box with the Docker environment. I think it would be helpful to
>>>>>>>>> explain
>>>>>>>>>> in
>>>>>>>>>>>> the FLIP how this proposal relates to what Beam offers / how it
>>>>>>>> would
>>>>>>>>> be
>>>>>>>>>>>> integrated.
>>>>>>>>>>>> 
>>>>>>>>>>>> Thanks,
>>>>>>>>>>>> Thomas
>>>>>>>>>>>> 
>>>>>>>>>>>> 
>>>>>>>>>>>> On Mon, Oct 14, 2019 at 8:09 AM Jeff Zhang <zjf...@gmail.com>
>>>>>>>> wrote:
>>>>>>>>>>>> 
>>>>>>>>>>>>> +1
>>>>>>>>>>>>> 
>>>>>>>>>>>>> Hequn Cheng <chenghe...@gmail.com> 于2019年10月14日周一 下午10:55写道:
>>>>>>>>>>>>> 
>>>>>>>>>>>>>> +1
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> Good job, Wei!
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> Best, Hequn
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> On Mon, Oct 14, 2019 at 2:54 PM Dian Fu <
>>>>>> dian0511...@gmail.com>
>>>>>>>>>> wrote:
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> Hi Wei,
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> +1 (non-binding). Thanks for driving this.
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> Thanks,
>>>>>>>>>>>>>>> Dian
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> 在 2019年10月14日,下午1:40,jincheng sun <sunjincheng...@gmail.com
>>>>>>> 
>>>>>>>> 写道:
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> +1
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>> Wei Zhong <weizhong0...@gmail.com> 于2019年10月12日周六 下午8:41写道:
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>> Hi all,
>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>> I would like to start the vote for FLIP-78[1] which is
>>>>>>>> discussed
>>>>>>>>>> and
>>>>>>>>>>>>>>>>> reached consensus in the discussion thread[2].
>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>> The vote will be open for at least 72 hours. I'll try to
>>>>>>> close
>>>>>>>> it
>>>>>>>>>> by
>>>>>>>>>>>>>>>>> 2019-10-16 18:00 UTC, unless there is an objection or not
>>>>>>>> enough
>>>>>>>>>>>>>> votes.
>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>> Thanks,
>>>>>>>>>>>>>>>>> Wei
>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>> [1]
>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> 
>>>>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>> https://cwiki.apache.org/confluence/display/FLINK/FLIP-78%3A+Flink+Python+UDF+Environment+and+Dependency+Management
>>>>>>>>>>>>>>>>> <
>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> 
>>>>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>> https://cwiki.apache.org/confluence/display/FLINK/FLIP-78:+Flink+Python+UDF+Environment+and+Dependency+Management
>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>> [2]
>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> 
>>>>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>> http://apache-flink-mailing-list-archive.1008284.n3.nabble.com/DISCUSS-Flink-Python-UDF-Environment-and-Dependency-Management-td33514.html
>>>>>>>>>>>>>>>>> <
>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> 
>>>>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>> http://apache-flink-mailing-list-archive.1008284.n3.nabble.com/DISCUSS-Flink-Python-UDF-Environment-and-Dependency-Management-td33514.html
>>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> 
>>>>>>>>>>>>> 
>>>>>>>>>>>>> 
>>>>>>>>>>>>> --
>>>>>>>>>>>>> Best Regards
>>>>>>>>>>>>> 
>>>>>>>>>>>>> Jeff Zhang
>>>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>> 
>>> 
> 

Reply via email to