Commit Graph

175 Commits

Author SHA1 Message Date
Syed Paymaan Raza
c146ee0869 [fdbserver] Use STL contains method and std::find for containment checks (#11702) 2024-10-15 11:40:02 -07:00
Syed Paymaan Raza
c3e7542cda Update end year in copyright header 2024-08-02 09:40:11 -07:00
Jingyu Zhou
3a3ee247ab Fix Wunused-but-set-variable warnings 2024-07-17 13:09:32 -07:00
Dan Lambright
4bda00ab9c use unique pointer (#11408)
Co-authored-by: Dan Lambright <hlambright@apple.com>
2024-05-20 18:43:18 -04:00
hao fu
6b782c10f6 Fix globalconfig refresh hang issue
CC sets a version to int_max in ClientDBInfo indicating a refresh, however,
proxy server would reject this version for the error of future_version.

This change fixes this issue by not sending int_max, instead maintaining a
lastKnown in memory and send it to grvproxy to get latest globalconfig.

this change also fixes some java tests that were used to test the fix
2024-05-14 15:40:03 -07:00
Dan Lambright
cc6948cec7 Only emit version vector counters when enabled. (#11385) 2024-05-14 08:47:53 -07:00
A.J. Beamon
ead6c37e4a Merge pull request #10662 from sfc-gh-tclinkenbeard/main-fix-grv-queue-leak
Fix GRV queue leak
2023-09-01 09:45:49 -07:00
Evan Tschannen
6752a99b0c fix: when requests are dropped from the queue the txnRequestOut becomes inconsistent with txnRequestIn 2023-08-02 09:07:07 -07:00
sfc-gh-tclinkenbeard
e6627bd2e3 Fix bug where tagThrottler changes transactions' priorities 2023-07-22 02:26:02 -07:00
sfc-gh-tclinkenbeard
b00aed4f1f Add tag throttler queue stats to GrvProxyStats 2023-07-22 01:31:29 -07:00
sfc-gh-tclinkenbeard
efa46c9e45 Delay updating GrvProxyStats for tagged transactions 2023-07-22 01:25:09 -07:00
sfc-gh-tclinkenbeard
b1c44dd86e Delay reporting tagged GRV request until it's released
Without this change, some eventually rejected transactions would be
prematurely reported to the ratekeeper as having started.
2023-07-22 00:59:15 -07:00
sfc-gh-tclinkenbeard
6e86f94cb9 Decouple token bucket knobs for different types of throttlers 2023-06-28 01:27:19 -07:00
sfc-gh-tclinkenbeard
09ad864eb5 Merge remote-tracking branch 'origin/main' into expose-tag-throttled-duration 2023-02-08 11:25:14 -08:00
Chunhao Xu
b9e00d03df fix on GRV Proxy converts broken_promise errors to master_failed or tlog_failed 2023-01-27 15:19:44 -08:00
Chunhao Xu
f1bf983c6f GRV Proxy converts broken_promise errors to master_failed or tlog_failed 2023-01-27 10:23:13 -08:00
sfc-gh-tclinkenbeard
0f14647bbf Merge remote-tracking branch 'origin/main' into expose-tag-throttled-duration 2023-01-05 08:10:49 -08:00
FoundationDB CI
86d6106dc1 format source code after switch to clang 15 2022-12-08 17:26:45 +00:00
sfc-gh-tclinkenbeard
4b6098931c Merge remote-tracking branch 'origin/main' into expose-tag-throttled-duration 2022-12-04 08:40:04 -08:00
sfc-gh-tclinkenbeard
b8fd56ec86 Remove duplicate PROXY_MAX_TAG_THROTTLE_DURATION server knob 2022-11-28 09:55:28 -08:00
sfc-gh-tclinkenbeard
3c97f43138 Change Histogram::Unit::microseconds to milliseconds 2022-11-21 08:03:56 -08:00
Sam Gwydir
23706c957b Use DDSketch for Sample Data. 2022-11-12 13:45:46 -08:00
Jingyu Zhou
2361acbe22 Change SevWarn to SevInfo for injected errors 2022-11-10 12:10:00 -08:00
sfc-gh-tclinkenbeard
64733d2e39 s/GrvProxyTransactionTagThrottler/GrvProxyTagThrottler 2022-11-02 07:35:05 -07:00
sfc-gh-tclinkenbeard
36731efe1d Apply clang-format 2022-11-01 12:53:15 -07:00
sfc-gh-tclinkenbeard
047578b3d9 Merge remote-tracking branch 'origin/main' into debug 2022-11-01 12:05:45 -07:00
sfc-gh-tclinkenbeard
5fd8d05810 Make PROXY_MAX_TAG_THROTTLE_DURATION a server knob 2022-11-01 11:00:45 -07:00
sfc-gh-tclinkenbeard
736cf4a22f Add GrvProxyTransactionTagThrottler::maxThrottleDuration field 2022-11-01 10:44:32 -07:00
sfc-gh-tclinkenbeard
6ae0aac153 Merge remote-tracking branch 'origin/main' into add-tag-throttling-latency-bands 2022-10-27 14:07:51 -07:00
sfc-gh-tclinkenbeard
08251329a9 Update tag throttling latency bands in GrvProxyData::updateLatencyBandConfig 2022-10-26 10:48:51 -07:00
Marian Dvorsky
3c5d3f7a94 Fix SpanContext for GP:getLiveCommittedVersion (#8565)
* Fix SpanContext for GP:getLiveCommittedVersion
2022-10-26 16:29:28 +02:00
sfc-gh-tclinkenbeard
8766809cee Add count parameter to LatencyBands::addMeasurement 2022-10-25 17:10:59 -07:00
sfc-gh-tclinkenbeard
74212eeacf Encapsulate CounterCollection 2022-10-25 10:17:15 -07:00
sfc-gh-tclinkenbeard
b90722baa6 Add comment for GrvProxyStats latency bands and samples 2022-10-14 15:58:15 -07:00
sfc-gh-tclinkenbeard
6f01d97006 Subtract proxyTagThrottleDuration from measured GRV latencies 2022-10-12 14:41:32 -07:00
sfc-gh-tclinkenbeard
f1cb4e40f5 Avoid adding untagged requests to GrvProxyTransactionTagThrottler 2022-10-10 22:10:08 -07:00
sfc-gh-tclinkenbeard
24a0dd9f17 Change GrvProxy tag throttling algorithm.
The new algorithm assumes there is only one tag per request,
so queues are partitioned by tag. This is a more efficient approach than
the old algorithm.
2022-10-10 22:10:08 -07:00
sfc-gh-tclinkenbeard
bbf69b2d0a Rename TagQueue::runEpoch to TagQueue::releaseTransactions 2022-10-10 22:10:08 -07:00
sfc-gh-tclinkenbeard
31e8fb0490 Rename epoch to release window in GrvTransactionRateInfo
The term "epoch" was used in too many places
2022-10-10 22:10:08 -07:00
sfc-gh-tclinkenbeard
34857bd2bf Remove outSystemPriority parameter from TagQueue::runEpoch 2022-10-10 22:10:08 -07:00
sfc-gh-tclinkenbeard
e313edbb85 Add proxyTagThrottledDuration field to GetReadVersion[Request|Reply] 2022-10-10 22:10:08 -07:00
sfc-gh-tclinkenbeard
2684464cc6 Use TagQueue in GRV proxy when ENFORCE_TAG_THROTTLING_ON_PROXIES is true 2022-10-10 22:10:08 -07:00
sfc-gh-tclinkenbeard
4c973c11ad Modularize and comment GrvTransactionRateInfo 2022-10-10 22:10:05 -07:00
A.J. Beamon
4fd64630e8 Convert literal string ref instances to use _sr suffix 2022-09-19 11:35:58 -07:00
sfc-gh-tclinkenbeard
82adc1e856 Make g_simulator a pointer 2022-09-15 09:00:33 -07:00
Markus Pilman
eb16947860 Merge pull request #7844 from jzhou77/grv-error
Buggify GRV proxy to return errors and fix bugs found
2022-08-15 13:59:21 -06:00
Evan Tschannen
a9d3c9f9b3 Added throttling when a blob worker falls behind (#7751)
* throttle the cluster when blob workers fall behind

* do not throttle on blob workers if they are not enabled

* remove an unnecessary actor

* fixed a compile error

* fetch blob worker metrics at the same interval as the rate is updated, avoid fetching the complete blob worker list too frequently

* fixed another compilation bug

* added a 5 second delay before bw throttling to prevent false positives caused by the 100e6 version jump during recovery. Lower the throttling thresholds to react much quicker to bw lag.

* fixed a number of problems

* changed the minBlobVersionRequest to look at storage server versions since this will be a lot more efficient

* fix: do not let desired go backwards

* fix: track the version of notAtLatest changefeeds for throttling

* ratekeeper now throttled blob workers by estimating the transaction per second throughput of the blob workers

* added metrics for blob worker change feeds

* added a knob to disable bw throttling

* fixed the transaction options in blob manager
2022-08-12 13:15:56 -07:00
Jingyu Zhou
a32822a51d Add fault injection to GRV proxy to return error response
This turns out to fail a lot of tests that we need to fix.
2022-08-12 11:13:32 -07:00
Xiaoge Su
0326d53965 Split proxy_memory_limit_exceeded to commit/grv specific exceptions
Currently GRV is reporting proxy_memory_limit_exceeded error which has
error message claiming Commit proxy failing. This split should remove
such confusion.
2022-08-12 00:45:57 -07:00
sfc-gh-tclinkenbeard
1bd47a07b2 Add ENFORCE_TAG_THROTTLING_ON_PROXIES knob 2022-08-05 00:40:10 -07:00