On Thursday, June 18, 2015, Jan Lehnardt <j...@apache.org> wrote: > > > On 17 Jun 2015, at 17:50, Jan Lehnardt <j...@apache.org <javascript:;>> > wrote: > > > > Hey all, > > > > Alexander, Bob and I had a bit of a brainstorming session today on what > is missing to get 2.0 out the door. We talked about missing features and > what to do about them. The following notes is what we think is best, but of > course, these are just suggestions and we’d love your feedback! Especially > on the TBD items. > > > > The notes are dense, let us know if you have any questions or need any > clarification :) > > > > * * * > > > > # Missing Features > > > > ## Availble in 1.x but missing in 2.x > > > > - [X] vhosts: Done. > > > > - [X] /_config on :5984 > > - no cluster wide config > > - per-node config can be set from any node: > > - only expose /_node_config/<node-fqdn>/<section>/<key> > > - first stab of this already in master > > - Fauxton to offer “tabbed” interface for per-cluster config view > > - post 2.0, if we find a backing store that would give us a > cluster-consistent :5984/_config/section/key, we can enable that. > > > > > > - [X]: /_stats on :5984 > > - same as with /_config: > > - /_node_stats/<fqdn>/<etc> > > > Updates on _node_config and _node_stats > > We will now propose /_node/<fqdn>/_config and /_node/<fqdn>/_stats with > the option of adding more endpoints there, later. > > The rest stays as is.
+1 -Russell > > Best > Jan > -- > > > > > > > - [X] dynamic http endpoint configuration for :5984 > > - integrate Cloudant’s work that allows for erlang applications to > register their own routes in a priv/ file. Adding a route is done by adding > an app, changing a route is by updating an app and its priv/ file > > - /_config can be used to disable endpoints > > - TBD: what if two applications define the same endpoint? Options: > > - undefined > > - offending app doesn’t load > > - server doesn’t start / stops > > - define that endpoints can’t be overwritten, define strict sort > order for loading, load core apps preferred to ensure working node + > *handwaving* > > > > > > - [X] externals & proxy > > - keep both for 2.0 > > - add to chttpd routes loading: > > - 1. load all application routes > > - 2. load [external] and [proxy] routes > > - 3. listen to [external] and [proxy] config changes and adjust route > map at runtime > > > > > > - [X] logging configuration of level & file & apps ( > http://docs.couchdb.org/en/latest/config/logging.html) > > - dynamic configuration of the log file won’t be possible anymore, > because lager works differently > > - since the configuration for lager is more comprehensive, 1.x-style > configuration is no longer possible > > - TBD: however, it is possible to set the log level at runtime. Two > options: > > - setting /_config/log:backend/level to <logatom> / couch_log > listens to config updates and calls > https://github.com/basho/lager#runtime-loglevel-changes > > - new endpoint, e.g. PUT /_log/backend/<logatom> > > - log atoms change, mark as BC break > > > > > > - [X] rewrites (?) > > - keep, should just work > > > > > > - [X] documentation > > - we have (or will have soon): API docs, upgrade/migration guides / new > features > > - we *don’t* have: how the cluster works (dynamo + couch specific > details) > > - needs help! > > > > - [X ] build script > > - finish unix version (Jan) > > - integrate with Mac app (Jan) > > - TBD: Windows > > - Can Nick North help? > > - maybe ship 2.0 with experimental Windows, since the code has > never run on Windows(?) > > > > > > ## Missing in 2.x > > > > - [X] single node mode > > - “single node mode” just means “cluster of one” > > - the chttp-layer might be slower than couch_httpd, if so, we have good > incentives to make this fast. > > - going from 1.x to 2.x-single-node will requires changes in how an app > uses the CouchDB API (as per our Breaking Changes documentation). > > - :5986 is 127.0.0.1-only and strongly discouraged for general use, ops > folks might want to use it. > > > > > > - [X] add/remove nodes, cluster rebalance > > - add/remove node needs documentation > > - rebalancing: > > - tool to help figure out what needs doing > > - might be ready by 2.0, post 2.0 otherwise > > > > * * * > > > > Best > > Jan > > -- > > > > -- > Professional Support for Apache CouchDB: > http://www.neighbourhood.ie/couchdb-support/ > >