On Wed, 05 Nov 2008 12:46:27 +0100
Emmanuel Lecharny <[EMAIL PROTECTED]> wrote:

> Julien Vermillard wrote:
> > Hi Norval,
> >   
> Hi Julien, Norval,
> 
> more comments inline...
> > On Wed, 5 Nov 2008 11:39:00 +1100
> > "Norval Hope" <[EMAIL PROTECTED]> wrote:
> >
> > <snip the comment on the impenetrable code ;) />
> >> Hence I think the API is definitely in urgent need of
> >> simplification, and my usual expectation is that APIs are tidied
> >> up at major release boundaries. Personally I'd be much happier
> >> with a Mina 2.0 with a much simplified API - although I'm not
> >> using pre-release versions in production and therefore don't have
> >> some of the logistical concerns that others apparently do.
> >>     
> >
> > IMO 2.0 API is better than 1.0 one,
> Most certainly, yes. Switching to MINA 2 from MINA 1 was a piece of 
> cake, if you consider the deep changes made in the API. It took me 2 
> days to had ADS working with MINA 2 (but I must admit I spent almost
> 2 weeks working on a small sample to be sure I won't FU ADS
> completely doing so - of course, it was not full time ! -)
> 
> The current API, from an external POV (ie : if you don't have to
> delve into the code to debug it, as I had to do), is pretty OK. You
> can really build a quick and working client/server system based on
> MINA 2.
> >  the problem is mainly the internals.
> >   
> Damn yes !
> > Only the fitlerchain API is kludgy, and the IoFilter messageSent is
> > really problematic from a user POV.
> Well, I also have deep concern about the IoBuffer, which is, IMHO, a 
> massive design error (excuse me for expressing my vocal opinion). And 
> there are other areas which are really problematic : throttling 
> management, all those Future everywhere, the IdleThread, inconsistent 
> Filters implementations, and a few more, including the almost 
> undocumented choices done.
> >  Just see the "Hey release soon
> > or now" calls from peoples who never lost 2 or 3 day digging in the
> > internal for simple issues. 
> Ok, let's phrase it differenlty, because many has expressed a very
> valid opinion about this 'release often, release fast' moto, and they
> _have_ spent days digging into the code. At some point, I must say
> that I'm really balancing between the need for a better 2.0 and the
> fact that all those changes could also be done more easily in a 3.0.
> 
> This is certainly not a technical discussion, but much more a 
> 'political' one : if we release a 2.0 soon (and I see no reason to 
> postpone beyond end of this year a 2.0 final, which means we should
> then go for a RC1 by the end of nov), then we will have users, and
> bug reports, and fixes, and minor versions. Plus we will have more
> users telling us 'hey, why the hell are you chaning the API in
> 3.0 ???'. OTOH, if we postpone 2.0 to include the current
> modifications, then I think it's a 6 months delay, at least,
> something we may not want to accept.
> 
> I guess that it worth a vote at this point ...
> > If you look at 2.0 for exterior, it's
> > looking OK and stable.
> >   
> Almost true. Let's say it's usable. Not very performant, but usable. 
> (btw, I would like to know if we have some gain against MINA 1.0 at
> this point, and if so, how much ?)

The last test I did 2.0 was much faster (read x2) than 1.1.7, I wait
for ADS first results :)

> > But the first serious bug report about core behaviour, I know
> > exactly what is going to happen... you spend a whole weekend
> > stepping in your debugger deciphering T legacy. I did it for
> > https://issues.apache.org/jira/browse/DIRMINA-609
> > cost me 2 days of vacations.
> >   
> Working on an ASF project is a pleasure :) You didn't lost two days
> of vacations, you just enjoyed two days fishing for nasty bugs ;)
> 
> Seriously, I understand and share your concern on that. I spent one
> full day trying to understand why we were loosing messages with MINA
> 2.0 until I found a nasty bug in the new version of
> ProtocolCodecFilter... But, hey, sh*t happens ! Bugs are bugs.

Yes bug hunting is part of the job, but deciphering code isn't really.
I won't explain that to you who dive everyday in the pile of dirt :)

> >   
> >> I don't know how much I represent the "possible users of MINA" and
> >> therefore whether my opinion is of any interest, but to summarize
> >> my thoughts:
> >>   1. I would definitely not use the Mina API directly without the
> >> proposed simplifications
> >>   2. I would definitely not wait a year for such an API if I had a
> >> need for one.
> >>
> >> I'm not familiar enough with the Mina nuts and bolts to speak to
> >> how much has changed between Mina 1.1.7 and the current code, but
> >> would it makes sense to to release the current 2.0 code as a 1.2
> >> (or 1.5) minor release, or:
> >>     
> >
> > Who is really familiar enough with MINA 2.0 nuts & bolts ? Even Emm
> > who is swimming in the core for few weeks is still having trouble
> > with some part of the code.
> >   
> This is also a pb : we should have been more involved in the code.
> I'm suffering because I didn't spent enough time in the past to get
> involved and avoid such a situation. As a PMC, I feel responsible for
> that.

We are all responsible, and me a bit more cause I should have pushed
more when the issues with T was raised, but it's past now. We are
going to pay our debts today :)

> >   
> >>   1. has the API already changed enough to break backward
> >> compatibility even without Emmanuel's proposed simplifications?
> >>     
> Switching from 1.0 to 2.0 is not a free ride, that's for sure. But
> it's not a real pain too. We have refactored the core package,
> splitting the hundred classes into more specific packages, and the
> ByteBuffer class has been renamed IoBuffer. But as you are using MINA
> 1 inside an ADS-patched server, and as I'm almost done with the MINA
> 1 -> 2 migration, this should not be a burden for you.
> 
> PS : I did this migration because this was on our roadmap, and also 
> because we wanted to fix the OOM problem you found. I think that I
> have a solid solution for this problem, but we will discuss that on
> the ADS ML.
> >>   2. is an extra release too much additional work.
> >>     
> Releasing is easy. usually, a day of work. But then, if we have to
> start a 3.0 just after this release, we will have to refactor the
> site, write some migration guides, etc. Costly ...

Yes a release is 1/2 day for M or RC, for a .0 we need more
announcement, so it's 1 day or 2.

Julien

Attachment: signature.asc
Description: PGP signature

Reply via email to