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

netudima pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/cassandra.git

commit 6a79d99f818caf7ace41e94cba53e15b4a462a9b
Merge: edf2849dae 72affbc206
Author: Dmitry Konstantinov <[email protected]>
AuthorDate: Thu Sep 17 12:05:28 2026 +0100

    Merge branch 'cassandra-6.0' into trunk
    
    * cassandra-6.0:
      Avoid serialization and deserialization for coordinator-local single 
partition data read

 CHANGES.txt                                        |    1 +
 NEWS.txt                                           |   10 +-
 .../config/CassandraRelevantProperties.java        |    8 +
 src/java/org/apache/cassandra/db/ReadCommand.java  |   19 +-
 src/java/org/apache/cassandra/db/ReadResponse.java |  344 +++++-
 .../metrics/CassandraMetricsRegistry.java          |    1 +
 .../cassandra/metrics/ReadResponseMetrics.java     |   48 +
 .../org/apache/cassandra/service/StorageProxy.java |   13 +-
 .../cassandra/service/reads/ReadCallback.java      |    6 +
 .../org/apache/cassandra/db/ReadResponseTest.java  | 1196 +++++++++++++++++++-
 10 files changed, 1629 insertions(+), 17 deletions(-)

diff --cc CHANGES.txt
index f6a1f228d8,b2ca9dd737..b34f16769a
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,16 -1,5 +1,17 @@@
 -6.0-alpha3
 +7.0
 + * Redact hash and _hash suffixed parameters in system_views.settings 
(CASSANDRA-21686)
 + * Allow CQLSSTableWriter to specify SSTable id generator to use 
(CASSANDRA-21012)
 + * Reject LIKE patterns with a wildcard (%) anywhere other than the start or 
end (CASSANDRA-21068)
 + * Support pluggable default role initialization (CASSANDRA-21546)
 + * Add prepared statement cache stats to nodetool info (CASSANDRA-14366)
 + * Don't increment client metrics on messaging service connection unpause 
(CASSANDRA-21491)
 + * Add nodetool getreplicas (CASSANDRA-17665)
 + * Implementation of CEP-49: Hardware-accelerated compression 
(CASSANDRA-20975)
 + * Avoid using ObjectUtils.getFirstNonNull in Schema (CASSANDRA-21394)
 + * Allow nodetool garbagecollect to take a user defined list of SSTables 
(CASSANDRA-16767)
 + * Add a guardrail for misprepared statements (CASSANDRA-21139)
 +Merged from 6.0:
+  * Avoid serialization and deserialization for coordinator-local single 
partition data read (CASSANDRA-21354)
   * Allow nodetool cms reconfigure to ignore nodes via --ignore, excluding 
them from the new CMS (CASSANDRA-21627)
   * Accord: Compute Dependencies Incrementally (CASSANDRA-21682)
   * Avoid double chunk read for BTI small partitions during a select query 
execution (CASSANDRA-21637)
diff --cc NEWS.txt
index 7371c78ad0,7cb208f520..42fca7ad3d
--- a/NEWS.txt
+++ b/NEWS.txt
@@@ -176,9 -140,20 +176,17 @@@ New feature
      - New functions `format_bytes` and `format_time` were added. See 
CASSANDRA-19546.
      - It is possible to use Async-profiler for various profiling scenarios. 
See CASSANDRA-20854.
      - It is possible to provide custom startup check via Java SPI. See 
CASSANDRA-21093.
- 
+     - Single partition data reads served by the coordinator's local replica 
no longer serialize and deserialize the
+       response when it is small enough. The rows are kept as an in-memory 
partition instead, which saves the CPU time
+       spent on serializing and deserializing them and avoids allocating the 
rows and cells twice.
+       A response that exceeds either per-request limit is serialized in full, 
as before.
+       The limits are set by the system properties 
cassandra.data_response_in_memory_max_rows and
+       cassandra.data_response_in_memory_max_size; reads at ONE/LOCAL_ONE use
+       cassandra.data_response_in_memory_max_rows_cl_one 
andcassandra.data_response_in_memory_max_size_cl_one.
+       A limit is disabled by setting it to 0, and setting both limits of a 
tier to 0 disables the in-memory path for that tier.
+       Note that the limits are not enforced in the middle of a range 
tombstone span, so a response may exceed them in that case.
  Upgrading
  ---------
 -    - memtable_offheap_space: 0 is now rejected at startup when 
memtable_allocation_type is
 -    offheap_buffers or offheap_objects. Set a positive 
memtable_offheap_space, or an allocation
 -    type that does not allocate off-heap. See CASSANDRA-21019.
      [The following is a placeholder, to be revised asap]
      - trickle_fsync is by default set to "true" instead of "false" in 
cassandra.yaml (see CASSANDRA-21572)
      - Upgrading to 5.1 is currently only supported from 4.0, 4.1 or 5.0. 
Clusters running earlier releases must first


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to