Works for me. So a jira with target version = 3. Can someone with the karma check we have a 3.0.0 in jira system please?
Le 4 févr. 2018 20:46, "Reuven Lax" <re...@google.com> a écrit : > Seems fine to me. At some point we might want to do an audit of existing > Jira issues, because I suspect there are issues that should be targeted to > 3.0 but are not yet tagged. > > On Sun, Feb 4, 2018 at 11:41 AM, Jean-Baptiste Onofré <j...@nanthrax.net> > wrote: > >> I would prefer to use Jira, with "wish"/"ideas", and adding Beam 3.0.0 >> version. >> >> WDYT ? >> >> Regards >> JB >> >> On 02/04/2018 07:55 PM, Reuven Lax wrote: >> > Do we have a good place to track the items for Beam 3.0, or is Jira the >> best >> > place? Romain has a good point - if this gets forgotten when we do Beam >> 3.0, >> > then we're stuck waiting around till Beam 4.0. >> > >> > Reuven >> > >> > On Sun, Feb 4, 2018 at 9:27 AM, Jean-Baptiste Onofré <j...@nanthrax.net >> > <mailto:j...@nanthrax.net>> wrote: >> > >> > That's a good point. In the roadmap for Beam 3, I think it makes >> sense to add a >> > point about this. >> > >> > Regards >> > JB >> > >> > On 02/04/2018 06:18 PM, Eugene Kirpichov wrote: >> > > I think doing a change that would break pipeline update for every >> single user of >> > > Flink and Dataflow needs to be postponed until a next major >> version. Pipeline >> > > update is a very frequently used feature, especially by the >> largest users. We've >> > > had those users get significantly upset even when we accidentally >> broke update >> > > compatibility for some special cases of individual transforms; >> breaking it >> > > intentionally and project-wide is too extreme to be justified by >> the benefits of >> > > the current change. >> > > >> > > That said, I think concerns about coder APIs are reasonable, and >> it is >> > > unfortunate that we effectively can't make changes to them right >> now. It would >> > > be great if in the next major version we were better prepared for >> evolution of >> > > coders, e.g. by having coders support a version marker or >> something like that, >> > > with an API for detecting the version of data on wire and reading >> or writing >> > > data of an old version. Such a change (introducing versioning) >> would also, of >> > > course, be incompatible and would need to be postponed until a >> major version - >> > > but, at least, subsequent changes wouldn't. >> > > >> > > ...And as I was typing this email, seems that this is what the >> thread already >> > > came to! >> > > >> > > On Sun, Feb 4, 2018 at 9:16 AM Romain Manni-Bucau < >> rmannibu...@gmail.com <mailto:rmannibu...@gmail.com> >> > > <mailto:rmannibu...@gmail.com <mailto:rmannibu...@gmail.com>>> >> wrote: >> > > >> > > I like this idea of migration support at coder level. It >> would require to >> > > add a metadata in all outputs which would represent the >> version then coders >> > > can handle the logic properly depending the version - we can >> assume a coder >> > > dev upgrade the version when he breaks the representation I >> hope ;). >> > > With this: no runner impact at all :). >> > > >> > > >> > > Romain Manni-Bucau >> > > @rmannibucau <https://twitter.com/rmannibucau >> > <https://twitter.com/rmannibucau>> | Blog >> > > <https://rmannibucau.metawerx.net/ >> > <https://rmannibucau.metawerx.net/>> | Old Blog >> > > <http://rmannibucau.wordpress.com < >> http://rmannibucau.wordpress.com>> >> > | Github >> > > <https://github.com/rmannibucau < >> https://github.com/rmannibucau>> | >> > LinkedIn >> > > <https://www.linkedin.com/in/rmannibucau >> > <https://www.linkedin.com/in/rmannibucau>> | Book >> > > >> > <https://www.packtpub.com/application-development/java-ee- >> 8-high-performance <https://www.packtpub.com/appl >> ication-development/java-ee-8-high-performance>> >> > > >> > > 2018-02-04 18:09 GMT+01:00 Reuven Lax <re...@google.com >> <mailto:re...@google.com> >> > > <mailto:re...@google.com <mailto:re...@google.com>>>: >> > > >> > > It would already break quite a number of users at this >> point. >> > > >> > > I think what we should be doing is moving forward on the >> snapshot/update >> > > proposal. That proposal actually provides a way forward >> when coders >> > > change (it proposes a way to map an old snapshot to one >> using the new >> > > coder, so changes to coders in the future will be much >> easier to make. >> > > However much of the implementation for this will likely >> be at the runner >> > > level, not the SDK level. >> > > >> > > Reuven >> > > >> > > On Sun, Feb 4, 2018 at 9:04 AM, Romain Manni-Bucau >> > > <rmannibu...@gmail.com <mailto:rmannibu...@gmail.com> >> > <mailto:rmannibu...@gmail.com <mailto:rmannibu...@gmail.com>>> >> wrote: >> > > >> > > I fully understand that, and this is one of the >> reason managing to >> > > solve these issues is very important and ASAP. My >> conclusion is that >> > > we must break it now to avoid to do it later when >> usage will be way >> > > more developped - I would be very happy to be wrong >> on that point - >> > > so I started this PR and this thread. We can postpone >> it but it >> > > would break later so for probably more users. >> > > >> > > >> > > Romain Manni-Bucau >> > > @rmannibucau <https://twitter.com/rmannibucau >> > <https://twitter.com/rmannibucau>> | Blog >> > > <https://rmannibucau.metawerx.net/ >> > <https://rmannibucau.metawerx.net/>> | Old Blog >> > > <http://rmannibucau.wordpress.com >> > <http://rmannibucau.wordpress.com>> | Github >> > > <https://github.com/rmannibucau >> > <https://github.com/rmannibucau>> | LinkedIn >> > > <https://www.linkedin.com/in/rmannibucau >> > <https://www.linkedin.com/in/rmannibucau>> | Book >> > > >> > <https://www.packtpub.com/application-development/java-ee- >> 8-high-performance <https://www.packtpub.com/appl >> ication-development/java-ee-8-high-performance>> >> > > >> > > 2018-02-04 17:49 GMT+01:00 Reuven Lax < >> re...@google.com <mailto:re...@google.com> >> > > <mailto:re...@google.com <mailto:re...@google.com>>>: >> > > >> > > Unfortunately several runners (at least Flink and >> Dataflow) >> > > support in-place update of streaming pipelines as >> a key feature, >> > > and changing coder format breaks this. This is a >> very important >> > > feature of both runners, and we should endeavor >> not to break them. >> > > >> > > In-place snapshot and update is also a top-level >> Beam proposal >> > > that was received positively, though neither of >> those runners >> > > yet implement the proposed interface. >> > > >> > > Reuven >> > > >> > > On Sun, Feb 4, 2018 at 8:44 AM, Romain Manni-Bucau >> > > <rmannibu...@gmail.com <mailto: >> rmannibu...@gmail.com> >> > <mailto:rmannibu...@gmail.com <mailto:rmannibu...@gmail.com>>> >> wrote: >> > > >> > > Sadly yes, and why the PR is actually WIP. As >> mentionned it >> > > modifies it and requires some updates in >> other languages and >> > > the standard_coders.yml file (I didn't find >> how this file >> > > was generated). >> > > Since coders must be about volatile data I >> don't think it is >> > > a big deal to change it though. >> > > >> > > >> > > Romain Manni-Bucau >> > > @rmannibucau <https://twitter.com/rmannibucau >> > <https://twitter.com/rmannibucau>> | Blog >> > > <https://rmannibucau.metawerx.net/ >> > <https://rmannibucau.metawerx.net/>> | Old Blog >> > > <http://rmannibucau.wordpress.com >> > <http://rmannibucau.wordpress.com>> | Github >> > > <https://github.com/rmannibucau >> > <https://github.com/rmannibucau>> | LinkedIn >> > > <https://www.linkedin.com/in/rmannibucau >> > <https://www.linkedin.com/in/rmannibucau>> | Book >> > > >> > <https://www.packtpub.com/application-development/java-ee- >> 8-high-performance <https://www.packtpub.com/appl >> ication-development/java-ee-8-high-performance>> >> > > >> > > 2018-02-04 17:34 GMT+01:00 Reuven Lax < >> re...@google.com <mailto:re...@google.com> >> > > <mailto:re...@google.com <mailto: >> re...@google.com>>>: >> > > >> > > One question - does this change the >> actual byte encoding >> > > of elements? We've tried hard not to do >> that so far for >> > > reasons of compatibility. >> > > >> > > Reuven >> > > >> > > On Sun, Feb 4, 2018 at 6:44 AM, Romain >> Manni-Bucau >> > > <rmannibu...@gmail.com >> > <mailto:rmannibu...@gmail.com> <mailto:rmannibu...@gmail.com >> > <mailto:rmannibu...@gmail.com>>> >> > > wrote: >> > > >> > > Hi guys, >> > > >> > > I submitted a PR on coders to enhance >> 1. the user >> > > experience 2. the determinism and >> handling of >> > coders. >> > > >> > > 1. the user experience is linked to >> what i >> > sent some >> > > days ago: close handling of the >> streams from a >> > coder >> > > code. Long story short I add a >> SkipCloseCoder >> > which >> > > can decorate a coder and just wraps >> the stream >> > > (input or output) in flavors skipping >> close() >> > calls. >> > > This avoids to do it by default >> (which had my >> > > preference if you read the related >> thread but not >> > > the one of everybody) but also makes >> the usage >> > of a >> > > coder with this issue easy since the >> of() of the >> > > coder just wraps itself in this >> delagating coder. >> > > >> > > 2. this one is more nasty and mainly >> concerns >> > > IterableLikeCoders. These ones use >> this kind of >> > > algorithm (keep in mind they work on >> a list): >> > > >> > > writeSize() >> > > for all element e { >> > > elementCoder.write(e) >> > > } >> > > writeMagicNumber() // this one >> depends the size >> > > >> > > The decoding is symmetric so I bypass >> it here. >> > > >> > > Indeed all these writes (reads) are >> done on >> > the same >> > > stream. Therefore it assumes you read >> as much >> > bytes >> > > than you write...which is a huge >> assumption for a >> > > coder which should by contract assume >> it can read >> > > the stream...as a stream (until -1). >> > > >> > > The idea of the fix is to change this >> encoding to >> > > this kind of algorithm: >> > > >> > > writeSize() >> > > for all element e { >> > > writeElementByteCount(e) >> > > elementCoder.write(e) >> > > } >> > > writeMagicNumber() // still optionally >> > > >> > > This way on the decode size you can >> wrap the >> > stream >> > > by element to enforce the limitation >> of the >> > byte count. >> > > >> > > Side note: this indeed enforce a >> limitation due to >> > > java byte limitation but if you check >> coder >> > code it >> > > is already here at the higher level >> so it is not a >> > > big deal for now. >> > > >> > > In terms of implementation it uses a >> > > LengthAwareCoder which delegates to >> another coder >> > > the encoding and just adds the byte >> count >> > before the >> > > actual serialization. Not perfect but >> should >> > be more >> > > than enough in terms of support and >> perf for >> > beam if >> > > you think real pipelines (we try to >> avoid >> > > serializations or it is done on some >> well known >> > > points where this algo should be >> > enough...worse case >> > > it is not a huge overhead, mainly >> just some memory >> > > overhead). >> > > >> > > >> > > The PR is available >> > > at https://github.com/apache/ >> beam/pull/4594 >> > <https://github.com/apache/beam/pull/4594>. If you >> > > check you will see I put it "WIP". >> The main reason >> > > is that it changes the encoding >> format for >> > > containers (lists, iterable, ...) and >> therefore >> > > breaks python/go/... tests and the >> > > standard_coders.yml definition. Some >> help on that >> > > would be very welcomed. >> > > >> > > Technical side note if you >> > > wonder: UnownedInputStream doesn't >> even allow to >> > > mark the stream so there is no real >> fast way >> > to read >> > > the stream as fast as possible with >> standard >> > > buffering strategies and to support >> this automatic >> > > IterableCoder wrapping which is >> implicit. In other >> > > words, if beam wants to support any >> coder, >> > including >> > > the ones not requiring to write the >> size of the >> > > output - most of the codecs - then we >> need to >> > change >> > > the way it works to something like >> that which does >> > > it for the user which doesn't know >> its coder got >> > > wrapped. >> > > >> > > Hope it makes sense, if not, don't >> hesitate to ask >> > > questions. >> > > >> > > Happy end of week-end. >> > > >> > > Romain Manni-Bucau >> > > @rmannibucau < >> https://twitter.com/rmannibucau >> > <https://twitter.com/rmannibucau>> | >> > > Blog <https://rmannibucau.metawerx. >> net/ >> > <https://rmannibucau.metawerx.net/>> | Old Blog >> > > <http://rmannibucau.wordpress.com >> > <http://rmannibucau.wordpress.com>> | Github >> > > <https://github.com/rmannibucau >> > <https://github.com/rmannibucau>> | LinkedIn >> > > <https://www.linkedin.com/in/ >> rmannibucau >> > <https://www.linkedin.com/in/rmannibucau>> | Book >> > > >> > <https://www.packtpub.com/application-development/java-ee- >> 8-high-performance <https://www.packtpub.com/appl >> ication-development/java-ee-8-high-performance>> >> > > >> > > >> > > >> > > >> > > >> > > >> > > >> > >> > -- >> > Jean-Baptiste Onofré >> > jbono...@apache.org <mailto:jbono...@apache.org> >> > http://blog.nanthrax.net >> > Talend - http://www.talend.com >> > >> > >> >> -- >> Jean-Baptiste Onofré >> jbono...@apache.org >> http://blog.nanthrax.net >> Talend - http://www.talend.com >> > >