171 Commits

Author SHA1 Message Date
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
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
Dan Lambright
9544379cdf rebase 2022-01-20 11:12:33 -05:00
A.J. Beamon
07e5319477
Merge pull request #6165 from sfc-gh-ajbeamon/native-api-refactor
Refactor Native API Transactions
2022-01-13 14:53:19 -08:00
A.J. Beamon
17415168b6 Make the use provisional proxies parameter be of type UseProvisionalProxies everywhere. 2022-01-13 12:41:20 -08: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
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
Jingyu Zhou
0eeee21a9f Fix duplicated fields in trace events 2021-10-15 09:47:23 -04:00
Dan Lambright
f68d018a06 conflicts 2021-10-08 12:39:39 -04:00
A.J. Beamon
c2885ab70d The BACKUP_LOCK_BYTES knob could be buggified to a value that was too low, resulting in backup getting stuck. 2021-09-24 09:15:30 -07:00
Sreenath Bodagala
852fc96200 Address simulation test failures caused by:
- Assertion failures in MoveKeys.actor.cpp
- Wrong results returned by getRange()

Changes:

DatabaseContext.h, NativeAPI.actor.[h,cpp]:
- Introduce a new flag, TransactionInfo::readVersionObtainedFromGrvProxy.
- Set this flag to true by default, and clear it when the read version of a
transaction is explicitly set (by using setVersion()).
- Modify getLatestCommitVersions() to not populate "latestCommitVersions" if
this flag is not set. (This will cause storage server to read at the specified
read version.)

- Modify getRange() actor to always use the specified version as the read
version (except when the specified version is latestVersion).

- Modify waitForCommittedVersion(), getRawVersion(), and getConsistentReadVersion()
to update local version vector cache after receiving GetReadVersionReply.

IClientApi.h, IConfigTransaction.h, ISingleThreadTransaction.h,
MultiVersionTransaction[.actor].[h,cpp], ThreadSafeTransaction.[h,cpp],
ApiWorkload.h:
- Add methods to get the spanID of a transaction and also the version vector
cached in a transaction. (Likely to be useful for debugging simulation test
failures.)

VersionVector.h:
- Update "maxVersion" when populating/applying a delta. (Note that empty
mutation messages only update VersionVector::maxVersion.)

BackupWorker.actor.cpp:
- Update local version vector cache after receiving GetReadVersionReply message.

Status.actor.cpp:
- Update local version vector cache and
TransactionInfo::info.readVersionObtainedFromGrvProxy after setting the
read version.
2021-09-16 12:00:26 -04:00
Dan Lambright
8689e1f106 merge with master 2021-08-30 15:29:08 -04:00
Steve Atherton
faa4154a56 MutationTracking now uses a vector of keys to track. Removed "Mutation" detail from DEBUG_MUTATION() events because they are duplicates of the fields already logged in the returned MutationTracking event, which are now renamed and combined into "Mutation". Removed more toString() calls in TraceEvent detail values. 2021-08-09 23:30:45 -07:00
Sreenath Bodagala
a081c0baa5 Merge remote-tracking branch 'apple-upstream/master' into version-vector-prototype 2021-08-05 22:40:32 +00:00
sfc-gh-tclinkenbeard
c74047c665 Merge remote-tracking branch 'origin/master' into fix-more-clang-warnings 2021-07-28 11:51:02 -07:00
Steve Atherton
507c1f11e3 Add .log() to bare TraceEvent() invocations without any .detail()s to avoid clang-tidy warning about immediate destruction of object without use. 2021-07-26 19:55:10 -07:00
sfc-gh-tclinkenbeard
3442ebd3b7 Fix more -Wreorder-ctor warnings across many files 2021-07-24 11:20:51 -07:00
sfc-gh-tclinkenbeard
6f81155784 Merge remote-tracking branch 'origin/master' into const-serverdbinfo 2021-07-20 10:18:40 -07:00
Steve Atherton
f596a81073 Rename ::TRUE and ::FALSE in BooleanParams to ::True and ::False so as to not conflict with the TRUE and FALSE macros provided by the Windows and MacOS SDKs. 2021-07-17 00:11:40 -07:00
Sreenath Bodagala
f275f4e6e8 - Fix bugs 2021-07-15 19:49:20 +00:00
sfc-gh-tclinkenbeard
0e1d5c34e6 Prevent backupWorker from modifying ServerDBInfo object 2021-07-11 23:29:36 -07:00
sfc-gh-tclinkenbeard
79ff07a071 Added *BOOLEAN_PARAM macros to enforce documentation of boolean parameters 2021-07-02 15:04:42 -07:00
sfc-gh-tclinkenbeard
594e8944ae Move RestoreWorkerInterface into fdbserver 2021-05-30 11:51:47 -07:00
FDB Formatster
df90cc89de apply clang-format to *.c, *.cpp, *.h, *.hpp files 2021-03-10 10:18:07 -08:00
Vishesh Yadav
2bb4f2e59f Merge branch 'release-6.3-pre-format' into master-format
This merges release-6.3 branch right before it was fully formatted.
There were quite a few conflicts that are resolved here. CoroFlow had
a check for OOM errors introduced in 6.3, but didn't seem applicable in
the new implmentation which seems to use boost.
2021-03-10 09:37:41 -08:00
Markus Pilman
37d9e975e9 Fix multiple compiler warnings 2021-03-03 10:18:03 -07:00
Richard Chen
055add9682 conflicts 2020-10-23 06:33:00 +00:00
Young Liu
8cc3e4d3c6 Merge release-6.3 into master 2020-10-19 22:51:56 -07:00
Richard Chen
545ee4269d master conflicts 2020-10-19 01:03:54 +00:00
Lukas Joswiak
e47e0108a7 Add new TLogVersion 2020-10-14 15:41:10 -07:00
Richard Chen
41843f07e6 add simulator support for different process versions and ProtocolVersion test 2020-10-12 18:19:31 +00:00
Lukas Joswiak
dea7000970 Merge remote-tracking branch 'upstream/master' into visibility-1 2020-10-06 18:38:15 -07:00
Lukas Joswiak
e94c372815 Fix serialization order 2020-10-06 18:33:29 -07:00
Evan Tschannen
614c8bc895 Get read versions requests must be load balanced on the number of requests because ratekeeper gives out an equal budget to each proxy 2020-10-04 16:20:24 -07:00
Young Liu
35bef73a1c Rename proxy to commit proxy 2020-09-10 17:44:15 -07:00
Lukas Joswiak
1ca7fe1a05 Add span metadata message 2020-09-04 15:36:47 -07:00
Young Liu
79ce16650d merge master branch 2020-08-11 19:22:10 -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
Andrew Noyes
d2cf700bd4 Fix compiler warnings 2020-07-28 18:30:26 +00:00
Young Liu
229ab0d5f1 Fix some conflicts and remote debugging trace events 2020-07-22 23:35:46 -07:00
Young Liu
525f10e30c Merge master branch 2020-07-22 16:08:49 -07:00
Young Liu
302cf5c45f Remove debug trace events 2020-07-22 12:20:22 -07:00
Young Liu
2703cedac5 Fixed known bugs 2020-07-17 22:24:52 -07:00
Young Liu
21c1998cca Fix MaxTLogQueueSize Bug 2020-07-16 15:56:04 -07:00
Young Liu
5b06d69d25 Pass watches test 2020-07-15 00:37:41 -07:00
Evan Tschannen
7affda3c8b Merge branch 'release-6.3'
# Conflicts:
#	CMakeLists.txt
2020-07-14 14:57:24 -07:00
Jingyu Zhou
773e533a09 Make Arena's impl private 2020-07-13 21:39:36 -07:00
Markus Pilman
69864c9f96 Make Spans not allocate heap memory 2020-07-09 11:49:33 -06:00
Markus Pilman
0fbe7101c3 Revert "Revert "Request tracing""
This reverts commit 327cc31e354d80ca00003a2673bd19a6760285d4.
2020-07-07 10:06:13 -06:00