table/block_based/block_based_table_reader.cc (19 lines): - line 185: // TODO: introduce perf counter for compression dictionary hit count - line 204: // TODO: introduce dedicated tickers/statistics/counters - line 219: // TODO: introduce aggregate (not per-level) block cache miss count - line 229: // TODO: introduce perf counters for misses per block type - line 256: // TODO: introduce dedicated tickers/statistics/counters - line 270: // TODO: introduce perf counters for block cache insertions - line 338: // TODO: introduce dedicated tickers/statistics/counters - line 632: // FIXME: is changed prefix_extractor handled anywhere for hash index? - line 639: // block before setting up cache keys. TODO: consider setting up a bootstrap - line 674: //**TODO: If/When the DBOptions has a registry in it, the ConfigOptions - line 681: //**TODO: Should this be error be returned or swallowed? - line 739: // TODO: This may incorrectly select small readahead in case partitioned - line 1623: // TODO: Should handle this error? - line 2270: // FIXME ^^^: there should be no reason for Get() to depend on current - line 2306: // FIXME ^^^: there should be no reason for MultiGet() to depend on current - line 2383: // TODO: think about interaction with Merge. If a user key cannot - line 2480: // TODO: Should handle status here? - line 2861: // TODO: Should handle status here? - line 3164: // FIXME: is changed prefix_extractor handled anywhere for hash index? db/db_impl/db_impl.cc (18 lines): - line 243: // TODO: Check for an error here - line 492: s.PermitUncheckedError(); //**TODO: What to do on error? - line 499: s.PermitUncheckedError(); //**TODO: What to do on error? - line 687: // TODO: Check for unlock error - line 1766: // TODO: This mutex should be removed later, to improve performance when - line 1770: // TODO: maybe handle the tracing status? - line 1990: // TODO: This mutex should be removed later, to improve performance when - line 1994: // TODO: maybe handle the tracing status? - line 2323: // TODO: This mutex should be removed later, to improve performance when - line 2327: // TODO: maybe handle the tracing status? - line 2470: // TODO: This mutex should be removed later, to improve performance when - line 2474: // TODO: maybe handle the tracing status? - line 4185: // TODO: Should we return an error if we cannot delete the directory? - line 4395: // TODO: Should we check for errors here? - line 4656: // TODO (yanqin) maybe handle the case in which column_families have - line 4757: // TODO (yanqin) investigate whether we should abort ingestion or - line 4879: // TODO: distinguish between MANIFEST write and CURRENT renaming - line 5079: // TODO: simplify using GetRefedColumnFamilySet? db_stress_tool/multi_ops_txns_stress.cc (14 lines): - line 329: // TODO (yanqin) enable compaction filter - line 332: // TODO (yanqin) parallelize if key space is large - line 337: // TODO (yanqin) parallelize if key space is large - line 446: // TODO (yanqin) - line 454: // TODO (yanqin). - line 464: // TODO (yanqin) - line 473: // TODO (yanqin) - line 484: // TODO (yanqin) - line 496: // TODO (yanqin) allow user to configure probability of each operation. - line 685: // TODO (yanqin) add stats for other cases? - line 696: // TODO (yanqin) try SetSnapshotOnNextOperation(). We currently need to take - line 1045: // TODO (yanqin) with a probability, we can use either forward or backward - line 1338: // TODO (yanqin): make the following check optional, especially when data - line 1538: // TODO (yanqin) support separating primary index and secondary index in db/db_impl/db_impl_compaction_flush.cc (11 lines): - line 306: // TODO: distinguish between MANIFEST write and CURRENT renaming - line 310: // TODO: kManifestWriteNoWAL and kFlushNoWAL are misleading. Refactor is - line 339: // TODO (PR7798). We should only add the file to the FileManager if it - line 476: // TODO (yanqin) investigate whether we should sync the closed logs for - line 511: // TODO (yanqin): parallelize jobs with threads. - line 746: // TODO (PR7798). We should only add the file to the FileManager if it - line 770: // TODO: distinguish between MANIFEST write and CURRENT renaming - line 774: // TODO: kManifestWriteNoWAL and kFlushNoWAL are misleading. Refactor - line 2544: // TODO: need to unset flush reason? - line 3433: // TODO: distinguish between MANIFEST write and CURRENT renaming - line 3776: // TODO: a bug here. This function actually does not necessarily db/db_impl/db_impl_secondary.cc (10 lines): - line 77: // TODO: update options_file_number_ needed? - line 145: // TODO: min_log_number_to_keep_2pc check needed? - line 346: // TODO: support timestamp - line 421: // TODO: support timestamp - line 433: // TODO (yanqin) support snapshot. - line 482: // TODO: support timestamp - line 490: // TODO: support timestamp - line 501: // TODO (yanqin) support snapshot. - line 649: // TODO (yanqin) maybe support max_open_files != -1 by creating hard links - line 830: // TODO: we have to open default CF, because of an implementation limitation, db/db_impl/db_impl_write.cc (9 lines): - line 159: // TODO: this use of operator bool on `tracer_` can avoid unnecessary lock - line 167: // TODO: maybe handle the tracing status? - line 338: // TODO: this use of operator bool on `tracer_` can avoid unnecessary lock - line 344: // TODO: maybe handle the tracing status? - line 600: // TODO: this use of operator bool on `tracer_` can avoid unnecessary lock - line 606: // TODO: maybe handle the tracing status? - line 836: // TODO: this use of operator bool on `tracer_` can avoid unnecessary lock - line 842: // TODO: maybe handle the tracing status? - line 1945: // TODO: Write buffer size passed in should be max of all CF's instead db/db_impl/db_impl_open.cc (9 lines): - line 164: s.PermitUncheckedError(); //**TODO: What to do on error? - line 279: // TODO remove this restriction - line 1189: // TODO: a better and complete implementation is needed to ensure strict - line 1569: // TODO: Implement the trimming in flush code path. - line 1570: // TODO: Perform trimming before inserting into memtable during recovery. - line 1571: // TODO: Pick files with max_timestamp > trim_ts by each file's timestamp meta - line 1903: // TODO: Once GetLiveFilesMetaData supports blob files, update the logic - line 1931: .PermitUncheckedError(); //**TODO: What do to on error? - line 1938: // TODO: Check for errors from OnAddFile? db/db_iter.cc (6 lines): - line 189: // TODO: consider moving ReadOptions from ArenaWrappedDBIter to DBIter to - line 691: // TODO: pre-create kTsMax. - line 1005: // TODO: This is very similar to FindNextUserEntry() and MergeValuesNewToOld(). - line 1237: // TODO: pre-create kTsMax. - line 1348: // TODO: What do we do if this returns an error? - line 1422: // TODO: What do we do if this returns an error? util/ribbon_impl.h (6 lines): - line 26: // TODO: more details on trade-offs and practical issues. - line 61: // // TODO: configuring Homogeneous Ribbon for arbitrarily large filters - line 295: // TODO: will be used with InterleavedSolutionStorage? - line 521: // TODO: verify/validate - line 646: // (TODO: APIs to help choose parameters) One option for fallback in - line 691: // TODO: explore combining in a struct util/ribbon_alg.h (6 lines): - line 241: // TODO: much more to come - line 275: // the additional set. (TODO: how this can mitigate scalability and - line 368: // of a single linear system. (TODO: implement) - line 1050: // TODO: consider fixed-column specializations with stack-allocated state - line 1192: // TODO: consider optimizations such as - line 1219: // TODO: refactor Interleaved*Query so that queries can be "prepared" by tools/db_crashtest.py (6 lines): - line 248: # TODO: enable this once we figure out how to adjust kill odds for WAL- - line 300: # TODO: there is such a thing as transactions with WAL disabled. We should - line 355: # TODO: enable write-prepared - line 388: # TODO re-enable pipelined write. Not well tested atm - line 689: # TODO: May need to adjust random odds if kill_random_test - line 738: # TODO detect a hanging condition. The job might run too long as RocksDB db/version_set.cc (6 lines): - line 2036: // TODO: examine the behavior for corrupted key - line 2059: // TODO: update per-level perfcontext user_key_return_count for kMerge - line 2225: // TODO: examine the behavior for corrupted key - line 2231: // TODO: Set status for individual keys appropriately - line 2284: // TODO: update per-level perfcontext user_key_return_count for kMerge - line 5403: // TODO: Break up into multiple records to reduce memory usage on recovery? db/db_impl/db_impl_files.cc (6 lines): - line 55: // FIXME: can be inconsistent with DisableFileDeletions in cases like - line 200: s.PermitUncheckedError(); // TODO: What should we do on error? - line 226: s.PermitUncheckedError(); // TODO: What should we do on error? - line 239: s.PermitUncheckedError(); // TODO: What should we do on error? - line 466: // TODO: maybe check the return value of Close. - line 814: // TODO: iterating over all column families under db mutex. microbench/db_basic_bench.cc (5 lines): - line 29: MULTIPLIER); // TODO: add large key support - line 39: // TODO: make sure the buff is large enough - line 85: prefix_size_ = 4; // TODO: support different prefix_size - line 789: // TODO: move it to different files, as it's testing an internal API - line 1292: // TODO: move it to different files, as it's testing an internal API db/db_impl/db_impl_readonly.cc (5 lines): - line 37: // TODO: stopwatch DB_GET needed?, perf timer needed? - line 44: // TODO: support timestamp - line 90: // TODO: support timestamp - line 121: // TODO: support timestamp - line 129: // TODO: support timestamp util/hash.h (4 lines): - line 87: // TODO: consider rename to Hash32 - line 92: // TODO: consider rename to LegacyBloomHash32 - line 120: // TODO: consider rename to GetSliceHash32 - line 132: // TODO: consider rename to SliceHasher32 db/external_sst_file_ingestion_job.cc (4 lines): - line 216: // TODO: rate limit file reads for checksum calculation during file - line 315: // TODO: The following is duplicated with Cleanup(). - line 475: // TODO (yanqin) maybe account for file metadata bytes for exact accuracy? - line 915: // TODO: rate limit file reads for checksum calculation during file ingestion. table/block_based/hash_index_reader.cc (4 lines): - line 54: // TODO: log error - line 63: // TODO: log error - line 93: // TODO: log error - line 102: // TODO: log error utilities/simulator_cache/cache_simulator.cc (4 lines): - line 28: // TODO: Should we check for errors here? - line 111: // TODO: Should we check for an error here? - line 133: // TODO (haoyu): We only support Get for now. We need to extend the tracing - line 190: // TODO: Should we check for an error here? table/block_based/block_based_table_builder.cc (4 lines): - line 1002: // TODO offset passed in is not accurate for parallel compression case - line 1009: // TODO offset passed in is not accurate for parallel compression case - line 1524: // TODO akanksha:: Dedup below code by calling - line 1583: // TODO: Refactor code so that BlockType can determine both the C++ type file/writable_file_writer.cc (4 lines): - line 351: // TODO: give log file and sst file different options (log - line 585: // TODO: need to be improved since it sort of defeats the purpose of the rate - line 670: // TODO: effectively use the existing checksum of the data being writing to - line 815: // TODO: need to be improved since it sort of defeats the purpose of the rate java/src/main/java/org/rocksdb/RocksDB.java (4 lines): - line 2366: // TODO (AP) support indirect buffers - line 2373: // TODO (AP) support indirect buffers, though probably via a less efficient code path - line 2392: // TODO (AP) add keysArray[i].arrayOffset() if the buffer is indirect - line 2393: // TODO (AP) because in that case we have to pass the array directly, util/xxhash.h (3 lines): - line 56: /* TODO: update */ - line 2761: && defined(__GNUC__) /* TODO: IBM XL */ - line 3424: * FIXME: Clang's output is still _much_ faster -- On an AMD Ryzen 3600, file/file_prefetch_buffer.cc (3 lines): - line 74: // TODO akanksha: Update the condition when asynchronous prefetching is - line 241: // TODO akanksha: Update TEST_SYNC_POINT after new tests are added. - line 436: // TODO akanksha: Merge this function with TryReadFromCache once async db/version_edit_handler.cc (3 lines): - line 318: // TODO maybe cache the computation result - line 842: // TODO: verify checksum - line 937: // TODO: Open file or create hard link to prevent the file from being utilities/backupable/backupable_db.cc (3 lines): - line 588: // TODO: Fix those issues so that the Status - line 1680: // TODO: temperature, file_checksum, file_checksum_func_name - line 2001: // TODO:(gzh) maybe use direct reads/writes here if possible utilities/write_batch_with_index/write_batch_with_index.cc (3 lines): - line 335: // TODO: support WBWI::Put() with timestamp. - line 363: // TODO: support WBWI::Delete() with timestamp. - line 392: // TODO: support WBWI::SingleDelete() with timestamp. utilities/blob_db/blob_file.cc (3 lines): - line 115: // TODO: rate limit reading footers from blob files. - line 241: // TODO: rate limit reading headers from blob files. - line 284: // TODO: rate limit reading footers from blob files. db/blob/blob_file_reader.cc (2 lines): - line 151: // TODO: rate limit reading headers from blob files. - line 202: // TODO: rate limit reading footers from blob files. utilities/blob_db/blob_db_impl.cc (2 lines): - line 1544: // TODO: rate limit old blob DB file reads. - line 2080: // TODO: What to do if we cannot delete the directory? util/filter_bench.cc (2 lines): - line 682: // TODO: implement batched interface to full block reader - line 683: // TODO: implement batched interface to plain table bloom table/block_based/partitioned_filter_block.cc (2 lines): - line 392: // TODO: re-use one top-level index iterator - line 519: // TODO: Support counter batch update for partitioned index and db/db_impl/compacted_db_impl.cc (2 lines): - line 45: // TODO: support timestamp - line 68: // TODO: support timestamp options/cf_options.h (2 lines): - line 155: options.sample_for_compression), // TODO: is 0 fine here? - line 268: // TODO this experimental option isn't made configurable tools/db_bench_tool.cc (2 lines): - line 2381: // TODO: support larger timestamp sizes - line 8095: //**TODO: Make the simulate fs something that can be loaded include/rocksdb/merge_operator.h (2 lines): - line 164: // TODO: Presently there is no way to differentiate between error/corruption - line 205: // TODO: the name is currently not stored persistently and thus utilities/cache_dump_load_impl.cc (2 lines): - line 283: // TODO: remove this line when options are used in the loader - line 296: // TODO: we need to check the cache dump format version and RocksDB version db/compaction/compaction_job.cc (2 lines): - line 2319: // TODO: sub_compact.io_status is not checked like status. Not sure if thats - line 2561: // TODO: Add verify_table() db/error_handler.cc (2 lines): - line 455: // TODO: a better way to set or clean the retryable IO error which - line 491: // TODO: Do some refactoring and use only one recovery_error_ db/compaction/compaction_picker_universal.cc (2 lines): - line 817: // TODO with incremental compaction is supported, we might want to - line 1071: // TODO support multi paths? utilities/transactions/lock/range/range_tree/lib/portability/toku_pthread.h (2 lines): - line 63: // TODO: some things moved toku_instrumentation.h, not necessarily the best - line 74: // TODO: break this include loop db/memtable.cc (2 lines): - line 968: // handled. TODO: allow Bloom checks where max_covering_tombstone_seq==0 - line 988: // TODO: consider not counting these as Bloom hits to more closely table/format.cc (2 lines): - line 367: // TODO: Need to pass appropriate deadline to TryReadFromCache(). Right now, - line 372: // TODO: rate limit footer reads. table/block_based/filter_policy.cc (2 lines): - line 226: // TODO: Ideally we want to verify the hash entry - line 1535: // FIXME: code duplication with GetFastLocalBloomBuilderWithContext java/rocksjni/portal.h (2 lines): - line 5096: // TODO: This particular case seems confusing and unnecessary to pin the - line 5467: // TODO: This particular case seems confusing and unnecessary to pin the file/random_access_file_reader.cc (1 line): - line 428: // TODO akanksha: Add perf_times etc. table/cuckoo/cuckoo_table_reader.cc (1 line): - line 144: // TODO: rate limit reads of whole cuckoo tables. table/block_based/filter_policy_internal.h (1 line): - line 51: // TODO: refactor this to have a better signature, consolidate table/plain/plain_table_key_coding.cc (1 line): - line 215: // TODO: rate limit plain table reads. db/db_iter.h (1 line): - line 59: // The following is grossly complicated. TODO: clean it up port/win/env_win.cc (1 line): - line 612: // TODO: This does not follow symbolic links at this point include/rocksdb/table.h (1 line): - line 378: // TODO: optimize this performance db_stress_tool/db_stress_shared_state.h (1 line): - line 115: // TODO: We should introduce a way to explicitly disable verification env/fs_posix.cc (1 line): - line 1048: // TODO akankshamahajan: Update Poll API to take into account min_completions utilities/transactions/lock/range/range_tree/lib/portability/toku_time.h (1 line): - line 168: escalation). (TODO: it is not clear why these operations are tracked with tools/ldb_cmd.cc (1 line): - line 3479: // TODO: add support for decoding blob indexes in ldb as well db/db_impl/db_impl_readonly.h (1 line): - line 31: // TODO: Implement ReadOnly MultiGet? utilities/transactions/lock/range/range_tree/range_tree_lock_manager.cc (1 line): - line 392: // TODO what if one drops a column family while transaction(s) still have env/env_encryption.cc (1 line): - line 213: // TODO (sagar0): Modify AlignedBuffer.Append to allow doing a memmove db/repair.cc (1 line): - line 581: // XXX/FIXME: This is just basic, naive handling of range tombstones, table/block_fetcher.cc (1 line): - line 284: // TODO: introduce dedicated perf counter for range tombstones file/delete_scheduler.cc (1 line): - line 111: //**TODO: What should we do if we failed to db/wal_edit.cc (1 line): - line 47: // TODO: process future tags such as checksum. db/log_reader.cc (1 line): - line 60: // TODO krad: Evaluate if we need to move to a more strict mode where we include/rocksdb/listener.h (1 line): - line 174: // TODO: In the future, BackgroundErrorReason will only be used to indicate trace_replay/trace_replay.cc (1 line): - line 349: // TODO: What if this fails? file/sst_file_manager_impl.cc (1 line): - line 182: s.PermitUncheckedError(); // TODO: Check the status table/block_based/partitioned_index_reader.cc (1 line): - line 181: // TODO: Support counter batch update for partitioned index and utilities/transactions/lock/range/range_tree/lib/locktree/treenode.cc (1 line): - line 62: // TODO: source location info might have to be pulled up one caller utilities/transactions/lock/range/range_tree/lib/standalone_port.cc (1 line): - line 27: // TODO: what are the X-functions? Xcalloc, Xrealloc? db/periodic_work_scheduler.cc (1 line): - line 77: // TODO: Should this error be ignored? utilities/persistent_cache/volatile_tier_impl.cc (1 line): - line 125: // TODO: Should the insert error be ignored? include/rocksdb/db.h (1 line): - line 1702: // TODO: we will support WAL tailing soon. table/block_based/uncompression_dict_reader.cc (1 line): - line 51: // TODO: add perf counter for compression dictionary read time db/transaction_log_impl.cc (1 line): - line 229: s.PermitUncheckedError(); // TODO: What should we do with this error? tools/ldb_cmd_impl.h (1 line): - line 209: // TODO future: checksum_func for populating checksums utilities/transactions/lock/range/range_tree/lib/portability/txn_subst.h (1 line): - line 14: // (TODO: consider using class toku::txnid_set. The reason for using STL util/rate_limiter.cc (1 line): - line 174: s.PermitUncheckedError(); //**TODO: What to do on error? db/wal_manager.cc (1 line): - line 493: // TODO read record's till the first no corrupt entry? utilities/transactions/lock/range/range_tree/lib/util/dbt.h (1 line): - line 58: // TODO: John table/block_based/parsed_full_filter_block.h (1 line): - line 28: // TODO: consider memory usage of the FilterBitsReader port/win/port_win.h (1 line): - line 63: // thread_local is part of C++11 and later (TODO: clean up this define) utilities/trace/replayer_impl.cc (1 line): - line 244: // TODO: Add better error handling. table/cuckoo/cuckoo_table_factory.cc (1 line): - line 35: // TODO: change builder to take the option struct db_stress_tool/db_stress_listener.cc (1 line): - line 19: // TODO: consider using expected_values_dir instead, but this is more db/version_set.h (1 line): - line 149: // TODO find a better way to pass compaction_options_fifo. env/env.cc (1 line): - line 1225: // TODO: Tune the buffer size. utilities/transactions/lock/range/range_tree/range_tree_lock_manager.h (1 line): - line 53: // TODO: range unlock does nothing... table/block_based/partitioned_index_iterator.cc (1 line): - line 127: // TODO the while loop inherits from two-level-iterator. We don't know db/version_builder.cc (1 line): - line 1169: // TODO (yanqin) find a suitable status code. include/rocksdb/filter_policy.h (1 line): - line 66: // TODO: consider changing to Slice include/rocksdb/experimental.h (1 line): - line 34: // TODO: new_checksums: to update files to latest file checksum algorithm port/port_posix.h (1 line): - line 28: // thread_local is part of C++11 and later (TODO: clean up this define) java/rocksjni/rocksjni.cc (1 line): - line 2292: // TODO fix return value/type db/merge_helper.h (1 line): - line 129: // TODO: Re-style this comment to be like the first one utilities/ttl/db_ttl_impl.h (1 line): - line 142: // TODO: handle timestamp corruption like in general iterator semantics utilities/transactions/lock/range/range_tree/lib/util/omt_impl.h (1 line): - line 390: // TODO: We can optimize this if we steal 3 bits. 1 bit: this node is db/builder.cc (1 line): - line 319: // TODO Also check the IO status when create the Iterator. utilities/merge_operators.cc (1 line): - line 23: // TODO: Hook the "name" up to the actual Name() of the MergeOperators? utilities/simulator_cache/sim_cache.cc (1 line): - line 178: // TODO: Check for error here? db/flush_job.cc (1 line): - line 924: // TODO: Cleanup io_status in BuildTable and table builders db/merge_helper.cc (1 line): - line 120: // TODO: Avoid the snapshot stripe map lookup in CompactionRangeDelAggregator thirdparty.inc (1 line): - line 4: # TODO: Make this work with find_package and/or get rid of it db/c.cc (1 line): - line 3650: TODO: port/win/io_win.cc (1 line): - line 180: // TODO: this is a temporarily solution as it is safe but not optimal for utilities/transactions/transaction_util.cc (1 line): - line 184: // TODO: support timestamp-based conflict checking. db/blob/blob_log_sequential_reader.cc (1 line): - line 31: // TODO: rate limit `BlobLogSequentialReader` reads (it appears unused?) db/db_filesnapshot.cc (1 line): - line 346: // Some legacy testing stuff TODO: carefully clean up obsolete parts include/rocksdb/env.h (1 line): - line 1048: // TODO: Don't ignore errors from allocate table/meta_blocks.cc (1 line): - line 223: // FIXME: should be a parameter for reading table properties to use persistent table/block_based/block_based_table_iterator.cc (1 line): - line 293: // TODO the while loop inherits from two-level-iterator. We don't know env/io_posix.cc (1 line): - line 1624: // TODO should have error handling though not much we can do... include/rocksdb/slice_transform.h (1 line): - line 88: // NOTE/TODO: We hope to revise this requirement in the future. db_stress_tool/db_stress_test_base.cc (1 line): - line 2616: // TODO cover transaction DB is not covered in this fault test too. options/options.cc (1 line): - line 359: // TODO: easier config for bloom (maybe based on avg key/value size) table/block_based/block_based_table_iterator.h (1 line): - line 263: // TODO remember the iterator is invalidated because of prefix