Commit Graph

723 Commits

Author SHA1 Message Date
Chaoguang Lin e318fc2600
Fix for correctness failures when issuing duplicate snapshot requests (#10041)
* Fix for correctness failures when issuing duplicate requests
Add comments; Disable failure injection in Snap test

* Format files
2023-04-25 13:48:50 -07:00
Zhe Wu 10a6f3d2d0
Merge pull request #9890 from halfprice/zhewu/log-router-gray-failure
Gray failure detects disconnected remote log router and recover high DC lag
2023-04-07 16:25:11 -07:00
Hui Liu 396f89a3f4
Cleanup stale disk files for double recruitment of storage server (#9794) 2023-04-06 12:13:59 -07:00
Zhe Wu 310dadd877 Update log router check and add some documents 2023-04-06 11:36:49 -07:00
Nim Wijetunga c780d706d1
Remove EKP Interface from ServerDBInfo (#9909)
Remove ekp interface from ServerDBInfo
2023-04-06 11:35:47 -07:00
Nim Wijetunga 6e4e6ab2f4
Revert "Revert "Refactor GetEncryptCipherKeys (#9600)"" (#9903)
* Revert "Revert "Refactor GetEncryptCipherKeys (#9600)" (#9708)"
2023-04-05 10:03:48 -07:00
Zhe Wu 3e3b6198de Gray failure detection account for disconnected remote log routers 2023-04-03 21:53:42 -07:00
Nim Wijetunga 2867443f95
Recurit EKP without Enabling Encryption (#9885)
Recruit EKP without needing to enable encryption
2023-04-03 20:05:21 -07:00
Ata E Husain Bohra 3f6fcada45
EaR - Misc fixes found using end-to-end integration testing (#9806)
* EaR - Misc fixes found using end-to-end integration testing

Description

Major changes proposed includes:
1. RESTClient filtering of trailing `/`(s) characters from
input URI resource path
2. Avoid EKP exponential backup given RESTClient supports
exponential backoffs retries for all retryable errors.
3. Memory allocation optimizations:
 3.1. BaseCipher key management using Standalone semantics
 in KMSConnector interface endpoints
 3.2. Optimize memcpy while looking encryption-keys in EKP endpoints
4. Avoid delay while starting EKP, given its criticality during
cluster recovery.
5. Update BlobCipher to handle variable size BaseCipher buffer
6. Improved logging

Testing

Setup:
1. External KMS server to supply encryption keys (inhouse)
2. Create cluster with: cluster_aware & domain_aware config

* Fix EncryptionOps test

Description

Testing

* EaR - Misc fixes found using end-to-end integration testing

Description

Major changes:
1. Cleanup EKP driven exponential backup files.
2. Update EKP not to use #1.

Testing

* EaR - Misc fixes found using end-to-end integration testing

Description

Address review comments

Testing

* Fix AES 256 key length value

Description

Testing

* Address review comments

Description

Testing
2023-03-30 22:22:26 -07:00
Ata E Husain Bohra dbcab0b1bd
Revert "Refactor GetEncryptCipherKeys (#9600)" (#9708)
This reverts commit 2702665e35.
2023-03-15 12:10:08 -07:00
Nim Wijetunga 2702665e35
Refactor GetEncryptCipherKeys (#9600)
* inital commit

* address pr comments
2023-03-08 17:05:03 -08:00
Josh Slocum d80967e4ca fixing leaked BW future that can cause worker to hang on shutdown if BW has an IKVS 2023-03-03 13:57:57 -06:00
Evan Tschannen a581a55452 ensure a worker cannot run multiple blob worker roles 2023-02-23 09:51:26 -08:00
Evan Tschannen a646d15326 use Redwood as the storage engine for the blob worker cache 2023-02-13 15:28:41 -08:00
Evan Tschannen 20bc868ee0 merge in main 2023-02-13 12:41:31 -08:00
Evan Tschannen bad8b2fad4 blob workers reboot with a different ID and register in the database their previous ID 2023-02-12 10:44:53 -08:00
Evan Tschannen 18bc099ca6 added a disk to blob workers, and allowed blob workers to rejoin the blob manager after a reboot 2023-02-10 10:29:01 -08:00
Junhyun Shim be225acd2a Merge remote-tracking branch 'origin/main' into authz-tenant-name-to-tenant-id 2023-02-06 23:13:43 +01: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
Junhyun Shim 0d1801ed88 Expose private endpoints used in MVC mode and make MVT token sticky 2023-02-06 17:23:26 +01:00
Xiaoxi Wang d1d860a342 merge upstream/main 2023-01-27 12:15:04 -08:00
Xiaoxi Wang 6ce2f5159e update CP dbinfo conditionally to prevent temporary tenant mode change 2023-01-27 11:55:28 -08:00
Xiaoge Su eb4e147ebf Reformat source 2023-01-24 15:06:27 -08:00
Xiaoge Su 0a60142160 Extract ProcessInfo, MachineInfo, KillType out from ISimulator 2023-01-24 14:48:42 -08:00
Xiaoge Su c11c48fa3f Extract ChaosMetrics out from network.h 2023-01-24 14:47:48 -08:00
Xiaoge Su bc3cfd0eef Extract out RegisterMasterRequest
Wall time: 893.384
clang time: 12520.991624
2023-01-24 14:40:11 -08:00
Xiaoge Su e2cc90c18f Extract GetServerDBInfoRequest, ClientDBInfo and OpenDatabaseRequest
Wall time: 909.3
clang time: 12747.718300
2023-01-24 14:40:11 -08:00
Xiaoge Su ade1bf6a78 Extract GrvProxyInterface and GetKeyServerLocationsReply
Wall time: 894.958
clang time: 12566.424866
2023-01-23 23:31:01 -08:00
Xiaoge Su 9fc49e43e6 Extract InitializeCommitProxyRequest related templates out
Wall time: 910.447
clang time: 12793.4
2023-01-23 21:07:51 -08:00
Xiaoge Su 9064da2cb3 Extract NetNotifiedQueue<RecruitMasterRequest, false>
Wall time: 912.3
clang time: 12822.6
2023-01-23 21:07:51 -08:00
Xiaoge Su f0d7bf696e extern template for MasterInterface objects
Wall time: 913.1
clang time: 12829.266
2023-01-23 21:07:51 -08:00
sfc-gh-tclinkenbeard 72906f3bbe Mark code probe as non-simulation only 2023-01-15 21:20:22 -08:00
A.J. Beamon 811593e093 Merge branch 'main' into add-tenant-lookup-interface 2023-01-12 09:56:17 -08:00
sfc-gh-tclinkenbeard 5a1a969343 Trace data hall id in MachineMetrics events 2023-01-11 10:02:31 -08:00
Yi Wu 0849f60ef1
Clean up cluster controller's wait on recoveredDiskFiles (#9105)
The `recoveredDiskFiles` is a promise that will be fulfilled once all the local TLog and storage files have been initialized in a process. It was added previously to make a process wait on it before joining the cluster, and it was to avoid a slow recovering TLog to join the cluster to slowdown cluster recovery. 

With #7510, we allow a process to join the cluster to play stateless role, while still avoid it to join the cluster as stateful role before its TLog and storage is recovered. As such, the `recoveredDiskFiles` wait is no longer needed. This PR cleanup the logic.
2023-01-09 16:26:32 -08:00
A.J. Beamon f999623bb1 Add a tenant lookup interface and use it when starting transactions 2023-01-06 15:51:12 -08:00
Nim Wijetunga 10ccaa1ee5
remove client info encryption state (#9096) 2023-01-06 17:14:06 -05:00
Yi Wu 17fdbc46a5
EaR: Add page checksum to Redwood pages in no-auth mode (#8965)
Previously with EaR we always enable authentication (e.g. we encrypt Redwood pages). The authentication is a form of checksum, so dedicated page checksum was not needed. This PR adds back xxhash page checksum when authentication is disabled. Also change the knob to default disable authentication.
2023-01-03 10:30:07 -08:00
Zhe Wu 2909116925 fix health monitor last logged time 2022-12-21 16:20:38 -08:00
Jingyu Zhou c12753a32e Fix backup worker cache removal
Was incorrectly using "storageCache" before.
2022-12-19 20:00:18 -08:00
Sreenath Bodagala 774fc1168e - Log FoundationDB version as part of "ProcessMetrics". 2022-12-12 21:16:30 +00:00
Kevin Hoxha f32281bdce metrics: Break down OTELSum into smaller chunks to avoid UDP max packet size 2022-12-08 10:07:11 -08:00
Kevin Hoxha 8d151ee9b6 metrics: Added runMetrics() to workerServer 2022-12-08 10:07:11 -08:00
Kevin Hoxha f3431fe1e7 metrics: Add MetricsLogger loop and more knobs 2022-12-08 10:07:11 -08:00
FoundationDB CI 86d6106dc1
format source code after switch to clang 15 2022-12-08 17:26:45 +00:00
sfc-gh-tclinkenbeard c03f60c618 Update rare code probe annotations 2022-11-15 13:21:25 -08:00
Hui Liu 5834517570 Add fdbcli blobrestore to start the full restore 2022-11-11 08:32:23 -08:00
Lukas Joswiak 28540e5962 Format 2022-10-27 13:56:13 -07:00
Lukas Joswiak 02bc5edbf8 Avoid blocking in choose when 2022-10-27 13:56:13 -07:00
Lukas Joswiak 9d3c3b1efe Remove cluster ID logic from individual roles
The logic to determine the validity of a process joining a cluster now
belongs on the worker and the cluster controller. It is no longer
restricted to tlogs and storages, but instead applies to all processes
(even stateless ones).
2022-10-27 13:56:13 -07:00