Commit Graph

162 Commits

Author SHA1 Message Date
Josh Slocum 8f241632af adding knob to allow relative paths for local backup containers 2023-05-23 17:06:49 -05:00
Josh Slocum d038154d69
re-enabling change feed coalesce knob (#10317) 2023-05-23 14:43:11 -05:00
Josh Slocum 629b068145
Bg tenant metadata restarting (#10235)
* making blob metadata optionally deterministic across runs

* Non restarting test passes after refactor

* adding downgrade version test

* formatting
2023-05-23 11:24:13 -05:00
Hui Liu 7ca13d8f9c
support blob restore in fdbrestore (#10248) 2023-05-19 14:45:14 -07:00
Jefferson Zhong 3760522dc2 Make stepSize configurable for preloadApplyMutationsKeyVersionMap 2023-05-19 10:57:30 -07:00
Ata E Husain Bohra 18fd2702c4
EaR: Implement SimKmsVault interface, refactor SimKmsConnector (#10194)
Description

Patch implements a SimKmsVault interface allowing unittest/simulation
to satisfy encryption lookup usecases. It also refactors existing
SimKmsConnector to leverage SimKmsVault APIs

Testing

devRunCorrectness - 100K
/simKmsVault - asan & valgrind
EncryptionUnitTest
2023-05-10 12:44:53 -07:00
Jingyu Zhou 78434517ff Increase buggified STORAGE_METRICS_SHARD_LIMIT value
The previous buggified value 3 can be the same as key location size, thus
causing splitStorageMetrics() to stuck.
2023-05-04 19:31:43 -07:00
Josh Slocum 5b47913882
disabling global conncetion pool for now (#10054) 2023-04-28 09:48:56 -05:00
Hui Liu 711e040627
RestoreConfig - use restoreRangeSet to replace restoreRanges (#9912) 2023-04-06 11:16:05 -07:00
Josh Slocum a5b4212990 adding blob granule logical size 2023-03-15 08:54:49 -05:00
Nim Wijetunga 218ed4519f
Strengthen Snapshot Backup/Restore Asserts (#9552)
strengthen backup/restore asserts for encryption
2023-03-08 15:24:02 -08:00
Ata E Husain Bohra d0eec9d0ba
EaR: REST KMS fixes - encryption integration testing (#9598)
* EaR: REST KMS fixes - encryption integration testing

Description

Major changes:
1. Multiple fixes observed while performing integration end-to-end
testing for Encryption at-rest feature.
2. Improve REST module logging. Introduced FLOW_KNOBS->REST_LOG_LEVEL
to have more granular control of feature logging disconnected from
the cluster log level.

Testing

Integration testbed:
1. Run fdbserver standalone
2. Run external KMS http-server to serve encryption key fetch requests
2023-03-08 09:49:43 -08:00
Ata E Husain Bohra a45de70003
EaR: RESTClient HTTP compliance, fix json request content type (#9544)
* EaR: RESTClient HTTP compliance, fix json request content type

Description

  diff-1: Address review comments

RESTClient is responsible to handle FDB <-> KMS communication
for Encryption and other usecases. By design, it only supports
"secure connection" i.e. "https"; however, it seems there is a
need to expand the module to support "http" connection,
for instance: test and dev deployments for instance.

However, given RESTClient gets involved in handling high
sensitive contents such as: plaintext "encryption cipher
from a KMS", the feature is guarded using
CLIENT_KNOB->REST_KMS_ENABLE_NOT_SECURE_CONNECTION which is
settable using FDBServer command line argument
"--kms-rest-enable_not_secure_connection" (boolean)

Testing

Deployed a standalone fdbserver and communicate with a
simple "http" server
2023-03-06 16:06:03 -08:00
Josh Slocum 301f2fd201 disabling feed coalesce for now 2023-02-28 12:07:12 -06:00
sfc-gh-tclinkenbeard 1aef6cb5f7 Merge remote-tracking branch 'origin/main' into expose-tag-throttled-duration 2023-02-17 20:41:59 -08:00
Ata E Husain Bohra 99b23ac04d
EaR: Configurable encryption support for Tlog mutations (#9394)
* EaR: Configurable encryption support for TLog mutations

Description

  diff-1 : Address review comments

Major changes includes:
1. Update the code involved in ensuring Tlog mutation encryption to be
compliant with "configurable encryption" feature.
2. Update ENABLE_CONFIGURABLE_ENCRYPTION flag to be 'true' by default
and BUGGIFY it.

Testing

devRunCorrectness - 100K
2023-02-16 19:01:59 -08:00
Nim Wijetunga e03eca778c
Configurable Encryption Support for Backup (#9375)
Snapshot backup configurable encryption support
2023-02-16 15:03:27 -08:00
A.J. Beamon 13eee09ce8 Merge branch 'main' into metacluster-mgmt-restore 2023-02-10 10:58:01 -08:00
A.J. Beamon 4b13c9c211 Make a few minor fixes, refactor some code for clarity, and improve throughput of repopulating a management cluster 2023-02-10 10:41:55 -08:00
sfc-gh-tclinkenbeard 31c3365215 Increase default value for MAX_TRANSACTION_TAG_LENGTH 2023-02-09 11:31:10 -08:00
A.J. Beamon 2d59c5681d Bug fixes and test improvements for management cluster restoration 2023-02-09 08:42:23 -08:00
Ata E Husain Bohra 9c649d7880
EaR: Configurable encryption framework (#9271)
* EaR: Configurable encryption framework

Description

EaR implementation only supports fixed size on-disk encryption header format.
One drawback of the scheme is, introducing a newer encryption scheme as well
as updating header format in future may incur data migration restrictions.
Major changes proposed in the patch includes:
1. Flexible Encryption header format allowing the following:
 1.1. Header flags (metadata) can evolve separately from the encryption algorithm
 1.2. Specific encryption algorithm header to allow future extensions.
2. Update the BlobCipher encryption/decryption util classes to work with newer
encryption header format.
3. Continue supporting multiple encryption authentication schemes such as:
HMAC-SHA and AES-CMAC; also, supports no encryption-authentication schemes.
4. Refactor BlobCipher unit test to enable testing of new format.
5. Configuration knobs to control encryption header flags and algorithm
versions.

Note: 
The on-disk header storage footprint savings due to the newer scheme is as follows:
1. No encryption authentication: 54% smaller compared to existing implementation.
3. AES-CMAC: 16% smaller compared to existing implementation.
3. HMAC-SHA encryption authentication: almost same size.


Testing

BlobCipherTest
EncryptionOpsTest
2023-02-08 22:51:05 -08:00
sfc-gh-tclinkenbeard 09ad864eb5 Merge remote-tracking branch 'origin/main' into expose-tag-throttled-duration 2023-02-08 11:25:14 -08:00
Nim Wijetunga 86f3665514
Handle EKP Tenant Not Found Errors (#9261)
handle EKP tenant not found errors
2023-02-01 19:15:38 -08:00
Josh Slocum 1b4753a4d4
Fix chunked reads (#9246)
* removing chunked read loop

* reducing memory overhead of async file block cache by freeing some blocks during read if no longer needed
2023-01-30 13:43:24 -06:00
Josh Slocum f41b61aacf
Blobstore static connection pool, and observability improvements (#9234)
* Adding global connection pool for multiple blobstore instances

* adding knob to enable/disable blobstore global connection pool

* Adding BlobStoreMetrics and BlobStoreRequestLatency logging for better blobstore observability
2023-01-27 16:46:26 -06:00
Josh Slocum 0881c0e4e2
Bg perf 2 (#9052)
* added dynamic write amp calculations for blob granule compaction

* changing blob worker parallelism counts to bytes budget to handle less uniform operation sizes

* more snapshotting parallelism for behind feeds

* add a bit of observability when this happens

* adding knobs

* typo

* adjusting some knobs up with buggified granule size

* fixing bugs in dynamic write amp

* fixing formatting

* fixing bug in knob buggification

* fix formatting
2023-01-26 16:56:45 -06:00
Josh Slocum 1cadc546e2
Adding fast retry on broken connection pool connection to S3BlobStore, and several small related changes (#9125) 2023-01-24 11:53:37 -06:00
Josh Slocum b6450f9eaa
More ss cf perf fixes main (#9109)
* changing future version logic for change feed fetch

* Optimizing change feed data structures and accesses

* coalescing change feed request ranges for merge cursor if they're to the same team

* fixing over-read of memory mutations for change feeds

* feed filter mutations common prefix cpu optimiation

* fix formatting
2023-01-12 16:15:05 -06:00
A.J. Beamon f999623bb1 Add a tenant lookup interface and use it when starting transactions 2023-01-06 15:51:12 -08:00
sfc-gh-tclinkenbeard 453f3f44c6 Merge remote-tracking branch 'origin/main' into expose-tag-throttled-duration 2022-11-21 09:17:48 -08:00
Zhe Wu 9ade12d313 Switch the knob that enables shared map to enable client using cluster id key 2022-11-19 12:46:05 -08:00
Zhe Wu 81fc8e9d2f Using a knob to guard updateClusterSharedStateMap 2022-11-19 12:46:05 -08:00
sfc-gh-tclinkenbeard 2bbf823b24 Implement Transaction::getTagThrottledDuration 2022-11-13 14:39:22 -08:00
sfc-gh-tclinkenbeard ca572f58fb Combine *_COST_BYTE_FACTOR knobs into a single TAG_THROTTLING_PAGE_SIZE knob 2022-11-08 07:44:01 -08:00
Vaidas Gasiunas ce3038bfe5
Use a network option for retaining temporary client lib copies instead of a client knob (#8630) 2022-11-07 14:46:17 +01:00
Josh Slocum d68cd3493e
making read caching configurable for blob store (#8607) 2022-11-03 16:42:46 -05:00
Ankita Kejriwal ffbd81cfcf Merge branch 'main' of github.com:apple/foundationdb into monitorusage 2022-11-01 16:51:27 -07:00
sfc-gh-tclinkenbeard 80ee79e39b Merge remote-tracking branch 'origin/main' into debug 2022-11-01 12:37:27 -07:00
sfc-gh-tclinkenbeard 5fd8d05810 Make PROXY_MAX_TAG_THROTTLE_DURATION a server knob 2022-11-01 11:00:45 -07:00
Ankita Kejriwal b1a2239612 Increase the value of `UNKNOWN_TENANT_RETRY_DELAY` 2022-10-31 16:46:38 -07:00
sfc-gh-tclinkenbeard 0eb1598afa Merge remote-tracking branch 'origin/main' into expose-txn-cost 2022-10-30 09:36:37 -07:00
Josh Slocum 4d3553481f
Blob connection provider test (#8478)
* Refactoring test blob metadata creation

* Implementing BlobConnectionProviderTest

* createRandomTestBlobMetadata supports blobstore and works outside simulation
2022-10-27 10:44:06 -05:00
sfc-gh-tclinkenbeard 04ae47b9b9 Addressed review comments 2022-10-21 22:17:33 -07:00
sfc-gh-tclinkenbeard dfc11001af Reject transactions that have been tag throttled for too long 2022-10-18 15:16:24 -07:00
sfc-gh-tclinkenbeard 445e871cf2 Use fungibility ratio in getWriteOperationCost 2022-10-16 21:58:08 -07:00
Dan Lambright 1231ffbbe4 knob name change/rebase 2022-10-12 20:26:44 -04:00
Dan Lambright ef3efbc641 Merge remote-tracking branch 'origin/main' into tracelib 2022-10-07 21:32:26 -04:00
Dan Lambright 2402b813e9 do not unlink fdb_c in tmp dir if knob set 2022-10-07 16:32:28 -04:00
sfc-gh-tclinkenbeard 7fc5c196c4 Make read and write quotas fungible 2022-09-25 21:00:11 -07:00