Commit Graph

14 Commits

Author SHA1 Message Date
Trevor Clinkenbeard 147d992cf0 Remove outdated CMAKE_CURRENT_BINARY_DIR references from CMakeLists.txt files 2026-04-24 06:20:40 +00:00
Trevor Clinkenbeard e2d75e247a Consolidate client knobs header files 2026-04-18 17:11:23 +00:00
Trevor Clinkenbeard 5cf4b48319 Rename ManagementAPI* files 2026-03-24 16:13:35 +00:00
Trevor Clinkenbeard 695526aa48 Rename non-actor files 2026-03-22 03:06:37 +00:00
Trevor Clinkenbeard 1306c2f5a9 Remove unnecessary success calls 2026-03-18 09:00:46 -07:00
Trevor Clinkenbeard e7737f7bf6 Enforce new rules 2026-03-14 02:25:26 +00:00
Trevor Clinkenbeard 652f85de07
Add and enforce more `readability-*` `clang-tidy` rules (#12765)
* Add and enforce more readability-* clang-tidy rules

* Revert readability-else-after-return changes
2026-03-12 22:30:38 -07:00
Trevor Clinkenbeard fafbfb4641
Remove dynamic knobs feature (#12683)
* Remove dynamic knobs feature

* Add back deprecated command line arguments

* Remove dead TransType enum

* Mark configuration database feature deleted

* Remove deprecated encryptModes from test files

* Remove outdated comment

* Remove duplicate feature line in feature-status.md

* Address compilation warnings
2026-02-19 13:25:00 -08:00
gxglass c62bb6bf38
Delete encryption at rest (#12667)
Delete encryption at rest in accordance with plans circulated in PR #12400.

Development of this PR was mostly straightforward. Several issues of note:

Upgrade tests which use Redwood want to use the old "encrypt by 0xFF XOR" test-only encoding/encryption algorithm. I wanted to delete that in main and did so. Upgrade tests have been modified not to use Redwood (storage engine 3, mentioned in various storageEngineExcludeTypes test options updates). 7.1 did not define storageEngineExcludeTypes. After some discussion we have decided to delete 7.1-based upgrade tests. 7.3- and 7.4-based upgrade tests remain in place.

Cross-version compatibility (such as it is, I assume in client library startup) remains super easy to break when deleting code. Tips: (A) removing unnecessary arguments to functions is bread and butter code editing when removing code, but if you find yourself removing arguments from a serializer() invocation, you might be breaking a protocol. (B) run ctest -R upgrade early and often.

An implication of these changes is that we are going to rely on the community to make us aware of any {upgrade+Redwood}-specific bugs. In other words, we are declining to continue to go out of our way to test functionality that we have no plans to use.

On the plus side this reclaims 15,000 more lines of code that we don't have to look at or think about, including in common areas such as commit proxy, backups, and generic storage server code.

Testing:
20260129-230241-gglass-15694f5f80af6932 compressed=True data_size=34905446 duration=4335357 ended=100000 fail_fast=1000 max_runs=100000 pass=100000 priority=100 remaining=0 runtime=6:21:47 sanity=False started=100000 stopped=20260130-052428 submitted=20260129-230241 timeout=5400 username=gglass

20260202-214159-gglass-69b90c779cf8ec68 compressed=True data_size=35007141 duration=4612639 ended=100000 fail_fast=1000 max_runs=100000 pass=100000 priority=100 remaining=0 runtime=3:00:25 sanity=False started=100000 stopped=20260203-004224 submitted=20260202-214159 timeout=5400 username=gglass

* Checkpoint file removals and code edits for removing encryption at rest. Have not tried to compile this yet.

* Checkpoint some improvements.  Still does not compile.

* Merging with upstream changes in copyright updates resurrected previously deleted files, so delete them again

* Checkpoint incremental progress towards getting this to compile

* Checkpoint more intermediate changes getting encryption at rest deleted.  Still doesnt compile but getting closer.

* Changes sufficient to get things to compile with removal of encryption at rest.  NOT TESTED.

* Delete encryptModes from toml files run by current fdbserver binaries; restarting tests using <= 7.4 binaries do need encryptModes to say disabled

* Avoid using MAX_ENCODING_VALUE for random purposes for which other solutions are more clear and generally better

* Stop using XOREncryption_TestOnly because that no longer works.  Also I see no need to support it as it requires unneeded interfaces and test fixtures in order to actually work.

* Remove more page encryption stuff, and address some TODO(gglass) comments.

* debugging redwood failures

* Fix some misc simulation failures.  Notably, disable storage engine type 3 (redwood) on upgrade tests, as it writes databases with encoding type 1 which is no longer supported

* Add a comment discussion deprecation options for fields in persistent metadata, and explain why we are merely renaming the member as deprecated and nothing anything else.

* Remove 7.1 upgrade tests.  These tests enable Redwood and write databases with "0xFF XOR encryption" style encoding (encoding 1), which is removed in main.

* Improve comments

* Obligatory f3f commit.  Format The Effin Source Files

* Delete more unneeded encryption stuff

* Put back about 1% of deleted code in a desperate attempt to unbreak broken protocol compatibility

* formatting

* Remove mentions of encryption at rest in backup related APIs

* Address misc review comments.  Remove --encrypt-files backup option.
2026-02-04 16:02:06 -08:00
Vishesh Yadav af732673f1
Implement Exclude commands in gRPC (#12603) 2026-01-12 11:38:36 -08:00
Vishesh Yadav 401dab5967
ControlService: Implements a subset of fdbcli commands (#12555)
ControlService: Implements a subset of fdbcli commands

Implements following commands from fdbcli:

- GetCoordinators
- ChangeCoordinators
- GetStatus
- GetWorkers
- Include
- Kill
2025-11-21 22:38:34 -08:00
Vishesh Yadav 8d6025b1cb
Define ControlService interface (#12540)
Adds RPCs and messages that provides administration and management
operations for FDB cluster.
2025-11-14 11:59:05 -08:00
Vishesh Yadav d6f5e4e8d7 Remove running gRPC service in simulation 2025-11-05 18:22:44 -08:00
Vishesh Yadav 48d9e90d89 Add `fdbctl` library and ControlService gRPC Service
'fdbctl' aims to implement control plane layer for FoundationDB.
This includes general operations related to cluster management,
getting service health etc. This is all exposed via ControlService
with interface described in 'control_service.proto'.

Eventually 'fdbcli' and 'ControlService' can both reuse 'fdbctl'
in library much of what 'fdbcli' does is within scope of this
component.
2025-11-05 18:22:44 -08:00