Good feedback form Xintong. The latest FLIP looks good to me. Thanks,
Jiangjie (Becket) Qin On Sat, Apr 11, 2020 at 9:20 AM Yangze Guo <karma...@gmail.com> wrote: > Hi there, > I've updated the FLIP accordingly. Please take a look. If you have any > further concerns please let me know. > > Best, > Yangze Guo > > On Fri, Apr 10, 2020 at 6:40 PM Yangze Guo <karma...@gmail.com> wrote: > > > > Thanks for the feedback, Xintong. > > > > - Should we have a factory interface for `ExternalResourceDriver`, that > > takes the configuration and returns a driver instance? Otherwise, if we > are > > creating the driver instance with reflection, we kind of implicitly > > requires the driver to have a public non-argument constructor. If we > > decided to go with this approach, then we will not need > > `ExternalResourceDriver#open`. > > > > True, we could have an `ExternalResourceDriverFactory`, like > > interface ExternalResourceDriverFactory { > > ExternalResourceDriver fromConfiguration(Configuration config); > > } > > Regarding the configuration, the user should provide > > "external-resource.{resourceName}.driver-factory.class" instead. > > > > - Not sure about the necessity of `ExternalResourceDriver#close`. I would > > suggest to avoid introduce more interfaces if not absolutely necessary. > > > > I add `ExternalResourceDriver#close` in case user needs to clean up > > internal states and any other resources. It's true that it may not > > absolutely necessary for our GPUDriver. From my side, I'm ok to remove > > it. > > > > - `ExternalResourceDriver#retrieveResourceInfo` should not take > > `ResourceProfile` as argument. This exposes more information than it > needs. > > In addition, it requires the runtime/core to understand how to properly > > wrap the external resource into `ResourceProfile`. E.g., > > `ResourceProfile#extendedResources` takes `Resource`, which is an > abstract > > class. Runtime/core has to known which implementation of `Resource` to > use. > > > > True, at the moment, I think the amount of the resource is enough for > > the `ExternalResourceDriver#retrieveResourceInfo`. In the future, if > > the fine-grained external resource management is supported, the amount > > of the resource seems to be enough either. If we want to leverage some > > external resources which could not be measured by a single long value, > > we might enrich this. But I'd like to keep it out of the scope of this > > FLIP. > > > > - Do we really need `ExternalResourceInfo#getInformation`? I think it > > should be good enough to make `ExternalResourceInfo` an empty interface. > > User can define their own `ExternalResourceInfo` implementation and how > it > > is used by the operator user codes. > > > > Sounds good. > > > > Best, > > Yangze Guo > > > > On Fri, Apr 10, 2020 at 6:04 PM Xintong Song <tonysong...@gmail.com> > wrote: > > > > > > Sorry to pull this back. I have some concerns about the recent updated > > > interface details. > > > > > > - Should we have a factory interface for `ExternalResourceDriver`, that > > > takes the configuration and returns a driver instance? Otherwise, if > we are > > > creating the driver instance with reflection, we kind of implicitly > > > requires the driver to have a public non-argument constructor. If we > > > decided to go with this approach, then we will not need > > > `ExternalResourceDriver#open`. > > > - Not sure about the necessity of `ExternalResourceDriver#close`. I > would > > > suggest to avoid introduce more interfaces if not absolutely necessary. > > > - `ExternalResourceDriver#retrieveResourceInfo` should not take > > > `ResourceProfile` as argument. This exposes more information than it > needs. > > > In addition, it requires the runtime/core to understand how to properly > > > wrap the external resource into `ResourceProfile`. E.g., > > > `ResourceProfile#extendedResources` takes `Resource`, which is an > abstract > > > class. Runtime/core has to known which implementation of `Resource` to > use. > > > - Do we really need `ExternalResourceInfo#getInformation`? I think it > > > should be good enough to make `ExternalResourceInfo` an empty > interface. > > > User can define their own `ExternalResourceInfo` implementation and > how it > > > is used by the operator user codes. > > > > > > Thank you~ > > > > > > Xintong Song > > > > > > > > > > > > On Thu, Apr 9, 2020 at 2:25 PM Becket Qin <becket....@gmail.com> > wrote: > > > > > > > +1 > > > > > > > > Thanks for driving this effort, Ynagze. The latest FLIP wiki looks > good to > > > > me. > > > > > > > > Cheers, > > > > > > > > Jiangjie (Becket) Qin > > > > > > > > On Wed, Apr 8, 2020 at 4:10 PM Yangze Guo <karma...@gmail.com> > wrote: > > > > > > > > > Edit: RuntimeContext interface > > > > > From: Map<String, Set<ExternalResourceInfo>> > > > > > getExternalResourceInfo(ResourceSpec resourceSpec); > > > > > To: Map<String, Set<ExternalResourceInfo>> > getExternalResourceInfo(); > > > > > > > > > > Best, > > > > > Yangze Guo > > > > > > > > > > > > > > > On Wed, Apr 8, 2020 at 11:36 AM Yangze Guo <karma...@gmail.com> > wrote: > > > > > > > > > > > > Hi, there > > > > > > > > > > > > I have updated the FLIP, mainly target to make it more detailed > and > > > > > > clear. The general design is not changed, but there are still > some > > > > > > changes need to be notified here: > > > > > > > > > > > > - Change the `ExternalResourceDriver` from abstract class to > > > > > > interface, since it does not have an abstract implementation. > Add life > > > > > > cycle method `open` and `close`. > > > > > > > > > > > > - Specify the method added to the RuntimeContext from which user > get > > > > > > the information of external resources. > > > > > > Map<String, Set<ExternalResourceInfo>> > > > > > > getExternalResourceInfo(ResourceSpec resourceSpec); > > > > > > > > > > > > - Add "String getInformation()" method to `ExternalResourceInfo` > > > > > interface. > > > > > > > > > > > > - Treat adding external resource info to RestAPI/WebUI as a > future > > > > work. > > > > > > > > > > > > If you have any new concerns after that change, please mentioned > here. > > > > > > Sorry for disturbing you. > > > > > > > > > > > > Best, > > > > > > Yangze Guo > > > > > > > > > > > > On Wed, Apr 8, 2020 at 9:55 AM Yang Wang <danrtsey...@gmail.com> > > > > wrote: > > > > > > > > > > > > > > Thanks Yangze for the efforts to support GPU extended > resources. > > > > > > > > > > > > > > +1 for this FLIP > > > > > > > > > > > > > > > > > > > > > Best, > > > > > > > Yang > > > > > > > > > > > > > > Till Rohrmann <trohrm...@apache.org> 于2020年4月2日周四 下午11:10写道: > > > > > > > > > > > > > > > Thanks for driving this effort Yangze. > > > > > > > > > > > > > > > > +1 > > > > > > > > > > > > > > > > Cheers, > > > > > > > > Till > > > > > > > > > > > > > > > > On Wed, Apr 1, 2020 at 12:41 PM Canbin Zheng < > > > > felixzhen...@gmail.com > > > > > > > > > > > > > > wrote: > > > > > > > > > > > > > > > > > Thanks Yangze for driving the initial CPU support! > > > > > > > > > +1 (non-binding) from my side. > > > > > > > > > > > > > > > > > > > > > > > > > > > Xintong Song <tonysong...@gmail.com> 于2020年4月1日周三 > 下午6:36写道: > > > > > > > > > > > > > > > > > > > Thanks Yangze, the FLIP looks good to me. > > > > > > > > > > +1 (non-binding) from my side. > > > > > > > > > > > > > > > > > > > > Thank you~ > > > > > > > > > > > > > > > > > > > > Xintong Song > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > On Wed, Apr 1, 2020 at 5:22 PM Yangze Guo < > karma...@gmail.com> > > > > > wrote: > > > > > > > > > > > > > > > > > > > > > Hi everyone, > > > > > > > > > > > > > > > > > > > > > > I'd like to start the vote of FLIP-108 [1], which adds > GPU > > > > > support in > > > > > > > > > > > Flink. This FLIP is discussed in the thread[2]. > > > > > > > > > > > > > > > > > > > > > > The vote will be open for at least 72 hours. Unless > there is > > > > an > > > > > > > > > > objection, > > > > > > > > > > > I will try to close it by April 4, 2020 10:00 UTC if > we have > > > > > received > > > > > > > > > > > sufficient votes. > > > > > > > > > > > > > > > > > > > > > > [1] > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > https://cwiki.apache.org/confluence/display/FLINK/FLIP-108%3A+Add+GPU+support+in+Flink > > > > > > > > > > > [2] > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > http://apache-flink-mailing-list-archive.1008284.n3.nabble.com/DISCUSS-FLIP-108-Add-GPU-support-in-Flink-td38286.html > > > > > > > > > > > > > > > > > > > > > > Best, > > > > > > > > > > > Yangze Guo > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >