Commit Graph

2626 Commits

Author SHA1 Message Date
sfc-gh-tclinkenbeard 6251e8be32 Track transaction cost for range reads 2022-10-17 10:08:49 -07:00
Dennis Zhou 6752da5e65 blob/test: check tenant_not_found exception 2022-10-17 11:42:27 -05:00
Dennis Zhou 46ec2f416e blob/test: convert BlobGranuleRangesWorkload to use a tenant on coin flip 2022-10-17 11:42:27 -05:00
sfc-gh-tclinkenbeard 17c24c91aa Refactor TransactionCostWorkload 2022-10-17 07:06:32 -07:00
sfc-gh-tclinkenbeard d0f09d26e1 Add readLargeValue test to TransactionCostWorkload 2022-10-16 21:58:08 -07:00
sfc-gh-tclinkenbeard 445e871cf2 Use fungibility ratio in getWriteOperationCost 2022-10-16 21:58:08 -07:00
sfc-gh-tclinkenbeard 84aa815026 Implemented first version of Transaction::getTotalCost, along with workload 2022-10-16 21:58:08 -07:00
Xiaoxi Wang e8e6f47e09 format code 2022-10-15 22:52:43 -07:00
Xiaoxi Wang eb4d872127 finish MoveKeys test (not run yet) 2022-10-15 22:52:43 -07:00
Xiaoxi Wang 313c76232c skip shard size validity 2022-10-15 22:52:43 -07:00
Xiaoxi Wang 8f5e9255f1 finish testRawMovementApi (not run test yet) 2022-10-15 22:52:43 -07:00
Xiaoxi Wang dd9294ac66 add shard status transition validation 2022-10-15 22:52:43 -07:00
Xiaoxi Wang 83685e6a61 add status verification; add skipDDModeCheck in getInitialDataDistribution for workload test 2022-10-15 22:52:42 -07:00
Ankita Kejriwal 0f9da9d1ad Merge branch 'main' of github.com:apple/foundationdb into getsizetenant 2022-10-14 16:50:51 -07:00
Ankita Kejriwal a24ab2d4fa Incorporate code review comments + workload code cleanup 2022-10-14 13:59:36 -07:00
Markus Pilman f5f33c5883
Merge pull request #8473 from sfc-gh-mpilman/features/enforce-workload-name
Force name and description of workloads to be the same
2022-10-14 12:42:03 -06:00
Markus Pilman da5b5a354e Fix failure injection naming 2022-10-14 11:28:03 -06:00
Markus Pilman 180238076c Fix HighContentionPrefixAllocatorWorkload and make untrusted argument to workload factory type safe 2022-10-14 09:51:49 -06:00
Markus Pilman fb1390ef3d reformat code 2022-10-14 08:47:56 -06:00
Josh Slocum 7cec0a5249
Blob metadata refresh (#8456)
* Adding EKP refresh of blob metadata

* Adding re-fetching blob metadata from BGTenantMap

* adding buggifies from code review comments
2022-10-14 08:17:50 -05:00
Markus Pilman 49f0cf5ab0 Force name and description of workloads to be the same 2022-10-13 20:53:48 -06:00
Ankita Kejriwal 854212fe94 Incorportate code review suggestions 2022-10-13 17:41:31 -07:00
Hui Liu 169c341f79
Merge pull request #8386 from sfc-gh-huliu/blobmigrator
Add blob migrator to assist data copy from blob to storage server
2022-10-13 14:46:04 -07:00
Ankita Kejriwal be64b12ecf Clean up TraceEvents, TODOs, and simplify workload. 2022-10-13 14:31:42 -07:00
Hui Liu 049df622f1 add a blob migrator 2022-10-13 13:21:45 -07:00
Jingyu Zhou df5825ff65
Merge pull request #8398 from sfc-gh-anoyes/anoyes/idempotency-id2
Initial work for automatic idempotency
2022-10-13 13:07:14 -07:00
Jingyu Zhou e4752309a1
Merge pull request #8075 from liquid-helium/validate-data-consistency
Validate data consistency
2022-10-13 09:20:01 -07:00
Jingyu Zhou 1bfe00ca61
Merge pull request #8449 from sfc-gh-ahusain/ahusain-auth-token-cleanup
Remove MultiToken Encryption auth-token generation
2022-10-12 17:51:42 -07:00
Markus Pilman 395ac11416
Merge pull request #8463 from sfc-gh-mpilman/bugfixes/different-cluster-same-rv-race
Fix DifferentClustersSameRV workload
2022-10-12 17:36:33 -06:00
He Liu 97acc94a7f Fixed out-of-scope variable issue. 2022-10-12 16:13:57 -07:00
Markus Pilman 9997ebba64 Fix DifferentClustersSameRV workload 2022-10-12 16:14:38 -06:00
He Liu a43e424d8a Merge branch 'main' of https://github.com/apple/foundationdb into validate-data-consistency 2022-10-12 13:01:07 -07:00
Jon Fu a3d42c6073 Merge branch 'main' of github.com:apple/foundationdb into tenant-restarting-tests 2022-10-12 11:59:27 -07:00
Jon Fu 056f938991 add tenantmode to testconfig and change precedence rules for some tenant options 2022-10-12 11:51:50 -07:00
Nim Wijetunga 8ca6397e97
Enable Backup Tests for Encrypted Snapshots (#8419)
* enable encrypted snapshot backup tests

* address pr comments

* remove tenant cache when decoding

* remove client knob
2022-10-12 10:45:30 -07:00
Ata E Husain Bohra 858d562fce Remove MultiToken Encryption auth-token generation
Description

The current code supports two modes for authentication encryption:
1. Single auth-token mode
2. Multi auth-token mode

The code currently uses SingleAuthToken mode only, the multi-auth
token mode was added to support large file (such as backup files)
encryption assisting encryption authentication by allowing reading
header independently from encrypted payload itself. However, the
backup files are organized as 'chunks' and every chunk is encrypted,
hence, MultiToken mode isn't used in the code.

Removing the usage saves 32 bytes per encryption header, which might
translate to decent storage saving, further, allows lesser encryption
header overhead when encrypting small Key-Value mutations.

Testing

BlobCipher unittests
EncryptionOps.toml
2022-10-11 22:49:53 -07:00
Kevin Hoxha 6c62ff3cf8 configdb: Fix ConfigIncrementWorkload ConfigDatabaseUnitTests to use tuple instead of binary reader 2022-10-11 15:32:01 -07:00
Ankita Kejriwal 7abe785669 Merge branch 'main' of github.com:apple/foundationdb into getsizetenant 2022-10-11 15:03:42 -07:00
Andrew Noyes 9e7630869e Test ids > 16 bytes in workload 2022-10-11 13:46:40 -07:00
Andrew Noyes e51d2a765c Make sure ids are unique 2022-10-11 13:46:40 -07:00
Andrew Noyes 43a72ad406 Use versionstamped keys instead of atomic add in test
This makes it easier to debug if something goes wrong
2022-10-11 13:46:39 -07:00
Andrew Noyes 6ef8d7ec95 Add AutomaticIdempotencyWorkload 2022-10-11 13:46:39 -07:00
Andrew Noyes 329a2724ff Add IdempotencyId struct 2022-10-11 13:46:39 -07:00
Ankita Kejriwal 11658c7135 Merge branch 'main' of github.com:apple/foundationdb into getsizetenant 2022-10-11 13:09:47 -07:00
Jon Fu 2c0f936740 Merge branch 'main' of github.com:apple/foundationdb into tenant-restarting-tests 2022-10-11 12:41:03 -07:00
Jon Fu 3c7d17e2bb work in progress commit for defaulttenant in restarting tests 2022-10-11 12:40:36 -07:00
Josh Slocum 06d9ebd620
Adding domain name to blob metadata requests (#8415) 2022-10-11 14:31:14 -05:00
Xiaoxi Wang f16ba3991f add comment 2022-10-11 09:27:05 -07:00
Xiaoxi Wang b76268544f disallow workload injection in IDDTxnProcessorApiCorrectness 2022-10-10 22:41:31 -07:00
Ankita Kejriwal 8ed2b85427 Reduce workload flakiness.
* Scale up the workload so that the size for the tenant is large enough
  so that the estimated size will not be rounded down to 0.
* Retry getting the size in the workload (with a delay, upto a maximum
  time) to allow for the size estimate to catch up.
2022-10-10 18:40:31 -07:00
He Liu b52edd8658 Merge branch 'main' of https://github.com/apple/foundationdb into validate-data-consistency 2022-10-10 11:00:05 -07:00
He Liu 1931e3266f Resolve comments. 2022-10-10 10:28:19 -07:00
Steve Atherton b7ce834d28 Merge commit '7c89cd705faee52d5d78e6c77665cb7cc4502f58' into storageserver-pml 2022-10-07 11:39:42 -07:00
Markus Pilman ea1325a552
Merge pull request #8319 from sfc-gh-tclinkenbeard/add-rare-code-probe-annotation
Add `rare` code probe decoration
2022-10-07 09:39:00 -06:00
Steve Atherton 3228afefd3 Unrevert #7578 - storage server PriorityMultiLock and PML rewrite. 2022-10-06 23:41:28 -07:00
A.J. Beamon f8186988bc
Merge pull request #8378 from sfc-gh-ajbeamon/tenant-support-for-database-switching
Add tenant support for database switching
2022-10-05 14:57:33 -07:00
Sreenath Bodagala e83229ed8b
- Version vector specific: Propagate the latest commit version, as (#8393)
part of the read request, when reading from a storage server.
2022-10-05 16:23:56 -04:00
Jon Fu 2fe1d19e95 Merge branch 'main' of github.com:apple/foundationdb into metacluster-status 2022-10-05 11:48:04 -07:00
Josh Slocum 8592f7e253
Added test check to verify change feeds get cleaned up at the end of blob granule tests (#8322)
* implemented check, but it doesn't always work

* cleanup
2022-10-05 12:58:05 -05:00
Markus Pilman 45a31884d5 Address review comments 2022-10-05 09:30:25 -06:00
Markus Pilman 67076aae4c Fix compilation errors 2022-10-05 07:52:54 -06:00
Markus Pilman 550488b020 Merge remote-tracking branch 'origin/main' into bugfixes/open-for-ide
# Conflicts:
#	bindings/c/CMakeLists.txt
#	fdbclient/include/fdbclient/GetEncryptCipherKeys.actor.h
#	fdbserver/BackupWorker.actor.cpp
#	fdbserver/BlobWorker.actor.cpp
#	fdbserver/CommitProxyServer.actor.cpp
#	fdbserver/KeyValueStoreMemory.actor.cpp
#	fdbserver/StorageCache.actor.cpp
#	fdbserver/include/fdbserver/GetEncryptCipherKeys.actor.h
#	fdbserver/storageserver.actor.cpp
#	fdbserver/workloads/PhysicalShardMove.actor.cpp
#	flow/CMakeLists.txt
2022-10-04 18:27:48 -06:00
Markus Pilman 97dfc6823f fixed build with OPEN_FOR_IDE 2022-10-04 17:01:02 -06:00
A.J. Beamon 55b880432e
Merge pull request #8379 from sfc-gh-ajbeamon/literal-string-ref-removal
LiteralStringRef removal
2022-10-04 09:41:42 -07:00
A.J. Beamon 53593c77ac When updating watches after a database switch, lookup the tenant again to get the ID on the new cluster. Update the switching test to set up tenants properly. 2022-10-03 09:24:13 -07:00
sfc-gh-tclinkenbeard fec791be62 Merge remote-tracking branch 'origin/main' into split-failure-injection-workloads 2022-09-30 18:00:48 -07:00
A.J. Beamon e1fe28b78b Switch some usages of LiteralStringRef to use the _sr suffix 2022-09-30 16:04:16 -07:00
Ata E Husain Bohra 442ed0de10
Update TenantEntryCache workload refresh to handle fault injection (#8369)
* Update TenantEntryCache workload refresh to handle fault injection

Description

 diff-1: Add trace event to log wait

Patch update TenantEntryCache::testCacheRefresh to better handle fault
injection causing longer cluster recovery/availability delays. The
test is modified to loop for a threshold time waiting for next round
of tenantCache refresh cycle to happen. Otherwise throws 'timed_out'
error.

Testing

devRunCorrectness - 100K
2022-09-30 15:48:40 -07:00
Nim Wijetunga 90ce4053f4
Repair Dead Data Center Outside Quiet Database (#8359)
* fix snap test

* repair dead data center
2022-09-30 13:59:02 -07:00
Ankita Kejriwal 999809e79b Increase the data in the workload and add ASSERTs for expected values. 2022-09-29 19:21:44 -07:00
Ankita Kejriwal 5a3cd51255 Remove temporary TraceEvents and comments from previous commits 2022-09-29 18:53:11 -07:00
Ankita Kejriwal c2b6b288b7 Fixes in the GetEstimatedRangeSize workload
* Run the workload on a trusted client rather than untrusted
  clients. This allows the workload to be substantially simplified
  as well as enables testing for the case where no tenant is
  present.
* Explicitly pass tenant to BulkSetup so that the setup phase
  can be run in parallel for multiple tenants without causing a race.
2022-09-29 18:34:47 -07:00
Ankita Kejriwal de90e1aab1 Improve the code in the actors and server, simplify the workload 2022-09-29 18:34:35 -07:00
Ankita Kejriwal f63934117d Make the storage metrics function tenant aware [WIP]
This change makes the getEstimatedRangeSizeBytes function tenant aware.
Previously, this function would return the size of the requested
keyspace even if the tenant in the Transaction or DatabaseContext did
not match the tenant corresponding to the keyspace.

Also make some improvements to the new workload.
2022-09-29 18:32:04 -07:00
Ankita Kejriwal 85ba47f4c8 Add a workload to test getEstimatedRangeSizeBytes funtionality 2022-09-29 18:28:39 -07:00
Jon Fu 461e42bfe1 restructure updater code and add capacity check in metacluster management workload 2022-09-29 16:24:02 -07:00
Ata E Husain Bohra 03f1d13be3
Enable encryption authentication configurability (#8312)
* Enable encryption authentication configurability

Description

 diff-1: Remove memcpy due to auth-token computation
         Address review comments

Patch proposes major changes:
1. Enable FDB to choose encryption authentication as a configurable
parameter. Fix issues choosing ENCRYPT_HEADER_AUTH_TOKEN_NONE mode.
2. Introduce AES_CMAC as supported encryption authentication scheme.

Patch allows cluster to govern: if encryption authentication needs to
enabled, if yes, then choose from two supported schemes:
1. HMAC_SHA_256
2. AES_256_CMAC

Testing

devRunCorrectness - 100K
BlobCipher unittests
EncryptionOps.toml
BlobGranuleCorrectness/BlobGranuleCorrectnessClean
2022-09-29 16:18:55 -07:00
Nim Wijetunga 232e23c87e
Snapshot Backup Encryption (#8095)
* inital commit

* add encryption support

* refactor passing encryption keys

* disable encryption codepath

* pass enable encryption cli arg for fdbbackup

* change encryption key passing

* only enable encryption for backup if tenant mode is required

* revert server knobs

* ignore json trace files

* --amend

* integrate ekp

* add comments

* comments

* comments

* revert knobs

* fix bug

* modify encrypted backup logic

* use common prefix

* check boundaries between begin and end key

* return system encrypt domain

* modify

* add tenant entry cache to backup

* slight revert

* format

* Trigger Build

* format

* use tenant name to fetch keys

* Trigger Build

* Trigger Build

* merge

* fix getting ekp

* fix bug

* address pr comments

* Trigger Build

* Trigger Build

* remove faulty check
2022-09-29 14:45:47 -07:00
sfc-gh-tclinkenbeard 2434f18c5c Enable failure injection for all simulation tests 2022-09-29 14:14:24 -07:00
A.J. Beamon 93d08b55ba
Merge pull request #8350 from sfc-gh-ajbeamon/fix-metacluster-workload-heap-use-after-free
Fix heap use after free in metacluster management workload
2022-09-29 13:38:32 -07:00
A.J. Beamon 5d075d3aff Fix heap use after free 2022-09-29 12:34:36 -07:00
Xiaoxi Wang 3578832c69 merge upstream/main 2022-09-28 14:01:50 -07:00
A.J. Beamon c8bb15e8ee
Merge pull request #8216 from sfc-gh-ajbeamon/backup-support-for-tenants
Include tenant and metacluster metadata in backups
2022-09-28 12:00:24 -07:00
Trevor Clinkenbeard ef13985feb
Merge pull request #8320 from sfc-gh-tclinkenbeard/read-write-fungible
Make read and write quotas fungible
2022-09-28 10:59:37 -07:00
Nim Wijetunga 251afa3610
Set g_simulator fields for restart tests (#8318)
* fix tests

* fix tenant concurrency

* Set g_simulator variables for restart tests

* fix machine attrition for restarting
2022-09-28 10:09:26 -07:00
A.J. Beamon 3353103d9d Fix filtering of potential backup mutations in commit proxy and backup worker; add code probe to ensure we are testing default backup sharing and add some tests to hit it 2022-09-27 15:25:30 -07:00
Xiaoxi Wang 3428fe467a Merge branch 'main' of https://github.com/apple/foundationdb into feature/dd-refactor-simple 2022-09-27 11:55:35 -07:00
Xiaoxi Wang e476e814b2 merge upstream/main 2022-09-27 10:15:26 -07:00
sfc-gh-tclinkenbeard ba8fbc9573 Merge remote-tracking branch 'origin/main' into read-write-fungible 2022-09-26 23:26:14 -07:00
A.J. Beamon 1b8512e949
Merge pull request #8314 from sfc-gh-ajbeamon/metacluster-management-workload-expansion
Improve Metacluster Management Workload
2022-09-26 15:51:28 -07:00
A.J. Beamon b0c3534463 Handle invalid tenant configuration when a group and assigned cluster are specified for a tenant and the assigned cluster doesn't match the group's cluster 2022-09-26 14:32:26 -07:00
Jingyu Zhou 248c82eb3f
Merge pull request #8229 from sfc-gh-tclinkenbeard/guard-gsimulator
Guard a few uses of gsimulator.
2022-09-26 13:52:42 -07:00
A.J. Beamon 05615107da Minor refactoring to remove throw internal_error lines 2022-09-26 13:14:24 -07:00
A.J. Beamon 093db25d11 Add tenant group support to the tenant management workload and test configure and rename tenant operations. Fix a few error types picked up by the test. 2022-09-26 13:14:24 -07:00
Jon Fu 1d00ca3261 address code review comments 2022-09-26 10:37:58 -07:00
sfc-gh-tclinkenbeard ce0ad38c94 Merge remote-tracking branch 'origin/main' into guard-gsimulator 2022-09-26 10:18:43 -07:00
Jon Fu 76543cbd8a remove debug trace 2022-09-26 10:02:16 -07:00
Jon Fu 2d1a6b4434 Merge branch 'main' of github.com:apple/foundationdb into metacluster-assigned-cluster 2022-09-26 09:59:20 -07:00
Jon Fu 6b2c932e75 modify tests to work with error case of changing preferred cluster on retries 2022-09-26 09:59:06 -07:00
Evan Tschannen 86c27754fb
Fixed a bug where rollbackVersion >= data->storageVersion() (#8290)
* fix: the log router could see popped() versions between recoveredAt and the recovery txn version which cause remote tlogs to be stopped at a version in this range, which causes storage servers to read at versions in this range

* fix: a spurious correctness bug resulted from the consistency check running during a recovery
2022-09-26 09:19:53 -07:00