On 09.04.2010 10:39, Rajesh Datla wrote:
Hi All,
I like to know the performance utilization of multi-processors on a machine by Derby 10.3. Does Derby 10.3 utilize all CPU's on 8 CPU machine?.


Hi Rajesh,

I cannot give you any hard numbers for 10.3, but I have some general comments. Hopefully someone else can pitch in with more details.

First, a fair bit of performance / scalability work has been done since 10.3. The community is in the process of preparing for the 10.6 release [1]. I would strongly suggest you use a newer release if possible.

Further, how much of the CPU Derby can utilize depends heavliy on the load, with factors such as:
 - number of concurrent connections / queries
 - data contention
 - access pattern
 - IO subsystem (plus read/write ratio and page cache tuning )

The Derby engine is multi-threaded and should be able to use the available CPUs when / if required. To find out the utilization rate you have to run a test with your app / load.
Note that a single query will only use a single CPU / core.

I have run an industry standard benchmark on a 32-core machine, and Derby is able to utilize the CPUs fairly well with that specific load and configuration (75+%). I have also seen syntetic benchmarks utilizing around 99% of the CPU (all data in memory, read only, no data contention), but I doubt you'll manage that in a real-world app :) And finally, Derby has to use the CPUs for something useful as well - I'd recommend a load test to see if Derby fulfills your requirements (then you can come back to the list and ask questions if you see unexpected results).


Regards,
--
Kristian

[1] http://wiki.apache.org/db-derby/DerbyTenSixOneRelease

Regards
Raj


Reply via email to