By: Will Holley
Published: 13 July 2017
I'm happy to announce the release of PouchDB 6.3.0, bringing in a number of important features and fixes. For a full changelog from 6.2.0 to 6.3.0 please see the releases page. Some of the highlights:
Option to disable checkpoints
This adds a new checkpoint
option to replication which allows you to disable checkpoints on the source, target, or both. Disabling remote checkpoints is a potential performance optimisation, at the risk of a local checkpoint becoming invalid if the remote database is moved or recreated. You may also want to disable remote checkpoint if the source database is read-only.
Force update
This allows you to pass an option force: true
when updating a single document to allow the update to be applied to a non-leaf revision.
Replacing uuid function with node-uuid
The existing UUID generation was not as random as it should be, leading to UUID conflicts when large numbers of documents are generated by PouchDB clients. This change replaces the custom UUID generation with node-uuid, improving the entropy.
pouchdb-find behaviour compatibility with CouchDB
The pouchdb-find plugin now supports _explain
, use_index
and the $allMatch
operator (already available in CouchDB).
Validate _changes timing parameters
We now validate the timeout and heartbeat parameters when calling remote _changes
to ensure that clients don't timeout prematurely. This also prevents expected timeouts (i.e. the server closing the connection after the timeout parameter) from manifesting as an error and triggering the PouchDB backoff/retry logic, which should improve continuous replication responsiveness when there have been long periods (minutes) without any changes.
Full changelog
New features
- #6565 - Replacing uuid function with node-uuid
- #5490 - Include doc ID in conflict errors
- #6308 - Add option to disable checkpoints
- #6529 - Include doc ID in 404 (not_found) errors for IDB adapter
- #5832 - Force update
- #6452 - Add support for use_index in pouchdb-find
- #6495 - Add explain endpoint for pouchdb-find
- #6443 - Add $allMatch support for pouchdb-find
Bug fixes and performance improvements
- #6510 - validate _changes timing parameters
- #6545 - throw Errors, not Strings
- #6504 - fix possible "EventEmitter memory leak detected"
- #5981 - ensure
close()
doesn't blockdestroyed
events - #6472 - pouchdb-find: don't return design docs with
all_docs
index - #6458 - consistent error handling for mapreduce
Get in touch
As always, we welcome feedback from the community and would love to hear what you think of this release as well as PouchDB's future direction. Please don't hesitate to file issues or get in touch. And of course, a big thanks to all of our new and existing contributors!