Commit Graph

555 Commits

Author SHA1 Message Date
Suraj Gupta 6b4eb06201 Rename function to be more clear. 2021-09-20 14:26:42 -05:00
Suraj Gupta fe098b3b11 Refactor logic for recruiting singletons.
This commit refactors the logic for recruiting singletons,
which is done by the ClusterController. This allows for far
easier additions of new singletons in the future, and also
cleans up the code.

Also, the logic for recruiting DD was changed to mirror
the logic for recruiting RK. Although the logic for RK
allows there to be many RKs existing at once, the moveKeysLock
mechanism used by DD still prevents multiple DDs existing at once.
2021-09-20 14:26:42 -05:00
Xiaoge Su abf73047ca Enforce std:: specifier rather than using namespace 2021-09-16 19:40:28 -07:00
Zhe Wu 51920ffa16 RecruitFromConfigurationRetry should wait for goodRecruitmentTime to be ready 2021-09-02 09:32:08 -07:00
Zhe Wu 6e4f74c9b3 Remove checkRegions in shouldTriggerRecoveryDueToDegradedServers 2021-08-30 13:03:14 -07:00
FDB Formatster 2c788c233d apply clang-format to *.c, *.cpp, *.h, *.hpp files 2021-08-27 17:07:47 -07:00
Zhe Wang 7f595f4925 add_trace_event_for_role_recruitment_by_CC 2021-08-23 20:23:55 -05:00
Zhe Wu a8655e5f4e Allow CC health monitor to handle cancellation 2021-08-19 16:32:18 -07:00
yao-xiao-github 0afb63c13f
Update fdbserver/ClusterController.actor.cpp
Co-authored-by: A.J. Beamon <aj.beamon@snowflake.com>
2021-08-18 15:29:13 -07:00
Yao Xiao 7f0a09d1e2 Enable debugTransaction before getReadVersion. 2021-08-18 15:22:58 -07:00
Yao Xiao 4b8dadfdfb Use Time instead of Timestamp. 2021-08-18 11:53:52 -07:00
Yao Xiao 977f8f494e Add version and timestamp to TimeKeeperCommit event. 2021-08-18 01:27:38 -07:00
Jingyu Zhou bccb09f9dd
Merge pull request #5387 from sfc-gh-tclinkenbeard/improve-worker-const-correctness
Add const qualifiers to several parameters in `worker.actor.cpp`
2021-08-16 13:32:07 -07:00
sfc-gh-tclinkenbeard 3418c20867 Merge remote-tracking branch 'origin/master' into paxos-config-db 2021-08-16 10:49:47 -07:00
sfc-gh-tclinkenbeard ceb83f7f5e Make ccInterface a const reference in workerServer 2021-08-14 23:41:39 -07:00
Lukas Joswiak 305a17c811 Improve config broadcaster logic, fix unit tests 2021-08-10 11:39:29 -07:00
Lukas Joswiak 72e63db856 Send ConfigBroadcastInterface to ConfigBroadcaster instead of entire worker interface 2021-08-10 11:39:29 -07:00
Lukas Joswiak 3946cf94ff Push updates to workers (clang-formatted files) 2021-08-10 11:39:29 -07:00
Lukas Joswiak 092ab4302b Push updates to workers 2021-08-10 11:39:29 -07:00
sfc-gh-tclinkenbeard 82546853c0 Rename UseConfigDB to ConfigDBType 2021-08-09 10:04:35 -07:00
sfc-gh-tclinkenbeard c74047c665 Merge remote-tracking branch 'origin/master' into fix-more-clang-warnings 2021-07-28 11:51:02 -07:00
A.J. Beamon 9f571255bd
Merge pull request #5271 from sfc-gh-ajbeamon/do-not-reset-committed-transaction
Do not partially reset a transaction when it is committed or fails to commit with an error
2021-07-28 09:02:54 -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
A.J. Beamon febc26a1ea Fix some cases where we were reusing a committed transaction without resetting it. 2021-07-26 11:43:07 -07:00
Zhe Wu e39cfd48c3 Ignore goodRecruitmentTime and populate default PEER_LATENCY_CHECK_MIN_POPULATION 2021-07-26 10:24:26 -07:00
sfc-gh-tclinkenbeard 3442ebd3b7 Fix more -Wreorder-ctor warnings across many files 2021-07-24 11:20:51 -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
Markus Pilman 3169f8d25b
Merge pull request #5104 from sfc-gh-ljoswiak/fixes/remote-satellite-determinism
Disable recruitment determinism check for configurations with remote satellites
2021-07-13 10:57:38 -06:00
Xiaoxi Wang f8a21f4f6c fix invalid trace detail name 2021-07-12 17:44:26 +00:00
Zhe Wu 8773cb1a42
Merge pull request #5088 from halfprice/zhewu/cc-health-triggered-recovery
Implement the main logic of gray network triggered recovery in Cluster Controller
2021-07-11 20:50:34 -07:00
sfc-gh-tclinkenbeard 79ff07a071 Added *BOOLEAN_PARAM macros to enforce documentation of boolean parameters 2021-07-02 15:04:42 -07:00
Lukas Joswiak e828a498cd Pass vector by const reference 2021-07-01 11:01:52 -07:00
Lukas Joswiak 0bd6ac2a8e Disable recruitment determinism check for configurations with remote satellites 2021-07-01 09:30:46 -07:00
Zhe Wu 5a325aded9 Implement the core logic of gray network triggered recovery in cluster controller 2021-06-30 11:27:05 -07:00
Zhe Wu 865367fb72 Add updateWorkerHealth interface in cluster controller 2021-06-24 19:42:28 -07:00
sfc-gh-tclinkenbeard 41c790b299 Merge remote-tracking branch 'origin/master' into config-db 2021-06-10 22:31:23 -07:00
sfc-gh-tclinkenbeard 13ee24f464 Add UseConfigDB class 2021-06-10 20:57:50 -07:00
Jingyu Zhou e34df983ee
Merge pull request #4800 from sfc-gh-tclinkenbeard/remove-extra-copies
Remove unnecessary temporary objects while growing objects of type std::vector<std::pair<A, B>>
2021-06-07 13:23:50 -07:00
A.J. Beamon e02ef3b8d8
Merge pull request #4842 from RenxuanW/config
Improve logging on the current view of the database configuration that the cluster controller is using.
2021-06-07 11:28:40 -07:00
sfc-gh-tclinkenbeard 371a38e6e5 Merge remote-tracking branch 'origin/master' into remove-extra-copies 2021-06-07 10:26:06 -07:00
sfc-gh-tclinkenbeard f10dd70c37 Remove configuration_database from status when disabled 2021-06-06 08:51:18 -07:00
Josh Slocum 9b36f69b8d
Merge pull request #4892 from sfc-gh-jslocum/tss_mappingv2
TSS Mapping Change
2021-06-04 14:57:51 -07:00
Lukas Joswiak ba25b95c6a Fix global config not updating on server processes 2021-06-03 14:27:24 -07:00
Josh Slocum b3e4f182ef TSS Mapping Change 2021-06-02 17:30:09 +00:00
sfc-gh-tclinkenbeard a775f92fca Merge remote-tracking branch 'origin/master' into config-db 2021-06-01 15:39:34 -07:00
RenxuanW 4f6b983bfb Address comments. 2021-05-27 12:58:47 -07:00
Josh Slocum 4257ac2b4d More TSS Changes/Fixes 2021-05-25 20:37:48 +00:00
Josh Slocum ce82c9653e Testing Storage Server implementation 2021-05-25 20:28:50 +00:00
RenxuanW caeceb932e Improve logging on the current view of the database configuration that the cluster controller is using. 2021-05-24 09:37:57 -07:00
RenxuanW 319e77eef1 Add severity in logWorkerUnavailable(). Also, only log when fitness is GoodFit or BestFit. 2021-05-18 12:57:39 -07:00
sfc-gh-tclinkenbeard fcc6efd3b1 Add .cluster.configuration status json field 2021-05-18 10:47:16 -07:00
sfc-gh-tclinkenbeard ea8396c9be Improve decoupling of configuration database interfaces and implementations 2021-05-17 15:31:03 -07:00
sfc-gh-tclinkenbeard e8040dc609 Get /fdbserver/ConfigDB/ConfigBroadcaster/Simple unit test passing 2021-05-14 00:41:02 -07:00
RenxuanW 8a15d7d14b Bring #4518 (Logging more detailed information during Tlog recruitment) back. 2021-05-13 12:20:31 -07:00
sfc-gh-tclinkenbeard a5749de6b6 Refactor ConfigBroadcaster 2021-05-11 16:57:37 -07:00
Lukas Joswiak 4ea760b2a9 Revert "Merge pull request #4136 from sfc-gh-mpilman/features/actor-lineage"
This reverts commit da41534618, reversing
changes made to e6300905d6.
2021-05-10 20:26:12 -07:00
sfc-gh-tclinkenbeard f28ac955c3 Remove unnecessary temporary objects while growing objects of type std::vector<std::pair<A, B>> 2021-05-10 16:32:50 -07:00
Lukas Joswiak cdf98f987d
Revert "Fix global config not triggering changes on server processes" 2021-05-10 12:18:28 -07:00
Markus Pilman ccfc48d89a
Merge pull request #4782 from sfc-gh-ljoswiak/fixes/global-config-processes
Fix global config not triggering changes on server processes
2021-05-07 21:15:36 -06:00
Neethu Haneesha Bingi 3c94a09baf Using failedWorkerInfo before its gets erased 2021-05-06 17:04:25 -07:00
Neethu Haneesha Bingi d975e563cc Rename of variables in trace event. 2021-05-06 16:48:36 -07:00
Neethu Haneesha Bingi 7a6d7cae96 Added worker network address and process class details to trace log. 2021-05-06 16:48:36 -07:00
Neethu Haneesha Bingi 97cd53d649 Adding TraceEvent when a worker is removed from cluster controller. 2021-05-06 16:48:35 -07:00
Lukas Joswiak 0fc1552683 Fix global config updates not triggering on fdbserver processes 2021-05-06 15:46:34 -07:00
Lukas Joswiak e7d7b39f12
Merge pull request #4744 from sfc-gh-tclinkenbeard/add-rangeresult-type-alias
Create RangeResult type alias
2021-05-03 16:29:33 -07:00
sfc-gh-tclinkenbeard 5c2d7b6080 Create RangeResult type alias 2021-05-03 13:14:16 -07:00
sfc-gh-tclinkenbeard f9ede75b42 Remove unused variable in ClusterController.actor.cpp 2021-05-03 11:10:43 -07:00
Markus Pilman 54919d4f3b Merge remote-tracking branch 'sfc/features/actor-lineage' into features/actor-lineage 2021-04-28 09:22:14 -06:00
Evan Tschannen 1f98dec1df cleaned up default constructed maps 2021-04-26 19:26:25 -07:00
sfc-gh-tclinkenbeard dc577b6608 Fix some bugs in distribution of configBroadcaster interface 2021-04-26 18:46:22 -07:00
sfc-gh-tclinkenbeard 7211d838cf Remove broadcastConfigDatabase actor 2021-04-26 15:54:08 -07:00
Evan Tschannen 451609e6be code cleanup 2021-04-26 10:16:18 -07:00
Evan Tschannen 50bb9b51b4 simulation does recruitment twice and compares the results to ensure recruitment is deterministic 2021-04-26 10:13:59 -07:00
Evan Tschannen 49ca48f82e fix: tlog recruitment could select more than the desired about of tlogs
fix: tlog recruitment did not attempt to avoid longLivedStateless processes
2021-04-26 10:09:44 -07:00
Evan Tschannen 7503964ee9 recruitment tries to avoid degraded processes altogether, rather than just the worst one. Since this is a behavior change from the backup recruitment, we cannot compared degraded between the two recruitments 2021-04-26 10:01:54 -07:00
Evan Tschannen ccfc77f6fb changed preferredSharing to be ordered, so that recruitment will always share with the same other role when everything else is equal 2021-04-26 09:57:46 -07:00
sfc-gh-tclinkenbeard 9bed1f7aa5 Run SimpleConfigBroadcaster on cluster controller 2021-04-25 17:20:02 -07:00
Evan Tschannen b61a911685 removed an ASSERT that was for debugging purposed, and increased the max commit latency, because it can be spuriously triggered by dummy transactions that take 5+ seconds each 2021-04-21 14:30:06 -07:00
Evan Tschannen e18c9961b4 rewrote tlog recruitment logic so that it is deterministic, to prevent better master exists from triggering spuriously 2021-04-21 00:22:33 -07:00
Lukas Joswiak c81e1e9519 Add sampling profiler frequency to global config 2021-04-19 22:46:57 -07:00
RenxuanW 4bf7218e8f
Merge pull request #4635 from RenxuanW/priority_logging
Log a warning when remote dc is disabled (priority < 0)
2021-04-15 17:00:41 -07:00
Lukas Joswiak 7de23918c0 Add comments, fix erase bug, make optimizations 2021-04-14 10:56:33 -07:00
Lukas Joswiak c38ddf5eb7 Add comments 2021-04-14 10:56:33 -07:00
Lukas Joswiak 7ba7257cd2 Store global config data on heap 2021-04-14 10:56:33 -07:00
Lukas Joswiak 1c60653c2a Add fix to conditionally set global config history 2021-04-14 10:56:33 -07:00
Lukas Joswiak 6de28dd916 clang-format 2021-04-14 10:56:33 -07:00
Lukas Joswiak 1260385965 Use object to wrap global configuration history 2021-04-14 10:56:32 -07:00
Lukas Joswiak fb9a929780 Fix issue with freed memory being accessed 2021-04-14 10:56:32 -07:00
Lukas Joswiak c3f68831af Move existing ClientDBInfo variables to global configuration 2021-04-14 10:56:32 -07:00
Lukas Joswiak 7bb0b3d899 Use commit version for global configuration updates
FIXME: There is a memory issue where the underlying data for values set
in the `data` field of GlobalConfig will be freed shortly after being
set.
2021-04-14 10:56:32 -07:00
Lukas Joswiak f1415412f1 Add global configuration framework implementation 2021-04-14 10:56:32 -07:00
Evan Tschannen bd6db9ca7c
Update fdbserver/ClusterController.actor.cpp
Co-authored-by: Markus Pilman <markus.pilman@snowflake.com>
2021-04-13 15:13:45 -07:00
RenxuanW 7be8dab045 Change DcPriorityNegative to CCDcPriorityNegative 2021-04-08 16:00:37 -07:00
RenxuanW 738e7402f7 Log a warning when remote dc is disabled (priority < 0) 2021-04-08 15:36:52 -07:00
RenxuanW f3d5fa4750 Revert "Log a warning when remote dc's priority doesn't match the original primary."
This reverts commit 1d701e8bcf.
2021-04-08 15:19:43 -07:00
RenxuanW 1d701e8bcf Log a warning when remote dc's priority doesn't match the original primary. 2021-04-08 14:38:37 -07:00
Evan Tschannen a90c26f1d0 The master, proxies, and resolver all need to have the same machine class fitness function besides best fit to ensure recruitment is deterministic
if the first GRV proxy or resolver is forced to share a process, it should prefer to share with the commit proxy so that the commit proxy has more potential options it can share with
2021-04-08 14:29:12 -07:00
Evan Tschannen 5695a1816f fix: requiredFitness was being set to one higher than the actual requirement 2021-04-07 21:31:14 -07:00
Evan Tschannen 1b1f73ea16 added comments 2021-04-07 20:40:42 -07:00
Evan Tschannen 4d8dd0b0a0 fix: desired must be greater than or equal to required 2021-04-07 20:32:45 -07:00