[CONJ-658] Ensure no benchmark regression on release Created: 2018-10-09  Updated: 2018-10-09  Resolved: 2018-10-09

Status: Closed
Project: MariaDB Connector/J
Component/s: performance
Affects Version/s: None
Fix Version/s: N/A

Type: Task Priority: Major
Reporter: Diego Dupin Assignee: Diego Dupin
Resolution: Fixed Votes: 0
Labels: None


 Description   

To ensure no performance regression on release, some benchmarks are to be run.
Benchmarks to be run :

  • connection time
  • do 1 (minimum query without resultset)
  • SELECT 1 ( minimum query with resultset)
  • SELECT * FROM mysql.user ( query with resultset and 46 fields )
  • SELECT 10*REPEAT('a', 100) from seq_1_to_100000 (very big resulset)

project on https://github.com/rusher/mariadb-java-driver-benchmark



 Comments   
Comment by Diego Dupin [ 2018-10-09 ]

benchmark done and updated.

example "select * from mysql.user LIMIT 1" :

Benchmark                                 (driver)  Mode   Cnt     Score    Error  Units
Select_1_mysql_user.test                     mysql  avgt   200   201.173 ±  2.973  µs/op
Select_1_mysql_user.test                   mariadb  avgt   200   167.166 ±  2.429  µs/op
Select_1_mysql_user.test                   drizzle  avgt   200   224.052 ±  3.030  µs/op

Comment by Vladislav Vaintroub [ 2018-10-09 ]

I'd suggest to test connect-disconnect on non-TCP connections (pipes, or unix sockets)

BLOB handling, e.g
SELECT('<very_large_string>') => send and receive large string
SELECT REPEAT('a',<big_number>) - receive large string
SELECT REPEAT('a',<big_number>) from seq_1_to_100000 - receive many large strings

Generated at Thu Feb 08 03:17:22 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.