94 Commits

Author SHA1 Message Date
gxglass
bab7637d87 Delete multitenant and metacluster features (#12583)
These features have been previously marked for deletion per PR #12400.

This change necessarily affects a lot of files. In general I found it preferable to cut along the FDB <-> tenant boundary, rather than try to cut tenant into multiple pieces, stitch the Frankenstein tenant implementation back together with FDB, and generally remove the limbs one by one. So it is a single big deletion.

Note that some tenant-related metadata has been written in a non-flag-controlled manner by prior releases and probably must be ignored indefinitely. Fortunately this is isolated to include/fdbclient/ClientLogEvents.h. (Details: deleting an Optional from a serialized struct results in deserialization of garbage in upgrade tests. The serialized nullopt to indicate "no Tenant" is formally part of FDB persistent metadata even in FDB clusters that never would have enabled the tenant feature.)

During the course of testing these changes, many interesting bugs were encountered. I won't discuss details of them here. Causes range from flat out damage (by me) to production code in the course of removing tenant related bits (mainly in NativeAPI.actor.cpp and CommitProxy.actor.cpp), damage to various workload files (particularly FuzzApiCorrectness.actor.cpp, which is very sensitive to changes), and many toml files needing updated test flags/options.

More testing details: https://quip-apple.com/Zr6VAycxoli9

20251209-012852-gglass-8ff850b772d868f2 compressed=True data_size=35311687 duration=21671404 ended=500000 fail_fast=1000 max_runs=500000 pass=500000 priority=100 remaining=0 runtime=2:31:30 sanity=False started=500000 stopped=20251209-040022 submitted=20251209-012852 timeout=5400 username=gglass

* remove some unneeded tests, and remove mentions of deleted tests from tests/CmakeLists.txt

* Initiate removal of metacluster. NOTE: this seems to also want removal of tenant. Consider removing them together.

* work on removing metacluster

* delete files with `Tenant` in the name, having reviewed them to ensure that they basically contain what the name implies

* fdb_c.h: remove prototypes for C API methods which have been deleted (blob granule) or which are so long deprecated that they are outside any reasonable/documented support window

* Surgical removal of tenant references from files in bindings/ top level directory.  Compilation not yet attempted.

* Surgical removal of tenant related stuff from fdbcli/ top level directory.  Compilation not yet attempted.

* Misc tenant code removal, and other stuff which I think may not be needed.  Compilation still not attempted.

* Remove more tenant or tenant-adjacent or blob-granule-adjacent stuff.  Or at least stuff that looks adjacent to that stuff.  Not compiled or tested.

* Start removing Tenant stuff from fdbclient/.  Far from complete.  Compilation not attempted.

* Remove tenant references from many source files.  There are still about 7 principal fdbclient/ and fdbserver/ files with a lot of tenant logic left to delete. Also, all of fdbserver/workloads needs to be looked at.  Still have not attempted compilation.

* Remove tenant entanglement from watch functionality

* Remove tenant stuff from fdbserver/tester.actor.cpp

* Delete metacluster workloads

* Remove tenant related stuff from workloads.  Also taken the liberty of removing some functionality that appears unused or untestable by Apple.

* Checkpoint tenant removal from FuzzApiCorrectness.actor.cpp

* NativeAPI.actor.cpp: `Tenant` has left the building.

* SimulatedCluster.actor.cpp: `Tenant` has left the building

* DDShardTracker.actor.cpp: Tenant evicted

* storageserver.actor.cpp: `tenant` has left the building.

* fdbserver/workloads/FuzzApiCorrectness.actor.cpp: remove tenant references, but some lingering cleanup needed in `loadAndRun`

* FileBackupAgent.actor.cpp: tenant has left the building

* CommitProxyServer.actor.cpp: remove tenant

* Remove more tenant references from misc files such as bindings tests, documentation, and some fdbserver headers I left earlier

* Fix missing-file errors in CMakeLists.txt files.  This is the first attempt to compile this stuff.

* checkpoint misc changes to fix compile errors

* checkpoint more compile fixes

* StorageServerInterface.h: put back more verify() calls

* More misc compile fixes

* whole bunch of misc fixups including some code put-backs to address compile errors

* More compile fixes

* More compile fixes.  Still does not compile.

* incremental compile fixing

* ...

* ...

* Checkpoint a bunch of compile fixes.  Not quite there but getting closer

* More compile fixes.  There seem to be about 10 files left, mainly CommitProxyServer.actor.cpp and storageserver.actor.cpp

* IT COMPILES NOW.  THIS IS STILL ALL UNTESTED.  Unsurprisingly, CommitProxyServer.actor.cpp and storageserver.actor.cpp took the most tweaking.

The updates in CMakeLists.txt and workloads/UnitTests.actor.cpp are basically trivial and mainly reflect
the ordering of dependencies -- that stuff didn't get attempted until all of fdbserver compiled.

* Put back one block relating to encryption at rest mode.  Simplify some TODO(gglass) instances.

* Put back some encryption related knobs

* remove `enable_tenants` from local_cluster.py to maybe fix some ctests

* Remove tenant related options from toml files.

* feature-status.md: add a line for encryption at rest, which seems to have been added for multi-tenant; status is now in doubt

* Fix a pretty bad bug introduced in tenant deletion; ensure we dont attempt to construct a std::string of negative length

* workloads/FuzzApiCorrectness.actor.cpp: avoid division by zero

* flow/Platform.actor.cpp: add a try/catch wrapper around side threads; emit a better addr2line type command

* NativeAPI.actor.cpp: fix a bug introduced in tenant removal relating to reporting conflicting keys under conflictingKeysRange

* ReportConflictingKeys.actor.cpp: separate an ANDed assert into two asserts

* SpecialKeySPaceCorrectness.actor.cpp: put back some logic removed with tenant removal.  This test was failing due to a bug with conflict key range reporting.  Fixed separately in NativeAPI.actor.cpp.

* remove QuotaCommand.actor.cpp

* Force disable tenant and encryption on disk in upgrade tests

* Add back file I guess I deleted?  who knows

* put back another file

* design/feature-status.md: update the new row for encryption at rest to firm up the claim that it is experimental, unowned, and scheduled for deletion

* Remove EncryptKeyProxyTest since we do not use it

* new file tests/slow/BulkDumpingS3WithChaos.toml: remove tenantModes setting

* Undo damage to pushToBackupMutations() from removing tenant feature.  This caused inverted_range errors and failed commits in backup related simulations.

* tests/restarting/from_7.4.0/Snap*-1: ensure that tenantModes = disabled

* Try again on workloads/FuzzApiCorrectness.actor.cpp

* simplify tenant-free (mostly) FuzzApiCorrectness workload code

* try harder to remove lingering tenant-related brokenness from FuzzApiCorrectness.actor.cpp

* Explicitly specify tenantModes = ['disabled'] in all the -1 restart files

* Remove tenantModes from 7.1-based upgrade tests as its an unknown option.  Hopefully the code doesnt actually turn on tenant stuff

* do not specify tenantModes in downgrade tests

* Downgrade test to_7.4.5: dont say tenantModes

* more tenantModes updates

* Remove a legacy allowDefaultTenant that no longer is meaningful in downgrade to 8.0

* Put back empty Optional<TenantName> turdlets into serialized log events to avoid breaking ClientTransactionProfilingCorrectness upgrade tests (even with tenantMode = disabled)

* disable encryption on a few more upgrade related test cases.  That feature is slated for removal anyway

* Remove unneeded workload files that have been subject to #if 0 for a while. Remove commented out block in ClusterRecovery

* disable encryption in more upgrade tests

* Remove choice four-letter words from commentary

* Format 42 files

* Try to fix a doc bug failing the CI build

* More doc compilation error fixes

* Delete more tenant junk from documentation

* fix spelling mistake in comment

* Remove deleted cross-references from documentation.  This necessitated editing release 3.0.0 release notes, which is insane.

* Remove more tenant stuff from bindings tests

* Remove more tenant bits from design/ files

* Remove more tenant related stuff

* Delete more tenant references.  Put back ten-ant spellings as tenant now that grep output is substantially reduced.

* Put back some tenant stuff into apitester; its deletion seems to have introduced bugs.  Also whine about comments some more, because, really, the comments deserve it.

* Updates to workload files and one other thing based on review comments

* de-actorify decodeKVPairs

* format one source file

* Restore transaction tagging doc

* Restore throttle doc details in administration.rst

* Restore fdbserver/workloads/GetEstimatedRangeSize.actor.cpp and associated toml file, minus tenant stuff

* bindings/c/test/{shim related}: update comments and disable functionality that no longer works post-tenant

* put the cli-throttle tag back in

* bindingtester: fix python syntax errors

* remove useless comment

* Remove comment about useless comments, and remove the useless comments
2025-12-09 12:39:41 -08:00
Vishesh Yadav
fc60c2f221 Bump FoundationDB version to 8.0.0 (#12510)
* Bump FoundationDB version to 8.0.0

* Remove restarting tests for older versions

* Bump PREV to 7.4.5 as 7.4.0 release binaries are missing

* Update protocol version templates

* Ignore couple fdb_c config tests

Expects to miss an API function, but recent two versions don't
have any new API functions. Although, we have removed some in
current version.

* Add 8.0 to transaction_profiling_analyzer
2025-10-28 19:28:46 -07:00
Syed Paymaan Raza
6319330d8e Revert "Update main branch to 8.0 (#11968)"
This reverts commit 710f3f3083.
2025-02-28 13:31:40 -08:00
Syed Paymaan Raza
710f3f3083 Update main branch to 8.0 (#11968) 2025-02-26 14:09:52 -08:00
Sepeth
39172d7dc4 Remove Python 2.7 support and six.py (#11418) 2024-10-02 21:12:51 -07:00
Zhe Wu
5c8a163c72 Update main branch to 7.4 (#10459)
* Update main branch to 7.4

* Update API version to 740

* Makes fdb_c_client_config_tests.py passing after API version update

* Remove from_7.3.0_until_7.4.0 and add from_7.3.0

* Update tests in fdb_c_client_config_tests.py
2023-06-15 10:19:39 +02:00
Sam Gwydir
6c16875c34 Add networkoption to disable non-TLS connections (#9984)
* Add networkoption to disable non-TLS connections

* add disable plaintext connection to fdbserver

* python doc

* Formatting

* Add tls disable plaintext connection to client api test

* review

* fix negative test

* formatting

* add TLS support to c client config tests

Adds support for TLS in the client and server separately

* add tests for disable_plaintext_connections

Test TLS and Plaintext Clusters and Clients

* Fix documentation

* Rename option to indicate it is client-only

* clearer formatting

* default to allowing plaintext connections

* add SetTLSDisablePlaintextConnection to go bindings
2023-05-13 00:14:11 +02:00
Zhe Wu
e3490a1af8 Update API version to 730 2023-05-10 11:26:46 -07:00
Markus Pilman
24aced6d4a Upgrade sphinx and document test harness and code probes 2022-09-20 16:43:02 -06:00
Aaron Molitor
cbaef8f03b update version to 7.2.0 2022-04-11 23:23:27 -05:00
A.J. Beamon
5469b57a2b Add a note that opening a tenant does not check whether that tenant exists in the cluster 2022-03-31 11:39:50 -07:00
A.J. Beamon
16cc74e910 Remove documenation for Database.delete_tenant. 2022-03-30 11:01:54 -07:00
A.J. Beamon
4d277fe19a Fix typo 2022-03-28 13:06:17 -07:00
A.J. Beamon
b4cfcc10d3 Move Python tenant management to its own module 2022-03-25 11:36:35 -07:00
A.J. Beamon
ded4d046f0 Update transactional decorator documentation to reference tenants 2022-03-23 14:46:56 -07:00
A.J. Beamon
1d0a3669df Add documentation for the new Python tenant APIs. 2022-03-23 14:46:56 -07:00
A.J. Beamon
445754d7cb Fix documentation substitutions 2022-03-15 09:23:30 -07:00
Yao Xiao
648bd336b5 resolve comments 2021-11-01 14:47:36 -07:00
Yao Xiao
90b231e96e Add link to client knobs. 2021-11-01 14:47:36 -07:00
Yao Xiao
af51de902f Add documation about network options. 2021-11-01 14:47:36 -07:00
A.J. Beamon
3524ceeb09 Fix some documentation rendering issues around the estimated range size bytes and similar functions. 2021-06-10 15:24:42 -07:00
Jingyu Zhou
3ce31cb347 Upgrade api version from 700 to 710 2021-05-05 21:15:00 -07:00
Xin Dong
8f311543f9 Apply suggestions from code review
Co-authored-by: A.J. Beamon <ajbeamon@users.noreply.github.com>
2020-10-12 09:50:45 -07:00
Xin Dong
079f27d47d Added API doc for the new range split API. Updated some old ones to be consistent. 2020-10-08 15:20:55 -07:00
Evan Tschannen
a49cb41de7 Merge branch 'release-6.3'
# Conflicts:
#	CMakeLists.txt
#	cmake/ConfigureCompiler.cmake
#	fdbserver/Knobs.cpp
#	fdbserver/StorageCache.actor.cpp
#	fdbserver/storageserver.actor.cpp
#	flow/ThreadHelper.actor.h
#	flow/serialize.h
#	tests/CMakeLists.txt
2020-07-29 00:31:55 -07:00
Xin Dong
9e1f253c08 Added some explanation about the accuracy about the get estimated range size API. 2020-07-21 16:14:23 -07:00
Meng Xu
ef8c1060a2 Merge branch 'master' into mengxu/tmp-merge-6.3 2020-07-13 10:15:56 -07:00
A.J. Beamon
b09dddc07e Merge branch 'release-6.2' into merge-release-6.2-into-release-6.3
# Conflicts:
#	cmake/ConfigureCompiler.cmake
#	documentation/sphinx/source/downloads.rst
#	fdbrpc/FlowTransport.actor.cpp
#	fdbrpc/fdbrpc.vcxproj
#	fdbserver/DataDistributionQueue.actor.cpp
#	fdbserver/Knobs.cpp
#	fdbserver/Knobs.h
#	fdbserver/LogSystemPeekCursor.actor.cpp
#	fdbserver/MasterProxyServer.actor.cpp
#	fdbserver/Status.actor.cpp
#	fdbserver/storageserver.actor.cpp
#	flow/flow.vcxproj
2020-07-10 15:06:34 -07:00
Greg Taylor
6cd6fe76f2 Fix malformed class ref in Python API docs
Fix a malformed auto-class reference in the description of the
has_incomplete_versionstamp() class.
2020-07-08 11:22:12 -07:00
A.J. Beamon
76ac5dfeaf Merge branch 'release-6.3' into merge-release-6.3-into-master
# Conflicts:
#	documentation/sphinx/source/release-notes/release-notes-630.rst
2020-06-17 18:31:06 -07:00
A.J. Beamon
a56b48a41d Merge branch 'release-6.2' into merge-release-6.2-into-release-6.3
# Conflicts:
#	documentation/sphinx/source/release-notes/release-notes-620.rst
2020-06-17 15:18:20 -07:00
A.J. Beamon
94b9732da1 Move all release notes into a single folder. The current release notes now has a ref link at the top. 2020-06-17 11:49:28 -07:00
Balachandar Namasivayam
a167bf344e Update api version to 700 2020-05-28 12:16:03 -07:00
Andrew Noyes
fbdade0434 Remove warning about combining ryw-disabled w/ versionstamped keys
We test this combination now (#3067), and don't know of any reason why
this shouldn't work
2020-05-27 23:52:08 +00:00
Markus Pilman
84ace433d8 addressed some of the review comments 2020-04-27 17:40:32 -07:00
Evan Tschannen
c87aa33941 Merge branch 'release-6.2'
# Conflicts:
#	CMakeLists.txt
#	bindings/go/src/fdb/generated.go
#	documentation/sphinx/source/api-common.rst.inc
#	documentation/sphinx/source/api-ruby.rst
#	documentation/sphinx/source/release-notes.rst
#	fdbclient/FailureMonitorClient.actor.cpp
#	fdbclient/NativeAPI.actor.cpp
#	fdbclient/vexillographer/fdb.options
#	fdbrpc/FlowTransport.actor.cpp
#	fdbserver/OldTLogServer_6_0.actor.cpp
#	fdbserver/TLogServer.actor.cpp
#	fdbserver/fdbserver.actor.cpp
#	versions.target
2020-04-23 13:47:53 -07:00
Balachandar Namasivayam
6d570cd865 Change version from 7.0 to 6.3 2020-04-03 21:38:58 -07:00
Jingyu Zhou
ae480c14a3 Add documentation of get_approximate_size for Python, Ruby, and Go
This was missed from original PR #1756, where only C API was documented.
2020-03-31 13:42:02 -07:00
Xin Dong
233a6bb2a7 Address review comments 2020-03-24 16:31:46 -07:00
Xin Dong
91037114e5 Fix documentation build 2020-03-24 13:35:07 -07:00
Xin Dong
0fb728d019 Updated API documentations for the new getEstimatedRangeBytes api 2020-03-24 13:27:20 -07:00
Evan Tschannen
96258b9809 Merge branch 'release-6.2'
# Conflicts:
#	documentation/sphinx/source/release-notes.rst
#	fdbcli/fdbcli.actor.cpp
#	fdbclient/ManagementAPI.actor.cpp
#	fdbrpc/FlowTransport.actor.cpp
#	fdbserver/ClusterController.actor.cpp
#	fdbserver/DataDistribution.actor.cpp
#	fdbserver/DataDistribution.actor.h
#	fdbserver/DataDistributionQueue.actor.cpp
#	fdbserver/KeyValueStoreMemory.actor.cpp
#	fdbserver/MasterProxyServer.actor.cpp
#	fdbserver/QuietDatabase.actor.cpp
#	fdbserver/SkipList.cpp
#	fdbserver/StorageMetrics.actor.h
#	fdbserver/TLogServer.actor.cpp
#	fdbserver/fdbserver.actor.cpp
#	fdbserver/storageserver.actor.cpp
#	fdbserver/workloads/KVStoreTest.actor.cpp
#	flow/CMakeLists.txt
#	flow/Knobs.cpp
#	flow/Knobs.h
#	flow/genericactors.actor.cpp
#	flow/serialize.h
2020-02-21 19:09:16 -08:00
A.J. Beamon
d1f050690a Merge pull request #2454 from ajbeamon/document-range-read-efficiency
Document efficiency of reverse range reads
2020-02-20 15:25:38 -08:00
A.J. Beamon
649fc6ba94 Merge pull request #2329 from davisp/trace-clock-source-network-option
Add network option for the trace clock source
2020-02-15 10:43:00 -08:00
Paul J. Davis
32e285a761 Add network option for the trace clock source
This option allows clients to select the clock source for trace events
similar to the `--traceclock` command line parameter for `fdbserver`.
Using the `realtime` clock sources makes loading event data into
OpenTracing systems like Jaeger more useful.
2020-02-15 11:30:43 -06:00
Andrew Noyes
e95e04f650 Remove include-port-in-address from sphinx source 2020-02-04 09:56:47 -08:00
A.J. Beamon
72f92626e4 Update API version to 700 2020-01-30 09:26:27 -08:00
A.J. Beamon
adc72dde43 Merge branch 'release-6.2' into merge-release-6.2-into-master
# Conflicts:
#	documentation/sphinx/source/release-notes.rst
2020-01-28 12:16:24 -08:00
John Brownlee
8972027f43 Merge pull request #2456 from ajbeamon/document-api-version-upgrade-guide
Add an API version upgrade guide
2020-01-24 18:30:53 -08:00
Saurabh Chaturvedi
05784ebe24 Update documentation/sphinx/source/api-python.rst
Use `code-block:: none` instead of `parsed-literal::`

Co-Authored-By: A.J. Beamon <ajbeamon@users.noreply.github.com>
2020-01-22 18:31:45 +05:30