16.16. 0.8.x Branch

16.16.1. Version 0.8.1-incubating

16.16.1.1. Build and System Integration

  • The couchdb script no longer uses awk for configuration checks as thiswas causing portability problems.
  • Updated sudo example in README to use the -i option, this fixesproblems when invoking from a directory the couchdb user cannot access.

16.16.1.2. Database Core

  • Fix for replication problems where the write queues can get backed up if thewrites aren’t happening fast enough to keep up with the reads. For a largereplication, this can exhaust memory and crash, or slow down the machinedramatically. The fix keeps only one document in the write queue at a time.
  • Fix for databases sometimes incorrectly reporting that they contain 0documents after compaction.
  • CouchDB now uses ibrowse instead of inets for its internal HTTP clientimplementation. This means better replication stability.

16.16.1.3. Futon

  • The view selector dropdown should now work in Opera and Internet Explorereven when it includes optgroups for design documents. (COUCHDB-81)

16.16.1.4. JavaScript View Server

  • Sealing of documents has been disabled due to an incompatibility withSpiderMonkey 1.9.
  • Improve error handling for undefined values emitted by map functions.(COUCHDB-83)

16.16.1.5. HTTP Interface

  • Fix for chunked responses where chunks were always being split into multipleTCP packets, which caused problems with the test suite under Safari, and insome other cases.
  • Fix for an invalid JSON response body being returned for some kinds ofviews. (COUCHDB-84)
  • Fix for connections not getting closed after rejecting a chunked request.(COUCHDB-55)
  • CouchDB can now be bound to IPv6 addresses.
  • The HTTP Server header now contains the versions of CouchDB and Erlang.

16.16.2. Version 0.8.0-incubating

16.16.2.1. Build and System Integration

  • CouchDB can automatically respawn following a server crash.
  • Database server no longer refuses to start with a stale PID file.
  • System logrotate configuration provided.
  • Improved handling of ICU shared libraries.
  • The couchdb script now automatically enables SMP support in Erlang.
  • The couchdb and couchjs scripts have been improved for portability.
  • The build and system integration have been improved for portability.

16.16.2.2. Database Core

  • The view engine has been completely decoupled from the storage engine. Indexdata is now stored in separate files, and the format of the main databasefile has changed.
  • Databases can now be compacted to reclaim space used for deleted documentsand old document revisions.
  • Support for incremental map/reduce views has been added.
  • To support map/reduce, the structure of design documents has changed. Viewvalues are now JSON objects containing at least a map member, andoptionally a reduce member.
  • View servers are now identified by name (for example javascript) instead ofby media type.
  • Automatically generated document IDs are now based on proper UUID generationusing the crypto module.
  • The field content-type in the JSON representation of attachments has beenrenamed to content_type (underscore).

16.16.2.3. Futon

  • When adding a field to a document, Futon now just adds a field with anautogenerated name instead of prompting for the name with a dialog. The nameis automatically put into edit mode so that it can be changed immediately.
  • Fields are now sorted alphabetically by name when a document is displayed.
  • Futon can be used to create and update permanent views.
  • The maximum number of rows to display per page on the database page can nowbe adjusted.
  • Futon now uses the XMLHTTPRequest API asynchronously to communicate with theCouchDB HTTP server, so that most operations no longer block the browser.
  • View results sorting can now be switched between ascending and descending byclicking on the Key column header.
  • Fixed a bug where documents that contained a @ character could not beviewed. (COUCHDB-12)
  • The database page now provides a Compact button to trigger databasecompaction. (COUCHDB-38)
  • Fixed portential double encoding of document IDs and other URI segments inmany instances. (COUCHDB-39)
  • Improved display of attachments.
  • The JavaScript Shell has been removed due to unresolved licensing issues.

16.16.2.4. JavaScript View Server

  • SpiderMonkey is no longer included with CouchDB, but rather treated as anormal external dependency. A simple C program (_couchjs) is provided thatlinks against an existing SpiderMonkey installation and uses the interpreterembedding API.
  • View functions using the default JavaScript view server can now do loggingusing the global log(message) function. Log messages are directed into theCouchDB log at INFO level. (COUCHDB-59)
  • The global map(key, value) function made available to view code has beenrenamed to emit(key, value).
  • Fixed handling of exceptions raised by view functions.

16.16.2.5. HTTP Interface

  • CouchDB now uses MochiWeb instead of inets for the HTTP serverimplementation. Among other things, this means that the extra configurationfiles needed for inets (such as couch_httpd.conf) are no longer used.
  • The HTTP interface now completely supports the HEAD method. (COUCHDB-3)
  • Improved compliance of Etag handling with the HTTP specification.(COUCHDB-13)
  • Etags are no longer included in responses to document GET requests thatinclude query string parameters causing the JSON response to change withoutthe revision or the URI having changed.
  • The bulk document update API has changed slightly on both the request and theresponse side. In addition, bulk updates are now atomic.
  • CouchDB now uses TCP_NODELAY to fix performance problems with persistentconnections on some platforms due to nagling.
  • Including a ?descending=false query string parameter in requests to viewsno longer raises an error.
  • Requests to unknown top-level reserved URLs (anything with a leadingunderscore) now return a unknown_private_path error instead of theconfusing illegal_database_name.
  • The Temporary view handling now expects a JSON request body, where the JSONis an object with at least a map member, and optional reduce andlanguage members.
  • Temporary views no longer determine the view server based on the Content-Typeheader of the POST request, but rather by looking for a language memberin the JSON body of the request.
  • The status code of responses to DELETE requests is now 200 to reflect thatthat the deletion is performed synchronously.

原文: http://docs.couchdb.org/en/stable/whatsnew/0.8.html