February - April 2014
February 2014
- Benchmarked inserts in v3.0 vs v2.5: compare cases when adding 1 mil rows using 10 attaches at the same time
Result: v3.0 is significantly faster generally, but GEN_ID is much slower in v3.0
- Tested heavy index load along with nbackup in v3.0 vs v2.5
Result: MON$ tables are inaccessible untill nbackup -N is finished
- Cancelling of gfix -sweep via delete from mon$attachments seems not working: gfix process is still alive
Result: CORE-4337
- Non-privileged user can: (1) grant to himself other's role and (2) update rdb$security_classes table
Result: CORE-4341, CORE-4342
- Benchmarked of bulk inserts into indexed table, single connect, 9999 execute blocks (1000 rows each of them)
Result: no noticable differences between v3.0 and v2.5
- Benchmarked simultaneous restore of a production database using services
Result: no noticable differences between v3.0 and v2.5
- Benchmarked hash join in 3.0 vs merge join in 2.5; also hash join vs nested loop join (both in 3.0)
Result: hash join in almost all cases runs with the same or better performance
- Found issue when restore of a production database could not be finished on v2.5 but succeeds in v3.0
Result: CORE-4352
- Compare performance between nested loops in FB 3.0 vs 2.5 in simple query that counts number of 'lucky tickets'
Result: v3.0 looses about 15% in performance
- Resume checking accuracy with hash join in plan
Result: no errors in result sets, hash join is same or faster than merge join
- Finish comparing performance and accuracy of complex queries in FB v3.0 vs MS SQL 2005
Result: no errors found in result sets, FB is a worse performer in medium and big data volumes
March 2014
- Found a few cases when cursor stability does not work as expected
Result: added test cases to CORE-3362
- Asynchronous cancellation request can be ignored in some cases
Result: CORE-4356
- Non-priviledged user can block creation of new tables by select ... from rdb$database FOR UPDATE WITH LOCK
Result: CORE-4357
- GROUP BY from derived table which contains group by on field with LITERAL value returns wrong result
Result: CORE-4360, fixed by Dmitry Yemanov
- Investigated stored functions: found some issues about no-caching in case of DETERMINISTIC clause
Result: reported to core developers
- Poor performance of windowed lead()over() function in comparison with explicit cursor (not uses indexes)
Result: reported to core developers
- Tested index scans vs full table scans
Result: index scan wins when it covers up to 97% of data
- Wrong result of WHERE predicate when it contains NULL IS NOT DISTINCT FROM (select min(NULL) from ...)
Result: CORE-4366, fixed by Dmitry Yemanov
- Poor performance of explicit cursors containing correlated subqueries in the select list
Result: CORE-4379, fixed by Dmitry Yemanov
- Start implementing big test that emulates OLTP activity
April 2014
- Continued implementing OLTP-emulation test, refactored it multiple times in order to increase performance and minimize lock conflicts frequency
- SELECT WITH LOCK may enter an infinite loop for a single record
Result: CORE-4388, fixed by Dmitry Yemanov
- Trigger on DISCONNECT does not fire in FB 3.0
Result: regression is fixed by Dmitry Yemanov
- Inner join (nested loop) does not take in account predicate in WHERE clause when driven source is VIEW based on GROUP BY
Result: CORE-4399
- MERGE set row_count always to 1 (despite of actual rows affected)
Result: CORE-4400
- Restore troubles: ERROR:Access to UDF/BLOB-filter module "" is denied by server administrator
Result: supposedy fixed by Dmitry Yemanov
- FB crashes when fbtracemgr restarts
Result: fixed by Alex Peshkov
Pavel Zotov
Moscow, Russian Federation
February - April 2014
February 2014
- Benchmarked inserts in v3.0 vs v2.5: compare cases when adding 1 mil rows using 10 attaches at the same time
Result: v3.0 is significantly faster generally, but GEN_ID is much slower in v3.0
- Tested heavy index load along with nbackup in v3.0 vs v2.5
Result: MON$ tables are inaccessible untill nbackup -N is finished
- Cancelling of gfix -sweep via delete from mon$attachments seems not working: gfix process is still alive
Result: CORE-4337
- Non-privileged user can: (1) grant to himself other's role and (2) update rdb$security_classes table
Result: CORE-4341, CORE-4342
- Benchmarked of bulk inserts into indexed table, single connect, 9999 execute blocks (1000 rows each of them)
Result: no noticable differences between v3.0 and v2.5
- Benchmarked simultaneous restore of a production database using services
Result: no noticable differences between v3.0 and v2.5
- Benchmarked hash join in 3.0 vs merge join in 2.5; also hash join vs nested loop join (both in 3.0)
Result: hash join in almost all cases runs with the same or better performance
- Found issue when restore of a production database could not be finished on v2.5 but succeeds in v3.0
Result: CORE-4352
- Compare performance between nested loops in FB 3.0 vs 2.5 in simple query that counts number of 'lucky tickets'
Result: v3.0 looses about 15% in performance
- Resume checking accuracy with hash join in plan
Result: no errors in result sets, hash join is same or faster than merge join
- Finish comparing performance and accuracy of complex queries in FB v3.0 vs MS SQL 2005
Result: no errors found in result sets, FB is a worse performer in medium and big data volumes
March 2014
- Found a few cases when cursor stability does not work as expected
Result: added test cases to CORE-3362
- Asynchronous cancellation request can be ignored in some cases
Result: CORE-4356
- Non-priviledged user can block creation of new tables by select ... from rdb$database FOR UPDATE WITH LOCK
Result: CORE-4357
- GROUP BY from derived table which contains group by on field with LITERAL value returns wrong result
Result: CORE-4360, fixed by Dmitry Yemanov
- Investigated stored functions: found some issues about no-caching in case of DETERMINISTIC clause
Result: reported to core developers
- Poor performance of windowed lead()over() function in comparison with explicit cursor (not uses indexes)
Result: reported to core developers
- Tested index scans vs full table scans
Result: index scan wins when it covers up to 97% of data
- Wrong result of WHERE predicate when it contains NULL IS NOT DISTINCT FROM (select min(NULL) from ...)
Result: CORE-4366, fixed by Dmitry Yemanov
- Poor performance of explicit cursors containing correlated subqueries in the select list
Result: CORE-4379, fixed by Dmitry Yemanov
- Start implementing big test that emulates OLTP activity
April 2014
- Continued implementing OLTP-emulation test, refactored it multiple times in order to increase performance and minimize lock conflicts frequency
- SELECT WITH LOCK may enter an infinite loop for a single record
Result: CORE-4388, fixed by Dmitry Yemanov
- Trigger on DISCONNECT does not fire in FB 3.0
Result: regression is fixed by Dmitry Yemanov
- Inner join (nested loop) does not take in account predicate in WHERE clause when driven source is VIEW based on GROUP BY
Result: CORE-4399
- MERGE set row_count always to 1 (despite of actual rows affected)
Result: CORE-4400
- Restore troubles: ERROR:Access to UDF/BLOB-filter module "" is denied by server administrator
Result: supposedy fixed by Dmitry Yemanov
- FB crashes when fbtracemgr restarts
Result: fixed by Alex Peshkov
Pavel Zotov
Moscow, Russian Federation