Well done Joan.

On 7 August 2017 at 21:47, William Edney <bed...@technicalpursuit.com>
wrote:

> Congrats to all, but especially to Joan whose hard work and undying
> persistence made this release happen!
>
> As a "basic" user of CouchDB, this release fixed a number of bugs for me
> and is going to allow me to use the Couch 2.X series for my clients and
> company. If there's ever any doubt to anyone on the committer team that
> your efforts make an impact, let me put that to rest - this release is
> making a huge difference for me!
>
> Cheers,
>
> - Bill
>
> On Mon, Aug 7, 2017 at 2:14 PM, Benjamin Anderson <b...@banjiewen.net> wrote:
>
> > > but a big and special thanks to Joan Touzet who made it her mission to
> > get this done and succeeded.
> >
> > Indeed. Thanks, Joan!
> >
> > --
> > b
> >
> > On Mon, Aug 7, 2017 at 11:53 AM, Robert Samuel Newson
> > <rnew...@apache.org> wrote:
> > >
> > > Thanks to everyone for the amazing efforts exerted to get here but a
> big
> > and special thanks to Joan Touzet who made it her mission to get this
> done
> > and succeeded.
> > >
> > > Best,
> > > B.
> > >
> > >> On 7 Aug 2017, at 19:09, Joan Touzet <woh...@apache.org> wrote:
> > >>
> > >> Dear community,
> > >>
> > >> Apache CouchDB 2.1.0 has been released and is available for
> > >> download.
> > >>
> > >> CouchDB is a database that completely embraces the web. Store your
> data
> > >> with JSON documents. Access your documents with your web browser, via
> > >> HTTP. Query, combine, and transform your documents with JavaScript.
> > >> CouchDB works well with modern web and mobile apps. You can distribute
> > >> your data, efficiently using CouchDB’s incremental replication.
> CouchDB
> > >> supports master-master setups with automatic conflict detection.
> > >>
> > >> CouchDB comes with a suite of features, such as on-the-fly document
> > >> transformation and real-time change notifications, that make web
> > >> development a breeze. It even comes with an easy to use web
> > >> administration console, served directly out of CouchDB! We care a lot
> > >> about distributed scaling. CouchDB is highly available and partition
> > >> tolerant, but is also eventually consistent. And we care a lot about
> > >> your data. CouchDB has a fault-tolerant storage engine that puts the
> > >> safety of your data first.
> > >>
> > >> Download your copy here:
> > >>
> > >>    https://couchdb.apache.org/#download
> > >>
> > >> Pre-built convenience binaries for Windows, macOS, Debian/Ubuntu and
> > >> RHEL/CentOS are available.
> > >>
> > >> CouchDB 2.1.0 is a feature release, and was originally published on
> > >> 2017-08-07.
> > >>
> > >> The community would like to thank all contributors for their part in
> > >> making this release, from the smallest bug report or patch to major
> > >> contributions in code, design, or marketing, we couldn’t have done it
> > >> without you!
> > >>
> > >> The release notes follow. A formatted version of them can be viewed
> > >> at http://docs.couchdb.org/en/2.1.0/whatsnew/2.1.html
> > >>
> > >> On behalf of the CouchDB PMC,
> > >> Joan Touzet
> > >>
> > >> ---
> > >>
> > >> Version 2.1.0
> > >>
> > >>    The Mango _find endpoint supports a new combination operator,
> > $allMatch, which matches and returns all documents that contain an array
> > field with all its elements matching all the specified query criteria.
> > >>
> > >>    New scheduling replicator. The core of the new replicator is a
> > scheduler which allows running a large number of replication jobs by
> > switching between them, stopping some and starting others periodically.
> > Jobs which fail are backed off exponentially. There is also an improved
> > inspection and querying API: _scheduler/jobs and _scheduler/docs:
> > >>        _scheduler/jobs : This endpoint shows active replication jobs.
> > These are jobs managed by the scheduler. Some of them might be running,
> > some might be waiting to run, or backed off (penalized) because they
> > crashed too many times. Semantically this is somewhat equivalent to
> > _active_tasks but focuses only on replications. Jobs which have completed
> > or which were never created because of malformed replication documents
> will
> > not be shown here as they are not managed by the scheduler. _replicate
> > replications, started form _replicate endpoint not from a document in a
> > _replicator db, will also show up here.
> > >>        _scheduler/docs : This endpoint is an improvement on having to
> > go back and read replication documents to query their state. It
> represents
> > the state of all the replications started from documents in _replicator
> db.
> > Unlike _scheduler/jobs it will also show jobs which have failed or have
> > completed.
> > >>
> > >>    By default, scheduling replicator will not update documents with
> > transient states like triggered or error anymore, instead _scheduler/docs
> > API should be used to query replication document states.
> > >>
> > >> Other scheduling replicator improvements
> > >>
> > >>        Network resource usage and performance was improved by
> > implementing a shared connection pool. This should help in cases of a
> large
> > number of connections to the same sources or target. Previously
> connection
> > pools were shared only withing a single replication job.
> > >>        Improved request rate limit handling. Replicator requests will
> > auto-discover rate limit capacity on targets and sources based on a
> proven
> > Additive Increase / Multiplicative Decrease feedback control algorithm.
> > >>        Improved performance by having exponential backoff for all
> > replication jobs failures. Previously there were some scenarios were
> > failure led to continuous repeated retries, consuming CPU and disk
> > resources in the process.
> > >>        Improved recovery from long but temporary network failure.
> > Currently if replications jobs fail to start 10 times in a row, they will
> > not be retried anymore. This is sometimes desirable, but in some cases,
> for
> > example, after a sustained DNS failure which eventually recovers,
> > replications reach their retry limit, stop retrying and never recover.
> > Previously it required user intervention to continue. Scheduling
> replicator
> > will never give up retrying a valid scheduled replication job and so it
> > should recover automatically.
> > >>        Better handling of filtered replications. Failing user filter
> > code fetches from the source will not block replicator manager and stall
> > other replications. Failing filter fetches will also be backed off
> > exponentially. Another improvement is when filter code changes on the
> > source, a running replication will detect that and restart itself with a
> > new replication ID automatically.
> > >>
> > >> The 2.1.0 release also includes the following minor improvements:
> > >>
> > >>    COUCHDB-1946: Hibernate couch_stream after each write (up to 70%
> > reduction in memory usage during replication of DBs with large
> attachments)
> > >>    COUCHDB-2964: Investigate switching replicator manager change feeds
> > to using “normal” instead of “longpoll”
> > >>    COUCHDB-2988: (mango) Allow query selector as changes and
> > replication filter
> > >>    COUCHDB-2992: Add additional support for document size
> > >>    COUCHDB-3046: Improve reduce function overflow protection
> > >>    COUCHDB-3061: Use vectored reads to search for buried headers in
> > .couch files. “On a modern linux system with SSD, we see improvements up
> to
> > 15x.”
> > >>    COUCHDB-3063: “stale=ok” option replaced with new “stable” and
> > “update” options.
> > >>    COUCHDB-3180: Add features list in the welcome message
> > >>    COUCHDB-3203: Make auth handlers configurable (in ini files)
> > >>    COUCHDB-3234: Track open shard timeouts with a counter instead of
> > logging
> > >>    COUCHDB-3242: Make get view group info timeout in couch_indexer
> > configurable
> > >>    COUCHDB-3249: Add config to disable index all fields (text indexes)
> > >>    COUCHDB-3251: Remove hot loop usage of filename:rootname/1
> > >>    COUCHDB-3284: 8Kb read-ahead in couch_file causes extra IO and
> > binary memory usage
> > >>    COUCHDB-3298: Optimize writing btree nodes
> > >>    COUCHDB-3302: (Improve) Attachment replication over low bandwidth
> > network connections
> > >>    COUCHDB-3307: Limit calls to maybe_add_sys_db_callbacks to once per
> > db open
> > >>    COUCHDB-3318: bypass couch_httpd_vhost if there are none
> > >>    COUCHDB-3323: Idle dbs cause excessive overhead
> > >>    COUCHDB-3324: Introduce couch_replicator_scheduler
> > >>    COUCHDB-3337: End-point _local_docs doesn’t conform to query params
> > of _all_docs
> > >>    COUCHDB-3358: (mango) Use efficient set storage for field names
> > >>    COUCHDB-3425: Make _doc_ids _changes filter fast-path limit
> > configurable
> > >>    #457: TeX/LaTeX/texinfo removed from default docs build chain
> > >>    #469: (mango) Choose index based on fields match
> > >>    #483: couchup database migration tool
> > >>    #582: Add X-Frame-Options support to help protect against
> > clickjacking
> > >>    #593: Allow bind address of 127.0.0.1 in _cluster_setup for single
> > nodes
> > >>    #624: Enable compaction daemon by default
> > >>    #626: Allow enable node decom using string “true”
> > >>    (mango) Configurable default limit, defaults to 25.
> > >>    (mango) _design documents ignored when querying _all_docs
> > >>    (mango) add $allMatch selector
> > >>    Add local.d/default.d directories by default and document
> > >>    Improved INSTALL.* text files
> > >>
> > >> Fixed Issues
> > >>
> > >> The 2.1.0 release includes fixes for the following issues:
> > >>
> > >>    COUCHDB-1447: X-Couch-Update-NewRev header is missed if custom
> > headers are specified in response of _update handler (missed in 2.0
> merge)
> > >>    COUCHDB-2731: Authentication DB was not considered a system DB
> > >>    COUCHDB-3010: (Superceded fix for replication exponential backoff)
> > >>    COUCHDB-3090: Error when handling empty “Access-Control-Request-
> Headers”
> > header
> > >>    COUCHDB-3100: Fix documentation on require_valid_user
> > >>    COUCHDB-3109: 500 when include_docs=true for linked documents
> > >>    COUCHDB-3113: fabric:open_revs can return {ok, []}
> > >>    COUCHDB-3149: Exception written to the log if db deleted while
> there
> > is a change feed running
> > >>    COUCHDB-3150: Update all shards with stale=update_after
> > >>    COUCHDB-3158: Fix a crash when connection closes for _update
> > >>    COUCHDB-3162: Default ssl settings cause a crash
> > >>    COUCHDB-3164: Request fails when using _changes?feed=eventsource&
> > heartbeat=30000
> > >>    COUCHDB-3168: Replicator doesn’t handle well writing documents to a
> > target db which has a small max_document_size
> > >>    COUCHDB-3173: Views return corrupt data for text fields containing
> > non-BMP characters
> > >>    COUCHDB-3174: max_document_size setting can by bypassed by issuing
> > multipart/related requests
> > >>    COUCHDB-3178: Fabric does not send message when filtering lots of
> > documents
> > >>    COUCHDB-3181: function_clause error when adding attachment to doc
> in
> > _users db
> > >>    COUCHDB-3184: couch_mrview_compactor:recompact/1 does not handle
> > errors in spawned process
> > >>    COUCHDB-3193: fabric:open_revs returns multiple results when one of
> > the shards has stem_interactive_updates=false
> > >>    COUCHDB-3199: Replicator VDU function doesn’t acount for an already
> > malformed document in replicator db
> > >>    COUCHDB-3202: (mango) do not allow empty field names
> > >>    COUCHDB-3220: Handle timeout in _revs_diff
> > >>    COUCHDB-3222: (Fix) HTTP code 500 instead of 400 for invalid key
> > during document creation
> > >>    COUCHDB-3231: Allow fixing users’ documents (type and roles)
> > >>    COUCHDB-3232: user context not passed down in fabric_view_all_docs
> > >>    COUCHDB-3238: os_process_limit documentation wrong
> > >>    COUCHDB-3241: race condition in couch_server if delete msg for a db
> > is received before open_result msg
> > >>    COUCHDB-3245: Make couchjs -S option take effect again
> > >>    COUCHDB-3252: Include main-coffee.js in release artifact (broken
> > CoffeeScript view server)
> > >>    COUCHDB-3255: Conflicts introduced by recreating docs with
> > attachments
> > >>    COUCHDB-3259: Don’t trap exits in couch_file
> > >>    COUCHDB-3264: POST to _all_docs does not respect conflicts=true
> > >>    COUCHDB-3269: view response can ‘hang’ with filter and limit
> > specified
> > >>    COUCHDB-3271: Replications crash with ‘kaboom’ exit
> > >>    COUCHDB-3274: eof in couch_file can be incorrect after error
> > >>    COUCHDB-3277: Replication manager crashes when it finds _replicator
> > db shards which are not part of a mem3 db
> > >>    COUCHDB-3286: Validation function throwing unexpected json crashes
> > with function_clause
> > >>    COUCHDB-3289: handle error clause when calling fabric:open_revs
> > >>    COUCHDB-3291: Excessively long document IDs prevent replicator from
> > making progress
> > >>    COUCHDB-3293: Allow limiting length of document ID (for CouchDB
> > proper)
> > >>    COUCHDB-3305: (mango) don’t crash with invalid input to built in
> > reducer function
> > >>    COUCHDB-3362: DELETE attachment on non-existing document creates
> the
> > document, rather than returning 404
> > >>    COUCHDB-3364: Don’t crash compactor when compacting process fails.
> > >>    COUCHDB-3367: Require server admin user for db/_compact and
> > db_view_cleanup endpoints
> > >>    COUCHDB-3376: Fix mem3_shards under load
> > >>    COUCHDB-3378: Fix mango full text detection
> > >>    COUCHDB-3379: Fix couch_auth_cache reinitialization logic
> > >>    COUCHDB-3400: Notify couch_index_processes on all shards when ddoc
> > updated
> > >>    COUCHDB-3402: race condition in mem3 startup
> > >>    #511: (mango)  Return false for empty list
> > >>    #595: Return 409 to PUT attachment with non-existent rev
> > >>    #623: Ensure replicator _active_tasks entry reports recent pending
> > changes value
> > >>    #627: Pass UserCtx to fabric’s all_docs from mango query
> > >>    #631: fix couchdb_os_proc_pool eunit timeouts
> > >>    #644: Make couch_event_sup:stop/1 synchronous
> > >>    #645: Pass db open options to fabric_view_map for _view and _list
> > queries on _users DB
> > >>    #648: Fix couch_replicator_changes_reader:process_change
> > >>    #649: Avoid a race when restarting an index updater
> > >>    #667: Prevent a terrible race condition
> > >>    #677: Make replication filter fetch error for _replicate return a
> 404
> > >>    Fix CORS max_age configuration parameter via Access-Control-Max-Age
> > >>    Chunk missing revisions before attempting to save on target
> > (improves replication for very conflicted, very deep revision tree
> > documents)
> > >>    Allow w parameter for attachments
> > >>    Return “Bad Request” when count in /_uuids exceeds max
> > >>    Fix crashes when replicator db is deleted
> > >>    Skip internal replication if changes already replicated
> > >>    Fix encoding issues on _update/../doc_id and PUT attachments
> > >>
> > >> Upgrade Notes
> > >>
> > >>    The deprecated (and broken) OAuth 1.0 implementation has been
> > removed.
> > >>    If user code reads or manipulates replicator document states,
> > consider using the [replicator] update_docs = true compatibility
> parameter.
> > In that case replicator will continue updating documents with transient
> > replication states. However, that will incure a performance cost.
> Consider
> > instead switching using _scheduler/docs HTTP endpoint.
> > >>    The stale parameter for views and _find has been deprecated in
> > favour of two new parameters: stable and update. The old stale=ok
> behaviour
> > is equivalent to stable=true&update=false, and the old stale=update_after
> > behaviour is equivalent to stable=true&update=lazy. The deprecated stale
> > parameter will be removed in CouchDB 3.0.
> > >>    The [couchdb] max_document_size configuration parameter was renamed
> > to [httpd] max_http_request_size to reflect its actual implementation. It
> > has been enhanced by a new [couchdb] single_max_doc_size setting. Both
> are
> > documented in the shipped default.ini file.
> > >
> >
>


John Le Brasseur

Reply via email to