+1 On Thu, Apr 16, 2020 at 4:17 AM Yangze Guo <karma...@gmail.com> wrote:
> Hi Aljoscha, > > Thanks for your advice. +1 to align the config pattern. > > I also agree that we need to move the long discussion to the [DISCUSS] > thread. Sorry if it bothers you. > > Best, > Yangze Guo > > On Thu, Apr 16, 2020 at 7:52 AM Becket Qin <becket....@gmail.com> wrote: > > > > I agree with Aljoscha. It is important to keep API the same style. And we > > probably should move the long discussion to the [DISCUSS] thread. > > > > Thanks, > > > > Jiangjie (Becket) Qin > > > > On Wed, Apr 15, 2020 at 11:27 PM Aljoscha Krettek <aljos...@apache.org> > > wrote: > > > > > Is the only really new method on the public APIs > > > getExternalResourceInfos(..) on the RuntimeContext? I'm generally quite > > > skeptical about adding anything to that interface but the method seems > ok. > > > > > > Side note for the configuration keys: the pattern is similar to metrics > > > configuration. There we have "metrics.reporters" = <list of reporter > > > names> and then metrics.reporter.<foobazzle>... Your proposal is > > > slightly different in that it uses "external-resource.list". Keeping > > > this in line with metrics configuration would suggest to use > > > "external-resources", and then "external-resource.<foobazzle>...". What > > > do you think? > > > > > > Also, why is there this long discussion in a [VOTE] thread? > > > > > > Best, > > > Aljoscha > > > > > > On 15.04.20 10:32, Yangze Guo wrote: > > > > Thanks for the explanation. I do not have a strong opinion regarding > > > > this interface. So, if it is better from your perspective, I'm +1 for > > > > this. I just saying it may not help a lot regarding the type-safe. > > > > > > > > Regarding the bounded wildcard type, yes, it's the implementation > > > > detail. If it won't make a difference for user, I'm also +1 for not > > > > using bounded wildcard type there. > > > > > > > > Best, > > > > Yangze Guo > > > > > > > > On Wed, Apr 15, 2020 at 4:23 PM Till Rohrmann <trohrm...@apache.org> > > > wrote: > > > >> > > > >> I think <T extends ExternalResourceInfo> Set<T> > > > >> getExternalResourceInfos(String resourceName, Class<T> > > > >> externalResourceType) is not less flexible than the other API since > you > > > can > > > >> always pass in ExternalResourceInfo.class as the second argument. > > > >> > > > >> The benefit I see for the user is that he does not have to do the > > > >> instanceof checks and type casts himself. This is admittedly not a > big > > > deal > > > >> but still a better API imo. > > > >> > > > >> I think the interface of the Driver and what is returned by the > > > >> RuntimeContext don't have to have the same type because you can > cast it > > > or > > > >> repack it. If the current implementation simply stores what the > Driver > > > >> returns and RuntimeContext returns this map, then it might seem that > > > there > > > >> is a connection. But this should be an implementation detail rather > > > than a > > > >> necessity. > > > >> > > > >> Maybe we could also pull in someone from the SDK team to give us his > > > >> opinion on the user facing API. > > > >> > > > >> Cheers, > > > >> Till > > > >> > > > >> On Wed, Apr 15, 2020 at 10:13 AM Xintong Song < > tonysong...@gmail.com> > > > wrote: > > > >> > > > >>>> > > > >>>> I agree that such an interface won't give compile time checks but > I > > > think > > > >>>> that it could be easier to use from a user's perspective because > > > there is > > > >>>> no explicit casting required. > > > >>>> public interface RuntimeContext { > > > >>>> <T extends ExternalResourceInfo> Set<T> > > > >>> getExternalResourceInfos(String > > > >>>> resourceName, Class<T> externalResourceType); > > > >>>> } > > > >>> > > > >>> > > > >>> I'm not sure how less efforts is required from users to pass in a > > > >>> `externalResourceType` compared to do an explicit type casting. > > > >>> A potential side effect of passing in a `externalResourceType` is > > > that, it > > > >>> requires user (e.g. the operator) to know which specific type > should be > > > >>> returned in advance, which may limit the flexibility. > > > >>> > > > >>> E.g., we might have an operator that can work with multiple > different > > > >>> implementations of `ExternalResourceInfo`. It may decide its > behavior > > > based > > > >>> on the actually type returned by `getExternalResourceInfos` at > runtime. > > > >>> > > > >>> > > > >>> Thank you~ > > > >>> > > > >>> Xintong Song > > > >>> > > > >>> > > > >>> > > > >>> On Wed, Apr 15, 2020 at 4:09 PM Yangze Guo <karma...@gmail.com> > wrote: > > > >>> > > > >>>> @Till > > > >>>> If we add "Class<T> externalResourceType" param, what if there are > > > >>>> multiple subtypes in the ExternalResourceInfos set of one external > > > >>>> resource? It seems user has to set the T to ExternalResourceInfo > and > > > >>>> the mechanism is useless at this case. > > > >>>> > > > >>>> Best, > > > >>>> Yangze Guo > > > >>>> > > > >>>> On Wed, Apr 15, 2020 at 3:57 PM Till Rohrmann < > trohrm...@apache.org> > > > >>>> wrote: > > > >>>>> > > > >>>>> Ok, if there can be multiple resources of the same type then we > > > >>>> definitely > > > >>>>> need the name as a differentiator. > > > >>>>> > > > >>>>> I agree that such an interface won't give compile time checks > but I > > > >>> think > > > >>>>> that it could be easier to use from a user's perspective because > > > there > > > >>> is > > > >>>>> no explicit casting required. > > > >>>>> > > > >>>>> public interface RuntimeContext { > > > >>>>> <T extends ExternalResourceInfo> Set<T> > > > >>>> getExternalResourceInfos(String > > > >>>>> resourceName, Class<T> externalResourceType); > > > >>>>> } > > > >>>>> > > > >>>>> One minor note: I think the value of the returned map does not > need > > > to > > > >>>> use > > > >>>>> a bounded wildcard type because for the user it won't make a > > > >>> difference. > > > >>>>> > > > >>>>> Cheers, > > > >>>>> Till > > > >>>>> > > > >>>>> On Wed, Apr 15, 2020 at 8:20 AM Yangze Guo <karma...@gmail.com> > > > wrote: > > > >>>>> > > > >>>>>> Hi Till, > > > >>>>>> > > > >>>>>>> ExternalResourceDriver could return a Set<? extends > > > >>>>>> ExternalResourceInfo>. > > > >>>>>> It sounds good. > > > >>>>>> > > > >>>>>>> then one could make the interface type-safe by changing it to > > > >>>>>>> public interface RuntimeContext { > > > >>>>>>> <T extends ExternalResourceInfo> Set<T> > > > >>>>>>> getExternalResourceInfo(Class<T> externalResourceType); > > > >>>>>>> } > > > >>>>>> I think it may not help. > > > >>>>>> - I think the assumption of "there is always only one resource > of a > > > >>>>>> specific type" is too strong. The external resource framework > should > > > >>>>>> only assume it gets a set of ExternalResourceInfo from the > driver. > > > >>> The > > > >>>>>> concrete implementation is given by user. So, if we give such an > > > >>>>>> assumption, it would hurt the flexibility. There could be > multiple > > > >>>>>> types in the returned externalResourceInfo set. There could > also be > > > >>>>>> different types returned from different driver implementation or > > > >>>>>> version. The contract about the return type between Driver and > > > >>>>>> Operator should be guaranteed by user. > > > >>>>>> - Since the Drivers are loaded dynamically in runtime, if there > is a > > > >>>>>> type mismatch, the job would fail in runtime instead of in > compile > > > >>>>>> time, no matter the type extraction is done by Operator or Flink > > > >>> core. > > > >>>>>> This interface would not gain benefits for type safety. > > > >>>>>> > > > >>>>>> Best, > > > >>>>>> Yangze Guo > > > >>>>>> > > > >>>>>> On Wed, Apr 15, 2020 at 1:38 AM Till Rohrmann < > trohrm...@apache.org > > > > > > > >>>>>> wrote: > > > >>>>>>> > > > >>>>>>> Thanks for updating the FLIP, Yangze. > > > >>>>>>> > > > >>>>>>> If ExternalResourceInfo is a marker interface, then > > > >>>>>> ExternalResourceDriver > > > >>>>>>> could return a Set<? extends ExternalResourceInfo>. This makes > is a > > > >>>> bit > > > >>>>>>> nicer for the implementor because he can use the concrete > subtype. > > > >>>>>>> > > > >>>>>>> If we assume that users will always cast the > ExternalResourceInfo > > > >>>>>> instance > > > >>>>>>> into the concrete subtype and if we assume that there is always > > > >>> only > > > >>>> one > > > >>>>>>> resource of a specific type, then one could make the interface > > > >>>> type-safe > > > >>>>>> by > > > >>>>>>> changing it to > > > >>>>>>> > > > >>>>>>> public interface RuntimeContext { > > > >>>>>>> <T extends ExternalResourceInfo> Set<T> > > > >>>>>>> getExternalResourceInfo(Class<T> externalResourceType); > > > >>>>>>> } > > > >>>>>>> > > > >>>>>>> If we want to support multiple GPU resources, then one would > need > > > >>> to > > > >>>> use > > > >>>>>>> the name of the respective resource as well. > > > >>>>>>> > > > >>>>>>> Cheers, > > > >>>>>>> Till > > > >>>>>>> > > > >>>>>>> On Mon, Apr 13, 2020 at 4:19 AM Xintong Song < > > > >>> tonysong...@gmail.com> > > > >>>>>> wrote: > > > >>>>>>> > > > >>>>>>>> Thanks for updating the FLIP, Yangze. > > > >>>>>>>> The latest FLIP looks good to me. > > > >>>>>>>> > > > >>>>>>>> nit: Javadoc of `ExternalResourceDriver#retrieveResourceInfo` > is > > > >>>> out of > > > >>>>>>>> sync. > > > >>>>>>>> > > > >>>>>>>>> Retrieve the information of the external resources according > to > > > >>>> the > > > >>>>>>>>> resourceProfile. > > > >>>>>>>> > > > >>>>>>>> > > > >>>>>>>> Thank you~ > > > >>>>>>>> > > > >>>>>>>> Xintong Song > > > >>>>>>>> > > > >>>>>>>> > > > >>>>>>>> > > > >>>>>>>> On Sat, Apr 11, 2020 at 11:04 AM Becket Qin < > > > >>> becket....@gmail.com> > > > >>>>>> wrote: > > > >>>>>>>> > > > >>>>>>>>> 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 > > > >>>>>>>>>>>>>>>>>>>> > > > >>>>>>>>>>>>>>>>>>> > > > >>>>>>>>>>>>>>>>>> > > > >>>>>>>>>>>>>>>>> > > > >>>>>>>>>>>>>> > > > >>>>>>>>>>>>> > > > >>>>>>>>>> > > > >>>>>>>>> > > > >>>>>>>> > > > >>>>>> > > > >>>> > > > >>> > > > > > > >