Hi Flavio,

Thanks for your reply and share.

I agree with that an "official" program description
would be helpful as you described.

However, this thread mainly focuses on drop the stale
class Program.

For proposing a better program description from Flink
side, feel free to start a new thread on dev or user
list(I would regard this as a user requirement).

Best,
tison.


Zili Chen <wander4...@gmail.com> 于2019年7月19日周五 下午5:10写道:

> Hi Biao,
>
> Thanks for your reply.
>
> For the "burden" part, inside PackagedProgram and ClusterClient
> we currently contains branches handling whether the mainClass of
> user job jar is subclass of Program. Any effort under client api
> enhancement should be compatible with such codepaths unless we
> drop it.
>
> The class Program is only active in batch codepath, while the
> so-called interactive mode, i.e., executing the main method of
> user's main class, is using widely and valid in both batch and
> streaming codepath.
>
> Previously we have drop flink-storm directly and I'm afraid this
> Program class is much less known and used than flink-storm.
> Keeping compatible with such class is an unnecessary overhead.
>
> However, the enhancement of client api is still under discussion
> so it would be ok to deprecate at first and propose removal when
> necessary.
>
> Either drop it or deprecate it prevents users from being confused
> how to use this stale class. But given the community has dropped
> stale flink-storm, flink-libarary/python|ml, I'd like to propose
> drop this class if in the survey we receiving no usage report.
>
> Best,
> tison.
>
>
> Flavio Pompermaier <pomperma...@okkam.it> 于2019年7月19日周五 下午4:21写道:
>
>> In my experience a basic "official" (but optional) program description
>> would be very useful indeed (in order to ease the integration with other
>> frameworks).
>>
>> Of course it should be extended and integrated with the REST services and
>> the Web UI (when defined) in order to be useful..
>> It ease to show to the user what a job does and which parameters it
>> requires (optional or mandatory) and with a proper help description.
>> Indeed, when we write a Flink job we implement the following interface:
>>
>> public interface FlinkJob {
>>   String getDescription();
>>   List<FlinkJobParameter> getParameters();
>>  boolean isStreamingOrBatch();
>> }
>>
>> public class ClusterJobParameter {
>>
>>   private String paramName;
>>   private String paramType = "string";
>>   private String paramDesc;
>>   private String paramDefaultValue;
>>   private Set<String> choices;
>>   private boolean mandatory;
>> }
>>
>> This really helps to launch a Flink job by a frontend (if the rest
>> services
>> returns back those infos).
>>
>> Best,
>> Flavio
>>
>> On Fri, Jul 19, 2019 at 9:57 AM Biao Liu <mmyy1...@gmail.com> wrote:
>>
>> > Hi Zili,
>> >
>> > Thank you for bring us this discussion.
>> >
>> > My gut feeling is +1 for dropping it.
>> > Usually it costs some time to deprecate a public (actually it's
>> > `PublicEvolving`) API. Ideally it should be marked as `Deprecated`
>> first.
>> > Then it might be abandoned it in some later version.
>> >
>> > I'm not sure how big the burden is to make it compatible with the
>> enhanced
>> > client API. If it's a critical blocker, I support dropping it radically
>> in
>> > 1.10. Of course a survey is necessary. And the result of survey is
>> > acceptable.
>> >
>> >
>> >
>> > Zili Chen <wander4...@gmail.com> 于2019年7月19日周五 下午1:44写道:
>> >
>> > > Hi devs,
>> > >
>> > > Participating the thread "Flink client api enhancement"[1], I just
>> notice
>> > > that inside submission codepath of Flink we always has a branch
>> dealing
>> > > with the case that main class of user program is a subclass of
>> > > o.a.f.api.common.Program, which is defined as
>> > >
>> > > @PublicEvolving
>> > > public interface Program {
>> > >   Plan getPhan(String... args);
>> > > }
>> > >
>> > > This class, as user-facing interface, asks user to implement #getPlan
>> > > which return a almost Flink internal class. FLINK-10862[2] pointed out
>> > > this confusion.
>> > >
>> > > Since our codebase contains quite a bit code handling this stale
>> class,
>> > > and also it obstructs the effort enhancing Flink cilent api,
>> > > I'd like to propose dropping it. Or we can start a survey on user list
>> > > to see if there is any user depending on this class.
>> > >
>> > > best,
>> > > tison.
>> > >
>> > > [1]
>> > >
>> > >
>> >
>> https://lists.apache.org/thread.html/ce99cba4a10b9dc40eb729d39910f315ae41d80ec74f09a356c73938@%3Cdev.flink.apache.org%3E
>> > > [2] https://issues.apache.org/jira/browse/FLINK-10862
>> > >
>> >
>>
>

Reply via email to