Hi,

I think WARN makes sense and the safest approach. It allows users to be notify 
and eventually update or back on previous Beam IO version.

Regards
JB

> Le 6 mars 2020 à 18:49, Kenneth Knowles <k...@apache.org> a écrit :
> 
> Since the user provides backendVersion, here are some possible levels of 
> things to add in expand() based on that (these are extra niceties beyond the 
> agreed number of releases to remove)
> 
>  - WARN for backendVersion < n
>  - reject for backendVersion < n with opt-in pipeline option to keep it 
> working one more version (gets their attention and indicates urgency)
>  - reject completely
> 
> Kenn
> 
> On Fri, Mar 6, 2020 at 2:26 AM Etienne Chauchot <echauc...@apache.org 
> <mailto:echauc...@apache.org>> wrote:
> Hi all, 
> 
> it's been 3 weeks since the survey on ES versions the users use. 
> 
> The survey received very few responses: only 9 responses for now (multiple 
> versions possible of course). The responses are the following:
> 
> ES2: 0 clients, ES5: 1, ES6: 5, ES7: 8 
> 
> It tends to go toward a drop of ES2 support but for now it is still not very 
> representative.
> 
> I'm cross-posting to @users to let you know that I'm closing the survey 
> within 1 or 2 weeks. So please respond if you're using ESIO.
> 
> Best
> 
> Etienne
> 
> On 13/02/2020 12:37, Etienne Chauchot wrote:
>> Hi Cham, thanks for your comments !
>> 
>> I just sent an email to user ML with a survey link to count ES uses per 
>> version:
>> 
>> https://lists.apache.org/thread.html/rc8185afb8af86a2a032909c13f569e18bd89e75a5839894d5b5d4082%40%3Cuser.beam.apache.org%3E
>>  
>> <https://lists.apache.org/thread.html/rc8185afb8af86a2a032909c13f569e18bd89e75a5839894d5b5d4082%40%3Cuser.beam.apache.org%3E>
>> Best
>> 
>> Etienne
>> 
>> On 10/02/2020 19:46, Chamikara Jayalath wrote:
>>> 
>>> 
>>> On Thu, Feb 6, 2020 at 8:13 AM Etienne Chauchot <echauc...@apache.org 
>>> <mailto:echauc...@apache.org>> wrote:
>>> Hi,
>>> 
>>> please see my comments inline
>>> 
>>> On 06/02/2020 16:24, Alexey Romanenko wrote:
>>>> Please, see my comments inline.
>>>> 
>>>>> On 6 Feb 2020, at 10:50, Etienne Chauchot <echauc...@apache.org 
>>>>> <mailto:echauc...@apache.org>> wrote:
>>>>>>>> 1. regarding version support: ES v2 is no more maintained by Elastic 
>>>>>>>> since 2018/02 so we plan to remove it from the IO. In the past we 
>>>>>>>> already retired versions (like spark 1.6 for instance).
>>>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> My only concern here is that there might be users who use the existing 
>>>>>> module who might not be able to easily upgrade the Beam version if we 
>>>>>> remove it. But given that V2 is 5 versions behind the latest release 
>>>>>> this might be OK.
>>>>>> 
>>>>>> It seems we have a consensus on this.
>>>>>> I think there should be another general discussion on the long term 
>>>>>> support of our prefered tool IO modules.
>>>>> => yes, consensus, let's drop ESV2
>>>>> 
>>>> We had (and still have) a similar problem with KafkaIO to support 
>>>> different versions of Kafka, especially very old version 0.9. We raised 
>>>> this question on user@ and it appears that there are users who for some 
>>>> reasons still use old Kafka versions. So, before dropping a support of any 
>>>> ES versions, I’d suggest to ask it user@ and see if any people will be 
>>>> affected by this.
>>> Yes we can do a survey among users but the question is, should we support 
>>> an ES version that is no more supported by Elastic themselves ?
>>> 
>>> +1 for asking in the user list. I guess this is more about whether users 
>>> need this specific version that we hope to drop support for. Whether we 
>>> need to support unsupported versions is a more generic question that should 
>>> prob. be addressed in the dev list. (and I personally don't think we should 
>>> unless there's a large enough user base for a given version).
>>> 
>>>>> 
>>>>>>>> 2. regarding the user: the aim is to unlock some new features (listed 
>>>>>>>> by Ludovic) and give the user more flexibility on his request. For 
>>>>>>>> that, it requires to use high level java ES client in place of the low 
>>>>>>>> level REST client (that was used because it is the only one compatible 
>>>>>>>> with all ES versions). We plan to replace the API (json document in 
>>>>>>>> and out) by more complete standard ES objects that contain de request 
>>>>>>>> logic (insert/update, doc routing etc...) and the data. There are 
>>>>>>>> already IOs like SpannerIO that use similar objects in input 
>>>>>>>> PCollection rather than pure POJOs. 
>>>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> Won't this be a breaking change for all users ? IMO using POJOs in 
>>>>>> PCollections is safer since we have to worry about changes to the 
>>>>>> underlying client library API. Exception would be when underlying client 
>>>>>> library offers a backwards compatibility guarantee that we can rely on 
>>>>>> for the foreseeable future (for example, BQ TableRow).
>>>>>> 
>>>>>> Agreed but actually, there will be POJOs in order to abstract 
>>>>>> Elasticsearch's version support. The following third point explains this.
>>>>> => indeed it will be a breaking change, hence this email to get a 
>>>>> consensus on that. Also I think our wrappers of ES request objects will 
>>>>> offer a backward compatible as the underlying objects
>>>>> 
>>>> I just want to remind that according to what we agreed some time ago on 
>>>> dev@ (at least, for IOs), all breaking user API changes have to be added 
>>>> along with deprecation of old API that could be removed after 3 
>>>> consecutive Beam releases. In this case, users will have a time to move to 
>>>> new API smoothly. 
>>> We are more discussing the target architecture of the new module here but 
>>> the process of deprecation is important to recall, I agree. When I say DTOs 
>>> backward compatible above I mean between per-version sub-modules inside the 
>>> new module. Anyway, sure, for some time, both modules (the old REST-based 
>>> that supports v2-7 and the new that supports v5-7) will cohabit and the old 
>>> one will receive the deprecation annotations. 
>>> 
>>> 
>>> +1 for supporting both versions for at least three minor versions to give 
>>> users time to migrate. Also, we should try to produce a warning for users 
>>> who use the deprecated versions.
>>> 
>>> Thanks,
>>> Cham
>>>  
>>> 
>>> Best 
>>> 
>>> Etienne
>>> 
>>>> 
>>>> 

Reply via email to