davisp opened a new pull request #495: Couchdb 3288 mixed cluster upgrade
URL: https://github.com/apache/couchdb/pull/495
 
 
   ## Overview
   
   This is preparatory work for adding pluggable storage engines. The 
motivation for this ground work is to enable users to perform rolling reboots 
of clusters. As such there are a few things that need to change to make that 
happen.
   
   1. Remove the public definition of `#db{}`
   2. Add a new fabric_rpc:create_db/2 that accepts an options list
   3. Create a template of the new `#db{}` for forwards compatibility
   
   The removal of the `#db{}` definition is what's responsible for 99% of these 
changes. And while there is a decent amount of code churn here its nearly all 
quite straightforward changes from `Db#db.name` to `couch_db:name(Db)` type 
changes so theoretically this should be a pretty quick review.
   
   The only somewhat difficult bits are when we were matching a `#db{}` record 
in a function head. For the most part this was just to extract fields from the 
record so those are easily reviewed. Though there are a few cases in the 
replicator that were using it to tell the different between `#db{}` and 
`#httpd{}`. For those we have to switch the order of clauses to pull out the 
`#httpd{}` logic first.
   
   
   ## Testing recommendations
   
   There's no behavior changes so the existing test suite covers the existing 
logic.
   
   ## JIRA issue number
   
   https://issues.apache.org/jira/browse/COUCHDB-3288
   
   ## Related Pull Requests
   
   I'm going to open a PR for COUCHDB-3287 which is the main PSE work that will 
be asking to merge into this PR. This is purely for the sake of review-ability. 
When we go to merge these we'll merge this PR first, and then merge 3287 into 
master. I expect the review of this work to take at least a couple weeks since 
it is quite a large change to the core bit of the database.
   
   ## Checklist
   
   - [ ] Code is written and works correctly;
   - [ ] Changes are covered by tests;
   - [ ] Documentation reflects the changes;
   
 
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


With regards,
Apache Git Services

Reply via email to