yes, one connection per database, any thread needs to access this database 
would create its own transaction. 

To: [email protected]
From: [email protected]
Date: Wed, 15 Jun 2016 21:38:48 +0200
Subject: Re: [firebird-support] performance issue with firebird 3.0 embedded on 
linux














 

 



  


    
      
      
      




Hi,
 
do you mean that you share one connection between multiple threads?
 


regards,
Karol Bieniaszewski
 

From: mailto:[email protected] 

Sent: Wednesday, June 15, 2016 5:55 PM
To: [email protected] 

Subject: RE: [firebird-support] performance issue with firebird 3.0 
embedded on linux
 
  




Thanks, Helen. Please see my replies inline.  
 
I am sure it is not 3.0 specific, 2.5 is the same. and the main issue is 
scalability, sequential transaction performance is actually pretty good, 
comparable to ESE store on windows I was comparing firebird against.  but 
when running multiple transactions in parallel, ESE perf increased from 4 
tx/sec 
to 26 tx/sec (128 byte/record, 200 records per transaction, 6 transaction 
threads on 6 cores, which I expect the best, logical cpu/ht is not very useful 
performance-wise), while firebird decreased. These transactions do not 
write-conflict with each other. 
 
The basic flow of our code is like, first the main function creates a 
database connection, and spawns multiple threads, passing in the database 
connection. Each thread does this: create a transaction using the db 
connection, 
do insertion of data, and commit the transaction. Each thread measures its own 
elapsed time.&nb sp;





To: [email protected]
From: 
[email protected]
Date: Wed, 15 Jun 2016 19:04:33 
+1200
Subject: Re: [firebird-support] performance issue with firebird 3.0 
embedded on linux

  


Wednesday, June 15, 2016, 5:58:39 PM, Karol B. 
wrote:

> test without details say nothing to me
> 1. Did you 
compare results with e.g. FB2.5 in on the same maschine with same configuration 
(FBConfig)
My project migrated from FB2.5 to FB3.0. I am pretty sure it is 
not 3.0 specific. 

> 2. What is your page size and type of 
HDD?
SSD. 512GB Samsung EVO 850. The file system is ext4, block size 4096. 



> 3. Do you have BOST feature enabled on CPU and HT? -- 
Boost?
Yes, Turbo boost and hyper threading are enabled. 

> 4. Did 
you compare results on GLOBAL TEMPORARY TABLE - i know this is not the same but 
can show some info?
Could you give me some details about how to use GLOBAL 
TEMPORARY TABLE? 


> 5. How do you test this times about your 
threads and how do you start them?
I used the monolithic time in code i.e. 
clock_gettime(CLOCK_MONOTONIC, &ts)  on each thread to calculate the 
elapsed time. should be high resolution. 


> 6. Exact version of 
FB
Firebird-3.0.0.32483-0

and 7. If on Windows, how did you go about 
configuring CpuAffinityMask?
- which processors did you intend to set it for 
and what was the value you configured?
It's on Linux, I read from document 
that multiple processors are by default enabled. but I anyway set 
CpuAffinityMask to 4095, but it seems no change to performance. 

- did 
you try to do this configuration whilst an engine instance was running, without 
restarting?
No. each time I change configuration, I restart the program. 


HB







    
     

    
    






                                          

Reply via email to