Commit Graph

169 Commits

Author SHA1 Message Date
Stefan Miklosovic 2004c17b60
Merge branch 'cassandra-4.1' into cassandra-5.0 2023-11-20 10:42:35 +01:00
Stefan Miklosovic 5b3c36b28a
Merge branch 'cassandra-4.1' into cassandra-5.0 2023-11-08 14:29:48 +01:00
Stefan Miklosovic 4ecff92404
Remove deprecated code in Cassandra 1.x and 2.x
patch by Stefan Miklosovic; reviewed by Brandon Williams for CASSANDRA-18959
2023-10-30 21:54:55 +01:00
Mike Adamson 949b760f55
Add support for a vector search index in SAI
- Adds jbellis/jvector (1.0.2) library for DiskANN based indexes on floating point vectors
- Adds ORDER BY ANN OF capability to do ANN search and order the results by score

 patch by Mike Adamson; reviewed by Andrés de la Peña, Jonathon Ellis for CASSANDRA-18715

Co-authored-by Jonathon Ellis jbellis@gmail.com
Co-authored-by Zhao Yang zhaoyangsingapore@gmail.com
2023-10-29 12:24:00 +01:00
Mick Semb Wever 865954fd99
Merge branch 'cassandra-4.1' into cassandra-5.0
* cassandra-4.1:
  Missing license info and headers
2023-08-31 22:43:33 +02:00
Mick Semb Wever 20125c5053
Merge branch 'cassandra-4.0' into cassandra-4.1
* cassandra-4.0:
  Missing license info and headers
2023-08-31 22:41:56 +02:00
Stefan Miklosovic 7b89b6018d
Remove commitlog_sync_batch_window_in_ms
patch by Stefan Miklosovic; reviewed by Brandon Williams for CASSANDRA-17161
2023-08-09 20:04:34 +02:00
Stefan Miklosovic fe9ad77fd7
Merge branch 'cassandra-4.1' into trunk 2023-08-02 18:39:56 +02:00
Stefan Miklosovic b94436c783
update ConfigCompatibility test
patch by Stefan Miklosovic; reviewed by David Capwell for CASSANDRA-18713
2023-08-02 18:35:41 +02:00
Bereng 2a458ba01d Improved DeletionTime serialization 2023-07-26 10:47:22 +02:00
KowalczykBartek 8faa2a2c69 Remove WaitingOnFreeMemtableSpace and DroppedMutations metrics
Patch by Bartlomiej, reviewed by bereng and brandonwilliams for
CASSANDRA-18298
2023-07-24 05:53:39 -05:00
Branimir Lambov 957eca2fb5 Implementation of the Unified Compaction Strategy as described in CEP-26
The approach is documented in the included UnifiedCompactionStrategy.md.

Also included:
- Generalize prettyPrint to prettyPrintBinary (with 2^10 multiplier,
  e.g. MiB) and prettyPrintDecimal (with 1000 multiplier, e.g. ms)
  that cover the full range of double, and add a parseHumanReadable
  method that can read both.

- CASSANDRA-18123: Fix invalid reuse of metadata collector during flushing

- Fix invalid token range splitting with non-unit weights

- Add flushSizeOnDisk metric

- Add ability to change compaction default in YAML

patch by Alex Sorokoumov, Branimir Lambov, Dimitar Dimitrov and Stefania Alborghetti
reviewed by Alex Sorokoumov, Jaroslaw Grabowski and Maxwell Guo for CASSANDRA-18397
2023-07-19 11:22:32 +03:00
Bereng 1adbea5a06 Extend maximum expiration date
patch by Berenguer Blasi; reviewed by Andrés de la Peña for CASSANDRA-14227
2023-06-05 07:18:34 +02:00
Jacek Lewandowski f16fb6765b Implementation of the trie-indexed SSTable format (BTI) as described in CEP-25.
Documentation in the included BTIFormat.md.

patch by Branimir Lambov and Jacek Lewandowski; reviewed by Caleb Rackliffe and Maxwell Guo for CASSANDRA-18398
2023-05-29 16:59:05 +03:00
Mick Semb Wever 7ca806c60a
Change trunk from 4.2 to 5.0
– update MessagingService (remove the 4.1 version that was only a placeholder in test code bc serialisation test files were previously incorrectly serialising random UUIds for TimeUUIDs)
 – update upgrade jvm-dtests
 – remove older serialization binary files we are no longer testing against

 patch by Mick Semb Wever; reviewed by Brandon Williams for CASSANDRA-17973
2023-03-07 11:03:38 +01:00
Jacek Lewandowski 24ebd24c79 More accurate skipping of sstables in read path
This patch improves the following things:
1. SSTable metadata will store a covered slice instead of min/max clusterings. The difference is that for slices there is available the type of a bound rather than just a clustering. In particular it will provide the information whether the lower and upper bound of an sstable is opened or closed.
2. SSTable metadata will store a flag whether the SSTable contains any partition level deletions or not
3. The above two changes required to introduce a new major format for SSTables - oa
4. Single partition read command makes use of the above changes. In particular an sstable can be skipped when it does not intersect with the column filter, does not have partition level deletions and does not have statics; In case there are partition level deletions, but the other conditions are satisfied, only the partition header needs to be accessed (tests attached)
5. Skipping SSTables assuming those three conditions are satisfied has been implemented also for partition range queries (tests attached). Also added minor separate statistics to record the number of accessed sstables in partition reads because now not all of them need to be accessed.
6. Artificial lower bound marker is now an object on its own and is not implemented as a special case of range tombstone bound.
7. Extended the lower bound optimization usage due the 1 and 2
8. Do not initialize iterator just to get a cached partition and associated columns index. The purpose of using lower bound optimization was to avoid opening an iterator of an sstable if possible.
9. Add key range to stats metadata

[f369595b1c] Add fields to sstable version and placeholders in stats serializer
[f5c3f772e2] Add hasKeyRange and hasLegacyMinMax
[3cde51f4e1] Add partition level deletion presence marker to sstable stats
[67b2ee2152] Extract AbstractTypeSerializer
[c77b475d6c] Refactor slices intersection checking
[ceb5af3a38] Store min and max clustering as a slice in stats metadata as and improved min/max
[d1f8973929] Implement MetadataCollectorBench
[335369da84] Apply partition level deletion presence marker optimizations to single partition read command
[2497a009b9] Lower bound optimization - add slices and isReverseOrder fields to UnfilteredRowIteratorWithLowerBound
[e32ee31177] Lower bound optimization - Replace usage of RangeTombstoneMarker as a lower bound with ArtificialBoundMarker
[e213e712c4] Lower bound optimization - improve usage of lower bound optimization
[c4f93006b1] Apply read path improvements to partition range queries
[5fa462266c] Add key range to StatsMetadata
[79a7339ed4] Use key range from stats if possible
[266ed2749b] Added new sstables for LegacySSTableTest

patch by Jacek Lewandowski; reviewed by Branimir Lambov and C. Scott Andreas for CASSANDRA-18134

Co-authored-by: Branimir Lambov <blambov>
Co-authored-by: Sylvain Lebresne <pcmanus>
Co-authored-by: Jacek Lewandowski <jacek-lewandowski>
Co-authored-by: Jakub Zytka <jakubzytka>
2023-02-21 09:41:07 +01:00
David Capwell 3409e5d9b3 Enhance SnakeYAML properties to be reusable outside of YAML parsing, support camel case conversion to snake case, and add support to ignore properties
patch by David Capwell; reviewed by Caleb Rackliffe, Stefan Miklosovic for CASSANDRA-17166
2022-04-22 20:17:45 -07:00
Andrés de la Peña cd870fe645 Merge branch 'cassandra-4.0' into trunk 2022-03-25 13:13:42 +00:00
jacek-lewandowski 05fa92475c Remove accidentally committed wrong legacy sstables
patch by Jacek Lewandowski; reviewed by Andrés de la Peña and Benjamin Lerer for CASSANDRA-17482
2022-03-25 13:09:34 +00:00
Jacek Lewandowski 0040fea379 Implement sstable generation identifier as uuid
Patch by Jacek Lewandowski; reviewed by Andrés de la Peña, Benjamin Lerer and Dan Jatnieks for CASSANDRA-17048
2022-03-23 11:50:33 +00:00
Benedict Elliott Smith d2923275e3 CEP-14: Paxos Improvements
This work encompasses a range of improvements to Paxos, summarised as:

 - The introduction of Paxos Repair for ensuring consistency during range movements
 - The reduction of network round-trips by a factor of 2x for reads and writes

patch by Benedict Elliott Smith and Blake Eggleston; reviewed by Alex Petrov, Aleksey Yeschenko and Sam Tunnicliffe for CASSANDRA-17164
2022-03-10 16:30:12 +00:00
jacek-lewandowski d35f36cd05 Fix misplacement of originatingHostId in stats metadata
patch by Jacek Lewandowski; reviewed by Benjamin Lerer for CASSANDRA-16619
2021-05-17 10:36:55 +02:00
Benjamin Lerer c4fab930ca Merge branch cassandra-3.11 into cassandra-4.0 2021-05-06 11:45:47 +02:00
Benjamin Lerer d6ff4c4a35 Merge branch cassandra-3.0 into cassandra-3.11 2021-05-06 11:32:47 +02:00
jacek-lewandowski d84c6e9810 Prevent loss of commit log data when moving sstables between nodes
patch by Jakub Zytka and Jacek Lewandowski; reviewed by Branimir Lambov and Benjamin Lerer for CASSANDRA-16619

Add originating host ID to sstable metadata

- md, me sstables
- add missing test cases in MetadataSerializerTest

Co-authored-by: Jakub Zytka <jakub.zytka@datastax.com>
Co-authored-by: Jacek Lewandowski <jacek.lewandowski@datastax.com>
2021-05-05 16:41:01 +02:00
Mick Semb Wever 7337fc0ab4
Merge branch 'cassandra-3.11' into trunk 2021-04-19 17:39:10 +02:00
Mick Semb Wever 2ec96ae669
Merge branch 'cassandra-3.0' into cassandra-3.11 2021-04-19 17:34:05 +02:00
Mick Semb Wever 50a97a0d76
Merge branch 'cassandra-2.2' into cassandra-3.0 2021-04-19 17:29:00 +02:00
Ekaterina Dimitrova 2330545827 Metrics backward compatibility restored after CASSANDRA-15066
Authored by Ekaterina Dimitrova, reviewed by Benjamin Lerer for CASSANDRA-16083
2021-02-12 10:19:39 -05:00
Marcus Eriksson 8742f3a414 CASSANDRA-16274 followup - fix JMXCompatabilityTest 2020-12-02 07:42:24 +01:00
Sam Tunnicliffe a7c4ba9eee Improve checksumming and compression in protocol V5
This reverts the changes made to the native protocol V5 wire format in
CASSANDRA-13304 and subsequent follow up JIRAs (CASSANDRA-15556 &
CASSANDRA-14716). The framing format has been re-implemented based on the
internode messaging format developed in CASSANDRA-15066.

OPTIONS and STARTUP messages are unframed (i.e. identical to the V4 format).
After sending its response to a STARTUP message, the server modifies the
pipeline and all further messages are sent (and should be expected by the
client to be received) in the format determined by the protocol version of
the STARTUP message.

Patch by Sam Tunnicliffe; reviewed by Alex Petrov and Caleb Rackliffe
for CASSANDRA-15299
2020-12-01 18:49:06 +00:00
Marcus Eriksson 22abff779d Optimised repair streaming improvements
Patch by marcuse; reviewed by Sam Tunnicliffe for CASSANDRA-16274
2020-12-01 12:39:25 +01:00
Andrés de la Peña 83b41b6b69 Merge branch 'cassandra-3.11' into trunk
# Conflicts:
#	CHANGES.txt
#	src/java/org/apache/cassandra/db/filter/ColumnFilter.java
#	test/unit/org/apache/cassandra/db/filter/ColumnFilterTest.java
2020-10-19 15:31:20 +01:00
Zhao Yang 699a1f74fc CASSANDRA-15229: Segregate Network and Chunk Cache BufferPools and Recirculate Partially Freed Chunks
* initiate multiple buffer pool for different lifespan and usages
  - Chunk Cache Buffer Pool - conf.file_cache_size_in_mb=512mb
  - Networking Buffer Pool - conf.temporary_cache_size_in_mb=128mb

* Add overflowSize and usedSize to buffer pool metrics

* re-circulate buffer pool Chunk for ChunkCache whenever it has free space, even thoughput it may not be able to allocate due to fragmentation

patch by Zhao Yang; reviewed by Caleb Rackliffe and Aleksey Yeschenko for CASSANDRA-15229
2020-10-15 22:55:06 +08:00
David Capwell 91bcbb2873 Add a new jmxtool which can dump what JMX objects exist and diff
patch by David Capwell, Stephen Mallette; reviewed by Berenguer Blasi, Jon Meredith for CASSANDRA-16082
2020-09-15 17:01:01 -07:00
Alex Petrov 056c9eff4b Merge branch 'cassandra-3.0' into cassandra-3.11 2020-06-04 20:17:31 +02:00
Alex Petrov c4064dd80e Allow recovery from the cases when CQL-created compact sense tables have bytes in EmptyType columns.
Patch by Alex Petrov; reviewed by Sylvain Lebresne for CASSANDRA-15778.
2020-06-04 20:04:27 +02:00
David Capwell f80a2ce10c Prevent the JVM from crashing due to corrupt LZ4 streams
Patch by David Capwell; reviewed by Jordan West and brandonwilliams for
CASSANDRA-15556
2020-02-11 11:00:24 -06:00
Cameron Zemek 31a86f891b
Fix LegacyLayout to have same behavior as 2.x when handling unknown column names
patch by Cameron Zemek; reviewed by Mick Semb Wever for CASSANDRA-15081
2019-11-15 18:53:40 +01:00
Marcus Eriksson 2d90e3c2a4 Merge branch 'cassandra-3.0' into cassandra-3.11 2019-10-30 15:14:59 +01:00
Marcus Eriksson 767a68cd00 Ensure legacy rows have primary key livenessinfo when they contain illegal cells
Patch by marcuse and Sam Tunnicliffe; reviewed by Benedict Elliott Smith for CASSANDRA-15365
2019-10-30 15:09:04 +01:00
Aleksey Yeschenko f9ff884377 Untangle RepairMessage sub-hierarchy of messages, use new messaging (more) correctly
patch by Aleksey Yeschenko; reviewed by Blake Eggleston for
CASSANDRA-15163
2019-09-20 15:52:19 -07:00
Sam Tunnicliffe 83baa27104 Merge branch 'cassandra-3.0' into cassandra-3.11 2019-06-27 16:25:43 +01:00
Sam Tunnicliffe f4b6e1d51f Filter illegal legacy cells when collating rows
Alternative solution for CASSANDRA-15086, which allows the illegal cells to
be read from disk and deserialized as normal so as not to interfere with
tracking bytes read during reverse iteration of indexed partitions.

Patch by Sam Tunnicliffe; reviewed by Marcus Eriksson for CASSANDRA-15178
2019-06-27 16:21:01 +01:00
Benedict Elliott Smith 310a48efcf Rewrite the internode messaging subsystem
patch by Aleksey Yeschenko and Benedict Elliott Smith; reviewed by Alex
Petrov, Aleksey Yeschenko, and Benedict Elliott Smith for CASSANDRA-15066

Co-authored-by: Aleksey Yeschenko <aleksey@apache.org>
Co-authored-by: Benedict Elliott Smith <benedict@apache.org>
2019-06-12 16:26:54 +01:00
Sam Tunnicliffe ba01089a0f Merge branch 'cassandra-3.0' into cassandra-3.11 2019-05-08 10:03:42 +01:00
Sam Tunnicliffe daf6c85b05 Skip cells with illegal column names when reading legacy sstables
Patch by Sam Tunnicliffe; reviewed by Aleksey Yeschenko for CASSANDRA-15086
2019-05-08 09:57:32 +01:00
Sam Tunnicliffe 64d828b9de Merge branch 'cassandra-3.0' into cassandra-3.11 2018-11-28 16:11:08 +00:00
Sam Tunnicliffe 0a7fbee43f Reading legacy tables handles tombstones for dropped collections
Patch by Sam Tunnicliffe; reviewed by Aleksey Yeschenko and
Benedict Elliott Smith for CASSANDRA-14912
2018-11-28 16:03:16 +00:00
Aleksey Yeshchenko 5431b87ede Merge branch 'cassandra-3.0' into cassandra-3.11 2018-11-13 15:30:56 +00:00