140 Commits

Author SHA1 Message Date
A.J. Beamon
cc72d541e4
Merge pull request #6971 from sfc-gh-svemuri/verify-tenant-prefixes-on-commit-proxy
Validate commit request tenant prefixes on commit proxy
2022-04-28 12:40:56 -07:00
Lukas Joswiak
0ae0bf9e31 Add proxy debug ID 2022-04-28 10:48:57 -04:00
Lukas Joswiak
0dc662bfd2 Move trace below where is updated 2022-04-28 10:48:57 -04:00
Lukas Joswiak
8b489ae0bf Lower max compute duration cutoff and increase suppression duration 2022-04-28 10:48:57 -04:00
Lukas Joswiak
802c45f843 Add estimated compute duration 2022-04-28 10:48:57 -04:00
Lukas Joswiak
f13a8df5d9 Add logging measuring commit compute duration 2022-04-28 10:48:57 -04:00
Sagar Vemuri
ed0732a012 Address review comments: Update TraceEvents and an assert in versionstampkey check 2022-04-27 15:20:41 -07:00
Sagar Vemuri
d013ff7457 Remove unnecessary include 2022-04-27 11:27:19 -07:00
Sagar Vemuri
ed60afc964 Handle versionstamped keys, and include additonal trace information 2022-04-27 11:12:01 -07:00
Sagar Vemuri
fd993df807 Minor cleanup 2022-04-26 13:52:38 -07:00
Sagar Vemuri
35baf4d745 Validate commit request tenant prefixes on commit proxy 2022-04-26 13:28:29 -07:00
Ray Jenkins
1c5bf135d5
Revert "Migrate to OpenTelemetry tracing. (#6855)" (#6941)
This reverts commit 5df3bac110d9b5b88931b008b852433688bb7eb0.
2022-04-25 09:29:56 -05:00
Ray Jenkins
5df3bac110
Migrate to OpenTelemetry tracing. (#6855) 2022-04-20 09:26:37 -05:00
Dan Lambright
5bdc525353
Merge branch 'main' into vv 2022-04-08 13:16:04 -04:00
Yi Wu
994b8c92f8
Add option to limit resident memory and remove default memory limit (#6719)
Changing `memory` option to limit resident memory instead of virtual memory, in config file and fdbserver/fdbbackup/fdbcli command-line argument. Since `rlimit` doesn't support limiting virtual memory, the current implementation have both of fdbmonitor and the fdbserver/fdbbackup process checking process RSS periodically and kill and restart the process if the limit is exceeded.

Adding a new `memory_vsize` option to limit virtual memory, if backward-compatible behavior is desired.

closes #6671, closes #6672
2022-04-06 20:06:24 -07:00
Jingyu Zhou
cfcf0f152c Merge branch 'main-4a085fc84' into vv
Fix Conflicts:
	fdbclient/NativeAPI.actor.cpp
	fdbserver/ClusterRecovery.actor.cpp
	fdbserver/MasterInterface.h
	fdbserver/masterserver.actor.cpp
	flow/error_definitions.h
2022-03-30 22:28:06 -07:00
Jingyu Zhou
00b57d4cce Merge branch 'main-67eba5ec7' into vv
Fix Conflicts:
	fdbclient/CommitProxyInterface.h
	fdbclient/NativeAPI.actor.cpp
	fdbclient/StorageServerInterface.h
	fdbserver/CommitProxyServer.actor.cpp
	fdbserver/storageserver.actor.cpp
2022-03-30 20:05:55 -07:00
Jingyu Zhou
e9659b5dd4 Merge branch 'master-PR-6500' into vv
Fix Conflicts:
	fdbclient/CommitProxyInterface.h
	fdbclient/NativeAPI.actor.cpp
	fdbserver/masterserver.actor.cpp
2022-03-30 14:53:49 -07:00
Josh Slocum
f27475e2f4 Merge branch 'main' into blob_integration 2022-03-22 11:41:58 -05:00
sfc-gh-tclinkenbeard
a71099471b Update copyright header dates 2022-03-21 13:36:23 -07:00
Evan Tschannen
6be992cc39 fix: do not reply to a txnStateRequest for the final sequence unless we have processes the txnStateStore 2022-03-18 15:24:31 -07:00
Josh Slocum
e71b3533f9 Merge branch 'main' into blob_integration 2022-03-09 08:59:56 -06: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
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
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
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
Josh Slocum
bc7cc984b0 Fixing BGVerifyBalance test killing issues 2022-02-25 11:30:21 -06: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
Sreenath Bodagala
cddce79f25
Merge pull request #6359 from sbodagala/version-vector-prototype
Version vector prototype: Merge with the main branch
2022-02-08 15:56:52 -05:00
Sreenath Bodagala
72e06369a4 Merge remote-tracking branch 'apple-upstream/main' into version-vector-prototype 2022-02-08 17:47:57 +00:00
Jingyu Zhou
54d96633c0 Do not sent metadata mutations to all resolvers
Let only resolver 0 to process metadata mutations and generate private mutations.
2022-02-07 11:49:56 -08:00
Trevor Clinkenbeard
e6b02532a6
Merge pull request #6192 from sfc-gh-tclinkenbeard/improve-commitbatcher-performance
Make `VectorRefPreserializer` move constructor noexcept
2022-01-31 09:52:51 -08:00
Dan Lambright
9544379cdf rebase 2022-01-20 11:12:33 -05:00
Ata E Husain Bohra
936bf5336a
Revert "Revert "Refactor: ClusterController driving cluster-recovery state machine" (#6191)
* Revert "Revert "Refactor: ClusterController driving cluster-recovery state machine""

Major changes includes:
1. Re-revert Sequencer refactor commits listed below (in listed order):
1.a. This reverts commit bb17e194d9c9888e203421290959bd7f2c075d7f.
1.b. This reverts commit d174bb2e06bff01157d16c652073536c54d17f7f.
1.c. This reverts commit 30b05b469c87d9b526b427751c211fb5cf7ff9cd.

2. Update Status.actor to track ClusterController interface to track
   recovery status.
3. Introduce a ServerKnob to define "cluster recovery trace event"
   prefix; for now keeping it as "Master", however, it should allow
   smooth transition to "Cluster" prefix as it seems more appropriate.
2022-01-06 12:15:51 -08:00
sfc-gh-tclinkenbeard
54eb3b2e91 Disable static assertion in commitBatcher 2022-01-06 12:14:13 -08:00
sfc-gh-tclinkenbeard
648609d764 Make VectorRefPreserializer move constructor noexcept 2021-12-30 22:46:16 -08:00
Aaron Molitor
30b05b469c Revert "Refactor: ClusterController driving cluster-recovery state machine"
This reverts commit dfe9d184ff5dd66bdbbc5b984688ac3ebb15b901.
2021-12-24 11:25:51 -08:00
Ata E Husain Bohra
dfe9d184ff Refactor: ClusterController driving cluster-recovery state machine
At present, cluster recovery process consists of following steps:
1. ClusterController clusterWatchDatabase actor recruits
   master/sequencer process.
2. Sequencer process implements the cluster recovery state machine,
   responsible to recruit all other processes as well restore the
   cluster state.

Patch proposes a scheme where the cluster recovery state machine
is implemented and driven by the ClusterController process instead
of the Sequencer process.

Advantages of the scheme could be:
1. Simplified design where ClusterController recruits "sequencer"
   process like other worker processes compared to current scheme
   where "sequencer" process gets special treatment. In newer scheme
   sequencer is responsible for maintaining/providing
   "committed version" (as expected).
2. ClusterController is responsible for worker processes recruitment,
   the sequencer though orchestrating the recovery state machine, it
   need to reachout to the ClusterController for recruiting worker
   processes etc.

NOTE:
Patch has moved the recovery state machine code from
'sequencer' -> 'cluster-controller' process, however, necessary
updates were done for both functionality as well as performance
improvement reasons.

Next Steps:
Cluster recovery documentation will be updated in near future.
2021-12-22 14:06:27 -08:00
sfc-gh-tclinkenbeard
0ba77ea79b Fix proxySnapCreate trace typo 2021-11-14 16:12:28 -08:00
Jingyu Zhou
5c258b089f Fix written_tags not propagated to commit proxies
This is needed so that private mutation tags are propagated from Resolvers to
commit proxies. Otherwise, the master's VV won't be correct and can cause data
corruptions.
2021-11-11 11:26:13 -08:00
Jingyu Zhou
a8ba9bd021 Fix assertion of resolver returned mutation count 2021-11-09 11:45:53 -08:00
Jingyu Zhou
9f305d67a9 Fix backup mutation tags not counted in version vector 2021-10-22 08:43:20 -07:00
sbodagala
48a0ecd647
Merge pull request #5787 from dlambrig/integrate-PR5700
version vector / Calculate TPCV on resolvers
2021-10-20 16:35:44 -04:00
Sreenath Bodagala
06f5401d14 Propagate written tags from proxy to sequencer when ENABLE_VERSION_VECTOR
is enabled, not when ENABLE_VERSION_VECTOR_TLOG_UNICAST is enabled.
2021-10-18 16:31:31 +00:00
Dan Lambright
eb814ce070 Remove dead code, check replies match for all resolvers 2021-10-18 10:23:08 -04:00
Dan Lambright
23062b892e Calculate tpcv on resolvers 2021-10-15 16:40:00 -04:00
Jingyu Zhou
dd8840837d Assert private mutation counts are the same from Resolvers 2021-10-15 12:13:20 -04:00
Jingyu Zhou
c6a9ac11a8 fix another conflict fdbserver/ApplyMetadataMutation.cpp 2021-10-15 09:48:33 -04:00
Jingyu Zhou
fc7325e923 Fix force recovery when generating private mutations
Resolver need to skip transactions after forceRecovery flag is true.
2021-10-15 09:47:23 -04:00