You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by ja...@apache.org on 2025/03/07 10:14:28 UTC

(couchdb) branch docs/release-notes-3.5.0 updated (98a15c8eb -> 3c4b73b62)

This is an automated email from the ASF dual-hosted git repository.

jan pushed a change to branch docs/release-notes-3.5.0
in repository https://gitbox.apache.org/repos/asf/couchdb.git


    omit 98a15c8eb Update src/docs/src/whatsnew/3.5.rst
    omit 3b4bbc08d feat(doc): 3.5.0 release notes
     add 6202aa4b5 Document callable regex in Spidermonkey 1.8.5
     add 07cf90120 Optimise config to use persistent terms
     add b2ff65a74 Add Windows Jenkins pipeline (#4371)
     add 6df21c57f BigInt support for QuickJS
     add a2ba5e2cf Make sure terminate/2 is called in config
     add a1d61ed39 Use local pids for cfile
     add 1a88c2a76 Fix compatibility clause for attachments
     add d9e5e3919 Make a note of the Nouveau docker image, and include a sample compose.
     add 5ded88c03 lint
     add 8ba43b7ae nouveau: base64 only takes binaries
     add b106d4724 Merge pull request #5463 from apache/nouveau-b64url
     new 94c70ac5d feat(doc): 3.5.0 release notes
     new f728228a5 Update src/docs/src/whatsnew/3.5.rst
     new 3c4b73b62 fix typos, formatting, add closing

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (98a15c8eb)
            \
             N -- N -- N   refs/heads/docs/release-notes-3.5.0 (3c4b73b62)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 build-aux/Jenkinsfile.full                         | 142 +++++++++++----
 build-aux/Jenkinsfile.pr                           |  68 ++++----
 src/config/src/config.erl                          | 192 +++++++++++----------
 src/config/test/config_tests.erl                   | 162 ++++++++++++++++-
 src/couch/src/couch_file.erl                       |  80 +++++----
 src/couch/test/eunit/couch_file_tests.erl          |  48 +++++-
 src/couch/test/eunit/couch_js_tests.erl            |  27 ++-
 src/couch_quickjs/c_src/couchjs.c                  |   1 +
 .../src/couch_replicator_parse.erl                 |   8 +-
 src/docs/src/best-practices/jsdevel.rst            |  19 ++
 src/docs/src/install/nouveau.rst                   |  46 +++++
 src/docs/src/whatsnew/3.5.rst                      |  15 +-
 src/nouveau/src/nouveau_bookmark.erl               |   4 +-
 src/smoosh/src/smoosh_utils.erl                    |   2 +-
 14 files changed, 598 insertions(+), 216 deletions(-)


(couchdb) 01/03: feat(doc): 3.5.0 release notes

Posted by ja...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

jan pushed a commit to branch docs/release-notes-3.5.0
in repository https://gitbox.apache.org/repos/asf/couchdb.git

commit 94c70ac5d081644ca183bce0bee7de42546cb4a8
Author: Jan Lehnardt <ja...@apache.org>
AuthorDate: Thu Feb 27 16:46:58 2025 +0100

    feat(doc): 3.5.0 release notes
---
 src/docs/src/whatsnew/3.4.rst   |   8 +-
 src/docs/src/whatsnew/3.5.rst   | 172 ++++++++++++++++++++++++++++++++++++++++
 src/docs/src/whatsnew/index.rst |   1 +
 version.mk                      |   4 +-
 4 files changed, 179 insertions(+), 6 deletions(-)

diff --git a/src/docs/src/whatsnew/3.4.rst b/src/docs/src/whatsnew/3.4.rst
index 287a65976..14c5ff305 100644
--- a/src/docs/src/whatsnew/3.4.rst
+++ b/src/docs/src/whatsnew/3.4.rst
@@ -51,8 +51,8 @@ Features
 * :ghissue:`5294`: Return time spent waiting to update Nouveau index
   before query starts.
 
-Bufixes
--------
+Bugfixes
+--------
 * :ghissue:`5274`: Use normal Lucene syntax for unbounded ranges in
   Nouveau.
 * :ghissue:`5270`: Do not generate conflicts from the replicator
@@ -85,8 +85,8 @@ Highlights
 * :ghissue:`5255`: Set ``upgrade_hash_on_auth`` to ``false`` to disable
   automatic password hashing upgrades.
 
-Bufixes
--------
+Bugfixes
+--------
 
 * :ghissue:`5254`: Handle the case when the QuickJS scanner has no
   valid views.
diff --git a/src/docs/src/whatsnew/3.5.rst b/src/docs/src/whatsnew/3.5.rst
new file mode 100644
index 000000000..95bfa2df1
--- /dev/null
+++ b/src/docs/src/whatsnew/3.5.rst
@@ -0,0 +1,172 @@
+.. 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.5.x:
+
+============
+3.5.x Branch
+============
+
+.. contents::
+    :depth: 1
+    :local:
+
+.. _release/3.5.0:
+
+Version 3.5.0
+=============
+
+Highlights
+----------
+
+* :ghissue:`5399`, :ghissue:`5441`, :ghissue:`5443`: Implement parallel
+  ``pread`` calls: lets clients issue concurrent ``pread`` calls without blocking
+  each other or having to wait for all writes and ``fsync`` calls. This is
+  enabled by default and can be disabled with ``[couchdb] use_cfile = false`` in
+  the configuration.
+
+  CouchDB already employs a multiple-parallel-read and concurrent serial-write
+  design at the database engine layer, but below that in the storage engine,
+  each file representing a database shard is required to route all read / write
+  / sync requests through a single Erlang process that owns the file descriptor
+  (fd).
+
+  An Erlang process can at most execute at the speed of a single CPU core. Two
+  scenarios can lead to a starvation of the fd-owning Erlang process message
+  inbox:
+
+    - 1000s concurrent read requests with a constant stream of writes per shard,
+      or:
+    - a high latency storage devices like network block storage.
+
+  Parallel preads re-implements the Erlang ``file`` module in parts as
+  ``couch_cfile`` to allow multiple ``dup()``’d file descriptors to be used for
+  reading and writing. Writes continue to be serialised at the database engine
+  layer, but reads now are no longer blocked by writes waiting to commit.
+
+  Comes with an extensive test suite that includes property testing to ensure
+  ``couch_cfile`` behaves exactly like Erlang’s ``file`` in all other cases.
+
+  Performance is always equal or better than before. These scenarios show
+  preliminary improvements:
+
+  - random document reads: 15% more throughput
+  - read ``_all_docs``: 15% more throughput
+  - read ``_all_docs`` with ``include_docs=true``: 25% more throughput
+  - read ``_changes``: 4% more throughput
+  - single document writes: 8% more throughput
+  - 2000x concurrent clients, random document reads on a 12 node cluster: 30% more
+    throughput
+  - concurrent constant document writes and concurrent single document reads on
+    a single shard: 40% more throughput.
+
+    This feature is not available on Windows.
+
+* :ghissue:`5435`: Improve default ``chttpd_server`` options. This helps with
+  faster processing of many concurrent TCP connections.
+
+* :ghissue:`5347`: Fix attachment size calculation. This could lead to shards
+  not being scheduled for compaction correctly.
+
+Performance
+-----------
+
+* :ghissue:`5417`: Fix ``atts_since`` functionality for document ``GET``
+  requests.
+  Avoids re-replicating attachment bodies on doc updates.
+* :ghissue:`5389`: Save 1 ``write`` for each committing data to disk by using
+  ``fdatasync`` while keeping the same level of storage reliability.
+
+Features
+--------
+
+* :ghissue:`5429`: Nouveau: upgrade ``dropwizard`` to 4.0.12.
+* :ghissue:`5429`: Add ``simple+pbkdf2`` migration password scheme.
+* :ghissue:`5424`: Scanner: reduce log noise, fix QuickJS plugin mocks,
+  gracefully handle broken search indexes.
+* :ghissue:`5421`: Nouveau: upgrade Lucene to 9.12.1.
+* :ghissue:`5414`: Remove unused ``multi_workers`` option from
+  ``couch_work_queue``.
+* :ghissue:`5402`: Remove unused, undocumented and detrimental idle check
+  timeout feature.
+* :ghissue:`5359`: Remove unused, undocumented and unreliabele ``pread_limit``
+  feature from ``couch_file``.
+* :ghissue:`5385`: Clean up ``fabric_doc_update`` by introducing an ``#acc``
+  record.
+* :ghissue:`5372`: Upgrade to Elixir 1.17.
+* :ghissue:`5338`: Clouseau: show version in ``/_version`` endpoint.
+* :ghissue:`5338`: Scanner: add Nouveau and Clouseau design doc validation.
+* :ghissue:`5335`: Nouveau: support reading older Lucene 9x indexes.
+* :ghissue:`5327`, :ghissue:`5329`, :ghissue:`5419`: Allow switching JavaScript
+  engines at runtime.
+* :ghissue:`5326`, :ghissue:`5328`: Allow clients to specify HTTP request ID,
+  including UUIDs.
+* :ghissue:`5321`, :ghissue:`5366`, :ghissue:`5413`: Add support for
+  SpiderMonkey versions 102, 115 and 128.
+* :ghissue:`5317`: Add `quickjs` to the list of welcome features.
+
+Bugfixes
+--------
+
+* :ghissue:`5447`: Fix arithmetic mean in ``_prometheus``.
+* :ghissue:`5440`: Fix ``_purged_infos`` when exceeding ``purged_infos_limit``.
+* :ghissue:`5431`: Restore the ability to return ``Error`` objects from `map()`.
+* :ghissue:`5417`: Clouseau: add a version check to ``connected()`` function to
+  reliably detect if a Clouseau node is ready to be used.
+* :ghissue:`5416`: Ensure we always map the documents in order in
+  ``couch_mrview_updater``. While views still built correctly, this behaviour
+  simplifies debugging.
+* :ghissue:`5373`: Fix checksumming in ``couch_file``, consolidate similar
+  functions and bring test coverage from 66% to 90%.
+* :ghissue:`5367`: Scanner: be more resilient in the face of non-deterministic
+  functions.
+* :ghissue:`5345`: Scanner: be more resilient in the face of incomplete sample
+  data.
+* :ghissue:`5344`: Scanner: allow empty doc fields.
+* :ghissue:`5341`: Improve Mango test reliability.
+* :ghissue:`5337`: Prevent a broken ``mem3`` app from permanently failing
+  replication.
+* :ghissue:`5334`: Fix QuickJS scanner ``function_clause`` error.
+* :ghissue:`5332`: Skip deleted documents in the scanner.
+* :ghissue:`5331`: Skip validation for design docs in the scanner.
+* :ghissue:`5330`: Prevent inserting illegal design docs via Mango.
+
+Docs
+----
+
+* :ghissue:`5433`: Mango: document Nouveau index type.
+* :ghissue:`5433`: Nouveau: document Mango index type.
+* :ghissue:`5428`: Fix wrong link in example in ``CONTRIBUTING.md``.
+* :ghissue:`5400`: Clarify RHEL9 installation caveats.
+* :ghissue:`5380`, :ghissue:`5404`: Fix various typos.
+* :ghissue:`5338`: Clouseau: document version in ``/_version`` endpoint.
+* :ghissue:`5340`, :ghissue:`5412`: Nouveau: document search cleanup API.
+* :ghissue:`5316`, :ghissue:`5325`, :ghissue:`5426`, :ghissue:`5442`,
+  :ghissue:`5445`: Document various JavaScript engine incompatibilities,
+  including SpiderMonkey 1.8.5 vs. newer SpiderMonkey and SpiderMonkey vs.
+  QuickJS.
+* :ghissue:`5320`, :ghissue:`5374`: Improve auto-lockout feature documentation.
+* :ghissue:`5323`: Nouveau: improve install instructions.
+
+Tests
+_____
+
+* :ghissue:`5397`: Fix negative-steps error in Elixir tests.
+
+Builds
+------
+* :ghissue:`5360`: Use ``brew --prefix`` to find ICU paths on macOS.
+
+Other
+-----
+
+TODO Insert Closing
diff --git a/src/docs/src/whatsnew/index.rst b/src/docs/src/whatsnew/index.rst
index 2d0649dc5..bb4f58095 100644
--- a/src/docs/src/whatsnew/index.rst
+++ b/src/docs/src/whatsnew/index.rst
@@ -20,6 +20,7 @@ Release Notes
     :glob:
     :maxdepth: 2
 
+    3.5
     3.4
     3.3
     3.2
diff --git a/version.mk b/version.mk
index 650ac4c41..2a199c9ff 100644
--- a/version.mk
+++ b/version.mk
@@ -1,3 +1,3 @@
 vsn_major=3
-vsn_minor=4
-vsn_patch=2
+vsn_minor=5
+vsn_patch=0


(couchdb) 02/03: Update src/docs/src/whatsnew/3.5.rst

Posted by ja...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

jan pushed a commit to branch docs/release-notes-3.5.0
in repository https://gitbox.apache.org/repos/asf/couchdb.git

commit f728228a5d26700f0151b3ca8d96ee11e6f56b53
Author: Jan Lehnardt <ja...@apache.org>
AuthorDate: Fri Mar 7 10:47:04 2025 +0100

    Update src/docs/src/whatsnew/3.5.rst
    
    Co-authored-by: Jay Doane <ja...@apache.org>
---
 src/docs/src/whatsnew/3.5.rst | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/docs/src/whatsnew/3.5.rst b/src/docs/src/whatsnew/3.5.rst
index 95bfa2df1..aceec761e 100644
--- a/src/docs/src/whatsnew/3.5.rst
+++ b/src/docs/src/whatsnew/3.5.rst
@@ -44,7 +44,7 @@ Highlights
   scenarios can lead to a starvation of the fd-owning Erlang process message
   inbox:
 
-    - 1000s concurrent read requests with a constant stream of writes per shard,
+    - 1000s of concurrent read requests with a constant stream of writes per shard,
       or:
     - a high latency storage devices like network block storage.
 


(couchdb) 03/03: fix typos, formatting, add closing

Posted by ja...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

jan pushed a commit to branch docs/release-notes-3.5.0
in repository https://gitbox.apache.org/repos/asf/couchdb.git

commit 3c4b73b622b50d387b686420b06de18fd604a5a5
Author: Jan Lehnardt <ja...@apache.org>
AuthorDate: Fri Mar 7 11:13:23 2025 +0100

    fix typos, formatting, add closing
---
 src/docs/src/whatsnew/3.5.rst | 15 +++++++--------
 1 file changed, 7 insertions(+), 8 deletions(-)

diff --git a/src/docs/src/whatsnew/3.5.rst b/src/docs/src/whatsnew/3.5.rst
index aceec761e..b44ce145f 100644
--- a/src/docs/src/whatsnew/3.5.rst
+++ b/src/docs/src/whatsnew/3.5.rst
@@ -64,8 +64,8 @@ Highlights
   - read ``_all_docs`` with ``include_docs=true``: 25% more throughput
   - read ``_changes``: 4% more throughput
   - single document writes: 8% more throughput
-  - 2000x concurrent clients, random document reads on a 12 node cluster: 30% more
-    throughput
+  - 2000x concurrent clients, random document reads on a 12 node cluster: 30%
+    more throughput
   - concurrent constant document writes and concurrent single document reads on
     a single shard: 40% more throughput.
 
@@ -80,16 +80,15 @@ Highlights
 Performance
 -----------
 
-* :ghissue:`5417`: Fix ``atts_since`` functionality for document ``GET``
-  requests.
-  Avoids re-replicating attachment bodies on doc updates.
+* :ghissue:`5437`: Fix ``atts_since`` functionality for document ``GET``
+  requests. Avoids re-replicating attachment bodies on doc updates.
 * :ghissue:`5389`: Save 1 ``write`` for each committing data to disk by using
   ``fdatasync`` while keeping the same level of storage reliability.
 
 Features
 --------
 
-* :ghissue:`5429`: Nouveau: upgrade ``dropwizard`` to 4.0.12.
+* :ghissue:`5439`: Nouveau: upgrade ``dropwizard`` to 4.0.12.
 * :ghissue:`5429`: Add ``simple+pbkdf2`` migration password scheme.
 * :ghissue:`5424`: Scanner: reduce log noise, fix QuickJS plugin mocks,
   gracefully handle broken search indexes.
@@ -103,7 +102,7 @@ Features
 * :ghissue:`5385`: Clean up ``fabric_doc_update`` by introducing an ``#acc``
   record.
 * :ghissue:`5372`: Upgrade to Elixir 1.17.
-* :ghissue:`5338`: Clouseau: show version in ``/_version`` endpoint.
+* :ghissue:`5351`: Clouseau: show version in ``/_version`` endpoint.
 * :ghissue:`5338`: Scanner: add Nouveau and Clouseau design doc validation.
 * :ghissue:`5335`: Nouveau: support reading older Lucene 9x indexes.
 * :ghissue:`5327`, :ghissue:`5329`, :ghissue:`5419`: Allow switching JavaScript
@@ -169,4 +168,4 @@ Builds
 Other
 -----
 
-TODO Insert Closing
+There’s always IOPS in the banana stand.