Commit Graph

750 Commits

Author SHA1 Message Date
Yi Wu 3287098b4a EaR: Handle KMS timeout in storage server and commit proxy 2023-08-28 16:17:43 -07:00
Zhe Wang f8311ae069
Add more trace event for TSS recruitment (#10809)
* add more trace event for tss

* update StorageServerInitProgress

* add more traces
2023-08-23 09:19:30 -07:00
Zhe Wang 83dc9ff6f7
Trace SS init progress (#10799)
* trace ss init progress

* improve trace events
2023-08-18 18:44:37 -07:00
Zhe Wu 2078a0055a Add documentation 2023-07-26 14:16:16 -07:00
Zhe Wu f9c3ac3704 Remove debugging logging 2023-07-26 12:35:19 -07:00
Zhe Wu e583deddfe Apply format 2023-07-26 11:21:20 -07:00
Zhe Wu 00cdf09966 Cluster controller monitors recovery stats and trigger recovery if current recovery contains degraded servers 2023-07-17 11:14:22 -07:00
Zhe Wu 9670ed1cd8 Make TLog explicitely monitor connectivity issue during [start version, recover version] recovery 2023-07-17 11:12:28 -07:00
Zhe Wu 458d210584 Add an option in worker to force detect connectivity issue to other transaction workers in primary region 2023-07-17 11:12:28 -07:00
Yi Wu 92fc089eb0
FDBCORE-5211: Fix worker server handleIOErrors heap-use-after-free (#380) (#10555) 2023-06-26 16:35:33 -07:00
Zhe Wu 36befca2ba Nit fixing 2023-06-21 09:25:51 -07:00
Zhe Wu f3e95f6698
Merge pull request #10521 from halfprice/zhewu/gray-failure-recovery
Worker health monitor tracks recovered peers
2023-06-21 07:56:55 -07:00
Zhe Wu 31de83ccc1 cleanup gray failure recovery documentation 2023-06-20 13:30:03 -07:00
Zhe Wu 4741d7032f Revert logic to test testing logic 2023-06-20 12:40:22 -07:00
Zhe Wu ef638cd6a6 Worker health monitor keeps track of recovered peer 2023-06-20 12:32:29 -07:00
Evan Tschannen ef682d304e fix IKeyValueStore include 2023-06-16 13:28:40 -07:00
Evan Tschannen eb772c0043 added a blob worker specific page cache size for redwood so that it does not have to be changed manually in fdb.conf for all blob worker processes 2023-06-13 10:35:13 -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
Evan Tschannen 2a8e5e487d fix: properly dispose of unneeded blob worker disk stores 2023-06-10 22:09:30 -07:00
Evan Tschannen b15738ad8f do not start a blob worker from disk is the feature is disabled 2023-06-09 14:08:02 -07:00
Evan Tschannen 197c39b552 cache change feeds using a storage engine to avoid reading them for the server on startup 2023-06-07 08:41:31 -07:00
Dan Adkins 833bcb9342 Let coordination server crash on file_not_found error.
The only case when a coordination server should fail with file_not_found
is when the DiskQueue only finds 1 out of its 2 queue files. This either
means data has been lost, or the initial creation of the two files failed
partway through. In either case, it's sensible to crash the process and
refuse to start.

The existing code was catching the file_not_found error and letting the
FDBD process continue after the coordination server failed. This resulted
in clients attempting to contact the coordination server on a well-known
endpoint and never getting a response, because Flow transport silently
dropped the request when there was no receiver for it. By terminating the
process instead, we effectively notify waiting clients that they won't
get a response from this coordinator.
2023-06-06 11:36:25 -07:00
Yao Xiao cefb6c7ec3
Clear metadata before destroyDB. (#10393) 2023-06-02 11:20:14 -07:00
Nim Wijetunga 95bf14323f
EKP and KMS Health Check (#10341)
EKP and KMS Health Check
2023-06-01 16:24:04 -07:00
Zhe Wu 2e00e0abed Refactor healthMonitor in worker.actor.cpp 2023-05-23 14:14:33 -07:00
Evan Tschannen 3dd86d6c22 move IKeyValueStore.h to the client 2023-05-10 15:41:47 -07:00
Yao Xiao abd45c4486 Cherrypick #9665 2023-05-10 10:23:01 -07:00
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