src/java/org/apache/cassandra/locator/ReplicaPlans.java (10 lines): - line 224: * TODO: if we track the latency of the counter writes (which makes sense - line 244: // TODO have a way to compute the consistency level - line 681: * TODO: Transient Replication C-14404/C-14665 - line 682: * TODO: We employ this even when there is no monotonicity to guarantee, - line 755: Replicas.temporaryAssertFull(liveAndDown.all()); // TODO CASSANDRA-14547 - line 759: // TODO: we should cleanup our semantics here, as we're filtering ALL nodes to localDC which is unexpected for ReplicaPlan - line 766: // TODO: this should use assureSufficientReplicas - line 824: * TODO: this is still very inconistently managed between {LOCAL,EACH}_QUORUM and other consistency levels - should address this in a follow-up - line 864: // TODO: this is unsafe, as one.range() may be inconsistent with our supplied range; should refactor Range/AbstractBounds to single class - line 1048: null, // TODO (TCM) - we only use the recomputed ForRangeRead to check stillAppliesTo - make sure passing null here is ok src/java/org/apache/cassandra/index/accord/CheckpointIntervalArrayIndex.java (9 lines): - line 51: //TODO (now): Add support for variable length tokens; this is needed for Ordered partitioner (which we plan to support) - line 126: //TODO (performance): rather than row structure, would column structure be better? Sorted tokens tend to have prefix relationships - line 129: //TODO (performance): store min/max values so could filter based off metadata without having to walk the tree first? This means that the metadata - line 131: //TODO (fault tolerence): right now there is no checksumming outside of the header, so a corruption in the middle - line 134: //TODO (fault tolerence): maybe replace readStart/End with readRecord and extrat the value from there, this makes it so it would be trivial to add a checksum per-record. - line 172: //TODO (now): don't need as this was here only for SAI. Offset/position are the same now - line 379: private final long position; //TODO (now): don't need as this was here only for SAI. Offset/position are the same now - line 428: //TODO (performance): the current format assumes random list access is cheap, which isn't true for a disk index. - line 502: //TODO (now): currently does SAI header so offset isn't correct here and need position src/java/org/apache/cassandra/service/accord/AccordCache.java (8 lines): - line 82: * TODO (required): we only iterate over unreferenced entries - line 143: // TODO (required): monitor this queue and periodically clean up entries, or implement an eviction deadline system - line 294: // TODO (expected): use listeners - line 400: // TODO (desired): don't need to store key separately as stored in node; ideally use a hash set that allows us to get the current entry - line 699: // TODO (expected): deprecate this in favour of a histogram snapshot of any point in time - line 1203: return null; // TODO (expected): should we manage this with the waiting callback? more work, but maybe cleaner/clearer/safer - line 1237: // TODO (required): log, and make sure callers correctly handle null - line 1242: // TODO (required): test and make sure recover safely from exceptions OR log and return null src/java/org/apache/cassandra/service/StorageProxy.java (8 lines): - line 290: Replicas.temporaryAssertFull(selected); // TODO CASSANDRA-14548 - line 297: Replicas.temporaryAssertFull(selected); // TODO CASSANDRA-14548 - line 752: // TODO: provided commits don't invalid the prepare we just did above (which they don't), we could just wait - line 1635: Replicas.temporaryAssertFull(wrapper.handler.replicaPlan.liveAndDown()); // TODO: CASSANDRA-14549 - line 1657: Replicas.temporaryAssertFull(sendTo); // TODO: CASSANDRA-14549 - line 2255: // TODO (required): Converge on a single approach to RETRY_NEW_PROTOCOL, this works for now because reads don't support it anyways - line 2273: // TODO (review): 95% sure this isn't actually needed and the consumer is going consume these by DecoratedKey not iteration order, but the non-transactional path does preserve the order of the iterators - line 2535: // TODO avoid giving every command the same latency number. Can fix this in CASSADRA-5329 src/java/org/apache/cassandra/service/accord/interop/AccordInteropExecution.java (7 lines): - line 181: // TODO (required): compare this to latest logic in Accord, make sure it makes sense - line 228: // TODO (desired): It would be better to use the re-use the command from the transaction but it's fragile - line 231: // TODO (required): understand interop and whether StableFastPath is appropriate - line 276: // TODO (required): This doesn't use the metadata from the correct epoch - line 319: // TODO (required): To make migration work we need to validate that the range is all on Accord - line 347: // TODO (expected): use normal query nano time - line 415: // TODO (expected): We should send the read in the same message as the commit. This requires refactor ReadData.Kind so that it doesn't specify the ordinal encoding src/java/org/apache/cassandra/service/accord/api/AccordAgent.java (7 lines): - line 91: // TODO (expected): merge with AccordService - line 125: // TODO (expected): better reporting - line 175: // TODO (expected): we probably want additional configuration here so we can prune on shorter time horizons when we have a lot of transactions on a single key - line 188: // TODO (expected): we probably want additional configuration here - line 230: // TODO (expected): make this a configurable calculation on normal request latencies (like ContentionStrategy) - line 256: // TODO (expected): make this a configurable calculation on normal request latencies (like ContentionStrategy) - line 273: // TODO (desired): separate config? src/java/org/apache/cassandra/service/accord/AccordJournal.java (7 lines): - line 326: // TODO (required): what happens on failure? - line 344: // TODO: avoid allocating keys - line 380: // TODO (expected): this can be further improved to avoid allocating lambdas - line 382: // TODO (expected): for those where we store an image, read only the first entry we find in DESC order - line 834: // TODO (expected): skip - line 841: // TODO (expected): skip - line 845: // TODO (expected): skip src/java/org/apache/cassandra/tcm/ClusterMetadata.java (6 lines): - line 188: // TODO: token map is a feature of the specific placement strategy, and so may not be a relevant component of - line 330: // TODO Remove this as it isn't really an equivalent to the previous concept of pending ranges - line 340: // TODO Remove this as it isn't really an equivalent to the previous concept of pending ranges - line 358: // TODO Remove this as it isn't really an equivalent to the previous concept of pending ranges - line 384: // TODO Remove this as it isn't really an equivalent to the previous concept of pending endpoints - line 870: // TODO is this supposed to be missing fields? src/java/org/apache/cassandra/service/accord/txn/TxnUpdate.java (6 lines): - line 99: // TODO (required): this node could be on version N while the peers are on N-1, which would have issues as the peers wouldn't know about N yet. - line 102: // TODO (desired): slice TxnCondition, or pick a single shard to persist it - line 162: // TODO: It doesn't seem to affect correctness, but should we return the union of the fragment + condition keys? - line 177: // TODO: Slice the condition. - line 185: // TODO: Slice the condition. - line 204: // TODO: special method for linear merging keyed and non-keyed lists simultaneously src/java/org/apache/cassandra/service/accord/AccordConfigurationService.java (6 lines): - line 67: // TODO (desired): listen to FailureDetector and rearrange fast path accordingly - line 129: //TODO (required): should not be public - line 259: // TODO (desired, efficiency): there should be no need to notify every epoch for every removed node - line 280: // TODO (now): it seems to be incorrect to mark remote syncs complete if/when node got removed. - line 452: // TODO (required): replace with SortedArraySet when it is available - line 503: // TODO (expected): ensure we aren't fetching a truncated epoch; otherwise this should be non-null src/java/org/apache/cassandra/service/accord/AccordTask.java (6 lines): - line 117: // TODO (desired): these anonymous ops are somewhat tricky to debug. We may want to at least give them names. - line 197: // TODO (expected): merge all of these maps into one - line 201: // TODO (expected): collection supporting faster deletes but still fast poll (e.g. some ordered collection) - line 665: // TODO (required): currently, we are not very efficient about ensuring that we persist the absolute minimum amount of state. Improve that. - line 802: // TODO (expected): we should destructively iterate to avoid invoking second time in fail; or else read and set to null - line 1044: // TODO (expected): produce key summaries to avoid locking all in memory src/java/org/apache/cassandra/service/accord/AccordCommandStore.java (5 lines): - line 81: // TODO (required): track this via a PhantomReference, so that if we remove a CommandStore without clearing the caches we can be sure to release them - line 252: // TODO (desired): we use this for executing callbacks with mutual exclusivity, - line 480: // TODO (required): validate we don't have duplicate objects - line 576: // TODO (expected): handle journal failures, and consider how we handle partial failures. - line 578: // TODO (desired): consider merging with PersistentField? This version is cheaper to manage which may be preferable at the CommandStore level. src/java/org/apache/cassandra/service/paxos/PaxosPrepare.java (5 lines): - line 247: * TODO: we should consider waiting for more responses in case we encounter any successful commit, or a majority - line 418: // TODO: extend Sync? - line 502: // TODO: once 5.1 is the minimum supported version, we can stop sending and checking gossipInfo and just - line 753: // TODO: consider this more; is it possible we cause problems by reproposing an old accept? - line 1122: // TODO when 5.1 is the minimum supported version we can modify verifyElectorate to just return this epoch src/java/org/apache/cassandra/service/accord/AccordFetchCoordinator.java (5 lines): - line 275: // TODO (required): check epoch - line 276: // TODO (required): handle dropped tables - line 281: // TODO (required): may also be relocation - line 354: // TODO (desired): this could be serialized as an InetAddressAndPort and Ranges if we had a special case PartialTxn implementation - line 429: // TODO (required): verify that streaming snapshots have all been created by now, so we won't stream any data that arrives after this src/java/org/apache/cassandra/service/paxos/Paxos.java (5 lines): - line 784: // TODO "turn null updates into delete?" - what does this TODO even mean? - line 841: // TODO: should return more useful result to client, and should also avoid this situation where possible - line 959: // TODO https://issues.apache.org/jira/browse/CASSANDRA-18276 side effects shouldn't matter for reads - line 967: // TODO: should return more useful result to client, and should also avoid this situation where possible - line 1157: // TODO: increase read size each time this happens? src/java/org/apache/cassandra/cql3/statements/TransactionStatement.java (5 lines): - line 312: // TODO: OR support - line 457: // TODO: Test case around this... - line 576: // TODO: This could be modified to return an indication of whether a condition (if present) succeeds. - line 705: // TODO: Eliminate/modify this check if we allow full tuple selections. - line 733: // TODO: If we eventually support IF ks.function(ref) THEN, the keyspace will have to be provided here src/java/org/apache/cassandra/service/accord/AccordObjectSizes.java (5 lines): - line 174: + key(route.homeKey()); // TODO (desired): we will probably dedup homeKey, serializer dependent, but perhaps this is an acceptable error - line 198: + key(route.homeKey()); // TODO (desired): we will probably dedup homeKey, serializer dependent, but perhaps this is an acceptable error - line 263: // TODO (expected): this doesn't measure the backing arrays, is inefficient; - line 335: // TODO (expected): TruncatedAwaitsOnlyDeps - line 412: // TODO (desired): this doesn't correctly account for object padding of bitset arrays src/java/org/apache/cassandra/service/accord/txn/TxnQuery.java (5 lines): - line 210: // TODO (required): This is not the cluster metadata of the current transaction - line 270: // TODO (lowpri): This could look at read keys vs write keys to see if it can run in more cases - line 284: // TODO (required): This is looking at ClusterMetadata, but not the ClusterMetadata for the specified epoch, just that epoch or later. Need to store ConsensusMigrationState in the global Topologies Accord stores for itself. - line 293: // TODO (required): This is looking at ClusterMetadata, but not the ClusterMetadata for the specified epoch, just that epoch or later. Need to store ConsensusMigrationState in the global Topologies Accord stores for itself. - line 311: // TODO (required): This is looking at ClusterMetadata, but not the ClusterMetadata for the specified epoch, just that epoch or later. Need to store ConsensusMigrationState in the global Topologies Accord stores for itself. src/java/org/apache/cassandra/journal/Journal.java (4 lines): - line 119: // TODO (required): we do not need wait queues here, we can just wait on a signal on a segment while its byte buffer is being allocated - line 149: // TODO (required): panic - line 263: // TODO (expected): why are we awaitingTermination here when we have a separate method for it? - line 914: //TODO (desired): wait for the ActiveSegment to get released, else can see weird race conditions; src/java/org/apache/cassandra/schema/TableMetadata.java (4 lines): - line 207: // performance hacks; TODO see if all are really necessary - line 662: * TODO: it's probably worth lifting the limitation of not allowing counters as map values. It works fully - line 747: // TODO simplify this when info.index_name is guaranteed to be set - line 1494: * TODO: does not belong here, should be gone src/java/org/apache/cassandra/io/sstable/format/SSTableReader.java (4 lines): - line 152: * TODO: fill in details about Tracker and lifecycle interactions for tools, and for compaction strategies - line 171: // TODO: should we set this by default on all scheduled executors? - line 697: * TODO do not return a closeable resource or return a shared copy - line 1196: * TODO: Move someplace reusable src/java/org/apache/cassandra/service/accord/AccordDataStore.java (4 lines): - line 77: // TODO (desired): maintain a list of Accord tables, perhaps in ClusterMetadata? - line 88: // TODO (required): is it safe to ignore null table metadata / cfs? - line 97: // TODO (required): when we can safely map TxnId.hlc() -> local timestamp, consult Memtable timestamps - line 110: // TODO (required): is it safe to ignore null cfs? src/java/org/apache/cassandra/index/SecondaryIndexManager.java (4 lines): - line 929: // TODO: Determine whether "dropData" should guard this or be passed to Group#invalidate() - line 1183: * TODO : improve cleanup transaction to batch updates and perform them async - line 1614: * TODO : make this smarter at batching updates so we can use a single transaction to process multiple rows in - line 1723: * TODO : make this smarter at batching updates so we can use a single transaction to process multiple rows in src/java/org/apache/cassandra/service/consensus/migration/ConsensusRequestRouter.java (4 lines): - line 252: // TODO (important): Why are these two cases paxosV2 instead of `pickPaxos`? - line 481: // TODO (nicetohave): this could be enhanced to check the token or the range during migration or work in other modes besides full - line 614: // TODO (nicetohave): Efficiency of this intersection - line 776: //TODO (later): https://issues.apache.org/jira/browse/CASSANDRA-20211 Range reads could use a barrier pylib/cqlshlib/copyutil.py (4 lines): - line 64: # TODO: review this for MacOS, maybe use in ('Linux', 'Darwin') - line 769: # TODO: fix this logic added in 4.0: if previous is None, then it can't be compared with less than - line 2642: # TODO: revisit tuple wrapper - line 2665: # TODO: review why this is defined twice src/java/org/apache/cassandra/utils/concurrent/WaitQueue.java (4 lines): - line 78: * TODO: this class should not be backed by CLQ (should use an intrusive linked-list with lower overhead) - line 241: // TODO: this is only necessary because we use CLQ - which is only for historical any-NIH reasons - line 268: // TODO: attempt to remove the cancelled from the beginning only (need atomic cas of head) - line 298: * TODO: use intrusive linked list src/java/org/apache/cassandra/index/sasi/utils/trie/PatriciaTrie.java (4 lines): - line 130: // TODO: Cleanup so that we don't actually have to add/remove from the - line 203: // TODO: Cleanup so that we don't actually have to add/remove from the - line 291: // TODO: Cleanup so that we don't actually have to add/remove from the - line 326: // TODO: Cleanup so that we don't actually have to add/remove from the src/java/org/apache/cassandra/service/accord/AccordJournalValueSerializers.java (4 lines): - line 39: // TODO (required): test with large collection values, and perhaps split out some fields if they have a tendency to grow larger - line 40: // TODO (required): alert on metadata size - line 41: // TODO (required): versioning - line 243: // TODO: maybe using local serializer is not the best call here, but how do we distinguish src/java/org/apache/cassandra/service/StorageService.java (3 lines): - line 3871: // TODO this is a godawful way to track progress, since they flush in parallel. a long one could - line 4571: // TODO: remove method? - line 4577: // TODO: remove method? src/java/org/apache/cassandra/cql3/transactions/RowDataReference.java (3 lines): - line 195: // TODO: Make this more user-friendly... - line 239: // TODO: Ideally it would be nice not to have to make items in the Selectables public - line 285: // TODO: confirm update partition key terms don't contain column references. This can't be done in prepare src/java/org/apache/cassandra/utils/SystemInfo.java (3 lines): - line 45: // TODO: Determine memlock limits if possible - line 46: // TODO: Determine if file system is remote or local - line 47: // TODO: Determine if disk latency is within acceptable limits src/java/org/apache/cassandra/service/accord/AccordKeyspace.java (3 lines): - line 132: // TODO (desired): implement a custom type so we can get correct sort order - line 298: // TODO (expected): garbage-free filtering, reusing encoding - line 535: // TODO (desired): convert to byte array src/java/org/apache/cassandra/db/compaction/CompactionIterator.java (3 lines): - line 352: // TODO: this should probably be done asynchronously and batched. - line 837: // TODO (required): if the store has been retired, this should return null - line 1092: // TODO (required): should return null only if commandStore has been removed src/java/org/apache/cassandra/batchlog/BatchlogManager.java (3 lines): - line 606: // TODO: this logic could do with revisiting at some point, as it is unclear what its rationale is - line 640: Replicas.temporaryAssertFull(liveAndDown.all()); // TODO in CASSANDRA-14549 - line 666: // TODO: should we be hinting here, since presumably batch log will retry? Maintaining historical behaviour for the moment. src/java/org/apache/cassandra/service/paxos/PaxosState.java (3 lines): - line 373: // TODO would be nice to refactor verb handlers to support re-submitting to executor if waiting for another thread to read state - line 677: // TODO: Consider not answering in the committed ballot case where there is no need to save anything or answer at all - line 726: // TODO: run Paxos Repair before truncate so we can excise this src/java/org/apache/cassandra/service/accord/AccordCacheEntry.java (3 lines): - line 219: // TODO (expected): we aren't weighing the keys - line 227: // TODO (expected): we aren't weighing the keys - line 393: // TODO (expected): do we want to always cancel in-progress saving? src/java/org/apache/cassandra/db/ColumnFamilyStore.java (3 lines): - line 257: // TODO - make this Epoch.EMPTY - line 1307: * TODO: SecondaryIndex should support setBarrier(), so custom implementations can co-ordinate exactly - line 2386: // TODO: Can we write directly to stream, skipping disk? src/java/org/apache/cassandra/service/accord/serializers/ReadDataSerializers.java (3 lines): - line 226: // TODO (expected): use something other than ordinal - line 292: // TODO (desired): duplicates ReadTxnData ser/de logic; conside deduplicating if another instance of this is added - line 324: // TODO (desired): duplicates a lot of Commit serializer src/java/org/apache/cassandra/service/accord/AccordSyncPropagator.java (3 lines): - line 90: ImmutableSet syncComplete = ImmutableSet.of(); // TODO (desired): propagate ack's for other nodes - line 282: // TODO (efficiency, now): for larger clusters this can be a problem as we trigger 1 msg for each instance, so in a 1k cluster its 1k messages; this can cause a thundering herd problem - line 285: // TODO (correctness, now): during a host replacement multiple epochs are generated (move the range, remove the node), so its possible that notify will never be able to send the notification as the node is leaving the cluster src/java/org/apache/cassandra/locator/ReplicaPlan.java (3 lines): - line 310: // TODO: this is only needed because of poor isolation of concerns elsewhere - we can remove it soon, and will do so in a follow-up patch - line 360: // TODO: this method can return a collection of received responses that apply, and an explanation on why - line 438: * TODO: there's no reason this couldn't be achieved instead by a ReplicaPlan with mutable contacts, src/java/org/apache/cassandra/db/view/TableViews.java (3 lines): - line 427: // TODO: This is subtle: we need to gather all the slices that we have to fetch between partition del, range tombstones and rows. - line 440: // TODO: we should improve that latter part. - line 494: // TODO: we could still make sense to special case for when there is a single view and a small number of updates (and src/java/org/apache/cassandra/db/compaction/CompactionManager.java (3 lines): - line 774: // TODO review: Hack to get local partitioner not to fail out because it's handled very poorly with data placements - line 2177: // TODO: this is a bit ugly, but no uglier than it was - line 2254: // TODO: pull out relevant parts of CompactionExecutor and move to ValidationManager src/java/org/apache/cassandra/service/accord/AccordExecutor.java (3 lines): - line 399: // TODO (expected): adopt queue position of the submitting task - line 611: // TODO (expected): offer queue jumping/priorities - line 815: // TODO (expected): if the new task is higher priority, replace next src/java/org/apache/cassandra/service/accord/AccordService.java (3 lines): - line 787: //TODO (expected): check depth - line 937: // TODO (required): expose awaitTermination in Node - line 982: // TODO (required): relax this requirement - too expensive src/java/org/apache/cassandra/locator/AbstractReplicaCollection.java (3 lines): - line 53: * TODO: there's nothing about this collection that's unique to Replicas, and the implementation - line 80: * TODO flatten into AbstractReplicaCollection? - line 472: * TODO: this isn't terribly pretty, but we need sometimes to select / merge two Endpoints of unknown type; src/java/org/apache/cassandra/cql3/restrictions/SimpleRestriction.java (3 lines): - line 148: // TODO only map elements supported for now in restrictions - line 157: // TODO only map elements supported for now in restrictions - line 388: // TODO only map elements supported for now src/java/org/apache/cassandra/index/sai/disk/v1/segment/VectorIndexSegmentSearcher.java (3 lines): - line 216: // VSTODO would it be better to do a binary search to find the boundaries? - line 250: // VSTODO now that we know the size of keys evaluated, is it worth doing the brute - line 286: // VSTODO I'm not sure which one is more expensive (and it depends on things like sstable chunk cache hit ratio) src/java/org/apache/cassandra/cql3/statements/schema/AlterSchemaStatement.java (3 lines): - line 55: // TODO: not sure if this is going to stay the same, or will be replaced by more efficient serialization/sanitation means - line 101: // TODO: validation should be performed during application - line 134: * TODO: document src/java/org/apache/cassandra/cql3/statements/ModificationStatement.java (3 lines): - line 890: // TODO: Temporary fix for CASSANDRA-20079 - line 1157: // TODO: if this is a txn and has a read name, and updates non-static columns, confirm it selects an entire row - line 1255: // TODO: get working with static-only updates that don't specify any/all primary key columns tools/stress/src/org/apache/cassandra/stress/StressAction.java (3 lines): - line 82: // TODO : move this to a new queue wrapper that gates progress based on a poisson (or configurable) distribution - line 133: // TODO : permit varying more than just thread count - line 134: // TODO : vary thread count based on percentage improvement of previous increment, not by fixed amounts src/java/org/apache/cassandra/db/transform/BaseIterator.java (2 lines): - line 52: // TODO: consider moving "next" into here, so that a stop() when signalled outside of a function call (e.g. in attach) - line 152: // TODO: ensure that top-level data is consistent. i.e. staticRow, partitionlevelDeletion etc are same? src/java/org/apache/cassandra/index/sai/memory/VectorMemoryIndex.java (2 lines): - line 237: // VSTODO this is dramatically oversimplified - line 335: // VSTODO maybe we can abuse "current" to avoid having to pop and re-add the last skipped key src/java/org/apache/cassandra/config/Config.java (2 lines): - line 272: // TODO: derive defaults from system memory settings? - line 1451: // TODO Revisit MessagingService::current_version src/java/org/apache/cassandra/gms/Gossiper.java (2 lines): - line 1935: // TODO: (TM/alexp): we do not need to wait for gossip to settle anymore, since main keys are now coming from TM - line 2000: // TODO: (TM/alexp): we do not need to wait for schema convergence for the purpose of view building; src/java/org/apache/cassandra/locator/ReplicaLayout.java (2 lines): - line 221: // TODO: cleanup/remove Keyspace overloads - line 375: * TODO: we should really double check that the provided range does not overlap multiple token ring regions src/java/org/apache/cassandra/tcm/Commit.java (2 lines): - line 374: // TODO: this response message can get lost; how do we re-discover this on the other side? - line 375: // TODO: what if we have holes after replaying? src/java/org/apache/cassandra/schema/TableId.java (2 lines): - line 81: // TODO: should we be using UUID.randomUUID()? - line 228: // TODO (desired): we could use 6 bits of the byte for encoding the vint header and avoid any extra bytes in most cases src/java/org/apache/cassandra/config/AccordSpec.java (2 lines): - line 126: * TODO (expected): make this a table property - line 127: * TODO (expected): adjust this by proportion of ring src/java/org/apache/cassandra/tcm/RemoteProcessor.java (2 lines): - line 236: //TODO (now): the retry defines how long to wait for a retry, but the old behavior scheduled the message right away... should this be delayed as well? - line 279: // TODO: there are no retries here src/java/org/apache/cassandra/io/util/File.java (2 lines): - line 53: * TODO codebase probably should not use tryList, as unexpected exceptions are hidden; - line 125: this(Paths.get(path)); //TODO unsafe if uri is file:// as it uses default file system and not File.filesystem src/java/org/apache/cassandra/db/rows/NativeCell.java (2 lines): - line 138: public ByteBuffer value()// FIXME: add native accessor - line 146: return ByteBufferAccessor.instance; // FIXME: add native accessor src/java/org/apache/cassandra/service/accord/txn/TxnWrite.java (2 lines): - line 368: // TODO (required): why FROM_REMOTE? - line 437: // TODO (expected): optimise for the common single update case; lots of lists allocated src/java/org/apache/cassandra/serializers/DurationSerializer.java (2 lines): - line 66: try (DataInputBuffer in = new DataInputBuffer(accessor.toBuffer(value), true)) // TODO: make a value input buffer - line 85: try (DataInputBuffer in = new DataInputBuffer(accessor.toBuffer(value), true)) // FIXME: value input buffer src/java/org/apache/cassandra/journal/Flusher.java (2 lines): - line 77: private final WaitQueue fsyncComplete = newWaitQueue(); // TODO (expected): this is only used for testing, can we remove this? - line 561: // TODO (required): tie this to specific allocations.. src/java/org/apache/cassandra/service/accord/txn/AccordUpdateParameters.java (2 lines): - line 81: // TODO : How should Accord work with TTL? - line 106: // TODO (review): Is this the right DK being passed into that matches what we used to store in TxnDataName src/java/org/apache/cassandra/journal/InMemoryIndex.java (2 lines): - line 42: // TODO: this could easily be premature and misguided; - line 77: return current; // TODO (expected): throw exception? src/java/org/apache/cassandra/db/lifecycle/Tracker.java (2 lines): - line 106: * @param loadsstables true to indicate to load SSTables (TODO: remove as this is only accessed from 2i) - line 451: // TODO: if we're invalidated, should we notifyadded AND removed, or just skip both? src/java/org/apache/cassandra/cql3/selection/Selectable.java (2 lines): - line 800: // TODO try to pass in a target to this API - line 808: // TODO try to pass in a target to this API src/java/org/apache/cassandra/service/accord/interop/AccordInteropStableThenRead.java (2 lines): - line 65: // TODO (desired): duplicates a lot of StableThenReadSerializer - line 115: // TODO (required): why is this safe to execute at PreApplied? Document. src/java/org/apache/cassandra/service/consensus/migration/TableMigrationState.java (2 lines): - line 73: // TODO Move this into the schema for the table once this is based off of TrM - line 341: // TODO should there be an index to make this more efficient? src/java/org/apache/cassandra/cql3/transactions/ReferenceOperation.java (2 lines): - line 98: // TODO: Find a better way than delegating to the operation? - line 173: // TODO: Is there a way to do this without exposing k and idx? src/java/org/apache/cassandra/cql3/transactions/ConditionStatement.java (2 lines): - line 42: // TODO: Support for IN, CONTAINS, CONTAINS KEY - line 139: // TODO: Support for references on LHS and RHS src/java/org/apache/cassandra/db/ReadCommandVerbHandler.java (2 lines): - line 211: // TODO: preexisting issue: for the range queries or queries that span multiple replicas, we can only make requests where the right token is owned, but not the left one - line 226: // TODO: preexisting issue: we should change the whole range for transient-ness, not just the right token src/java/org/apache/cassandra/service/consensus/TransactionalMode.java (2 lines): - line 63: * // TODO to safely migrate you would have to route all writes through Accord with the current implementation - line 89: // TODO (maybe): These unsafe modes don't have Accord do async commit and single replica reads so how useful are they besides preserving non-SERIAL performance? src/java/org/apache/cassandra/index/sai/disk/v1/bbtree/BlockBalancedTreeWriter.java (2 lines): - line 224: // TODO: we could optimize/specialize, when we know it's simply fully balanced binary tree - line 439: // TODO: can we do this cheaper, e.g. a closed form solution instead of while loop? Or src/java/org/apache/cassandra/service/TimeoutStrategy.java (2 lines): - line 75: * TODO (expected): permit simple constant addition (e.g. p50+5ms) - line 76: * TODO (required): track separate stats per-DC as inputs to these decisions src/java/org/apache/cassandra/tcm/log/LocalLog.java (2 lines): - line 80: // TODO metrics for contention/buffer size/etc - line 852: // TODO handle properly src/java/org/apache/cassandra/tcm/ownership/PlacementProvider.java (2 lines): - line 34: // TODO naming - line 45: // TODO: maybe leave, for consistency? src/java/org/apache/cassandra/locator/DynamicEndpointSnitch.java (2 lines): - line 51: * // TODO rename to DynamicNodeProximity or similar - but take care with jmx interface - line 172: // TODO: avoid copy src/java/org/apache/cassandra/tcm/ownership/DataPlacement.java (2 lines): - line 51: // TODO make tree of just EndpointsForRange, navigable by EFR.range() - line 52: // TODO combine peers into a single entity with one vote in any quorum src/java/org/apache/cassandra/cql3/statements/schema/CreateFunctionStatement.java (2 lines): - line 85: // TODO: replace affected aggregates !! - line 154: // TODO: update dependent aggregates src/java/org/apache/cassandra/db/filter/RowFilter.java (2 lines): - line 734: // TODO: we should try to merge both code someday. - line 860: // TODO: we should try to merge both code someday. src/java/org/apache/cassandra/db/virtual/AccordDebugKeyspace.java (2 lines): - line 116: // TODO (consider): use a different type for the three timestamps in micros - line 396: // TODO (desired): human readable packed key tracker (but requires loading Txn, so might be preferable to only do conditionally) src/java/org/apache/cassandra/utils/concurrent/ListenerList.java (2 lines): - line 162: // TODO: suboptimal package interdependency - move FutureTask etc here? - line 194: // TODO: suboptimal package interdependency - move FutureTask etc here? tools/stress/src/org/apache/cassandra/stress/generate/PartitionIterator.java (2 lines): - line 48: // TODO: we should batch the generation of clustering components so we can bound the time and size necessary to - line 187: // TODO : support first/last row, and constraining reads to rows we know are populated src/java/org/apache/cassandra/schema/DistributedMetadataLogKeyspace.java (2 lines): - line 130: // TODO get lowest supported metadata version from ClusterMetadata - line 170: * TODO: this is a rather expensive operation, and should be use sparingly. If we decide we need to src/java/org/apache/cassandra/cql3/QueryProcessor.java (2 lines): - line 1111: // TODO: if the function has multiple overload, we could invalidate only the statement refering to the overload - line 1121: // TODO: if the function has multiple overload, we could invalidate only the statement refering to the overload src/java/org/apache/cassandra/utils/btree/BTree.java (2 lines): - line 2124: * TODO: test - line 2180: // TODO: test src/java/org/apache/cassandra/service/reads/range/RangeCommandIterator.java (2 lines): - line 199: //TODO (expected): https://issues.apache.org/jira/browse/CASSANDRA-20210 More efficient reads across command stores - line 279: // TODO (review): Should this be reworked to execute the queries serially from the iterator? It would respect src/java/org/apache/cassandra/dht/OrderPreservingPartitioner.java (2 lines): - line 102: * TODO: Does not acknowledge any codepoints above 0xFFFF... problem? - line 343: // TODO (required): test src/java/org/apache/cassandra/streaming/StreamSession.java (2 lines): - line 897: * TODO: Consider revising this to returning a boolean and allowing callers upstream to handle that. - line 1314: //TODO (now, review): there were 2 tests that use this (nothing else) and both are checking that its > 1... but in both cases they are checking if there are transfer tasks, but there isn't any as the range doesn't have data... src/java/org/apache/cassandra/schema/Schema.java (2 lines): - line 154: // TODO reimplement perf fix from CASSANDRA-18921 - line 332: // TODO: it _might_ be useful to avoid eagerly initializing distributed keyspaces, especially in src/java/org/apache/cassandra/io/sstable/metadata/MetadataCollector.java (1 line): - line 108: // TODO: cound the number of row per partition (either with the number of cells, or instead) src/java/org/apache/cassandra/concurrent/ScheduledThreadPoolExecutorPlus.java (1 line): - line 56: // TODO: this sequence of events seems poorly thought out src/java/org/apache/cassandra/repair/SharedContext.java (1 line): - line 55: // TODO (required, clarity): move under Util since this is a class with shared logic src/java/org/apache/cassandra/service/reads/range/AccordRangeResponse.java (1 line): - line 51: // TODO (required): Handle retry on different system src/java/org/apache/cassandra/io/util/ChannelProxy.java (1 line): - line 145: // FIXME: consider wrapping in a while loop src/java/org/apache/cassandra/service/accord/serializers/ResultSerializers.java (1 line): - line 29: // TODO (expected): this is meant to encode e.g. whether the transaction's condition met or not for clients to later query src/java/org/apache/cassandra/transport/Server.java (1 line): - line 296: // TODO: should we be using the GlobalEventExecutor or defining our own? src/java/org/apache/cassandra/tools/SSTableLevelResetter.java (1 line): - line 65: // TODO several daemon threads will run from here. src/java/org/apache/cassandra/service/accord/AccordCommandStores.java (1 line): - line 266: //TODO (expected): shutdown isn't useful by itself, we need a way to "wait" as well. Should be AutoCloseable or offer awaitTermination as well (think Shutdownable interface) src/java/org/apache/cassandra/transport/Compressor.java (1 line): - line 36: * TODO: We can probably do more efficient, like by avoiding copy. src/java/org/apache/cassandra/index/accord/RouteJournalIndex.java (1 line): - line 527: //TODO (coverage): everything below here never triggered... src/java/org/apache/cassandra/service/accord/serializers/TxnRequestSerializer.java (1 line): - line 55: // TODO: there should be a base epoch src/java/org/apache/cassandra/db/ReadCommand.java (1 line): - line 535: * TODO: We'll currently do filtering by the rowFilter here because it's convenient. However, src/java/org/apache/cassandra/cql3/terms/Vectors.java (1 line): - line 80: // TODO - this doesn't feel right... if you are dealing with a literal then the value is `null`, so we will ignore src/java/org/apache/cassandra/tcm/transformations/cms/BaseMembershipTransformation.java (1 line): - line 44: // TODO: to node id src/java/org/apache/cassandra/db/commitlog/DirectIOSegment.java (1 line): - line 101: // TODO move the alignment calculations to PageAware src/java/org/apache/cassandra/cql3/statements/UpdateStatement.java (1 line): - line 365: // TODO: Make sure there's more than a tuple name here...i.e. an actual reference column? src/java/org/apache/cassandra/tcm/Retry.java (1 line): - line 33: // TODO (expected): unwrap this, use RetryStrategy directly src/java/org/apache/cassandra/tcm/sequences/BootstrapAndJoin.java (1 line): - line 347: // TODO this is reused by BootstrapAndReplace, should we move it somewhere common? src/java/org/apache/cassandra/service/accord/AccordFastPathCoordinator.java (1 line): - line 159: // TODO: start check routine src/java/org/apache/cassandra/utils/btree/BTreeSet.java (1 line): - line 235: // TODO: if we ever use this method, it can be specialized quite easily for SortedSet arguments src/java/org/apache/cassandra/db/SystemKeyspace.java (1 line): - line 1640: // TODO Period won't be necessary eventually src/java/org/apache/cassandra/tcm/sequences/UnbootstrapStreams.java (1 line): - line 210: // TODO each call to transferRanges re-flushes, this is potentially a lot of waste tools/stress/src/org/apache/cassandra/stress/util/Uncertainty.java (1 line): - line 27: // TODO: do not assume normal distribution of measurements. src/java/org/apache/cassandra/index/sai/plan/StorageAttachedIndexSearcher.java (1 line): - line 121: // VSTODO performance: if there is shadowed primary keys, we have to at least query twice. src/java/org/apache/cassandra/schema/DistributedSchema.java (1 line): - line 326: // TODO: handle drops after snapshots tools/stress/src/org/apache/cassandra/stress/generate/values/Dates.java (1 line): - line 36: // TODO: let the range of values generated advance as stress test progresses src/java/org/apache/cassandra/repair/RepairMessageVerbHandler.java (1 line): - line 102: // TODO add cancel/interrupt message src/java/org/apache/cassandra/audit/AuditLogOptionsCompositeData.java (1 line): - line 43: // TODO these constants will be used in upcoming audit log vtable too, see CASSANDRA-16725 src/java/org/apache/cassandra/net/MessageDelivery.java (1 line): - line 177: // TODO (required): we already have a separate retry predicate, retries should not be taken into consideration when retrying src/java/org/apache/cassandra/index/accord/RangeMemoryIndex.java (1 line): - line 209: //TODO (performance): if the RangeTree can return the data in sorted order, then this local can become faster src/java/org/apache/cassandra/service/accord/AccordJournalTable.java (1 line): - line 235: if (!tableRecordConsumer.visited(segment)) //TODO (required): don't need this anymore src/java/org/apache/cassandra/db/streaming/CassandraEntireSSTableStreamWriter.java (1 line): - line 62: * TODO: this currently requires a companion thread, but could be performed entirely asynchronously src/java/org/apache/cassandra/index/sai/disk/v1/postings/PostingsReader.java (1 line): - line 98: //TODO This should need to change because we can potentially end up with postings of more than Integer.MAX_VALUE? src/java/org/apache/cassandra/service/accord/AccordMessageSink.java (1 line): - line 181: // TODO (expected): permit bulk send to save esp. on callback registration (and combine records) src/java/org/apache/cassandra/db/rows/RowIterators.java (1 line): - line 39: // TODO: we're not computing digest the same way that old nodes. This is src/java/org/apache/cassandra/db/SerializationHeader.java (1 line): - line 317: // TODO: this imply we don't read data for a column we don't yet know about, which imply this is theoretically src/java/org/apache/cassandra/service/CassandraDaemon.java (1 line): - line 337: // TODO samt - when restarting a previously running instance, this needs to happen after reconstructing schema src/java/org/apache/cassandra/net/AbstractMessageHandler.java (1 line): - line 710: break; // TODO: traverse the entire queue to unblock handlers that have expired or invalidated tickets src/java/org/apache/cassandra/locator/EndpointsByReplica.java (1 line): - line 61: // TODO: consider all ignoreDuplicates cases src/java/org/apache/cassandra/cql3/Operations.java (1 line): - line 189: //TODO substitutions as well? src/java/org/apache/cassandra/io/sstable/format/SortedTableWriter.java (1 line): - line 80: // TODO dataWriter is not needed to be directly accessible - we can access everything we need for the dataWriter src/java/org/apache/cassandra/tcm/membership/NodeState.java (1 line): - line 45: // TODO: probably we can make these states even more nuanced, and track which step each node is on to have a simpler representation of transition states src/java/org/apache/cassandra/index/sai/StorageAttachedIndexBuilder.java (1 line): - line 215: //TODO Shouldn't do this if the stop was interrupted by a truncate tools/stress/src/org/apache/cassandra/stress/util/JmxCollector.java (1 line): - line 79: // TODO: should expand to whole cluster src/java/org/apache/cassandra/index/accord/RouteMemtableIndexManager.java (1 line): - line 56: //TODO (performance): we dropped jdk8 and this was fixed in jdk8... so do we need to do this still? src/java/org/apache/cassandra/cql3/terms/Lists.java (1 line): - line 484: // TODO: is this safe as part of LWTs? src/java/org/apache/cassandra/journal/OnDiskIndex.java (1 line): - line 44: * TODO (expected): block-level CRC src/java/org/apache/cassandra/db/compaction/UnifiedCompactionStrategy.java (1 line): - line 381: // TODO - modify ShardManager::isOutOfDate to take an Epoch src/java/org/apache/cassandra/io/util/SequentialWriter.java (1 line): - line 107: // TODO: we should specify as a parameter if we permit an existing file or not src/java/org/apache/cassandra/io/sstable/format/big/BigTableReader.java (1 line): - line 594: // TODO: merge with caller's firstKeyBeyond() work,to save time src/java/org/apache/cassandra/locator/AbstractReplicationStrategy.java (1 line): - line 55: // TODO: remove keyspace name; add a cache that allows going between replication params and replication strategy src/java/org/apache/cassandra/service/consensus/migration/ConsensusTableMigration.java (1 line): - line 373: // TODO (review): Should disabling incremental repair be exposed for the Paxos repair in case someone explicitly does not do incremental repair? src/java/org/apache/cassandra/config/CassandraRelevantProperties.java (1 line): - line 574: // TODO: not a fan of being forced to prefix these to satisfy the alphabetic ordering constraint src/java/org/apache/cassandra/db/DeletionInfo.java (1 line): - line 35: * TODO: it would be safer to have 2 actual implementation of DeletionInfo, one mutable and one that isn't (I'm src/java/org/apache/cassandra/index/internal/composites/CompositesSearcher.java (1 line): - line 143: // TODO: it's much more efficient to do 1 read for all hits to the same partition than doing src/java/org/apache/cassandra/streaming/StreamRequest.java (1 line): - line 98: // TODO: It would be nicer to actually serialize the partitioner rather than infer it from the keyspace src/java/org/apache/cassandra/dht/RangeStreamer.java (1 line): - line 701: // TODO: Also remove the files on disk. See discussion in CASSANDRA-17679 src/java/org/apache/cassandra/service/accord/txn/TxnReference.java (1 line): - line 224: // TODO: confirm all references can be satisfied as part of the txn condition src/java/org/apache/cassandra/schema/SchemaProvider.java (1 line): - line 244: // TODO: remove? src/java/org/apache/cassandra/net/AsyncStreamingInputPlus.java (1 line): - line 228: // TODO: let's remove this like we did for AsyncChannelOutputPlus src/java/org/apache/cassandra/db/rows/ComplexColumnData.java (1 line): - line 154: // TODO: this can be turned into a simple multiplication, at least while we have only one Cell implementation src/java/org/apache/cassandra/net/LatencySubscribers.java (1 line): - line 29: * FIXME: rename/specialise, since only used by DES? src/java/org/apache/cassandra/utils/Nemesis.java (1 line): - line 34: * TODO: Support @Nemesis on methods, to insert nemesis points either before or after invocations of the method src/java/org/apache/cassandra/utils/memory/BufferPool.java (1 line): - line 390: // TODO (future): it would be preferable to use a CLStack to improve cache occupancy; it would also be preferable to use "CoreLocal" storage src/java/org/apache/cassandra/service/accord/CommandsForRanges.java (1 line): - line 49: // TODO (required): move to accord-core, merge with existing logic there src/java/org/apache/cassandra/tcm/sequences/LockedRanges.java (1 line): - line 74: // TODO might we need the ability for the holder of a key to lock multiple sets over time? src/java/org/apache/cassandra/tcm/log/Entry.java (1 line): - line 176: // TODO properly handle ipv6 src/java/org/apache/cassandra/schema/SchemaDiagnostics.java (1 line): - line 26: // TODO: re-wire schema diagnostics events src/java/org/apache/cassandra/index/accord/RouteSSTableManager.java (1 line): - line 41: //TODO (performance): most added tables will have 0 segmenets, so exclude those from search src/java/org/apache/cassandra/io/sstable/metadata/StatsMetadata.java (1 line): - line 94: * TODO we could replace this by a small bloom-filter instead; the only downside being that we'd have to care about src/java/org/apache/cassandra/cql3/ColumnIdentifier.java (1 line): - line 40: * TODO : should support light-weight mode without text representation for when not interned src/java/org/apache/cassandra/db/streaming/CassandraStreamReceiver.java (1 line): - line 264: // TODO (expected): use the source bounds for the streams to avoid waiting unnecessarily long src/java/org/apache/cassandra/service/TruncateResponseHandler.java (1 line): - line 69: signaled = condition.await(timeoutNanos, NANOSECONDS); // TODO truncate needs a much longer timeout src/java/org/apache/cassandra/concurrent/SEPExecutor.java (1 line): - line 67: // TODO: see if other queue implementations might improve throughput src/java/org/apache/cassandra/index/accord/RouteSecondaryIndexBuilder.java (1 line): - line 181: //TODO Shouldn't do this if the stop was interrupted by a truncate src/java/org/apache/cassandra/service/accord/txn/TxnDataKeyValue.java (1 line): - line 69: // TODO: Include the other parts of FilteredPartition after we rebase to pull in BTreePartitionData? src/java/org/apache/cassandra/schema/SchemaKeyspace.java (1 line): - line 1346: * TODO: find a way to get rid of Schema.instance dependency; evaluate if the opimisation below makes a difference src/java/org/apache/cassandra/db/marshal/AbstractCompositeType.java (1 line): - line 289: // TODO: suport toJSONString (CASSANDRA-18177) src/java/org/apache/cassandra/service/accord/txn/TxnRangeReadResult.java (1 line): - line 59: // TODO: Include the other parts of FilteredPartition after we rebase to pull in BTreePartitionData? src/java/org/apache/cassandra/tcm/ownership/TokenMap.java (1 line): - line 59: // TODO: move partitioner to the users (SimpleStrategy and Uniform Range Placement?) src/java/org/apache/cassandra/service/disk/usage/DiskUsageBroadcaster.java (1 line): - line 57: // TODO: switch to TCM? src/java/org/apache/cassandra/db/view/ViewManager.java (1 line): - line 48: * TODO: I think we can get rid of that class. For addition/removal of view by names, we could move it Keyspace. And we src/java/org/apache/cassandra/dht/tokenallocator/NoReplicationTokenAllocator.java (1 line): - line 172: // TODO: Any better ways to assign how many tokens to change in each node? src/java/org/apache/cassandra/index/sai/disk/ResettableByteBuffersIndexOutput.java (1 line): - line 41: //TODO CASSANDRA-18280 to investigate the initial size allocation src/java/org/apache/cassandra/service/accord/ClientRequestBookkeeping.java (1 line): - line 30: // TODO (expected): merge with AccordClientRequestMetrics instead src/java/org/apache/cassandra/io/sstable/format/SortedTableScrubber.java (1 line): - line 335: // TODO bitch if the row is too large? if it is there's not much we can do ... src/java/org/apache/cassandra/service/accord/txn/TxnCondition.java (1 line): - line 316: // TODO: Is this even necessary, given the partition is already filtered? src/java/org/apache/cassandra/cql3/statements/schema/AlterTableStatement.java (1 line): - line 441: // TODO: swap UDT refs with expanded tuples on drop src/java/org/apache/cassandra/db/view/ViewBuilder.java (1 line): - line 240: // TODO: very unclear what the goal is here. why do we wait only if we were the first to invoke stop? src/java/org/apache/cassandra/service/accord/txn/TxnDataRangeValue.java (1 line): - line 118: // TODO: Include the other parts of FilteredPartition after we rebase to pull in BTreePartitionData? src/java/org/apache/cassandra/service/reads/DigestResolver.java (1 line): - line 116: // TODO: should also not calculate if only one full node src/java/org/apache/cassandra/metrics/AccordMetrics.java (1 line): - line 292: // TODO (required): we appear to be marking this twice, once in AccordResult and once here. src/java/org/apache/cassandra/db/WriteType.java (1 line): - line 34: //TODO update client protocol to support "TRANSACTION" src/java/org/apache/cassandra/utils/DynamicList.java (1 line): - line 38: // TODO: alternate links to save space src/java/org/apache/cassandra/tcm/transformations/PrepareReplace.java (1 line): - line 198: // TODO we can probably make the hierarchy of abstract/concrete transformations and associated serializers a bit less convoluted src/java/org/apache/cassandra/io/sstable/format/big/SSTableReversedIterator.java (1 line): - line 124: // FIXME: so far we only keep stats on cells, so to get a rough estimate on the number of rows, src/java/org/apache/cassandra/repair/RepairSession.java (1 line): - line 124: public final boolean repairPaxos; // TODO (now): rename to repairPaxosIfSupported src/java/org/apache/cassandra/index/sai/memory/TrieMemoryIndex.java (1 line): - line 259: // TODO Investigate using a decaying histogram here to avoid the effect of outliers. src/java/org/apache/cassandra/service/consensus/migration/ConsensusKeyMigrationState.java (1 line): - line 184: // TODO (desired): Better query start time src/java/org/apache/cassandra/service/accord/interop/AccordInteropApply.java (1 line): - line 59: * // TODO (desired): At this point there are a plethora of do X to Command, then wait until state Y before maybe doing Z and returning a response, potentially returning insufficient along the way src/java/org/apache/cassandra/db/compaction/CompactionStrategyManager.java (1 line): - line 574: * TODO: improve this to reload after receiving a notification rather than trying to reload on every operation src/java/org/apache/cassandra/config/YamlConfigurationLoader.java (1 line): - line 399: // TODO: CASSANDRA-17785, add @Nullable to all nullable Config properties and remove value == null src/java/org/apache/cassandra/io/compress/CompressionMetadata.java (1 line): - line 55: * TODO extract interface ICompressionMetadata which will just provide non-resource properties src/java/org/apache/cassandra/utils/concurrent/Ref.java (1 line): - line 172: // TODO: print the last release as well as the release here src/java/org/apache/cassandra/service/StartupChecks.java (1 line): - line 205: // TODO: add data directories when direct IO is supported for flushing and compaction src/java/org/apache/cassandra/db/filter/TombstoneOverwhelmingException.java (1 line): - line 42: // TODO: We should probably make that a lot easier/transparent for partition keys src/java/org/apache/cassandra/db/Slices.java (1 line): - line 580: // TODO: we should improve this at some point. src/java/org/apache/cassandra/utils/Simulate.java (1 line): - line 26: * TODO: support package level, and apply to all nested classes src/java/org/apache/cassandra/journal/RecordPointer.java (1 line): - line 24: // TODO: make this available in the accord table as an ID src/java/org/apache/cassandra/cql3/Operation.java (1 line): - line 276: // TODO: we could check that the other operation is not setting the same element src/java/org/apache/cassandra/service/accord/journal/AccordTopologyUpdate.java (1 line): - line 114: //TODO (desired): local to what? Rather than serializing local we can serialize the node its relative too? that why when we deserialize we do globa.forNode(node) src/java/org/apache/cassandra/utils/concurrent/LockWithAsyncSignal.java (1 line): - line 46: // TODO (desired): better combined queue src/java/org/apache/cassandra/tcm/AbstractLocalProcessor.java (1 line): - line 116: // TODO: could also add epoch from mis-application from [applied]. src/java/org/apache/cassandra/db/NativeClustering.java (1 line): - line 139: // TODO: add a native accessor src/java/org/apache/cassandra/utils/PojoToString.java (1 line): - line 138: // TODO How do you get snake yaml to produce minified output? src/java/org/apache/cassandra/db/commitlog/CommitLog.java (1 line): - line 498: * TODO this should accept a timeout, and throw TimeoutException src/java/org/apache/cassandra/tcm/transformations/PrepareLeave.java (1 line): - line 161: // TODO: usually we should not allow decommissioning of CMS node src/java/org/apache/cassandra/db/marshal/VectorType.java (1 line): - line 179: // TODO : should we use TypeSizes to be consistent with other code? Its the same value at the end of the day... src/java/org/apache/cassandra/io/util/FileUtils.java (1 line): - line 362: // TODO Once we can get rid of Java 8, it's simpler to call sun.misc.Unsafe.invokeCleaner(ByteBuffer), src/java/org/apache/cassandra/cql3/terms/Constants.java (1 line): - line 228: // TODO: The bind overriding should be removed. A user does not have to call bind on a Terminal. src/java/org/apache/cassandra/concurrent/SharedExecutorPool.java (1 line): - line 81: // TODO: consider using a queue partially-ordered by scheduled wake-up time src/java/org/apache/cassandra/concurrent/ExecutionFailure.java (1 line): - line 59: // TODO: should we check to see there aren't nested CompactionInterruptedException? src/java/org/apache/cassandra/service/accord/JournalKey.java (1 line): - line 75: // TODO (required): revisit commandStoreId - this can go arbitrarily high so may want to use vint src/java/org/apache/cassandra/service/accord/txn/TxnRead.java (1 line): - line 124: // TODO (expected): relax this condition, require only that it holds for each equal byte[] src/java/org/apache/cassandra/db/view/ViewUtils.java (1 line): - line 74: // TODO: this is poor encapsulation, leaking implementation details of replication strategy src/java/org/apache/cassandra/utils/btree/TreeCursor.java (1 line): - line 39: // TODO: spend some time optimising compiler inlining decisions: many of these methods have only one primary call-site src/java/org/apache/cassandra/tools/nodetool/Sjk.java (1 line): - line 403: // TODO this will probably fail with JPMS/Jigsaw src/java/org/apache/cassandra/service/reads/AbstractReadExecutor.java (1 line): - line 99: // TODO: we need this when talking with pre-3.0 nodes. So if we preserve the digest format moving forward, we can get rid of this once src/java/org/apache/cassandra/journal/Segments.java (1 line): - line 32: * TODO (performance, expected): an interval/range structure for StaticSegment lookup based on min/max key bounds src/java/org/apache/cassandra/net/InboundSink.java (1 line): - line 167: @Deprecated(since = "4.0") // TODO: this is not the correct way to do things src/java/org/apache/cassandra/service/accord/api/AccordRoutableKey.java (1 line): - line 59: final TableId table; // TODO (desired): use a long id (TrM) tools/stress/src/org/apache/cassandra/stress/operations/userdefined/SchemaStatement.java (1 line): - line 44: //TODO: FIRSTROW, LASTROW src/java/org/apache/cassandra/db/SinglePartitionReadCommand.java (1 line): - line 576: // TODO: don't evict entire partitions on writes (#2864) src/java/org/apache/cassandra/db/ReadExecutionController.java (1 line): - line 148: * TODO: this should perhaps not open and maintain a writeOp for the full duration, but instead only *try* src/java/org/apache/cassandra/service/accord/AccordVerbHandler.java (1 line): - line 60: * TODO (desired): messages are retained on heap until the node catches up to waitForEpoch, src/java/org/apache/cassandra/net/FrameDecoderLZ4.java (1 line): - line 158: // TODO: confirm in assembly output that we inline the relevant nested method calls src/java/org/apache/cassandra/io/sstable/format/SortedTableVerifier.java (1 line): - line 156: // TODO: when making it possible to clean up system_cluster_metadata, we should make sure that non-cms members don't have any sstables there src/java/org/apache/cassandra/service/accord/interop/AccordInteropReadRepair.java (1 line): - line 151: // TODO (required): subtract unavailable ranges, either from read or from response (or on coordinator) src/java/org/apache/cassandra/net/RequestCallback.java (1 line): - line 50: * TODO: this is an error prone method, and we should be handling failures everywhere src/java/org/apache/cassandra/service/paxos/PaxosRepair.java (1 line): - line 435: // TODO: move precondition into super ctor src/java/org/apache/cassandra/db/partitions/PartitionUpdate.java (1 line): - line 627: // TODO ultimately remove the use of static TableMetadata instances in System/Tracing/Auth keyspaces. src/java/org/apache/cassandra/cql3/statements/schema/DropTypeStatement.java (1 line): - line 58: // TODO: expand types into tuples in all dropped columns of all tables src/java/org/apache/cassandra/utils/concurrent/AbstractFuture.java (1 line): - line 105: // TODO: document visibility of constructor (i.e. must be safe published) src/java/org/apache/cassandra/utils/btree/NodeCursor.java (1 line): - line 37: // TODO: consider splitting forwards from backwards src/java/org/apache/cassandra/transport/messages/BatchMessage.java (1 line): - line 251: // TODO we don't have [typed] access to CQL bind variables here. CASSANDRA-4560 is open to add support. src/java/org/apache/cassandra/service/consensus/migration/ConsensusMigrationState.java (1 line): - line 59: // TODO this will mostly go away once we can move TableMigrationState into the table schema src/java/org/apache/cassandra/service/accord/AccordSafeCommandStore.java (1 line): - line 228: // TODO (expected): instead of accepting a slice, accept the min/max epoch and let implementation handle it src/java/org/apache/cassandra/locator/RangesByEndpoint.java (1 line): - line 86: // TODO duplicated from IPartitioner.validate as we don't want to rely on DatabaseDescriptor src/java/org/apache/cassandra/service/snapshot/TableSnapshot.java (1 line): - line 476: // TODO remove this on Cassandra 4.3 release, see CASSANDRA-16911 src/java/org/apache/cassandra/tcm/transformations/Register.java (1 line): - line 154: // TODO: when constructing the initial cluster metadata for upgrade, we include a mapping from src/java/org/apache/cassandra/net/ResponseVerbHandler.java (1 line): - line 128: // TODO: check if we can relax it again, via COORDINATOR_BEHIND src/java/org/apache/cassandra/utils/MerkleTree.java (1 line): - line 239: * TODO: This function could be optimized into a depth first traversal of the two trees in parallel. src/java/org/apache/cassandra/service/paxos/ContentionStrategy.java (1 line): - line 62: * TODO (expected): deprecate in favour of pure RetryStrategy src/java/org/apache/cassandra/db/ClusteringPrefix.java (1 line): - line 354: * TODO: we should stop using Clustering for partition keys. Maybe we can add src/java/org/apache/cassandra/tcm/log/SystemKeyspaceStorage.java (1 line): - line 74: // TODO get lowest supported metadata version from ClusterMetadata src/java/org/apache/cassandra/schema/SchemaEvent.java (1 line): - line 109: this.version = schema.getVersion(); // TODO: rename this field to reflect that the schema version we know here is stale (before the entire transformation started) src/java/org/apache/cassandra/io/sstable/SSTableRewriter.java (1 line): - line 71: // for testing (TODO: remove when have byteman setup) src/java/org/apache/cassandra/db/rows/BTreeRow.java (1 line): - line 786: // TODO: relax this in the case our outer provider is sorted (want to delay until remaining changes are src/java/org/apache/cassandra/db/ReadResponse.java (1 line): - line 269: // TODO: can the digest be calculated over the raw bytes now? tools/stress/src/org/apache/cassandra/stress/operations/predefined/CqlCounterAdder.java (1 line): - line 54: // TODO : increment distribution subset of columns src/java/org/apache/cassandra/hints/HintsDispatcher.java (1 line): - line 275: // TODO (review): Additional error handling necessary? Hints are lossy src/java/org/apache/cassandra/service/paxos/cleanup/PaxosCleanupRequest.java (1 line): - line 54: // TODO: send the high bound as a minimum commit point, so later repairs can terminate early if a later commit has been witnessed src/java/org/apache/cassandra/cql3/Relation.java (1 line): - line 197: // TODO support restrictions on list elements as we do in conditions, then we can probably move below validations src/java/org/apache/cassandra/metrics/TCMMetrics.java (1 line): - line 62: // TODO: we eventually want to rely on (currently non-existing) metric that tracks paxos topology retries for all Paxos. src/java/org/apache/cassandra/db/filter/DataLimits.java (1 line): - line 458: // TODO: we should start storing stats on the number of rows (instead of the number of cells, which src/java/org/apache/cassandra/cql3/statements/ListPermissionsStatement.java (1 line): - line 88: // TODO: Create a new ResultMessage type (?). Rows will do for now. src/java/org/apache/cassandra/cql3/functions/UDFExecutorService.java (1 line): - line 33: * TODO: see if we can port to ExecutorPlus to avoid duplication src/java/org/apache/cassandra/journal/ActiveSegment.java (1 line): - line 410: // TODO (expected): if we write a "safe shutdown" marker we don't need this, src/java/org/apache/cassandra/dht/Murmur3Partitioner.java (1 line): - line 269: // TODO (required): this check breaks a bunch of tests, but should be re-enabled src/java/org/apache/cassandra/db/repair/CassandraValidationIterator.java (1 line): - line 257: // TODO: can any of this fail and leave stuff unreleased? src/java/org/apache/cassandra/service/accord/AbstractAccordSegmentCompactor.java (1 line): - line 109: // TODO (required): investigate how this comes to be, check if there is a cleanup issue src/java/org/apache/cassandra/locator/EndpointsByRange.java (1 line): - line 51: // TODO: consider all ignoreDuplicates cases src/java/org/apache/cassandra/security/ThreadAwareSecurityManager.java (1 line): - line 217: // TODO: Evaluate removing this once the driver is removed as a dependency (see CASSANDRA-20326). src/java/org/apache/cassandra/service/reads/ReadCallback.java (1 line): - line 196: // TODO (nicetohave): This could be smarter and check if retrying would succeed instead of pessimistically src/java/org/apache/cassandra/db/streaming/CassandraStreamReader.java (1 line): - line 141: // TODO move this to BytesReadTracker src/java/org/apache/cassandra/db/compaction/LeveledManifest.java (1 line): - line 561: // TODO try to find a set of L0 sstables that only overlaps with non-busy L1 sstables src/java/org/apache/cassandra/net/OutboundConnection.java (1 line): - line 82: * TODO: complete this description src/java/org/apache/cassandra/service/accord/RequestBookkeeping.java (1 line): - line 104: // TODO (required): plumb in per-peer failure responses from Accord, and describe the txnId/keys src/java/org/apache/cassandra/index/sai/plan/QueryController.java (1 line): - line 216: // VSTODO move ANN out of expressions and into its own abstraction? That will help get generic ORDER BY support src/java/org/apache/cassandra/db/view/ViewUpdateGenerator.java (1 line): - line 410: * TODO This is a dirty overload of LivenessInfo and we should modify src/java/org/apache/cassandra/service/accord/WatermarkCollector.java (1 line): - line 218: // TODO (desired): we do not have to deserialize to report these values src/java/org/apache/cassandra/service/accord/txn/TxnNamedRead.java (1 line): - line 238: // TODO (required, safety): before release, double check reasoning that this is safe src/java/org/apache/cassandra/utils/MonotonicClock.java (1 line): - line 48: * TODO better rationalise MonotonicClock/Clock src/java/org/apache/cassandra/db/rows/UnfilteredRowIterators.java (1 line): - line 201: // TODO: in practice we could completely skip digesting the columns since they are more informative of what the src/java/org/apache/cassandra/metrics/InternodeOutboundMetrics.java (1 line): - line 36: * TODO this was always broken, as it never counted those messages without callbacks? So perhaps we can redefine it. */ src/java/org/apache/cassandra/schema/SystemDistributedKeyspace.java (1 line): - line 87: * // TODO: TCM - how do we evolve these tables? src/java/org/apache/cassandra/io/util/PathUtils.java (1 line): - line 478: // TODO: try to decide if is read or write? for now, have assumed write src/java/org/apache/cassandra/service/AbstractWriteResponseHandler.java (1 line): - line 276: * TODO: this method is brittle for its purpose of deciding when we should fail a query; src/java/org/apache/cassandra/db/view/View.java (1 line): - line 243: // TODO: REMOVE src/java/org/apache/cassandra/transport/Dispatcher.java (1 line): - line 93: // TODO parameterize with FlushItem subclass