[ 
https://issues.apache.org/jira/browse/IGNITE-21562?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Maksim Zhuravkov updated IGNITE-21562:
--------------------------------------
    Description: 
During implementation of metrics for SQL were added set of tests. However added 
set of tests is insufficient.
Let's add the following test scenarios:

Plan cache metrics:

sql.plan.cache.Misses - the number of cache misses.
sql.plan.cache.Hits - the number of cache hits.

Plan cache  hit/miss metric for queries executed concurrently:

 * execute a new query (cache miss metric increases).
 * execute the same query (cache hit metric increases). 
 * repeat for multiple queries that run concurrently. Check that metric 
increased expected times. (check for plans cache hit and plans cache miss)

Cursor metrics: 

sql.client.OpenCursors - the number of currently open cursors.

SQL API:
 * start a query, call close on the ResultSet multiple times (the metric be 
updated after the first close operation).
 * start a query, start another query (the metric should increase by 2). Close 
the ResultSet of the second query (the metric should decrease by 1). Close the 
first ResultSet (the metric should return to its initial value).
 * run metric checks for multiple concurrent operations.
 * check that the metric returns to its initial value after a timeout (final 
part is missing - see testMetricsDuringTimeouts).
 * check that closing the session returns the metric to its initial value (no 
standalone tests for this, tested in pre/post run checks).

JDBC API:
 * For queries (execute, executeQuery methods of Statement/PreparedStatement):
 ** start a query (the metric should increase), obtain ResultSet, close it (the 
metric should decrease).
 ** start a query, start another query (the metric should increase by 2). 
Obtain ResultSet for both. Close the ResultSet of the second query (the metric 
should decrease by 1). Close the first ResultSet (the metric should return to 
its initial value).
 ** run metric checks for multiple queries concurrently.
 ** check that the metric returns to its initial value when a query returns an 
error.
 ** check that the metric returns to its initial value after a timeout.
 * For DML statements (via execute, executeUpdate, executeBatch methods of 
Statement/PreparedStatement):

 **  execute DML statement (the metric should increase), close the statement 
(the metric should return to its initial value). 
 ** execute DML statement (the metric should increase), run another command 
using the same statement, close the statement (the metric should return to its 
initial value). 
 ** repeat for multiple DML operations that run concurrently.
 ** run metric checks for multiple DML operations concurrently.
 ** check that the metric returns to its initial value when a DML operation 
returns an error.
 ** check that the metric returns to its initial value after a timeout.

* Check check closing Statement/Connection also affects the metric and returns 
it to its initial value.

  was:
During implementation of metrics for SQL were added set of tests. However added 
set of tests is insufficient.
Let's add the following test scenarios:

Plan cache metrics:

sql.plan.cache.Misses - the number of cache misses.
sql.plan.cache.Hits - the number of cache hits.

For plan cache metrics:

 * repeat for multiple queries that run concurrently. Check that metric 
increased expected times. (check for plans cache hit and plans cache miss)

Cursor metrics: 

sql.client.OpenCursors - the number of currently open cursors.

SQL API:
 * start a query, call close on the ResultSet multiple times (the metric be 
updated after the first close operation).
 * start a query, start another query (the metric should increase by 2). Close 
the ResultSet of the second query (the metric should decrease by 1). Close the 
first ResultSet (the metric should return to its initial value).
 * run metric checks for multiple concurrent operations.
 * check that the metric returns to its initial value after a timeout (final 
part is missing - see testMetricsDuringTimeouts).
 * check that closing the session returns the metric to its initial value (no 
standalone tests for this, tested in pre/post run checks).

JDBC API:
 * For queries (execute, executeQuery methods of Statement/PreparedStatement):
 ** start a query (the metric should increase), obtain ResultSet, close it (the 
metric should decrease).
 ** start a query, start another query (the metric should increase by 2). 
Obtain ResultSet for both. Close the ResultSet of the second query (the metric 
should decrease by 1). Close the first ResultSet (the metric should return to 
its initial value).
 ** run metric checks for multiple queries concurrently.
 ** check that the metric returns to its initial value when a query returns an 
error.
 ** check that the metric returns to its initial value after a timeout.
 * For DML statements (via execute, executeUpdate, executeBatch methods of 
Statement/PreparedStatement):

 **  execute DML statement (the metric should increase), close the statement 
(the metric should return to its initial value). 
 ** execute DML statement (the metric should increase), run another command 
using the same statement, close the statement (the metric should return to its 
initial value). 
 ** repeat for multiple DML operations that run concurrently.
 ** run metric checks for multiple DML operations concurrently.
 ** check that the metric returns to its initial value when a DML operation 
returns an error.
 ** check that the metric returns to its initial value after a timeout.

* Check check closing Statement/Connection also affects the metric and returns 
it to its initial value.


> Improve test coverage for SQL metrics
> -------------------------------------
>
>                 Key: IGNITE-21562
>                 URL: https://issues.apache.org/jira/browse/IGNITE-21562
>             Project: Ignite
>          Issue Type: Improvement
>          Components: sql
>            Reporter: Iurii Gerzhedovich
>            Priority: Major
>              Labels: ignite-3
>
> During implementation of metrics for SQL were added set of tests. However 
> added set of tests is insufficient.
> Let's add the following test scenarios:
> Plan cache metrics:
> sql.plan.cache.Misses - the number of cache misses.
> sql.plan.cache.Hits - the number of cache hits.
> Plan cache  hit/miss metric for queries executed concurrently:
>  * execute a new query (cache miss metric increases).
>  * execute the same query (cache hit metric increases). 
>  * repeat for multiple queries that run concurrently. Check that metric 
> increased expected times. (check for plans cache hit and plans cache miss)
> Cursor metrics: 
> sql.client.OpenCursors - the number of currently open cursors.
> SQL API:
>  * start a query, call close on the ResultSet multiple times (the metric be 
> updated after the first close operation).
>  * start a query, start another query (the metric should increase by 2). 
> Close the ResultSet of the second query (the metric should decrease by 1). 
> Close the first ResultSet (the metric should return to its initial value).
>  * run metric checks for multiple concurrent operations.
>  * check that the metric returns to its initial value after a timeout (final 
> part is missing - see testMetricsDuringTimeouts).
>  * check that closing the session returns the metric to its initial value (no 
> standalone tests for this, tested in pre/post run checks).
> JDBC API:
>  * For queries (execute, executeQuery methods of Statement/PreparedStatement):
>  ** start a query (the metric should increase), obtain ResultSet, close it 
> (the metric should decrease).
>  ** start a query, start another query (the metric should increase by 2). 
> Obtain ResultSet for both. Close the ResultSet of the second query (the 
> metric should decrease by 1). Close the first ResultSet (the metric should 
> return to its initial value).
>  ** run metric checks for multiple queries concurrently.
>  ** check that the metric returns to its initial value when a query returns 
> an error.
>  ** check that the metric returns to its initial value after a timeout.
>  * For DML statements (via execute, executeUpdate, executeBatch methods of 
> Statement/PreparedStatement):
>  **  execute DML statement (the metric should increase), close the statement 
> (the metric should return to its initial value). 
>  ** execute DML statement (the metric should increase), run another command 
> using the same statement, close the statement (the metric should return to 
> its initial value). 
>  ** repeat for multiple DML operations that run concurrently.
>  ** run metric checks for multiple DML operations concurrently.
>  ** check that the metric returns to its initial value when a DML operation 
> returns an error.
>  ** check that the metric returns to its initial value after a timeout.
> * Check check closing Statement/Connection also affects the metric and 
> returns it to its initial value.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to