Commit Graph

215 Commits

Author SHA1 Message Date
neethuhaneesha adf0e8fa18
Rocksdb metrics in status json (#11321) 2024-04-18 22:00:58 -07:00
neethuhaneesha ed7a275231
Rocksdb caching knob options. (#11282) 2024-04-17 10:09:14 -07:00
neethuhaneesha c96dcc74a7 Add rocksdb direct_io knobs. 2024-03-27 10:34:00 -07:00
neethuhaneesha e26981a7a9
Added max range deletions before flush knob and some knob changes. (#11242) 2024-03-12 14:46:16 -07:00
neethuhaneesha 7db980e185
Rocksdb in-memory data structures protection checksums. (#11206) 2024-02-19 16:46:12 -08:00
neethuhaneesha 73e40985b1
Throttle commit on rocksdb flush state and some rocksdb knob changes. (#11177) 2024-02-08 10:14:04 -08:00
Zhe Wang 02182d556a
add omitted checksum for rocksdb (#11169) 2024-02-01 18:33:14 -08:00
neethuhaneesha b9166aa164
Removed latencySamples in kvstorerockddb to avoid DDSketch race access. (#11113) 2024-01-05 10:46:58 -08:00
neethuhaneesha 220ad87cc4
Rocksdb new options configuration (#11048) 2023-11-03 13:45:03 -07:00
neethuhaneesha b7148ba67e
Compaction rate limiter changes. (#11015) 2023-10-23 13:39:46 -07:00
neethuhaneesha 08cc6518bb Deleting rocksdb keysSet after the commit completes. 2023-08-30 15:25:23 -07:00
neethuhaneesha 68d5708e02 Storing the inprocess-commit deleted keysets until the commit is complete. (#10672) 2023-08-30 15:25:23 -07:00
Zhe Wang e7528aca09
Revert inappropriate setting of ApiCorrectness test (#10771)
* add max_manifest_file_size to rocksdb

* revert ApiCorrectness config change
2023-08-11 12:41:55 -07:00
Xiaoge Su 0036bab8a4 Rename SSD_ROCKSDB_EXPERIMENTAL to WITH_ROCKSDB 2023-07-27 14:04:10 -07:00
Evan Tschannen ef682d304e fix IKeyValueStore include 2023-06-16 13:28:40 -07:00
neethuhaneesha 7ccc734f87
Avoiding read timeout checks for eager reads(write path) and system keys. (#10486) 2023-06-14 09:56:23 -07:00
Evan Tschannen 22665f6163 fixed another missing knobs include 2023-06-13 08:32:37 -07:00
Evan Tschannen 359e178dcd Merge branch 'main' into feature-durable-change-feed
# Conflicts:
#	fdbclient/ClientKnobs.cpp
#	fdbserver/BlobManager.actor.cpp
#	fdbserver/worker.actor.cpp
2023-06-11 13:58:35 -07:00
Yao Xiao cef93f7d22
knobs (#10253) 2023-05-18 14:58:09 -07:00
neethuhaneesha 854464a6af
Hex values in TSS logs and rocksb debuglogs mode knob (#10231) 2023-05-16 10:34:58 -07:00
neethuhaneesha 92d1da79a9
RocksDB WAL archive options. (#10211) 2023-05-10 21:36:18 -07:00
Evan Tschannen 3dd86d6c22 move IKeyValueStore.h to the client 2023-05-10 15:41:47 -07:00
Yao Xiao 2d1b5d02e2 Range deletion memory usage improvements (#10048) 2023-05-10 10:23:01 -07:00
neethuhaneesha 8b2f3bcfdc Rocksdb paranoid file checks knob. 2023-05-04 11:49:38 -07:00
He Liu 4c75cee2e3
Upgrade to RocksDB 8.1.1 (#10039)
* Upgrade to RocksDB 8.1.1

* Revert an ASSERT on the previous rocksdb bug. The test was a guard to show the failure.
2023-04-27 12:32:04 -07:00
neethuhaneesha 53fe07a709
Enabling auto_prefix_mode to true in rocksdb. (#10050) 2023-04-27 12:11:48 -07:00
Jay Zhuang b7da2ed16c Fix RangeResult.readThrough misuse
Fix `RangeResult.readThrough` misuses:
1. KeyValueStores do not need to set readThrough, as it will not be
   serialized and return. Also setting it to the last key of the result
   is not right, it should at least be the keyAfter of the last key;
2. Fix NativeAPI doesn't set `RangeResult.more` in a few places;
3. Avoid `tryGetRange()` setting `readThrough` when `more` is false,
   which was a workaround for the above item 2;
4. `tryGetRangeFromBlob()` doesn't set `more` but set `readThrough` to
   indicate it is end, which was following the same above workaround I
   think. Fixed that.
5. `getRangeStream()` is going to set `more` to true and then let the
   `readThrough` be it's boundary.

Also added readThrough getter/setter function to validate it's usage.
2023-04-17 21:37:51 -07:00
neethuhaneesha 1d6908d3b4
Changing single key deletions to delete based on number of deletes instead of bytelimit. (#9867) 2023-04-03 13:55:58 -07:00
neethuhaneesha 44fba4e84c
RocksDB 7.10.2 version upgrade (#9828) 2023-04-03 10:01:22 -07:00
neethuhaneesha 1e656210e1 Adding rocksdb bloom filter knobs. 2023-03-21 13:10:40 -07:00
Yi Wu d3bc2afc8e
EaR: storage server uses encryption DB config (#9115)
The PR is updating storage server and Redwood to enable encryption based on the encryption mode in DB config, which was previously controlled by a knob. High level changes are
1. Passing encryption mode in DB config to storage server
    1.1 If it is a new storage server, pass the encryption mode through `InitializeStorageRequest`. the encryption mode is pass to Redwood for initialization
    1.2 If it is an existing storage server, on restart the storage server will send `GetStorageServerRejoinInfoRequest` to commit proxy, and commit proxy will return the current encryption mode, which it get from DB config on its own initialization. Storage server will compare the DB config encryption mode to the local storage encryption mode, and fail if they don't match
2. Adding a new `encryptionMode()` method to `IKeyValueStore`, which return a future of local encryption mode of the KV store instance. A KV store supporting encryption would need to persist its own encryption mode, and return the mode via the API.
3. Redwood accepts encryption mode from its constructor. For a new Redwood instance, caller has to specific the encryption mode, which will be stored in Redwood per-instance file header. For existing instance, caller is supposed to not passing the encryption mode, and let Redwood find it out from its own header.
4. Refactoring in Redwood to accommodate the above changes.
2023-02-06 14:02:31 -08:00
neethuhaneesha ab42fdfec9
Removing extra logging rocksdb call, if logs are muted. (#9256) 2023-01-30 11:44:06 -08:00
neethuhaneesha 3d113ac150
Changing histogram type. (#9232) 2023-01-25 09:50:40 -08:00
neethuhaneesha bced2e124c Added metrics for read range operations. 2023-01-22 19:22:07 -08:00
neethuhaneesha ca4a964df1
Adding rocksDB control compaction on deletion knobs. (#9144) 2023-01-18 15:40:34 -08:00
neethuhaneesha c9fd51d2ec
Adding rocksdb read latency metrics. (#9036) 2022-12-22 13:00:43 -08:00
Jingyu Zhou 4269820ed0 Fix log file name too long for RocksDB in simulation
If a log directory is specified in the "db_log_dir" option, RocksDB will add the whole file path in the log file name, which can exceed the 255 byte limit of Linux file system, causing storage server failures.

See
c3f720c60d/include/rocksdb/options.h (L674-L679)
2022-12-19 09:52:21 -08:00
He Liu 2024237e5d
Fetch checkpoint as key-value pairs (#9003)
* Allow multiple keyranges in CheckpointRequest.
Include DataMove ID in CheckpointMetaData.

* Use UID dataMoveId instead of Optional<UID>.

* Implemented ShardedRocks::checkpoint().

* Implementing createCheckpoint().

* Attempted to change getCheckpointMetaData*() for a single keyrange.

* Added getCheckpointMetaDataForRange.

* Minor fixes for NativeAPI.actor.cpp.

* Replace UID CheckpointMetaData::ssId with std::vector<UID>
CheckpointMetaData::src;

* Implemented getCheckpointMetaData() and completed checkpoint creation
and fetch in test.

* Refactoring CheckpointRequest and CheckpointMetaData

rename `dataMoveId` as `actionId` and make it Optional.

* Fixed ctor of CheckpointMetaData.

* Implemented ShardedRocksDB::restore().

* Tested checkpoint restore, and added range check for restore, so that
the target ranges can be a subset of the checkpoint ranges.

* Added test to partially restore a checkpoint.

* Refactor: added checkpointRestore().

* Sort ranges for comparison.

* Cleanups.

* Check restore ranges are empty; Add ranges in main thread.

* Resolved comments.

* Fixed GetCheckpointMetaData range check issue.

* Refactor CheckpointReader for CF checkpoint.

* Added CheckpointAsKeyValues as a parameter for newCheckpointReader.

* PhysicalShard::restoreKvs().

* Added `ranges` in fetchCheckpoint.

* Added RocksDBCheckpointKeyValues::ranges.

* Added ICheckpointIterator and implemented for RocksDBCheckpointReader.

* Refactored OpenAction for CheckpointReader, handled failure cases.

* Use RocksDBCheckpointIterator::end() in readRange.

* Set CheckpointReader timout and other Rocks read options.

* Implementing fetchCheckpointRange().

* Added more CheckpointReader tests.

* Cleanup.

* More cleanup.

* Resolved comments.

Co-authored-by: He Liu <heliu@apple.com>
2022-12-14 17:44:47 -08:00
neethuhaneesha 3a4d79cb8b
Moving rocksdb read iterator destruction from commit path to actor. (#8970) 2022-12-12 13:46:43 -08:00
He Liu 3d2124df80
Checkpoint restore sharded rocks (#8758)
* Allow multiple keyranges in CheckpointRequest.
Include DataMove ID in CheckpointMetaData.

* Use UID dataMoveId instead of Optional<UID>.

* Implemented ShardedRocks::checkpoint().

* Implementing createCheckpoint().

* Attempted to change getCheckpointMetaData*() for a single keyrange.

* Added getCheckpointMetaDataForRange.

* Minor fixes for NativeAPI.actor.cpp.

* Replace UID CheckpointMetaData::ssId with std::vector<UID>
CheckpointMetaData::src;

* Implemented getCheckpointMetaData() and completed checkpoint creation
and fetch in test.

* Refactoring CheckpointRequest and CheckpointMetaData

rename `dataMoveId` as `actionId` and make it Optional.

* Fixed ctor of CheckpointMetaData.

* Implemented ShardedRocksDB::restore().

* Tested checkpoint restore, and added range check for restore, so that
the target ranges can be a subset of the checkpoint ranges.

* Added test to partially restore a checkpoint.

* Refactor: added checkpointRestore().

* Sort ranges for comparison.

* Cleanups.

* Check restore ranges are empty; Add ranges in main thread.

* Resolved comments.

* Fixed GetCheckpointMetaData range check issue.

* Fixed error description.

Co-authored-by: He Liu <heliu@apple.com>
2022-11-30 08:22:14 -08:00
Yao Xiao 7eda37ea8d
Increase field length limit for rocksdb errors. (#8944) 2022-11-29 13:12:06 -08:00
sfc-gh-tclinkenbeard 3c97f43138 Change Histogram::Unit::microseconds to milliseconds 2022-11-21 08:03:56 -08:00
Jingyu Zhou 2a74624cbd
Merge pull request #8848 from neethuhaneesha/suggest-compacts
Rocksdb suggest compact range checks
2022-11-17 20:01:19 -08:00
neethuhaneesha d865e77f06
RocksDB 7.7.3 version upgrade (#8858) 2022-11-17 15:39:22 -08:00
Jingyu Zhou 186d30be95
Merge pull request #8823 from xumengpanda/mengxu/main-tmp
Increase memtable and writebuffer size for rocksdb simulation test
2022-11-17 14:45:14 -08:00
neethuhaneesha b46c9eb67d Rocksdb suggest compact range checks 2022-11-17 14:20:18 -08:00
Meng Xu 68eb129c71 RocksDB:Use knob to control readValueTimeout value in simulation 2022-11-14 16:24:28 -08:00
Sam Gwydir 7ea42841a4 Merge remote-tracking branch 'origin/main' into ddsketch 2022-11-12 13:52:57 -08:00
Sam Gwydir 23706c957b Use DDSketch for Sample Data. 2022-11-12 13:45:46 -08:00
neethuhaneesha 18c75e18a6
Adding counters for singlekey clear requests (#8747) 2022-11-10 20:04:20 -08:00