Mmuzaf opened a new pull request, #4254:
URL: https://github.com/apache/cassandra/pull/4254
- **Increasing default for auto_repair.sstable_upper_threshold considering
large Cassandra tables**
- **CASSANDRA-20609 - CQLSSTableWriter should support setting the format
(5.0)**
- **Accords gradle build fails due to ephemeral issues with rat and
checkstyle**
- **Improved UCS docs with migration advice and example workloads.**
- **Improved UCS docs with migration advice and example workloads.**
- **Remove Accord CQL words from the reserved keywords list**
- **zero copy streaming allocates direct memory that isn't used, but does
help to fragment the memory space**
- **zero copy streaming allocates direct memory that isnt used, but does
help to fragment the memory space**
- **zero copy streaming allocates direct memory that isnt used, but does
help to fragment the memory space**
- **Fix AutoRepair Flaky InJvm dtest**
- **Fix a bug in AutoRepair duration metric calculation if schedule finishes
quickly**
- **Write user docs for CEP-24 - Password validation / generation**
- **Reading mmapped trie-index exceeding 2GiB results in exception**
- **Reading mmapped trie-index exceeding 2GiB results in exception**
- **Rewrite constraint framework to remove column specification from
constraint definition, introduce SQL-like NOT NULL**
- **Fix AccordMigrationTest not marking nodes down correctly**
- **When a custom disk error handler fails to initiate, fail the startup of
a node instead of using the no-op handler**
- **Optimize initial skipping logic for SAI queries on large partitions**
- **Use MAX_PARALLEL_TRANSFERS instead of default**
- **Use MAX_PARALLEL_TRANSFERS instead of default**
- **Handle sstable metadata stats file getting a new mtime after compaction
has finished**
- **Ninja: remove .orig file from repository**
- **Prepare debian changelog for 4.1.9**
- **Avoid duplicate hardlink error upon forceful taking of ephemeral
snapshots during repair**
- **Relax validation of snapshot name as a part of SSTable files path
validation**
- **Stop AutoRepair monitoring thread upon Cassandra shutdown**
- **Migrate sstableloader code to its own tools directory and artifact**
- **Add documentation for Accord ops and CQL developer guide**
- **bump build.xml version**
- **Introduce NativeAccessor to avoid new ByteBuffer allocation on flush for
each NativeCell**
- **Fix cassandra-cqlsh-tests.sh on python <= 3.8**
- **Prepare debian changelog for 4.0.18**
- **Gossip doesn't converge due to race condition when updating
EndpointStates multiple fields**
- **Accord: Retry epoch/topology metadata fetch on all peer nodes**
- **Make metadata components forgiving during startup**
- **Avoid CQLSH throwing an exception loading .cqlshrc on non-supported
platforms**
- **Remove auto-installation of golang when generating native protocol doc
pages**
- **Avoid lambda usage in TrieMemoryIndex range queries and ensure queue
size tracking is per column**
- **Unified Compaction does not properly validate min and target sizes**
- **Ensure prepared_statement INSERT timestamp precedes eviction DELETE**
- **Ensure replica filtering protection does not trigger unnecessary short
read protection reads**
- **increment version**
- **Enabling single sstable uplevel by default**
- **Ninja fix CHANGES.txt**
- **Accord Fixes: - cfk pruning+prebootstrap=invalid future dependency -
exclude retired ranges when filtering RX stillTouches - propagate uses
incorrect lowEpoch when fetch finds additional owned/touched ranges -
node.withEpoch should callback with TopologyRetiredException, not throw -
Recovery can race with durable-applied pruning; must not send durable unless
latest ballot on apply - removeRedundantDependencies was not slicing
pre-bootstrap range calculation to participating ranges - NPE in
TopologyManager.atLeast caused by referencing an epoch that has been GC'd -
use journal durableBeforePersister in burn test, not NOOP_PERSISTER -
ServerUtils.cleanupDirectory use tryDeleteRecursive - FsyncRunnable shutdown
- fix NPE in AccordJournalBurnTest**
- **ninja: remove unused imports in AccordJournalBurnTest to pass ant
checkstyle-test**
- **Backport CASSANDRA-20469 (Paxos repair interrupts running transactions)
to 4.1 and 5.0**
- **Support for add and replace in IntervalTree**
- **Mark JDK 17 as production ready**
- **Add additional metrics around hints**
- **CASSANDRA-18119 followup - test fix, create STATS component when using
BtiFormat**
- **Adopt Unsafe::invokeCleaner for Direct ByteBuffer cleaning**
- **Fixes - Don't assume stillExecutes applies to remote request - must
mark unavailable any keys we don't have the txn definition for - Don't exit
notifyManagedPreBootstrap notify loop early, as could have later transactions
with lower txnId - CoordinateEphemeralRead must retry if insufficient
responses from replicas that still own the range - Burn test terminates while
non-recurring tasks pending on command store queues - Infinite recovery due to
not sending InformDurable when partially truncated - Incorrect participants
when invoking removeRedundantDependencies - Infinite bootstrap loop on retired
topology Improve - Do not perform linear filters of CommandStores or
Topologies - Some default implementations of forEach/iterator -
TopologyRetiredException messages**
- **Fix MAX_SEGMENT_SIZE < chunkSize in MmappedRegions::updateState**
- **Accord: startup race condition where accord journal tries to access the
2i index before its ready**
- **Fix: - Do not query local topology when deciding what keys to fetch to
avoid TopologyRetiredException - Ensure we propagate information back to the
requesting CommandStore by using the store id to ensure it is included -
BurnTest topology fetching was broken by earlier patch - Topology callbacks
were not being invoked as we were not calling .begin() - Topology mismatch
failure during notAccept phase was not being reported due to
CoordinatePreAccept already having isDone==true**
- **Accord Fixes: - AccordJournal should not attempt to construct expunged
commands - ready/notReady logic can break if we receive a partial Route that
does not cover the local store - Invariant.require -> TopologyRetiredException
- validate min/max in TopologyManager.preciseEpochs Improve: -
ExecuteSyncPoint should send Apply**
- **CASSANDRA-20699 Fix SAI virtual table names in documentation**
- **Get SAI MemtableIndex refs before SSTableIndex refs at query time**
- **ninja follow-up to CASSANDRA-20713: fix SSTableReaderTest**
- **Make Commitlog flush data safely in Direct IO mode**
- **Erase should consistently erase all content Also Fix: -
slowCoordinatorDelay should bound its start point, and log more detail if its
expectations are breached - Erased SaveStatus can be reported for all queried
owned participants on a replica (the saved participants have been erased)**
- **Avoid re-serializing all-equivalent topologies**
- **Accord Fixes / Improvements:**
- **Fix CRC errors in Journal**
- **Allow unsafe startup if accord.journal.failurePolicy is set to
ALLOW_UNSAFE_STARTUP**
- **Revert changes to serving FetchCMSLog/FetchPeerLog requests & remove
ReconstructLogState**
- **Fix journal out of order iteration**
- **Fix visiting same key multiple times during replay**
- **Accord Improvements: * Further relax conditions of 'unsafe' startup
* Allow skipping unfinished allocations * Relax assertion: allow same key
accross multiple different stores * Fix SegmentTest**
- **Mark last min known epoch - 1 as "truncated"**
- **Improve journal corruption detection**
- **Make durability service listen to topology changes**
- **Fix StackOverflow exception on topology replay with a large number of
active epochs/topologies**
- **Accord Fixes / Improvments:**
- **Avoid waiting for topology indefinitely; print out debug string if
topology can not be fetched**
- **Ninja: fix compilation after rebase**
- **Accord: BEGIN TRANSACTIONs IF condition logic does not properly support
meaningless emptiness and null values**
- **Improve: - Introduce SequentialAgentExecutor -
ExecuteEphemeralRead.LocalExecute (matching ExecuteTxn.LocalExecute) - remove
AgentExecutor (agent() only used as implementation detail) - Skip
CommandStore/CommandsForKey on read or apply, when safe to do so - Implement
maybeExecuteImmediately - Faster maxTimestamp Fix: - Marking vestigial
without knowing all covering keys - Incorrect size in WaitingOn.none -
Cleanup RX that are not known but are no longer needed, due to being defunct -
Home should not abort because of local truncation; may still be incomplete on
another shard - Invalidate infinite loop due to interpreting Vestigial as a
possible decision (as though it were another Truncated state) -
Known.isTruncated reporting incorrect answer in some cases, leading to infinite
RecoverWithRoute loops as not slicing to correct subset and some shards are
truncated and reject the deps collection - BurnTest slowCoordinatorDelay
should grow with retryCount - NotAccept s
hould check both ballot and saveStatus; PreCommitted or later can be
propagated by Apply that has an earlier ballot - Handle awaiting locally
retired epoch - Fix propagate low epoch of sync points - Fix
GetEphemeralReadDeps.reduce NPE - Don't use tombstones to ERASE journal
entries, as want to produce an Erased SaveStatus until EXPUNGE**
- **(Accord) Fix: - Attempt to fix CommandsForKey StackOverflowError
(presumed to be reachable via SaveStatus->InternalStatus map returning null) -
Bound recursion with SafeCommandStore.tryRecurse() - IndexOutOfBoundsException
in CINTIA checkpoint list encoding bounds logic - Maintain MaxDecidedRX to
save majority of work when deciding RX that are newer than those we have
previously agreed - Introduce IntervalBTree and use in CommandsForRanges to
limit time spent in critical section when there are millions of RX**
- **Ninja for CASSANDRA-20667: Fixing checkstyle for
src/java/org/apache/cassandra/service/accord/txn/AbstractParameterisedVersionedSerialized.java**
- **Ninja for CASSANDRA-20727: fixed imports for
src/java/org/apache/cassandra/utils/btree/BTree.java**
- **Ensuring Row reference is only used for IS Null/IS Not Null expressions**
- **Follow-up to CASSANDRA-20726: - Fix shouldCleanup handling of
erase/expunge - Fix CommandChange handling of minUniqueHlc being cleared -
Don't clear minUniqueHlc when fast applying; instead simply validate
!isWaiting**
- **Fix topology reporting bugs**
- **Avoid availability gap between UP and queryability marking for already
built SAI indexes on bounce**
- **Fix flakey test AbstractTypeTest#meaninglessEmptyness why is equality so
hard**
- **Fix: - Cannot shrink CommandsForKey if loading pruned - NoSpamLogger
to suppress AccordSyncPropagator repeats - Minor performance improvement to
BTree.Subtraction - EphemeralReads should retry in a later epoch if
replication factor changes - Fix no local epoch for NotAccept - Invalidate a
command with no route but for which we know we own some key that has applied
locally - Don't pre-merge existing DurableBefore, to reduce
duplicate/redundant persistence - Misc purging bugs and improve testing of
purging**
- **Limit the number of held heap dumps to not consume disk space
excessively**
- **Fix: - Lock inversion when restarting durability for erased sync point
- Initialise durability cycle start time Improve: - Improve durability
reporting - Timeout durability requests - DurabilityQueue concurrency should
limit only until quorum is achieved - Some exceptions that may be thrown when
starting coordination may not be propagated**
- **Ensure CassandraIndexTest sets up properly when using SAI in the wake of
CASSANDRA-20732**
- **Improve: - Journal debugging vtable support - Background task tracing
support Fix: - HLC_BOUND only valid for strictly lower HLC - HAS_UNIQUE_HLC
can only be safely computed if READY_TO_EXECUTE - Break recursion in
CommandStore.ensureReadyToCoordinate - Fix find intersecting shard scheduler
- Separate adhoc ShardScheduler from normal to avoid overwriting - Should
still use execution listeners to detect invalid reads for certain transactions
even with dataStoreDetectsFutureReads**
- **Standardise Replay logic to ensure SafeCommandStore.update is called
Also Fix: - Initialise home state when calling waiting() if not already
initialised - Don't reportClosed/reportRetired for epochs that are already
closed/retired Also Improve: - Implement waitForQuiescence in AccordExecutor
- Permit replay parallelism**
- **SSTableIndexWriter#abort() should log more quietly in cases where an
exception is not provided**
- **Stream individual files in their own transactions and hand over
ownership to a parent transaction on completion**
- **Accord: Topology serializer has a lot of repeated data, can dedup to
shrink the cost**
- **CASSANDRA-20698 Fix the internal console appender logger used to test
cli tools**
Thanks for sending a pull request! Here are some tips if you're new here:
* Ensure you have added or run the [appropriate
tests](https://cassandra.apache.org/_/development/testing.html) for your PR.
* Be sure to keep the PR description updated to reflect all changes.
* Write your PR title to summarize what this PR proposes.
* If possible, provide a concise example to reproduce the issue for a
faster review.
* Read our [contributor
guidelines](https://cassandra.apache.org/_/development/index.html)
* If you're making a documentation change, see our [guide to documentation
contribution](https://cassandra.apache.org/_/development/documentation.html)
Commit messages should follow the following format:
```
<One sentence description, usually Jira title or CHANGES.txt summary>
<Optional lengthier description (context on patch)>
patch by <Authors>; reviewed by <Reviewers> for CASSANDRA-#####
Co-authored-by: Name1 <email1>
Co-authored-by: Name2 <email2>
```
The [Cassandra
Jira](https://issues.apache.org/jira/projects/CASSANDRA/issues/)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]