A.J. Beamon
04d1217941
Track statistics about server-side request latency on each process, to include min, max, mean, and various percentiles.
2020-07-09 16:39:15 -07:00
Markus Pilman
69864c9f96
Make Spans not allocate heap memory
2020-07-09 11:49:33 -06:00
Young Liu
7afee53f4c
Clean up code that serves GRV through other proxies
2020-07-07 21:19:11 -07:00
Markus Pilman
0fbe7101c3
Revert "Revert "Request tracing""
...
This reverts commit 327cc31e35 .
2020-07-07 10:06:13 -06:00
Young Liu
832c6d0d65
Add comment about invariant master's committed version >= proxy's committedVersion
2020-07-06 12:34:15 -07:00
Young Liu
44331f50dc
Add back conditional report
2020-07-03 17:26:44 -07:00
Young Liu
286988c914
Report commit version later in the commit path
2020-07-02 16:14:50 -07:00
Young Liu
7546ed3edf
Remove trace events
2020-07-02 15:17:11 -07:00
Young Liu
323c65071d
Discard the condition to report commit version: only when commitVersion > committedVersion and leave trace events
2020-07-02 15:13:28 -07:00
Young Liu
31c70a873f
Report commit version to master as soon as possible
2020-07-02 15:13:28 -07:00
Young Liu
ed89d69916
Change order between reporting commit version and setting committedVersion
2020-07-02 15:13:28 -07:00
A.J. Beamon
11b136c745
Various fixes to tag throttling:
...
* Master proxy reports transaction counts to ratekeeper for throttled tags only
* The ramp up behavior at the end of an auto-throttle was broken
* Fixed some issues with computing the initial transaction rate for auto-throttles
2020-06-30 16:24:41 -07:00
Young Liu
9ee21a1ae5
Fix getting read version while locked
2020-06-28 20:11:46 -07:00
sfc-gh-tclinkenbeard
b6beac4f83
Avoid reallocating for each batch in commitBatcher
2020-06-19 23:02:28 -07:00
sfc-gh-tclinkenbeard
85a284b13c
Use VectorRef::emplace_back in several places
2020-06-19 23:02:28 -07:00
Young Liu
8cd97a2be8
Resolve Evan's comments:
...
- Only report commit version when commit version is larger than the known committed version.
- Fix task priorities of [Get/Report]LiveCommittedVersion [request/reply].
- Fix some code style issues.
2020-06-17 10:02:25 -07:00
Young Liu
580ce6da74
Fix GetReadVersionReply.recentRequests
2020-06-16 22:45:57 -07:00
Young Liu
4dfb903a3a
tmp merge
2020-06-16 20:32:07 -07:00
Jingyu Zhou
327cc31e35
Revert "Request tracing"
2020-06-16 12:32:42 -07:00
Young Liu
bf524fc6f2
Added span trace in serveLiveCommittedVersion
2020-06-13 17:47:13 -07:00
Young Liu
f211a54593
Merged from upstream master
2020-06-13 16:47:12 -07:00
Young Liu
f8c457d74d
Minor fix against Meng's comments
2020-06-13 16:27:08 -07:00
Young Liu
2eb3aac651
Report commit version early to fix watcher tests on joshua
2020-06-12 00:10:33 -07:00
Young Liu
ff7354a7de
Recovered parallelism between the proxy-master rpc and its concurrent events and some minor fixes on formatting and variables naming
2020-06-11 14:07:37 -07:00
Young Liu
a47806a966
Fixed locked and metadataVersion in GetReadVersion
2020-06-10 15:55:23 -07:00
Markus Pilman
9ef93714ac
Address review comments
2020-06-10 15:48:49 -07:00
Markus Pilman
caabbec466
Spans for read and commit path
2020-06-10 09:59:41 -07:00
Young Liu
a038a02cdd
Serve GetReadVersion through master
2020-06-09 11:16:23 -07:00
Markus Pilman
c829b12bbf
defined spans for read requests
2020-06-08 17:26:15 -07:00
Markus Pilman
09c136e434
Framework for transaction tracing
2020-06-08 16:09:37 -07:00
Meng Xu
1c35ad884f
Merge branch 'master' into mengxu/release-6.3-conflict-PR
...
Has conflict with master;
Next commit will fix the conflicts.
2020-05-25 12:01:49 -07:00
Evan Tschannen
ced65cd30b
finished explicitly versioning everything stored in the database
2020-05-22 17:14:21 -07:00
A.J. Beamon
d128252e90
Merge release-6.3 into master
2020-05-22 09:25:32 -07:00
Chaoguang Lin
f957dfabb5
clang-format
2020-05-22 05:25:13 -07:00
Chaoguang Lin
b44ec9c98a
Fix bug in reporting conflicting keys. Add read_conflict_range index mapping when we have multiple resolvers
2020-05-22 04:44:09 -07:00
A.J. Beamon
7a09d016a6
Merge branch 'release-6.3' into merge-release6.3-into-master
2020-05-19 12:52:44 -07:00
Chaoguang Lin
6ce574f5ad
Merge remote-tracking branch 'upstream/release-6.3' into add-data-distribution-metrics
2020-05-17 23:36:52 -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
Alex Miller
ccaac162e2
Resolve performance concerns of nearly-no-op debugMutation being frequently called
...
This introduces unhygenic macro variants that inline a `ENABLED &&`
before the TraceEvent. This way, they get entirely compiled out unless
enabled.
Then rewrite all debugMutation uses via sed.
2020-05-13 18:44:15 -07:00
Alex Miller
27da91ab9e
Merge remote-tracking branch 'upstream/master' into mutation-debugging
2020-05-13 12:51:44 -07:00
Evan Tschannen
f17f00fdd5
Merge branch 'release-6.2'
...
# Conflicts:
# documentation/sphinx/source/release-notes.rst
2020-05-10 22:33:38 -07:00
Evan Tschannen
9d1df2aa58
fix: the first CPU estimate could be wrong enough to cause stalls on a newly recruited proxy
2020-05-10 17:50:09 -07:00
Evan Tschannen
9d5e37f1a8
optimized decodeKeyServersValue on the proxy when loading all key ranges on startup
2020-05-09 16:54:35 -07:00
A.J. Beamon
02307ba7b6
Merge branch 'master' into transaction-tagging
...
# Conflicts:
# fdbclient/DatabaseContext.h
2020-05-09 07:50:29 -07:00
Chaoguang Lin
ef724bf939
Merge remote-tracking branch 'upstream/master' into add-data-distribution-metrics
2020-05-08 18:39:28 -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
Evan Tschannen
8166e1af8b
Storage server tags cannot change once used in the keyServer location map
2020-05-08 16:17:10 -07:00
A.J. Beamon
36454bb3b8
Merge branch 'master' into transaction-tagging
...
# Conflicts:
# fdbclient/MasterProxyInterface.h
# fdbclient/NativeAPI.actor.cpp
2020-05-04 10:23:25 -07:00
A.J. Beamon
bb3d4b6b89
Add a bunch of TEST macros and some other little things
2020-05-04 10:11:36 -07:00
Evan Tschannen
aed2d34bcb
Merge branch 'master' into feature-proxy-load-balance
...
# Conflicts:
# fdbclient/NativeAPI.actor.cpp
# fdbserver/MasterProxyServer.actor.cpp
# flow/Knobs.cpp
2020-05-01 09:19:39 -07:00
A.J. Beamon
6ada5359b8
Merge branch 'master' into transaction-tagging
2020-04-29 14:27:21 -07:00
Evan Tschannen
627eb93dd9
Merge pull request #2941 from etschannen/feature-tree-broadcast
...
Implemented a tree broadcast for the proxy and cluster controller
2020-04-29 13:38:09 -07:00
Andrew Noyes
110edc7453
Fix build on gcc9
2020-04-26 20:53:41 +00:00
A.J. Beamon
239876351b
Add some initial auto-throttling. Move the definition of the priority enum to a more global place and use it for all transaction priorites (except in ClientLogEvents, because of serialization incompatibilites).
2020-04-24 11:31:16 -07:00
A.J. Beamon
972be45d6f
Cleanup tags when possible on the proxy. Some minor cleanup.
2020-04-23 10:53:10 -07:00
A.J. Beamon
434704fbd9
Various bug fixes
2020-04-22 12:28:51 -07:00
A.J. Beamon
d5fb4d26fe
Send tag throttle updates from ratekeeper to proxy only when they change
2020-04-21 16:33:56 -07:00
A.J. Beamon
b2c14611f3
Ratekeeper maintains its throttle data a bit differently, and now it aggregates the effects of multiple priorities before sending results to the proxy
2020-04-21 11:58:59 -07:00
Evan Tschannen
ba3e2af473
Merge commit '5288033bcfe40c3ade97c8bf2d04cf31b3f16cb1' into feature-tree-broadcast
2020-04-17 15:17:37 -07:00
A.J. Beamon
0e572c8833
Fix a couple correctness issues
2020-04-17 10:26:39 -07:00
A.J. Beamon
1064ff483b
Fix merge issue
2020-04-17 09:37:34 -07:00
A.J. Beamon
78d48a0dad
Merge branch 'master' into transaction-tagging
...
# Conflicts:
# fdbcli/fdbcli.actor.cpp
# fdbclient/Knobs.h
# fdbclient/NativeAPI.actor.cpp
# fdbclient/fdbclient.vcxproj
# fdbserver/MasterProxyServer.actor.cpp
2020-04-17 09:23:18 -07:00
A.J. Beamon
6619a1a36a
Rename transaction tag map.
2020-04-17 09:06:45 -07:00
A.J. Beamon
2b66dcd24a
Some more refactoring. Reduce what is sent from RK->MP->clients
2020-04-17 08:07:01 -07:00
A.J. Beamon
0fba8c47be
Checkpoint: Ratekeeper sets absolute limits for tag throttles and enforces them by distributing requests to proxies, who distribute them to clients.
...
A few refactorings.
2020-04-16 14:43:22 -07:00
A.J. Beamon
541c81a92a
Fix merge related issue.
2020-04-14 14:10:12 -07:00
A.J. Beamon
9d6f2352d9
Merge commit 'cf01233f28a2c42908656a39f458a4475c1d44a3' into grv-proxy-perf-improvements
...
# Conflicts:
# fdbserver/Knobs.cpp
# fdbserver/Knobs.h
# fdbserver/MasterProxyServer.actor.cpp
2020-04-14 13:49:09 -07:00
Alex Miller
2e53c8c5e2
Merge pull request #2915 from tclinken/move-optimizations
...
Avoid unnecessary copies in PromiseStream
2020-04-13 21:15:16 -07:00
Evan Tschannen
07cc0a8d74
code cleanup
2020-04-10 17:02:11 -07:00
Evan Tschannen
ce4493f679
many bug fixes
2020-04-10 13:45:16 -07:00
A.J. Beamon
29b2c2f3aa
Add hash to StringRef. Use unordered maps for storing tags. Create some helpful typedefs.
2020-04-10 12:54:59 -07:00
A.J. Beamon
ebeca10bce
Change the serialization of tags sent in some messages. Add communication of the sampling rate from cluster to clients.
2020-04-09 16:55:56 -07:00
A.J. Beamon
36da61dd9c
Merge branch 'master' into transaction-tagging
...
# Conflicts:
# fdbclient/NativeAPI.actor.cpp
# fdbclient/vexillographer/fdb.options
2020-04-07 21:12:14 -07:00
A.J. Beamon
a1d8623e5f
Various changes to the throttling scheme, including most notably that clients now enforce the throttles with info they receive from the proxy.
2020-04-07 16:28:09 -07:00
Evan Tschannen
a51c92854a
Merge branch 'master' into feature-tree-broadcast
...
# Conflicts:
# fdbserver/WorkerInterface.actor.h
# fdbserver/worker.actor.cpp
2020-04-06 21:09:44 -07:00
Evan Tschannen
2a1bd97120
fix compilation errors
2020-04-06 20:58:43 -07:00
tclinken
e682f6741c
Avoid unnecessary copies in PromiseStream
2020-04-06 17:15:03 -07:00
Evan Tschannen
477d66b46d
implemented a tree broadcast for txn state message for proxies, and serverDBInfo for workers
2020-04-05 23:09:36 -07:00
Alex Miller
6078fd1b18
Convert UID to Tag in keyServers to reduce txnStateStore size
2020-04-05 14:30:09 -07:00
Meng Xu
60f6edc3b5
Merge pull request #2860 from zjuLcg/report-conflicting-key-roll-forward
...
Report conflicting key roll forward
2020-03-30 17:33:56 -07:00
Meng Xu
f7233bade7
Rename ParallelRestoreCorrectnessAtomicOpTinyData.txt by removing TinyData
2020-03-27 13:08:59 -07:00
Meng Xu
113d0fb48b
Remove incorrect assertion
2020-03-27 12:13:30 -07:00
Alex Miller
72e5891058
Clean up and rework the debugMutation API.
...
As a relatively unknown debugging tool for simulation tests, one could
have simulation print when a particular key is handled in various stages
of the commit process. This functionality was enabled by changing a 0
to a 1 in an #if, and changing a constant to the key in question.
As a proxy and storage server handle mutations, they call debugMutation
or debugKeyRange, which then checks against the mutation against the key
in question, and logs if they match. A mixture of printfs and
TraceEvents would then be emitted, and for this to actually be usable,
one also needs to comment out some particularly spammy debugKeyRange()
calls.
This PR reworks the API of debugMutation/debugKeyRange, pulls it out
into its own file, and trims what is logged by default into something
useful and understandable:
* debugMutation() now returns a TraceEvent, that one can add more details to before it is logged.
* Data distribution and storage server cleanup operations are no longer logged by default
2020-03-27 03:30:28 -07:00
chaoguang
64148469e8
clang-format the pr
2020-03-26 15:52:30 -07:00
Andrew Noyes
289487559d
Revert "Revert "Merge pull request #2257 from zjuLcg/report-conflicting-key""
...
This reverts commit 804fe1b22e .
2020-03-24 18:11:15 -07:00
tclinken
247ab84323
Merge branch 'master' of https://github.com/apple/foundationdb into add-data-distribution-metrics
2020-03-23 17:01:17 -07:00
A.J. Beamon
26b7e02d4c
Some initial work to support tagging transactions and passing them around.
2020-03-20 11:23:11 -07:00
Balachandar Namasivayam
804fe1b22e
Revert "Merge pull request #2257 from zjuLcg/report-conflicting-key"
...
This reverts commit 648dc4a933 , reversing
changes made to 487d131b38 .
2020-03-19 21:34:28 -07:00
Evan Tschannen
648dc4a933
Merge pull request #2257 from zjuLcg/report-conflicting-key
...
Report conflicting keys
2020-03-18 13:39:42 -07:00
Evan Tschannen
e08f0201f1
merge release 6.2 into master
2020-03-17 12:51:47 -07:00
Evan Tschannen
04b752b40a
Added additional logging related to memory errors (including in status)
2020-03-13 18:31:22 -07:00
Evan Tschannen
a71e61f57b
fixed compiler issue
2020-03-13 18:22:38 -07:00
Evan Tschannen
ebbf4490b3
use a Deque for each priority instead of a priority queue to improve CPU with large numbers of outstanding requests
2020-03-13 18:07:48 -07:00
Evan Tschannen
243c268d9d
Limit the amount of requests the proxy can queue up in memory
2020-03-13 10:17:49 -07:00
chaoguang
02ee4f4c46
Update comments
2020-03-11 22:22:51 -07:00
chaoguang
7a76e9556d
Merge remote-tracking branch 'upstream/master' into report-conflicting-key
2020-03-04 11:24:39 -08:00
A.J. Beamon
993c6e478e
Merge branch 'master' into grv-proxy-perf-improvements
2020-02-28 14:25:42 -08:00
A.J. Beamon
1ec55f21f7
Add some comments for documentation; strengthen an assert.
2020-02-28 14:25:19 -08:00
Evan Tschannen
924d335aa7
Merge branch 'release-6.2'
...
# Conflicts:
# documentation/sphinx/source/release-notes.rst
# flow/Knobs.cpp
# flow/Knobs.h
2020-02-25 18:25:19 -08:00
Evan Tschannen
6e7d2ff7dd
prevent the proxy from delaying too long based on an incorrect estimate of the compute time
2020-02-25 15:46:13 -08:00