Uh oh!
There was an error while loading. Please reload this page.
🍒 11649 - Improve performance of regexps in IAST and query obfuscator - #11710
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit:a004f21de6
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Uh oh!
There was an error while loading. Please reload this page.
Debugger benchmarksParameters
See matching parameters
SummaryFound 0 performance improvements and 0 performance regressions! Performance is the same for 9 metrics, 6 unstable metrics. See unchanged results
Request duration reports for reportsgantt
title reports - request duration [CI 0.99] : candidate=None, baseline=None
dateFormat X
axisFormat %s
section baseline
noprobe (348.695 µs) : 297, 400
. : milestone, 349,
basic (300.378 µs) : 293, 308
. : milestone, 300,
loop (8.99 ms) : 8984, 8996
. : milestone, 8990,
section candidate
noprobe (329.055 µs) : 305, 353
. : milestone, 329,
basic (296.782 µs) : 290, 303
. : milestone, 297,
loop (8.995 ms) : 8990, 9000
. : milestone, 8995,
|
Migrate the IAST evidence-redaction regexps to RE2/J for linear-time matching. RE2/J has no back-references, so the SQL tokenizer is reworked to find Postgres dollar-quoted literals via a precomputed tag index (binary search) and to enumerate Oracle q'...' delimiters explicitly instead of relying on a back-reference. Configured redaction patterns that are valid under java.util.regex but unsupported by RE2/J fall back to the defaults instead of failing to compile. Replace the query obfuscator's `while (matcher.find())` + per-match `Strings.replace` loop (O(N*Q)) with a single appendReplacement / appendTail pass (O(Q)). Add JUnit 5 tests for the tokenizers and the obfuscator, a tokenizer JMH benchmark, and migrate SensitiveHandlerTest from Groovy to JUnit 5. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> (cherry picked from commit 92ebc2a)
a004f21 to
3d95b09Compare
PerfectSlayer
left a comment
There was a problem hiding this comment.
Re-applying the original approval to the backport PR.
7ed9344
into
release/v1.63.xUh oh!
There was an error while loading. Please reload this page.
Backport #11649 to release/v1.63.x