68 Commits

Author SHA1 Message Date
sfc-gh-tclinkenbeard
18f17a4ea2 First draft of config-db 2021-04-14 22:06:37 -07:00
Evan Tschannen
d612dbbbe2
Update fdbserver/Coordination.actor.cpp
Co-authored-by: Jingyu Zhou <jingyuzhou@gmail.com>
2021-04-01 10:05:49 -07:00
Evan Tschannen
8be216b5c9 fix: storage servers would not attempt to become a cluster controller even when they were the only process in a region because they were not notified that the existing cluster controller was in the remote region 2021-03-31 14:24:44 -07:00
FDB Formatster
df90cc89de apply clang-format to *.c, *.cpp, *.h, *.hpp files 2021-03-10 10:18:07 -08:00
Richard Chen
c77d9e4abe merge conflicts 2020-12-02 21:53:19 +00:00
sfc-gh-tclinkenbeard
4669f837fa Add uses of makeReference 2020-11-07 22:10:18 -08:00
Richard Chen
bbf5bdf6da fix stable interfaces test and corresponding changes in simulator 2020-10-12 18:25:12 +00:00
Richard Chen
5488ff1d81 draft diff protocol 2020-10-12 18:24:03 +00:00
Richard Chen
41843f07e6 add simulator support for different process versions and ProtocolVersion test 2020-10-12 18:19:31 +00:00
Richard Chen
76d0027fa2 merge anoyes/stable-interface and add back in isCompatible 2020-10-12 18:18:30 +00:00
sfc-gh-tclinkenbeard
0814841827 Replace NULL with nullptr in fdbserver 2020-09-20 11:31:49 -07:00
A.J. Beamon
3c397fe281 When responding to OpenDatabaseCoordRequest and ElectionResultRequest immediately, don't start monitorLeaderForProxies, which will keep a process alive as a coordinator. 2020-06-04 15:48:06 -07:00
Evan Tschannen
72ce997d22 explicitly versioned every key in systemData, so we only will update the associated protocolVersion when the serialization actually changes 2020-05-22 16:35:01 -07:00
Markus Pilman
c2bc75516f Merge branch 'release-6.3' of github.com:apple/foundationdb into features/trace-roles 2020-05-14 10:34:53 -07:00
Evan Tschannen
048201717c Fixed a number of problems with monitorLeaderRemotely 2020-05-10 14:20:50 -07:00
Markus Pilman
5f9b127e56 Emit traces regularly about role assignment
We are currently emitting Role transition traces when a role starts and
when it ends. While this is useful for debugging, it doesn't work well
with tools that inject data and might potentially miss some trace lines.

We do decorate each trace lines with the roles assigned to that
particular process, however, this is not sufficient for tools that can
make use of the UID -> Role mapping
2020-05-08 16:27:57 -07:00
Alex Miller
383099aef3 Bug fixes to get it actually doing the right thing:
* Intialize electionResult when constructing with NetworkAddress.
* Return after sending a reply.
* Reset the reply promise on each new request.
2020-05-08 01:00:18 -07:00
Alex Miller
8a6e177950 Merge remote-tracking branch 'upstream/master' into tls-connection-count 2020-05-05 16:49:36 -07:00
Alex Miller
53b70e6529 Fix addWellKnownEndpoint order bug. 2020-05-05 03:21:36 -07:00
Alex Miller
1117eae2b5 Rework to make ElectionResult code similar to OpenDatabase code.
And also restore and fix the delayed cluster controller code.
2020-05-05 01:00:17 -07:00
Alex Miller
43a63452d8 YOLO at reducing TLS connection count via doing monitorLeader on coordinators 2020-05-01 14:40:21 -07:00
A.J. Beamon
197f866824 Don't include internal tools such as fdbcli, backup, and DR in the status client list. 2020-03-23 14:44:04 -07:00
A.J. Beamon
df2b0452b4 Step 3 of fixing storage server range reads: change return type of readRange from VectorRef<KeyValueRef> to RangeResultRef. 2020-02-06 13:19:24 -08:00
Evan Tschannen
a62862c105 add yieldedFutures to prevent slow tasks 2019-09-11 16:26:48 -07:00
Evan Tschannen
9b4f7626bb cache the serialization of clientDBInfo 2019-09-11 15:19:42 -07:00
Andrew Noyes
6aa0ada7b1 Replace scalar root types with proper messages 2019-08-28 14:40:50 -07:00
Evan Tschannen
ee92f0574f fix: lastRequestTime was not updated
fix: COORDINATOR_REGISTER_INTERVAL was not set
fixed review comments
2019-07-26 13:23:56 -07:00
Evan Tschannen
be5d144b8b added status information on connected clients 2019-07-25 17:15:31 -07:00
Evan Tschannen
8b73a1c998 removed verbose trace messages 2019-07-24 15:07:41 -07:00
Evan Tschannen
2434d06726 fix: The coordinators did not properly track hasConnectedClients 2019-07-24 14:41:12 -07:00
Evan Tschannen
4a866290b7 Clients keep a persistent connection open with coordinators to get updates to the list of proxies
Status still needs to be updated with client information with information from the coordinators
2019-07-23 19:22:44 -07:00
Alex Miller
ea6898144d Merge remote-tracking branch 'upstream/master' into flowlock-api 2019-07-03 20:44:15 -07:00
A.J. Beamon
8c10d832a1 Add coordinator role in trace events 2019-07-03 11:09:36 -07:00
Alex Miller
bf883d7055 Merge remote-tracking branch 'upstream/master' into flowlock-api 2019-06-25 14:26:50 -07:00
Alex Miller
7a500cd37f A giant translation of TaskFooPriority -> TaskPriority::Foo
This is so that APIs that take priorities don't take ints, which are
common and easy to accidentally pass the wrong thing.
2019-06-25 02:47:35 -07:00
Jingyu Zhou
357c9ba0fb Refactor code 2019-06-19 20:41:53 -07:00
Evan Tschannen
29b96414e2 Merge branch 'release-6.1'
# Conflicts:
#	documentation/sphinx/source/release-notes.rst
#	fdbclient/NativeAPI.actor.cpp
#	fdbserver/Coordination.actor.cpp
#	flow/Arena.h
#	versions.target
2019-06-03 18:49:35 -07:00
Evan Tschannen
b830fa4c84 fix: A minority of coordinators could continue choosing a candidate which was not the leader 2019-05-30 17:25:20 -07:00
A.J. Beamon
5f55f3f613 Replace g_random and g_nondeterministic_random with functions deterministicRandom() and nondeterministicRandom() that return thread_local random number generators. Delete g_debug_random and trace_random. Allow only deterministicRandom() to be seeded, and require it to be seeded from each thread on which it is used. 2019-05-10 14:01:52 -07:00
mpilman
1c16f87a4e Remove trace-calls to printable (in non-workloads) 2019-04-05 13:12:19 -07:00
Jingyu Zhou
38c6681349 Fix some signed and unsigned mismatch warnings. 2019-03-26 14:54:11 -07:00
A.J. Beamon
85b3f11e71 Fix various compiler warnings 2019-03-15 10:34:57 -07:00
mpilman
3a0f9839b9 Fix minor IDE build errors 2019-02-19 15:16:59 -08:00
Evan Tschannen
1d7fec3074 Merge commit '048bfc5c368063d9e009513078dab88be0cbd5b0' into task/tls-upgrade-2
# Conflicts:
#	.gitignore
2019-01-24 17:43:06 -08:00
anoyes
6a4d87802b Replace & operator with variadic function 2018-12-28 11:33:42 -08:00
Vishesh Yadav
3eb9b23024 Listen to multiple addresses and start using vector<NetworkAdddress> in Endpoint
- This patch will make FDB listen to multiple addresses given via
  command line. Although, we'll still use first address in most places,
  this patch starts using vector<NetworkAddress> in Endpoint at some basic
  places.
- When sending packets to an endpoint, pick a random network address in
  endpoints
- Renames Endpoint::address to Endpoint::addresses since it
  now holds a vector of addresses.
2018-12-13 13:36:52 -08:00
Vishesh Yadav
43e5a46f9b Change Endpoint::address(NetworkAddress) to vector<NetworkAddress>
Extend `Endpoint` class to take multiple NetworkAddresses instead of
just one. Hence, to talk to an endpoint instead of one IP:PORT, we'll
have multiple IP:PORT pairs.

This patch simply adds the field and makes changes to compile the
codebase. The first element of of `address` field is used everywhere.
Hence the way we talk to remains same with this patch.

NOTE:

Directly accessing the first memeber of Endpoint::address is unsafe
as Endpoint() doesn't enforces non-empty address list. However, since
the correctness test pass for now and are anyway replacing all those
unsafe accesses with ones considering the whole vector, this patch
ignores to access them in safe way.
2018-12-13 13:36:52 -08:00
Robert Escriva
268093a96d Adjust all includes to be relative to the root.
Remove the use of relative paths.  A header at foo/bar.h could be included by
files under foo/ with "bar.h", but would be included everywhere else as
"foo/bar.h".  Adjust so that every include references such a header with the
latter form.

Signed-off-by: Robert Escriva <rescriva@dropbox.com>
2018-10-19 17:35:33 +00:00
Stephen Atherton
22f8a4efa9 Normalized all unit test names to begin with "/" if they should be included in random unit testing. 2018-10-05 22:09:58 -07:00
Alex Miller
74a9d2f836 Remove a couple more Void _ = waits that crept in from rebase. 2018-08-14 15:50:26 -07:00