Commit Graph

31 Commits

Author SHA1 Message Date
Trevor Clinkenbeard 2596bdd809 Share conflict-range resolver selection in commit proxy 2026-07-22 09:58:58 -07:00
Trevor Clinkenbeard 4a3db78aa2 Rename WorkerInterface coroutine header 2026-07-17 00:58:03 -07:00
Trevor Clinkenbeard 1b86d65785
Merge pull request #13685 from tclinkenbeard-oai/dev/tclinkenbeard/custom-clang-tidy-fixes
Fix issues found by custom `clang-tidy` checks
2026-07-15 00:38:07 -07:00
Trevor Clinkenbeard c0aac84e87 Clarify Joshua probe unit-test intent 2026-07-14 11:40:52 -07:00
Trevor Clinkenbeard 3b17454609 Add focused FoundationDB probe unit tests 2026-07-14 11:32:12 -07:00
Trevor Clinkenbeard 4662fea92f Fix issues found by custom clang-tidy checks 2026-07-12 09:50:35 -07:00
Trevor Clinkenbeard 4e4f25d21b Merge remote-tracking branch 'origin/main' into dev/tclinkenbeard/pr-13287-review-followup
# Conflicts:
#	fdbserver/logsystem/include/fdbserver/logsystem/LogSystem.h
2026-07-08 11:45:47 -07:00
Trevor Clinkenbeard cbb0b5725e Merge remote-tracking branch 'origin/main' into dev/tclinkenbeard/pr-13287-review-followup
# Conflicts:
#	fdbclient/include/fdbclient/FDBTypes.h
#	fdbserver/core/include/fdbserver/core/WorkerInterface.actor.h
#	flow/ProtocolVersion.h.cmake
#	flow/ProtocolVersions.cmake
2026-07-06 15:32:57 -07:00
Trevor Clinkenbeard d4f56a6b48 Remove dead commit batch trigger metric 2026-06-28 02:48:48 -07:00
Trevor Clinkenbeard 3bd2129e5e Add FDB production observability metrics 2026-06-28 02:03:44 -07:00
Trevor Clinkenbeard fe42e6fd79 Enforce clang-tidy braces around long statements 2026-06-22 23:01:11 -07:00
Trevor Clinkenbeard 966d24b1ac Merge remote-tracking branch 'origin/main' into dev/tclinkenbeard/native-fdb-cdc
# Conflicts:
#	fdbserver/core/include/fdbserver/core/WorkerInterface.actor.h
2026-06-16 10:20:16 -07:00
Trevor Clinkenbeard e8a9cc7666 Merge remote-tracking branch 'origin/main' into dev/tclinkenbeard/commit-proxy-transaction-histograms 2026-06-13 10:48:05 -07:00
Michael Stack a58565465d
commitproxy rangelock: skip per-mutation lock check when no locks are held (#13324)
* commitproxy: skip per-mutation lock check when no locks are held

Add anyExclusiveLockHeld_ flag on RangeLock, refreshed in
consumePendingRequest after each take/release, and an early return at
the top of rejectMutationsForReadLockOnRange that bypasses the
per-transaction x per-mutation loop when the flag is false. With the
knob enabled but no exclusive read locks active (the steady state
when no bulkload is running), the commit hot path now skips the entire
scan instead of constructing a KeyRange and walking the KeyRangeMap
for every mutation in every batch.

Add RangeLockFastPath / RangeLockSlowPath counters to ProxyMetrics so
operators can confirm the optimization is firing. Verified with
tests/fast/RangeLocking.toml and tests/fast/RangeLockCycle.toml; both
pass and both counters increment as expected.

* docs: document the no-locks-held fast path and ProxyMetrics counters

Extend documentation/sphinx/source/rangelock.rst with a "Steady-state cost
when no locks are held" subsection describing the anyExclusiveLockHeld_
flag introduced in this PR and the early return in
rejectMutationsForReadLockOnRange.

Also document the two new ProxyMetrics counters (RangeLockFastPath and
RangeLockSlowPath) so operators investigating commit-proxy performance
can find them without grepping the source. The counters are the
production observability hook for the silent-degradation case where the
flag fails to clear after a lock release.

* docs: explain how anyExclusiveLockHeld_ stays consistent across proxies

The previous doc commit described the fast-path flag and its counters
but skipped the correctness argument: the flag is per-proxy, never
directly synchronized, and convergence comes from the txnStateStore
mutation broadcast that already drives coreMap consistency.

A reviewer of the patch (or anyone debugging "are these proxies'
flags actually consistent?") will ask exactly this question. Spell
out the within-batch / across-batch / recovery cases plus the
asymmetric stuck-true vs stuck-false analysis (stuck-true is harmless
extra CPU and observable via RangeLockFastPath; stuck-false would
manifest as missing transaction_rejected_range_locked rejections,
which existing simulation tests already assert against).

* Formatting

* Potential fix for pull request finding

* docs: address Copilot review on rangelock.rst possessive escaping

Use the rST backslash-space escape after inline literals where a
possessive s follows, so Sphinx renders the possessives of "V" and
"consumePendingRequest" without a visible space before the apostrophe.

* docs: explain ENABLE_READ_LOCK_ON_RANGE knob in Knobs.h

Add a trailing comment block on the knob declaration explaining that
despite the name this is a write-exclusion lock (commit proxies reject
writes to a locked range, reads are unaffected). The name reflects
bulkloads perspective rather than describing what the lock blocks.
Mirrors the substantive trailing comments on neighbouring knobs like
MAX_READ_TRANSACTION_LIFE_VERSIONS so the pattern fits in.
2026-06-12 13:11:23 -07:00
Trevor Clinkenbeard 655a120e00 Sample admitted commit transaction sizes 2026-06-11 16:17:45 -07:00
Trevor Clinkenbeard a6b9286939 Add CommitProxy.TransactionSize histogram 2026-06-11 16:06:13 -07:00
Trevor Clinkenbeard ecb82cd453 Merge remote-tracking branch 'origin/main' into dev/tclinkenbeard/native-fdb-cdc 2026-06-03 19:32:31 -07:00
Trevor Clinkenbeard caeba8b37c
Merge pull request #13303 from tclinkenbeard-oai/dev/tclinkenbeard/actorcompiler-include-cleanup
Clean up actor compiler includes
2026-05-29 14:21:00 -07:00
Trevor Clinkenbeard eec3cd49a0 Clean up actor compiler includes 2026-05-29 12:46:35 -07:00
Trevor Clinkenbeard c15b88ff7d Merge remote-tracking branch 'origin/main' into dev/tclinkenbeard/inline-buggify-function
# Conflicts:
#	fdbserver/core/ServerKnobs.cpp
#	fdbserver/tlog/TLogServer.cpp
2026-05-28 07:29:13 -07:00
Trevor Clinkenbeard 9509829902 Add ENABLE_NATIVE_CDC knob 2026-05-27 13:00:28 -07:00
Trevor Clinkenbeard 230af4d065 Preserve native CDC streams across recovery and proxy failover 2026-05-27 05:57:27 -07:00
Trevor Clinkenbeard 158333e123 Add native CDC commit proxy routing 2026-05-27 05:57:26 -07:00
Trevor Clinkenbeard 23b972297b
Merge pull request #13213 from tclinkenbeard-oai/dev/tclinkenbeard/apply-fdb-ast-grep-rules
More AST-grep linting
2026-05-26 14:53:10 -07:00
Trevor Clinkenbeard 091aa15a2f Address clang-tidy warnings 2026-05-24 18:14:26 -07:00
Trevor Clinkenbeard 1bc151d47f Add more clang-tidy checks 2026-05-24 15:15:47 -07:00
Trevor Clinkenbeard b46c58415c Replace BUGGIFY macros with inline function 2026-05-20 14:54:51 -07:00
Trevor Clinkenbeard 73fc36e935 Apply explicit constructor cleanup from ast-grep 2026-05-13 08:38:45 -07:00
Trevor Clinkenbeard 3940a34011 Merge remote-tracking branch 'origin/main' into dev/tclinkenbeard/logsystem-consumer
# Conflicts:
#	fdbserver/commitproxy/CommitProxyServer.cpp
2026-05-11 14:47:53 -07:00
Trevor Clinkenbeard 3c5d435095 Fix formatting 2026-05-07 12:02:45 -07:00
Trevor Clinkenbeard 9cf7ef92d0 Rename CommitProxyServer source to cpp 2026-05-07 11:49:48 -07:00