Load testing of IBProvider v3.52.1 and Firebird v3.0.4. 100% completion
For the first time, we managed to perform all IBProvider system tests applicable to Firebird v3 in one run. This took 26 days and a ten-core processor.
Our opinion
On a bigger scale, it was a load testing of Firebird and equipment rather than of IBProvider.
Taking into account the results of previous attempts, we can give two simple tips to everyone using Firebird v3 for industrial solutions:
- Use a 64-bit dedicated server.
- Always ensure you have free space on the database partition.
We still recommend IBProvider users to connect to Firebird via the provider’s own client. To do this, enter «dbclient_type=fb.direct» in the connection string.
Test environment
Hardware
- Intel 6950X (10C/10T)
- RAM: 128GB 2400MHz
- Database and TMP Storage: RAM Disk (80GB)
- System Drive: SSD
- OS: Windows 10 x64 Pro (1709)
Software components
- IBProvider v3.52.1.28912 x64 (VS2017)
- LCPI OLE DB Services v1.5.1.540 x64 (VS2017)
- Firebird v3.0.4.33047 x64 SuperServer (VS2015)
Database
- Third dialect
- Page size: 16KB
Forced rubbish removal in the data base was launched every hour.
Tests
The source texts of the test system can be found in the directory:
Testing results
Basic information from the test system log
Process ID: 3820 [TEST HEAP] Initialize ... OK [10.09.2018 09:06:15] [ExecuteTests] CommandLine: target\ibp_oledb_test_vc15_x64_Release.exe /thread_count 10 /log_file_prefix fb30_fb.direct_ram_w64_d3 /log_dir ..\_log\all\ /new_db_location "inet4://localhost/d:\database\ram\" /cn_str "provider=LCPI.IBProvider.3.Private.vc15.release;location=inet4://localhost/d:\database\ram\ibp_test_fb30_d3_all.gdb;user id=GAMER;password=vermut;ctype=win1251;temp_file_dir=d:\database\ram\temp;dbclient_type=fb.direct;icu_library=icuuc52.dll;wchars_in_utf8_symbol=2" /oledb_svc_cmp "LCPI.OleDbServices.DataInitManager.Local.1.Private.vc15.release" /test * [10.09.2018 09:06:15] [ExecuteTests] Test Mask : [*] [10.09.2018 09:06:15] [info] Provider DLL :lcpi.ibprovider_v3_vc15_w64_prof_i.dll [10.09.2018 09:06:15] [info] Provider Version:3.52.1.28912 [10.09.2018 09:06:15] [info] Server Name :Firebird [10.09.2018 09:06:15] [info] Server Version :3.0.4.33047 [10.09.2018 09:06:15] [info] Client Name :LCPI.IBProvider.RemoteFB [10.09.2018 09:06:15] [info] Client Version :3.52.1.28912 [10.09.2018 09:06:15] [info] Database ODS :12.0 [10.09.2018 09:06:15] [info] Database Dialect:3 [10.09.2018 09:06:15] [info] ConnectionString: provider=LCPI.IBProvider.3.Private.vc15.release;location=inet4://localhost/d:\database\ram\ibp_test_fb30_d3_all.gdb;user id=GAMER;password=vermut;ctype=win1251;temp_file_dir=d:\database\ram\temp;dbclient_type=fb.direct;icu_library=icuuc52.dll;wchars_in_utf8_symbol=2 [10.09.2018 09:06:15] [ExecuteTests] [10.09.2018 09:06:15] [ExecuteTests] Enter [cancel] for interrupt execution [10.09.2018 09:06:15] [ExecuteTests] [10.09.2018 09:06:15] Creation 10 thread(s)... ...... [06.10.2018 22:58:29] [summary] ------------------------------------------- [SUMMARY INFORMATION] [06.10.2018 22:58:29] [summary] [TESTS] [06.10.2018 22:58:29] [summary] EXECUTED : 7049700 [06.10.2018 22:58:29] [summary] SUCCEEDED : 7049644 [06.10.2018 22:58:29] [summary] FAILED : 0 [06.10.2018 22:58:29] [summary] WITH WARNINGS : 56 [ 80 warning(s) ] [06.10.2018 22:58:29] [summary] [06.10.2018 22:58:29] [summary] - - - - - - - - - - - - - - - - - - - - - - [06.10.2018 22:58:29] [summary] [TEST TIMES] [06.10.2018 22:58:29] [summary] REAL : 227578381250288 [263 day(s)09:37:18.1250288] [06.10.2018 22:58:29] [summary] USER : 27392280625000 [31 day(s)16:53:48.0625000] [06.10.2018 22:58:29] [summary] KERNEL : 14525038593750 [16 day(s)19:28:23.8593750] [06.10.2018 22:58:29] [summary] TOTAL : 41917319218750 [48 day(s)12:22:11.9218750] [06.10.2018 22:58:30] [06.10.2018 22:58:30] [TEST HEAP] Test heap is empty [06.10.2018 22:58:30] [TEST HEAP] Validate ... OK [06.10.2018 22:58:30] [TEST HEAP] Destroy ... OK [06.10.2018 22:58:30] [06.10.2018 22:58:30] [summary] ------------------------------------------- [PROCESS INFORMATION] [06.10.2018 22:58:30] [summary] [VIRTUAL MEMORY] [06.10.2018 22:58:30] [summary] [06.10.2018 22:58:30] [summary] PRIVATE BYTES : 13876 KB [13MB 564KB] [06.10.2018 22:58:30] [summary] PEAK PRIVATE BYTES : 12976404 KB [12GB 384MB 276KB] [06.10.2018 22:58:30] [summary] VIRTUAL SIZE : 187184 KB [182MB 816KB] [06.10.2018 22:58:30] [summary] PAGE FAULT COUNT : 1658089969 [06.10.2018 22:58:30] [summary] [06.10.2018 22:58:30] [summary] - - - - - - - - - - - - - - - - - - - - - - [06.10.2018 22:58:30] [summary] [HANDLES] [06.10.2018 22:58:30] [summary] [06.10.2018 22:58:30] [summary] HANDLES : 158 [06.10.2018 22:58:30] [summary] [06.10.2018 22:58:30] [summary] - - - - - - - - - - - - - - - - - - - - - - [06.10.2018 22:58:30] [summary] TOTAL ERRORS : 0 [06.10.2018 22:58:30] [summary] TOTAL WARNINGS: 80 [06.10.2018 22:58:30] [summary] FULL PASSES : 1 [06.10.2018 22:58:30] [summary] GEN TESTS : 8295133
Database state
Database header page information: Flags 0 Generation 62840501 System Change Number 0 Page size 16384 ODS version 12.0 Oldest transaction 62827202 Oldest active 62827203 Oldest snapshot 62827203 Next transaction 62827203 Sequence number 0 Next attachment ID 136634 Implementation HW=AMD/Intel/x64 little-endian OS=Windows CC=MSVC Shadow count 0 Page buffers 0 Next header page 0 Database dialect 3 Creation date Sep 10, 2018 8:54:47 Attributes Variable header data: *END*
Result of database verification:
HOME4 Mon Oct 8 09:08:27 2018 Database: D:\DATABASE\RAM\IBP_TEST_FB30_D3_ALL.GDB Validation started HOME4 Mon Oct 8 09:08:30 2018 Database: D:\DATABASE\RAM\IBP_TEST_FB30_D3_ALL.GDB Warning: Page 260 is an orphan .... HOME4 Mon Oct 8 09:08:40 2018 Database: D:\DATABASE\RAM\IBP_TEST_FB30_D3_ALL.GDB Warning: Page 112395 is an orphan HOME4 Mon Oct 8 09:08:40 2018 Database: D:\DATABASE\RAM\IBP_TEST_FB30_D3_ALL.GDB Validation finished: 0 errors, 2184 warnings, 2184 fixed
Information on the test process state
Information on the Firebird process state
To sum it up
Of course, here we can again write about IBProvider reliability and high-load systems working around the clock.
But we will write a different thing.
Overall, this experiment is quite expensive. And it is not only due to the cost of the HEDT system on which it was conducted but also due to associated costs.
All this was paid by the IBProvider users who had bought licenses.
If you too are interested to see how it eventually ends, join them.
You will be among those whom we say THANK YOU for giving us a chance to do «the best job in the world».