25 Collaborator |
Štefan Miklošovič , Caleb Rackliffe , David Capwell , Andrés de la Peña , Marcus Eriksson , Yifan Cai , Francisco Guerrero , Sam Tunnicliffe , Benedict Elliott Smith , Josh McKenzie , Jacek Lewandowski , Jon Meredith , Blake Eggleston , Maxim Muzafarov , Doug Rohrer , Aleksey Yeschenko , Ariel Weisberg , Maxwell Guo , Abe Ratnofsky , Piotr Kołaczkowski , Francisco Guerrero Hernandez , Marcus Ericsson , reviewed by Yifan Cai , reviewed by Francisco Guerrero for CASSANDRA-19119 , ci worker |
77 Patch |
49 Review |
c263cdf6106adbf706bb85991e103e2c6519946c,
52396ec1fc4d08a988714704ff0cbb796ee06f7f,
ff3e5ab76d7ad1386e216eadaf8a1a7e8ea9e0b8,
018feb36f42d28bc11073741ef224b42f9a60ad0,
93ddd3a976a3a1dc6694eba7330598f5f83d2fec,
dc17c29724d86547538cc8116ff1a90d36a0bf3a,
2e05cd4c8dd22e458eb1d2dad9cd34936b470266,
7fe30fc313ac35b1156f5a37d2069e29cded710b,
67139d5c334e58fdc8d9f09f9288155448666cd3,
38512a469cef06770384423d0b30e3e85b511258,
7623e4678b8ef131434f1de3522c6425c092dff9,
6b48f8a11dbad8c0653309eb8193fa6157bba5d8,
0ec5ef2c7035fc93323816140994617a9d953956,
3e6a551dbab6ecdc97b99f9ec3118316bfaf1802,
061cb88b3c7bd6420f5be1c025c8146294338bae,
2924762fa1c29c3658507225e9e5e00853ec58e6,
001f70367e32bd44dc03c30d5533e549bbaea67e,
f7984627e7dd5794dabc099f49ecf80ca3631803,
6b3958f1d83777e295690a663610b6b29ed1efae,
1cb6d3568b0ab9c7ea5a90b56e680d5b79c1d216,
46b90364daecf1880db5eda9899d7353ad81f445,
b10e2693443bb5eb5c9b3d561f8d5e47ac092a8c,
ab142f8d288e522468b5e011677690feb5022510,
439d1b122af334bf68c159b82ef4e4879c210bd5,
bc0c8f6317c71ac24c25a6bf7cf008ad1305868f,
b7e5675edd06f9d6bb8f22aef41c5c2caa698f7b,
9db161f038bfc756614795dc8616bb85572b5eaa,
0989a219ad1242b9591d2323e9b31a79746503f8,
e0766e95bc39358dcd771f1eead6fba5e0b8593c,
f36a518208fae1ca3af914f4a74ef4987238c14a,
e182744cd0f0f1cd3be1e1b396946913de2bc7c8,
a98a5a1d9d40ee3b2952af4e09bd4cc6080fc3fc,
179711eab6907fe3e67f485599df23a82f6dc207,
5f0359b22947613d99a473042424a69ea8cc4ab9,
b45a0e0145f1779e872047ab83b2991ffb8ed199,
f46444b6285fad5453a4ab845b873fc03942ba76,
ae0842372ff6dd1437d026f82968a3749f555ff4,
377e114cb1459895423c292cb0bf7f921fd30e43,
ab481be81da0f06a80e099ca7502b7453ff568d3,
81922c5a7bcbf9db7564a29922c9d8f6222c7cdc,
242f7f9b18db77bce36c9bba00b2acda4ff3209e,
13b265647b510b5caaa1b3dd978b165e4e512214,
e0a2f7da26603f9140e0de4535dda216fae39a8c,
27c6d022c2d7c197be03c7d6ebe22861ca66a04d,
05f4990e91583c2860356804c6945686968c05b5,
fd219336fa5f207d070a68b5f39925df2589aec7,
e314bf47aeece79e858c4bf25869e5fb42908526,
490286ce44f2494cf8c38751c16768c952440d8b,
4a8e4e9077906bc14f6ac19a1aabf4b9ecdefd82,
4ba1bc2d5798c7a10ae122e7c8ec44b3d5242de6,
b3f713e43f2081f96f0682b55d94c7351a8f1448,
2b7563f40317b5d232af1a2d97e62aacc9b135a9,
6ae22097767359a27ed33f6b1fcca79be99c3f39,
8a3748c29048b8005dab098ad031b8f75efd942e,
a8b9869972ddd7adf68e12568d70b2c382ae1ad9,
c0e749ee4f00d20df44cc9a243dac3e747bdd601,
796cfd4359355bcb8c31d072e9c4051a73ec9333,
6e0b450d9df3596d2eb79bfca92edd434cca7035,
6ed308d6a814826be145f6ba30304ea474bf263e,
5570c254df4fd6495c864f4021970ae005a62ce5,
40fb37ec8a4f08dc6a258a50cbdeab92e2894266,
66e93a37dc9d7c0a48ddd86beceb734aca796abd,
275f188660b66743bf3f055c8d7da438ad826061,
c076383eb432670c4d919e9fd0db76296169ea00,
f7b9bb8887ed672185f269ebcbc9d11e6aeafca9,
5785d86ddad62932e21eb427deede09c77352213,
7d46b7c6b005425ff40085d1fad9fa87988cebca,
c55e251dbbeffa35c85aa2d9c1605ff93ac7a340,
bd0761c567d153995a3db8da686ffdc940247200,
0276dfff362de6c8d1a87d6a80f93b3d64041b79,
356fee54d56e1349465fddd20653129338f9ad7b,
a63cac24a2198a5893874cdf72946073854a8d4d,
e45810bbe8793b586c98fae31a08d02ce8f24bde,
449b2b4d0bf4bb44d55a3c57f712a4d5a15e7220,
55bd05a0612acbec29a1bf2ee0cb11d5ef754200,
4c870dc9b561a841ea9b923ff739953adcc00325,
84e89bd91cf1b058fbf314b750336a1ec1096b18 |
4f49ca5e29d9c7207654a1f3c4eac9c9f0b84e5e,
fdabc1f9774b1c06d68a0acbf8a470e45c787eec,
ffc0f01b0eede35518c2838d3c21f440d871c08a,
7f246d541985eb43d6867338f9900d3c93ba10d9,
dc45bb5876aafa2ce7dcfe6a3b7de0f6a9a35fda,
ab1c3e4877f215380dc6881cd7793ab4890ccfb4,
dabcb175527d3c2daef54c6ce029b3c3054b2a77,
cbf4dcb3345c7e2f42f6a897c66b6460b7acc2ca,
728b9ec4c604f6939facf62a261ca795ef6dbf0c,
8d8c6fbc37899ff77be6b3431f99f6951c4c05c2,
63c62618560ad65b5b3e9f4d34b70b8b6dd0a75b,
001f70367e32bd44dc03c30d5533e549bbaea67e,
f7984627e7dd5794dabc099f49ecf80ca3631803,
6ffd2677ee0d01c9e5493703a67255b0148106a4,
87f2a7b7637a346cdeea23e0b74d9968ccfca619,
1a46e96890d924723ccaef42bc8a94ebc2119045,
1df9148ed177ddefd5ffae893756944661419464,
b4701177335216fc6131b9303cfe926da9016129,
28630ccbbf48a484284c0e7a9a6a7aa097136af0,
8d6d1774e4008263bb381ae9d6b14b8f10f12fca,
50273d98e4780b57da37400752eab69e65cd41bc,
7a2bfdc56d2441d27b467614c2b25fe915ae34bf,
26c374da4f03e4a6b64e414805cd92f3eb0a36c6,
43ec1843918aba9e81d3c2dc1433a1ef4740a51f,
ac25d6929e182af772741c7bc2bda38d03ca4b0f,
458bfd16c7ec759705f920e7ef9a8f2bb5a3f4b5,
850336217b438ca8623e26c7efe02c993f82c46b,
2fde9af74f12179fd8b3d592adc9a24d8b2d8f23,
2b2c6decfafc6235ad537e72073fab2fd4467e2f,
d2923275e360a1ee9db498e748c269f701bb3a8b,
b1a8a56c563b85ab9a34d3bbf9c16278dd441157,
203358efd837426f5557df55ed6ca21108e7692e,
e01f467afece244e24429d40c5a2b2c5a8b8239f,
058d2e62ea279b99290f105a67a3ec1df69985a6,
c8453789f8934ebbd817eef09994459c122a72f1,
c629105d15a10d6166ddf393dc38d0b0ab87743d,
d4ecaf80e69ea3bd3d8a9538ae3f70851997b6cf,
c80ec466f5dd633d4fcbaedc5674f183446def34,
520cc1072d44a5f7617566b6667e915532b89033,
f543851dffbf2907580f91608be3c1aadc4ccb95,
61f4ebd21ff34b0807081d9df442236d8c334b52,
8bd9d6980350fa68a1db676a7b10940cf0541fb5,
4ec8d262a750a76744b7f6991b711f85fa41a89a,
d77bdd1a4cd96120868279b665e0abe4ab509a80,
25f23ffec439a921387ca249908798b9cc7d4620,
e45810bbe8793b586c98fae31a08d02ce8f24bde,
107966eeaf69a968dcd736519b6d6199ee28acb1,
a171322f417c117733ca5b514d03a5202b1ac202,
d63d06aafe2e60e57a9651ff6dd491175bbe6916 |
c80ec466f5dd633d4fcbaedc5674f183446def34 | Author: Benedict Elliott Smith <benedict@apache.org>
| 2025-01-04 14:00:16+00:00
FetchRequest should report as unavailable any slice that executes in a later epoch that is not owned by the replicas
Improve:
- Remove GetMaxConflict; use local MaxConflict collection
Fix:
- Invalidated should retain StoreParticipants so we can update CFK on journal replay
- loading pruned uninitialised commands via CFK: make sure hasTouched contains key so that if invalidated we are notified
- updateExecuteAtLeast should always be higher than TxnId
- Async CFK callbacks treated pruned transactions incorrectly
- node.withEpoch when ExecuteEphemeralRead in futureEpoch
- Deps.without should be key/range aware
- Durably mark bootstrapBeganAt and safeToReadAt in MaxConflicts
- Don't attempt to calculate local deps when DepsErased in GetLatestDeps (command has durably applied to this shard)
- filter StoreParticipants before invoking shouldCleanup
- CFK should treat !stillTouches as outOfRange (rather than !touches)
patch by Benedict; reviewed by Alex Petrov for CASSANDRA-20183
c076383eb432670c4d919e9fd0db76296169ea00 | Author: Alex Petrov <oleksandr.petrov@gmail.com>
| 2024-12-06 15:58:16+01:00
Improve topology integration / replay
- integrate topology reloading into burn test
- improve epoch handling
Patch by Alex Petrov; reviewed by Benedict Elliott Smith for CASSANDRA-20142
0276dfff362de6c8d1a87d6a80f93b3d64041b79 | Author: Alex Petrov <oleksandr.petrov@gmail.com>
| 2024-11-27 18:55:15+01:00
Preclude InMemoryJournal from saving Unitialized commands; remove invalidated commands in postExecute
Patch by Alex Petrov; reviewed by Benedict Elliott Smith for CASSANDRA-20121.
f543851dffbf2907580f91608be3c1aadc4ccb95 | Author: Benedict Elliott Smith <benedict@apache.org>
| 2024-11-27 09:48:14+00:00
Fixes
- Fix notifying unmanaged after update redundant before/bootstrap
- Do not infer invalid if we have a single round of replies with minKnown not decided and maxKnown erased - in this case store the knowledge for next request.
- Fix SyncPoint topology selection
- Fix CheckStatusOkFull.with(InvalidIf)
- Fix NotifyWaitingOn
- ExecuteTxn should only contact latest topology for follow-up requests
- DurableBefore.min should not go backwards on new epoch topology, journal replay was not correctly handling PreApplied, partialTxn can be null if not owned
- Fix notify pre-bootstrap that arrives post-bootstrap
- Avoid GC race condition on Propagate where we can incorrectly infer a shard is stale
- Ensure redundantBefore on previously-owned range does not imply redundant before for overlapping queries on still-owned range
- Ensure we don't mark stale unless all of the quorum we contacted had erased, else we may have raced with the agreement and erase
- Fix Invalidate when no route found for FetchData does not report to all requested local epochs
- Fix WAS_OWNED_RETIRED without durableBefore at Universal can lead to assertions with RX that we permit to execute but that have not yet
- Fix initialiseWaitingOn can in some cases transitively notify the command we're updating via maybeCleanup of dependencies, but the command isn't yet updated so isn't ready
- Fix encountering a command that is pre-bootstrap, and for which we have locally 'applied' a supserseding RX, so that we do not know its outcome locally (so we do not cleanup the command), but also it must have been decided - and we should not respond with future dependencies.
- Epoch failures on CoordinatePreAccept should trigger the CoordinatePreAccept failure handler
- Use the shard bound rather than GC bound for fallback dependency
- LatestDeps should be sliced to actual route, so as not to use both PreAccepted AND Stable deps as though Stable
- Fix various callback issues with node.withEpoch and Recover/Propose.isDone
- RecoverWithRoute can encounter a partially truncated transaction where the Deps for one shard are not committed. Must fetch LatestDeps.
- Tighten LatestDeps semantics for Recover
- CommandsForKey: do not restore pruned as APPLIED
- Ensure prune points execute in the epoch in which they are declared
- must merge all fast path votes including those from earlier epochs that may have witnessed a later transaction
- Recoveries that know the transaction is committed a priori should skip the Accept phase
- Maintain GC behaviour for redundant commands that are pre-bootstrap
- don't apply ERASE to CommandsForKey to avoid breaking pruning
- Introduce clearBefore to ProgressLog to more consistently handle cleaning up redundant transactions (and avoid triggering burn test invariants)
- don't replay journal of a bootstrapping node in burn test
- Recover, Accept or Commit reply from epoch that has been retired should be treated as Success rather than Redundant
- Distinguish completely REDUNDANT+PRE_BOOTSTRAP from partially GC_BEFORE and REDUNDANT+PRE_BOOTSTRAP - latter can make stronger inferences based on the GC_BEFORE intersection (could perhaps be treated as simply GC_BEFORE)
- RX must register historical transactions with CFK
- CommandStore.bootstrapper must wait for coordinate sync via same mechanism as sync()
- Don't start topology change for shard where all replicas are already bootstrapping
- Reify executes et al in StoreParticipants
- LocalListeners txn listener reentry may erase the entry entirely
- use registerAt in AbstractRequest for expirations, use correct time for expiresAt in ListAgent
- use txnId.epoch() for pruning, as must be before both txnId and executeAt of prune point for coordinating dependencies
- compute accurate KnownMap when affected by bootstrap or staleness
- upgradeTruncated should calculate Definition and Deps separately
- Invalidate should not sort before Erased when calculating max reply or max knowledge reply
- avoid another infinite loop at end of burn test
- avoid another epoch loading edge case
- pass through low/high epochs to ensure we propagate information to all waiting command stores
- RX must adopt a non-pruned dependency that has a higher TxnId (if is itself behind prune point)
- rejects should also be calculated on COMMITTED started before
- remove Apply Factory wrapper for RX, redundant now we have CoordinationAdapters (and has faulty epoch logic)
- for RX ensure we return maximum writes for each epoch we intersect (same effectively as pruning logic)
- rework updateUnmanaged to improve clarity
- BeginRecovery constructor of LatestDeps should use touches() not owns() for compute localDeps
- BeginRecovery superseding calculation was incorrectly treating startedBefore Committed and Accepted the same, when the point at which a dep should be known differs
- Refactor Command visiting, porting C* integration to accord-core
- RelationMultiMap Builder should resize keys and keyLimits independently
- CommandsForKey Serialization moved to accord-core
- losing ownership of range should trigger re-registration of unmanaged waiting on commit of a no-longer owned txn
patch by Benedict; reviewed by Alex Petrov for CASSANDRA-20172
bd0761c567d153995a3db8da686ffdc940247200 | Author: Alex Petrov <oleksandr.petrov@gmail.com>
| 2024-11-11 18:39:02+01:00
Expose Journal-related files to allow external Journal implementation integration.
Patch by Alex Petrov; reviewed by Benedict Elliott Smith for CASSANDRA-20112.
4f49ca5e29d9c7207654a1f3c4eac9c9f0b84e5e | Author: David Capwell <dcapwell@apache.org>
| 2024-11-08 13:43:50-08:00
TCM's Retry.Deadline#retryIndefinitely is dangerous if used with RemoteProcessor as the deadline does not impact message retries
patch by David Capwell; reviewed by Alex Petrov, Sam Tunnicliffe for CASSANDRA-20059
4ec8d262a750a76744b7f6991b711f85fa41a89a | Author: dcapwell <dcapwell@apache.org>
| 2024-11-06 10:56:07-08:00
Get Harry working on top of Accord and fix various issues found by TopologyMixupTestBase (#134)
patch by David Capwell; reviewed by Alex Petrov, David Capwell for CASSANDRA-20054
d77bdd1a4cd96120868279b665e0abe4ab509a80 | Author: Benedict Elliott Smith <benedict@apache.org>
| 2024-10-16 12:06:42+01:00
Use ExclusiveSyncPoints to join a new topology
For correctness, the dependencies we adopt on joining a new topology must exclude the possibility of respondents accepting additional transactions with a lower TxnId, so proxying on the existing `ExclusiveSyncPoint` mechanisms is logical for the time-being. This patch removes the `FetchMajorityDeps` logic in favour of simply waiting for a suitable `ExclusiveSyncPoint` to be proposed.
patch by Benedict, reviewed by Alex Petrov for CASSANDRA-20056
107966eeaf69a968dcd736519b6d6199ee28acb1 | Author: dcapwell <dcapwell@apache.org>
| 2024-09-27 16:14:41-07:00
CEP-15: (Accord) sequence EpochReady.coordinating to allow syncComplete to be learned from newer epochs (#103)
patch by David Capwell; reviewed by Alex Petrov, Blake Eggleston for CASSANDRA-19769
449b2b4d0bf4bb44d55a3c57f712a4d5a15e7220 | Author: Alex Petrov <oleksandr.petrov@gmail.com>
| 2024-08-28 12:01:53+02:00
Fix CompactionIteratorTest, switch to streaming serialization of SavedCommand
Patch by Alex Petrov; reviewed by David Capwell for CASSANDRA-19865
Co-authored-by: dcapwell <dcapwell@gmail.com>
e45810bbe8793b586c98fae31a08d02ce8f24bde | Author: Alex Petrov <oleksandr.petrov@gmail.com>
| 2024-07-30 20:57:04+02:00
Implement Journal replay on startup:
* reconstruct CFK, TFK, progressLog
* migrate CommandStore collection state from Accord table to the log
* make memtable writes non-durable; reconstruct memtable state from Writes
Patch by Alex Petrov and Benedict Elliott Smith; reviewed by Benedict Elliott Smith and Alex Petrov for CASSANDRA-19869
dc45bb5876aafa2ce7dcfe6a3b7de0f6a9a35fda | Author: Sam Tunnicliffe <samt@apache.org>
| 2024-07-11 19:40:55+01:00
Allow threads waiting for the log follower to be interrupted
Patch by Sam Tunnicliffe and David Capwell; reviewed by Alex Petrov for
CASSANDRA-19761
4c870dc9b561a841ea9b923ff739953adcc00325 | Author: Alex Petrov <oleksandr.petrov@gmail.com>
| 2024-06-17 09:53:43+02:00
Accord Journal / Determinism
* Store intermediate Command states in the log
* Load Command states from the log
Patch by Alex Petrov; reviewed by Benedict Elliott Smith for CASSANDRA-19757
dc17c29724d86547538cc8116ff1a90d36a0bf3a | Author: Alex Petrov <oleksandr.petrov@gmail.com>
| 2024-05-27 21:33:25+02:00
Add native transport deadline, an ultimate deadline for all tasks related to a specific request
* Add an ability to base _replica_ side queries on the queue time
* Use queue time as a base for message timeouts
* Use native transport deadline for internode messages
* Make sure that local runnables respect transport timeouts and deadlines
* Make sure that remote mutation handler respects message expiration times
Patch by Alex Petrov; reviewed by Caleb Rackliffe for CASSANDRA-19534
d63d06aafe2e60e57a9651ff6dd491175bbe6916 | Author: Aleksey Yeschenko <aleksey@apache.org>
| 2024-05-17 13:33:57+01:00
Move preaccept expiration logic away from Agent
patch by Aleksey Yeschenko; reviewed by Alex Petrov, Benedict Elliott Smith, and David Capwell for CASSANDRA-18888
7fe30fc313ac35b1156f5a37d2069e29cded710b | Author: Alex Petrov <oleksandr.petrov@gmail.com>
| 2024-04-24 15:54:23+02:00
Expand DDL statements on coordinator before submission to the CMS
Patch by Alex Petrov; reviewed by Stefan Miklosovic and Sam Tunnicliffe for CASSANDRA-19592
dabcb175527d3c2daef54c6ce029b3c3054b2a77 | Author: Sam Tunnicliffe <samt@apache.org>
| 2024-04-19 09:39:44+01:00
Improve handling of transient replicas during range movements
Patch by Sam Tunnicliffe and Marcus Ericsson; reviewed by Alex Petrov
for CASSANDRA-19344
Co-authored-by: Marcus Eriksson <marcuse@apache.org>
Co-authored-by: Sam Tunnicliffe <samt@apache.org>
728b9ec4c604f6939facf62a261ca795ef6dbf0c | Author: Sam Tunnicliffe <samt@apache.org>
| 2024-04-11 09:04:54+01:00
Revisit metadata log schema to remove period field
Patch by Sam Tunnicliffe and Marcus Eriksson; reviewed by Alex Petrov for CASSANDRA-19482
Co-authored-by: Marcus Eriksson <marcuse@apache.org>
Co-authored-by: Sam Tunnicliffe <samt@apache.org>
38512a469cef06770384423d0b30e3e85b511258 | Author: Alex Petrov <oleksandr.petrov@gmail.com>
| 2024-04-08 13:04:07+02:00
Fix peers v2 system table behaviour when 2 nodes swap their IP Addresses
Throw if node id has been changed and does not match directory. If, however the _ip_ address has changed, issue Startup and correct the IP address. Disallow picking over identity of other nodes via hijacking their IPs or via overriding local node id with theirs.
Patch by Alex Petrov; reviewed by Sam Tunnicliffe for CASSANDRA-19221
7623e4678b8ef131434f1de3522c6425c092dff9 | Author: Alex Petrov <oleksandr.petrov@gmail.com>
| 2024-03-25 10:25:50+01:00
The result of applying a metadata snapshot via ForceSnapshot should return the correct set of modified keys
Patch by Alex Petrov; reviewed by Marcus Eriksson for CASSANDRA-19128.
63c62618560ad65b5b3e9f4d34b70b8b6dd0a75b | Author: Marcus Eriksson <marcuse@apache.org>
| 2024-03-12 08:31:05+01:00
Reimplement ClusterMetadata::writePlacementAllSettled to step through InProgressSequences to determine state when finished.
Patch by marcuse; reviewed by Alex Petrov for CASSANDRA-19193
0ec5ef2c7035fc93323816140994617a9d953956 | Author: Alex Petrov <oleksandr.petrov@gmail.com>
| 2024-03-06 07:58:18+01:00
Preclude irrecoverable log corruption in case split-brain situation during leader election with absent seeds
Patch by Alex Petrov; reviewed my marcuse for CASSANDRA-19153
87f2a7b7637a346cdeea23e0b74d9968ccfca619 | Author: Caleb Rackliffe <calebrackliffe@gmail.com>
| 2024-01-19 04:39:02-06:00
Avoid over-skipping of key iterators from static column indexes during mixed intersections
patch by Caleb Rackliffe; reviewed by Piotr Kołaczkowski and Alex Petrov for CASSANDRA-19278
Co-authored-by: Caleb Rackliffe <calebrackliffe@gmail.com>
Co-authored-by: Piotr Kołaczkowski <pkolaczk@gmail.com>
6b48f8a11dbad8c0653309eb8193fa6157bba5d8 | Author: Alex Petrov <oleksandr.petrov@gmail.com>
| 2024-01-17 19:12:43+01:00
Harry model that supports value overrides: an ability to provide specific values for clustering, regular, and static columns
Patch by Alex Petrov; reviewed by Caleb Rackliffe for CASSANDRA-19284
001f70367e32bd44dc03c30d5533e549bbaea67e | Author: Caleb Rackliffe <calebrackliffe@gmail.com>
| 2024-01-11 23:13:56-06:00
Harry model and in-JVM tests for partition-restricted 2i queries
patch by Caleb Rackliffe; reviewed by Alex Petrov for CASSANDRA-18275
Co-authored-by: Caleb Rackliffe <calebrackliffe@gmail.com>
Co-authored-by: Alex Petrov <oleksandr.petrov@gmail.com>
6ffd2677ee0d01c9e5493703a67255b0148106a4 | Author: Marcus Eriksson <marcuse@apache.org>
| 2023-12-14 10:25:02+01:00
Remove sealed_periods and last_sealed_period tables
Patch by marcuse; reviewed by Sam Tunnicliffe and Alex Petrov for CASSANDRA-19189
Co-authored-by Sam Tunnicliffe <samt@apache.org>
f36a518208fae1ca3af914f4a74ef4987238c14a | Author: Alex Petrov <oleksandr.petrov@gmail.com>
| 2023-12-01 13:03:12+01:00
Fix test Failure: MixedModeFrom3LoggedBatchTest.testSimpleStrategy
The problem was that read command is deserialising serialisedAt epoch as null by default and not as Empty, causing NPE.
Patch by Alex Petrov; reviewed by Sam Tunnicliffe CASSANDRA-19066.
179711eab6907fe3e67f485599df23a82f6dc207 | Author: Alex Petrov <oleksandr.petrov@gmail.com>
| 2023-11-30 14:06:08+01:00
Improve the situation with timeouts of all fuzz tests.
Since we would wait for request timeout, even if one progress barrier message gets lost,
we would fail the test, since we would wait for 10 minutes of timeout. But since _commit_
is paused, we could just attempt to retry, and only one of the attempts will succeed.
Patch by Alex Petrov; reviewed by Marcus Eriksson for CASSANDRA-19123
5f0359b22947613d99a473042424a69ea8cc4ab9 | Author: Alex Petrov <oleksandr.petrov@gmail.com>
| 2023-11-30 14:04:02+01:00
Fix ConsistentMoveTest: nodes were getting stuck in assertGossipStatus, since we would log the message, but never change the actual gossip status.
Patch by Alex Petrov; reviewed by Marcus Eriksson for CASSANDRA-19123
203358efd837426f5557df55ed6ca21108e7692e | Author: Sam Tunnicliffe <samt@apple.com>
| 2023-11-28 12:45:30+00:00
Make test_replace_address.py less sensitive to delay
When verifying a replacement, we grep the node log for messages matching
a certain pattern. This makes the check less sensitive to minor
variations in when exactly those messages appear in the log.
Patch by Sam Tunnicliffe; reviewed by Alex Petrov for CASSANDRA-19067
4ba1bc2d5798c7a10ae122e7c8ec44b3d5242de6 | Author: Alex Petrov <oleksandr.petrov@gmail.com>
| 2023-11-28 11:01:15+01:00
Improvements / changes required for Transactional Metadata testing:
* Add an ability to run sequential r/w for more deterministic results
* Implement Network Topology Strategy
* Add all pds iterator to ops selector
* Make sure to log when detecting that a run starts against a dirty table
* Fix a concurrency issue with reorder buffer
* Add some safety wheels / debugging instruments
* Add a pd selector symmetry test
* Make it simpler to write and log
* Rename sequential rw to write before read
* Avoid starving writers by readers and vice versa
* Add a minimal guide for debugging falsifications
* Fix select peers query for local state checker
* Add examples for programmatic configuration
Co-authored-by: Josh McKenzie <jmckenzie@apache.org>
Co-authored-by: Abe Ratnofsky <abe@aber.io>
f7984627e7dd5794dabc099f49ecf80ca3631803 | Author: Caleb Rackliffe <calebrackliffe@gmail.com>
| 2023-11-27 18:35:26-06:00
Avoid possible consistency violations for SAI intersection queries over partially updated rows at consistency levels that require reconciliation
- Replica filtring protection now correctly accounts for short reads caused by coordinator filtering of merged rows.
- There is a new flag in ReadCommand that indicates whether the user query it belongs to requires reconciliation.
- Local SAI queries now degrade intersections to unions on unrepaired data if reconciliation is required and multiple mutable columns are restricted.
patch by Caleb Rackliffe; reviewed by Andres de la Peña and Alex Petrov for CASSANDRA-19018
Co-authored-by: Caleb Rackliffe <calebrackliffe@gmail.com>
Co-authored-by: Alex Petrov <oleksandr.petrov@gmail.com>
e01f467afece244e24429d40c5a2b2c5a8b8239f | Author: Sam Tunnicliffe <samt@apple.com>
| 2023-11-27 16:02:00+00:00
Make test_move_single_node more robust
Make pushed_notifications_test::TestPushedNotifications::test_move_single_node
less dependent on timing and the order in which nodes start native interface
Patch by Sam Tunnicliffe; reviewed by Alex Petrov for CASSANDRA-19088
e182744cd0f0f1cd3be1e1b396946913de2bc7c8 | Author: Alex Petrov <oleksandr.petrov@gmail.com>
| 2023-11-24 17:39:43+01:00
Introduce 5.1 messaging format that brings in Epoch
Patch by Alex Petrov; reviewed by Sam Tunnicliffe CASSANDRA-19066.
ae0842372ff6dd1437d026f82968a3749f555ff4 | Author: Sam Tunnicliffe <samt@apache.org>
| 2023-11-23 18:39:11+00:00
Implementation of Transactional Cluster Metadata as described in CEP-21
An overview of the core components can be found in the included
TransactionalClusterMetadata.md
patch by Alex Petrov, Marcus Eriksson and Sam Tunnicliffe; reviewed by
Alex Petrov, Marcus Eriksson and Sam Tunnicliffe for CASSANDRA-18330
Co-authored-by: Marcus Eriksson <marcuse@apache.org>
Co-authored-by: Alex Petrov <oleksandr.petrov@gmail.com>
Co-authored-by: Sam Tunnicliffe <samt@apache.org>
7a2bfdc56d2441d27b467614c2b25fe915ae34bf | Author: Jacek Lewandowski <lewandowski.jacek@gmail.com>
| 2023-11-07 16:18:54+01:00
Fix incorrect seeking through the sstable iterator by IndexState
Patch by Jacek Lewandowski; reviewed by Alex Petrov and Maxim Muzafarov for CASSANDRA-18932
26c374da4f03e4a6b64e414805cd92f3eb0a36c6 | Author: Francisco Guerrero <frank.guerrero@gmail.com>
| 2023-03-09 12:11:20-08:00
Synchronize CQLSSTableWriter#build on the Schema.instance object
In this commit the `org.apache.cassandra.io.sstable.CQLSSTableWriter#build` method synchronizes on the
`Schema.instance` object (instead of the `CQLSSTableWriter.class`) to prevent concurrent schema operations
to fail when the offline tools also updates the schema.
For example, a table creation operation, which modifies the keyspace tables metadata, might end up
missing the update when a concurrent call to the `CQLSSTableWriter#build` method is accessing the
singleton Schema instance.
Patch by Francisco Guerrero, reviewed by Yifan Cai, Maxwell Guo, Alex Petrov for CASSANDRA-18317.
a8b9869972ddd7adf68e12568d70b2c382ae1ad9 | Author: Alex Petrov <oleksandr.petrov@gmail.com>
| 2023-03-09 17:28:44+01:00
Allow selecting subsets of columns and wilcard queries.
Open API for hand-crafting both mutation and read queries
Improve errors
Fix a problem with corruptor sorting
Patch by Alex Petrov for CASSANDRA-17603.
6ed308d6a814826be145f6ba30304ea474bf263e | Author: Alex Petrov <oleksandr.petrov@gmail.com>
| 2023-03-09 17:13:18+01:00
Pull in Cassandra concurrent utils until there is a common shared library
Patch by Alex Petrov; reviewed by Caleb Rackliffe and Abe Ratnofsky for CASSANDRA-18315
d4ecaf80e69ea3bd3d8a9538ae3f70851997b6cf | Author: Abe Ratnofsky <abe@aber.io>
| 2022-10-17 12:54:44+02:00
Improvements:
* formatting
* thread shutdown on failed run creation
* idempotent query execution
* retry delay
Patch by Abe Ratnofsky; reviewed by Alex Petrov for CASSANDRA-18315.
ac25d6929e182af772741c7bc2bda38d03ca4b0f | Author: Josh McKenzie <jmckenzie@apache.org>
| 2022-09-06 15:43:38-04:00
Better handle null state in Gossip schema migration to avoid NPE
Patch by Marcus Eriksson; reviewed by Josh McKenzie and Alex Petrov for CASSANDRA-17864
Co-authored-by: Marcus Eriksson <marcuse@apache.org>
Co-authored-by: Josh McKenzie <jmckenzie@apache.org>
377e114cb1459895423c292cb0bf7f921fd30e43 | Author: Josh McKenzie <jmckenzie@apache.org>
| 2022-08-25 15:27:24-04:00
Introduce compaction priorities to prevent upgrade compaction inability to finish
Patch by Alex Petrov; reviewed by Josh McKenzie and Marcus Eriksson for CASSANDRA-17851
Co-authored-by: Alex Petrov <oleksandr.petrov@gmail.com>
Co-authored-by: Josh McKenzie <jmckenzie@apache.org>
ab481be81da0f06a80e099ca7502b7453ff568d3 | Author: Josh McKenzie <jmckenzie@apache.org>
| 2022-08-23 14:37:17-04:00
Fix potential IndexOutOfBoundsException in PagingState in mixed mode clusters
Patch by Alex Petrov; reviewed by Josh McKenzie, Sam Tunnicliffe, and Aleksey Yeschenko for CASSANDRA-17840
Co-authored-by: Alex Petrov <oleksandr.petrov@gmail.com>
Co-authored-by: Josh McKenzie <jmckenzie@apache.org>
458bfd16c7ec759705f920e7ef9a8f2bb5a3f4b5 | Author: Jacek Lewandowski <lewandowski.jacek@gmail.com>
| 2022-04-26 14:43:49+02:00
Add information info whether sstables are dropped or not to SchemaChangeListener
patch by Jacek Lewandowski; reviewed by Alex Petrov for CASSANDRA-17582
2fde9af74f12179fd8b3d592adc9a24d8b2d8f23 | Author: David Capwell <dcapwell@apache.org>
| 2022-04-08 10:16:41-07:00
Clients using JMX are unable to handle non-standard java types but we leak this into our interfaces
patch by David Capwell; reviewed by Alex Petrov, Andres de la Peña for CASSANDRA-17527
c8453789f8934ebbd817eef09994459c122a72f1 | Author: dcapwell <dcapwell@gmail.com>
| 2022-03-28 11:29:33-07:00
Renamed isAllowVnodes and disallowVNodes to allow more control over when vnode or single token are supported (#32)
patch by David Capwell; reviewed by Alex Petrov, Josh McKenzie for CASSANDRA-17332
242f7f9b18db77bce36c9bba00b2acda4ff3209e | Author: Alex Petrov <oleksandr.petrov@gmail.com>
| 2022-01-10 17:24:28+01:00
Fix Prepared Statements behaviours after 15252
Patch by Alex Petrov; reviewed by Marcus Eriksson for CASSANDR-17248.
Co-authored-by: Marcus Eriksson <marcuse@apache.org>
275f188660b66743bf3f055c8d7da438ad826061 | Author: Alex Petrov <oleksandr.petrov@gmail.com>
| 2021-11-25 08:45:00+01:00
Features:
* Implement lookbehind via tracker callbacks
* Improve DSL
* Rename maxLts to peek
* Split lts visitors from visitors
* Allow create table if not exists
* Allow sampler to be triggered at every LTS
* Allow local state validator to always run
* Add Staged Runner
* Add wait for token ranges
* Make keyspace DDL configurable
* Rename PartitionVisitor to Visitor
Bugfixes:
* Fix for queue draining
* Fix distribution of the single-op values
* Fix bug in schema helper: static columns are listed as duplicates
Patch by Alex Petrov for CASSANDRA-16262
Co-authored-by: Caleb Rackliffe <calebrackliffe@gmail.com>
b1a8a56c563b85ab9a34d3bbf9c16278dd441157 | Author: Marcus Eriksson <marcuse@apache.org>
| 2021-05-04 09:56:32+02:00
Avoid race in AbstractReplicationStrategy endpoint caching
Patch by marcuse; reviewed by Alex Petrov and Jon Meredith for CASSANDRA-16673
Co-authored-by: Jon Meredith <jonmeredith@apache.org>
d2923275e360a1ee9db498e748c269f701bb3a8b | Author: Benedict Elliott Smith <benedict@apache.org>
| 2020-03-30 15:24:12+01:00
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