Commit Graph

1137 Commits

Author SHA1 Message Date
Andrés de la Peña 3eb605b4db Remove deprecated CQL functions dateOf and unixTimestampOf
patch by Andrés de la Peña; reviewed by Berenguer Blasi and Stefan Miklosovic for CASSANDRA-18328
2023-03-16 15:43:45 +00:00
Stefan Miklosovic 58a3b12508
Remove DateTieredCompactionStrategy
patch by Stefan Miklosovic; reviewed by Jacek Lewandowski for CASSANDRA-18043
2023-03-16 09:38:10 +01:00
Stefan Miklosovic a76286795f
Add system_views.max_sstable_size and system_views.max_sstable_duration tables
patch by Stefan Miklosovic; reviewed by Brandon Williams for CASSANDRA-18333
2023-03-15 21:18:40 +01:00
Stefan Miklosovic b7eaa2d209
Deprecate org.apache.cassandra.hadoop code
patch by Stefan Miklosovic; reviewed by Brandon Williams for CASSANDRA-16984
2023-03-12 21:34:29 +01:00
Stefan Miklosovic 4841794028
Add MaxSSTableSize and MaxSSTableDuration metrics and propagate them together with local read/write ratio to tablestats
patch by Stefan Miklosovic; reviewed by Brandon Williams and Brad Schoening for CASSANDRA-18283
2023-03-08 16:29:19 +01: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 b7e1e44a90 SSTable format API
Summary of the changes:

Format, reader and writer
---------------------------
There are a lot of refactorings around sstable related classes aiming to extract the most generic functionality to the top-level entities and push down implementation-specific stuff to the actual implementation. In Particular, the top-level, implementation agnostic classes/interfaces are SSTableFormat interface, SSTable, SSTableReader, SSTableWriter, IVerifier, and IScrubber. The rest of the codebase has been reviewed for explicit usages of big table format-specific usages of sstable classes and refactored. SSTable, SSTableReader, and SSTableWriter have their builders. Builders make a hierarchy that follows the same inheritance structure as readers and writers.

There are also partial implementations that add support for some features and may or may not be used by the custom implementations. They include:
- AbstractSSTableFormat - adds an implementation of some initialization methods - in practice, all of the format implementations should extend this class
- SSTableReaderWithFilter - add support for Bloom filter to the reader
- SortedTableWriter - generic implementation for a writer which writes partitions in the default order to the data file, supports Bloom filter and some index of partitions
- IndexSummarySupport - interface implemented by the readers using index summaries
- KeyCacheSupport - interface implemented by the readers using row key cache

Descriptor
---------------------------
Refactored the Descriptor class so that:
- All paths are created from the base directory File rather than from a String
- All the methods named *filename* producing full paths were made private; their current implementations are returning file names rather than paths (the naming was inconsistent)
- The usages of the `filenameFor` method were refactored to use the `fileFor` method
- The usages of the `fromFilename` method were refactored to use a  `fromFileWithComponent(..., false).left` expression
In essence, the Descriptor class is no longer working on String-based paths.

Index summaries
---------------------------
Removed the index summary from the generic SSTableReader class and created an interface IndexSummarySupport to be implemented by the readers that need it. Methods in related classes that refer back to the reader were refactored to support just readers of the SSTableReader & IndexSummarySupport type. Therefore, we will no longer need to assume that the generic SSTableReader has anything to do with an index summary.

A new IndexSummaryComponent class encloses data fields from the index summary file (note that aside from the index summary itself, the file includes the first and last partition of the sstable). The class has been extracted to deal with those fields and have that logic in a single place.

Filter
---------------------------
Refactored IFilter and its serialization - in particular, added the `serialize` method to the IFilter interface and moved loading/saving logic to a separate utility class FilterComponent.
Extracted the SSTableReaderWithFilter abstract reader extending the generic SSTableReader with filter support.
Extracted bloom filter metrics into separate entities allowing to plug them in if the implementation uses a filter.

Cache
---------------------------
Refactored CacheService to support different key-cache values. CacheService now supports arbitrary IRowIndexEntry implementation as a key-cache value. A new version of the auto-saving cache was created ("g") because some information about the type of serialized row index entry needs to be known before it is deserialized (or skipped). Therefore, the SSTableFormat type ordinal number is stored, which is sufficient because the IRowIndexEntry serializer is specific to the sstable format type.
Similarly to the IndexSummarySupport, a new KeyCacheSupport interface has to be implemented to mark the reader as supporting key-cache. It contains the default implementation of several methods the rest of the system relies on when the key-cache is supported.

Other changes
---------------------------
- Fixed disabling chunk cache - enable(boolean) method in ChunkCache does not make any sense - it makes a false impression it can disable chunk cache once enabled, while in fact, it only clears it. Added setFileCacheEnabled to DatabaseDescriptor

- Made WrappingUnfilteredRowIterator an interface

- DataInputStreamPlus extends InputStream - this makes it possible for input stream-based inheritors of DataInputPlus to extend DataInputStreamPlus. It simplifies coding because sometimes we want to get DataInputPlus implementation extending InputStream as an argument.

- Table and keyspace metrics were made pluggable - in particular, added the ability for a certain format to register gauges that are specific only to that format and make no sense for others

- Implemented mmapped region extension for compressed data

- Refactored FileHandle so that it is no longer closable

- Implemented WrappingRebufferer

- Introduced the SSTable.Owner interface to make SSTable implementation not reference higher-level entities directly. SSTable accepts passing null as the owner when there is no owner (like sometimes in offline tools) or passing a mock when needed in tests.

Individual commits
---------------------------

[4a87cd36fe] Fix disabling chunk cache
[c84c75ccf3] Made WrappingUnfilteredRowIterator an interface
[253d2b828e] Add getType to SSTableFormat
[3f169dcc20] Remove getIndexSerializer from SSTableFormat
[05bae1833b] Pull down rowIndexEntrySerializer field
[da675f2809] Moved RowIndexEntry
[673f0c5c39] Reduce usages of RowIndexEntry
[c72538be91] Refactor CacheService to support for different key cache values
[54d33ee656] Minor refactoring of ColumnIndex
[93862df967] Just moved AbstractSSTableIterator to o.a.c.io.sstable.format
[9e4566a1de] Refactored AbstractSSTableIterator
[a4e61e80bb] Extracted IScrubber and IVerifier interfaces
[20f78c7419] Push down implementation of SSTableReader.firstKeyBeyond
[f2c24e5774] Moved SSTableReader.getSampleIndexesForRanges to IndexSummary
[b6c3a6c1ea] Moved SSTableReader.getKeySamples implementation to IndexSummary
[c4b90ebb33] Refactor InstanceTidier so that it is more generic
[918d5a9e74] Refactor dropping page cache
[a52fb4d558] Refactor sstable metrics
[f6d10f930f] NEW (fix up) - DataInputStreamPlus extends InputStream
[8f6a56d972] Getting rid of index summary in SSTableReader
[4a918bf725] Removed direct usages of primary index from SSTableReader
[358fa32602] Refactor KeyIterator so that it is sstable format agnostic
[14c09d89c2] Remove explicit usage of Components outside of format specific classes
[feff14e137] Move clone methods implementation from SSTableReader to BigTableReader
[64e9787b10] Move saveIndexSummary and saveBloomFilter to SSTableReaderBuilder
[ae71fe6ed8] Moved indexSummary field to BigTableReader and made it private
[df9fd8c4b9] Moved ifile field to BigTableReader and made it private
[2be6ea9ecf] Moved static open methods for BigTableReader to the reader factory
[bc0e55ac48] Minor refactoring around IFilter and its serialization
[5b95704beb] Minor refactorings around IndexSummary
[87812335e8] Extracted TOCComponent class to deal with TOC file
[fdad092a6a] Extracted CompressionInfoComponent class
[39b47e388d] Extracted StatsComponent as a helper for elements of SSTable metadata
[cdb55bff47] Fix SSTable.getMinimalKey
[b99c6d5805] Refactor FileHandle so that it is no longer closable
[77b7f7ace5] Implement WrappingRebufferer
[b6868914dd] Add progressPercentage to ProgressInfo
[7fd4956e5b] Moved copy/rename/hardLink methods from SSTableWriter to SSTable
[1ccc6bf148] Create generic SSTableBuilder and IOOptions
[da58a81102] Refactor SSTableReaderBuilder
[4501ddba1c] Refactor ColumnIndex
[d4f9e1a64b] Extracted non-big-table-specific functionality from BigTableWriter to SortedTableWriter
[379525d01e] Refactor BigTableZeroCopyWriter to SSTableZeroCopyWriter as it is not specific to big format
[8ac37f83bc] Extract EmptySSTableScanner out from BigTableScanner
[ee6673f1cf] Implement SSTableWriterBuilder
[bb26629235] Refactor opening early / final
[a327595015] Refactored SSTableWriter factory
[16ffd7334b] Extract non-big-format-specific logic from scrubber and verifier
[75e02db6af] Allow to specify the default SSTableFormat via system property
[a7b9d0d628] Small fixes around streaming
[407f977c36] Move guard collection size
[0529e57d2f] Remove explicit references to big format
[61509963ec] Unclassified minor changes
[da28d1af3a] Replaced getCreationTimeFor(Component) with getDataCreationTime()
[e99c834de6] !!! Reformatting
[882b7baa5a] Rename SSTableReader.maybePresent and fix its redundant usages
[b70c983bea] Implement mmapped region extension for compressed data
[d7ff3970de] Introduce SSTable.Owner interface
[e9feb9c462] Replaced getCreationTimeFor(Component) with getDataCreationTime()
[ee8082fb07] Created SSTableFormat.deleteOrphanedComponents
[e62950fd3d] Refactor metrics further
[cefa5b3814] Extract key cache support into separate entity
[dd55101ca1] Extracted SSTableReaderWithFilter
[510b651824] Implement customizable component types
[2be512d9fa] Pluggable SSTableFormat by making SSTableFormat.Type not an enum
[670836b55d] Refactor CRC and digest validators
[00c91103bc] Extract delete method to delete SSTables and purge row cache entries
[0819dc9fc2] Extracted trySkipFileCacheBefore(key) to SSTableReader
[732f841750] Added missing overrides in ForwardingSSTableReader
[db623218fd] Update DatabaseDescriptorRefTest
[c018c468e5] Cleanup
[eafc836242] Add @SuppressWarnings("resource") where needed
[3b7c911dd6] Documentation

patch by Jacek Lewandowski, reviewed by Branimir Lambov for CASSANDRA-17056

Co-authored-by: @jacek-lewandowski
Co-authored-by: @blambov
2023-03-06 09:17:18 +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
Stefan Miklosovic 452ad8ce70
Make virtual tables decide if they implicitly enable ALLOW FILTERING
patch by Stefan Miklosovic; reviewed by Aleksey Yeschenko for CASSANDRA-18238
2023-02-09 14:22:26 +01:00
Andrés de la Peña 93e0ae9af6 Add CQL functions for dynamic data masking
patch by Andrés de la Peña; reviewed by Benjamin Lerer for CASSANDRA-17941
2023-01-27 16:07:48 +00:00
Andrés de la Peña cab864a631 Merge branch 'cassandra-4.1' into trunk 2023-01-23 11:43:39 +00:00
Andrés de la Peña 6c96e2fd41 Merge branch 'cassandra-4.0' into cassandra-4.1 2023-01-23 11:42:24 +00:00
Andrés de la Peña 9a0af4112e Fix legacy clustering serialization for paging with compact storage
patch by Andrés de la Peña; reviewed by Berenguer Blasi and Piotr Kołaczkowski for CASSANDRA-17507
2023-01-23 11:40:45 +00:00
Mick Semb Wever 7c86e18baf
Update G1GC settings, and make it default in trunk
patch by Mick Semb Wever; patch by Anthony Grasso, Brandon Williams, Derek Chen-Becker, Jeremiah Jordan, Jon Haddad, Josh McKenzie  for CASSANDRA-18027
2023-01-20 13:08:46 +01:00
ben b07c3127cc SimpleSeedProvider can resolve multiple IP addresses per DNS record
patch by Ben Bromhead; reviewed by Stefan Miklosovic and Andrés de la Peña for CASSANDRA-14361

Co-authored-by: Stefan Miklosovic <smiklosovic@apache.org>
2023-01-18 10:43:45 +01:00
maxwellguo 49dfb805e9 Add compaction_properties column to system.compaction_history table and nodetool compactionhistory command
patch by Maxwell Guo; reviewed by Stefan Miklosovic and Jacek Lewandowski for CASSANDRA-18061
2023-01-17 08:56:07 +01:00
Andrés de la Peña b7c7972a51 Add CQL scalar functions for collection aggregation
patch by Andrés de la Peña; reviewed by Benjamin Lerer and Berenguer Blasi for CASSANDRA-18060
2022-11-25 14:08:00 +00:00
XV4DE 88dc64d208 Add Mathematical Functions
Patch by Simon Chess; review by Benjamin Lerer Ekaterina Dimitrova for CASSANDRA-17221

This patch add the abs, exp, log, log10, and round functions for the numeric types.
2022-11-22 18:25:02 +01:00
maxwellguo ee8b66da8c Make incremental backup configurable per table
patch by Maxwell Guo; reviewed by Stefan Miklosovic and Benjamin Lerer for CASSANDRA-15402
2022-11-19 10:57:54 +01:00
Josh McKenzie 39a470235a Disable resumable bootstrap by default
Patch by Marcus Eriksson; reviewed by Jordan West, Blake Eggleston, and Josh McKenzie for CASSANDRA-17679

Co-authored-by: Marcus Eriksson <marcuse@apache.org>
Co-authored-by: Josh McKenzie <jmckenzie@apache.org>
2022-10-28 14:47:03 -04:00
Branimir Lambov 7c55c73825 Adds a trie-based memtable implementation
patch by Branimir Lambov; reviewed by Jason Rutherglen, Jacek Lewandowski, Andres de la Peña and Caleb Rackliffe for CASSANDRA-17240
2022-10-21 12:55:56 +03:00
Stefan Miklosovic c089818881 Make Cassandra logs able to be viewed in the virtual table system_views.system_logs
patch by Stefan Miklosovic; reviewed by Brandon Williams for CASSANDRA-17948
2022-10-18 14:13:51 +02:00
Stefan Miklosovic 872e34c2d6 add --older-than and --older-than-timestamp options for nodetool clearsnapshot
patch by Stefan Miklosovic; reviewed by Paulo Motta for CASSANDRA-16860
2022-09-27 19:30:17 +02:00
Leonard Ma e5c9cf4cbe Handle leak of non-standard Java types as clients using JMX cannot handle them
-deprecate and replace JMX setters that throw non-standard exceptions
-deprecate and replace respective JMX getters as well to make JMX usage consistent

patch by Leonard Ma; reviewed by Ekaterina Dimitrova and David Capwell for CASSANDRA-17668
2022-09-26 11:30:24 -04:00
Jacek Lewandowski 56ea39ec70 Merge branch 'cassandra-4.1' into trunk 2022-09-16 09:57:37 +02:00
Jacek Lewandowski d8bbeb9e39 Merge branch 'cassandra-4.0' into cassandra-4.1 2022-09-16 09:55:07 +02:00
Stefan Miklosovic b6d8e2ce6b Make disabling auto snapshot on selected tables possible
patch by Tommy Stendahl; reviewed by Stefan Miklosovic and Aleksey Yeschenko for CASSANDRA-10383

Co-authored-by: Tommy Stendahl <tommy.stendahl@ericsson.com>
Co-authored-by: Stefan Miklosovic <smiklosovic@apache.org>
2022-09-08 10:25:34 +02:00
Josh McKenzie d0b9532f2b Add the ability for operators to loosen the definition of "empty" for edge cases
Patch by David Capwell; reviewed by Josh McKenzie, Yifan Cai, and Sam Tunnicliffe for CASSANDRA-17842

Co-authored-by: David Capwell <dcapwell@apache.org>
Co-authored-by: Josh McKenzie <jmckenzie@apache.org>
2022-08-23 12:24:37 -04:00
Yifan Cai 6a6d2214e9 Merge branch 'cassandra-4.1' into trunk 2022-08-22 09:31:15 -07:00
Yifan Cai 31b607c92a ninja fix: NEWS.txt 2022-08-22 09:31:05 -07:00
Josh McKenzie 4526b3fcbd Add ability to log load profiles at fixed intervals
Patch by Yifan Cai; reviewed by Josh McKenzie, Dinesh Joshi, and Chris Lohfink for CASSANDRA-17821

Co-authored-by: Yifan Cai <ycai@apache.org>
Co-authored-by: Josh McKenzie <jmckenzie@apache.org>
2022-08-19 12:50:12 -04:00
Ekaterina Dimitrova b70e14e2ac Merge branch 'cassandra-4.1' into trunk 2022-08-17 18:33:20 -04:00
Ekaterina Dimitrova 43036ecadd Update docs and NEWS.txt; config docs are reachable now on the website
patch by Ekaterina Dimitrova; reviewed by Caleb Rackliffe for CASSANDRA-17778
2022-08-17 18:28:01 -04:00
Andrés de la Peña 4b7069c06c Add guardrail for column size
patch by Andrés de la Peña; reviewed by Ekaterina Dimitrova and David Capwell for CASSANDRA-17151
2022-08-16 17:33:01 +01:00
Andrés de la Peña c8c8635a4c Add ability to read the TTLs and write times of the elements of a collection and/or UDT
patch by Andrés de la Peña; reviewed by Yifan Cai and Benjamin Lerer for CASSANDRA-8877
2022-08-12 13:00:04 +01:00
Ekaterina Dimitrova 61d9ba6dff Merge branch 'cassandra-4.1' into trunk 2022-08-08 13:13:09 -04:00
Ekaterina Dimitrova a7d7708976 Merge branch 'cassandra-4.0' into cassandra-4.1 2022-08-08 13:02:48 -04:00
Ekaterina Dimitrova e5e13c02cc Fix default value for compaction_throughput_mb_per_sec in Config class to match the one in cassandra.yaml
patch by Ekaterina Dimimtrova; reviewed by Francisco Guerrero, Michael Semb Wever for CASSANDRA-17790
2022-08-08 12:45:36 -04:00
Ekaterina Dimitrova 62ac5da78a Merge branch 'cassandra-4.1' into trunk 2022-08-01 20:43:08 -04:00
Ekaterina Dimitrova dd08314ed6 Uncomment prepared_statements_cache_size, key_cache_size, counter_cache_size, index_summary_capacity which were
commented out by mistake in a previous patch;
Fix breaking change with cache_load_timeout; cache_load_timeout_seconds <=0 and cache_load_timeout=0 are equivalent
and they both mean disabled;
Deprecate public method setRate(final double throughputMbPerSec) in Compaction Manager in favor of
setRateInBytes(final double throughputBytesPerSec);
Revert breaking change removal of StressCQLSSTableWriter.Builder.withBufferSizeInMB(int size). Deprecate it in favor
of StressCQLSSTableWriter.Builder.withBufferSizeInMiB(int size);
Fix precision issues, add new -m flag (for nodetool/setstreamthroughput, nodetool/setinterdcstreamthroughput,
nodetool/getstreamthroughput and nodetoo/getinterdcstreamthroughput), add new -d flags (nodetool/getstreamthroughput,
 nodetool/getinterdcstreamthroughput, nodetool/getcompactionthroughput);
Fix a bug with precision in nodetool/compactionstats;
Deprecate StorageService methods and add new ones for stream_throughput_outbound, inter_dc_stream_throughput_outbound,
compaction_throughput_outbound in the JMX MBean `org.apache.cassandra.db:type=StorageService`;
Removed getEntireSSTableStreamThroughputMebibytesPerSec in favor of new getEntireSSTableStreamThroughputMebibytesPerSecAsDouble
in the JMX MBean `org.apache.cassandra.db:type=StorageService`;
Removed getEntireSSTableInterDCStreamThroughputMebibytesPerSec in favor of getEntireSSTableInterDCStreamThroughputMebibytesPerSecAsDouble
in the JMX MBean `org.apache.cassandra.db:type=StorageService`

Patch by Ekaterina Dimitrova; reviewed by Caleb Rackliffe, Francisco Guerrero for CASSANDRA-17225
2022-08-01 19:05:13 -04:00
Ekaterina Dimitrova b94bf3f218 Merge branch 'cassandra-4.1' into trunk 2022-07-29 13:35:55 -04:00
Ekaterina Dimitrova fe28f482db Fix sstable_preemptive_open_interval_in_mb disabled value - backward compatibility
patch by Ekaterina Dimitrova; reviewed by Andres de la Pena and Jon Meredith for CASSANDRA-17737
2022-07-29 13:26:31 -04:00
Ekaterina Dimitrova d2d6afb8e9 Merge branch 'cassandra-4.1' into trunk 2022-07-25 10:19:55 -04:00
Ekaterina Dimitrova 1c70149ef5 Fix Settings Virtual Table to update paxos_variant after startup and rename enable_uuid_sstable_identifiers to uuid_sstable_identifiers_enabled as per our config naming conventions
patch by Ekaterina Dimitrova; reviewed by Brandon Williams for CASSANDRA-17738
2022-07-25 10:08:09 -04:00
Josh McKenzie 91b86487fe Add guardrail to disallow DROP KEYSPACE commands for non superuser accounts
Patch by Josh McKenzie; reviewed by Aleksey Yeschenko for CASSANDRA-17767
2022-07-22 12:19:49 -04:00
Ekaterina Dimitrova 66177be587 Merge branch 'cassandra-4.1' into trunk 2022-07-22 09:48:15 -04:00
Ekaterina Dimitrova 9beeaf87bd Merge branch 'cassandra-4.0' into cassandra-4.1 2022-07-22 09:41:38 -04:00
Stefan Miklosovic 55f094a6d2 Remove ephemeral snapshot marker file and introduce a flag to SnapshotManifest
patch by Stefan Miklosovic; reviewed by Paulo Motta for CASSANDRA-16911
2022-07-15 21:37:12 +02:00
Ekaterina Dimitrova 1c2cd30125 Merge branch 'cassandra-4.1' into trunk 2022-07-15 12:39:41 -04:00
Ekaterina Dimitrova 46d9cbe2f6 min_tracked_partition_size_bytes parameter from 4.1 alpha1 was renamed to min_tracked_partition_size
patch by Ekaterina Dimitrova; reviewed by Berenguer Blasi for CASSANDRA-17733
2022-07-15 12:34:14 -04:00
Brandon Williams f2faec9ff2 Merge branch 'cassandra-4.1' into trunk 2022-06-29 10:15:01 -05:00
Brandon Williams b75d56fd38 Add new compactionstats output behind --vtable
Patch by brandonwilliams; reviewed by edimitrov and dcapwell for
CASSANDRA-17683
2022-06-29 10:08:44 -05:00
Ekaterina Dimitrova 07d97d7905 Merge branch 'cassandra-4.1' into trunk 2022-06-27 19:37:54 -04:00
Ekaterina Dimitrova dcb4768345 nodetool clientstats columns should be under a separate flag - --config-options
patch by Ekaterina Dimitrova; reviewed by Brandon Williams for CASSANDRA-17715
2022-06-27 19:23:06 -04:00
Savni Nagarkar 39e89fd636 Add guardrail for maximum replication factor
Patch by Savni Nagarkar; reviewed by Andrés de la Peña, David Capwell and Josh McKenzie for CASSANDRA-17500
2022-06-23 15:53:33 +01:00
Yifan Cai 99d034a224 Option to disable CDC on SSTable repair
patch by Yifan Cai; reviewed by Josh McKenzie for CASSANDRA-17666
2022-06-07 11:30:49 -07:00
Ekaterina Dimitrova ce4ae43a31 Merge branch 'cassandra-4.1' into trunk 2022-06-02 15:51:43 -04:00
Ekaterina Dimitrova 2eac2590bf Revert removal of withBufferSizeInMB(int size) to CQLSSTableWriter.Builder and deprecate it in favor of withBufferSizeIniB(int size);update the docs
patch by Ekaterina Dimitrova; reviewed by Michael Semb Wever for CASSANDRA-17675
2022-06-02 15:31:23 -04:00
Josh McKenzie 14fbab15bd Add guardrail to allow disabling SimpleStrategy
Patch by Josh McKenzie; reviewed by Aleksey Yeschenko for CASSANDRA-17647
2022-05-26 15:06:58 -04:00
Ekaterina Dimitrova c0b175595d Merge branch 'cassandra-4.1' into trunk 2022-05-20 14:36:46 -04:00
Ekaterina Dimitrova a67a2a2441 Handle config parameters upper bound on startup; Fix auto_snapshot_ttl and paxos_purge_grace_period min unit validations
patch by Ekaterina Dimitrova and Andres de la Pena; reviewed by Andres de la Pena and Caleb Rackliffe for CASSANDRA-17571

Co-authored-by: Ekaterina Dimitrova <ekaterina.dimitrova@datastax.com>
Co-authored-by: Andrés de la Peña <a.penya.garcia@gmail.com>
2022-05-20 14:27:20 -04:00
Yifan Cai 26dd119679 Add new CQL function maxWritetime
patch by Yifan Cai; reviewed by Andres de la Peña, Francisco Guerrero for CASSANDRA-17425
2022-05-18 11:56:51 -07:00
Josh McKenzie ce515a3d77 Add guardrail for ALTER TABLE ADD / DROP / REMOVE column operations
Patch by Josh McKenzie; reviewed by Jon Meredith for CASSANDRA-17495
2022-05-09 12:21:39 -04:00
Alex Sorokoumov 11bdf1bf80 Merge branch 'cassandra-4.1' into trunk 2022-05-09 10:58:07 +02:00
Alex Sorokoumov 9f3bc65727 Reject oversized mutations on client and internode connection
Patch by Alex Sorokoumov; reviewed by Andres de la Peña and Josh McKenzie for CASSANDRA-17456
2022-05-09 10:57:14 +02:00
Josh McKenzie 2f1c785910 Merge branch 'cassandra-4.1' into trunk
# Conflicts:
#	CHANGES.txt
2022-05-06 11:50:48 -04:00
Josh McKenzie 030831c5f5 Rename truncate_drop guardrail to drop_truncate_table
Patch by Josh McKenzie; reviewed by Andres de la Pena for CASSANDRA-17592
2022-05-06 11:48:45 -04:00
Mick Semb Wever 413f1aed27
Create release branch cassandra-4.1, increment trunk version to 4.2 2022-05-01 23:22:08 +02:00
Branimir Lambov e4e19e33fa Add memtable API (CEP-11)
patch by Branimir Lambov; reviewed by Andrés de la Peña and Caleb Rackliffe for CASSANDRA-17034
2022-04-29 14:56:20 +03:00
Marcus Eriksson 7ce140bd1d Fail starting when the same parameter exists more than once in cassandra.yaml
Patch by marcuse; reviewed by David Capwell and Ekaterina Dimitrova for CASSANDRA-17379
2022-04-29 10:31:20 +02:00
Savni Nagarkar da7c662227 Migrate threshold for minimum keyspace replication factor to guardrails
patch by Savni Nagarkar; reviewed by Andres de la Peña, David Capwell for CASSANDRA-17212
2022-04-28 20:14:36 -07:00
Savni Nagarkar f444c40286 Add guardrail to disallow querying with ALLOW FILTERING
patch by Savni Nagarkar; reviewed by Andres de la Peña, David Capwell and Josh McKenzie for CASSANDRA-17370
2022-04-26 18:26:17 +01:00
Marcus Eriksson 545809616c Track top partitions by size and tombstone count
Patch by marcuse; reviewed by David Capwell and Yifan Cai for CASSANDRA-16310
2022-04-26 14:59:37 +02:00
Andrés de la Peña b3842de5cf Add guardrail for data disk usage
patch by Andrés de la Peña; reviewed by Ekaterina Dimitrova and Stefan Miklosovic for CASSANDRA-17150

Co-authored-by: Andrés de la Peña <a.penya.garcia@gmail.com>
Co-authored-by: Zhao Yang <jasonstack.zhao@gmail.com>
Co-authored-by: Eduard Tudenhoefner <etudenhoefner@gmail.com>
2022-04-22 16:36:07 +01:00
Benjamin Lerer 1ad8bf67a9 Allow to aggregate by time intervals
Patch by Benjamin Lerer; review by Andres De la Pena and Yifan Cai for CASSANDRA-11871

The patch allow to use pure monotonic functions on the last attribute of the GROUP BY clause and introduce some floor functions that can be use to group by time range.

A function is pure if:
    1. The function return values are identical for identical arguments
    2. The function application has no side effects

A function is monotonic if it is either entirely nonincreasing or nondecreasing.
2022-04-22 10:59:42 +02:00
David Capwell 7db3285e7b Migrate track_warnings to more standard naming conventions and use latest configuration types rather than long
patch by David Capwell; reviewed by Andres de la Peña, Caleb Rackliffe for CASSANDRA-17560
2022-04-21 14:32:25 -07:00
Ekaterina Dimitrova dac738d2eb Transfer config parameters to the new types; Fix corner case for permissions_update_interval, roles_update_interval, credentials_update_interval;Fix typo in Config annotation; Made Converters type safe and fixed a few cases where converters used the wrong type; o should be provided with unit to DataStorageSpec and DurationStorageSpec; Fix null bug in DataStorageSpec and DurationSpec
patch by Ekaterina Dimitrova, David Capwell; reviewed by David Capwell and Caleb Rackliffe for CASSANDRA-17431

Co-authored-by: Ekaterina Dimitrova <ekaterina.dimitrova@datastax.com>
Co-authored-by: David Capwell <dcapwell@apache.org>
2022-04-20 10:20:30 -04:00
Josh McKenzie 10103d353c Add required -f option to nodetool verify
Patch by Josh McKenzie; reviewed by Marcus Eriksson, Berenguer Blasi, and Caleb Rackliffe for CASSANDRA-17017

Co-authored by Josh McKenzie <jmckenzie@apache.org>
Co-authored by Chris Lohfink <clohfink@apple.com>
2022-03-24 11:54:16 -04: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
Bereng 30ad754d7e Pre hashed passwords in CQL
patch by Robert Stupp and Berenguer Blasi; reviewed by Andres de la Peña for CASSANDRA-17334

Co-authored-by: Robert Stupp <snazy@snazy.de>
Co-authored-by: Berenguer Blasi <berenguerblasi@gmail.com>
2022-03-23 07:20:14 +01:00
Caleb Rackliffe 4ea3e4c505 Add native transport rate limiter options to example cassandra.yaml, and expose metric for dispatch rate
patch by Caleb Rackliffe; reviewed by Josh McKenzie for CASSANDRA-17423
2022-03-21 11:39:28 -05:00
Bereng 2f84f492a2 Revert "Pre hashed passwords in CQL"
This reverts commit 6946b304e9.
2022-03-21 13:19:31 +01:00
Bereng 6946b304e9 Pre hashed passwords in CQL
patch by Berenguer Blasi; reviewed by Andres de la Peña for CASSANDRA-17334
2022-03-21 11:18:05 +01:00
Ekaterina Dimitrova d67be0def4 Add docs about configuration framework added in CASSANDRA-15234
patch by Ekaterina Dimitrova; reviewed by Michael Semb Wever and Caleb Rackliffe for CASSANDRA-17246
2022-03-18 14:33:19 -04: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
Tibor Répási 537d02d25f Expose all client options via system_views.clients and nodetool clientstats
patch by Tibor Repasi reviewed by Benjamin Lerer, Berenguer Blasi, Ekaterina Dimitrova for CASSANDRA-16378
2022-03-08 11:12:37 +01:00
Stefan Miklosovic ae50cbd1ad deprecate property windows_timer_interval
patch by Stefan Miklosovic; reviewed by Ekaterina Dimitrova and Berenguer Blasi for CASSANDRA-17404
2022-03-08 08:27:18 +01:00
Yifan Cai b83da7d978 Correct size unit to mebibypes 2022-02-25 14:38:43 -08:00
Ekaterina Dimitrova 12e2c159f8 Forward port from cassandra-4.0(CASSANDRA-17377) - deprecation of otc_coalescing_strategy, otc_coalescing_window_us, otc_coalescing_enough_coalesced_messages, otc_backlog_expiration_interval_ms
patch by Ekaterina Dimitrova; reviewed by David Capwell for CASSANDRA-17378
2022-02-25 12:42:37 -05:00
Ekaterina Dimitrova 769f6b3122 Merge branch 'cassandra-4.0' into trunk 2022-02-25 11:54:34 -05:00
Ekaterina Dimitrova 22a4ae16e4 Deprecate JavaScript user-defined functions
patch by Ekaterina Dimitrova; reviewed by Berenguer Blasi and Marcus Eriksson for CASSANDRA-17280
2022-02-25 11:32:25 -05:00
Mick Semb Wever f5f804527e
Merge branch 'cassandra-4.0' into trunk 2022-02-18 11:19:54 +01:00
Mick Semb Wever 85fd49f2cf
Merge branch 'cassandra-3.11' into cassandra-4.0 2022-02-18 11:16:02 +01:00
Mick Semb Wever 593872cb28
Merge branch 'cassandra-3.0' into cassandra-3.11 2022-02-18 11:14:29 +01:00
Erick Ramirez 679740ff48
Added CVE-2021-44521 to CHANGES.txt, NEWS.txt
patch by Erick Ramirez; reviewed by Marcus Eriksson, Mick Semb Wever for CASSANDRA-17388
2022-02-18 11:11:07 +01:00
Ekaterina Dimitrova 537ad9e17b Deprecate otc_coalescing_strategy, otc_coalescing_window_us, otc_coalescing_enough_coalesced_messages,
otc_backlog_expiration_interval_ms (CASSANDRA-17377)
patch by Ekaterina Dimitrova; reviewed by Brandon Williams for CASSANDRA-17377
2022-02-12 20:17:30 -05:00
Manish Ghildiyal 5cf62c6c02 Add support for string concatenations through the + operator
Patch by Manish Ghildiyal; review by Benjamin Lerer, Berenguer Blassi,
Brandon Williams for CASSANDRA-17190
2022-02-11 15:39:06 +01:00
Yifan Cai 3a6f690731 Limit the maximum hints size per host
patch by Yifan Cai; reviewed by Dinesh Joshi, Francisco Guerrero for CASSANDRA-17142
2022-02-10 17:18:29 -08:00
Ekaterina Dimitrova db9f7a67ec Add new custom types and unit tests for configuration
patch by Ekaterina Dimitrova; reviewed by Caleb Rackliffe, David Capwell, Michael Semb Wever and Benjamin Lerer for CASSANDRA-15234
2022-02-05 22:27:03 -05:00
Andrés de la Peña ecfe7e809b Merge branch 'cassandra-4.0' into trunk 2022-01-26 11:50:33 +00:00
Andrés de la Peña 67f913a706 Merge branch 'cassandra-3.11' into cassandra-4.0 2022-01-26 11:43:14 +00:00
Andrés de la Peña bfab1fda88 Merge branch 'cassandra-3.0' into cassandra-3.11 2022-01-26 11:38:48 +00:00
Andrés de la Peña 40bf53359c Fix conversion from megabits to bytes in streaming rate limiter
patch by Andrés de la Peña; reviewed by Berenguer Blasi for CASSANDRA-17243
2022-01-26 11:34:51 +00:00
Bereng ff4d63d392 Merge branch 'cassandra-4.0' into trunk 2022-01-25 07:11:04 +01:00
Bereng 85248da628 PasswordObfuscator should not assume PASSWORD is the last item in the WITH clause
patch by Berenguer Blasi; reviewed by Benjamin Lerer, Ekaterina Dimitrova for CASSANDRA-16801
2022-01-25 07:08:48 +01:00
Ekaterina Dimitrova 8ace479455 Merge branch 'cassandra-4.0' into trunk 2022-01-24 12:50:39 -05:00
Ekaterina Dimitrova 2b63dc7044 Full support for Java 11; it is not experimental anymore
patch by Ekaterina Dimitrova; reviewed by Michael Semb Wever for CASSANDRA-16894
2022-01-24 12:11:12 -05:00
Aleksei Zotov bc20bddceb Make capacity/validity/updateinterval/activeupdate for Auth Caches configurable via nodetool
patch by Aleksei Zotov; reviewed by Josh McKenzie for CASSANDRA-17063
2022-01-10 13:19:22 +04:00
Yuqi Gu 2043cb9fb6 Upgrade Snappy and JNA version to support Apple M1
Patch-By Yuqi Gu; Reviewed by Dinesh Joshi and Yifan Cai for CASSANDRA-17040
2022-01-07 11:02:48 -08:00
Andrés de la Peña bae92ee139 Migrate thresholds for number of keyspaces and tables to guardrails
This adds a new guardrail for limiting the number of keyspaces. It also  marks the previous not-guardrail thresholds
for keyspaces and tables as deprecated in favour of the equivalent guardrails. GuardrailsOptions is modified to always
log updates on guardrails config. A small refactor decouples guardrails from their configuration interfaces.

patch by Andrés de la Peña; reviewed by Ekaterina Dimitrova for CASSANDRA-17195
2021-12-17 16:33:00 +00:00
Yifan Cai d9460a04da Add non-blocking mode for CDC writes
patch by Yifan Cai; reviewed by Josh McKenzie for CASSANDRA-17001
2021-12-05 21:16:41 -08:00
Ekaterina Dimitrova 670bcff596 Merge branch 'cassandra-4.0' into trunk 2021-11-16 15:08:54 -05:00
Ekaterina Dimitrova 44ace88585 internode_send_buff_size_in_bytes and internode_recv_buff_size_in_bytes have new names. Backward compatibility with the old names added
patch by Ekaterina Dimitrova; reviewed by David Capwell for CASSANDRA-17141
2021-11-16 14:34:04 -05:00
Aleksei Zotov 63292292b8 Implement Virtual Tables for Auth Caches
Patch by Aleksei Zotov; reviewed by Sam Tunnicliffe, and Benjamin Lerer for CASSANDRA-16914
2021-11-10 12:04:04 +04:00
Kanthi Subramanian 8ddcd43b0c Add unix time conversion functions
Patch by Kanthi Subramanian; reviewed by Benjamin Lerer and Brandon
Williams for CASSANDRA-17029
2021-11-09 14:17:41 +01:00
Josh McKenzie c4b443ab90 Ninja-fix: CHANGES.txt and NEWS.txt for denylisting (CASSANDRA-12106) 2021-11-02 10:51:53 -04:00
kurt b2ccd0f3f5 ensure hint window is persistent across restarts of a node
patch by Kurt Greaves; reviewed by Brandon Williams, Mick Semb Wever and Stefan Miklosovic for CASSANDRA-14309
2021-10-22 17:23:06 +02:00
Francisco Guerrero 185893256f Allow GRANT/REVOKE multiple permissions in a single statement
patch by Francisco Guerrero; reviewed by Benjamin Lerer and Yifan Cai for CASSANDRA-17030

This commit allows GRANT/REVOKE statement to support multiple permissions with a single
statement. For example,

```
GRANT MODIFY, SELECT ON KEYSPACE field TO manager;
GRANT ALTER, DROP ON ROLE role1 TO role2;
```
2021-10-22 14:34:04 +02:00
Benjamin Lerer df6ecaae1c Allow to grant permission for all tables in a keyspace
Patch by Benjamin Lerer; Review by Andres de la Peña and Ekaterina Dimitrova for CASSANDRA-17027

In some cases it is useful to prevent users to alter or drop a keyspace
while allowing them to create new tables.
This patch add support for a new DataResource below KEYSPACE but above
TABLE. The syntax to grant permission at this level in ALL TABLES IN
KEYSPACE.
2021-10-20 14:09:02 +02:00
Aleksandr Sorokoumov fc27042f61 Expose information about stored hints via a nodetool command and a virtual table
Patch by Aleksandr Sorokoumov; reviewed by Ekaterina Dimitrova, Stefan Miklosovic and Aleksei Zotov for CASSANDRA-14795
2021-10-13 07:23:46 +04:00
Andrés de la Peña 0d4cc2ef0d Add support for type casting in WHERE clause components and in the values of INSERT/UPDATE statements
patch by Andrés de la Peña; reviewed by Benjamin Lerer for CASSANDRA-14337
2021-10-12 11:55:31 +01:00
Alex Petrov 32a15f0e9b Merge branch 'cassandra-3.0' into cassandra-3.11 2021-10-01 18:05:52 +02:00
Alex Petrov 13632e9a99 Avoid re-prepare storm on qualified statements after `use`
Patch by Alex Petrov; reviewed by Marcus Eriksson for CASSANDRA-15252
2021-10-01 18:02:18 +02:00
Stefan Miklosovic e0777ff5ab Merge branch 'cassandra-4.0' into trunk 2021-09-29 08:07:32 +02:00
Stefan Miklosovic e365908ee4 Merge branch 'cassandra-3.11' into cassandra-4.0 2021-09-29 07:57:05 +02:00
Stefan Miklosovic 095475b9cc Merge branch 'cassandra-3.0' into cassandra-3.11 2021-09-29 07:49:10 +02:00
Stefan Miklosovic 6b16b67cd4 update jBCrypt dependency to version 0.4
patch by Stefan Miklosovic; reviewed by Dinesh Joshi for CASSANDRA-9384
2021-09-29 07:39:29 +02:00
David Capwell c7526f943f Add soft/hard limits to local reads to protect against reading too much data in a single query
patch by David Capwell; reviewed by Caleb Rackliffe and Marcus Eriksson for CASSANDRA-16896
2021-09-28 12:49:12 -05:00
Josh McKenzie 9f15ec6de1 Evaluate consistency levels of auth reads
Patch by Jason Brown; reviewed by Matthew Byrd, Sankalp Kohli, and Benjamin Lerer for CASSANDRA-12988

Co-authored by Jason Brown (jasedbrown@gmail.com)
Co-authored by Josh McKenzie (jmckenzie@apache.org)
2021-09-24 11:15:59 -04:00
David Capwell 4ec4ab992f Add client warnings and abort to tombstone and coordinator reads which go past a low/high watermark
patch by David Capwell; reviewed by Blake Eggleston, Marcus Eriksson for CASSANDRA-16850
2021-08-26 13:41:31 -07:00
Benjamin Lerer c9130d454c Merge branch cassandra-4.0 into trunk 2021-06-18 15:17:52 +02:00
Benjamin Lerer bdb7c3b377 Merge branch cassandra-3.11 into cassandra-4.0.0 2021-06-18 15:11:27 +02:00
Benjamin Lerer 91c12bd750 Merge branch cassandra-3.0 into cassandra-3.11 2021-06-18 14:53:54 +02:00
Benjamin Lerer 9b6dd382bd Add flag to disable ALTER...DROP COMPACT STORAGE statements
patch by Benjamin Lerer; review by Andres de la Pena and Brandon Williams for CASSANDRA-16733
2021-06-18 14:42:48 +02:00
Ekaterina Dimitrova 2e9ce1b88f Merge branch 'cassandra-4.0' into trunk 2021-05-18 12:00:33 -04:00
Ekaterina Dimitrova 77a370c424 Add a warning to cqlsh 6.0.0 that DESCRIBE does not work with a Cassandra 3.x servers
patch by Ekaterina Dimitrova; reviewed by Adam Holmberg and Benjamin Lerer for CASSANDRA-16652
2021-05-18 11:51:57 -04:00
Mick Semb Wever d2b57fe463
Create release branch cassandra-4.0, increment trunk version to 4.1 2021-05-01 12:13:59 +02:00
Benjamin Lerer 28e8632c97
Mark StreamingMetrics.ActiveOutboundStreams as deprecated
patch by Benjamin Lerer; reviewed by Mick Semb Wever for CASSANDRA-11174
2021-03-17 14:49:18 +01:00
Adam Holmberg 72ca73fbc6 deprecate python2.7 for cqlsh
Patch by Adam Holmberg; reviewed by brandonwilliams for CASSANDRA-16414
2021-02-26 14:52:38 -06:00
Sam Tunnicliffe c9d6c725dd Promote protocol v5 from beta
Patch by Sam Tunnicliffe; reviewed by Alex Petrov and Eduard Tudenhoefner
for CASSANDRA-14973
2021-02-23 16:46:39 +00: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
Benjamin Lerer f69b11eee9 Improve system tables handling in case of disk failures
patch by Benjamin Lerer; reviewed by Andrés de la Peña and  Marcus
Eriksson for CASSANDRA-14793
2021-02-04 15:04:22 +01:00
Sam Tunnicliffe f87e0eacad Update native protocol v5 spec with new framing format
Also include a note in the Upgrading section of NEWS.txt

Patch by Sam Tunnicliffe; reviewed by Mick Semb Wever, Alex Petrov
and Martin Sucha for CASSANDRA-14688
2021-01-22 14:43:48 +00:00
Jeremy Hanna 3cfc8502b8
Updated default num_tokens from 256 to 16 with associated allocate_tokens_for_local_replication_factor set to 3
patch by Jeremy Hanna; reviewed by Alexander Dejanovski, Paulo Motta, Brandon Williams, Michael Semb Wever for CASSANDRA-13701
2020-12-17 22:18:17 +01:00
Yuki Morishita d9e2ed00af Remove windows scripts and their references
patch by Yuki Morishita; reviewed by Berenguer Blasi and Andrés de la Peña for CASSANDRA-16171
2020-12-02 16:43:45 +00:00
Sylvain Lebresne 9a3ca008ba Merge commit '080280dc0177da6176dd4ba970e5a35aa7e2a729' into trunk 2020-11-27 17:07:31 +01:00
Sylvain Lebresne 080280dc01 Merge commit '2d0b16804785660e8515aca9944784fb3733c619' into cassandra-3.11 2020-11-27 17:06:51 +01:00
Sylvain Lebresne 2d0b168047 Fix serial read/non-applying CAS linearizability
Before this patch, a SERIAL read or a non-applying CAS replay any
in-progress commit by calling `beginAndRepairPaxos`, but only a quorum
of nodes is contacted, so a minority of nodes could have an unfinished
in-progress proposal in their Paxos state. If such in-progress proposal
is not replayed by a SERIAL read/non-applying CAS, it should never be
replayed by any following operation as that would break serializability,
but nothing was done to avoid this.

This patch ensures that both a SERIAL read or a non-applying CAS commit
an empty update before succeeding. This ensures that no prior incomplete
in-progress proposal can be replayed (such proposal will be discarded as
older than the last committed ballot).

As this fix has a performance impact on SERIAL reads, a flag is provided
to disable the new code (even if this is discouraged by a warning).

Patch by Sylvain Lebresne, reviewed by Benjamin Lerer for CASSANDRA-12126
2020-11-27 17:04:56 +01:00
Benjamin Lerer 47278ae376 Use a more informative message when rejecting OldNetworkTopologyStrategy
patch by Benjamin Lerer; reviewed by Erick Ramirez for CASSANDRA-16301

The patch also add an entry to NEWS.txt in the upgrade section to warn
people using the OldNetworkTopologyStrategy
2020-11-26 13:55:45 +01:00
Alex Petrov 79ea1e3736 Fix NEWS.txt entry
Patch by Alex Petrov; reviewed by Ekaterina Dimitrova for CASSANDRA-16217
2020-11-20 18:30:38 +01:00