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

 ##########
 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
+  significantly more load than before.
+* :ghissue:`2280`: Connection sharing for replication now functions correctly 
when
+  replicating through a forward proxy. Closes :ghissue:`2271`.
+* :ghissue:`2195`, :ghissue:`2207`: Metrics aggregation now supports CouchDB 
systems
+  that sleep or hibernate, ensuring that on wakeup does not trigger thousands 
of
+  unnecessary function calls.
+* :ghissue:`1795`: Avoid calling ``fabric:update_docs`` with empty doc lists.
+
+Bugfixes
+--------
+
+.. rst-class:: open
+
+* :ghissue:`1752`, :ghissue:`2398`: The cluster setup wizard now ensures a 
conssitent
+  UUID and http secret across all nodes in a cluster.
+* :ghissue:`2388`: A compatibility change has been made to support replication 
with
+  future databases containing per-document access control fields.
+* :ghissue:`2379`: Any replicator error messages will provide an object in the 
response,
+  or null, but never a string.
+* :ghissue:`2244`, :ghissue:`2310`: CouchDB will no longer send more data than 
is
+  requested when retrieving partial attachment data blocks.
+* :ghissue:`2138`: Manual operator updates to a database's shard map will not
+  corrupt additional database properties, such as partitioning values.
+* :ghissue:`1877`: The ``_purge`` and ``_purged_infos_limit`` endpoints are now
+  correctly restricted to server admin only.
+* :ghissue:`1794`: The minimum purge sequence value for a database is now
+  gathered without a clustered ``_all_docs`` lookup.
+* :ghissue:`2351`: A timeout case clause in ``fabric_db_info`` has been 
normalised
+  to match other case clauses.
+* :ghissue:`1897`: The ``/{db}/_bulk_docs`` endpoint now correctly catches 
invalid
+  (*i.e.*, non-hexadecimal) ``_rev_`` values and responds with a 400 error.
+* :ghissue:`2321`: CouchDB no longer requires Basic auth credentials to reach 
the
+  ``/_session`` endpoint for login, even when ``require_valid_user`` is 
enabled.
+* :ghissue:`2295`: CouchDB no longer marks a job as failed permanently if the
+  internal doc processor crashes.
+* :ghissue:`2178`: View compaction files are now removed on view cleanup.
+* :ghissue:`2179`: The error message logged when CouchDB does not have a 
``_users``
+  database is now less scary.
+* :ghissue:`2153`: CouchDB no longer may return a ``badmatch`` error when 
querying
+  ``all_docs`` with a passed ``keys`` array.
+* :ghissue:`2137`: If search is not available, return a ``400`` instead of 
``500``
+  status code.
+* :ghissue:`2077`: Any failed ``fsync(2)`` calls are now correctly raised to 
avoid
+  data corruption arising from retry attempts.
+* :ghissue:`2027`: Handle epoch mismatch when duplicate UUIDs are created 
through
+  invalid operator intervention.
+* :ghissue:`2019`: If a database is deleted and re-created while internal 
cluster
+  replication is still active, CouchDB will no longer retry to delete it 
continuously.
+* :ghissue:`2003`: CouchDB will no longer automatically reset an index file if 
any
+  attempt to read its header fails (such as when the couch_file process 
terminates
+  unexpectedly).
+* :ghissue:`1983`: Improve database "external" size calcuation to be more 
precise.
+* :ghissue:`1971`: Correctly compare ETags using weak comparison methods to 
support
+  `W/` prefix added by some load balancer configurations.
+* :ghissue:`1803`: CouchDB admin passwords are now synced when the cluster 
setup wizard
 
 Review comment:
   maybe group this with the first in line `1752`, so the topic is together, 
totally not important :D

----------------------------------------------------------------
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