Skip to content

Commit c8575c7

Browse files
committed
add workflow
1 parent 0d15c97 commit c8575c7

File tree

4 files changed

+236
-81
lines changed

4 files changed

+236
-81
lines changed
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
name: cqn4sql benchmarks + visualization
2+
3+
on:
4+
push:
5+
branches: [ patrice/cds-test-perfomance ]
6+
workflow_dispatch:
7+
8+
permissions:
9+
contents: read
10+
pages: write
11+
id-token: write
12+
13+
concurrency:
14+
group: "pages"
15+
cancel-in-progress: true
16+
17+
jobs:
18+
build:
19+
runs-on: ubuntu-latest
20+
steps:
21+
- name: Checkout
22+
uses: actions/checkout@v4
23+
with:
24+
fetch-depth: 1
25+
26+
- name: Setup Node
27+
uses: actions/setup-node@v4
28+
with:
29+
node-version: 20
30+
cache: npm
31+
32+
- name: Install dependencies
33+
run: npm ci
34+
35+
# this needs the cds-test PR to be merged first
36+
# - name: Run benchmarks
37+
# run: |
38+
# cd ./db-service/bench/cqn4sql && cds test
39+
40+
- name: Build visualization
41+
run: |
42+
cd ./db-service/bench/cqn4sq
43+
mkdir -p dist
44+
node utils/visualize-benchmarks.js results/cqn4sql-benchmarks.json results/perf-benchmarks.html
45+
cp perf-benchmarks.json dist/
46+
47+
- name: Upload Pages artifact
48+
uses: actions/upload-pages-artifact@v3
49+
with:
50+
path: dist
51+
52+
deploy:
53+
environment:
54+
name: github-pages
55+
url: ${{ steps.deployment.outputs.page_url }}
56+
needs: build
57+
runs-on: ubuntu-latest
58+
steps:
59+
- name: Deploy to GitHub Pages
60+
id: deployment
61+
uses: actions/deploy-pages@v4

db-service/bench/cqn4sql/results/cqn4sql-benchmarks.json

Lines changed: 173 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -517,5 +517,178 @@
517517
"sent": 134677
518518
}
519519
}
520+
},
521+
"0d15c979": {
522+
"date": "2025-08-27T15:47:11.987Z",
523+
"benchmarks": {
524+
"select simple": {
525+
"average": 87808,
526+
"mean": 87808,
527+
"stddev": 288,
528+
"min": 87523,
529+
"max": 88103,
530+
"total": 262013,
531+
"p0_001": 87551,
532+
"p0_01": 87551,
533+
"p0_1": 87551,
534+
"p1": 87551,
535+
"p2_5": 87551,
536+
"p10": 87551,
537+
"p25": 87551,
538+
"p50": 87551,
539+
"p75": 88127,
540+
"p90": 88127,
541+
"p97_5": 88127,
542+
"p99": 88127,
543+
"p99_9": 88127,
544+
"p99_99": 88127,
545+
"p99_999": 88127,
546+
"sent": 262013
547+
},
548+
"expand simple": {
549+
"average": 20184,
550+
"mean": 20184,
551+
"stddev": 144,
552+
"min": 20047,
553+
"max": 20320,
554+
"total": 61287,
555+
"p0_001": 20047,
556+
"p0_01": 20047,
557+
"p0_1": 20047,
558+
"p1": 20047,
559+
"p2_5": 20047,
560+
"p10": 20047,
561+
"p25": 20047,
562+
"p50": 20047,
563+
"p75": 20335,
564+
"p90": 20335,
565+
"p97_5": 20335,
566+
"p99": 20335,
567+
"p99_9": 20335,
568+
"p99_99": 20335,
569+
"p99_999": 20335,
570+
"sent": 61287
571+
},
572+
"expand recursive (depth 3)": {
573+
"average": 8088,
574+
"mean": 8088,
575+
"stddev": 22,
576+
"min": 8065,
577+
"max": 8111,
578+
"total": 24410,
579+
"p0_001": 8067,
580+
"p0_01": 8067,
581+
"p0_1": 8067,
582+
"p1": 8067,
583+
"p2_5": 8067,
584+
"p10": 8067,
585+
"p25": 8067,
586+
"p50": 8067,
587+
"p75": 8111,
588+
"p90": 8111,
589+
"p97_5": 8111,
590+
"p99": 8111,
591+
"p99_9": 8111,
592+
"p99_99": 8111,
593+
"p99_999": 8111,
594+
"sent": 24410
595+
},
596+
"exists simple": {
597+
"average": 59616,
598+
"mean": 59616,
599+
"stddev": 144,
600+
"min": 59475,
601+
"max": 59758,
602+
"total": 178296,
603+
"p0_001": 59487,
604+
"p0_01": 59487,
605+
"p0_1": 59487,
606+
"p1": 59487,
607+
"p2_5": 59487,
608+
"p10": 59487,
609+
"p25": 59487,
610+
"p50": 59487,
611+
"p75": 59775,
612+
"p90": 59775,
613+
"p97_5": 59775,
614+
"p99": 59775,
615+
"p99_9": 59775,
616+
"p99_99": 59775,
617+
"p99_999": 59775,
618+
"sent": 178296
619+
},
620+
"exists recursive (depth 3)": {
621+
"average": 45376,
622+
"mean": 45376,
623+
"stddev": 528,
624+
"min": 44854,
625+
"max": 45917,
626+
"total": 136505,
627+
"p0_001": 44863,
628+
"p0_01": 44863,
629+
"p0_1": 44863,
630+
"p1": 44863,
631+
"p2_5": 44863,
632+
"p10": 44863,
633+
"p25": 44863,
634+
"p50": 44863,
635+
"p75": 45919,
636+
"p90": 45919,
637+
"p97_5": 45919,
638+
"p99": 45919,
639+
"p99_9": 45919,
640+
"p99_99": 45919,
641+
"p99_999": 45919,
642+
"sent": 136505
643+
},
644+
"assoc2join simple": {
645+
"average": 52080,
646+
"mean": 52080,
647+
"stddev": 960,
648+
"min": 51120,
649+
"max": 53037,
650+
"total": 158696,
651+
"p0_001": 51135,
652+
"p0_01": 51135,
653+
"p0_1": 51135,
654+
"p1": 51135,
655+
"p2_5": 51135,
656+
"p10": 51135,
657+
"p25": 51135,
658+
"p50": 51135,
659+
"p75": 53055,
660+
"p90": 53055,
661+
"p97_5": 53055,
662+
"p99": 53055,
663+
"p99_9": 53055,
664+
"p99_99": 53055,
665+
"p99_999": 53055,
666+
"sent": 158696
667+
},
668+
"assoc2join recursive (depth 3)": {
669+
"average": 45984,
670+
"mean": 45984,
671+
"stddev": 240,
672+
"min": 45749,
673+
"max": 46210,
674+
"total": 136546,
675+
"p0_001": 45759,
676+
"p0_01": 45759,
677+
"p0_1": 45759,
678+
"p1": 45759,
679+
"p2_5": 45759,
680+
"p10": 45759,
681+
"p25": 45759,
682+
"p50": 45759,
683+
"p75": 46239,
684+
"p90": 46239,
685+
"p97_5": 46239,
686+
"p99": 46239,
687+
"p99_9": 46239,
688+
"p99_99": 46239,
689+
"p99_999": 46239,
690+
"sent": 136546
691+
}
692+
}
520693
}
521694
}

db-service/bench/cqn4sql/results/perf-benchmarks.html

Lines changed: 0 additions & 79 deletions
This file was deleted.

db-service/bench/cqn4sql/utils/visualize-benchmarks.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ const path = require('path')
66

77
const dumpPath = process.argv[2] || 'perf-benchmarks.json'
88
const outPath = process.argv[3] || 'perf-benchmarks.html'
9-
const metric = process.argv[4] || 'average' // requests[metric], e.g. average | mean | p50
9+
const metric = process.argv[4] || 'mean'
1010

1111
if (!fs.existsSync(dumpPath)) {
1212
console.error(`❌ Cannot find ${dumpPath}`)
@@ -130,4 +130,4 @@ const html = `<!doctype html>
130130
</html>`
131131

132132
fs.writeFileSync(outPath, html, 'utf8')
133-
console.log(`✅ Wrote \${outPath} (\${series.length} series, \${entries.length} commits) using requests.\${metric}\``)
133+
console.log(`✅ Wrote ${outPath} (${series.length} series, ${entries.length} commits) using requests.${metric}\``)

0 commit comments

Comments
 (0)