Commit Graph

716 Commits

Author SHA1 Message Date
A.J. Beamon 402fa4dd9e
Merge pull request #6428 from sfc-gh-ajbeamon/fdb-tenant-add-interfaces
Add server-side and protocol support for tenants
2022-03-08 15:33:18 -08:00
A.J. Beamon 6f7adb04a5 Send a version along with GetKeyServerLocationsRequests to allow the proxy to reject missing tenants more quickly. Change the commit proxy tenant map to be unversioned. 2022-03-08 13:33:56 -08:00
A.J. Beamon 5003a0d662 Remove unnecessary parameter from clampRangeToTenant 2022-03-08 12:01:51 -08:00
A.J. Beamon 07169b1f11 Add unknown_tenant error to documentation. Avoid doing an extra tenant lookup in the clampRangeToTenant function. 2022-03-07 10:37:22 -08:00
A.J. Beamon 3ae98189af Server processes send unknown_tenant responses back to clients, which is meant to be retried after updating the tenant cache. Fix bug where key selectors could be truncated after applying the tenant prefix. 2022-03-06 21:54:21 -08:00
A.J. Beamon 72a34945ce Add the ability to disable tenants. Server processes verify the ID of tenants being read or written. 2022-03-06 21:54:21 -08:00
A.J. Beamon b4feddea8d Fix a couple bugs. Don't store old versions in tenant map indefinitely. 2022-03-06 21:54:21 -08:00
A.J. Beamon e898e59d18 Fix merge issue that caused tenant serialization problems. Fix case where arena was passed by value rather than reference. Watches should check the tenant map at the latest version rather than the watch version. 2022-03-06 21:54:21 -08:00
A.J. Beamon c99c7cf55f Apply tenant prefixes on the storage server. The commit proxy can serve tenant location requests. Fix some bugs. 2022-03-06 21:54:21 -08:00
A.J. Beamon bd3920c23d Wait to initialize the SS tenant map until after the storage server has been added. Add some extra logging around inserting and erasing tenants. 2022-03-06 21:54:21 -08:00
A.J. Beamon b8192828d9 Add support for the global tenant prefix to tenant map entries 2022-03-06 21:54:21 -08:00
A.J. Beamon 9c4773164e Add ID to requests 2022-03-06 21:54:21 -08:00
A.J. Beamon 5fa9d3e1b7 Add a tenant parameter to read and commit requests. Store a map of all tenants on commit proxy and storage servers. Add an option to require tenant mode. 2022-03-06 21:54:21 -08:00
Neethu Haneesha Bingi 8796a763a5 Rocksdb knobs for compaction, storageserver canCommit() waiting if rocksdb overloaded. 2022-03-04 12:41:17 -08:00
A.J. Beamon 250a88e682 Enforce that trace event suppression calls happen first when using trace event call chaining. Fix various instances where we weren't following this requirement. 2022-02-24 12:25:52 -08:00
Josh Slocum b324cf4bc4 Fixing TSS buggify in restarting tests 2022-02-03 06:46:28 -06:00
A.J. Beamon 0803abedaa Adjust the name order of constructor variable initialization to match declaration order. 2022-01-28 10:27:13 -08:00
Andrew Noyes c967e6246b
Fix uninitialized memory in storage server (#6282) 2022-01-26 13:24:35 -08:00
He Liu 5e0b1fd13f Resolved comments. 2022-01-21 16:58:42 -08:00
He Liu 0421562ce9 Resolved comments. 2022-01-21 16:58:42 -08:00
He Liu b7388a714b Added get, scan, and commit counters. 2022-01-21 16:58:42 -08:00
He Liu da8453eb5d Added systemClearRange. 2022-01-21 16:58:42 -08:00
He Liu f14c832031 Added storage engine metrics in SS. 2022-01-21 16:58:42 -08:00
A.J. Beamon d8e161f89e Refactor NativeAPI transactions to create and pass around a reference counted state object. Watches no longer use the tranasction info object but instead use their own state. 2021-12-17 11:57:39 -08:00
Josh Slocum f6ea67120e Adding explicit empty version back to change feeds for now 2021-12-10 10:04:05 -06:00
Andrew Noyes def41697bf
Merge pull request #6083 from sfc-gh-tclinkenbeard/remove-temporaries
Avoid creating unnecessary temporary objects
2021-12-06 13:24:56 -08:00
Tao Lin 9b0a9c4503
Return error when getRangeAndFlatMap has more & Improve simulation tests (#6029) 2021-12-03 12:50:07 -08:00
sfc-gh-tclinkenbeard 3b5d23ef88 Remove unnecessary temporary objects when appending to vector of pairs 2021-12-01 18:15:16 -08:00
Evan Tschannen b0aad44831 change feed requests with an explicit end need to get empty versions at the end boundary 2021-11-23 15:01:44 -08:00
Evan Tschannen 3360000a91 fix: an empty mutation vector did not mean that all of the data was returned 2021-11-23 15:01:44 -08:00
Evan Tschannen e97d337ffe fix: when a feed transitions from atLatest to not atLatest stall all updates at the blocked version 2021-11-23 15:01:44 -08:00
Evan Tschannen 10a925b7e9 do not return mutations larger than the dequeVersion 2021-11-23 15:01:44 -08:00
Evan Tschannen f3bb1d8f51 properly handle an active change feed stream when removed 2021-11-23 15:01:44 -08:00
Jon Fu 8f6934c4d0 Merge branch 'master' of github.com:apple/foundationdb into jfu-fix-ss-segfault 2021-11-16 18:03:32 -05:00
Evan Tschannen 964d0209ca
Merge pull request #5637 from sfc-gh-ljoswiak/features/data-loss-prevention
Data loss protection when joining new cluster
2021-11-15 15:26:32 -08:00
Evan Tschannen 6e81b83924 fix: cleanup change feeds which have been completely removed from a storage server 2021-11-15 11:47:42 -08:00
Evan Tschannen 94a51e57a5 Merge branch 'master' into feature-changefeed-empty-versions
# Conflicts:
#	fdbclient/StorageServerInterface.h
2021-11-14 19:13:05 -08:00
Evan Tschannen 6909754b21 changefeeds now have a whenAtLeast function for efficiently learning when the version has updated but no mutations have been committed 2021-11-14 19:08:46 -08:00
Tao Lin 2d5f924278 GetKeyValuesAndFlatMap should return error if not retriable 2021-11-12 09:35:28 -08:00
Lukas Joswiak c93052121f Fix issue where transaction spans would not be recorded 2021-11-10 13:33:49 -08:00
Daniel Smith 499dbcdb18 Don't fail fetchKeys when server overloaded is returned 2021-11-10 14:15:42 -05:00
Daniel Smith b50b3de5d0 Allow SS to respond with server overloaded 2021-11-10 11:52:02 -05:00
Tao Lin fdb3b72e35 Introduce GetRangeAndFlatMap to push computations down to FDB
Re-introduce #5609
2021-11-09 13:52:28 -08:00
Lukas Joswiak 15e0d5b29f Add explicit transaction options when reading cluster ID 2021-11-09 12:29:49 -08:00
Lukas Joswiak 4640045243 Fix rare simulation failures
When partitions appear before a cluster has fully recovered, it was
possible to have different tlogs persist different cluster IDs because
they were involved in different partitions. This would affect recovery
when a quorum was eventually reached. The solution to this is to avoid
persisting the cluster ID before a cluster has fully recovered, to make
sure all nodes agree on the cluster ID.
2021-11-09 12:29:48 -08:00
Lukas Joswiak aa3383f0e3 Exclude when joining new cluster 2021-11-09 12:29:48 -08:00
Lukas Joswiak 3e2c65bb11 Allow tlog to join another cluster but retain its data 2021-11-09 12:29:48 -08:00
Lukas Joswiak 30867750b5 Add protection against storage and tlog data deletion when joining a new cluster 2021-11-09 12:29:47 -08:00
Jon Fu 396cd58b21 cancel ss core and ss actor collection after termination and before context switch 2021-11-04 16:05:23 -04:00
Tao Lin 586cc3b102
Revert "Introduce GetRangeAndFlatMap to push computations down to FDB" 2021-11-04 08:46:56 -07:00