Commit Graph

238 Commits

Author SHA1 Message Date
Trevor Clinkenbeard 209ebcc595
Revert "Add limiting health metrics" 2020-11-13 17:08:46 -08:00
sfc-gh-tclinkenbeard 6c4493166f Add limiting storage queue and durability lag to health metrics 2020-11-12 20:14:41 -08:00
Evan Tschannen 12b07d024f
Merge pull request #3775 from sfc-gh-xwang/fdbtest
add knob MIN_TAG_WRITE_PAGES_RATE for write tag-throttling
2020-09-18 10:40:28 -07:00
Jingyu Zhou ea27e4bd9c
Merge pull request #3772 from yliucode/rename
Rename master proxy as commit proxy
2020-09-16 20:06:50 -07:00
Young Liu cc5bc16bd8 Rename more places from proxy to commit proxy 2020-09-15 22:29:49 -07:00
Trevor Clinkenbeard 3a68c89281
Remove initialisms
Co-authored-by: A.J. Beamon <ajbeamon@users.noreply.github.com>
2020-09-15 16:32:24 -07:00
XiaoxiWang 52bd86ad42 update knob 2020-09-11 20:50:19 +00:00
XiaoxiWang d5fba9a69b add write-tag throttling 2020-09-11 19:10:35 +00:00
XiaoxiWang 195c55df4b add comment 2020-09-11 16:48:21 +00:00
XiaoxiWang 084c69b2ad fix reason serialization bug 2020-09-11 07:21:57 +00:00
Young Liu 35bef73a1c Rename proxy to commit proxy 2020-09-10 17:44:15 -07:00
XiaoxiWang 7660fb3beb report busiest tags in status json 2020-09-04 16:33:59 +00:00
Xiaoxi Wang ec56e1f286 merge with master 2020-09-04 16:11:42 +00:00
Xiaoxi Wang 341feb2b6f fix compare bug 2020-09-04 07:17:35 +00:00
Young Liu 87693cae81 merge master branch and resolve conflicts 2020-09-02 13:44:33 -07:00
Xiaoxi Wang 47893c847b fix rate calculation typo 2020-09-01 07:19:46 +00:00
Young Liu e87327b33b Merge master branch and keep master proxy reporting txn cost estimation to ratekeeper 2020-08-29 12:47:35 -07:00
Xiaoxi Wang b1c206b62a change rate calculation 2020-08-25 18:47:13 +00:00
Young Liu 63b3612ad5 Merge master branch and resolve conflicts 2020-08-24 16:42:31 -07:00
Xiaoxi Wang 4e4fa0fded merge with master 2020-08-24 21:04:53 +00:00
XiaoxiWang 1f134d1534 format 2020-08-21 05:06:13 +00:00
XiaoxiWang 9398a78a3a add busy-read count and busy-write count to status json 2020-08-21 04:50:56 +00:00
Xiaoxi Wang 88cb352e2e rename variables 2020-08-21 00:03:06 +00:00
Xiaoxi Wang 9c709b33d6 scale cost 2020-08-19 19:47:41 +00:00
XiaoxiWang 8a1b9394b8 do not send auto-throttled tags to proxy is autoThrottleEnabled == false 2020-08-19 16:23:11 +00:00
Xiaoxi Wang 599675cba8 modify some details to get better performance 2020-08-19 04:23:23 +00:00
Xiaoxi Wang 69914d4909 defer write throttling until found proper statistics for write saturation 2020-08-18 15:46:02 +00:00
Xiaoxi Wang ffa1973242 move OPERATION_COST_BYTE_FACTOR to CLIENT_KNOB; skip the first call of refreshBusiestTag. 2020-08-14 22:49:20 +00:00
Xiaoxi Wang 548ba06510 change map to deque; code style problem 2020-08-14 18:30:58 +00:00
Xiaoxi Wang 475d4cca72 solve some cr comments 2020-08-14 16:40:16 +00:00
Xiaoxi Wang f3ecf14601 change midShardSize type and other details 2020-08-12 17:49:12 +00:00
Young Liu 16ef2bd3bd Pending commit 2020-08-12 10:34:07 -07:00
Xiaoxi Wang c0b7ac0b7d try to throttle write tag and read tag seperatedly 2020-08-10 23:43:58 +00:00
Xiaoxi Wang cae6f04070 sample on cost instead of bytes 2020-08-10 22:30:06 +00:00
Xiaoxi Wang ba66b1f668 trivial changes 2020-08-06 14:53:26 +00:00
Xiaoxi Wang 13307679c5 use median shard size" 2020-08-05 03:57:25 +00:00
Xiaoxi Wang 484a75dd7b compare read and write tag together 2020-08-04 00:02:41 +00:00
Xiaoxi Wang 52073738c0 fix bugs; change some KNOB values 2020-08-03 22:18:34 +00:00
Xiaoxi Wang 6db7040f17 update DDMetrics periodically 2020-08-03 05:52:38 +00:00
Xiaoxi Wang d1cc87452c merge with master; solve conflicts; solve initialization; 2020-08-02 22:44:07 +00:00
Xiaoxi Wang 0352e8ee0b pick busiest commit tag periodically 2020-08-02 18:38:56 +00:00
Xiaoxi Wang 92c1112c74 consider clear single key 2020-08-01 18:20:13 +00:00
Xiaoxi Wang 4f7dab4951 sample clear op on client 2020-08-01 06:14:52 +00:00
Xiaoxi Wang c3a629588f add client transaction tag sample 2020-07-31 19:08:42 +00:00
Young Liu 30ea639666 Remove debug traces 2020-07-29 07:55:05 -07:00
Young Liu f7b76a92af pass joshua 2020-07-29 07:26:55 -07:00
Xiaoxi Wang 41a3e6c853 add write throttling 2020-07-28 03:49:47 +00:00
Xiaoxi Wang 48a0fb5154 ask DD for shard info 2020-07-25 04:08:12 +00:00
Meng Xu b2a3b4fd83 Merge branch 'master' into mengxu/merge-6.3-PR 2020-07-20 11:34:18 -07:00
Xiaoxi Wang 0df2a8d014 better code style 2020-07-18 01:48:58 +00:00
Xiaoxi Wang 9d0d189cc8 better serialize; TransactionOption::clear patch 2020-07-15 22:39:21 +00:00
Meng Xu 27a21e23bd Add number comment to limitReason_t entries 2020-07-15 10:57:50 -07:00
Xiaoxi Wang eb44ae0e86 finish local shard estimation 2020-07-15 16:08:00 +00:00
Xiaoxi Wang a310faf9d1 solve some code reviews 2020-07-14 17:19:55 +00:00
Xiaoxi Wang c56daf3be7 merge with master 2020-07-14 01:08:56 +00:00
Xiaoxi Wang d512170cd8 add clear cost estimation 2020-07-14 00:18:52 +00: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
Evan Tschannen ced65cd30b finished explicitly versioning everything stored in the database 2020-05-22 17:14:21 -07:00
A.J. Beamon cc4874918a Merge branch 'release-6.3' into tag-throttling-by-priority
# Conflicts:
#	fdbserver/Ratekeeper.actor.cpp
2020-05-20 14:26:35 -07:00
A.J. Beamon 14b23c146f Support throttling and unthrottling tags by priority and their auto/manual state in fdbcli. 2020-05-15 12:47:55 -07:00
A.J. Beamon d3f465fd56
Merge pull request #3102 from mpilman/features/trace-roles
Emit traces regularly about role assignment
2020-05-15 08:12:25 -07:00
A.J. Beamon 3ee4912312
Merge pull request #3152 from ajbeamon/tag-throttling-status-improvements
Add and fix tag throttling status fields
2020-05-14 16:08:05 -07:00
Markus Pilman 2cdcab5aa7 address review comments 2020-05-14 14:54:38 -07:00
Markus Pilman 5230668a76 Pass Ratekeeper ID to all RK traces 2020-05-14 14:17:43 -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
A.J. Beamon 634c988059 Tag throttles reacted poorly to the rate being set to max 2020-05-12 18:09:43 -07:00
A.J. Beamon acf1244317 Fix: ratekeeper was logging the auto throttle count for the manual throttle count 2020-05-12 14:10:40 -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
A.J. Beamon fbf436f45f Various cleanup and knob adjustments. 2020-05-07 09:15:33 -07:00
A.J. Beamon 35d382811f Fix compilation error 2020-05-07 08:59:47 -07:00
A.J. Beamon 66b4920fc3 Fix off-by-one error in auto-throttle limit. Allow updating existing auto-throttle when the limit is reached. 2020-05-05 09:58:00 -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
A.J. Beamon 31cef6075a Do the auto-throttle ramp up in a better place. Only commit manual throttle limit once. Add some asserts. 2020-05-03 19:15:29 -07:00
A.J. Beamon decf3e82b0 Fix various bugs and make sure to cleanup throttles from the database when they expire 2020-05-01 21:36:28 -07:00
A.J. Beamon 3a7a026aae Fix a couple bugs 2020-04-30 22:24:17 -07:00
A.J. Beamon b80225dde0 Initial support for ramping load back up. Fix some logging. Update auto-throttles less frequently. 2020-04-28 15:50:45 -07:00
A.J. Beamon 0ed70accfa Reorganization of throttle storage in ratekeeper to support various auto-throttling related actions 2020-04-28 14:30:37 -07:00
A.J. Beamon a65e97209a Fix bug in flag management. Pass priority into ratekeeper's updateRate and use it when setting autothrottles. 2020-04-27 11:34:12 -07: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 7343c1b333 Logging for throttle changes was moved 2020-04-23 20:51:53 -07:00
A.J. Beamon 35c18ac60a Improvements to expiration. Encode throttles with auto/manual and priority in the key to support throttling the same tag with different values in these parameters. 2020-04-23 20:50:40 -07:00
A.J. Beamon 18f860d9d8 Minor cleanup around expiration on ratekeeper. 2020-04-23 10:42:16 -07:00
A.J. Beamon d2504c08c3 Send throttles at all priorities from RK->MP 2020-04-22 13:47:16 -07:00
A.J. Beamon 434704fbd9 Various bug fixes 2020-04-22 12:28:51 -07:00
A.J. Beamon f1dd0ee298 Protect against a ratekeeper starting up with a clock set in the past (compared to old ratekeeper) extending the duration of throttles excessively. 2020-04-21 16:35:25 -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
A.J. Beamon dfec896438 Enforce a throttle limit. Don't count transaction tags on RK if the proxy has updated us in a while. 2020-04-17 11:48:02 -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 7f3fa00897 Reorganize a bit of code. 2020-04-10 13:53:23 -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 55a0d00ad4 Encoding of tags in the database now supports multiple tags per throttle. Remove throttle prefix search. 2020-04-10 10:12:26 -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 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
A.J. Beamon 2336f073ad Checkpointing a bunch of work on throttles. Rudimentary implementation of auto-throttling. Support for manual throttling via fdbcli. Throttles are stored in the system keyspace. 2020-04-03 15:24:14 -07:00
Evan Tschannen 303df197cf Merge branch 'release-6.2'
# Conflicts:
#	CMakeLists.txt
#	bindings/c/test/mako/mako.c
#	documentation/sphinx/source/release-notes.rst
#	fdbbackup/backup.actor.cpp
#	fdbclient/NativeAPI.actor.cpp
#	fdbclient/NativeAPI.actor.h
#	fdbserver/DataDistributionQueue.actor.cpp
#	fdbserver/Knobs.cpp
#	fdbserver/Knobs.h
#	fdbserver/LogRouter.actor.cpp
#	fdbserver/SkipList.cpp
#	fdbserver/fdbserver.actor.cpp
#	flow/CMakeLists.txt
#	flow/Knobs.cpp
#	flow/Knobs.h
#	flow/flow.vcxproj
#	flow/flow.vcxproj.filters
#	versions.target
2020-03-06 18:22:46 -08:00
Evan Tschannen 1128666840 added additional logging on the log router 2020-03-05 18:17:06 -08:00
Evan Tschannen 96258b9809 Merge branch 'release-6.2'
# Conflicts:
#	documentation/sphinx/source/release-notes.rst
#	fdbcli/fdbcli.actor.cpp
#	fdbclient/ManagementAPI.actor.cpp
#	fdbrpc/FlowTransport.actor.cpp
#	fdbserver/ClusterController.actor.cpp
#	fdbserver/DataDistribution.actor.cpp
#	fdbserver/DataDistribution.actor.h
#	fdbserver/DataDistributionQueue.actor.cpp
#	fdbserver/KeyValueStoreMemory.actor.cpp
#	fdbserver/MasterProxyServer.actor.cpp
#	fdbserver/QuietDatabase.actor.cpp
#	fdbserver/SkipList.cpp
#	fdbserver/StorageMetrics.actor.h
#	fdbserver/TLogServer.actor.cpp
#	fdbserver/fdbserver.actor.cpp
#	fdbserver/storageserver.actor.cpp
#	fdbserver/workloads/KVStoreTest.actor.cpp
#	flow/CMakeLists.txt
#	flow/Knobs.cpp
#	flow/Knobs.h
#	flow/genericactors.actor.cpp
#	flow/serialize.h
2020-02-21 19:09:16 -08:00