From 97a42861b2ef37b5ea47c097c19e6d9ffeecb3d4 Mon Sep 17 00:00:00 2001 From: "Edward M. Kagan" Date: Tue, 9 Nov 2021 20:19:01 +0300 Subject: [PATCH] Started work on test plan --- readme.md | 49 ++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 48 insertions(+), 1 deletion(-) diff --git a/readme.md b/readme.md index 9402939..50f5c9f 100644 --- a/readme.md +++ b/readme.md @@ -11,9 +11,12 @@ - [Apache Cayenne](https://github.com/apache/cayenne) - [Ebean](https://github.com/ebean-orm/ebean) -- [MyBatis](https://github.com/mybatis/mybatis-3) - [jOOQ](https://github.com/jOOQ/jOOQ) - [speedment](https://github.com/speedment/speedment) +- [ORMLite Core](https://github.com/j256/ormlite-core) +- [EclipseLink](https://github.com/eclipse-ee4j/eclipselink) +- [MyBatis](https://github.com/mybatis/mybatis-3) +- [Querydsl](https://github.com/querydsl/querydsl) - [Hibernate](https://github.com/hibernate/hibernate-orm) (as JPA representative - zero mark) ## Initial criteria @@ -31,3 +34,47 @@ Good to see if: - "N+1" problem automatic solutions (as much as possible) - ability to generate raw SQL (to be executed elsewhere) - support for binary (BLOB) storage and extraction (10Mb per record max) + +## Test plan + +- postgres version 14 & 14-alpine (test database performance baseline) +- two databases (one with partitioning, one without) +- tables per database + - xxs _[50 records]_ + - xs _[500 records]_ + - s _[5000 records]_ + - m _[50000 records]_ + - l _[500000 records]_ + - xl _[5000000 records]_ + - xxl _[50000000 records]_ +- each test module starts a fresh copy of database +- database content is procedure-generated +- random sequences must be pregenerated to be exactly same for all tests (to eliminate test-path diviations) +- random sequence for each test is unique and not intersect (to eliminate postgresql optimizations) + +## Requests plan + +- search + - random get by id + - find by integer equals + - find by string equals + - find by date equals + - find by integer more X & less Y + - find by float more X & less Y + - find by date after X & before Y + + +## Documentation analysis + +**MyBatis** out of competitions, due to ass-whipping-xml notation.