Skip to content

Pre-compiled regexp optimization #7110

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Dec 1, 2022
Merged

Conversation

baum
Copy link
Contributor

@baum baum commented Nov 24, 2022

Pre-compiled regexp optimization

Improve performance by precompiling regular expressions that are used repeatedly.

COSBench

Op-Type Op-Count Byte-Count Avg-ResTime Avg-ProcTime Throughput Bandwidth Succ-Ratio
BASELINE op1: read 294.63 kops 2.95 GB 232.11 ms 232.11 ms 327.42 op/s 3.27 MB/S 100%
PR op1: read 339.79 kops 3.4 GB 201.28 ms 201.28 ms 377.58 op/s 3.78 MB/S 100%

https://bugzilla.redhat.com/show_bug.cgi?id=2106742

Signed-off-by: Alexander Indenbaum [email protected]

@baum baum force-pushed the precompiled_regexp branch 2 times, most recently from 28526d1 to e01b7f0 Compare November 24, 2022 15:54
@guymguym
Copy link
Member

@baum can you also write what is the op size in the benchmarks you made above? and what is the backing store/namespace you used. thanks

@baum
Copy link
Contributor Author

baum commented Nov 24, 2022

@guymguym the test is performed on RGW backing store, see https://bugzilla.redhat.com/show_bug.cgi?id=2106742

COSBench workstage definition

        <workstage name="randread" closuredelay="0" config="">
            <auth type="none"/>
            <storage type="s3" config="accesskey=XXXXX;secretkey=YYYYY;endpoint=http://s3-openshift-storage.apps.bm.example.com;path_style_access=true"/>
            <work name="randread" type="normal" workers="76"
                interval="5" division="object" runtime="900" rampup="0"
                rampdown="0" afr="200000" totalOps="0" totalBytes="0" config="">
                <auth type="none"/>
                <operation type="read" ratio="100" division="object"
                    config="cprefix=tccmx7n2nq6gmrgz5x92;containers=u(1,100);objects=u(1,1000);hashCheck=true" id="op1"/>
            </work>
        </workstage>

@dannyzaken
Copy link
Member

@baum, good change. LGTM
can you please update the description? add some explanations on what was done and what is the purpose of it.

@baum baum force-pushed the precompiled_regexp branch 2 times, most recently from fadefdb to 3171ee4 Compare November 29, 2022 17:58
Baseline COSBENCH

Op-Type	Op-Count	Byte-Count	Avg-ResTime	Avg-ProcTime	Throughput	Bandwidth	Succ-Ratio
op1: read	294.63 kops	2.95 GB	232.11 ms	232.11 ms	327.42 op/s	3.27 MB/S	100%

PR COSBENCH

Op-Type	Op-Count	Byte-Count	Avg-ResTime	Avg-ProcTime	Throughput	Bandwidth	Succ-Ratio
op1: read	339.79 kops	3.4 GB	201.28 ms	201.28 ms	377.58 op/s	3.78 MB/S	100%

Signed-off-by: Alexander Indenbaum <[email protected]>
@baum baum force-pushed the precompiled_regexp branch from 3171ee4 to c3393dc Compare November 30, 2022 17:51
@baum baum merged commit 96bd6a0 into noobaa:master Dec 1, 2022
@guymguym
Copy link
Member

guymguym commented Dec 1, 2022

@baum that read stage doesn't say the size - I think this is a result of the previous stages where it create objects by some size distribution. But if I divide the byte-count by the ops-count and get an average of 10 KB - sounds about right?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants