Re: [basex-talk] concurrent performance issues?

2019-04-08 Thread Christian Grün
Dear Michael,

the main reason why the PARALLEL option exists in BaseX is that a
single query should never block other queries that run in parallel.
It’s perfectly fine to have BaseX applied in environments with
hundreds of parallel requests. As Marco indicated, parallel access
leads to random access patterns on disk, so the major question is how
we can get your queries faster.

Feel free to tell us more about your queries or query patterns; we
might be able to give you some clues how they can be rewritten to
benefit from the database statistics and index structures.

Best regards,
Christian



On Mon, Apr 8, 2019 at 4:05 PM Michael Perkonigg
 wrote:
>
> Hallo,
>
> ich versuche gerade, BaseX hier für eine zentrale XML-DB zu evaluieren.
>
> Die DB ist read-only. Wir haben also keinerlei Updates.
>
> Wir haben verschiedene XQuery-Queries(?), die abgesetzt werden, dabei ist 
> aufgefallen, dass wenn ich mehrere Queries parallel starte die Antwortzeiten 
> unverhätnismässig steigen.
>
> Einzeln:
>
> Query1: 500ms
>
> Query2: 1200ms
>
> Parallel brauchen beide zusammen dann zwischen 3 und 5 Sekunden.
>
> Erstaunlicherweise sind die Antwortzeiten mit der Option PARALLEL=1 am 
> geringsten, d.h. bei der Defaulteinstellung PARALLEL=8 (und auch schon bei 
> PARALLEL=2) steigen die Antwortzeiten.
>
> Ich frage mich nun, ob BaseX als Datenbank für eine verteilte Applikation mit 
> zentraler DB überhaupt geeignet ist und ob ich vielleicht mit irgendwelchen 
> Optionen BaseX für meine Zwecke optimieren kann.
>
> Ganz theoretisch könnte die DB ja mit hundert parallelen Anfragen belastet 
> werden.
>
>
> --
> mit freundlichen Grüßen


Re: [basex-talk] concurrent performance issues?

2019-04-08 Thread Marco Lettere

Hi Michael,
there has been a lot of discussion related to this issue. The most 
significant result that has alway clearly emerged and that Christian is 
always evangelizing us about is that beeing DB -access strictly serial, 
querying in paralllel is causing only trouble unless the data is 
actually split onto different disks. accessing in parallel just causes 
the OS/HW TO jump around on the disk missing al the cache efficiency and 
optimization.
So, unless you have hardware that really supports parallel access, just 
prefer sequential disk access.


Hoffe dies hilft.

M.


On 08/04/19 16:05, Michael Perkonigg wrote:


Hallo,

ich versuche gerade, BaseX hier für eine zentrale XML-DB zu evaluieren.

Die DB ist read-only. Wir haben also keinerlei Updates.

Wir haben verschiedene XQuery-Queries(?), die abgesetzt werden, dabei 
ist aufgefallen, dass wenn ich mehrere Queries parallel starte die 
Antwortzeiten unverhätnismässig steigen.


Einzeln:

Query1: 500ms

Query2: 1200ms

Parallel brauchen beide zusammen dann zwischen 3 und 5 Sekunden.

Erstaunlicherweise sind die Antwortzeiten mit der Option PARALLEL=1 am 
geringsten, d.h. bei der Defaulteinstellung PARALLEL=8 (und auch schon 
bei PARALLEL=2) steigen die Antwortzeiten.


Ich frage mich nun, ob BaseX als Datenbank für eine verteilte 
Applikation mit zentraler DB überhaupt geeignet ist und ob ich 
vielleicht mit irgendwelchen Optionen BaseX für meine Zwecke 
optimieren kann.


Ganz theoretisch könnte die DB ja mit hundert parallelen Anfragen 
belastet werden.



--
mit freundlichen Grüßen





[basex-talk] concurrent performance issues?

2019-04-08 Thread Michael Perkonigg

Hallo,

ich versuche gerade, BaseX hier für eine zentrale XML-DB zu evaluieren.

Die DB ist read-only. Wir haben also keinerlei Updates.

Wir haben verschiedene XQuery-Queries(?), die abgesetzt werden, dabei 
ist aufgefallen, dass wenn ich mehrere Queries parallel starte die 
Antwortzeiten unverhätnismässig steigen.


Einzeln:

Query1: 500ms

Query2: 1200ms

Parallel brauchen beide zusammen dann zwischen 3 und 5 Sekunden.

Erstaunlicherweise sind die Antwortzeiten mit der Option PARALLEL=1 am 
geringsten, d.h. bei der Defaulteinstellung PARALLEL=8 (und auch schon 
bei PARALLEL=2) steigen die Antwortzeiten.


Ich frage mich nun, ob BaseX als Datenbank für eine verteilte 
Applikation mit zentraler DB überhaupt geeignet ist und ob ich 
vielleicht mit irgendwelchen Optionen BaseX für meine Zwecke optimieren 
kann.


Ganz theoretisch könnte die DB ja mit hundert parallelen Anfragen 
belastet werden.



--
mit freundlichen Grüßen