[Firebird-devel] [FB-Tracker] Created: (CORE-6296) Many connections results in poor performance

2020-05-01 Thread Thomas Kragh (JIRA)
Many connections results in poor performance 
-

 Key: CORE-6296
 URL: http://tracker.firebirdsql.org/browse/CORE-6296
 Project: Firebird Core
  Issue Type: Bug
  Components: Engine
Affects Versions: 3.0.5
 Environment: Windows/Linux
Reporter: Thomas Kragh
Priority: Critical


Hey
Where I work, we run a fairly large education platform, at peek hours the 
database servers execute approximately 1200 to 1400 query's/second. Over the 
last 4-5 weeks I have been working with Alexey from IBSurgeon to resolve a 
performance issue that we have been having. 

The problem occurs when the system is under high load, and over a period of 
5-10 seconds the number of attachments rises from eg. 125 to 800 attachments. 
800 is the max limit allowed by the connection pools, eg. 4 web servers with a 
200 max pool size. Under high load with 125 attachments the web application is 
spending 13 milliseconds on average waiting for the database to execute 
query's, when we reach 800 attachments this number i 10-20 times greater.

I believe that the quick rise in attachments can be correlated with garbage 
collection in .Net, where the application is suspended for eg. 100ms, but the 
webserver still receives requests, when GC is done, the queued requests are 
executed in parallel, causing perhaps 100 new attachments to the database. This 
again causes the database server to respond slower that the average 13ms, when 
this happens the 3 other webservers will need to create more attachments to the 
database, causing a chain reaction. 
After hitting 800 attachments the average query time is 10-20 times slower, 
this can last for hours if the web application is not restarted, after witch 
everything returns to normal. 

To recreate what I think is the problem, I have created a sample 
application(see download link in bottom), that shows that overall query speed 
slows down proportional to the number of attachments. 

Reproduce steps:
1) Ajust the connectionstring found in App.config
2) Start one instance of the console application with the command 
"FbPerformance.exe --testcase ping --sleep 500", --testcase describes the 
"mode", and --sleep is the time between ping. Leave the application running. 
Ping query is a simple "select current_timestamp from mon$database".
3) Start another instance of the application with the command 
"FbPerformance.exe --testcase ambient --count 800" testcase is "ambient" and 
creates 800 connections/transactions to the database. No statements will be 
executed on these connections!
4) While the second application creates attachments please observe the "execute 
statement" time that the ping application prints. This will go from 2-4ms to 
20-40ms.

Step 1-4 is the steps to reprocuce. 5-6 is bonus information

5) Stop the ping application and change --sleep to 20, and observe the CPU 
usage of the Firebird process, witch i find quite high compared to the small 
amount of work. 
6) Stop the ambient instance from step 3, and observe that start 
transaction/execute statement in the ping application can take quite some time 
- I have observed cases of 600-1400ms, after witch executing statement is back 
to about 2-4ms.

This behavior has been observed on Firebird 3.0.5 running Centos7, in 
SuperServer mode, where the test application was runnning on Windows Server 
2012R2.
And on Firebird 3.0.5 running Windows 10 in Classic, SuperClassic and 
SuperServer mode, where the test application was run on the same machine.

Also note that if I Attache a trace session(FBTraceManager3) it will report 
that the ping statement takes less that 1ms to execute, even though the ping 
application reports 40ms.

sample application
https://mublobstorageprod.blob.core.windows.net/mudrift/fbperformance/sampleapplication.zip?st=2020-05-01T21%3A04%3A08Z&se=2025-05-02T21%3A04%3A00Z&sp=rl&sv=2018-03-28&sr=b&sig=SiwOnTZ15E4HQsY3aNtZnkFmTlseiwN8xt5tG%2BmJ3qY%3D

sample application source
https://mublobstorageprod.blob.core.windows.net/mudrift/fbperformance/sampleapplication_src.zip?st=2020-05-01T21%3A04%3A51Z&se=2025-05-02T21%3A04%3A00Z&sp=rl&sv=2018-03-28&sr=b&sig=3qt59y1TcbFkt12%2FUWm1dTPHooo1ELvE77X5tXpHLB0%3D

I hope this is enough information for you guys to track down this issue, and 
thank for a great database server! 
Best regards Thomas

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://tracker.firebirdsql.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira




Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


[Firebird-devel] [FB-Tracker] Created: (CORE-6295) Incomplete header files

2020-05-01 Thread Vlad Khorsun (JIRA)
Incomplete header files
---

 Key: CORE-6295
 URL: http://tracker.firebirdsql.org/browse/CORE-6295
 Project: Firebird Core
  Issue Type: Bug
  Components: Installation
Affects Versions: 3.0.5, 4.0 Beta 1, 3.0.4, 3.0.3, 4.0 Alpha 1, 3.0.2, 
3.0.1, 3.0.0, 4.0 Initial
Reporter: Vlad Khorsun


\include\firebird\IdlFbInterfaces.h contains references to the PerformanceInfo 
which is declared in \src\jrd\ntrace.h
Contents of this file should be included into final ibase.h

Also, i see no \include\firebird folder in zip kits

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://tracker.firebirdsql.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira




Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


[Firebird-devel] [FB-Tracker] Created: (CORE-6294) Negative 128-bit integer constants are not accepted in DEFAULT clause

2020-05-01 Thread Alexander Peshkov (JIRA)
Negative 128-bit integer constants are not accepted in DEFAULT clause
-

 Key: CORE-6294
 URL: http://tracker.firebirdsql.org/browse/CORE-6294
 Project: Firebird Core
  Issue Type: Bug
Affects Versions: 4.0 Beta 2
Reporter: Alexander Peshkov


Statement
create domain dom06_13 as numeric(20,2) default -991;
fails

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://tracker.firebirdsql.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira




Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel


[Firebird-devel] [FB-Tracker] Created: (CORE-6293) ISQL does not process (not extract) hex string of external SP body

2020-05-01 Thread Kovalenko Dmitry (JIRA)
ISQL does not process (not extract) hex string of external SP body
--

 Key: CORE-6293
 URL: http://tracker.firebirdsql.org/browse/CORE-6293
 Project: Firebird Core
  Issue Type: Bug
  Components: ISQL
Affects Versions: 3.0.6
Reporter: Kovalenko Dmitry
Priority: Minor


Source code:
 CREATE PROCEDURE UDR__GEN_ROWS_05
 (START_N INTEGER NOT NULL,
 END_N INTEGER NOT NULL)
 RETURNS
 (N INTEGER NOT NULL)
 EXTERNAL NAME 'udrcpp_example.dll!gen_rows'
 ENGINE UDR
 AS x'000100';

ISQL extacts:

ALTER PROCEDURE UDR__GEN_ROWS_05 (START_N INTEGER NOT NULL,
END_N INTEGER NOT NULL)
RETURNS (N INTEGER NOT NULL)
EXTERNAL NAME 'udrcpp_example.dll!gen_rows'
ENGINE UDR
AS ''


-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://tracker.firebirdsql.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira




Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel