couchdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Benoit Chesneau <bchesn...@gmail.com>
Subject Re: Migration Strategy [was Re: Git Repository Creation]
Date Wed, 22 Jan 2014 13:54:07 GMT
I am +1 in the order of priorities. Some comments bellow.


On Wed, Jan 22, 2014 at 2:13 PM, Dave Cottlehuber <dch@jsonified.com> wrote:

> On 22. Jänner 2014 at 12:42:03, Robert Samuel Newson (rnewson@apache.org)
> wrote:
> >
> > Benoit,
> >
> > Cloudant requires R14 support, it would mean our contribution
> > to couchdb becomes useless to us and we could not contribute further.
> >
> > B.
> > ...
> > >>> wrote:
> > >>>> On Tue, Jan 21, 2014 at 3:25 PM, Robert Samuel Newson <
> > >>> rnewson@apache.org>wrote:
> > >>>>
> > >>>>> Definitely need to preserve R14 compatibility, that’s
> > still the most
> > >>>>> stable recent series (as long as you don’t use R14B02)…
> > >>>>>
> > >>>>
> > >>>>
> > >>>> I disagree. R14 hasn't been updated since more than 2 years,
> > and isn't a
> > >>>> supported version by the Erlang community, R17 will be out
> > sometimes
> > >>> during
> > >>>> the spring. Latest versions added many fixes to SSL, improved
> > the
> > >>>> scheduling and memory usage, the NIF support and added a
> > lot of
> > >>>> improvements to the binary API. Also latest stables version
> > of different
> > >>>> distributions don't have any R14 any more (even RHEL).
> > …
>
> Hopefully I captured all the key points here;
>
> TL;DR I suggest we:
>
> - finish merges as a priority
> - ship a merged release that still supports R14B*
> - track things that need newer OTP in a JIRA ticket & deal with them after
> merge release
> - resolve aged distro problems with ESL packages & OTP releases in future
>
> There are alternatives, obviously to this, such as running 2 separate
> branches
> (2.x cluster, and 1.x feature non-clustered) for a while but that feels
> too heavy
> for the project to me.
>
> Have I missed anything, does this work for everybody? Any better
> approaches?
>
> ## Project Priorities
>
> 1. We are in the middle of major merging. Let’s finish that first. Unless
> I’ve missed something, all current code in the tree (rcouch + bigcouch +
> couch couch)
> is still R14B* compatible.
>
>
I am unsure about R14 compatibility of anything I wrote recently and it
probably isn't for some stuff, we had to raise the requirements last year
due to incompatibilities issues in rcouch. I will try to check. need to
find an R14 release somewhere first.



> ## OTP Compatibility & support
>
> 2. R14 is going to hold both the project & users like Cloudant back sooner
> or later
>         via dependencies e.g. mochiweb
>         via functionality in core OTP e.g. SSL improvements, native JSON
> parsing & maps
>         via bug fixes (lots wrt to Windows in R15+, or unix TCP socket
> support)
>
> Specifically for mochiweb (and websocket support as the interesting
> feature) I suspect
> this could be patchable to work on R14B04.
>

Sure we can patch anything. But that imply to maintain a fork, The question
is not as innocent as it seems and should be answered. I personally dislike
having to maintain a fork. How do we keep updated the fork? How do we
maintain the versioning against upstream?

Also is maintaining a fork the real solution compared to adapt our code to
work with latest releases and keep the stability?


>
> 3. R15* & at least R16B01 and under are still prone to scheduler collapse.
> I am not sure if the
> “+st <msecs> " hack in R16B02+ eases the pain or not, nor how badly this
> impacts heavy
> CouchDB users. This is the “wake up all schedulers every <milliseconds> to
> prevent collapse"
> issue. Read Scott Fritchie’s threads in Erlang-Questions [1] for details &
> erl man[2].
>
>
Mmm the link you refer say it is still better than in R14. Anyway this is
the right path to follow, we should collect any issues we have in mind in
using latest supported versions of Erlang and see how it impact us.



> 4. Distros range from bleeding (arch, gentoo etc) to decaying (LTS Ubuntu,
> Centos etc). I
> think the general feeling (not quite a consensus) is that you can work
> around this by
> installing a current Erlang/OTP for most systems from Erlang Solutions,
> and you’re done.
> To me this feels like a release notes issue, not one we should be using as
> a reason to
> hold back progress. IMO post merges this will also be resolved as erlang
> releases can
> be generated.
>
> Are there any other points to be considered?
>


How long do we want to support R14? How to decide to stop its support? We
need a check-list.
How to support coming R17? Do we want it?
In a world where we have couchdb spitted in multiple repository and
embeddable in other Erlang applications, do we really want to force users
to use our own forked repository? How to make sure they can eventually
switch to the upstream one?

- benoit

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message