GH-51471: [C++] Disable simdjson threading in chunker - #51473
Conversation
|
|
|
If you would have time for review, I think this is a good improvement to the chunker @pitrou (or please @ others that might be a good fit to review this) |
pitrou
left a comment
There was a problem hiding this comment.
LGTM, can you rebase/merge so that we get updated CI?
Thank you for the review, and also #51472! I found these while trying to investigate possible improvements we can achieve with #51463. While studying the docs, I noticed that we definitely still lack some familiarity, and a few I merged main into the branch to retrigger CI with all latest changes (in particular including #51472) |
Rationale for this change
Resolves #51471:
When invoking
simdjson'sparse_many, it uses threading to perform its stage 1 parsing on the next batch when while parsing the current batch:https://github.com/simdjson/simdjson/blob/master/doc/parse_many.md?plain=1#L96-L104
In most cases, we do not need to parse any batches after the first one to find delimiters (in fact, we currently would even error, when the first batch does not contain the whole first document). By disabling the parser's threading we can expect performance improvements
What changes are included in this PR?
This disables threading in the parser by setting
parser_.threaded = false;Are these changes tested?
Yes
before (
origin/mainbb83012743):after (
taepper:GH-51471fb56ccb2a1):Are there any user-facing changes?
No
Was AI used for this PR?
PR code and description written by:
Reviewed before submission by:
simdjsonthreading in chunker #51471