couchdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dave Cottlehuber <...@jsonified.com>
Subject Migration Strategy [was Re: Git Repository Creation]
Date Wed, 22 Jan 2014 13:13:19 GMT
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.

## 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.

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].

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?

[1]: http://erlang.org/pipermail/erlang-questions/2013-April/073491.html
[2]: http://www.erlang.org/doc/man/erl.html

A+
Dave



Mime
View raw message