Skip to content
Merged
Show file tree
Hide file tree
Changes from 97 commits
Commits
Show all changes
102 commits
Select commit Hold shift + click to select a range
867c259
remove some unneeded tests, and remove mentions of deleted tests from…
gxglass Oct 13, 2025
4b0ef4e
Initiate removal of metacluster. NOTE: this seems to also want remova…
gxglass Oct 14, 2025
e55d4e0
Merge remote-tracking branch 'upstream/main' into delete2
gxglass Oct 17, 2025
8aecd26
work on removing metacluster
gxglass Oct 17, 2025
9d1e521
Merge remote-tracking branch 'upstream/main' into delete2
gxglass Oct 22, 2025
7fbbbb6
Merge remote-tracking branch 'upstream/main' into delete2
gxglass Oct 22, 2025
e6f1b96
Merge remote-tracking branch 'upstream/main' into delete2
gxglass Oct 23, 2025
608f640
delete files with `Tenant` in the name, having reviewed them to ensur…
gxglass Oct 23, 2025
a1158f6
fdb_c.h: remove prototypes for C API methods which have been deleted …
gxglass Oct 24, 2025
ff49685
Surgical removal of tenant references from files in bindings/ top lev…
gxglass Oct 24, 2025
7ae16f6
Surgical removal of tenant related stuff from fdbcli/ top level direc…
gxglass Oct 24, 2025
86ddbe9
Misc tenant code removal, and other stuff which I think may not be ne…
gxglass Oct 24, 2025
c444da6
Remove more tenant or tenant-adjacent or blob-granule-adjacent stuff.…
gxglass Oct 24, 2025
4b84545
Start removing Tenant stuff from fdbclient/. Far from complete. Com…
gxglass Oct 25, 2025
ec46042
Remove tenant references from many source files. There are still abo…
gxglass Oct 27, 2025
6ca080c
Merge remote-tracking branch 'upstream/main' into delete2
gxglass Oct 28, 2025
ee705f5
Remove tenant entanglement from watch functionality
gxglass Oct 28, 2025
e6936f9
Remove tenant stuff from fdbserver/tester.actor.cpp
gxglass Oct 28, 2025
0ad2831
Delete metacluster workloads
gxglass Oct 28, 2025
8741c4e
Remove tenant related stuff from workloads. Also taken the liberty o…
gxglass Oct 28, 2025
265c4e8
Checkpoint tenant removal from FuzzApiCorrectness.actor.cpp
gxglass Oct 28, 2025
2229798
NativeAPI.actor.cpp: `Tenant` has left the building.
gxglass Oct 29, 2025
1d63faa
SimulatedCluster.actor.cpp: `Tenant` has left the building
gxglass Oct 29, 2025
ca1ec97
DDShardTracker.actor.cpp: Tenant evicted
gxglass Oct 29, 2025
eaaff24
storageserver.actor.cpp: `tenant` has left the building.
gxglass Oct 30, 2025
381c36a
fdbserver/workloads/FuzzApiCorrectness.actor.cpp: remove tenant refer…
gxglass Oct 30, 2025
38d9cb8
FileBackupAgent.actor.cpp: tenant has left the building
gxglass Oct 30, 2025
692c357
CommitProxyServer.actor.cpp: remove tenant
gxglass Oct 30, 2025
11e93f8
Remove more tenant references from misc files such as bindings tests,…
gxglass Oct 30, 2025
f333b83
Fix missing-file errors in CMakeLists.txt files. This is the first a…
gxglass Oct 30, 2025
922cdea
checkpoint misc changes to fix compile errors
gxglass Oct 30, 2025
ab780df
checkpoint more compile fixes
gxglass Oct 30, 2025
dd5657e
StorageServerInterface.h: put back more verify() calls
gxglass Oct 31, 2025
06ee4c1
More misc compile fixes
gxglass Oct 31, 2025
2ec1951
whole bunch of misc fixups including some code put-backs to address c…
gxglass Oct 31, 2025
cb9afcb
More compile fixes
gxglass Oct 31, 2025
04930c4
More compile fixes. Still does not compile.
gxglass Oct 31, 2025
e05c05b
incremental compile fixing
gxglass Oct 31, 2025
a20e854
...
gxglass Oct 31, 2025
f06c42f
...
gxglass Oct 31, 2025
34757b3
Checkpoint a bunch of compile fixes. Not quite there but getting closer
gxglass Oct 31, 2025
43ff16f
More compile fixes. There seem to be about 10 files left, mainly Com…
gxglass Oct 31, 2025
648331d
IT COMPILES NOW. THIS IS STILL ALL UNTESTED. Unsurprisingly, Commit…
gxglass Oct 31, 2025
ec12376
Put back one block relating to encryption at rest mode. Simplify som…
gxglass Oct 31, 2025
aa54783
Put back some encryption related knobs
gxglass Oct 31, 2025
a6135d7
remove `enable_tenants` from local_cluster.py to maybe fix some ctests
gxglass Oct 31, 2025
e50ce56
Remove tenant related options from toml files.
gxglass Oct 31, 2025
e47490d
feature-status.md: add a line for encryption at rest, which seems to …
gxglass Nov 2, 2025
112fc52
Fix a pretty bad bug introduced in tenant deletion; ensure we dont at…
gxglass Nov 4, 2025
7c8585a
workloads/FuzzApiCorrectness.actor.cpp: avoid division by zero
gxglass Nov 4, 2025
77d1243
flow/Platform.actor.cpp: add a try/catch wrapper around side threads;…
gxglass Nov 4, 2025
1b14df6
NativeAPI.actor.cpp: fix a bug introduced in tenant removal relating …
gxglass Nov 4, 2025
3eef30a
ReportConflictingKeys.actor.cpp: separate an ANDed assert into two as…
gxglass Nov 4, 2025
2a9e9f0
SpecialKeySPaceCorrectness.actor.cpp: put back some logic removed wit…
gxglass Nov 4, 2025
24d3e58
remove QuotaCommand.actor.cpp
gxglass Nov 4, 2025
f933fdb
Force disable tenant and encryption on disk in upgrade tests
gxglass Nov 5, 2025
c75a6f0
Merge remote-tracking branch 'upstream/main' into delete2
gxglass Nov 5, 2025
a8fae2f
Add back file I guess I deleted? who knows
gxglass Nov 5, 2025
d8b7c79
put back another file
gxglass Nov 5, 2025
b82b118
design/feature-status.md: update the new row for encryption at rest t…
gxglass Nov 5, 2025
899be8d
Remove EncryptKeyProxyTest since we do not use it
gxglass Nov 6, 2025
1f666ed
new file tests/slow/BulkDumpingS3WithChaos.toml: remove tenantModes s…
gxglass Nov 6, 2025
7b38856
Merge remote-tracking branch 'upstream/main' into delete2
gxglass Nov 18, 2025
b9dad8c
Undo damage to pushToBackupMutations() from removing tenant feature. …
gxglass Nov 20, 2025
40d6b9f
tests/restarting/from_7.4.0/Snap*-1: ensure that tenantModes = disabled
gxglass Nov 22, 2025
6f7634e
Try again on workloads/FuzzApiCorrectness.actor.cpp
gxglass Dec 1, 2025
2c386ab
simplify tenant-free (mostly) FuzzApiCorrectness workload code
gxglass Dec 1, 2025
5a9ddb5
try harder to remove lingering tenant-related brokenness from FuzzApi…
gxglass Dec 1, 2025
f2c15d2
Explicitly specify tenantModes = ['disabled'] in all the -1 restart f…
gxglass Dec 1, 2025
8b059ba
Remove tenantModes from 7.1-based upgrade tests as its an unknown opt…
gxglass Dec 2, 2025
5809e7e
do not specify tenantModes in downgrade tests
gxglass Dec 2, 2025
4b0ca79
Downgrade test to_7.4.5: dont say tenantModes
gxglass Dec 2, 2025
f08b0f2
more tenantModes updates
gxglass Dec 2, 2025
329a3ff
Remove a legacy allowDefaultTenant that no longer is meaningful in do…
gxglass Dec 2, 2025
5a47d93
Put back empty Optional<TenantName> turdlets into serialized log even…
gxglass Dec 3, 2025
7d71a5c
disable encryption on a few more upgrade related test cases. That fe…
gxglass Dec 3, 2025
103545b
Remove unneeded workload files that have been subject to #if 0 for a …
gxglass Dec 4, 2025
34feb1d
disable encryption in more upgrade tests
gxglass Dec 4, 2025
584ea4a
Remove choice four-letter words from commentary
gxglass Dec 5, 2025
b0074f8
Format 42 files
gxglass Dec 5, 2025
5cffd4b
Merge remote-tracking branch 'upstream/main' into delete2
gxglass Dec 5, 2025
9de095d
Try to fix a doc bug failing the CI build
gxglass Dec 5, 2025
dfbb65b
More doc compilation error fixes
gxglass Dec 5, 2025
fdf6ced
Delete more tenant junk from documentation
gxglass Dec 5, 2025
1f2cdc7
fix spelling mistake in comment
gxglass Dec 5, 2025
8153bf0
Remove deleted cross-references from documentation. This necessitate…
gxglass Dec 5, 2025
3915730
Remove more tenant stuff from bindings tests
gxglass Dec 7, 2025
17ab4da
Remove more tenant bits from design/ files
gxglass Dec 7, 2025
e517121
Remove more tenant related stuff
gxglass Dec 7, 2025
856f01b
Delete more tenant references. Put back ten-ant spellings as tenant …
gxglass Dec 7, 2025
3ceaa3c
Put back some tenant stuff into apitester; its deletion seems to have…
gxglass Dec 7, 2025
04a1ef1
Updates to workload files and one other thing based on review comments
gxglass Dec 7, 2025
78e3337
de-actorify decodeKVPairs
gxglass Dec 7, 2025
71d6954
format one source file
gxglass Dec 7, 2025
0cbfaba
Restore transaction tagging doc
gxglass Dec 8, 2025
b85e307
Restore throttle doc details in administration.rst
gxglass Dec 8, 2025
1bc255b
Restore fdbserver/workloads/GetEstimatedRangeSize.actor.cpp and assoc…
gxglass Dec 8, 2025
7bffa99
bindings/c/test/{shim related}: update comments and disable functiona…
gxglass Dec 8, 2025
3fc9028
put the cli-throttle tag back in
gxglass Dec 8, 2025
5afa74f
bindingtester: fix python syntax errors
gxglass Dec 8, 2025
c852ff8
remove useless comment
gxglass Dec 9, 2025
848d62e
Remove comment about useless comments, and remove the useless comments
gxglass Dec 9, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 0 additions & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -253,7 +253,6 @@ else()
add_subdirectory(fdbservice)
endif()
add_subdirectory(fdbbackup)
add_subdirectory(metacluster)
add_subdirectory(tests)
if(NOT FOUNDATIONDB_CROSS_COMPILING) # FIXME(swift): make this work when
# x-compiling.
Expand Down
22 changes: 0 additions & 22 deletions bindings/bindingtester/bindingtester.py
Original file line number Diff line number Diff line change
Expand Up @@ -314,11 +314,6 @@ def __init__(self, args):
[not tester.directory_snapshot_ops_enabled for tester in self.testers]
)
)
self.args.no_tenants = (
self.args.no_tenants
or any([not tester.tenants_enabled for tester in self.testers])
or self.args.api_version < 710
)

def print_test(self):
test_instructions = self._generate_test()
Expand Down Expand Up @@ -431,19 +426,6 @@ def _insert_instructions(self, test_instructions):
util.get_logger().info("\nInserting test into database...")
del self.db[:]

if not self.args.no_tenants:
while True:
tr = self.db.create_transaction()
try:
tr.options.set_special_key_space_enable_writes()
del tr[
b"\xff\xff/management/tenant/map/":b"\xff\xff/management/tenant/map0"
]
tr.commit().wait()
break
except fdb.FDBError as e:
tr.on_error(e).wait()

for subspace, thread in test_instructions.items():
thread.insert_operations(self.db, subspace)

Expand Down Expand Up @@ -723,10 +705,6 @@ def parse_args(argv):
help="Disables snapshot operations for directory instructions.",
)

parser.add_argument(
"--no-tenants", action="store_true", help="Disables tenant operations."
)

return parser.parse_args(argv)


Expand Down
5 changes: 0 additions & 5 deletions bindings/bindingtester/known_testers.py
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,6 @@ def __init__(
threads_enabled=True,
types=COMMON_TYPES,
directory_snapshot_ops_enabled=True,
tenants_enabled=False,
):
self.name = name
self.cmd = cmd
Expand All @@ -58,7 +57,6 @@ def __init__(
self.threads_enabled = threads_enabled
self.types = types
self.directory_snapshot_ops_enabled = directory_snapshot_ops_enabled
self.tenants_enabled = tenants_enabled

def supports_api_version(self, api_version):
return (
Expand Down Expand Up @@ -91,7 +89,6 @@ def _absolute_path(path):
23,
MAX_API_VERSION,
types=ALL_TYPES,
tenants_enabled=True,
),
"ruby": Tester(
"ruby", _absolute_path("ruby/tests/tester.rb"), 2040, 23, MAX_API_VERSION
Expand All @@ -103,7 +100,6 @@ def _absolute_path(path):
510,
MAX_API_VERSION,
types=ALL_TYPES,
tenants_enabled=True,
),
"java_async": Tester(
"java",
Expand All @@ -112,7 +108,6 @@ def _absolute_path(path):
510,
MAX_API_VERSION,
types=ALL_TYPES,
tenants_enabled=True,
),
"go": Tester(
"go",
Expand Down
93 changes: 0 additions & 93 deletions bindings/bindingtester/spec/tenantTester.md

This file was deleted.

68 changes: 2 additions & 66 deletions bindings/bindingtester/tests/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,12 +37,11 @@ def matches_op(op, target_op):
op == target_op
or op == target_op + "_SNAPSHOT"
or op == target_op + "_DATABASE"
or op == target_op + "_TENANT"
)


def is_non_transaction_op(op):
return op.endswith("_DATABASE") or op.endswith("_TENANT")
return op.endswith("_DATABASE")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this changes bindings. Have you run Joshua binding tests?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does it run under simulation? If so, yes.

However I should probably rerun ctest again as I am not sure when I last ran it on this set of changes.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm thinking this does not run under simulation (non-C++ languages need multiple processes but that is contrary to the nature of simulation).

Does this stuff get tested by ctest? My recollection from prior PRs that touch non-C++ bindings is that that is usually where they are tested. Anyhow I am running that (or rerunning, I can't remember) now.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

WIP



class ApiTest(Test):
Expand Down Expand Up @@ -77,7 +76,6 @@ def setup(self, args):
args.max_int_bits, args.api_version, args.types
)
self.api_version = args.api_version
self.allocated_tenants = set()

def add_stack_items(self, num):
self.stack_size += num
Expand Down Expand Up @@ -164,15 +162,6 @@ def wait_for_reads(self, instructions):
test_util.to_front(instructions, self.stack_size - read[0])
instructions.append("WAIT_FUTURE")

def choose_tenant(self, new_tenant_probability):
if len(self.allocated_tenants) == 0 or random.random() < new_tenant_probability:
return self.random.random_string(random.randint(0, 30))
else:
tenant_list = list(self.allocated_tenants)
# sort to ensure deterministic selection of a tenant
tenant_list.sort()
return random.choice(tenant_list)

def generate(self, args, thread_number):
instructions = InstructionSet()

Expand All @@ -195,8 +184,6 @@ def generate(self, args, thread_number):
snapshot_reads = [x + "_SNAPSHOT" for x in reads]
database_reads = [x + "_DATABASE" for x in reads]
database_mutations = [x + "_DATABASE" for x in mutations]
tenant_reads = [x + "_TENANT" for x in reads]
tenant_mutations = [x + "_TENANT" for x in mutations]
mutations += ["VERSIONSTAMP"]
versions = ["GET_READ_VERSION", "SET_READ_VERSION", "GET_COMMITTED_VERSION"]
snapshot_versions = ["GET_READ_VERSION_SNAPSHOT"]
Expand All @@ -222,14 +209,6 @@ def generate(self, args, thread_number):
]
txn_sizes = ["GET_APPROXIMATE_SIZE"]
storage_metrics = ["GET_ESTIMATED_RANGE_SIZE", "GET_RANGE_SPLIT_POINTS"]
tenants = [
"TENANT_CREATE",
"TENANT_DELETE",
"TENANT_SET_ACTIVE",
"TENANT_CLEAR_ACTIVE",
"TENANT_LIST",
"TENANT_GET_ID",
]

op_choices += reads
op_choices += mutations
Expand All @@ -245,11 +224,6 @@ def generate(self, args, thread_number):
op_choices += txn_sizes
op_choices += storage_metrics

if not args.no_tenants:
op_choices += tenants
op_choices += tenant_reads
op_choices += tenant_mutations

idempotent_atomic_ops = [
"BIT_AND",
"BIT_OR",
Expand Down Expand Up @@ -281,8 +255,6 @@ def generate(self, args, thread_number):

if args.concurrency == 1 and (
op in database_mutations
or op in tenant_mutations
or op in ["TENANT_CREATE", "TENANT_DELETE"]
):
self.wait_for_reads(instructions)
test_util.blocking_commit(instructions)
Expand Down Expand Up @@ -698,56 +670,20 @@ def generate(self, args, thread_number):
instructions.push_args(key1, key2, chunkSize)
instructions.append(op)
self.add_strings(1)
elif op == "TENANT_CREATE":
tenant_name = self.choose_tenant(0.8)
self.allocated_tenants.add(tenant_name)
instructions.push_args(tenant_name)
instructions.append(op)
self.add_strings(1)
elif op == "TENANT_DELETE":
tenant_name = self.choose_tenant(0.2)
if tenant_name in self.allocated_tenants:
self.allocated_tenants.remove(tenant_name)
instructions.push_args(tenant_name)
instructions.append(op)
self.add_strings(1)
elif op == "TENANT_SET_ACTIVE":
tenant_name = self.choose_tenant(0.8)
instructions.push_args(tenant_name)
instructions.append(op)
self.add_strings(1)
elif op == "TENANT_CLEAR_ACTIVE":
instructions.append(op)
elif op == "TENANT_LIST":
self.ensure_string(instructions, 2)
instructions.push_args(self.random.random_int())
test_util.to_front(instructions, 2)
test_util.to_front(instructions, 2)
instructions.append(op)
self.add_strings(1)
elif op == "TENANT_GET_ID":
instructions.append(op)
self.add_strings(1)
else:
assert False, "Unknown operation: " + op

if read_performed and op not in database_reads and op not in tenant_reads:
if read_performed and op not in database_reads
self.outstanding_ops.append((self.stack_size, len(instructions) - 1))

if args.concurrency == 1 and (
op in database_reads
or op in database_mutations
or op in tenant_reads
or op in tenant_mutations
or op in ["TENANT_CREATE", "TENANT_DELETE"]
):
instructions.append("WAIT_FUTURE")

instructions.begin_finalization()

if not args.no_tenants:
instructions.append("TENANT_CLEAR_ACTIVE")

if args.concurrency == 1:
self.wait_for_reads(instructions)
test_util.blocking_commit(instructions)
Expand Down
6 changes: 2 additions & 4 deletions bindings/c/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -116,8 +116,6 @@ if(NOT WIN32)
test/mako/process.hpp
test/mako/shm.hpp
test/mako/stats.hpp
test/mako/tenant.cpp
test/mako/tenant.hpp
test/mako/time.hpp
test/mako/utils.cpp
test/mako/utils.hpp)
Expand Down Expand Up @@ -223,7 +221,7 @@ if(NOT WIN32)

# do not set RPATH for mako
set_property(TARGET mako PROPERTY SKIP_BUILD_RPATH TRUE)
target_link_libraries(mako PRIVATE fdb_c tokensign fdbclient fmt::fmt Threads::Threads fdb_cpp boost_target rapidjson)
target_link_libraries(mako PRIVATE fdb_c fdbclient fmt::fmt Threads::Threads fdb_cpp boost_target rapidjson)

if(NOT OPEN_FOR_IDE)
# Make sure that fdb_c.h is compatible with c90
Expand Down Expand Up @@ -292,7 +290,7 @@ if(NOT WIN32)
set(PATTERNS_TO_SKIP "XXXX")
if (USE_ASAN)
set(PATTERNS_TO_SKIP
".*Tenant.*" # skip Tenant tests because we don't use
".*ExampleDontUsePattern.*" # skip ExampleDontUsePattern tests because we don't use those files
)
endif()
foreach(test_file ${API_TEST_FILES})
Expand Down
Loading