Hi Gilles,


we are currently working on a general update optimization that
mainly addresses I/O issues. As your problems are CPU related,
I guess this won't directly affect your case.


So I suppose the bottleneck is the CPU.
Is there a way to check where in Basex server the bottleneck is? Which functions crunch up all cpu?

You could profile the Java server process for infos on CPU loading
and get back to us with the result.


How can I be sure basex uses both CPU?

This should be taken care of by your OS.
 

Is there any chance to have multiple simultaneous write access in future versions?

There is some work in progress regarding simultaneous writing
transactions but I'm not informed when it will find its way into
the official release. Maybe one of my team mates can tell you
more about this.


It could also help to have a look at your insert queries. If you
don't want to share them on the list, you could either send them
to us directly or post a simplified version that reflects the overall
approach.

Cheers,
Lukas 





On Fri, Aug 24, 2012 at 3:15 PM, Gilles CARRY <gilles.carry@st.com> wrote:

Hi,

 

I’m currently setting up a prototype to store test log results in a XML DB and let users do reports with XQUERY.

I’m experiencing performance issues and am trying to identify where the bottleneck is.

The status:

-          I use a single database.

-          The computer is dedicated to the DB server. (all clients are on distant machines)

-          Each applications insert bursts of 100-400 xml nodes in each insert query. Between inserts there is a random delay. (seconds to minutes)

-          UPDINDEX=true

-          Autoflush is on

-          The delays start being unacceptable when CPU average reaches ~40% (on a dual core which means ~80% of a single CPU)

-          Disk i/o seems fine: iostat says write kB_wrtn/s is about 10% of max iorate supported by disk. (I also tried with an SSD with no better results)

-          After some trials, it seems the more nodes in the DB the more delays to insert. The delays seem proportional to the number of nodes in the DB.

-          The delays are also proportional to the number of inserter client application (it looks like the transaction monitor is responsible for this)

 

So I suppose the bottleneck is the CPU.

Is there a way to check where in Basex server the bottleneck is? Which functions crunch up all cpu?

How can I be sure basex uses both CPU?

Is there any chance to have multiple simultaneous write access in future versions?

 

Thank-you,

Best regards,

Gilles.

 

 

 

By the way, the output of ‘info database’:

[BaseX]: info database

Database Properties

Name: logs2

Size: 202 GB

Nodes: 81534781

Documents: 1

Binaries: 0

Timestamp: 24.08.2012 15:07:11

 

Resource Properties

Timestamp: 24.08.2012 15:07:10

Encoding: UTF-8

Whitespace Chopping: ON

 

Indexes

Up-to-date: false

Text Index: ON

Attribute Index: ON

Full-Text Index: OFF


_______________________________________________
BaseX-Talk mailing list
BaseX-Talk@mailman.uni-konstanz.de
https://mailman.uni-konstanz.de/mailman/listinfo/basex-talk