Commit Graph

1085 Commits

Author SHA1 Message Date
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