Commit Graph

80 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
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
Zhe Wu e3490a1af8 Update API version to 730 2023-05-10 11:26:46 -07:00
Aaron Molitor cbaef8f03b update version to 7.2.0 2022-04-11 23:23:27 -05:00
A.J. Beamon 445754d7cb Fix documentation substitutions 2022-03-15 09:23:30 -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
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
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 30f3753699 Replace the Version to Int64Future 2020-03-25 09:41:47 -07:00
Xin Dong 1501a365fb Address review comments 2020-03-25 09:33:19 -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 924d335aa7 Merge branch 'release-6.2'
# Conflicts:
#	documentation/sphinx/source/release-notes.rst
#	flow/Knobs.cpp
#	flow/Knobs.h
2020-02-25 18:25:19 -08:00
A.J. Beamon 9c9e643334 Fix some various indentation issues that caused weird formatting in the documentation output. 2020-02-21 20:05:48 -08: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
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
Vishesh Yadav eee784fbdb doc: Reorder compare-and-clear documentation 2019-12-16 13:54:23 -08:00
Vishesh Yadav 5c48a105c5 docs: Document CompareAndClear atomic op 2019-12-16 13:53:52 -08:00
gauravvnera 83da581314 addressed review comments 2019-12-14 00:10:25 +05:30
gauravvnera 1dedd3df56 Clarify Documentation for clear_range 2019-12-13 09:18:57 +05:30
A.J. Beamon 94dc152180 Add an API version upgrade guide that specifically documents what needs to change to client code when upgrading API versions. 2019-12-12 14:19:43 -08:00
A.J. Beamon 3cc3f1d2ad Note that range reads are supported natively by the database and have little cost over regular range reads. 2019-12-12 10:50:21 -08:00
Xin Dong 8016d02699 Added documents explaining the at-most-once guarantee provided by add callbacks function 2019-12-11 14:45:39 -08:00
Vishesh Yadav 1b93c10332
Merge pull request #2438 from ajbeamon/document-open-multiple-databases
Add documentation about opening connections to multiple clusters
2019-12-11 13:01:00 -08:00
Balachandar Namasivayam 2d4339ae7a Addressed review comments by explicitly mentioning that type of identifier in the set_debug_transaction_identifier(id) method. 2019-12-10 17:30:46 -08:00
Balachandar Namasivayam b3bedf7cb3 Updated ruby binding for transaction options related to logging and also fixed a typo. 2019-12-10 13:27:54 -08:00
A.J. Beamon bdbc97c452 Add docuentation about opening connections to multiple clusters 2019-12-10 12:38:37 -08:00
Andrew Noyes 95c6c9618e Update documentation and testers for new options 2019-09-05 16:40:12 -07:00
Evan Tschannen b509a441e7 Merge branch 'master' into feature-skip-confirm
# Conflicts:
#	bindings/flow/tester/Tester.actor.cpp
#	bindings/go/src/_stacktester/stacktester.go
#	bindings/java/src/test/com/apple/foundationdb/test/AsyncStackTester.java
#	bindings/java/src/test/com/apple/foundationdb/test/StackTester.java
#	bindings/python/tests/tester.py
#	bindings/ruby/tests/tester.rb
#	documentation/sphinx/source/api-c.rst
#	documentation/sphinx/source/api-python.rst
#	documentation/sphinx/source/api-ruby.rst
#	documentation/sphinx/source/data-modeling.rst
#	documentation/sphinx/source/developer-guide.rst
#	fdbclient/vexillographer/fdb.options
#	fdbserver/MasterProxyServer.actor.cpp
2019-07-27 15:08:13 -07:00
A.J. Beamon 93be69b6a3 Increase the API version to 620. 2019-07-18 10:56:05 -07:00