Commit Graph

9986 Commits

Author SHA1 Message Date
Josh Slocum 12b6f386cb Refactoring granule flush to retry properly on granule rollback 2022-07-19 19:49:20 -05:00
Lukas Joswiak c357a90b30 Ensure change coordinators request came from same generation proxy
There was a rare but possible issue where a change coordinators request
could be in flight, but reading `\xff/coordinators` would return the old
set of coordinators, even though a previous attempt to write it returned
`commit_unknown_result`. This happened if there was an unrelated
recovery between setting `\xff/coordinators` and the updated
coordinators reaching each machine. The `commit_unknown_result` caused
by this recovery meant the change coordinators retry loop would read
`\xff/coordinators`, but since the request was ongoing it would read the
old set of coordinators. The fix is to have the cluster controller
ignore any change coordinators request from an old generation, meaning
when the retry loop reads the old coordiantors from `\xff/coordinators`,
it is guaranteed that the in progress change coordinators message will
be rejected when arriving at the cluster controller.
2022-07-19 17:44:48 -07:00
sfc-gh-tclinkenbeard 8a18fa23cf Reenable GlobalTagThrottler_GotClientRate trace events 2022-07-19 17:04:04 -07:00
sfc-gh-tclinkenbeard f197314cb5 Add /GlobalTagThrottler/MultiTagActiveThrottling3 unit test 2022-07-19 17:04:04 -07:00
sfc-gh-tclinkenbeard 118eb4d93b Add /GlobalTagThrottler/MultiTagActiveThrottling2 unit test and fix bug uncovered in GlobalTagThrottlerImpl::getLimitingTps 2022-07-19 17:04:04 -07:00
sfc-gh-tclinkenbeard b4e711f1c3 Make parameter more readable in GlobalTagThrottlerTesting::runClient 2022-07-19 17:04:04 -07:00
sfc-gh-tclinkenbeard 20ac60fb11 Set throttling ratio in GlobalTagThrottler::tryUpdateAutoThrottling 2022-07-19 17:04:04 -07:00
sfc-gh-tclinkenbeard f41515e66b Implement GlobalTagThrottler::busy*TagCount methods 2022-07-19 17:04:01 -07:00
Josh Slocum 166de4b704 Fixing merge convergence bugs 2022-07-19 18:44:40 -05:00
Jingyu Zhou 72e72f6d87 Add getMappedRange latency metrics 2022-07-19 16:31:24 -07:00
sfc-gh-tclinkenbeard afba51b7f8 Add tracing to GlobalTagThrottler 2022-07-19 16:29:11 -07:00
sfc-gh-tclinkenbeard fe05cc5c72 Update busy read tag reporting in status json 2022-07-19 16:29:11 -07:00
sfc-gh-tclinkenbeard 145d10e3a4 Compute cluster-wide average transaction cost for each tag only once in getClientRates 2022-07-19 16:29:11 -07:00
sfc-gh-tclinkenbeard 080518d014 Use getQuota method in GlobalTagThrottlerImpl::getDesiredTps 2022-07-19 16:29:11 -07:00
sfc-gh-tclinkenbeard d0851a67e2 Update TransactionTagCounter::startNewInterval tracing 2022-07-19 16:29:11 -07:00
sfc-gh-tclinkenbeard 2306757e90 Fix GlobalTagThrottler::autoThrottleCount 2022-07-19 16:29:11 -07:00
sfc-gh-tclinkenbeard 4977805d8e Fix failing global tag throttling unit tests 2022-07-19 16:29:11 -07:00
sfc-gh-tclinkenbeard c86ae6cee5 Fix /GlobalTagThrottler/Simple unit test 2022-07-19 16:29:11 -07:00
sfc-gh-tclinkenbeard e128c517d3 New GlobalTagThrottler implementation tracking more per-storage
server metrics
2022-07-19 16:29:11 -07:00
sfc-gh-tclinkenbeard 6a63db08c8 Added /GlobalTagThrottler/ReservedWriteQuota unit test 2022-07-19 16:29:11 -07:00
sfc-gh-tclinkenbeard 5b0eb135e0 Guarantee reserved quota in GlobalTagThrottler 2022-07-19 16:29:11 -07:00
sfc-gh-tclinkenbeard 8e08033974 Add /GlobalTagThrottler/MultiTagActiveThrottling unit test 2022-07-19 16:29:11 -07:00
sfc-gh-tclinkenbeard bac583ef0c Add new active throttling unit test for global tag throttler 2022-07-19 16:29:11 -07:00
sfc-gh-tclinkenbeard 34a78a82f1 Add MockStorageServer class for global tag throttler testing 2022-07-19 16:29:11 -07:00
sfc-gh-tclinkenbeard 88ca6376ce Add LimitType and OpType enum classes for global tag throttler 2022-07-19 16:29:11 -07:00
sfc-gh-tclinkenbeard fb6540ab43 Add throttling ratio to GlobalTagThrottler 2022-07-19 16:29:10 -07:00
sfc-gh-tclinkenbeard ab2110142a Add /GlobalTagThrottler/RemoveQuota unit test 2022-07-19 16:29:10 -07:00
sfc-gh-tclinkenbeard 019900be67 Add GlobalTagThrottlerImpl::removeUnseenTags 2022-07-19 16:29:10 -07:00
sfc-gh-tclinkenbeard 3161bcfa52 Remove outdated TODO and FIXME comments from GlobalTagThrottlerImpl 2022-07-19 16:29:06 -07:00
sfc-gh-tclinkenbeard b49c36f0b0 Add StorageQueueInfo::getWriteQueueSizeLimitRatio method 2022-07-19 16:28:27 -07:00
Jingyu Zhou fde5aeeb62 Remove unused "readQueueSizeMetric" 2022-07-19 14:38:10 -07:00
A.J. Beamon 537ceff8ac Remove the ability to configure a tenant subspace. Rename the prefixes used for tenant metadata. 2022-07-19 14:32:05 -07:00
Xiaoxi Wang a5fba6031f resolve conflict upstream/main 2022-07-19 13:55:51 -07:00
Xiaoxi Wang 43099bda0d resolve conflict upstream/main 2022-07-19 13:48:39 -07:00
A.J. Beamon 190ad8c7e9 Convert existing tuple usages to use Tuple::makeTuple() 2022-07-19 13:45:59 -07:00
Xiaoxi Wang 7865ead54d Merge branch 'main' into readaware 2022-07-19 13:35:33 -07:00
Markus Pilman 1de37afd52
Make TEST macros C++ only (#7558)
* proof of concept

* use code-probe instead of test

* code probe working on gcc

* code probe implemented

* renamed TestProbe to CodeProbe

* fixed refactoring typo

* support filtered output

* print probes at end of simulation

* fix missed probes print

* fix deduplication

* Fix refactoring issues

* revert bad refactor

* make sure file paths are relative

* fix more wrong refactor changes
2022-07-19 13:15:51 -07:00
Josh Slocum 19893b4b7a Persisting change feed metadata version to fix fetch/destroy race across restarts 2022-07-19 14:20:14 -05:00
Josh Slocum b9317bebca Reducing ss injection rates 2022-07-19 14:10:47 -05:00
Josh Slocum acc5aee89e Fixed change feed validation issue 2022-07-19 14:10:10 -05:00
Xiaoxi Wang 1c543e3b4a add unittest 2022-07-19 11:58:24 -07:00
A.J. Beamon 1b81e72604 Add a Tuple::makeTuple function to easily construct a tuple. Update Tuple to allow all types to be passed via .append() so they can be used with makeTuple. 2022-07-19 11:50:58 -07:00
A.J. Beamon c4cd72bea1 Fix a few compile warnings about unused variables 2022-07-19 10:01:41 -07:00
Xiaoxi Wang 491938fdf5 Merge branch 'main' of https://github.com/apple/foundationdb into feature/dd-refactor-incremental 2022-07-19 09:51:44 -07:00
A.J. Beamon 0e03fbd9e7
Merge pull request #7605 from sfc-gh-ajbeamon/fix-trace-log-detail-formatting
Remove some instances of using printable or toString in a trace event detail
2022-07-19 08:24:58 -07:00
Josh Slocum 78d4d85f3b Adding non-tss delay injection to SS as well 2022-07-19 09:59:14 -05:00
Josh Slocum 0d9bb9f4a5 Added targeted storage server restarts at critical metadata points 2022-07-19 08:33:43 -05:00
Josh Slocum 2573c0018c cleanup after passing tests 2022-07-19 08:00:25 -05:00
Josh Slocum 679bb05d34 change feed move/destroy race fixes 2022-07-19 07:19:45 -05:00
Trevor Clinkenbeard 1eec6f993d
Merge pull request #7572 from sfc-gh-akejriwal/tenantquota
Introduce storage quotas per tenant
2022-07-18 20:00:22 -07:00
Josh Slocum 0a4aef16d0 Several bugs with new change feed metadata 2022-07-18 19:32:48 -05:00
A.J. Beamon 38855fd786 Remove some instances of using printable or toString in a trace event detail. 2022-07-18 16:24:33 -07:00
Josh Slocum bfab550435 cleanup 2022-07-18 16:26:03 -05:00
Xiaoxi Wang 2909614b0c smaller function 2022-07-18 14:21:50 -07:00
Josh Slocum 340a01763b disabling merge convergence check for now 2022-07-18 16:09:14 -05:00
Trevor Clinkenbeard 18a2c3f8a8
Merge pull request #7489 from sfc-gh-tclinkenbeard/cstate-pimpl
Mark `CoordinatedState::getConflict` const
2022-07-18 13:22:18 -07:00
Josh Slocum 4540e2879c Change Feed Metadata refactor to fix races, simplify model, and clean up code 2022-07-18 12:46:11 -05:00
Josh Slocum ac21cbe957 Testing data is not readable after pop 2022-07-18 08:22:20 -05:00
Josh Slocum 150346af64 Explicitly avoiding large keys problem in single value 2022-07-15 21:08:46 -05:00
Josh Slocum 08186f9245 More efficient merge intent and granule history serialization 2022-07-15 20:38:06 -05:00
Ankita Kejriwal 882df774c0 Storage quota: use transaction options and minor fixes in the test 2022-07-15 16:34:04 -07:00
Jon Fu 8a31fa87a8 add other operations to test workload 2022-07-15 16:22:37 -07:00
A.J. Beamon 02ab3b05ab
Merge pull request #7590 from sfc-gh-ajbeamon/update-prefix-encoding-in-tenant-metadata-json
Use a more standard encoding in the JSON metadata reported for tenants
2022-07-15 14:32:53 -07:00
Josh Slocum fb4fc8af9d
Merge pull request #7587 from sfc-gh-ahusain/ahusain-hybrid_encryption_active
BlobGranule encryption and compression support
2022-07-15 15:57:51 -05:00
Josh Slocum 306610bfcb batch periodic merging in blob manager 2022-07-15 15:52:10 -05:00
He Liu 4dc742493e
Add cleanUpChangeFeeds(). (#7598)
Co-authored-by: He Liu <heliu@apple.com>
2022-07-15 10:29:09 -07:00
Ata E Husain Bohra 1da88d5d8c BlobFile Encryption and compression support
Fix formatting issues

Description

Testing
2022-07-14 22:46:14 -07:00
Josh Slocum 866dda5763 Adding check for merge convergence 2022-07-14 20:49:43 -05:00
Ata E Husain Bohra f288abebc2 BlobFile Encryption and compression support
Fix formatting issues and rename KNOB

Description

Testing
2022-07-14 17:22:00 -07:00
Ankita Kejriwal 6f130b4a69 Change `quota` type to `unit64_t` to avoid macOS compilation issue 2022-07-14 17:09:03 -07:00
Ata E Husain Bohra f6f117592d BlobFile Encryption and compression support
- Limit verbose logging under DEBUG_MACRO
 - Update/Add code documentation

Description

Testing
2022-07-14 17:04:14 -07:00
Ata E Husain Bohra 3a3811d6cc BlobFile Encryption and compression support
Few fixes
 - Update BlobGranuleCipherKeysMeta to use 'std::string' to
   persist 'Initialization Vector'
 - Update WriteSnapshot to persist 'BlobGranuleCipherKeysMeta' as part
   of BlobFileIndex

Description

Testing
2022-07-14 17:04:14 -07:00
Ata E Husain Bohra 24b2de8de8 BlobFile Encryption and compression support
Description

Testing
2022-07-14 17:04:14 -07:00
Ankita Kejriwal bb05321d24 Introduce storage quotas per tenant.
This change adds:
* ability to store the mapping from tenants to quota in the system keyspace,
* a setter and getter function
* a new workload to test this functionality

FDBCORE-2437
2022-07-14 16:35:12 -07:00
Xiaoxi Wang 4cbe5dd683
Merge pull request #7595 from sfc-gh-xwang/feature/dd-refactor-incremental
[DD testability] add resumeRelocation method
2022-07-14 15:24:56 -07:00
Yi Wu 7d7ce0909f
Restart tests carry forward encryption knobs value (#7497)
Previously to get around the issue that EKP is not present when restart test switching encryption from on to off and read encrypted data, EKP was made to start in simulation regardless of encryption knob. This PR revert that change, and instead force restart test not to change encryption knob, by passing previous encryption knob through restartInfo.ini file. Also since we don't allow downgrading an encrypted cluster to previous version, disable encryption in downgrade tests.

Also adding an assert to allow reading encrypted mutations only if encryption knob is on. We may reconsider allowing switching encryption on/off for existing cluster, but for now we don't allow it.
2022-07-14 14:45:17 -07:00
A.J. Beamon 7bca503528 Use narrow includes in key backed types; remove some unnecessary return statements. 2022-07-14 13:26:43 -07:00
neethuhaneesha 598457b872
Merge pull request #7551 from neethuhaneesha/rocksCompressionStats
Adding rocksdb compression and data size stats.
2022-07-14 12:58:10 -07:00
Xiaoxi Wang f53c108e4f
Update fdbserver/DataDistribution.actor.cpp 2022-07-14 12:17:34 -07:00
Xiaoxi Wang 42bef3b265
Update fdbserver/DataDistribution.actor.cpp 2022-07-14 12:17:29 -07:00
Xiaoxi Wang 7ee091d1da add test namespace 2022-07-14 12:13:23 -07:00
Xiaoxi Wang 015026f146 add comment; add resumeRelocation 2022-07-14 11:32:27 -07:00
neethuhaneesha 3cbb51de21 Adding rocksdb compression and data size stats. 2022-07-14 11:28:20 -07:00
Josh Slocum 83ae15012d Added popping to change feed operations workload 2022-07-14 11:43:52 -05:00
Xiaoxi Wang 87f833469b Merge branch 'main' of https://github.com/apple/foundationdb into feature/dd-refactor-incremental 2022-07-14 09:15:51 -07:00
Zhongxing Zhang 9c20b15f5a
Use enum variables to invoke Priority checking (#7514)
* Use enum variables to invoke Priority checking

* add an explicit isDataMovementForReadBalancing function
2022-07-14 09:06:56 -07:00
Lukas Joswiak 407300bfa6 Disable testing of the remote key value store in simulation 2022-07-13 18:32:50 -07:00
Xiaoxi Wang 7e3e79c53e
Merge pull request #7585 from sfc-gh-xwang/feature/dd-refactor-incremental
[DD Testability] create DataDistributor::init() method
2022-07-13 17:03:12 -07:00
A.J. Beamon 91949439d2 Add support for returning whether a key-backed type range read has more results or not. 2022-07-13 15:46:10 -07:00
Josh Slocum b85fbaef52
Merge pull request #7395 from sfc-gh-jslocum/bg_file_chunking
Chunked Snapshot Files
2022-07-13 17:22:34 -05:00
A.J. Beamon 91ccdbcb03 Use a more standard encoding in the JSON metadata reported for tenants. 2022-07-13 15:22:19 -07:00
Xiaoxi Wang c3aca3f28c add comment 2022-07-13 15:08:02 -07:00
Josh Slocum e32e726b9f
Merge pull request #7583 from sfc-gh-jslocum/granule_merging_improvements
Granule merging improvements
2022-07-13 16:04:22 -05:00
Xiaoxi Wang 0e488ee16b Merge branch 'main' of https://github.com/apple/foundationdb into feature/dd-refactor-incremental 2022-07-13 12:53:21 -07:00
Xiaoxi Wang 1592f6ad34 create DataDistributor::init() method 2022-07-13 12:53:04 -07:00
Xiaoxi Wang a2062df220
Merge pull request #7573 from sfc-gh-xwang/feature/dd-refactor-incremental
move getInitialDataDistribution to DDTxnProcessor
2022-07-13 10:00:38 -07:00
Xiaoxi Wang e0984091f3
Merge pull request #7494 from sfc-gh-xwang/bug/cycle-issue7423
Extend transaction window in Cycle workload if in simulation the transaction_too_old keep appearing
2022-07-13 09:25:16 -07:00
Josh Slocum 142ed7713e Initial version of ChangeFeedOperations workload 2022-07-13 11:16:53 -05:00
Josh Slocum b9437e9a8d BW re-sending merge candidate if manager changes 2022-07-13 10:39:55 -05:00
Josh Slocum 0720b358ff comments and bug fix 2022-07-13 08:01:26 -05:00
Josh Slocum b2a96b64e6 refactoring one function into two 2022-07-13 07:49:19 -05:00
Josh Slocum 03c39dc33b
Merge pull request #7579 from sfc-gh-jslocum/granule_merging
Granule merging
2022-07-13 07:25:26 -05:00
Yao Xiao e367a5a160
Add KVS physical shard metrics. (#7581) 2022-07-13 01:31:05 -07:00
Xiaoxi Wang a9e9772b98 fix argument bug 2022-07-12 16:49:09 -07:00
Josh Slocum f707626213 Cleanup 2022-07-12 17:43:44 -05:00
Xiaoxi Wang d3686143a1 merge upstream/main 2022-07-12 14:28:49 -07:00
Josh Slocum 236630855b Merge branch 'main' into granule_merging 2022-07-12 15:24:26 -05:00
Xiaoxi Wang a4929f3f6f
Merge pull request #7576 from sfc-gh-xwang/feature/dd-refactor-simple
[DD Testability] move waitDataDistributorEnabled to txnProcessor
2022-07-12 13:23:29 -07:00
Xiaoxi Wang bf98dc2a2b move waitDataDistributorEnabled to txnProcessor 2022-07-12 11:25:59 -07:00
Yi Wu 7d8131a39c
Worker register with cluster controller before disk file recovery (#7510)
Previously worker servers only register with cluster controller after local file recovery. This PR change to let worker servers register itself before local file recovery, but indicate that although it can server stateless roles, it cannot become storage or TLog server. After local file recovery, the worker will register again to indicate it can now become storage and Tlog.

The change fixes the deadlock issue with encryption, where when there's only stateful workers that can become master and EKP, those worker servers won't be able to register with cluster controller since no EKP is available to provide cipher keys to decrypt encrypted storage.

For now we have the change only when encryption is on, and will make it the default behavior once we think it is stable.
2022-07-12 10:19:32 -07:00
Xiaoxi Wang 110f3bbde9 remove reset speedUpSimulation 2022-07-12 09:13:33 -07:00
Xiaoxi Wang 878adad43f reset some changes 2022-07-12 09:13:33 -07:00
Xiaoxi Wang 5e8f55768a use speedUp to extend transaction window 2022-07-12 09:13:32 -07:00
Xiaoxi Wang b4b4a4a2f9 an failed fix 2022-07-12 09:13:32 -07:00
Xiaoxi Wang 55aed68a45 detach debug commit 2022-07-12 09:13:32 -07:00
Junhyun Shim ac5436a090 Catch up on changes to main 2022-07-12 16:48:09 +02:00
Josh Slocum 0b0ac16a4c Merge branch 'main' into granule_merging 2022-07-12 09:09:30 -05:00
Markus Pilman 2edbcf2c65
Merge pull request #44 from apple/main
Merge main
2022-07-12 07:51:22 -06:00
Josh Slocum c6700fe62f Merge branch 'main' into bg_file_chunking 2022-07-12 08:28:06 -05:00
Xiaoxi Wang 7e067ee4de move getInitialDataDistribution to DDTxnProcessor 2022-07-11 21:54:47 -07:00
Xiaoxi Wang cc185c51c6
Merge pull request #7563 from sfc-gh-xwang/feature/dd-refactor-incremental
[DD Testability] move updateReplicaKey to txnProcessor
2022-07-11 17:11:55 -07:00
Markus Pilman 4f4095b6ae
Merge pull request #7385 from sfc-gh-etschannen/fix-multiple-shared-tlogs
Avoid recruiting multiple shared tlogs
2022-07-11 17:28:35 -06:00
Markus Pilman 4ece33a0a8
Merge pull request #7445 from sfc-gh-anoyes/anoyes/fix-ubsan
Fix UBSAN build when statically linking libcxx
2022-07-11 17:27:37 -06:00
Fuheng Zhao 3aeb2f17cd Redwood remove duplicate header files 2022-07-11 12:44:44 -07:00
Josh Slocum 094999439d Fixing another change feed fetch race by making refreshing idempotent 2022-07-11 14:25:01 -05:00
Xiaoxi Wang f42b8687c2 add comment 2022-07-11 11:26:46 -07:00
Xiaoxi Wang 447eaa1d81 move updateReplicaKey to txnProcessor 2022-07-11 11:16:17 -07:00
Josh Slocum 33fcdc4764 Change Feed and Blob Worker operational improvements 2022-07-11 12:29:51 -05:00
Junhyun Shim dbf8f98481 Apply Clang format 2022-07-11 17:10:45 +02:00
Junhyun Shim 545a9a8043 Fix bugs and add token timeout-in-cache test 2022-07-11 16:58:04 +02:00
Junhyun Shim 61f3d14ec6 Add TokenCache test
Add function authz::jwt::TokenRef::toStringRef() for token tracing
Add StringRef::toStringView()
2022-07-11 13:42:41 +02:00
Chaoguang Lin 901d988de9
Add a knob SNAPSHOT_ALL_STATEFUL_PROCESSES to snapshot all processes with stateful class type(storage, log, transaction) even if they are not recruited (#7554) 2022-07-08 20:53:49 -07:00
Xiaoxi Wang 5ce1d7342d Merge branch 'feature/dd-refactor-incremental' of https://github.com/sfc-gh-xwang/foundationdb into feature/dd-refactor-incremental 2022-07-08 16:35:31 -07:00
Xiaoxi Wang 9fe76ecf21 format 2022-07-08 16:34:55 -07:00
Xiaoxi Wang a941a28de7
Merge branch 'apple:main' into feature/dd-refactor-incremental 2022-07-08 16:07:16 -07:00
Xiaoxi Wang b48b1e93f9 remove header dependency; move getDatabaseConfiguration to txnProcessor 2022-07-08 16:01:23 -07:00
A.J. Beamon 712f40b727 Add support for tenant groups 2022-07-08 15:59:25 -07:00
Xiaoxi Wang 6be20d08ae
Merge pull request #7555 from sfc-gh-xwang/feature/dd-refactor-incremental
[DD Testability] move takeMoveKeysLock to DDTxnProcessor
2022-07-08 15:40:14 -07:00
He Liu aa43956fbd
Sharded RocksDB (#7540)
* Some fixes.

* Enabled ShardedRocksDB in IKeyValueStore.h

* Added unit test for ShardedRocks for \xff\xff key space read/write.

* Resolved comments.

* Return empty read results if the physical shards are not initialized.

Co-authored-by: He Liu <heliu@apple.com>
2022-07-08 15:17:38 -07:00
Bharadwaj V.R aca44c8644
Increase frequency of RelocateShardStartSplit traces for better observability of splits (#7503) 2022-07-08 14:45:44 -07:00
Xiaoxi Wang 9cead35911 add contract comments 2022-07-08 14:19:14 -07:00
Xiaoxi Wang f5a81154ef move takeMoveKeysLock to DDTxnProcessor 2022-07-08 14:11:31 -07:00
Jingyu Zhou 4103b16793 Fix a performance bug in Resolver
The erased bytes from recent state transactions was accidently set to 0 and
cause anyPopped to be always false. Thus, when totalStateBytes will never
decrease and can cause high latency between "Resolver.resolveBatch.Before" and
"Resolver.resolveBatch.AfterQueueSizeCheck", in hundreds of milliseconds. This
will cause high server side commit latency.
2022-07-08 09:58:28 -07:00
Markus Pilman f268265d96
Apply suggestions from code review
Co-authored-by: A.J. Beamon <aj.beamon@snowflake.com>
Co-authored-by: Junhyun Shim <junhyun.shim@snowflake.com>
2022-07-08 10:42:44 -06:00
He Liu bc5bfaffda
Shard based move (#6981)
* Shard based move.

* Clean up.

* Clear results on retry in getInitialDataDistribution.

* Remove assertion on SHARD_ENCODE_LOCATION_METADATA for compatibility.

* Resolved comments.

Co-authored-by: He Liu <heliu@apple.com>
2022-07-07 20:49:16 -07:00
Steve Atherton e63cb431e1
Merge pull request #7534 from sfc-gh-satherton/storage-type-improvements
Add StorageEngine type to StorageMetrics trace events
2022-07-07 16:26:43 -07:00
Markus Pilman a2ef5dc72a set token properly in test 2022-07-07 12:00:32 -06:00
Andrew Noyes 55548e4ac8 Avoid signed integer overflow 2022-07-07 10:19:20 -07:00
Andrew Noyes 8c1813e377 Don't pass nullptr to memcpy 2022-07-07 10:19:20 -07:00
Sreenath Bodagala fa0c3249ca
Merge pull request #7529 from sbodagala/main
Make sequencer aware of the locality of the primary region
2022-07-07 14:00:10 +05:30
A.J. Beamon c4b0f6eaae
Add an internal C API to support connection to a cluster using a connection string (#7438)
* Add an internal C API to support memory connection records

* Track shared state in the client using a unique and immutable cluster ID from the cluster

* Add missing code to store the clusterId in the database state object

* Update some arguments to pass by const&
2022-07-07 10:12:49 +02:00
Steve Atherton 03df62e2fc Added StorageEngine detail to StorageMetrics trace event. 2022-07-07 00:10:04 -07:00
Markus Pilman 56541167c2 send token with tenant info object 2022-07-06 20:58:17 -06:00
Yao Xiao f98d5ae9e9
[ShardedRocksDB] 5/N Generate and persist metadata for range mapping. (#7408) 2022-07-06 15:57:46 -07:00
Jon Fu df1f108b78 Merge branch 'main' of github.com:apple/foundationdb into jfu-tenant-rename 2022-07-06 14:10:22 -07:00
Dan Lambright bb99b59deb
Change VersionVectorTagUpdates to LatencySample (#7531) 2022-07-06 16:48:15 -04:00
A.J. Beamon 1e8225a19e
Merge pull request #7511 from sfc-gh-ajbeamon/add-subrange-support-to-tenant-special-keys
Update the tenant special keys submodule to support multiple sub-ranges
2022-07-06 10:33:14 -07:00
Sreenath Bodagala a84112d30b - Propagate the locality of the primary region from ClusterController
to the sequencer, rather than deriving it from "MasterInterface" on
the sequencer (which is not correct).
2022-07-06 11:57:06 +00:00
Junhyun Shim db449b80f7
Authz JWKS (#7519)
* Add JsonWebKeySet parser/stringifier

* Update header directory

* Make JWKS parser correctness clean for OpenSSL 1.x

Add RSA keygen support

* Make JWKS parser correctness clean for OpenSSL 3.x

+extend unique_ptr for scoped destruction of OpenSSL objects

* Use PKey::{sign|verify}() in TokenSign

* Apply AutoCPointer to MkCert

* Apply Clang format

* JWKS::toStringRef() returns StringRef > Optional<StringRef>

* Fix Mac/Windows build error

* Fix incorrect fix of Mac build

* Fix filename in license comment for AutoCPointer.h

* Refactor complex C macros into function templates
2022-07-05 10:13:09 +02:00
Steve Atherton c417df83f3
Merge pull request #7515 from sfc-gh-ajbeamon/more-generic-key-backed-types
Update key backed types to support multiple transaction types and different codecs
2022-07-01 14:37:02 -07:00
Josh Slocum 08ca0a9883
Merge pull request #7509 from sfc-gh-jslocum/cf_memory_perf
Change Feed Reading CPU optimization
2022-07-01 14:06:39 -05:00
Dan Lambright ea42e9f59c
Do not delay sending empty messages twice (#7462) 2022-07-01 14:22:53 -04:00
A.J. Beamon 9e659b62ee Fix idempotent spelling 2022-07-01 10:34:10 -07:00
A.J. Beamon 62683b4140 Update key backed types to support a templated Codec. This required updating the existing Codec to convert from objects into byte strings through tuples. 2022-07-01 10:11:02 -07:00
A.J. Beamon 1dc78a3b3f Add support for different transaction types (Reference<ITransaction>, Reference<ReadYourWritesTransaction>) to key backed types 2022-07-01 10:02:39 -07:00
A.J. Beamon aff21f062f Fix indentation and refactor prefix construction to be in forward order 2022-07-01 09:50:05 -07:00
Josh Slocum 9e64037b25 Merge branch 'main' into bg_file_chunking 2022-06-30 17:13:02 -05:00
A.J. Beamon 2f67328a0c Update the tenant special keys submodule to support multiple sub-ranges. This will enable future work that allows configuring tenants at the same time as creating them. 2022-06-30 15:03:37 -07:00
Josh Slocum f943efb3b1 Change Feed Reading CPU optimization 2022-06-30 15:32:41 -05:00
Josh Slocum 48bcf6eaba
parameterizing min split size instead of hardcoding it to min_shard_bytes (#7404) 2022-06-30 12:28:22 -07:00
Xiaoxi Wang e85e7794c2
Merge pull request #7501 from sfc-gh-xwang/features/ppw-pause-state
Add timeout handler for storage wiggler status fetcher
2022-06-30 11:23:29 -07:00
Jingyu Zhou d60cab788e
Merge pull request #7502 from jzhou77/main
Add pipelining for secondary queries in index prefetch
2022-06-30 10:27:29 -07:00
A.J. Beamon 76a147a104
Merge pull request #7496 from sfc-gh-ajbeamon/refactor-tenant-map-encoding
Refactor how tenant map entries are encoded and decoded
2022-06-30 09:48:38 -07:00
Jingyu Zhou 4910f69f60
Update fdbserver/storageserver.actor.cpp
Co-authored-by: Hao Fu <77984096+hfu94@users.noreply.github.com>
2022-06-30 09:19:19 -07:00
Dan Lambright 98b18e3a18
Remove code obsoleted by commit c48d5690 (#7499) 2022-06-30 12:16:23 -04:00
Jingyu Zhou 467642ac7f Remove semicolons 2022-06-30 09:12:58 -07:00
Xiaoxi Wang e69604be42 Merge branch 'main' of https://github.com/apple/foundationdb into features/ppw-pause-state 2022-06-30 09:01:29 -07:00
Xiaoxi Wang 0beaf3bb93
Merge pull request #7504 from sfc-gh-tclinkenbeard/monitor-client-rates
Make GlobalTagThrottlerTesting::monitorClientRates more lenient
2022-06-30 09:00:22 -07:00
Markus Pilman 3d529fb145
Merge pull request #7055 from sfc-gh-tclinkenbeard/remove-tpcc
Remove TPC-C workloads
2022-06-30 09:49:09 -06:00
sfc-gh-tclinkenbeard 3e542b7ab1 Make GlobalTagThrottlerTesting::monitorClientRates less strict 2022-06-30 00:59:26 -07:00
Xiaoxi Wang b51e9430a5 fix timeout buggify 2022-06-29 22:46:50 -07:00
sfc-gh-tclinkenbeard 72f5335460 Remove TPCC workloads 2022-06-29 22:31:56 -07:00
Jingyu Zhou 842004f3b3 Code clean-up 2022-06-29 21:29:41 -07:00
Jingyu Zhou ba5e2ed72d Add batching for secondary queries in index prefetch
This is to reduce excessive load being issued concurrently, controlled by knob
MAX_PARALLEL_QUICK_GET_VALUE.
2022-06-29 21:17:11 -07:00
Xiaoxi Wang 1b0780398f Merge branch 'main' of https://github.com/apple/foundationdb into features/ppw-pause-state 2022-06-29 21:03:47 -07:00
Jingyu Zhou da26a4c373 Issue secondary query in parallel for GetMappedKeyValues
In case the subquery is a local miss, it becomes a remote call. Then such an
optimization can significantly reduce latency.
2022-06-29 17:45:10 -07:00
Xiaoxi Wang 570dfd6760 add timeout handler 2022-06-29 15:30:37 -07:00
Yi Wu 364644673f
Support TLog encryption in commit proxy (#6942)
This PR add support for TLog encryption through commit proxy. The encryption is done on per-mutation basis. As CP writes mutations to TLog, it inserts encryption header alongside encrypted mutations. Storage server (and other consumers of TLog such as storage cache and backup worker) decrypts the mutations as they peek TLog.
2022-06-29 14:21:05 -07:00
Jon Fu 5e7bb0aa21 Merge branch 'main' of github.com:apple/foundationdb into jfu-tenant-rename 2022-06-29 13:20:19 -07:00
Xiaoxi Wang c9366f8b01
Merge pull request #7491 from sfc-gh-xwang/bug/remotekv
Make g_simulator.datacenterDead() don't take spawn KV process into account
2022-06-29 11:43:27 -07:00
Chaoguang Lin 29f98f3654
Avoid duplicate snapshot on one process if it serves as multiple roles (#7294)
* Fix comments

* Add simulation value for SERVER_KNOBS->SNAP_CREATE_MAX_TIMEOUT

* A work version with correctness clean

* Remove unnecessay comments; debugging symbols

* Only check secondary address for coordinators, same as before

* Change the trace to SevError and remove the ASSERT(false)

* Remove TLogSnapRequest handling on TlogServer, which is changed to use WorkerSnapRequest

* Add retry for network failures

* Add retry limit for network failures; still allow duplicate snapshots on processes are both tlog and storage to avoid race

* Add retry limit as a knob and make backoff exponentail

* Add getDatabaseConfiguration(Transaction* tr)

* revert back to send request for each role once

* update some comments
2022-06-29 11:23:07 -07:00
A.J. Beamon 26b35c07cd Refactor how tenant map entries are encoded and decoded. Add a specific version to the encoding that matches the version used when this feature was introduced (and the only version in which it was used). 2022-06-29 10:58:58 -07:00
Trevor Clinkenbeard db769667ae
Merge pull request #7112 from sfc-gh-tclinkenbeard/global-tag-throttling3
Create Global Tag Throttler
2022-06-29 10:06:00 -07:00
Xiaoxi Wang 0054b8a754 Merge branch 'main' of https://github.com/apple/foundationdb into bug/remotekv 2022-06-28 23:41:25 -07:00
Xiaoxi Wang c6ff556f06 fix bug by exclude the spawned kv process info when counting dead process; add method 2022-06-28 23:39:22 -07:00
sfc-gh-tclinkenbeard 2134fa9a0c Merge remote-tracking branch 'origin/main' into global-tag-throttling3 2022-06-28 19:51:41 -07:00
sfc-gh-tclinkenbeard b4193f701e Mark CoordinatedState::getConflict const 2022-06-28 19:45:58 -07:00
sfc-gh-tclinkenbeard be9a2002c3 Merge remote-tracking branch 'origin/main' into fix-knob-typo 2022-06-28 15:58:18 -07:00
Yao Xiao cc93dfd289
Add getStorageBytes. (#7485) 2022-06-28 14:37:26 -07:00
Jingyu Zhou ec9c3cf05c Remove unused variables 2022-06-28 16:41:58 -04:00