@@ -28,11 +28,11 @@ Version 3.5.0
2828Highlights
2929----------
3030
31- * :ghissue: `5399 `, :ghissue: `5441 `, :ghissue: `5443 `: Implement parallel
32- `` pread `` calls: lets clients issue concurrent ``pread `` calls without blocking
33- each other or having to wait for all writes and `` fsync `` calls. This is
34- enabled by default and can be disabled with `` [couchdb] use_cfile = false `` in
35- the configuration.
31+ * :ghissue: `5399 `, :ghissue: `5441 `, :ghissue: `5443 `, :ghissue: ` 5460 `,
32+ :ghissue: ` 5461 `: Implement parallel ``pread `` calls: lets clients issue
33+ concurrent `` pread `` calls without blocking each other or having to wait for
34+ all writes and `` fsync `` calls. This is enabled by default and can be
35+ disabled with `` [couchdb] use_cfile = false `` in the configuration.
3636
3737 CouchDB already employs a multiple-parallel-read and concurrent serial-write
3838 design at the database engine layer, but below that in the storage engine,
@@ -77,17 +77,48 @@ Highlights
7777* :ghissue: `5347 `: Fix attachment size calculation. This could lead to shards
7878 not being scheduled for compaction correctly.
7979
80+ * :ghissue: `5494 `: Implement ``_top_N `` and ``_bottom_N `` reducers. These
81+ reducers return the top or bottom values from a map-reduce view. ``N `` is a
82+ number between ``1 `` and ``100 ``. For instance, a ``_top_5 `` reducer will
83+ return the top 5 highest values for a group level.
84+
85+ * :ghissue: `5498 `: Implement ``_first `` and ``_last `` reducers. These reducers
86+ return the first, and respectively, the last view row for a given group
87+ level. For example, ``_last `` can be used to retrieve the last timestamp
88+ update for each ``device_id `` if we had a key like ``[device_id, timestamp] ``
89+ if we query the view with ``group_level=1 ``.
90+
91+ * :ghissue: `5466 `: Conflict finder plugin. Enable the
92+ ``couch_scanner_plugin_conflict_finder `` plugin to find conflicting docs
93+ across all the databases. It can be configured to report individual revisions
94+ or aggregated statistics.
95+
8096Performance
8197-----------
8298
99+ * :ghissue: `5499 `: QuickJS rope based string implementation.
100+ * :ghissue: `5451 `: Optimize config system to use persistent terms.
83101* :ghissue: `5437 `: Fix ``atts_since `` functionality for document ``GET ``
84102 requests. Avoids re-replicating attachment bodies on doc updates.
85- * :ghissue: `5389 `: Save 1 ``write `` for each committing data to disk by using
103+ * :ghissue: `5398 `: Save 1 ``write `` for each committing data to disk by using
86104 ``fdatasync `` while keeping the same level of storage reliability.
87105
88106Features
89107--------
90108
109+ * :ghissue: `5526 `: Default ``upgrade_hash_on_auth `` to ``true ``. Downgrading to
110+ ``3.4.1 ``, ``3.4.2 ``, or ``3.4.3 `` is safe. Those versions know how to verify
111+ these new password hashes.
112+ * :ghissue: `5517 `: Enable xxHash file checksums by default. Downgrading to
113+ ``3.4.x `` versions should be safe. Those versions know how to read and verify
114+ xxHash checksums.
115+ * :ghissue: `5527 `: Update Fauxton and xxHash dependencies.
116+ * :ghissue: `5525 `: Array opcode optimization for QuickJS.
117+ * :ghissue: `5518 `: More precise error location reporting for QuickJS.
118+ * :ghissue: `5507 `, :ghissue: `5510 `, :ghissue: `5509 `: Erlang 28 compatibiliity.
119+ * :ghissue: `5516 `: Detailed node membership info for Prometheus.
120+ * :ghissue: `5489 `: Allow TLS client certs for Nouveau requests.
121+ * :ghissue: `5452 `: ``BigInt `` support for QuickJS.
91122* :ghissue: `5439 `: Nouveau: upgrade ``dropwizard `` to 4.0.12.
92123* :ghissue: `5429 `: Add ``simple+pbkdf2 `` migration password scheme.
93124* :ghissue: `5424 `: Scanner: reduce log noise, fix QuickJS plugin mocks,
@@ -97,7 +128,7 @@ Features
97128 ``couch_work_queue ``.
98129* :ghissue: `5402 `: Remove unused, undocumented and detrimental idle check
99130 timeout feature.
100- * :ghissue: `5359 `: Remove unused, undocumented and unreliabele ``pread_limit ``
131+ * :ghissue: `5395 `: Remove unused, undocumented and unreliabele ``pread_limit ``
101132 feature from ``couch_file ``.
102133* :ghissue: `5385 `: Clean up ``fabric_doc_update `` by introducing an ``#acc ``
103134 record.
@@ -116,6 +147,14 @@ Features
116147Bugfixes
117148--------
118149
150+ * :ghissue: `5515 `: Make sure ``query_limit `` config takes effect. Raise default
151+ limit from ``2^28 `` to ``2^59 ``. Allow ``infinity `` as a more ergonomic
152+ config value.
153+ * :ghissue: `5522 `: Reopen indexes closed by Lucene in Nouveau.
154+ * :ghissue: `5508 `: Fix array ``from() `` and ``at() `` for QuickJS.
155+ * :ghissue: `5502 `: Buffer overflow and segfault fix in QuickJS.
156+ * :ghissue: `5469 `, :ghissue: `5471 `: Retry closed connections in Nouveau.
157+ * :ghissue: `5463 `: Fix ``badarith `` in Nouveau index query.
119158* :ghissue: `5447 `: Fix arithmetic mean in ``_prometheus ``.
120159* :ghissue: `5440 `: Fix ``_purged_infos `` when exceeding ``purged_infos_limit ``.
121160* :ghissue: `5431 `: Restore the ability to return ``Error `` objects from `map() `.
143182----
144183
145184* :ghissue: `5433 `: Mango: document Nouveau index type.
146- * :ghissue: `5433 `: Nouveau: document Mango index type .
185+ * :ghissue: `5432 `: Add conceptual docs for Mango .
147186* :ghissue: `5428 `: Fix wrong link in example in ``CONTRIBUTING.md ``.
148187* :ghissue: `5400 `: Clarify RHEL9 installation caveats.
149188* :ghissue: `5380 `, :ghissue: `5404 `: Fix various typos.
159198Tests
160199_____
161200
201+ * :ghissue: `5492 `: Enable Clouseau testing for FreeBSD
202+ * :ghissue: `5490 `: Enable Clouseau testing for MacOS
162203* :ghissue: `5397 `: Fix negative-steps error in Elixir tests.
163204
164205Builds
0 commit comments