Skip to content

feat: add worker lifecycle SQL hooks - #24

Merged
sanikolaev merged 4 commits into
mainfrom
sql-hooks
Aug 18, 2026
Merged

feat: add worker lifecycle SQL hooks#24
sanikolaev merged 4 commits into
mainfrom
sql-hooks

Conversation

@sanikolaev

Copy link
Copy Markdown
Collaborator

Run connection-scoped setup and ordered concurrent finalization SQL around benchmark workloads. Preserve child exit statuses, support multiline cached INSERT templates, and regenerate zero-byte caches in place.

Run connection-scoped setup and ordered concurrent finalization SQL around benchmark workloads. Preserve child exit statuses, support multiline cached INSERT templates, and regenerate zero-byte caches in place.
@github-actions

Copy link
Copy Markdown

clt-insert

👎 CLT tests in test/clt-tests/basic/
✅ OK: 2
❌ Failed: 4
⏳ Duration: 54s
👉 Check Action Results for commit 7717c77
Failed tests:

test/clt-tests/basic/worker_lifecycle_order.rec
––– input –––
searchd > /dev/null
––– output –––
––– input –––
sleep 3
––– output –––
––– input –––
cd /manticore-load
––– output –––
––– input –––
./manticore-load --drop --quiet --json --threads=1 --total=1 --init="CREATE TABLE worker_lifecycle_order(value int)" --worker-init="BEGIN; INSERT INTO worker_lifecycle_order(id,value) VALUES(1,10)" --worker-finalize="INSERT INTO worker_lifecycle_order(id,value) VALUES(3,30); COMMIT" --load="INSERT INTO worker_lifecycle_order(id,value) VALUES(2,20)"
––– output –––
{
"threads": 1,
"batch_size": 1,
"time": "00:00",
"total_operations": 1,
"operations_per_second": #!/\d+/!#,
"qps": {
"avg": 0,
"p99": 0,
"p95": 0,
"p5": 0,
"p1": 0
},
"latency": {
"avg": #!/\d+(\.\d+)?/!#,
"p50": #!/\d+(\.\d+)?/!#,
"p95": #!/\d+(\.\d+)?/!#,
"p99": #!/\d+(\.\d+)?/!#
}
}
––– input –––
mysql -h0 -P9306 -e "SELECT id,value FROM worker_lifecycle_order WHERE id=1; SELECT id,value FROM worker_lifecycle_order WHERE id=2; SELECT id,value FROM worker_lifecycle_order WHERE id=3"
––– output –––
- id	value
+ +------+-------+
- 1	10
+ | id   | value |
- id	value
+ +------+-------+
- 2	20
+ |    1 |    10 |
- id	value
+ +------+-------+
- 3	30
+ +------+-------+
+ | id   | value |
+ +------+-------+
+ |    2 |    20 |
+ +------+-------+
+ +------+-------+
+ | id   | value |
+ +------+-------+
+ |    3 |    30 |
+ +------+-------+
––– input –––
./manticore-load --drop --quiet --json --threads=4 --total=4 --init="CREATE TABLE worker_lifecycle_parallel(value int)" --worker-init="BEGIN" --worker-finalize="COMMIT" --load="INSERT INTO worker_lifecycle_parallel(id,value) VALUES(<increment>,10)"
––– output –––
{
"threads": 4,
"batch_size": 1,
"time": "00:00",
"total_operations": 4,
"operations_per_second": #!/\d+/!#,
"qps": {
"avg": 0,
"p99": 0,
"p95": 0,
"p5": 0,
"p1": 0
},
"latency": {
"avg": #!/\d+(\.\d+)?/!#,
"p50": #!/\d+(\.\d+)?/!#,
"p95": #!/\d+(\.\d+)?/!#,
"p99": #!/\d+(\.\d+)?/!#
}
}
––– input –––
mysql -h0 -P9306 -N -e "SELECT COUNT(*),MIN(value),MAX(value) FROM worker_lifecycle_parallel"
––– output –––
- 4\t10\t10
+ +------+------+------+
+ |    4 |   10 |   10 |
+ +------+------+------+
––– input –––
./manticore-load --drop --threads=4 --batch-size=2 --total=8 --init="CREATE TABLE worker_lifecycle_failure(value int)" --worker-init="BEGIN" --worker-finalize="INVALID FINALIZER" --load="INSERT INTO worker_lifecycle_failure(id,value) VALUES(<increment>,10)" > /dev/null; echo $?; mysql -h0 -P9306 -N -e "SELECT COUNT(*) FROM worker_lifecycle_failure"
––– output –––
1
- 0
+ +------+
+ |    0 |
+ +------+
––– input –––
)"
––– output –––
- {
+ bash: syntax error near unexpected token `)'
- "threads": 1,
- "batch_size": 2,
- "time": "00:00",
- "total_operations": 4,
- "operations_per_second": #!/\d+/!#,
- "qps": {
- "avg": 0,
- "p99": 0,
- "p95": 0,
- "p5": 0,
- "p1": 0
- },
- "latency": {
- "avg": #!/\d+(\.\d+)?/!#,
- "p50": #!/\d+(\.\d+)?/!#,
- "p95": #!/\d+(\.\d+)?/!#,
- "p99": #!/\d+(\.\d+)?/!#
- }
- }
––– input –––
mysql -h0 -P9306 -N -e "SELECT COUNT(*) FROM multiline_insert"
––– output –––
- 4
+ ERROR 1064 (42000) at line 1: unknown local table(s) 'multiline_insert' in search request
––– input –––
cache=$(./manticore-load --verbose --threads=1 --batch-size=2 --total=5 --init="CREATE TABLE empty_cache_regression(value int)" --load="INSERT INTO empty_cache_regression(id,value) VALUES(<increment>,<int/1/100>)" 2>&1 | sed -n 's/.*Generating new data cache \(\/tmp\/manticore_load_[a-f0-9]*\).*/\1/p' | head -1); test -n "$cache"; : > "$cache"; inode_before=$(stat -c %i "$cache"); ./manticore-load --drop --quiet --json --threads=1 --batch-size=2 --total=5 --cache-from-disk --init="CREATE TABLE empty_cache_regression(value int)" --load="INSERT INTO empty_cache_regression(id,value) VALUES(<increment>,<int/1/100>)"; inode_after=$(stat -c %i "$cache"); test "$inode_before" = "$inode_after"; test -s "$cache"; mysql -h0 -P9306 -N -e "SELECT COUNT(*) FROM empty_cache_regression"
––– output –––
{
"threads": 1,
"batch_size": 2,
"time": "00:00",
"total_operations": 6,
"operations_per_second": #!/\d+/!#,
"qps": {
"avg": 0,
"p99": 0,
"p95": 0,
"p5": 0,
"p1": 0
},
"latency": {
"avg": #!/\d+(\.\d+)?/!#,
"p50": #!/\d+(\.\d+)?/!#,
"p95": #!/\d+(\.\d+)?/!#,
"p99": #!/\d+(\.\d+)?/!#
}
}
- 5
+ +------+
-
+ |    5 |
+ +------+
+
test/clt-tests/basic/worker_lifecycle.rec
––– input –––
searchd > /dev/null
––– output –––
––– input –––
sleep 3
––– output –––
––– input –––
cd /manticore-load
––– output –––
––– input –––
./manticore-load --drop --quiet --json --threads=1 --batch-size=2 --total=4 --init="CREATE TABLE worker_lifecycle(value int)" --worker-init="BEGIN" --worker-finalize="COMMIT" --load="INSERT INTO worker_lifecycle(id,value) VALUES(<increment>,<int/1/100>)"
––– output –––
{
"threads": 1,
"batch_size": 2,
"time": "00:00",
"total_operations": 4,
"operations_per_second": #!/\d+/!#,
"qps": {
"avg": 0,
"p99": 0,
"p95": 0,
"p5": 0,
"p1": 0
},
"latency": {
"avg": #!/\d+(\.\d+)?/!#,
"p50": #!/\d+(\.\d+)?/!#,
"p95": #!/\d+(\.\d+)?/!#,
"p99": #!/\d+(\.\d+)?/!#
}
}
––– input –––
mysql -h0 -P9306 -e "SELECT COUNT(*) FROM worker_lifecycle; SHOW TABLE worker_lifecycle STATUS LIKE 'ram_chunk_segments_count'"
––– output –––
- COUNT(*)
+ +----------+
- 4
+ | count(*) |
- Variable_name	Value
+ +----------+
- ram_chunk_segments_count	2
+ |        4 |
-
+ +----------+
+ +--------------------------+-------+
+ | Variable_name            | Value |
+ +--------------------------+-------+
+ | ram_chunk_segments_count | 1     |
+ +--------------------------+-------+
+
test/clt-tests/basic/insert_two.rec
––– input –––
searchd > /dev/null
––– output –––
––– input –––
sleep 3
––– output –––
––– input –––
cd /manticore-load
––– output –––
––– input –––
PROCESS_1_DELAY=0.5 PROGRESS_DELAY=0.5 ./manticore-load --drop --init="create table t" --total=10 --load="insert into t values(<increment>)" --threads=1 --delay=1 --together --drop --init="create table t2" --total=10 --load="insert into t2 values(<increment>)" --threads=1 --delay=0.5
––– output –––
======================================================================================
Process 2: Running with threads=1, batch-size=1
Process 2: Dropping table: DROP TABLE IF EXISTS t2
Process 2: Executing init command: create table t2
Process 2: Generating new data cache /tmp/manticore_load_#!/[a-z0-9]+/!# ... 100%
======================================================================================
Process 1: Running with threads=1, batch-size=1
Process 1: Dropping table: DROP TABLE IF EXISTS t
Process 1: Executing init command: create table t
Process 1: Generating new data cache /tmp/manticore_load_#!/[a-z0-9]+/!# ... 100%
-------------------------------------------------------------------------------------------------------------------------------------------
Time      Elapsed   1:Progress  2:Progress  1:QPS    2:QPS    1:DPS    2:DPS    CPU     Workers    Chunks    Merging   Disk        Inserted
-------------------------------------------------------------------------------------------------------------------------------------------
%{TIME}  #!/\d+/!#ms     -           -           -        -        -        -        N/A     -          0                   0B          0
- %{TIME}  1.#!/\d/!#s      #!/\d/!#0%         #!/\d/!#0%         #!/\d/!#        #!/\d/!#        #!/\d/!#        #!/\d/!#        #!/(\d+%|N\/A)/!##!/\s+/!##!/\d/!#          0                   930B        6
+ 14:13:26  1.5s      20%         30%         2        2        2        1        N/A     1          0                   978B        6
- %{TIME}  2.#!/\d/!#s      #!/\d/!#0%         #!/\d/!#0%         #!/\d/!#        #!/\d/!#        #!/\d/!#        #!/\d/!#        #!/(\d+%|N\/A)/!##!/\s+/!##!/\d/!#          0                   930B        9
+ 14:13:27  2.5s      30%         50%         1        2        1        2        0%      1          0                   978B        9
- %{TIME}  3.#!/\d/!#s      #!/\d/!#0%         #!/\d/!#0%         #!/\d/!#        #!/\d/!#        #!/\d/!#        #!/\d/!#        #!/(\d+%|N\/A)/!##!/\s+/!##!/\d/!#          0                   930B        12
+ 14:13:28  3.5s      30%         70%         1        2        1        2        0%      1          0                   978B        12
--------------------------------------------------------------------------------------
Process 2 final statistics:
Init command:     create table t2
Load commands:
- insert into t2 values(<increment>)
Total time:       #!/(4|5)\.\d/!#s
Total queries:    10
Threads:          1
Batch size:       1
Total docs:       10
Docs per sec avg: 2
QPS avg:          2
QPS 1p:           2
QPS 5p:           2
QPS 95p:          #!/\d/!#
QPS 99p:          #!/\d/!#
Latency avg:      50#!/\d/!#.#!/\d/!# ms
Latency 50p:      505.#!/\d/!# ms
Latency 95p:      505.#!/\d/!# ms
Latency 99p:      505.#!/\d/!# ms
--------------------------------------------------------------------------------------
- %{TIME}  4.#!/\d/!#s      #!/\d/!#0%         -           #!/\d/!#        -        #!/\d/!#        -        #!/(\d+%|N\/A)/!##!/\s+/!#1          0                   465B        5
+ 14:13:29  4.5s      50%         -           1        -        1        -        1%      1          0                   489B        5
- %{TIME}  5.#!/\d/!#s      #!/\d/!#0%         -           #!/\d/!#        -        #!/\d/!#        -        #!/(\d+%|N\/A)/!##!/\s+/!#1          0                   465B        6
+ 14:13:30  5.5s      60%         -           1        -        1        -        0%      1          0                   489B        6
- %{TIME}  6.#!/\d/!#s      #!/\d/!#0%         -           #!/\d/!#        -        #!/\d/!#        -        #!/(\d+%|N\/A)/!##!/\s+/!#1          0                   465B        7
+ 14:13:31  6.5s      70%         -           1        -        1        -        1%      1          0                   489B        7
- %{TIME}  7.#!/\d/!#s      #!/\d/!#0%         -           #!/\d/!#        -        #!/\d/!#        -        #!/(\d+%|N\/A)/!##!/\s+/!#1          0                   465B        8
+ 14:13:32  7.5s      70%         -           1        -        1        -        0%      1          0                   489B        8
- %{TIME}  8.#!/\d/!#s      #!/\d/!#0%         -           #!/\d/!#        -        #!/\d/!#        -        #!/(\d+%|N\/A)/!##!/\s+/!#1          0                   465B        9
+ 14:13:33  8.5s      90%         -           1        -        1        -        0%      1          0                   489B        9
--------------------------------------------------------------------------------------
Process 1 final statistics:
Init command:     create table t
Load commands:
- insert into t values(<increment>)
Total time:       9.#!/\d/!#s
Total queries:    10
Threads:          1
Batch size:       1
Total docs:       10
Docs per sec avg: 1
QPS avg:          1
QPS 1p:           1
QPS 5p:           1
QPS 95p:          #!/\d/!#
QPS 99p:          #!/\d/!#
Latency avg:      100#!/\d/!#.#!/\d/!# ms
Latency 50p:      1050.#!/\d/!# ms
Latency 95p:      1050.#!/\d/!# ms
Latency 99p:      1050.#!/\d/!# ms
--------------------------------------------------------------------------------------
test/clt-tests/basic/insert_basic.rec
––– input –––
searchd > /dev/null
––– output –––
––– input –––
sleep 3
––– output –––
––– input –––
cd /manticore-load
––– output –––
––– input –––
PROCESS_1_DELAY=0.5 PROGRESS_DELAY=0.5 ./manticore-load --drop --init="create table t" --total=10 --load="insert into t values(<increment>)" --threads=1 --delay=1
––– output –––
======================================================================================
Process 1: Running with threads=1, batch-size=1
Process 1: Dropping table: DROP TABLE IF EXISTS t
Process 1: Executing init command: create table t
Process 1: Generating new data cache /tmp/manticore_load_#!/[a-z0-9]+/!# ... 100%
-------------------------------------------------------------------------------------------------------------
Time      Elapsed   Progress    QPS      DPS      CPU     Workers    Chunks    Merging   Disk        Inserted
-------------------------------------------------------------------------------------------------------------
%{TIME}  5#!/\d\d/!#ms     -           -        -        N/A     -          0                   0B          0
- %{TIME}  1.#!/\d/!#s      #!/\d/!#0%         #!/\d/!#        #!/\d/!#        N/A     1          0                   465B        2
+ 14:13:13  1.5s      20%         2        2        N/A     1          0                   489B        2
- %{TIME}  2.#!/\d/!#s      #!/\d/!#0%         #!/\d/!#        #!/\d/!#        #!/(\d+%|N\/A)\s+/!#1          0                   465B        3
+ 14:13:14  2.5s      20%         2        2        0%      1          0                   489B        3
- %{TIME}  3.#!/\d/!#s      #!/\d/!#0%         1        1        #!/(\d+%|N\/A)\s+/!#1          0                   465B        4
+ 14:13:15  3.5s      40%         1        1        1%      1          0                   489B        4
- %{TIME}  4.#!/\d/!#s      #!/\d/!#0%         1        1        #!/(\d+%|N\/A)\s+/!#1          0                   465B        5
+ 14:13:16  4.5s      50%         1        1        1%      1          0                   489B        5
- %{TIME}  5.#!/\d/!#s      #!/\d/!#0%         1        1        #!/(\d+%|N\/A)\s+/!#1          0                   465B        6
+ 14:13:17  5.5s      50%         1        1        0%      1          0                   489B        6
- %{TIME}  6.#!/\d/!#s      #!/\d/!#0%         1        1        #!/(\d+%|N\/A)\s+/!#1          0                   465B        7
+ 14:13:18  6.5s      70%         1        1        1%      1          0                   489B        7
- %{TIME}  7.#!/\d/!#s      #!/\d/!#0%         1        1        #!/(\d+%|N\/A)\s+/!#1          0                   465B        8
+ 14:13:19  7.5s      80%         1        1        0%      1          0                   489B        8
- %{TIME}  8.#!/\d/!#s      #!/\d/!#0%         1        1        #!/(\d+%|N\/A)\s+/!#1          0                   465B        9
+ 14:13:20  8.5s      90%         1        1        1%      1          0                   489B        9
--------------------------------------------------------------------------------------
Process 1 final statistics:
Init command:     create table t
Load commands:
- insert into t values(<increment>)
Total time:       9#!/\.\d/!#s
Total queries:    10
Threads:          1
Batch size:       1
Total docs:       10
Docs per sec avg: 1
QPS avg:          1
QPS 1p:           1
QPS 5p:           1
QPS 95p:          #!/\d/!#
QPS 99p:          #!/\d/!#
Latency avg:      100#!/\d\.\d/!# ms
Latency 50p:      1050.0 ms
Latency 95p:      1050.0 ms
Latency 99p:      1050.0 ms
--------------------------------------------------------------------------------------

@github-actions

Copy link
Copy Markdown

clt-insert

👎 CLT tests in test/clt-tests/basic/
✅ OK: 2
❌ Failed: 4
⏳ Duration: 54s
👉 Check Action Results for commit fbf20cf
Failed tests:

test/clt-tests/basic/worker_lifecycle_order.rec
––– input –––
searchd > /dev/null
––– output –––
––– input –––
sleep 3
––– output –––
––– input –––
cd /manticore-load
––– output –––
––– input –––
./manticore-load --drop --quiet --json --threads=1 --total=1 --init="CREATE TABLE worker_lifecycle_order(value int)" --worker-init="BEGIN; INSERT INTO worker_lifecycle_order(id,value) VALUES(1,10)" --worker-finalize="INSERT INTO worker_lifecycle_order(id,value) VALUES(3,30); COMMIT" --load="INSERT INTO worker_lifecycle_order(id,value) VALUES(2,20)"
––– output –––
{
"threads": 1,
"batch_size": 1,
"time": "00:00",
"total_operations": 1,
"operations_per_second": #!/\d+/!#,
"qps": {
"avg": 0,
"p99": 0,
"p95": 0,
"p5": 0,
"p1": 0
},
"latency": {
"avg": #!/\d+(\.\d+)?/!#,
"p50": #!/\d+(\.\d+)?/!#,
"p95": #!/\d+(\.\d+)?/!#,
"p99": #!/\d+(\.\d+)?/!#
}
}
––– input –––
mysql -h0 -P9306 -e "SELECT id,value FROM worker_lifecycle_order WHERE id=1; SELECT id,value FROM worker_lifecycle_order WHERE id=2; SELECT id,value FROM worker_lifecycle_order WHERE id=3"
––– output –––
- id	value
+ +------+-------+
- 1	10
+ | id   | value |
- id	value
+ +------+-------+
- 2	20
+ |    1 |    10 |
- id	value
+ +------+-------+
- 3	30
+ +------+-------+
+ | id   | value |
+ +------+-------+
+ |    2 |    20 |
+ +------+-------+
+ +------+-------+
+ | id   | value |
+ +------+-------+
+ |    3 |    30 |
+ +------+-------+
––– input –––
./manticore-load --drop --quiet --json --threads=4 --total=4 --init="CREATE TABLE worker_lifecycle_parallel(value int)" --worker-init="BEGIN" --worker-finalize="COMMIT" --load="INSERT INTO worker_lifecycle_parallel(id,value) VALUES(<increment>,10)"
––– output –––
{
"threads": 4,
"batch_size": 1,
"time": "00:00",
"total_operations": 4,
"operations_per_second": #!/\d+/!#,
"qps": {
"avg": 0,
"p99": 0,
"p95": 0,
"p5": 0,
"p1": 0
},
"latency": {
"avg": #!/\d+(\.\d+)?/!#,
"p50": #!/\d+(\.\d+)?/!#,
"p95": #!/\d+(\.\d+)?/!#,
"p99": #!/\d+(\.\d+)?/!#
}
}
––– input –––
mysql -h0 -P9306 -N -e "SELECT COUNT(*),MIN(value),MAX(value) FROM worker_lifecycle_parallel"
––– output –––
- 4\t10\t10
+ +------+------+------+
+ |    4 |   10 |   10 |
+ +------+------+------+
––– input –––
./manticore-load --drop --threads=4 --batch-size=2 --total=8 --init="CREATE TABLE worker_lifecycle_failure(value int)" --worker-init="BEGIN" --worker-finalize="INVALID FINALIZER" --load="INSERT INTO worker_lifecycle_failure(id,value) VALUES(<increment>,10)" > /dev/null; echo $?; mysql -h0 -P9306 -N -e "SELECT COUNT(*) FROM worker_lifecycle_failure"
––– output –––
1
- 0
+ +------+
+ |    0 |
+ +------+
––– input –––
)"
––– output –––
- {
+ bash: syntax error near unexpected token `)'
- "threads": 1,
- "batch_size": 2,
- "time": "00:00",
- "total_operations": 4,
- "operations_per_second": #!/\d+/!#,
- "qps": {
- "avg": 0,
- "p99": 0,
- "p95": 0,
- "p5": 0,
- "p1": 0
- },
- "latency": {
- "avg": #!/\d+(\.\d+)?/!#,
- "p50": #!/\d+(\.\d+)?/!#,
- "p95": #!/\d+(\.\d+)?/!#,
- "p99": #!/\d+(\.\d+)?/!#
- }
- }
––– input –––
mysql -h0 -P9306 -N -e "SELECT COUNT(*) FROM multiline_insert"
––– output –––
- 4
+ ERROR 1064 (42000) at line 1: unknown local table(s) 'multiline_insert' in search request
––– input –––
cache=$(./manticore-load --verbose --threads=1 --batch-size=2 --total=5 --init="CREATE TABLE empty_cache_regression(value int)" --load="INSERT INTO empty_cache_regression(id,value) VALUES(<increment>,<int/1/100>)" 2>&1 | sed -n 's/.*Generating new data cache \(\/tmp\/manticore_load_[a-f0-9]*\).*/\1/p' | head -1); test -n "$cache"; : > "$cache"; inode_before=$(stat -c %i "$cache"); ./manticore-load --drop --quiet --json --threads=1 --batch-size=2 --total=5 --cache-from-disk --init="CREATE TABLE empty_cache_regression(value int)" --load="INSERT INTO empty_cache_regression(id,value) VALUES(<increment>,<int/1/100>)"; inode_after=$(stat -c %i "$cache"); test "$inode_before" = "$inode_after"; test -s "$cache"; mysql -h0 -P9306 -N -e "SELECT COUNT(*) FROM empty_cache_regression"
––– output –––
{
"threads": 1,
"batch_size": 2,
"time": "00:00",
"total_operations": 6,
"operations_per_second": #!/\d+/!#,
"qps": {
"avg": 0,
"p99": 0,
"p95": 0,
"p5": 0,
"p1": 0
},
"latency": {
"avg": #!/\d+(\.\d+)?/!#,
"p50": #!/\d+(\.\d+)?/!#,
"p95": #!/\d+(\.\d+)?/!#,
"p99": #!/\d+(\.\d+)?/!#
}
}
- 5
+ +------+
-
+ |    5 |
+ +------+
+
test/clt-tests/basic/worker_lifecycle.rec
––– input –––
searchd > /dev/null
––– output –––
––– input –––
sleep 3
––– output –––
––– input –––
cd /manticore-load
––– output –––
––– input –––
./manticore-load --drop --quiet --json --threads=1 --batch-size=2 --total=4 --init="CREATE TABLE worker_lifecycle(value int)" --worker-init="BEGIN" --worker-finalize="COMMIT" --load="INSERT INTO worker_lifecycle(id,value) VALUES(<increment>,<int/1/100>)"
––– output –––
{
"threads": 1,
"batch_size": 2,
"time": "00:00",
"total_operations": 4,
"operations_per_second": #!/\d+/!#,
"qps": {
"avg": 0,
"p99": 0,
"p95": 0,
"p5": 0,
"p1": 0
},
"latency": {
"avg": #!/\d+(\.\d+)?/!#,
"p50": #!/\d+(\.\d+)?/!#,
"p95": #!/\d+(\.\d+)?/!#,
"p99": #!/\d+(\.\d+)?/!#
}
}
––– input –––
mysql -h0 -P9306 -e "SELECT COUNT(*) FROM worker_lifecycle; SHOW TABLE worker_lifecycle STATUS LIKE 'ram_chunk_segments_count'"
––– output –––
- COUNT(*)
+ +----------+
- 4
+ | count(*) |
- Variable_name	Value
+ +----------+
- ram_chunk_segments_count	2
+ |        4 |
-
+ +----------+
+ +--------------------------+-------+
+ | Variable_name            | Value |
+ +--------------------------+-------+
+ | ram_chunk_segments_count | 1     |
+ +--------------------------+-------+
+
test/clt-tests/basic/insert_two.rec
––– input –––
searchd > /dev/null
––– output –––
––– input –––
sleep 3
––– output –––
––– input –––
cd /manticore-load
––– output –––
––– input –––
PROCESS_1_DELAY=0.5 PROGRESS_DELAY=0.5 ./manticore-load --drop --init="create table t" --total=10 --load="insert into t values(<increment>)" --threads=1 --delay=1 --together --drop --init="create table t2" --total=10 --load="insert into t2 values(<increment>)" --threads=1 --delay=0.5
––– output –––
======================================================================================
Process 2: Running with threads=1, batch-size=1
Process 2: Dropping table: DROP TABLE IF EXISTS t2
Process 2: Executing init command: create table t2
Process 2: Generating new data cache /tmp/manticore_load_#!/[a-z0-9]+/!# ... 100%
======================================================================================
Process 1: Running with threads=1, batch-size=1
Process 1: Dropping table: DROP TABLE IF EXISTS t
Process 1: Executing init command: create table t
Process 1: Generating new data cache /tmp/manticore_load_#!/[a-z0-9]+/!# ... 100%
-------------------------------------------------------------------------------------------------------------------------------------------
Time      Elapsed   1:Progress  2:Progress  1:QPS    2:QPS    1:DPS    2:DPS    CPU     Workers    Chunks    Merging   Disk        Inserted
-------------------------------------------------------------------------------------------------------------------------------------------
%{TIME}  #!/\d+/!#ms     -           -           -        -        -        -        N/A     -          0                   0B          0
- %{TIME}  1.#!/\d/!#s      #!/\d/!#0%         #!/\d/!#0%         #!/\d/!#        #!/\d/!#        #!/\d/!#        #!/\d/!#        #!/(\d+%|N\/A)/!##!/\s+/!##!/\d/!#          0                   930B        6
+ 14:13:35  1.5s      20%         30%         2        2        2        1        N/A     1          0                   978B        6
- %{TIME}  2.#!/\d/!#s      #!/\d/!#0%         #!/\d/!#0%         #!/\d/!#        #!/\d/!#        #!/\d/!#        #!/\d/!#        #!/(\d+%|N\/A)/!##!/\s+/!##!/\d/!#          0                   930B        9
+ 14:13:36  2.5s      20%         50%         2        2        2        2        0%      1          0                   978B        9
- %{TIME}  3.#!/\d/!#s      #!/\d/!#0%         #!/\d/!#0%         #!/\d/!#        #!/\d/!#        #!/\d/!#        #!/\d/!#        #!/(\d+%|N\/A)/!##!/\s+/!##!/\d/!#          0                   930B        12
+ 14:13:37  3.5s      40%         70%         1        2        1        2        0%      1          0                   978B        12
--------------------------------------------------------------------------------------
Process 2 final statistics:
Init command:     create table t2
Load commands:
- insert into t2 values(<increment>)
Total time:       #!/(4|5)\.\d/!#s
Total queries:    10
Threads:          1
Batch size:       1
Total docs:       10
Docs per sec avg: 2
QPS avg:          2
QPS 1p:           2
QPS 5p:           2
QPS 95p:          #!/\d/!#
QPS 99p:          #!/\d/!#
Latency avg:      50#!/\d/!#.#!/\d/!# ms
Latency 50p:      505.#!/\d/!# ms
Latency 95p:      505.#!/\d/!# ms
Latency 99p:      505.#!/\d/!# ms
--------------------------------------------------------------------------------------
- %{TIME}  4.#!/\d/!#s      #!/\d/!#0%         -           #!/\d/!#        -        #!/\d/!#        -        #!/(\d+%|N\/A)/!##!/\s+/!#1          0                   465B        5
+ 14:13:38  4.5s      40%         -           1        -        1        -        1%      1          0                   489B        5
- %{TIME}  5.#!/\d/!#s      #!/\d/!#0%         -           #!/\d/!#        -        #!/\d/!#        -        #!/(\d+%|N\/A)/!##!/\s+/!#1          0                   465B        6
+ 14:13:39  5.5s      60%         -           1        -        1        -        0%      1          0                   489B        6
- %{TIME}  6.#!/\d/!#s      #!/\d/!#0%         -           #!/\d/!#        -        #!/\d/!#        -        #!/(\d+%|N\/A)/!##!/\s+/!#1          0                   465B        7
+ 14:13:40  6.5s      60%         -           1        -        1        -        1%      1          0                   489B        7
- %{TIME}  7.#!/\d/!#s      #!/\d/!#0%         -           #!/\d/!#        -        #!/\d/!#        -        #!/(\d+%|N\/A)/!##!/\s+/!#1          0                   465B        8
+ 14:13:41  7.5s      80%         -           1        -        1        -        0%      1          0                   489B        8
- %{TIME}  8.#!/\d/!#s      #!/\d/!#0%         -           #!/\d/!#        -        #!/\d/!#        -        #!/(\d+%|N\/A)/!##!/\s+/!#1          0                   465B        9
+ 14:13:42  8.5s      80%         -           1        -        1        -        0%      1          0                   489B        9
--------------------------------------------------------------------------------------
Process 1 final statistics:
Init command:     create table t
Load commands:
- insert into t values(<increment>)
Total time:       9.#!/\d/!#s
Total queries:    10
Threads:          1
Batch size:       1
Total docs:       10
Docs per sec avg: 1
QPS avg:          1
QPS 1p:           1
QPS 5p:           1
QPS 95p:          #!/\d/!#
QPS 99p:          #!/\d/!#
Latency avg:      100#!/\d/!#.#!/\d/!# ms
Latency 50p:      1050.#!/\d/!# ms
Latency 95p:      1050.#!/\d/!# ms
Latency 99p:      1050.#!/\d/!# ms
--------------------------------------------------------------------------------------
test/clt-tests/basic/insert_basic.rec
––– input –––
searchd > /dev/null
––– output –––
––– input –––
sleep 3
––– output –––
––– input –––
cd /manticore-load
––– output –––
––– input –––
PROCESS_1_DELAY=0.5 PROGRESS_DELAY=0.5 ./manticore-load --drop --init="create table t" --total=10 --load="insert into t values(<increment>)" --threads=1 --delay=1
––– output –––
======================================================================================
Process 1: Running with threads=1, batch-size=1
Process 1: Dropping table: DROP TABLE IF EXISTS t
Process 1: Executing init command: create table t
Process 1: Generating new data cache /tmp/manticore_load_#!/[a-z0-9]+/!# ... 100%
-------------------------------------------------------------------------------------------------------------
Time      Elapsed   Progress    QPS      DPS      CPU     Workers    Chunks    Merging   Disk        Inserted
-------------------------------------------------------------------------------------------------------------
%{TIME}  5#!/\d\d/!#ms     -           -        -        N/A     -          0                   0B          0
- %{TIME}  1.#!/\d/!#s      #!/\d/!#0%         #!/\d/!#        #!/\d/!#        N/A     1          0                   465B        2
+ 14:13:21  1.5s      20%         2        2        N/A     1          0                   489B        2
- %{TIME}  2.#!/\d/!#s      #!/\d/!#0%         #!/\d/!#        #!/\d/!#        #!/(\d+%|N\/A)\s+/!#1          0                   465B        3
+ 14:13:22  2.5s      20%         2        2        1%      1          0                   489B        3
- %{TIME}  3.#!/\d/!#s      #!/\d/!#0%         1        1        #!/(\d+%|N\/A)\s+/!#1          0                   465B        4
+ 14:13:23  3.5s      40%         1        1        0%      1          0                   489B        4
- %{TIME}  4.#!/\d/!#s      #!/\d/!#0%         1        1        #!/(\d+%|N\/A)\s+/!#1          0                   465B        5
+ 14:13:24  4.5s      50%         1        1        0%      1          0                   489B        5
- %{TIME}  5.#!/\d/!#s      #!/\d/!#0%         1        1        #!/(\d+%|N\/A)\s+/!#1          0                   465B        6
+ 14:13:25  5.5s      50%         1        1        0%      1          0                   489B        6
- %{TIME}  6.#!/\d/!#s      #!/\d/!#0%         1        1        #!/(\d+%|N\/A)\s+/!#1          0                   465B        7
+ 14:13:26  6.5s      70%         1        1        1%      1          0                   489B        7
- %{TIME}  7.#!/\d/!#s      #!/\d/!#0%         1        1        #!/(\d+%|N\/A)\s+/!#1          0                   465B        8
+ 14:13:27  7.5s      70%         1        1        1%      1          0                   489B        8
- %{TIME}  8.#!/\d/!#s      #!/\d/!#0%         1        1        #!/(\d+%|N\/A)\s+/!#1          0                   465B        9
+ 14:13:28  8.5s      90%         1        1        0%      1          0                   489B        9
--------------------------------------------------------------------------------------
Process 1 final statistics:
Init command:     create table t
Load commands:
- insert into t values(<increment>)
Total time:       9#!/\.\d/!#s
Total queries:    10
Threads:          1
Batch size:       1
Total docs:       10
Docs per sec avg: 1
QPS avg:          1
QPS 1p:           1
QPS 5p:           1
QPS 95p:          #!/\d/!#
QPS 99p:          #!/\d/!#
Latency avg:      100#!/\d\.\d/!# ms
Latency 50p:      1050.0 ms
Latency 95p:      1050.0 ms
Latency 99p:      1050.0 ms
--------------------------------------------------------------------------------------

@github-actions

Copy link
Copy Markdown

clt-insert

👎 CLT tests in test/clt-tests/basic/
✅ OK: 2
❌ Failed: 4
⏳ Duration: 55s
👉 Check Action Results for commit 7717c77
Failed tests:

test/clt-tests/basic/worker_lifecycle_order.rec
––– input –––
searchd > /dev/null
––– output –––
––– input –––
sleep 3
––– output –––
––– input –––
cd /manticore-load
––– output –––
––– input –––
./manticore-load --drop --quiet --json --threads=1 --total=1 --init="CREATE TABLE worker_lifecycle_order(value int)" --worker-init="BEGIN; INSERT INTO worker_lifecycle_order(id,value) VALUES(1,10)" --worker-finalize="INSERT INTO worker_lifecycle_order(id,value) VALUES(3,30); COMMIT" --load="INSERT INTO worker_lifecycle_order(id,value) VALUES(2,20)"
––– output –––
{
"threads": 1,
"batch_size": 1,
"time": "00:00",
"total_operations": 1,
"operations_per_second": #!/\d+/!#,
"qps": {
"avg": 0,
"p99": 0,
"p95": 0,
"p5": 0,
"p1": 0
},
"latency": {
"avg": #!/\d+(\.\d+)?/!#,
"p50": #!/\d+(\.\d+)?/!#,
"p95": #!/\d+(\.\d+)?/!#,
"p99": #!/\d+(\.\d+)?/!#
}
}
––– input –––
mysql -h0 -P9306 -e "SELECT id,value FROM worker_lifecycle_order WHERE id=1; SELECT id,value FROM worker_lifecycle_order WHERE id=2; SELECT id,value FROM worker_lifecycle_order WHERE id=3"
––– output –––
- id	value
+ +------+-------+
- 1	10
+ | id   | value |
- id	value
+ +------+-------+
- 2	20
+ |    1 |    10 |
- id	value
+ +------+-------+
- 3	30
+ +------+-------+
+ | id   | value |
+ +------+-------+
+ |    2 |    20 |
+ +------+-------+
+ +------+-------+
+ | id   | value |
+ +------+-------+
+ |    3 |    30 |
+ +------+-------+
––– input –––
./manticore-load --drop --quiet --json --threads=4 --total=4 --init="CREATE TABLE worker_lifecycle_parallel(value int)" --worker-init="BEGIN" --worker-finalize="COMMIT" --load="INSERT INTO worker_lifecycle_parallel(id,value) VALUES(<increment>,10)"
––– output –––
{
"threads": 4,
"batch_size": 1,
"time": "00:00",
"total_operations": 4,
"operations_per_second": #!/\d+/!#,
"qps": {
"avg": 0,
"p99": 0,
"p95": 0,
"p5": 0,
"p1": 0
},
"latency": {
"avg": #!/\d+(\.\d+)?/!#,
"p50": #!/\d+(\.\d+)?/!#,
"p95": #!/\d+(\.\d+)?/!#,
"p99": #!/\d+(\.\d+)?/!#
}
}
––– input –––
mysql -h0 -P9306 -N -e "SELECT COUNT(*),MIN(value),MAX(value) FROM worker_lifecycle_parallel"
––– output –––
- 4\t10\t10
+ +------+------+------+
+ |    4 |   10 |   10 |
+ +------+------+------+
––– input –––
./manticore-load --drop --threads=4 --batch-size=2 --total=8 --init="CREATE TABLE worker_lifecycle_failure(value int)" --worker-init="BEGIN" --worker-finalize="INVALID FINALIZER" --load="INSERT INTO worker_lifecycle_failure(id,value) VALUES(<increment>,10)" > /dev/null; echo $?; mysql -h0 -P9306 -N -e "SELECT COUNT(*) FROM worker_lifecycle_failure"
––– output –––
1
- 0
+ +------+
+ |    0 |
+ +------+
––– input –––
)"
––– output –––
- {
+ bash: syntax error near unexpected token `)'
- "threads": 1,
- "batch_size": 2,
- "time": "00:00",
- "total_operations": 4,
- "operations_per_second": #!/\d+/!#,
- "qps": {
- "avg": 0,
- "p99": 0,
- "p95": 0,
- "p5": 0,
- "p1": 0
- },
- "latency": {
- "avg": #!/\d+(\.\d+)?/!#,
- "p50": #!/\d+(\.\d+)?/!#,
- "p95": #!/\d+(\.\d+)?/!#,
- "p99": #!/\d+(\.\d+)?/!#
- }
- }
––– input –––
mysql -h0 -P9306 -N -e "SELECT COUNT(*) FROM multiline_insert"
––– output –––
- 4
+ ERROR 1064 (42000) at line 1: unknown local table(s) 'multiline_insert' in search request
––– input –––
cache=$(./manticore-load --verbose --threads=1 --batch-size=2 --total=5 --init="CREATE TABLE empty_cache_regression(value int)" --load="INSERT INTO empty_cache_regression(id,value) VALUES(<increment>,<int/1/100>)" 2>&1 | sed -n 's/.*Generating new data cache \(\/tmp\/manticore_load_[a-f0-9]*\).*/\1/p' | head -1); test -n "$cache"; : > "$cache"; inode_before=$(stat -c %i "$cache"); ./manticore-load --drop --quiet --json --threads=1 --batch-size=2 --total=5 --cache-from-disk --init="CREATE TABLE empty_cache_regression(value int)" --load="INSERT INTO empty_cache_regression(id,value) VALUES(<increment>,<int/1/100>)"; inode_after=$(stat -c %i "$cache"); test "$inode_before" = "$inode_after"; test -s "$cache"; mysql -h0 -P9306 -N -e "SELECT COUNT(*) FROM empty_cache_regression"
––– output –––
{
"threads": 1,
"batch_size": 2,
"time": "00:00",
"total_operations": 6,
"operations_per_second": #!/\d+/!#,
"qps": {
"avg": 0,
"p99": 0,
"p95": 0,
"p5": 0,
"p1": 0
},
"latency": {
"avg": #!/\d+(\.\d+)?/!#,
"p50": #!/\d+(\.\d+)?/!#,
"p95": #!/\d+(\.\d+)?/!#,
"p99": #!/\d+(\.\d+)?/!#
}
}
- 5
+ +------+
-
+ |    5 |
+ +------+
+
test/clt-tests/basic/worker_lifecycle.rec
––– input –––
searchd > /dev/null
––– output –––
––– input –––
sleep 3
––– output –––
––– input –––
cd /manticore-load
––– output –––
––– input –––
./manticore-load --drop --quiet --json --threads=1 --batch-size=2 --total=4 --init="CREATE TABLE worker_lifecycle(value int)" --worker-init="BEGIN" --worker-finalize="COMMIT" --load="INSERT INTO worker_lifecycle(id,value) VALUES(<increment>,<int/1/100>)"
––– output –––
{
"threads": 1,
"batch_size": 2,
"time": "00:00",
"total_operations": 4,
"operations_per_second": #!/\d+/!#,
"qps": {
"avg": 0,
"p99": 0,
"p95": 0,
"p5": 0,
"p1": 0
},
"latency": {
"avg": #!/\d+(\.\d+)?/!#,
"p50": #!/\d+(\.\d+)?/!#,
"p95": #!/\d+(\.\d+)?/!#,
"p99": #!/\d+(\.\d+)?/!#
}
}
––– input –––
mysql -h0 -P9306 -e "SELECT COUNT(*) FROM worker_lifecycle; SHOW TABLE worker_lifecycle STATUS LIKE 'ram_chunk_segments_count'"
––– output –––
- COUNT(*)
+ +----------+
- 4
+ | count(*) |
- Variable_name	Value
+ +----------+
- ram_chunk_segments_count	2
+ |        4 |
-
+ +----------+
+ +--------------------------+-------+
+ | Variable_name            | Value |
+ +--------------------------+-------+
+ | ram_chunk_segments_count | 1     |
+ +--------------------------+-------+
+
test/clt-tests/basic/insert_two.rec
––– input –––
searchd > /dev/null
––– output –––
––– input –––
sleep 3
––– output –––
––– input –––
cd /manticore-load
––– output –––
––– input –––
PROCESS_1_DELAY=0.5 PROGRESS_DELAY=0.5 ./manticore-load --drop --init="create table t" --total=10 --load="insert into t values(<increment>)" --threads=1 --delay=1 --together --drop --init="create table t2" --total=10 --load="insert into t2 values(<increment>)" --threads=1 --delay=0.5
––– output –––
======================================================================================
Process 2: Running with threads=1, batch-size=1
Process 2: Dropping table: DROP TABLE IF EXISTS t2
Process 2: Executing init command: create table t2
Process 2: Generating new data cache /tmp/manticore_load_#!/[a-z0-9]+/!# ... 100%
======================================================================================
Process 1: Running with threads=1, batch-size=1
Process 1: Dropping table: DROP TABLE IF EXISTS t
Process 1: Executing init command: create table t
Process 1: Generating new data cache /tmp/manticore_load_#!/[a-z0-9]+/!# ... 100%
-------------------------------------------------------------------------------------------------------------------------------------------
Time      Elapsed   1:Progress  2:Progress  1:QPS    2:QPS    1:DPS    2:DPS    CPU     Workers    Chunks    Merging   Disk        Inserted
-------------------------------------------------------------------------------------------------------------------------------------------
%{TIME}  #!/\d+/!#ms     -           -           -        -        -        -        N/A     -          0                   0B          0
- %{TIME}  1.#!/\d/!#s      #!/\d/!#0%         #!/\d/!#0%         #!/\d/!#        #!/\d/!#        #!/\d/!#        #!/\d/!#        #!/(\d+%|N\/A)/!##!/\s+/!##!/\d/!#          0                   930B        6
+ 15:54:17  1.5s      20%         30%         2        2        2        1        N/A     1          0                   978B        6
- %{TIME}  2.#!/\d/!#s      #!/\d/!#0%         #!/\d/!#0%         #!/\d/!#        #!/\d/!#        #!/\d/!#        #!/\d/!#        #!/(\d+%|N\/A)/!##!/\s+/!##!/\d/!#          0                   930B        9
+ 15:54:18  2.5s      20%         50%         2        2        2        2        0%      1          0                   978B        9
- %{TIME}  3.#!/\d/!#s      #!/\d/!#0%         #!/\d/!#0%         #!/\d/!#        #!/\d/!#        #!/\d/!#        #!/\d/!#        #!/(\d+%|N\/A)/!##!/\s+/!##!/\d/!#          0                   930B        12
+ 15:54:19  3.5s      40%         70%         1        2        1        2        1%      1          0                   978B        12
--------------------------------------------------------------------------------------
Process 2 final statistics:
Init command:     create table t2
Load commands:
- insert into t2 values(<increment>)
Total time:       #!/(4|5)\.\d/!#s
Total queries:    10
Threads:          1
Batch size:       1
Total docs:       10
Docs per sec avg: 2
QPS avg:          2
QPS 1p:           2
QPS 5p:           2
QPS 95p:          #!/\d/!#
QPS 99p:          #!/\d/!#
Latency avg:      50#!/\d/!#.#!/\d/!# ms
Latency 50p:      505.#!/\d/!# ms
Latency 95p:      505.#!/\d/!# ms
Latency 99p:      505.#!/\d/!# ms
--------------------------------------------------------------------------------------
- %{TIME}  4.#!/\d/!#s      #!/\d/!#0%         -           #!/\d/!#        -        #!/\d/!#        -        #!/(\d+%|N\/A)/!##!/\s+/!#1          0                   465B        5
+ 15:54:20  4.5s      50%         -           1        -        1        -        0%      1          0                   489B        5
- %{TIME}  5.#!/\d/!#s      #!/\d/!#0%         -           #!/\d/!#        -        #!/\d/!#        -        #!/(\d+%|N\/A)/!##!/\s+/!#1          0                   465B        6
+ 15:54:21  5.5s      60%         -           1        -        1        -        1%      1          0                   489B        6
- %{TIME}  6.#!/\d/!#s      #!/\d/!#0%         -           #!/\d/!#        -        #!/\d/!#        -        #!/(\d+%|N\/A)/!##!/\s+/!#1          0                   465B        7
+ 15:54:22  6.5s      60%         -           1        -        1        -        1%      1          0                   489B        7
- %{TIME}  7.#!/\d/!#s      #!/\d/!#0%         -           #!/\d/!#        -        #!/\d/!#        -        #!/(\d+%|N\/A)/!##!/\s+/!#1          0                   465B        8
+ 15:54:23  7.5s      80%         -           1        -        1        -        0%      1          0                   489B        8
- %{TIME}  8.#!/\d/!#s      #!/\d/!#0%         -           #!/\d/!#        -        #!/\d/!#        -        #!/(\d+%|N\/A)/!##!/\s+/!#1          0                   465B        9
+ 15:54:24  8.5s      80%         -           1        -        1        -        0%      1          0                   489B        9
--------------------------------------------------------------------------------------
Process 1 final statistics:
Init command:     create table t
Load commands:
- insert into t values(<increment>)
Total time:       9.#!/\d/!#s
Total queries:    10
Threads:          1
Batch size:       1
Total docs:       10
Docs per sec avg: 1
QPS avg:          1
QPS 1p:           1
QPS 5p:           1
QPS 95p:          #!/\d/!#
QPS 99p:          #!/\d/!#
Latency avg:      100#!/\d/!#.#!/\d/!# ms
Latency 50p:      1050.#!/\d/!# ms
Latency 95p:      1050.#!/\d/!# ms
Latency 99p:      1050.#!/\d/!# ms
--------------------------------------------------------------------------------------
test/clt-tests/basic/insert_basic.rec
––– input –––
searchd > /dev/null
––– output –––
––– input –––
sleep 3
––– output –––
––– input –––
cd /manticore-load
––– output –––
––– input –––
PROCESS_1_DELAY=0.5 PROGRESS_DELAY=0.5 ./manticore-load --drop --init="create table t" --total=10 --load="insert into t values(<increment>)" --threads=1 --delay=1
––– output –––
======================================================================================
Process 1: Running with threads=1, batch-size=1
Process 1: Dropping table: DROP TABLE IF EXISTS t
Process 1: Executing init command: create table t
Process 1: Generating new data cache /tmp/manticore_load_#!/[a-z0-9]+/!# ... 100%
-------------------------------------------------------------------------------------------------------------
Time      Elapsed   Progress    QPS      DPS      CPU     Workers    Chunks    Merging   Disk        Inserted
-------------------------------------------------------------------------------------------------------------
%{TIME}  5#!/\d\d/!#ms     -           -        -        N/A     -          0                   0B          0
- %{TIME}  1.#!/\d/!#s      #!/\d/!#0%         #!/\d/!#        #!/\d/!#        N/A     1          0                   465B        2
+ 15:54:03  1.5s      20%         2        2        N/A     1          0                   489B        2
- %{TIME}  2.#!/\d/!#s      #!/\d/!#0%         #!/\d/!#        #!/\d/!#        #!/(\d+%|N\/A)\s+/!#1          0                   465B        3
+ 15:54:04  2.5s      20%         2        2        0%      1          0                   489B        3
- %{TIME}  3.#!/\d/!#s      #!/\d/!#0%         1        1        #!/(\d+%|N\/A)\s+/!#1          0                   465B        4
+ 15:54:05  3.5s      40%         1        1        0%      1          0                   489B        4
- %{TIME}  4.#!/\d/!#s      #!/\d/!#0%         1        1        #!/(\d+%|N\/A)\s+/!#1          0                   465B        5
+ 15:54:06  4.5s      40%         1        1        0%      1          0                   489B        5
- %{TIME}  5.#!/\d/!#s      #!/\d/!#0%         1        1        #!/(\d+%|N\/A)\s+/!#1          0                   465B        6
+ 15:54:07  5.5s      60%         1        1        0%      1          0                   489B        6
- %{TIME}  6.#!/\d/!#s      #!/\d/!#0%         1        1        #!/(\d+%|N\/A)\s+/!#1          0                   465B        7
+ 15:54:08  6.5s      60%         1        1        1%      1          0                   489B        7
- %{TIME}  7.#!/\d/!#s      #!/\d/!#0%         1        1        #!/(\d+%|N\/A)\s+/!#1          0                   465B        8
+ 15:54:09  7.5s      80%         1        1        1%      1          0                   489B        8
- %{TIME}  8.#!/\d/!#s      #!/\d/!#0%         1        1        #!/(\d+%|N\/A)\s+/!#1          0                   465B        9
+ 15:54:10  8.5s      80%         1        1        0%      1          0                   489B        9
--------------------------------------------------------------------------------------
Process 1 final statistics:
Init command:     create table t
Load commands:
- insert into t values(<increment>)
Total time:       9#!/\.\d/!#s
Total queries:    10
Threads:          1
Batch size:       1
Total docs:       10
Docs per sec avg: 1
QPS avg:          1
QPS 1p:           1
QPS 5p:           1
QPS 95p:          #!/\d/!#
QPS 99p:          #!/\d/!#
Latency avg:      100#!/\d\.\d/!# ms
Latency 50p:      1050.0 ms
Latency 95p:      1050.0 ms
Latency 99p:      1050.0 ms
--------------------------------------------------------------------------------------

@github-actions

Copy link
Copy Markdown

clt-insert

👎 CLT tests in test/clt-tests/basic/
✅ OK: 2
❌ Failed: 4
⏳ Duration: 57s
👉 Check Action Results for commit fbf20cf
Failed tests:

test/clt-tests/basic/worker_lifecycle_order.rec
––– input –––
searchd > /dev/null
––– output –––
––– input –––
sleep 3
––– output –––
––– input –––
cd /manticore-load
––– output –––
––– input –––
./manticore-load --drop --quiet --json --threads=1 --total=1 --init="CREATE TABLE worker_lifecycle_order(value int)" --worker-init="BEGIN; INSERT INTO worker_lifecycle_order(id,value) VALUES(1,10)" --worker-finalize="INSERT INTO worker_lifecycle_order(id,value) VALUES(3,30); COMMIT" --load="INSERT INTO worker_lifecycle_order(id,value) VALUES(2,20)"
––– output –––
{
"threads": 1,
"batch_size": 1,
"time": "00:00",
"total_operations": 1,
"operations_per_second": #!/\d+/!#,
"qps": {
"avg": 0,
"p99": 0,
"p95": 0,
"p5": 0,
"p1": 0
},
"latency": {
"avg": #!/\d+(\.\d+)?/!#,
"p50": #!/\d+(\.\d+)?/!#,
"p95": #!/\d+(\.\d+)?/!#,
"p99": #!/\d+(\.\d+)?/!#
}
}
––– input –––
mysql -h0 -P9306 -e "SELECT id,value FROM worker_lifecycle_order WHERE id=1; SELECT id,value FROM worker_lifecycle_order WHERE id=2; SELECT id,value FROM worker_lifecycle_order WHERE id=3"
––– output –––
- id	value
+ +------+-------+
- 1	10
+ | id   | value |
- id	value
+ +------+-------+
- 2	20
+ |    1 |    10 |
- id	value
+ +------+-------+
- 3	30
+ +------+-------+
+ | id   | value |
+ +------+-------+
+ |    2 |    20 |
+ +------+-------+
+ +------+-------+
+ | id   | value |
+ +------+-------+
+ |    3 |    30 |
+ +------+-------+
––– input –––
./manticore-load --drop --quiet --json --threads=4 --total=4 --init="CREATE TABLE worker_lifecycle_parallel(value int)" --worker-init="BEGIN" --worker-finalize="COMMIT" --load="INSERT INTO worker_lifecycle_parallel(id,value) VALUES(<increment>,10)"
––– output –––
{
"threads": 4,
"batch_size": 1,
"time": "00:00",
"total_operations": 4,
"operations_per_second": #!/\d+/!#,
"qps": {
"avg": 0,
"p99": 0,
"p95": 0,
"p5": 0,
"p1": 0
},
"latency": {
"avg": #!/\d+(\.\d+)?/!#,
"p50": #!/\d+(\.\d+)?/!#,
"p95": #!/\d+(\.\d+)?/!#,
"p99": #!/\d+(\.\d+)?/!#
}
}
––– input –––
mysql -h0 -P9306 -N -e "SELECT COUNT(*),MIN(value),MAX(value) FROM worker_lifecycle_parallel"
––– output –––
- 4\t10\t10
+ +------+------+------+
+ |    4 |   10 |   10 |
+ +------+------+------+
––– input –––
./manticore-load --drop --threads=4 --batch-size=2 --total=8 --init="CREATE TABLE worker_lifecycle_failure(value int)" --worker-init="BEGIN" --worker-finalize="INVALID FINALIZER" --load="INSERT INTO worker_lifecycle_failure(id,value) VALUES(<increment>,10)" > /dev/null; echo $?; mysql -h0 -P9306 -N -e "SELECT COUNT(*) FROM worker_lifecycle_failure"
––– output –––
1
- 0
+ +------+
+ |    0 |
+ +------+
––– input –––
)"
––– output –––
- {
+ bash: syntax error near unexpected token `)'
- "threads": 1,
- "batch_size": 2,
- "time": "00:00",
- "total_operations": 4,
- "operations_per_second": #!/\d+/!#,
- "qps": {
- "avg": 0,
- "p99": 0,
- "p95": 0,
- "p5": 0,
- "p1": 0
- },
- "latency": {
- "avg": #!/\d+(\.\d+)?/!#,
- "p50": #!/\d+(\.\d+)?/!#,
- "p95": #!/\d+(\.\d+)?/!#,
- "p99": #!/\d+(\.\d+)?/!#
- }
- }
––– input –––
mysql -h0 -P9306 -N -e "SELECT COUNT(*) FROM multiline_insert"
––– output –––
- 4
+ ERROR 1064 (42000) at line 1: unknown local table(s) 'multiline_insert' in search request
––– input –––
cache=$(./manticore-load --verbose --threads=1 --batch-size=2 --total=5 --init="CREATE TABLE empty_cache_regression(value int)" --load="INSERT INTO empty_cache_regression(id,value) VALUES(<increment>,<int/1/100>)" 2>&1 | sed -n 's/.*Generating new data cache \(\/tmp\/manticore_load_[a-f0-9]*\).*/\1/p' | head -1); test -n "$cache"; : > "$cache"; inode_before=$(stat -c %i "$cache"); ./manticore-load --drop --quiet --json --threads=1 --batch-size=2 --total=5 --cache-from-disk --init="CREATE TABLE empty_cache_regression(value int)" --load="INSERT INTO empty_cache_regression(id,value) VALUES(<increment>,<int/1/100>)"; inode_after=$(stat -c %i "$cache"); test "$inode_before" = "$inode_after"; test -s "$cache"; mysql -h0 -P9306 -N -e "SELECT COUNT(*) FROM empty_cache_regression"
––– output –––
{
"threads": 1,
"batch_size": 2,
"time": "00:00",
"total_operations": 6,
"operations_per_second": #!/\d+/!#,
"qps": {
"avg": 0,
"p99": 0,
"p95": 0,
"p5": 0,
"p1": 0
},
"latency": {
"avg": #!/\d+(\.\d+)?/!#,
"p50": #!/\d+(\.\d+)?/!#,
"p95": #!/\d+(\.\d+)?/!#,
"p99": #!/\d+(\.\d+)?/!#
}
}
- 5
+ +------+
-
+ |    5 |
+ +------+
+
test/clt-tests/basic/worker_lifecycle.rec
––– input –––
searchd > /dev/null
––– output –––
––– input –––
sleep 3
––– output –––
––– input –––
cd /manticore-load
––– output –––
––– input –––
./manticore-load --drop --quiet --json --threads=1 --batch-size=2 --total=4 --init="CREATE TABLE worker_lifecycle(value int)" --worker-init="BEGIN" --worker-finalize="COMMIT" --load="INSERT INTO worker_lifecycle(id,value) VALUES(<increment>,<int/1/100>)"
––– output –––
{
"threads": 1,
"batch_size": 2,
"time": "00:00",
"total_operations": 4,
"operations_per_second": #!/\d+/!#,
"qps": {
"avg": 0,
"p99": 0,
"p95": 0,
"p5": 0,
"p1": 0
},
"latency": {
"avg": #!/\d+(\.\d+)?/!#,
"p50": #!/\d+(\.\d+)?/!#,
"p95": #!/\d+(\.\d+)?/!#,
"p99": #!/\d+(\.\d+)?/!#
}
}
––– input –––
mysql -h0 -P9306 -e "SELECT COUNT(*) FROM worker_lifecycle; SHOW TABLE worker_lifecycle STATUS LIKE 'ram_chunk_segments_count'"
––– output –––
- COUNT(*)
+ +----------+
- 4
+ | count(*) |
- Variable_name	Value
+ +----------+
- ram_chunk_segments_count	2
+ |        4 |
-
+ +----------+
+ +--------------------------+-------+
+ | Variable_name            | Value |
+ +--------------------------+-------+
+ | ram_chunk_segments_count | 1     |
+ +--------------------------+-------+
+
test/clt-tests/basic/insert_two.rec
––– input –––
searchd > /dev/null
––– output –––
––– input –––
sleep 3
––– output –––
––– input –––
cd /manticore-load
––– output –––
––– input –––
PROCESS_1_DELAY=0.5 PROGRESS_DELAY=0.5 ./manticore-load --drop --init="create table t" --total=10 --load="insert into t values(<increment>)" --threads=1 --delay=1 --together --drop --init="create table t2" --total=10 --load="insert into t2 values(<increment>)" --threads=1 --delay=0.5
––– output –––
======================================================================================
Process 2: Running with threads=1, batch-size=1
Process 2: Dropping table: DROP TABLE IF EXISTS t2
Process 2: Executing init command: create table t2
Process 2: Generating new data cache /tmp/manticore_load_#!/[a-z0-9]+/!# ... 100%
======================================================================================
Process 1: Running with threads=1, batch-size=1
Process 1: Dropping table: DROP TABLE IF EXISTS t
Process 1: Executing init command: create table t
Process 1: Generating new data cache /tmp/manticore_load_#!/[a-z0-9]+/!# ... 100%
-------------------------------------------------------------------------------------------------------------------------------------------
Time      Elapsed   1:Progress  2:Progress  1:QPS    2:QPS    1:DPS    2:DPS    CPU     Workers    Chunks    Merging   Disk        Inserted
-------------------------------------------------------------------------------------------------------------------------------------------
%{TIME}  #!/\d+/!#ms     -           -           -        -        -        -        N/A     -          0                   0B          0
- %{TIME}  1.#!/\d/!#s      #!/\d/!#0%         #!/\d/!#0%         #!/\d/!#        #!/\d/!#        #!/\d/!#        #!/\d/!#        #!/(\d+%|N\/A)/!##!/\s+/!##!/\d/!#          0                   930B        6
+ 04:18:20  1.5s      20%         30%         2        2        2        1        N/A     1          0                   978B        6
- %{TIME}  2.#!/\d/!#s      #!/\d/!#0%         #!/\d/!#0%         #!/\d/!#        #!/\d/!#        #!/\d/!#        #!/\d/!#        #!/(\d+%|N\/A)/!##!/\s+/!##!/\d/!#          0                   930B        9
+ 04:18:21  2.5s      30%         50%         1        2        1        2        8%      1          0                   978B        9
- %{TIME}  3.#!/\d/!#s      #!/\d/!#0%         #!/\d/!#0%         #!/\d/!#        #!/\d/!#        #!/\d/!#        #!/\d/!#        #!/(\d+%|N\/A)/!##!/\s+/!##!/\d/!#          0                   930B        12
+ 04:18:22  3.5s      40%         70%         1        2        1        2        5%      1          0                   978B        12
--------------------------------------------------------------------------------------
Process 2 final statistics:
Init command:     create table t2
Load commands:
- insert into t2 values(<increment>)
Total time:       #!/(4|5)\.\d/!#s
Total queries:    10
Threads:          1
Batch size:       1
Total docs:       10
Docs per sec avg: 2
QPS avg:          2
QPS 1p:           2
QPS 5p:           2
QPS 95p:          #!/\d/!#
QPS 99p:          #!/\d/!#
Latency avg:      50#!/\d/!#.#!/\d/!# ms
Latency 50p:      505.#!/\d/!# ms
Latency 95p:      505.#!/\d/!# ms
Latency 99p:      505.#!/\d/!# ms
--------------------------------------------------------------------------------------
- %{TIME}  4.#!/\d/!#s      #!/\d/!#0%         -           #!/\d/!#        -        #!/\d/!#        -        #!/(\d+%|N\/A)/!##!/\s+/!#1          0                   465B        5
+ 04:18:23  4.5s      50%         -           1        -        1        -        4%      1          0                   489B        5
- %{TIME}  5.#!/\d/!#s      #!/\d/!#0%         -           #!/\d/!#        -        #!/\d/!#        -        #!/(\d+%|N\/A)/!##!/\s+/!#1          0                   465B        6
+ 04:18:24  5.5s      60%         -           1        -        1        -        2%      1          0                   489B        6
- %{TIME}  6.#!/\d/!#s      #!/\d/!#0%         -           #!/\d/!#        -        #!/\d/!#        -        #!/(\d+%|N\/A)/!##!/\s+/!#1          0                   465B        7
+ 04:18:25  6.5s      70%         -           1        -        1        -        3%      1          0                   489B        7
- %{TIME}  7.#!/\d/!#s      #!/\d/!#0%         -           #!/\d/!#        -        #!/\d/!#        -        #!/(\d+%|N\/A)/!##!/\s+/!#1          0                   465B        8
+ 04:18:26  7.5s      80%         -           1        -        1        -        4%      1          0                   489B        8
- %{TIME}  8.#!/\d/!#s      #!/\d/!#0%         -           #!/\d/!#        -        #!/\d/!#        -        #!/(\d+%|N\/A)/!##!/\s+/!#1          0                   465B        9
+ 04:18:27  8.5s      90%         -           1        -        1        -        6%      1          0                   489B        9
--------------------------------------------------------------------------------------
Process 1 final statistics:
Init command:     create table t
Load commands:
- insert into t values(<increment>)
Total time:       9.#!/\d/!#s
Total queries:    10
Threads:          1
Batch size:       1
Total docs:       10
Docs per sec avg: 1
QPS avg:          1
QPS 1p:           1
QPS 5p:           1
QPS 95p:          #!/\d/!#
QPS 99p:          #!/\d/!#
Latency avg:      100#!/\d/!#.#!/\d/!# ms
Latency 50p:      1050.#!/\d/!# ms
Latency 95p:      1050.#!/\d/!# ms
Latency 99p:      1050.#!/\d/!# ms
--------------------------------------------------------------------------------------
test/clt-tests/basic/insert_basic.rec
––– input –––
searchd > /dev/null
––– output –––
––– input –––
sleep 3
––– output –––
––– input –––
cd /manticore-load
––– output –––
––– input –––
PROCESS_1_DELAY=0.5 PROGRESS_DELAY=0.5 ./manticore-load --drop --init="create table t" --total=10 --load="insert into t values(<increment>)" --threads=1 --delay=1
––– output –––
======================================================================================
Process 1: Running with threads=1, batch-size=1
Process 1: Dropping table: DROP TABLE IF EXISTS t
Process 1: Executing init command: create table t
Process 1: Generating new data cache /tmp/manticore_load_#!/[a-z0-9]+/!# ... 100%
-------------------------------------------------------------------------------------------------------------
Time      Elapsed   Progress    QPS      DPS      CPU     Workers    Chunks    Merging   Disk        Inserted
-------------------------------------------------------------------------------------------------------------
%{TIME}  5#!/\d\d/!#ms     -           -        -        N/A     -          0                   0B          0
- %{TIME}  1.#!/\d/!#s      #!/\d/!#0%         #!/\d/!#        #!/\d/!#        N/A     1          0                   465B        2
+ 04:18:06  1.5s      20%         2        2        N/A     1          0                   489B        2
- %{TIME}  2.#!/\d/!#s      #!/\d/!#0%         #!/\d/!#        #!/\d/!#        #!/(\d+%|N\/A)\s+/!#1          0                   465B        3
+ 04:18:07  2.5s      20%         2        2        10%     1          0                   489B        3
- %{TIME}  3.#!/\d/!#s      #!/\d/!#0%         1        1        #!/(\d+%|N\/A)\s+/!#1          0                   465B        4
+ 04:18:08  3.5s      40%         1        1        2%      1          0                   489B        4
- %{TIME}  4.#!/\d/!#s      #!/\d/!#0%         1        1        #!/(\d+%|N\/A)\s+/!#1          0                   465B        5
+ 04:18:09  4.5s      40%         1        1        3%      1          0                   489B        5
- %{TIME}  5.#!/\d/!#s      #!/\d/!#0%         1        1        #!/(\d+%|N\/A)\s+/!#1          0                   465B        6
+ 04:18:10  5.5s      60%         1        1        3%      1          0                   489B        6
- %{TIME}  6.#!/\d/!#s      #!/\d/!#0%         1        1        #!/(\d+%|N\/A)\s+/!#1          0                   465B        7
+ 04:18:11  6.5s      70%         1        1        2%      1          0                   489B        7
- %{TIME}  7.#!/\d/!#s      #!/\d/!#0%         1        1        #!/(\d+%|N\/A)\s+/!#1          0                   465B        8
+ 04:18:12  7.5s      80%         1        1        3%      1          0                   489B        8
- %{TIME}  8.#!/\d/!#s      #!/\d/!#0%         1        1        #!/(\d+%|N\/A)\s+/!#1          0                   465B        9
+ 04:18:13  8.5s      90%         1        1        3%      1          0                   489B        9
--------------------------------------------------------------------------------------
Process 1 final statistics:
Init command:     create table t
Load commands:
- insert into t values(<increment>)
Total time:       9#!/\.\d/!#s
Total queries:    10
Threads:          1
Batch size:       1
Total docs:       10
Docs per sec avg: 1
QPS avg:          1
QPS 1p:           1
QPS 5p:           1
QPS 95p:          #!/\d/!#
QPS 99p:          #!/\d/!#
Latency avg:      100#!/\d\.\d/!# ms
Latency 50p:      1050.0 ms
Latency 95p:      1050.0 ms
Latency 99p:      1050.0 ms
--------------------------------------------------------------------------------------

@github-actions

Copy link
Copy Markdown

clt-insert

👎 CLT tests in test/clt-tests/basic/
✅ OK: 5
❌ Failed: 1
⏳ Duration: 56s
👉 Check Action Results for commit 22589c3
Failed tests:

test/clt-tests/basic/worker_lifecycle_order.rec
––– input –––
searchd > /dev/null
––– output –––
––– input –––
sleep 3
––– output –––
––– input –––
cd /manticore-load
––– output –––
––– input –––
./manticore-load --drop --quiet --json --threads=1 --total=1 --init="CREATE TABLE worker_lifecycle_order(value int)" --worker-init="BEGIN; INSERT INTO worker_lifecycle_order(id,value) VALUES(1,10)" --worker-finalize="INSERT INTO worker_lifecycle_order(id,value) VALUES(3,30); COMMIT" --load="INSERT INTO worker_lifecycle_order(id,value) VALUES(2,20)"
––– output –––
{
"threads": 1,
"batch_size": 1,
"time": "00:00",
"total_operations": 1,
"operations_per_second": #!/\d+/!#,
"qps": {
"avg": 0,
"p99": 0,
"p95": 0,
"p5": 0,
"p1": 0
},
"latency": {
"avg": #!/\d+(\.\d+)?/!#,
"p50": #!/\d+(\.\d+)?/!#,
"p95": #!/\d+(\.\d+)?/!#,
"p99": #!/\d+(\.\d+)?/!#
}
}
––– input –––
mysql -h0 -P9306 -e "SELECT id,value FROM worker_lifecycle_order WHERE id=1; SELECT id,value FROM worker_lifecycle_order WHERE id=2; SELECT id,value FROM worker_lifecycle_order WHERE id=3"
––– output –––
+------+-------+
| id   | value |
+------+-------+
|    1 |    10 |
+------+-------+
+------+-------+
| id   | value |
+------+-------+
|    2 |    20 |
+------+-------+
+------+-------+
| id   | value |
+------+-------+
|    3 |    30 |
+------+-------+
––– input –––
./manticore-load --drop --quiet --json --threads=4 --total=4 --init="CREATE TABLE worker_lifecycle_parallel(value int)" --worker-init="BEGIN" --worker-finalize="COMMIT" --load="INSERT INTO worker_lifecycle_parallel(id,value) VALUES(<increment>,10)"
––– output –––
{
"threads": 4,
"batch_size": 1,
"time": "00:00",
"total_operations": 4,
"operations_per_second": #!/\d+/!#,
"qps": {
"avg": 0,
"p99": 0,
"p95": 0,
"p5": 0,
"p1": 0
},
"latency": {
"avg": #!/\d+(\.\d+)?/!#,
"p50": #!/\d+(\.\d+)?/!#,
"p95": #!/\d+(\.\d+)?/!#,
"p99": #!/\d+(\.\d+)?/!#
}
}
––– input –––
mysql -h0 -P9306 -N -e "SELECT COUNT(*),MIN(value),MAX(value) FROM worker_lifecycle_parallel"
––– output –––
+------+------+------+
|    4 |   10 |   10 |
+------+------+------+
––– input –––
./manticore-load --drop --threads=4 --batch-size=2 --total=8 --init="CREATE TABLE worker_lifecycle_failure(value int)" --worker-init="BEGIN" --worker-finalize="INVALID FINALIZER" --load="INSERT INTO worker_lifecycle_failure(id,value) VALUES(<increment>,10)" > /dev/null; echo $?; mysql -h0 -P9306 -N -e "SELECT COUNT(*) FROM worker_lifecycle_failure"
––– output –––
1
+------+
- |    0 |
+ | 0    |
+------+
––– input –––
./manticore-load --drop --quiet --json --threads=1 --batch-size=2 --total=4 --init="CREATE TABLE multiline_insert(value int)" --load="$(printf 'INSERT INTO multiline_insert(\nid,\nvalue\n) VALUES(\n<increment>,\n<int/1/100>\n)')"
––– output –––
{
"threads": 1,
"batch_size": 2,
"time": "00:00",
"total_operations": 4,
"operations_per_second": #!/\d+/!#,
"qps": {
"avg": 0,
"p99": 0,
"p95": 0,
"p5": 0,
"p1": 0
},
"latency": {
"avg": #!/\d+(\.\d+)?/!#,
"p50": #!/\d+(\.\d+)?/!#,
"p95": #!/\d+(\.\d+)?/!#,
"p99": #!/\d+(\.\d+)?/!#
}
}
––– input –––
mysql -h0 -P9306 -N -e "SELECT COUNT(*) FROM multiline_insert"
––– output –––
+------+
|    4 |
+------+
––– input –––
cache=$(./manticore-load --verbose --threads=1 --batch-size=2 --total=5 --init="CREATE TABLE empty_cache_regression(value int)" --load="INSERT INTO empty_cache_regression(id,value) VALUES(<increment>,<int/1/100>)" 2>&1 | sed -n 's/.*Generating new data cache \(\/tmp\/manticore_load_[a-f0-9]*\).*/\1/p' | head -1); test -n "$cache"; : > "$cache"; inode_before=$(stat -c %i "$cache"); ./manticore-load --drop --quiet --json --threads=1 --batch-size=2 --total=5 --cache-from-disk --init="CREATE TABLE empty_cache_regression(value int)" --load="INSERT INTO empty_cache_regression(id,value) VALUES(<increment>,<int/1/100>)"; inode_after=$(stat -c %i "$cache"); test "$inode_before" = "$inode_after"; test -s "$cache"; mysql -h0 -P9306 -N -e "SELECT COUNT(*) FROM empty_cache_regression"
––– output –––
{
"threads": 1,
"batch_size": 2,
"time": "00:00",
"total_operations": 6,
"operations_per_second": #!/\d+/!#,
"qps": {
"avg": 0,
"p99": 0,
"p95": 0,
"p5": 0,
"p1": 0
},
"latency": {
"avg": #!/\d+(\.\d+)?/!#,
"p50": #!/\d+(\.\d+)?/!#,
"p95": #!/\d+(\.\d+)?/!#,
"p99": #!/\d+(\.\d+)?/!#
}
}
+------+
|    5 |
+------+

@sanikolaev
sanikolaev merged commit cadeeb3 into main Aug 18, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant