janl commented on a change in pull request #471: [WIP] 3.0.0 relnotes
URL: 
https://github.com/apache/couchdb-documentation/pull/471#discussion_r368053154
 
 

 ##########
 File path: src/whatsnew/3.0.rst
 ##########
 @@ -0,0 +1,398 @@
+.. Licensed under the Apache License, Version 2.0 (the "License"); you may not
+.. use this file except in compliance with the License. You may obtain a copy 
of
+.. the License at
+..
+..   http://www.apache.org/licenses/LICENSE-2.0
+..
+.. Unless required by applicable law or agreed to in writing, software
+.. distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+.. WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+.. License for the specific language governing permissions and limitations 
under
+.. the License.
+
+.. _release/3.0.x:
+
+============
+3.0.x Branch
+============
+
+.. contents::
+    :depth: 1
+    :local:
+
+.. _release/3.0.x/upgrade:
+
+Upgrade Notes
+=============
+
+.. rst-class:: open
+
+* :ghissue:`2228`: The default maximum document size has been reduced to 8MB. 
This means
+  that databases with larger documents will not be able to replicate into 
CouchDB 3.0
+  correctly without modification. This change has been made in preparation for
+  anticipated hard upper limits on document size imposed by CouchDB 4.0. For 
3.x,
+  the max document size setting can be relaxed via the ``[couchdb] 
max_document_size``
+  config setting.
+* :ghissue:`2228`: The default database sharding factor ``q`` has been reduced 
to 2 by
+  default. This, combined with automated database resharding (see below), is a 
better
+  starting place for new CouchDB databases. As in CouchDB 2.x, specify 
``?q=##`` to
+  change the value upon database creation if desired. The default can be 
changed
+  via the config ``[cluster] q`` setting.
+* :ghissue:`1523`, :ghissue:`2092`, :ghissue:`2336`: The "node-local" HTTP 
interface,
+  by default exposed on port 5986, has been removed. All functionality 
previously
+  available at that port is now available on the main, clustered interface (by 
default,
+  port 5984). Examples:
+
+  * ``GET /_node/{nodename}/_stats``
+  * ``GET /_node/{nodename}/_system``
+  * ``GET /_node/{nodename}/_restart``
+  * ``GET /_node/{nodename}/_all_dbs``
+  * ``GET /_node/{nodename}/_uuids``
+  * ``GET /_node/{nodename}/_config``
+  * ``GET /_node/{nodename}/_config/couchdb/uuid``
+  * ``GET /_node/{nodename}/_nodes/_changes?include_docs=true``
+  * ``GET /_node/{nodename}/{db}/{ddoc}/_info``
+  * ``PUT /_node/{nodename}/_dbs/{dbname}``
+
+  ...and so on. Documentation has been updated to reflect this change. [TODO]
+
+* :ghissue:`2389`: CouchDB 3.0 now requires a server admin user to be defined 
at
+  startup, or will print an error message and exit. (The Admin Party is now 
over.)
+* :ghissue:`2339`: All databases are now created by default as admin-only. 
That is, the
+  default new database ``_security`` object is now:
+
+  .. code-block:: javascript
+
+    {
+      "members" : { "roles" : [ "_admin" ] },
+       "admins" : { "roles" : [ "_admin" ] }
+    }
+
+  This can be changed after database creation.
+* Due to code changes in :ghissue:`2324`, it is not possible to upgrade 
transparently from
+  CouchDB 1.x to 3.x. In addition, the ``couchup`` utility has been removed 
from CouchDB
+  3.0 by :ghissue:`2399`:. If you are upgrading from CouchDB 1.x, you must 
first upgrade
+  to CouchDB 2.3.1 to convert your database and indexes, using ``couchup`` if 
desired.
+  You can then upgrade to CouchDB 3.0. Or, you can start a new CouchDB 3.0 
installation
+  and replicate directly from 1.x to 3.0.
+* :ghissue:`1833`, :ghissue:`2358`, :ghissue:`1871`, :ghissue:`1857`: CouchDB 
3.0 supports
+  running only under the following Erlang/OTP versions:
+
+  * 19.x - "soft" support only. No longer tested, but should work.
+  * 20.x - must be newer than 20.3.8.11 (20.0, 20.1, 20.2 versions all invalid)
+  * 21.x - for 21.2, must be newer than 21.2.3
+  * 22.x - for 22.0, must be newer than 22.0.5
+
+* :ghissue:`1804`: By default, views are limited to return a maximum of 2**28 
(268435456)
+  results. This limit can be configured separately for views and partitioned 
views via
+  the ``query_limit`` and ``partition_query_limit`` values in the ini file
+  ``[query_server_config]`` section.
+
+Deprecated feature removal
+--------------------------
+
+The following features, deprecated in CouchDB 2.x, have been removed or 
replaced in
+CouchDB 3.0:
+
+* :ghissue:`2089`, :ghissue:`2128`, :ghissue:`2251`: Local endpoints for 
replication
+  targets, which never functioned as expected in CouchDB 2.x, have been 
completely
+  removed. When replicating databases, always specify a full URL for the 
source and
+  target. In addition, the node local ``_replicator`` database is no longer 
automatically
+  created.
+* :ghissue:`2163`: The ``disk_size`` and ``data_size`` fields have been 
retired from the
+  database info object returned by ``GET /{db}/``. These were deprecated in 
CouchDB 2.x
+  and replaced by the ``sizes`` object, which contains the improved ``file``,
+  ``active`` and ``external`` size metrics. Fauxton has been updated to match.
+* :ghissue:`2173`: The ability to submit multiple queries against a view using 
the
+  :method:`POST` to ``/{db}/_design/{ddoc}/_view/{view}`` with the 
``?queries=`` option
+  has been replaced by the new ``/db/_design/{ddoc}/_view/{view}/queries`` 
endpoint.
+  Specify a ``keys`` object when :method:`POST`-ing to this endpoint. [ADD 
LINK]
+* :ghissue:`2248`: CouchDB externals (``_external/``) have been removed 
entirely.
+* :ghissue:`2208`: CouchDB no longer supports the ``delayed_commits`` option 
in the
+  configuration file. All writes are now full commits. The 
``/_ensure_full_commit``
+  API endpoint has been retained (as a no-op) for backwards compatibility with 
old
+  CouchDB replicators.
+* :ghissue:`2395`: The security object in the ``_users`` database cannot be 
edited by
+  default. A setting exists in the configuration file to revert this 
behaviour. The
+  ability to override the disable setting is expected to be removed in CouchDB 
4.0.
+
+.. _release/3.0.0:
+
+Version 3.0.0
+=============
+
+Features
+--------
+
+.. rst-class:: open
+
+* :ghissue:`1789`: User-defined partitioned databases. Full documentation is 
here [LINK
+  TBD].
+
+  * These special databases support user-driven placement of documents into 
the same
+    shard range.
+  * Views and Mango indexes have specific optimizations for partitioned 
databases as well.
+    [TBD verify Mango specific endpoint or support]
+  * :ghissue:`1842`: Partition size limits. By default, each partition is 
limited
+    to 10 GiB.
+  * :ghissue:`1684`: Partitioned database support can be disabled via feature
+    flag in ``default.ini``.
+
+* :ghissue:`1972`, :ghissue:`2012`: Automated shard splitting. Databases can 
now be live
+  re-sharded to increase the ``q`` factor to a larger number. This can be 
configured
+  to require specific node and range parameters upon execution. Full 
documentation is
+  here [LINK TBD].
+* :ghissue:`1910`: New automatic view "warming" subsystem, ``ken``. Full 
documentation
+  is here [LINK TBD].
+* :ghissue:`1904`: Completely new automatic compaction daemon, ``smoosh``. Full
+  documentation is here [LINK TBD].
+* :ghissue:`1889`, :ghissue:`2408`: New IO Queue subsystem. Full documentation 
is
+  available here [LINK TBD].
+* :ghissue:`2037`: Dreyfus, the CouchDB side of the Lucene-powered search 
solution,
+  is now shipped with CouchDB. When one or more Clouseau Java nodes are joined 
to the
+  cluster, text-based indexes can be enabled in CouchDB. It is recommended to
+  have as many Clouseau nodes as you have CouchDB nodes. Search is advertised 
in the
+  feature list present at ``GET /`` if configured correctly (:ghissue:`2206`). 
Full
+  documentation is available at [LINK TBD].
+* :ghissue:`2411`: The ``/_up`` endpoint no longer requires authentication when
+  ``require_valid_user`` is ``true``.
+* :ghissue:`2392`: A new ``_metrics`` role can be given to a user. This allows 
that
+  user access only to the ``/_node/{node}/_stats`` and 
``/_node/{node}/_system``
+  endpoints.
+* :ghissue:`1912`: A new alternative systemd-journald logging backend has been 
added,
+  and can be enabled through the ini file. The new backend does not include 
CouchDB's
+  microsecond-accurate timestamps, and uses the ``sd-daemon(3)`` logging 
levels.
+* :ghissue:`2296`, :ghissue:`1977`: If the configuration file setting 
``[couchdb]``
+  ``single_node`` is set to ``true``, CouchDB will automatically create the 
system
+  databases on startup if they are not present.
+* :ghissue:`2338`, :ghissue:`2343`: :method:`POST` request to CouchDB views 
and the
+  ``/{db}/_all_docs``, ``/{db}/_local_docs`` and ``//{db}/_design_docs`` 
endpoints now
+  support the same functionality as :method:`GET`.  Parameters are passed in 
the body as a
+  JSON object, rather than in the URL when using :method:`POST`.
+* :ghissue:`2292`: The ``_scheduler/docs`` and ``_scheduler/info`` endpoints 
now return
+  detailed replication stats for running and pending jobs.
+* :ghissue:`2282`, :ghissue:`2272`, :ghissue:`2290`: CouchDB now supports 
specifying
+  separate proxies for both the ``source`` and ``target`` in a replication via
+  ``source_proxy`` and ``target_proxy`` keys.
+* :ghissue:`2240`: Headers are now returned from the ``/{db}/_changes`` feed
+  immediately, even when there are no changes available. This avoids client
+  blocking.
+* :ghissue:`2005`, :ghissue:`2006`: The name of any node can now be retrieved 
through
+  the new API endpoint ``GET /_node/_local``.
+* :ghissue:`1766`: Timeouts for requests, ``all_docs``, attachments, views, and
+  partitioned view requests can all be specified separately in the ini file 
under
+  the ``[fabric]`` section. See ``default.ini`` for more detail.
+* :ghissue:`1963`: Metrics are now kept on the number of partition and global 
view
+  queries, along with the number of timeouts that occur.
+* :ghissue:`2452`: A new configuration field ``[couch_httpd_auth] same_site`` 
has
+  been added to set the value of the CouchDB auth cookie's ``SameSite`` 
attribute.
+  It may be necessary to set this to ``strict`` for compatibility with future
+  versions of Google Chrome. If CouchDB CORS support is enabled, set this to
+  ``None``.
+
+Performance
+-----------
+
+.. rst-class:: open
+
+* :ghissue:`2360`: It is now possible to make the rexi interface's unacked 
message
+  limit configurable. A new, more optimized default (5, lowered from 10) has 
been set.
+  This results in a ~50% improvement on view queries on large clusters with 
``q ≥ 8``.
+* :ghissue:`2277`: The ``couch_server`` process has been highly optimized, 
supporting
 
 Review comment:
   maybe put this one first?

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to 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